alpic 0.0.0-dev.f221e41 → 0.0.0-dev.f23ec8b

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 (114) hide show
  1. package/dist/__tests__/auth.e2e.test.js +11 -11
  2. package/dist/__tests__/auth.e2e.test.js.map +1 -1
  3. package/dist/__tests__/deploy-flags.e2e.test.d.ts +1 -0
  4. package/dist/__tests__/deploy-flags.e2e.test.js +111 -0
  5. package/dist/__tests__/deploy-flags.e2e.test.js.map +1 -0
  6. package/dist/__tests__/deploy.e2e.test.js +2 -51
  7. package/dist/__tests__/deploy.e2e.test.js.map +1 -1
  8. package/dist/__tests__/environment-variable/environment-variable-add.e2e.test.d.ts +1 -0
  9. package/dist/__tests__/environment-variable/environment-variable-add.e2e.test.js +250 -0
  10. package/dist/__tests__/environment-variable/environment-variable-add.e2e.test.js.map +1 -0
  11. package/dist/__tests__/environment-variable/environment-variable-list.e2e.test.d.ts +1 -0
  12. package/dist/__tests__/environment-variable/environment-variable-list.e2e.test.js +121 -0
  13. package/dist/__tests__/environment-variable/environment-variable-list.e2e.test.js.map +1 -0
  14. package/dist/__tests__/environment-variable/environment-variable-remove.e2e.test.d.ts +1 -0
  15. package/dist/__tests__/environment-variable/environment-variable-remove.e2e.test.js +139 -0
  16. package/dist/__tests__/environment-variable/environment-variable-remove.e2e.test.js.map +1 -0
  17. package/dist/__tests__/environment-variable/environment-variable-update.e2e.test.d.ts +1 -0
  18. package/dist/__tests__/environment-variable/environment-variable-update.e2e.test.js +319 -0
  19. package/dist/__tests__/environment-variable/environment-variable-update.e2e.test.js.map +1 -0
  20. package/dist/__tests__/environment-variable/environment-variable-validation.test.d.ts +1 -0
  21. package/dist/__tests__/environment-variable/environment-variable-validation.test.js +20 -0
  22. package/dist/__tests__/environment-variable/environment-variable-validation.test.js.map +1 -0
  23. package/dist/__tests__/fixtures/demo-project/index.js +1 -1
  24. package/dist/__tests__/fixtures/demo-project/index.js.map +1 -1
  25. package/dist/__tests__/git-flags.e2e.test.d.ts +1 -0
  26. package/dist/__tests__/git-flags.e2e.test.js +124 -0
  27. package/dist/__tests__/git-flags.e2e.test.js.map +1 -0
  28. package/dist/__tests__/git.e2e.test.js +15 -12
  29. package/dist/__tests__/git.e2e.test.js.map +1 -1
  30. package/dist/__tests__/mock-server.d.ts +1 -0
  31. package/dist/__tests__/mock-server.js +95 -4
  32. package/dist/__tests__/mock-server.js.map +1 -1
  33. package/dist/__tests__/utils.d.ts +10 -4
  34. package/dist/__tests__/utils.js +75 -17
  35. package/dist/__tests__/utils.js.map +1 -1
  36. package/dist/commands/deploy.d.ts +5 -2
  37. package/dist/commands/deploy.js +37 -19
  38. package/dist/commands/deploy.js.map +1 -1
  39. package/dist/commands/environment-variable/add.d.ts +14 -0
  40. package/dist/commands/environment-variable/add.js +46 -0
  41. package/dist/commands/environment-variable/add.js.map +1 -0
  42. package/dist/commands/environment-variable/list.d.ts +9 -0
  43. package/dist/commands/environment-variable/list.js +44 -0
  44. package/dist/commands/environment-variable/list.js.map +1 -0
  45. package/dist/commands/environment-variable/remove.d.ts +11 -0
  46. package/dist/commands/environment-variable/remove.js +32 -0
  47. package/dist/commands/environment-variable/remove.js.map +1 -0
  48. package/dist/commands/environment-variable/update.d.ts +13 -0
  49. package/dist/commands/environment-variable/update.js +40 -0
  50. package/dist/commands/environment-variable/update.js.map +1 -0
  51. package/dist/commands/git/connect.d.ts +3 -2
  52. package/dist/commands/git/connect.js +26 -27
  53. package/dist/commands/git/connect.js.map +1 -1
  54. package/dist/commands/git/disconnect.d.ts +2 -2
  55. package/dist/commands/git/disconnect.js +16 -26
  56. package/dist/commands/git/disconnect.js.map +1 -1
  57. package/dist/commands/git.js +2 -2
  58. package/dist/commands/git.js.map +1 -1
  59. package/dist/commands/login.js +5 -11
  60. package/dist/commands/login.js.map +1 -1
  61. package/dist/commands/whoami.js +2 -14
  62. package/dist/commands/whoami.js.map +1 -1
  63. package/dist/env.js +1 -1
  64. package/dist/lib/alpic-command.d.ts +2 -0
  65. package/dist/lib/alpic-command.js +13 -3
  66. package/dist/lib/alpic-command.js.map +1 -1
  67. package/dist/lib/archive.d.ts +3 -3
  68. package/dist/lib/archive.js +11 -15
  69. package/dist/lib/archive.js.map +1 -1
  70. package/dist/lib/auth/oauth/client.d.ts +0 -1
  71. package/dist/lib/auth/oauth/client.js +2 -4
  72. package/dist/lib/auth/oauth/client.js.map +1 -1
  73. package/dist/lib/auth/oauth/server/assets/alpic-mountain.png +0 -0
  74. package/dist/lib/auth/oauth/server/assets/authorize.html +195 -0
  75. package/dist/lib/auth/oauth/server/assets/callback.html +88 -0
  76. package/dist/lib/auth/oauth/server/index.d.ts +8 -0
  77. package/dist/lib/auth/oauth/server/index.js +102 -0
  78. package/dist/lib/auth/oauth/server/index.js.map +1 -0
  79. package/dist/lib/auth/whoami.d.ts +1 -28
  80. package/dist/lib/auth/whoami.js +24 -18
  81. package/dist/lib/auth/whoami.js.map +1 -1
  82. package/dist/lib/base-workflow.d.ts +10 -0
  83. package/dist/lib/base-workflow.js +22 -0
  84. package/dist/lib/base-workflow.js.map +1 -0
  85. package/dist/lib/config.d.ts +2 -2
  86. package/dist/lib/config.js +7 -7
  87. package/dist/lib/config.js.map +1 -1
  88. package/dist/lib/deployment.js +0 -1
  89. package/dist/lib/deployment.js.map +1 -1
  90. package/dist/lib/environment-variable.d.ts +41 -0
  91. package/dist/lib/environment-variable.js +304 -0
  92. package/dist/lib/environment-variable.js.map +1 -0
  93. package/dist/lib/git.d.ts +12 -4
  94. package/dist/lib/git.js +51 -25
  95. package/dist/lib/git.js.map +1 -1
  96. package/dist/lib/global-store.d.ts +1 -1
  97. package/dist/lib/global-store.js +4 -3
  98. package/dist/lib/global-store.js.map +1 -1
  99. package/dist/lib/project.d.ts +65 -61
  100. package/dist/lib/project.js +264 -254
  101. package/dist/lib/project.js.map +1 -1
  102. package/dist/lib/table.d.ts +8 -0
  103. package/dist/lib/table.js +27 -0
  104. package/dist/lib/table.js.map +1 -0
  105. package/dist/lib/utils.d.ts +1 -0
  106. package/dist/lib/utils.js +17 -0
  107. package/dist/lib/utils.js.map +1 -0
  108. package/dist/lib/utils.test.d.ts +1 -0
  109. package/dist/lib/utils.test.js +14 -0
  110. package/dist/lib/utils.test.js.map +1 -0
  111. package/package.json +19 -17
  112. package/dist/lib/auth/oauth/server.d.ts +0 -6
  113. package/dist/lib/auth/oauth/server.js +0 -88
  114. package/dist/lib/auth/oauth/server.js.map +0 -1
@@ -2,21 +2,23 @@ import pty from "node-pty";
2
2
  import { execFileSync } from "node:child_process";
3
3
  import { randomUUID } from "node:crypto";
4
4
  import { mkdirSync, writeFileSync } from "node:fs";
5
- import { cp, mkdtemp } from "node:fs/promises";
5
+ import { cp, mkdtemp, readFile, rm } from "node:fs/promises";
6
6
  import { tmpdir } from "node:os";
7
7
  import { dirname, join } from "node:path";
8
8
  import { fileURLToPath } from "node:url";
9
+ import { stripVTControlCharacters } from "node:util";
9
10
  import { expect } from "vitest";
10
11
  const __testDirname = dirname(fileURLToPath(import.meta.url));
11
- export async function cliSession(cmd, args, options, fn) {
12
+ export async function cliSession(cmd, args, options, fn = async () => { }) {
12
13
  const { cwd, env, cols = 100, rows = 30, timeoutMs = 8000 } = options;
14
+ const createdConfigDir = env?.ALPIC_GLOBAL_CONFIG_DIR === undefined;
15
+ const globalConfigDir = env?.ALPIC_GLOBAL_CONFIG_DIR ?? (await mkdtemp(join(tmpdir(), "alpic-cli-config-")));
13
16
  const mergedEnv = {
14
17
  ...process.env,
15
- NO_COLOR: "1",
18
+ ALPIC_GLOBAL_CONFIG_DIR: globalConfigDir,
16
19
  // Resolve @alpic-ai/api to TypeScript source via the "development" export condition,
17
20
  // so e2e tests run without building the api package first.
18
21
  NODE_OPTIONS: [process.env.NODE_OPTIONS, "--conditions=development"].filter(Boolean).join(" "),
19
- NODE_TLS_REJECT_UNAUTHORIZED: "0",
20
22
  ...Object.fromEntries(Object.entries(env ?? {}).filter(([, v]) => v !== undefined)),
21
23
  };
22
24
  for (const [k, v] of Object.entries(mergedEnv)) {
@@ -50,7 +52,7 @@ export async function cliSession(cmd, args, options, fn) {
50
52
  term.write(line + "\r");
51
53
  },
52
54
  write: (data) => term.write(data),
53
- output: () => buf,
55
+ output: () => stripVTControlCharacters(buf),
54
56
  clear: () => {
55
57
  buf = "";
56
58
  },
@@ -67,16 +69,23 @@ export async function cliSession(cmd, args, options, fn) {
67
69
  await fn(controller);
68
70
  }
69
71
  finally {
70
- await Promise.race([exitPromise, sleep(1500)]);
71
- controller.stop();
72
- await Promise.race([exitPromise, sleep(200)]);
72
+ const didExitGracefully = await waitForExit(exitPromise, timeoutMs);
73
+ if (!didExitGracefully) {
74
+ controller.stop();
75
+ await Promise.race([exitPromise, sleep(200)]);
76
+ }
77
+ if (createdConfigDir) {
78
+ await rm(globalConfigDir, { recursive: true, force: true });
79
+ }
73
80
  }
74
- return { exitCode, output: buf };
81
+ return { exitCode, output: stripVTControlCharacters(buf) };
75
82
  }
76
83
  function matches(text, pattern) {
77
- if (typeof pattern === "string")
78
- return text.includes(pattern);
79
- return pattern.test(text);
84
+ const normalizedText = stripVTControlCharacters(text);
85
+ if (typeof pattern === "string") {
86
+ return normalizedText.includes(pattern);
87
+ }
88
+ return pattern.test(normalizedText);
80
89
  }
81
90
  async function waitFor(predicate, timeoutMs, getOutput, pattern) {
82
91
  const start = Date.now();
@@ -97,6 +106,9 @@ function patternToString(p) {
97
106
  function sleep(ms) {
98
107
  return new Promise((r) => setTimeout(r, ms));
99
108
  }
109
+ async function waitForExit(exitPromise, timeoutMs) {
110
+ return Promise.race([exitPromise.then(() => true), sleep(timeoutMs).then(() => false)]);
111
+ }
100
112
  export function buildMockProject(params) {
101
113
  const { projectId, teamId, projectName, environmentId, environmentName, sourceRepository = null, sourceBranch = null, } = params;
102
114
  const mcpServerUrl = `https://mcp-${projectId}.alpic.ai`;
@@ -119,6 +131,7 @@ export function buildMockProject(params) {
119
131
  id: environmentId,
120
132
  name: environmentName,
121
133
  mcpServerUrl,
134
+ domains: [],
122
135
  latestDeployment: null,
123
136
  },
124
137
  sourceRepository,
@@ -133,9 +146,9 @@ export function buildMockProject(params) {
133
146
  };
134
147
  }
135
148
  export async function setupTestDirectory(options = {}) {
136
- const { prefix = "alpic-cli-e2e", initGit = false } = options;
149
+ const { initGit = false } = options;
137
150
  const uniqueId = randomUUID();
138
- const cwd = await mkdtemp(join(tmpdir(), `${prefix}-${uniqueId}-`));
151
+ const cwd = await mkdtemp(join(tmpdir(), `alpic-cli-e2e-${uniqueId}-`));
139
152
  const fixturePath = join(__testDirname, "fixtures", "demo-project");
140
153
  await cp(fixturePath, cwd, { recursive: true });
141
154
  if (initGit) {
@@ -177,8 +190,7 @@ export function expectSuccessfulApiCall(call, customAssertions) {
177
190
  * Caller must pass serverUrl so userinfo can be pointed at the mock server.
178
191
  */
179
192
  export function createOAuthEnv(cwd, serverUrl) {
180
- const configHome = join(cwd, ".config");
181
- const alpicConfigDir = join(configHome, "alpic");
193
+ const alpicConfigDir = join(cwd, ".config", "alpic");
182
194
  mkdirSync(alpicConfigDir, { recursive: true });
183
195
  const credentialsPath = join(alpicConfigDir, "credentials.json");
184
196
  const expiresAt = Math.floor(Date.now() / 1000) + 3600; // seconds
@@ -189,9 +201,55 @@ export function createOAuthEnv(cwd, serverUrl) {
189
201
  sub: "test-sub",
190
202
  }), "utf-8");
191
203
  return {
192
- XDG_CONFIG_HOME: configHome,
204
+ ALPIC_GLOBAL_CONFIG_DIR: alpicConfigDir,
193
205
  ALPIC_COGNITO_URL: serverUrl,
194
206
  ALPIC_API_BASE_URL: serverUrl,
195
207
  };
196
208
  }
209
+ export async function verifyConfigFile(cwd, output, expected) {
210
+ const cfgPath = join(cwd, ".alpic", "project.json");
211
+ const cfg = await readFile(cfgPath, "utf8");
212
+ const config = JSON.parse(cfg);
213
+ expect(config.projectName).toBe(expected.projectName);
214
+ if (expected.projectId !== undefined) {
215
+ expect(config.projectId).toBe(expected.projectId);
216
+ }
217
+ else {
218
+ expect(config.projectId).toBeDefined();
219
+ }
220
+ if (expected.teamId !== undefined) {
221
+ expect(config.teamId).toBe(expected.teamId);
222
+ }
223
+ else {
224
+ expect(config.teamId).toBeDefined();
225
+ }
226
+ if (expected.environmentId !== undefined) {
227
+ expect(config.environmentId).toBe(expected.environmentId);
228
+ }
229
+ else {
230
+ expect(config.environmentId).toBeDefined();
231
+ }
232
+ if (expected.environmentName !== undefined) {
233
+ expect(config.environmentName).toBe(expected.environmentName);
234
+ }
235
+ else {
236
+ expect(config.environmentName).toBeDefined();
237
+ }
238
+ expect(output).toMatch(/Deployment completed|Deployment summary/);
239
+ }
240
+ export async function verifyDeploymentFlow(cli, mockServer) {
241
+ await cli.expect(/Collected \d+ file/);
242
+ await cli.expect("Upload complete");
243
+ const uploadCall = mockServer.getLastCall("POST", "/v1/deployments/upload");
244
+ expectSuccessfulApiCall(uploadCall);
245
+ await cli.expect("Deployment started");
246
+ const deployCall = mockServer.getLastCall("POST", /\/v1\/environments\/.*\/deploy/);
247
+ expectSuccessfulApiCall(deployCall);
248
+ await cli.expect("View deployment details:");
249
+ await cli.expect("Deployment summary:");
250
+ const deploymentStatusCalls = mockServer.getCalls("GET", /\/v1\/deployments\/.*/);
251
+ expect(deploymentStatusCalls.length).toBeGreaterThan(0);
252
+ const envCall = mockServer.getLastCall("GET", /\/v1\/environments\/.*/);
253
+ expectSuccessfulApiCall(envCall);
254
+ }
197
255
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/__tests__/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/__tests__/utils.ts"],"names":[],"mappings":"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"}
@@ -2,8 +2,11 @@ import { AlpicCommand } from "../lib/alpic-command.js";
2
2
  export declare class Deploy extends AlpicCommand {
3
3
  static description: string;
4
4
  static examples: string[];
5
- static args: {
6
- directory: import("@oclif/core/interfaces").Arg<string | undefined, Record<string, unknown>>;
5
+ static flags: {
6
+ "non-interactive": import("@oclif/core/interfaces").BooleanFlag<boolean>;
7
+ runtime: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
8
+ "root-dir": import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
9
+ "project-name": import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
7
10
  };
8
11
  run(): Promise<void>;
9
12
  }
@@ -1,43 +1,61 @@
1
1
  import * as p from "@clack/prompts";
2
- import { Args } from "@oclif/core";
2
+ import { Flags } from "@oclif/core";
3
3
  import chalk from "chalk";
4
4
  import { readFileSync, rmSync } from "node:fs";
5
5
  import { api } from "../api.js";
6
6
  import { AlpicCommand } from "../lib/alpic-command.js";
7
7
  import { createTarArchive, getFilesToPack } from "../lib/archive.js";
8
- import { isAuthenticated } from "../lib/auth/auth.js";
9
8
  import { deployAndWait, formatElapsed } from "../lib/deployment.js";
10
- import { resolveDeployDir, resolveProjectForDeploy } from "../lib/project.js";
9
+ import { ProjectWorkflow } from "../lib/project.js";
11
10
  import { uploadToPresignedUrl } from "../lib/upload.js";
11
+ const RUNTIMES = ["node24", "node22", "python3.14", "python3.13"];
12
12
  export class Deploy extends AlpicCommand {
13
13
  static description = "Deploy a project to Alpic";
14
- static examples = ["<%= config.bin %> deploy", "<%= config.bin %> deploy ./my-app"];
15
- static args = {
16
- directory: Args.string({
17
- description: "Directory to deploy (default: current directory)",
14
+ static examples = [
15
+ "<%= config.bin %> deploy",
16
+ "<%= config.bin %> deploy --non-interactive --project-name my-app --runtime node24",
17
+ ];
18
+ static flags = {
19
+ "non-interactive": Flags.boolean({
20
+ description: "Skip all confirmation prompts",
21
+ required: false,
22
+ }),
23
+ runtime: Flags.string({
24
+ description: "New project runtime (node24, node22, python3.14, python3.13)",
25
+ required: false,
26
+ options: RUNTIMES,
27
+ }),
28
+ "root-dir": Flags.string({
29
+ description: "New project root directory (useful for monorepos)",
30
+ required: false,
31
+ }),
32
+ "project-name": Flags.string({
33
+ description: "New project name",
18
34
  required: false,
19
35
  }),
20
36
  };
21
37
  async run() {
22
- const { args } = await this.parse(Deploy);
38
+ const { flags } = await this.parse(Deploy);
39
+ const projectFlags = {
40
+ "non-interactive": flags["non-interactive"],
41
+ projectName: flags["project-name"],
42
+ runtime: flags.runtime,
43
+ rootDir: flags["root-dir"],
44
+ };
23
45
  p.intro("Deploying to Alpic");
24
- if (!(await isAuthenticated())) {
25
- p.cancel("Not authenticated. Run `alpic login` or set ALPIC_API_KEY. Get an API key from Team settings in the Alpic dashboard.");
26
- return;
27
- }
28
- const deployDir = resolveDeployDir(args.directory);
29
- const config = await resolveProjectForDeploy(deployDir);
46
+ await this.ensureAuthenticated();
47
+ const workflow = new ProjectWorkflow(projectFlags);
48
+ const config = await workflow.resolveProjectForDeploy();
30
49
  if (!config) {
31
- p.cancel("Deploy cancelled");
32
- return;
50
+ throw new Error("Deploy cancelled");
33
51
  }
34
52
  const spinner = p.spinner();
35
53
  let tmpDir;
36
54
  try {
37
55
  spinner.start("Collecting source files...");
38
- const files = getFilesToPack(deployDir);
56
+ const files = getFilesToPack();
39
57
  spinner.stop(`Collected ${files.length} file${files.length === 1 ? "" : "s"}`);
40
- const result = await createTarArchive(files, deployDir);
58
+ const result = await createTarArchive(files);
41
59
  tmpDir = result.tmpDir;
42
60
  const archivePath = result.archivePath;
43
61
  const { uploadUrl, token } = await api.deployments.uploadArtifact.v1();
@@ -70,7 +88,7 @@ export class Deploy extends AlpicCommand {
70
88
  catch (error) {
71
89
  spinner.stop();
72
90
  const message = error instanceof Error ? error.message : String(error);
73
- p.cancel(`Error: ${message}`);
91
+ throw new Error(`Error: ${message}`);
74
92
  }
75
93
  finally {
76
94
  if (tmpDir) {
@@ -1 +1 @@
1
- {"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { AlpicCommand } from "../../lib/alpic-command.js";
2
+ export declare class EnvironmentVariableAdd extends AlpicCommand {
3
+ static description: string;
4
+ static examples: string[];
5
+ static flags: {
6
+ "environment-id": import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
7
+ key: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
8
+ value: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
9
+ secret: import("@oclif/core/interfaces").BooleanFlag<boolean>;
10
+ "env-file": import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
11
+ "non-interactive": import("@oclif/core/interfaces").BooleanFlag<boolean>;
12
+ };
13
+ run(): Promise<void>;
14
+ }
@@ -0,0 +1,46 @@
1
+ import { Flags } from "@oclif/core";
2
+ import { AlpicCommand } from "../../lib/alpic-command.js";
3
+ import { EnvironmentVariableWorkflow, resolveEnvironmentId } from "../../lib/environment-variable.js";
4
+ export class EnvironmentVariableAdd extends AlpicCommand {
5
+ static description = "Add one or more environment variables to an environment";
6
+ static examples = [
7
+ "<%= config.bin %> environment-variable add",
8
+ "<%= config.bin %> environment-variable add --key DATABASE_URL --value postgres://localhost/db",
9
+ "<%= config.bin %> environment-variable add --key PORT --value 3000 --no-secret",
10
+ "<%= config.bin %> environment-variable add --env-file .env",
11
+ "<%= config.bin %> environment-variable add --env-file .env --environment-id <environmentId>",
12
+ ];
13
+ static flags = {
14
+ "environment-id": Flags.string({
15
+ description: "The ID of the environment",
16
+ required: false,
17
+ }),
18
+ key: Flags.string({
19
+ description: "The environment variable key",
20
+ required: false,
21
+ }),
22
+ value: Flags.string({
23
+ description: "The environment variable value",
24
+ required: false,
25
+ }),
26
+ secret: Flags.boolean({
27
+ description: "Mark the variable as secret. Defaults to true when not specified.",
28
+ allowNo: true,
29
+ }),
30
+ "env-file": Flags.string({
31
+ description: "Path to a .env file to import variables from (mutually exclusive with --key/--value)",
32
+ required: false,
33
+ }),
34
+ "non-interactive": Flags.boolean({
35
+ description: "Disable interactive prompts. Requires --key and --value (or --env-file).",
36
+ default: false,
37
+ }),
38
+ };
39
+ async run() {
40
+ const { flags } = await this.parse(EnvironmentVariableAdd);
41
+ await this.ensureAuthenticated();
42
+ const environmentId = resolveEnvironmentId(flags);
43
+ await new EnvironmentVariableWorkflow(flags).add(environmentId);
44
+ }
45
+ }
46
+ //# sourceMappingURL=add.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add.js","sourceRoot":"","sources":["../../../src/commands/environment-variable/add.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,2BAA2B,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAEtG,MAAM,OAAO,sBAAuB,SAAQ,YAAY;IACtD,MAAM,CAAU,WAAW,GAAG,yDAAyD,CAAC;IAExF,MAAM,CAAU,QAAQ,GAAG;QACzB,4CAA4C;QAC5C,+FAA+F;QAC/F,gFAAgF;QAChF,4DAA4D;QAC5D,6FAA6F;KAC9F,CAAC;IAEF,MAAM,CAAU,KAAK,GAAG;QACtB,gBAAgB,EAAE,KAAK,CAAC,MAAM,CAAC;YAC7B,WAAW,EAAE,2BAA2B;YACxC,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC;YAChB,WAAW,EAAE,8BAA8B;YAC3C,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC;YAClB,WAAW,EAAE,gCAAgC;YAC7C,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC;YACpB,WAAW,EAAE,mEAAmE;YAChF,OAAO,EAAE,IAAI;SACd,CAAC;QACF,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC;YACvB,WAAW,EAAE,sFAAsF;YACnG,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,iBAAiB,EAAE,KAAK,CAAC,OAAO,CAAC;YAC/B,WAAW,EAAE,0EAA0E;YACvF,OAAO,EAAE,KAAK;SACf,CAAC;KACH,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAE3D,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAEjC,MAAM,aAAa,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAElD,MAAM,IAAI,2BAA2B,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAClE,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { AlpicCommand } from "../../lib/alpic-command.js";
2
+ export declare class EnvironmentVariableList extends AlpicCommand {
3
+ static description: string;
4
+ static examples: string[];
5
+ static flags: {
6
+ "environment-id": import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
7
+ };
8
+ run(): Promise<void>;
9
+ }
@@ -0,0 +1,44 @@
1
+ import * as p from "@clack/prompts";
2
+ import { Flags } from "@oclif/core";
3
+ import chalk from "chalk";
4
+ import { AlpicCommand } from "../../lib/alpic-command.js";
5
+ import { fetchEnvironmentVariables, resolveEnvironmentId } from "../../lib/environment-variable.js";
6
+ import { formatTable } from "../../lib/table.js";
7
+ import { formatAgo } from "../../lib/utils.js";
8
+ export class EnvironmentVariableList extends AlpicCommand {
9
+ static description = "List all environment variables for an environment";
10
+ static examples = [
11
+ "<%= config.bin %> environment-variable list",
12
+ "<%= config.bin %> environment-variable list --environment-id <environmentId>",
13
+ ];
14
+ static flags = {
15
+ "environment-id": Flags.string({
16
+ description: "The ID of the environment",
17
+ required: false,
18
+ }),
19
+ };
20
+ async run() {
21
+ const { flags } = await this.parse(EnvironmentVariableList);
22
+ await this.ensureAuthenticated();
23
+ const environmentId = resolveEnvironmentId(flags);
24
+ const environmentVariables = await fetchEnvironmentVariables(environmentId);
25
+ if (environmentVariables.length === 0) {
26
+ p.log.info("No environment variables defined.");
27
+ return;
28
+ }
29
+ const rows = environmentVariables.map((variable) => ({
30
+ ...variable,
31
+ createdAt: formatAgo(variable.createdAt),
32
+ }));
33
+ console.log(formatTable(rows, [
34
+ { key: "key", header: "key", format: (value) => chalk.cyan(value) },
35
+ {
36
+ key: "value",
37
+ header: "value",
38
+ format: (value, row) => (row.isSecret ? chalk.gray.italic("<secret>") : chalk.bold(value)),
39
+ },
40
+ { key: "createdAt", header: "created at" },
41
+ ]));
42
+ }
43
+ }
44
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/environment-variable/list.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACpG,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,MAAM,OAAO,uBAAwB,SAAQ,YAAY;IACvD,MAAM,CAAU,WAAW,GAAG,mDAAmD,CAAC;IAElF,MAAM,CAAU,QAAQ,GAAG;QACzB,6CAA6C;QAC7C,8EAA8E;KAC/E,CAAC;IAEF,MAAM,CAAU,KAAK,GAAG;QACtB,gBAAgB,EAAE,KAAK,CAAC,MAAM,CAAC;YAC7B,WAAW,EAAE,2BAA2B;YACxC,QAAQ,EAAE,KAAK;SAChB,CAAC;KACH,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC5D,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACjC,MAAM,aAAa,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAClD,MAAM,oBAAoB,GAAG,MAAM,yBAAyB,CAAC,aAAa,CAAC,CAAC;QAE5E,IAAI,oBAAoB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;YAChD,OAAO;QACT,CAAC;QAED,MAAM,IAAI,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YACnD,GAAG,QAAQ;YACX,SAAS,EAAE,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC;SACzC,CAAC,CAAC,CAAC;QAEJ,OAAO,CAAC,GAAG,CACT,WAAW,CAAC,IAAI,EAAE;YAChB,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YACnE;gBACE,GAAG,EAAE,OAAO;gBACZ,MAAM,EAAE,OAAO;gBACf,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAC3F;YACD,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE;SAC3C,CAAC,CACH,CAAC;IACJ,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { AlpicCommand } from "../../lib/alpic-command.js";
2
+ export declare class EnvironmentVariableRemove extends AlpicCommand {
3
+ static description: string;
4
+ static examples: string[];
5
+ static flags: {
6
+ "environment-id": import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
7
+ key: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
8
+ "non-interactive": import("@oclif/core/interfaces").BooleanFlag<boolean>;
9
+ };
10
+ run(): Promise<void>;
11
+ }
@@ -0,0 +1,32 @@
1
+ import { Flags } from "@oclif/core";
2
+ import { AlpicCommand } from "../../lib/alpic-command.js";
3
+ import { EnvironmentVariableWorkflow, resolveEnvironmentId } from "../../lib/environment-variable.js";
4
+ export class EnvironmentVariableRemove extends AlpicCommand {
5
+ static description = "Remove an environment variable";
6
+ static examples = [
7
+ "<%= config.bin %> environment-variable remove",
8
+ "<%= config.bin %> environment-variable remove --key DATABASE_URL",
9
+ "<%= config.bin %> environment-variable remove --key DATABASE_URL --environment-id <environmentId>",
10
+ ];
11
+ static flags = {
12
+ "environment-id": Flags.string({
13
+ description: "The ID of the environment",
14
+ required: false,
15
+ }),
16
+ key: Flags.string({
17
+ description: "The key of the environment variable to remove",
18
+ required: false,
19
+ }),
20
+ "non-interactive": Flags.boolean({
21
+ description: "Disable interactive prompts. Requires --key.",
22
+ default: false,
23
+ }),
24
+ };
25
+ async run() {
26
+ const { flags } = await this.parse(EnvironmentVariableRemove);
27
+ await this.ensureAuthenticated();
28
+ const environmentId = resolveEnvironmentId(flags);
29
+ await new EnvironmentVariableWorkflow(flags).remove(environmentId);
30
+ }
31
+ }
32
+ //# sourceMappingURL=remove.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove.js","sourceRoot":"","sources":["../../../src/commands/environment-variable/remove.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,2BAA2B,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAEtG,MAAM,OAAO,yBAA0B,SAAQ,YAAY;IACzD,MAAM,CAAU,WAAW,GAAG,gCAAgC,CAAC;IAE/D,MAAM,CAAU,QAAQ,GAAG;QACzB,+CAA+C;QAC/C,kEAAkE;QAClE,mGAAmG;KACpG,CAAC;IAEF,MAAM,CAAU,KAAK,GAAG;QACtB,gBAAgB,EAAE,KAAK,CAAC,MAAM,CAAC;YAC7B,WAAW,EAAE,2BAA2B;YACxC,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC;YAChB,WAAW,EAAE,+CAA+C;YAC5D,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,iBAAiB,EAAE,KAAK,CAAC,OAAO,CAAC;YAC/B,WAAW,EAAE,8CAA8C;YAC3D,OAAO,EAAE,KAAK;SACf,CAAC;KACH,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAE9D,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAEjC,MAAM,aAAa,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAElD,MAAM,IAAI,2BAA2B,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IACrE,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { AlpicCommand } from "../../lib/alpic-command.js";
2
+ export declare class EnvironmentVariableUpdate extends AlpicCommand {
3
+ static description: string;
4
+ static examples: string[];
5
+ static flags: {
6
+ "environment-id": import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
7
+ key: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
8
+ value: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
9
+ secret: import("@oclif/core/interfaces").BooleanFlag<boolean>;
10
+ "non-interactive": import("@oclif/core/interfaces").BooleanFlag<boolean>;
11
+ };
12
+ run(): Promise<void>;
13
+ }
@@ -0,0 +1,40 @@
1
+ import { Flags } from "@oclif/core";
2
+ import { AlpicCommand } from "../../lib/alpic-command.js";
3
+ import { EnvironmentVariableWorkflow, resolveEnvironmentId } from "../../lib/environment-variable.js";
4
+ export class EnvironmentVariableUpdate extends AlpicCommand {
5
+ static description = "Update the value and/or secret status of an environment variable";
6
+ static examples = [
7
+ "<%= config.bin %> environment-variable update",
8
+ "<%= config.bin %> environment-variable update --key DATABASE_URL --value postgres://prod/db",
9
+ "<%= config.bin %> environment-variable update --key PORT --value 8080 --environment-id <environmentId>",
10
+ ];
11
+ static flags = {
12
+ "environment-id": Flags.string({
13
+ description: "The ID of the environment",
14
+ required: false,
15
+ }),
16
+ key: Flags.string({
17
+ description: "The key of the environment variable to update",
18
+ required: false,
19
+ }),
20
+ value: Flags.string({
21
+ description: "The new value (omit to keep the current value)",
22
+ required: false,
23
+ }),
24
+ secret: Flags.boolean({
25
+ description: "Mark the variable as secret. Use --no-secret to make it visible.",
26
+ allowNo: true,
27
+ }),
28
+ "non-interactive": Flags.boolean({
29
+ description: "Disable interactive prompts. Requires --key and one of --value or --secret/--no-secret.",
30
+ default: false,
31
+ }),
32
+ };
33
+ async run() {
34
+ const { flags } = await this.parse(EnvironmentVariableUpdate);
35
+ await this.ensureAuthenticated();
36
+ const environmentId = resolveEnvironmentId(flags);
37
+ await new EnvironmentVariableWorkflow(flags).update(environmentId);
38
+ }
39
+ }
40
+ //# sourceMappingURL=update.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/commands/environment-variable/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,2BAA2B,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAEtG,MAAM,OAAO,yBAA0B,SAAQ,YAAY;IACzD,MAAM,CAAU,WAAW,GAAG,kEAAkE,CAAC;IAEjG,MAAM,CAAU,QAAQ,GAAG;QACzB,+CAA+C;QAC/C,6FAA6F;QAC7F,wGAAwG;KACzG,CAAC;IAEF,MAAM,CAAU,KAAK,GAAG;QACtB,gBAAgB,EAAE,KAAK,CAAC,MAAM,CAAC;YAC7B,WAAW,EAAE,2BAA2B;YACxC,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC;YAChB,WAAW,EAAE,+CAA+C;YAC5D,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC;YAClB,WAAW,EAAE,gDAAgD;YAC7D,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC;YACpB,WAAW,EAAE,kEAAkE;YAC/E,OAAO,EAAE,IAAI;SACd,CAAC;QACF,iBAAiB,EAAE,KAAK,CAAC,OAAO,CAAC;YAC/B,WAAW,EAAE,yFAAyF;YACtG,OAAO,EAAE,KAAK;SACf,CAAC;KACH,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAE9D,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAEjC,MAAM,aAAa,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAElD,MAAM,IAAI,2BAA2B,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IACrE,CAAC"}
@@ -2,8 +2,9 @@ import { AlpicCommand } from "../../lib/alpic-command.js";
2
2
  export default class GitConnect extends AlpicCommand {
3
3
  static description: string;
4
4
  static examples: string[];
5
- static args: {
6
- directory: import("@oclif/core/interfaces").Arg<string | undefined, Record<string, unknown>>;
5
+ static flags: {
6
+ "non-interactive": import("@oclif/core/interfaces").BooleanFlag<boolean>;
7
+ "remote-name": import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
7
8
  };
8
9
  run(): Promise<void>;
9
10
  }