getmyenv 0.3.3 → 0.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/README.md +9 -9
  2. package/dist/bin.js +23 -0
  3. package/dist/bin.js.map +1 -1
  4. package/dist/cli.d.ts.map +1 -1
  5. package/dist/cli.js +6 -19
  6. package/dist/cli.js.map +1 -1
  7. package/dist/commands/backup.d.ts.map +1 -1
  8. package/dist/commands/backup.js +9 -14
  9. package/dist/commands/backup.js.map +1 -1
  10. package/dist/commands/link.d.ts +2 -2
  11. package/dist/commands/link.d.ts.map +1 -1
  12. package/dist/commands/link.js +40 -13
  13. package/dist/commands/link.js.map +1 -1
  14. package/dist/commands/restore.d.ts.map +1 -1
  15. package/dist/commands/restore.js +6 -11
  16. package/dist/commands/restore.js.map +1 -1
  17. package/dist/commands/run.d.ts.map +1 -1
  18. package/dist/commands/run.js +10 -17
  19. package/dist/commands/run.js.map +1 -1
  20. package/dist/commands/token.d.ts +12 -13
  21. package/dist/commands/token.d.ts.map +1 -1
  22. package/dist/commands/token.js +30 -154
  23. package/dist/commands/token.js.map +1 -1
  24. package/dist/commands/whoami.d.ts.map +1 -1
  25. package/dist/commands/whoami.js +9 -18
  26. package/dist/commands/whoami.js.map +1 -1
  27. package/dist/lib/api.d.ts +12 -10
  28. package/dist/lib/api.d.ts.map +1 -1
  29. package/dist/lib/api.js +40 -55
  30. package/dist/lib/api.js.map +1 -1
  31. package/dist/lib/bootstrap.d.ts +6 -5
  32. package/dist/lib/bootstrap.d.ts.map +1 -1
  33. package/dist/lib/bootstrap.js +15 -19
  34. package/dist/lib/bootstrap.js.map +1 -1
  35. package/dist/lib/credentials.d.ts +14 -36
  36. package/dist/lib/credentials.d.ts.map +1 -1
  37. package/dist/lib/credentials.js +41 -181
  38. package/dist/lib/credentials.js.map +1 -1
  39. package/dist/lib/fs.js +2 -2
  40. package/dist/lib/fs.js.map +1 -1
  41. package/dist/lib/pek.d.ts +1 -1
  42. package/dist/lib/pek.d.ts.map +1 -1
  43. package/dist/lib/pek.js +1 -1
  44. package/dist/lib/pek.js.map +1 -1
  45. package/package.json +1 -1
@@ -1,9 +1,8 @@
1
1
  import { exec } from "node:child_process";
2
2
  import pc from "picocolors";
3
- import { promptChoice, promptConfirm, readLine, readProjectMeta, } from "../lib/fs.js";
4
- import { clearAllCredentials, credentialsFilePath, findTokenByNameOrId, hasRetiredCredentialsFile, readCredentialsV2, removeTokenEntry, setDefaultProject, upsertTokenEntry, } from "../lib/credentials.js";
5
- import { clearWrappedKey } from "../lib/pek.js";
6
- import { ApiClient, resolveApiUrl } from "../lib/api.js";
3
+ import { readLine, readProjectMeta } from "../lib/fs.js";
4
+ import { clearFolderToken, readFolderToken, tokenFilePath, writeFolderToken, } from "../lib/credentials.js";
5
+ import { ApiClient, resolveApiUrl, } from "../lib/api.js";
7
6
  import { linkCommand } from "./link.js";
8
7
  function maskToken(token) {
9
8
  const t = token.trim();
@@ -23,39 +22,6 @@ function openBrowser(url) {
23
22
  function sleep(ms) {
24
23
  return new Promise((resolve) => setTimeout(resolve, ms));
25
24
  }
26
- export function tokenListCommand() {
27
- const store = readCredentialsV2();
28
- console.log(pc.bold("\ngetmyenv token list\n"));
29
- console.log(pc.dim(`File: ${credentialsFilePath()}\n`));
30
- if (hasRetiredCredentialsFile() && !store) {
31
- console.log(pc.yellow("Old credentials file retired. Run: npx getmyenv token\n"));
32
- return;
33
- }
34
- if (!store || Object.keys(store.tokens).length === 0) {
35
- console.log(pc.dim("No saved tokens. Run: npx getmyenv token\n"));
36
- return;
37
- }
38
- const defaultId = store.default != null ? String(store.default) : undefined;
39
- for (const [id, entry] of Object.entries(store.tokens)) {
40
- const mark = defaultId === id ? "*" : " ";
41
- console.log(`${mark} ${id} ${entry.projectName} ${entry.cliScope} ${maskToken(entry.token)}`);
42
- if (entry.apiUrl)
43
- console.log(pc.dim(` API: ${entry.apiUrl}`));
44
- }
45
- console.log("");
46
- if (defaultId) {
47
- console.log(pc.dim(`Default: ${defaultId} (*). Use: token use <name|id>\n`));
48
- }
49
- }
50
- export function tokenUseCommand(nameOrId) {
51
- console.log(pc.bold("\ngetmyenv token use\n"));
52
- const match = findTokenByNameOrId(nameOrId.trim());
53
- if (!match) {
54
- throw new Error(`No saved token matches "${nameOrId}". Run: npx getmyenv token list`);
55
- }
56
- setDefaultProject(match.projectId);
57
- console.log(`${pc.green("✓")} Default token: ${match.entry.projectName} (${match.projectId}, ${match.entry.cliScope})\n`);
58
- }
59
25
  async function saveVerifiedToken(token, apiUrl, opts) {
60
26
  const client = new ApiClient(apiUrl, token);
61
27
  let who;
@@ -67,34 +33,25 @@ async function saveVerifiedToken(token, apiUrl, opts) {
67
33
  throw new Error(`Could not verify token: ${msg}`);
68
34
  }
69
35
  const scope = who.cliScope === "production" ? "production" : "development";
70
- const file = upsertTokenEntry(who.projectId, {
36
+ const file = writeFolderToken({
71
37
  token,
72
38
  apiUrl,
73
- projectName: who.projectName,
74
39
  cliScope: scope,
75
- }, { setDefault: true });
76
- console.log(`\n${pc.green("✓")} Saved to ${file}`);
40
+ projectId: who.projectId,
41
+ projectName: who.projectName,
42
+ label: who.label ?? undefined,
43
+ });
44
+ console.log(`\n${pc.green("✓")} Authorized this folder: ${file}`);
77
45
  console.log(pc.dim(`Token: ${who.label ?? scope} · ${who.projectName} · ${scope}`));
78
46
  console.log(pc.dim(`API: ${apiUrl}`));
79
47
  console.log(pc.dim(`Project: ${who.projectId}\n`));
80
48
  const meta = readProjectMeta();
81
- if (!opts.skipLinkOffer && process.stdin.isTTY && !meta?.projectId) {
82
- try {
83
- const doLink = await promptConfirm("Link this folder to the token project?", {
84
- defaultYes: true,
85
- });
86
- if (doLink) {
87
- await linkCommand(undefined, { apiUrl });
88
- return;
89
- }
90
- }
91
- catch {
92
- console.log(pc.dim("Run: npx getmyenv link\n"));
93
- }
94
- }
95
- if (!opts.skipLinkOffer) {
96
- console.log("Next: npx getmyenv link then npx getmyenv run -- <cmd>\n");
49
+ if (!opts.skipLinkOffer && !meta?.projectId) {
50
+ // First-time in this folder: link now so verbs work without another prompt.
51
+ await linkCommand(undefined, { apiUrl, skipPushOffer: true, force: true });
52
+ return;
97
53
  }
54
+ console.log("Next: npx getmyenv run -- <cmd>\n");
98
55
  }
99
56
  async function tokenViaPaste(opts, apiUrl) {
100
57
  const cliPage = `${apiUrl.replace(/\/$/, "")}/cli`;
@@ -139,6 +96,7 @@ async function tokenViaBrowser(opts, apiUrl) {
139
96
  throw new Error(`Could not poll CLI auth: ${msg}`);
140
97
  }
141
98
  if (poll.status === "approved" && poll.token) {
99
+ process.stdout.write("\n");
142
100
  await saveVerifiedToken(poll.token, apiUrl, opts);
143
101
  return;
144
102
  }
@@ -156,19 +114,16 @@ async function tokenViaBrowser(opts, apiUrl) {
156
114
  throw new Error("CLI authorization timed out. Run: npx getmyenv token");
157
115
  }
158
116
  /**
159
- * Authorize a per-project CLI token on this machine. Not a full account login.
117
+ * Authorize a per-project CLI token in this folder. Not a full account login.
160
118
  * Default: browser flow. Use --paste to type/paste a token from /cli.
119
+ * Re-running overwrites the existing token in `.getmyenv/token.json`.
161
120
  */
162
121
  export async function tokenCommand(opts = {}) {
163
122
  console.log(pc.bold("\ngetmyenv token\n"));
164
- console.log(pc.dim("Saves a per-project CLI token on this machine. Not a full account login.\n"));
165
- if (hasRetiredCredentialsFile() && !readCredentialsV2()) {
166
- console.log(pc.yellow("Old credentials file retired. Authorizing a new token replaces it.\n"));
167
- }
168
- const store = readCredentialsV2();
169
- const count = store ? Object.keys(store.tokens).length : 0;
170
- if (count > 0) {
171
- console.log(pc.dim(`${count} token(s) already saved. A new token replaces the entry for its project.\n`));
123
+ console.log(pc.dim("Authorizes this folder with a per-project CLI token. Not a full account login.\n"));
124
+ const existing = readFolderToken();
125
+ if (existing) {
126
+ console.log(pc.dim(`Replacing existing token: ${existing.projectName} (${existing.cliScope}, ${maskToken(existing.token)}) at ${tokenFilePath()}\n`));
172
127
  }
173
128
  const apiUrl = opts.apiUrl?.trim() ||
174
129
  process.env.GETMYENV_API_URL?.trim() ||
@@ -179,95 +134,16 @@ export async function tokenCommand(opts = {}) {
179
134
  }
180
135
  await tokenViaBrowser(opts, apiUrl);
181
136
  }
182
- export async function tokenRemoveCommand(opts = {}) {
183
- console.log(pc.bold("\ngetmyenv token remove\n"));
184
- if (hasRetiredCredentialsFile() && !readCredentialsV2()) {
185
- if (clearAllCredentials()) {
186
- console.log(`${pc.green("✓")} Removed retired credentials at ${credentialsFilePath()}`);
187
- }
188
- if (opts.fresh) {
189
- clearWrappedKey();
190
- console.log(`${pc.green("✓")} Cleared local wrapped-key.json`);
191
- }
192
- console.log("");
193
- return;
194
- }
195
- const store = readCredentialsV2();
196
- const ids = store ? Object.keys(store.tokens) : [];
197
- if (!store || ids.length === 0) {
198
- console.log(pc.dim("No saved tokens.\n"));
199
- return;
200
- }
201
- const meta = readProjectMeta();
202
- let projectId;
203
- let clearAll = false;
204
- if (meta?.projectId != null && store.tokens[String(meta.projectId)]) {
205
- projectId = String(meta.projectId);
206
- }
207
- else if (ids.length === 1) {
208
- projectId = ids[0];
209
- }
210
- else if (process.stdin.isTTY) {
211
- const labels = ids.map((id) => {
212
- const e = store.tokens[id];
213
- return `${e.projectName} (${id}, ${e.cliScope})`;
214
- });
215
- labels.push("All saved tokens");
216
- const pick = await promptChoice("Remove which token?", labels, 0);
217
- if (pick === labels.length - 1) {
218
- clearAll = true;
219
- }
220
- else {
221
- projectId = ids[pick];
222
- }
223
- }
224
- else {
225
- throw new Error("Multiple tokens saved. Re-run in a linked project folder, or use an interactive terminal.");
226
- }
227
- if (clearAll) {
228
- if (process.stdin.isTTY) {
229
- const ok = await promptConfirm("Remove all saved CLI tokens?", {
230
- defaultYes: false,
231
- });
232
- if (!ok) {
233
- console.log(pc.dim("Kept credentials.\n"));
234
- return;
235
- }
236
- }
237
- const path = credentialsFilePath();
238
- if (clearAllCredentials()) {
239
- console.log(`${pc.green("✓")} Cleared all credentials at ${path}`);
240
- }
241
- if (opts.fresh) {
242
- clearWrappedKey();
243
- console.log(`${pc.green("✓")} Cleared local wrapped-key.json`);
244
- }
245
- console.log("");
137
+ /**
138
+ * Remove the token for this folder. Convenience alias for `link --clear`.
139
+ * Kept as a courtesy; the underlying store is one folder = one token.
140
+ */
141
+ export async function tokenClearCommand() {
142
+ console.log(pc.bold("\ngetmyenv token clear\n"));
143
+ if (clearFolderToken()) {
144
+ console.log(`${pc.green("✓")} Removed ${tokenFilePath()}\n`);
246
145
  return;
247
146
  }
248
- const entry = store.tokens[projectId];
249
- const label = entry ? `${entry.projectName} (${projectId})` : projectId;
250
- if (process.stdin.isTTY) {
251
- const ok = await promptConfirm(`Remove saved token for ${label}?`, {
252
- defaultYes: true,
253
- });
254
- if (!ok) {
255
- console.log(pc.dim("Kept credentials.\n"));
256
- return;
257
- }
258
- }
259
- if (removeTokenEntry(projectId)) {
260
- console.log(`${pc.green("✓")} Removed token for ${label}`);
261
- }
262
- else {
263
- console.log(pc.dim(`No saved token for ${label}`));
264
- }
265
- const linkedId = meta?.projectId != null ? String(meta.projectId) : null;
266
- if (opts.fresh || (linkedId && linkedId === String(projectId))) {
267
- if (clearWrappedKey()) {
268
- console.log(`${pc.green("✓")} Cleared local wrapped-key.json`);
269
- }
270
- }
271
- console.log("");
147
+ console.log(pc.dim("No token in this folder.\n"));
272
148
  }
273
149
  //# sourceMappingURL=token.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"token.js","sourceRoot":"","sources":["../../src/commands/token.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"token.js","sourceRoot":"","sources":["../../src/commands/token.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"whoami.d.ts","sourceRoot":"","sources":["../../src/commands/whoami.ts"],"names":[],"mappings":"AAeA,KAAK,UAAU,GAAG;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAQF,wBAAsB,aAAa,CAAC,IAAI,GAAE,UAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAoDxE"}
1
+ {"version":3,"file":"whoami.d.ts","sourceRoot":"","sources":["../../src/commands/whoami.ts"],"names":[],"mappings":"AAaA,KAAK,UAAU,GAAG;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAQF,wBAAsB,aAAa,CAAC,IAAI,GAAE,UAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAmCxE"}
@@ -1,5 +1,5 @@
1
1
  import pc from "picocolors";
2
- import { credentialsFilePath, hasRetiredCredentialsFile, readCredentialsV2, resolveStoredToken, } from "../lib/credentials.js";
2
+ import { readFolderToken, tokenFilePath, } from "../lib/credentials.js";
3
3
  import { readProjectMeta } from "../lib/fs.js";
4
4
  import { ApiClient, ensureSessionToken, resolveApiUrl, } from "../lib/api.js";
5
5
  function maskToken(token) {
@@ -10,13 +10,12 @@ function maskToken(token) {
10
10
  }
11
11
  export async function whoamiCommand(opts = {}) {
12
12
  console.log(pc.bold("\ngetmyenv whoami\n"));
13
- const meta = readProjectMeta();
14
- const token = await ensureSessionToken(meta?.projectId);
15
- const apiUrl = resolveApiUrl(opts.apiUrl, meta?.projectId);
13
+ const token = await ensureSessionToken();
14
+ const apiUrl = resolveApiUrl(opts.apiUrl);
16
15
  const client = new ApiClient(apiUrl, token);
17
16
  const who = await client.request("GET", "/api/cli/whoami");
18
- const resolved = resolveStoredToken(meta?.projectId);
19
- const store = readCredentialsV2();
17
+ const folder = readFolderToken();
18
+ const meta = readProjectMeta();
20
19
  console.log(`Token label: ${who.label ?? who.cliScope}`);
21
20
  console.log(`Token scope: ${who.cliScope}`);
22
21
  console.log(`Project: ${who.projectName} (${who.projectId})`);
@@ -28,21 +27,13 @@ export async function whoamiCommand(opts = {}) {
28
27
  }
29
28
  console.log(`defaultEnv: ${meta?.defaultEnv ?? who.cliScope}`);
30
29
  console.log(`API: ${apiUrl}`);
31
- console.log(`Credentials: ${credentialsFilePath()}`);
30
+ console.log(`Auth: ${tokenFilePath()}`);
32
31
  if (process.env.GETMYENV_TOKEN?.trim()) {
33
32
  console.log(pc.dim("Source: GETMYENV_TOKEN"));
34
33
  }
35
- else if (resolved) {
36
- console.log(pc.dim(`Source: ${resolved.source}${resolved.projectId ? ` (${resolved.projectId})` : ""}`));
37
- if (resolved.token) {
38
- console.log(pc.dim(`Token: ${maskToken(resolved.token)}`));
39
- }
40
- }
41
- if (store) {
42
- console.log(pc.dim(`Saved tokens: ${Object.keys(store.tokens).length}`));
43
- }
44
- else if (hasRetiredCredentialsFile()) {
45
- console.log(pc.dim("Saved tokens: (retired file; run token)"));
34
+ else if (folder) {
35
+ console.log(pc.dim(`Source: folder token`));
36
+ console.log(pc.dim(`Token: ${maskToken(folder.token)}`));
46
37
  }
47
38
  console.log("");
48
39
  }
@@ -1 +1 @@
1
- {"version":3,"file":"whoami.js","sourceRoot":"","sources":["../../src/commands/whoami.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"whoami.js","sourceRoot":"","sources":["../../src/commands/whoami.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EACL,eAAe,EACf,aAAa,GACd,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EACL,SAAS,EACT,kBAAkB,EAClB,aAAa,GAEd,MAAM,eAAe,CAAC;AAMvB,SAAS,SAAS,CAAC,KAAa;IAC9B,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IACvB,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,MAAM,CAAC;IACjC,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC3C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAAmB,EAAE;IACvD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAE5C,MAAM,KAAK,GAAG,MAAM,kBAAkB,EAAE,CAAC;IACzC,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC5C,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,OAAO,CAAiB,KAAK,EAAE,iBAAiB,CAAC,CAAC;IAE3E,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;IACjC,MAAM,IAAI,GAAG,eAAe,EAAE,CAAC;IAE/B,OAAO,CAAC,GAAG,CAAC,iBAAiB,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC1D,OAAO,CAAC,GAAG,CAAC,iBAAiB,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC7C,OAAO,CAAC,GAAG,CAAC,iBAAiB,GAAG,CAAC,WAAW,KAAK,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC;IACnE,IAAI,IAAI,EAAE,SAAS,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CACT,iBAAiB,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,SAAS,GACjD,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAC1D,EAAE,CACH,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;IACtC,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,EAAE,UAAU,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;IACjE,OAAO,CAAC,GAAG,CAAC,iBAAiB,MAAM,EAAE,CAAC,CAAC;IACvC,OAAO,CAAC,GAAG,CAAC,iBAAiB,aAAa,EAAE,EAAE,CAAC,CAAC;IAEhD,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,EAAE,EAAE,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC,CAAC;IACtD,CAAC;SAAM,IAAI,MAAM,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,iBAAiB,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IAClE,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC"}
package/dist/lib/api.d.ts CHANGED
@@ -2,9 +2,9 @@
2
2
  * CLI API client. Never logs response bodies that may contain ciphertext details
3
3
  * beyond what is needed; never prints secret plaintext.
4
4
  */
5
- import { clearAllCredentials, credentialsFilePath, readCredentialsV2, resolveStoredToken, upsertTokenEntry, type CliScope } from "./credentials.js";
5
+ import { type CliScope } from "./credentials.js";
6
6
  /** Keep in sync with packages/cli/package.json version. */
7
- export declare const CLI_VERSION = "0.3.3";
7
+ export declare const CLI_VERSION = "0.3.4";
8
8
  export type WhoamiResponse = {
9
9
  projectId: string;
10
10
  projectName: string;
@@ -12,8 +12,8 @@ export type WhoamiResponse = {
12
12
  label: string | null;
13
13
  allowedCidrs?: string[];
14
14
  };
15
- /** Resolve API base: env → CLI override → selected token → production. */
16
- export declare function resolveApiUrl(cliOverride?: string, preferredProjectId?: string | number | null): string;
15
+ /** Resolve API base: CLI override → env var → folder token/meta → production. */
16
+ export declare function resolveApiUrl(cliOverride?: string, _hint?: unknown): string;
17
17
  export declare class ApiClient {
18
18
  private baseUrl;
19
19
  private token?;
@@ -21,12 +21,14 @@ export declare class ApiClient {
21
21
  private headers;
22
22
  request<T>(method: string, path: string, body?: unknown, extraHeaders?: Record<string, string>): Promise<T>;
23
23
  }
24
- /** Env / store only (no prompt). Prefer ensureSessionToken for interactive commands. */
25
- export declare function getSessionToken(preferredProjectId?: string | number | null): string | undefined;
24
+ /** Env / folder token only (no prompt). Prefer ensureSessionToken for interactive commands. */
25
+ export declare function getSessionToken(): string | undefined;
26
+ /** True when the folder is already authorized (env or .getmyenv/token.json). */
27
+ export declare function hasSessionToken(): boolean;
26
28
  /**
27
- * Env → credentials map (linked / default / single) → interactive paste (TTY).
28
- * Non-TTY without a token throws with token instructions.
29
+ * Env → folder token. When missing, TTY runs the browser auth flow (via tokenCommand)
30
+ * and writes `.getmyenv/token.json`. Non-TTY throws.
29
31
  */
30
- export declare function ensureSessionToken(preferredProjectId?: string | number | null): Promise<string>;
31
- export { clearAllCredentials, credentialsFilePath, readCredentialsV2, resolveStoredToken, upsertTokenEntry, };
32
+ export declare function ensureSessionToken(_hint?: unknown): Promise<string>;
33
+ export { readFolderToken, writeFolderToken, tokenFilePath, } from "./credentials.js";
32
34
  //# sourceMappingURL=api.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/lib/api.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EAEnB,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,KAAK,QAAQ,EACd,MAAM,kBAAkB,CAAC;AAE1B,2DAA2D;AAC3D,eAAO,MAAM,WAAW,UAAU,CAAC;AAInC,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB,CAAC;AAEF,0EAA0E;AAC1E,wBAAgB,aAAa,CAC3B,WAAW,CAAC,EAAE,MAAM,EACpB,kBAAkB,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAC1C,MAAM,CAUR;AAED,qBAAa,SAAS;IAElB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,KAAK,CAAC;gBADN,OAAO,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,MAAM,YAAA;IAGxB,OAAO,CAAC,OAAO;IAWT,OAAO,CAAC,CAAC,EACb,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,OAAO,EACd,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACpC,OAAO,CAAC,CAAC,CAAC;CAmBd;AAMD,wFAAwF;AACxF,wBAAgB,eAAe,CAC7B,kBAAkB,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAC1C,MAAM,GAAG,SAAS,CAOpB;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,kBAAkB,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAC1C,OAAO,CAAC,MAAM,CAAC,CA+CjB;AAED,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,GACjB,CAAC"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/lib/api.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAGL,KAAK,QAAQ,EAEd,MAAM,kBAAkB,CAAC;AAE1B,2DAA2D;AAC3D,eAAO,MAAM,WAAW,UAAU,CAAC;AAInC,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB,CAAC;AAEF,iFAAiF;AACjF,wBAAgB,aAAa,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAU3E;AAED,qBAAa,SAAS;IAElB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,KAAK,CAAC;gBADN,OAAO,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,MAAM,YAAA;IAGxB,OAAO,CAAC,OAAO;IAWT,OAAO,CAAC,CAAC,EACb,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,OAAO,EACd,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACpC,OAAO,CAAC,CAAC,CAAC;CAmBd;AAED,+FAA+F;AAC/F,wBAAgB,eAAe,IAAI,MAAM,GAAG,SAAS,CAIpD;AAED,gFAAgF;AAChF,wBAAgB,eAAe,IAAI,OAAO,CAEzC;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,KAAK,CAAC,EAAE,OAAO,GACd,OAAO,CAAC,MAAM,CAAC,CAsBjB;AAED,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,aAAa,GACd,MAAM,kBAAkB,CAAC"}
package/dist/lib/api.js CHANGED
@@ -3,22 +3,24 @@
3
3
  * beyond what is needed; never prints secret plaintext.
4
4
  */
5
5
  import pc from "picocolors";
6
- import { readLine, readProjectMeta } from "./fs.js";
7
- import { clearAllCredentials, credentialsFilePath, hasRetiredCredentialsFile, readCredentialsV2, resolveStoredToken, upsertTokenEntry, } from "./credentials.js";
6
+ import { readProjectMeta } from "./fs.js";
7
+ import { readFolderToken, } from "./credentials.js";
8
8
  /** Keep in sync with packages/cli/package.json version. */
9
- export const CLI_VERSION = "0.3.3";
9
+ export const CLI_VERSION = "0.3.4";
10
10
  const PRODUCTION_API = "https://getmyenv.com";
11
- /** Resolve API base: env → CLI override → selected token → production. */
12
- export function resolveApiUrl(cliOverride, preferredProjectId) {
11
+ /** Resolve API base: CLI override → env var → folder token/meta → production. */
12
+ export function resolveApiUrl(cliOverride, _hint) {
13
13
  if (cliOverride?.trim())
14
14
  return cliOverride.trim();
15
15
  if (process.env.GETMYENV_API_URL?.trim()) {
16
16
  return process.env.GETMYENV_API_URL.trim();
17
17
  }
18
- const linked = preferredProjectId ?? readProjectMeta()?.projectId ?? null;
19
- const resolved = resolveStoredToken(linked);
20
- if (resolved?.apiUrl)
21
- return resolved.apiUrl;
18
+ const token = readFolderToken();
19
+ if (token?.apiUrl)
20
+ return token.apiUrl;
21
+ const meta = readProjectMeta();
22
+ if (meta?.apiUrl)
23
+ return meta.apiUrl;
22
24
  return PRODUCTION_API;
23
25
  }
24
26
  export class ApiClient {
@@ -62,59 +64,42 @@ export class ApiClient {
62
64
  return (await res.json());
63
65
  }
64
66
  }
65
- function retiredCredentialsHint() {
66
- return "Old credentials file retired. Run: npx getmyenv token";
67
+ /** Env / folder token only (no prompt). Prefer ensureSessionToken for interactive commands. */
68
+ export function getSessionToken() {
69
+ const env = process.env.GETMYENV_TOKEN?.trim();
70
+ if (env)
71
+ return env;
72
+ return readFolderToken()?.token;
67
73
  }
68
- /** Env / store only (no prompt). Prefer ensureSessionToken for interactive commands. */
69
- export function getSessionToken(preferredProjectId) {
70
- if (hasRetiredCredentialsFile() && !readCredentialsV2()) {
71
- return undefined;
72
- }
73
- const linked = preferredProjectId ?? readProjectMeta()?.projectId ?? null;
74
- return resolveStoredToken(linked)?.token;
74
+ /** True when the folder is already authorized (env or .getmyenv/token.json). */
75
+ export function hasSessionToken() {
76
+ return !!getSessionToken();
75
77
  }
76
78
  /**
77
- * Env → credentials map (linked / default / single) → interactive paste (TTY).
78
- * Non-TTY without a token throws with token instructions.
79
+ * Env → folder token. When missing, TTY runs the browser auth flow (via tokenCommand)
80
+ * and writes `.getmyenv/token.json`. Non-TTY throws.
79
81
  */
80
- export async function ensureSessionToken(preferredProjectId) {
81
- const linked = preferredProjectId ?? readProjectMeta()?.projectId ?? null;
82
- if (hasRetiredCredentialsFile() && !readCredentialsV2()) {
83
- if (!process.stdin.isTTY) {
84
- throw new Error(retiredCredentialsHint());
85
- }
86
- console.log(pc.yellow(`${retiredCredentialsHint()}\n`));
87
- }
88
- const existing = resolveStoredToken(linked);
89
- if (existing) {
82
+ export async function ensureSessionToken(_hint) {
83
+ const env = process.env.GETMYENV_TOKEN?.trim();
84
+ if (env)
85
+ return env;
86
+ const existing = readFolderToken();
87
+ if (existing)
90
88
  return existing.token;
91
- }
92
89
  if (!process.stdin.isTTY) {
93
- throw new Error("No CLI token. Run: npx getmyenv token (or set GETMYENV_TOKEN for CI)");
94
- }
95
- const apiBase = resolveApiUrl(undefined, linked).replace(/\/$/, "");
96
- console.log(pc.dim(`Create or copy a token: ${apiBase}/cli`));
97
- console.log("");
98
- const token = (await readLine("Paste CLI token: ")).trim();
99
- if (!token) {
100
- throw new Error("No token entered. Run: npx getmyenv token");
101
- }
102
- const apiUrl = resolveApiUrl(undefined, linked);
103
- try {
104
- const client = new ApiClient(apiUrl, token);
105
- const who = await client.request("GET", "/api/cli/whoami");
106
- const file = upsertTokenEntry(who.projectId, {
107
- token,
108
- apiUrl,
109
- projectName: who.projectName,
110
- cliScope: who.cliScope,
111
- });
112
- console.log(`${pc.green("✓")} Saved CLI token to ${file}\n`);
90
+ throw new Error("No CLI token in this folder. Run: npx getmyenv token (or set GETMYENV_TOKEN for CI)");
113
91
  }
114
- catch {
115
- throw new Error("Could not verify token. Check the token and API URL, then run: npx getmyenv token");
92
+ // Lazy import to avoid a cycle (token → link → api).
93
+ const { tokenCommand } = await import("../commands/token.js");
94
+ await tokenCommand({ skipLinkOffer: true });
95
+ const after = readFolderToken();
96
+ if (!after) {
97
+ throw new Error("Authorization did not complete. Run: npx getmyenv token");
116
98
  }
117
- return token;
99
+ return after.token;
118
100
  }
119
- export { clearAllCredentials, credentialsFilePath, readCredentialsV2, resolveStoredToken, upsertTokenEntry, };
101
+ export { readFolderToken, writeFolderToken, tokenFilePath, } from "./credentials.js";
102
+ // picocolors is referenced by callers; re-export nothing here.
103
+ void pc;
104
+ void {};
120
105
  //# sourceMappingURL=api.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/lib/api.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,yBAAyB,EACzB,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,GAEjB,MAAM,kBAAkB,CAAC;AAE1B,2DAA2D;AAC3D,MAAM,CAAC,MAAM,WAAW,GAAG,OAAO,CAAC;AAEnC,MAAM,cAAc,GAAG,sBAAsB,CAAC;AAU9C,0EAA0E;AAC1E,MAAM,UAAU,aAAa,CAC3B,WAAoB,EACpB,kBAA2C;IAE3C,IAAI,WAAW,EAAE,IAAI,EAAE;QAAE,OAAO,WAAW,CAAC,IAAI,EAAE,CAAC;IACnD,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,IAAI,EAAE,EAAE,CAAC;QACzC,OAAO,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;IAC7C,CAAC;IACD,MAAM,MAAM,GACV,kBAAkB,IAAI,eAAe,EAAE,EAAE,SAAS,IAAI,IAAI,CAAC;IAC7D,MAAM,QAAQ,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC5C,IAAI,QAAQ,EAAE,MAAM;QAAE,OAAO,QAAQ,CAAC,MAAM,CAAC;IAC7C,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,MAAM,OAAO,SAAS;IAEV;IACA;IAFV,YACU,OAAe,EACf,KAAc;QADd,YAAO,GAAP,OAAO,CAAQ;QACf,UAAK,GAAL,KAAK,CAAS;IACrB,CAAC;IAEI,OAAO,CAAC,KAA8B;QAC5C,MAAM,CAAC,GAA2B;YAChC,cAAc,EAAE,kBAAkB;YAClC,MAAM,EAAE,kBAAkB;YAC1B,wBAAwB,EAAE,WAAW;YACrC,GAAG,KAAK;SACT,CAAC;QACF,IAAI,IAAI,CAAC,KAAK;YAAE,CAAC,CAAC,aAAa,GAAG,UAAU,IAAI,CAAC,KAAK,EAAE,CAAC;QACzD,OAAO,CAAC,CAAC;IACX,CAAC;IAED,KAAK,CAAC,OAAO,CACX,MAAc,EACd,IAAY,EACZ,IAAc,EACd,YAAqC;QAErC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE;YACnE,MAAM;YACN,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;YACnC,IAAI,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC5D,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,IAAI,OAAO,GAAG,QAAQ,GAAG,CAAC,MAAM,EAAE,CAAC;YACnC,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAuB,CAAC;gBACtD,IAAI,IAAI,CAAC,KAAK;oBAAE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC;YACvC,CAAC;YAAC,MAAM,CAAC;gBACP,YAAY;YACd,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC;QACD,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;YAAE,OAAO,SAAc,CAAC;QAC9C,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAM,CAAC;IACjC,CAAC;CACF;AAED,SAAS,sBAAsB;IAC7B,OAAO,uDAAuD,CAAC;AACjE,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,eAAe,CAC7B,kBAA2C;IAE3C,IAAI,yBAAyB,EAAE,IAAI,CAAC,iBAAiB,EAAE,EAAE,CAAC;QACxD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,MAAM,GACV,kBAAkB,IAAI,eAAe,EAAE,EAAE,SAAS,IAAI,IAAI,CAAC;IAC7D,OAAO,kBAAkB,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC;AAC3C,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,kBAA2C;IAE3C,MAAM,MAAM,GACV,kBAAkB,IAAI,eAAe,EAAE,EAAE,SAAS,IAAI,IAAI,CAAC;IAE7D,IAAI,yBAAyB,EAAE,IAAI,CAAC,iBAAiB,EAAE,EAAE,CAAC;QACxD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,sBAAsB,EAAE,CAAC,CAAC;QAC5C,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,sBAAsB,EAAE,IAAI,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,QAAQ,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC5C,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,QAAQ,CAAC,KAAK,CAAC;IACxB,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CACb,uEAAuE,CACxE,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,aAAa,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACpE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,2BAA2B,OAAO,MAAM,CAAC,CAAC,CAAC;IAC9D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,MAAM,KAAK,GAAG,CAAC,MAAM,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3D,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC/D,CAAC;IAED,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAChD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC5C,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,OAAO,CAAiB,KAAK,EAAE,iBAAiB,CAAC,CAAC;QAC3E,MAAM,IAAI,GAAG,gBAAgB,CAAC,GAAG,CAAC,SAAS,EAAE;YAC3C,KAAK;YACL,MAAM;YACN,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,QAAQ,EAAE,GAAG,CAAC,QAAQ;SACvB,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,uBAAuB,IAAI,IAAI,CAAC,CAAC;IAC/D,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CACb,mFAAmF,CACpF,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,GACjB,CAAC"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/lib/api.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,15 @@
1
- import { type WhoamiResponse } from "../lib/api.js";
1
+ import { type WhoamiResponse } from "./api.js";
2
2
  export type BootstrapOpts = {
3
3
  apiUrl?: string;
4
4
  /** Skip confirm when linking (e.g. push --create). */
5
5
  forceLink?: boolean;
6
- /** Verb for confirm copy: "push" | "pull". */
7
- action: "push" | "pull";
6
+ /** Verb for confirm copy. */
7
+ action: "push" | "pull" | "run" | "backup" | "restore";
8
8
  };
9
9
  /**
10
- * Ensure a CLI token exists (TTY runs token), then ensure this folder is linked
11
- * to the token project (TTY confirms + link). Returns whoami + linked ids.
10
+ * Ensure this folder is authorized (token) and linked to a project.
11
+ * TTY-only bootstrap; CI passes GETMYENV_TOKEN and either commits
12
+ * `.getmyenv/project.json` or runs `link --force` first.
12
13
  */
13
14
  export declare function ensureTokenAndLink(opts: BootstrapOpts): Promise<{
14
15
  who: WhoamiResponse;
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../src/lib/bootstrap.ts"],"names":[],"mappings":"AAIA,OAAO,EAKL,KAAK,cAAc,EACpB,MAAM,eAAe,CAAC;AAIvB,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sDAAsD;IACtD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,8CAA8C;IAC9C,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;CACzB,CAAC;AAEF;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC;IACrE,GAAG,EAAE,cAAc,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC,CAkED"}
1
+ {"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../src/lib/bootstrap.ts"],"names":[],"mappings":"AACA,OAAO,EAKL,KAAK,cAAc,EACpB,MAAM,UAAU,CAAC;AAIlB,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sDAAsD;IACtD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,6BAA6B;IAC7B,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,SAAS,CAAC;CACxD,CAAC;AAEF;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC;IACrE,GAAG,EAAE,cAAc,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC,CA+DD"}