alpic 0.0.0-dev.f74887d → 0.0.0-dev.f7f40ea
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/dist/__tests__/auth.e2e.test.js +16 -0
- package/dist/__tests__/auth.e2e.test.js.map +1 -1
- package/dist/__tests__/deploy-flags.e2e.test.js +14 -4
- package/dist/__tests__/deploy-flags.e2e.test.js.map +1 -1
- package/dist/__tests__/deployment-inspect.e2e.test.d.ts +1 -0
- package/dist/__tests__/deployment-inspect.e2e.test.js +113 -0
- package/dist/__tests__/deployment-inspect.e2e.test.js.map +1 -0
- package/dist/__tests__/deployment-list.e2e.test.d.ts +1 -0
- package/dist/__tests__/deployment-list.e2e.test.js +116 -0
- package/dist/__tests__/deployment-list.e2e.test.js.map +1 -0
- package/dist/__tests__/deployment-logs.e2e.test.d.ts +1 -0
- package/dist/__tests__/deployment-logs.e2e.test.js +255 -0
- package/dist/__tests__/deployment-logs.e2e.test.js.map +1 -0
- package/dist/__tests__/environment-variable/environment-variable-add.e2e.test.d.ts +1 -0
- package/dist/__tests__/environment-variable/environment-variable-add.e2e.test.js +260 -0
- package/dist/__tests__/environment-variable/environment-variable-add.e2e.test.js.map +1 -0
- package/dist/__tests__/environment-variable/environment-variable-list.e2e.test.d.ts +1 -0
- package/dist/__tests__/environment-variable/environment-variable-list.e2e.test.js +140 -0
- package/dist/__tests__/environment-variable/environment-variable-list.e2e.test.js.map +1 -0
- package/dist/__tests__/environment-variable/environment-variable-remove.e2e.test.d.ts +1 -0
- package/dist/__tests__/environment-variable/environment-variable-remove.e2e.test.js +151 -0
- package/dist/__tests__/environment-variable/environment-variable-remove.e2e.test.js.map +1 -0
- package/dist/__tests__/environment-variable/environment-variable-update.e2e.test.d.ts +1 -0
- package/dist/__tests__/environment-variable/environment-variable-update.e2e.test.js +343 -0
- package/dist/__tests__/environment-variable/environment-variable-update.e2e.test.js.map +1 -0
- package/dist/__tests__/environment-variable/environment-variable-validation.test.d.ts +1 -0
- package/dist/__tests__/environment-variable/environment-variable-validation.test.js +20 -0
- package/dist/__tests__/environment-variable/environment-variable-validation.test.js.map +1 -0
- package/dist/__tests__/git-flags.e2e.test.js +6 -6
- package/dist/__tests__/git-flags.e2e.test.js.map +1 -1
- package/dist/__tests__/git.e2e.test.js +2 -2
- package/dist/__tests__/logs.e2e.test.d.ts +1 -0
- package/dist/__tests__/logs.e2e.test.js +227 -0
- package/dist/__tests__/logs.e2e.test.js.map +1 -0
- package/dist/__tests__/mock-server.d.ts +16 -0
- package/dist/__tests__/mock-server.js +255 -20
- package/dist/__tests__/mock-server.js.map +1 -1
- package/dist/__tests__/publish.e2e.test.d.ts +1 -0
- package/dist/__tests__/publish.e2e.test.js +505 -0
- package/dist/__tests__/publish.e2e.test.js.map +1 -0
- package/dist/__tests__/tunnel.e2e.test.d.ts +1 -0
- package/dist/__tests__/tunnel.e2e.test.js +64 -0
- package/dist/__tests__/tunnel.e2e.test.js.map +1 -0
- package/dist/__tests__/utils.d.ts +5 -0
- package/dist/__tests__/utils.js +44 -15
- package/dist/__tests__/utils.js.map +1 -1
- package/dist/api.d.ts +1 -1
- package/dist/api.js +1 -1
- package/dist/api.js.map +1 -1
- package/dist/commands/deploy.d.ts +1 -1
- package/dist/commands/deploy.js +13 -10
- package/dist/commands/deploy.js.map +1 -1
- package/dist/commands/deployment/inspect.d.ts +11 -0
- package/dist/commands/deployment/inspect.js +91 -0
- package/dist/commands/deployment/inspect.js.map +1 -0
- package/dist/commands/deployment/list.d.ts +11 -0
- package/dist/commands/deployment/list.js +97 -0
- package/dist/commands/deployment/list.js.map +1 -0
- package/dist/commands/deployment/logs.d.ts +12 -0
- package/dist/commands/deployment/logs.js +50 -0
- package/dist/commands/deployment/logs.js.map +1 -0
- package/dist/commands/environment-variable/add.d.ts +14 -0
- package/dist/commands/environment-variable/add.js +46 -0
- package/dist/commands/environment-variable/add.js.map +1 -0
- package/dist/commands/environment-variable/list.d.ts +9 -0
- package/dist/commands/environment-variable/list.js +44 -0
- package/dist/commands/environment-variable/list.js.map +1 -0
- package/dist/commands/environment-variable/remove.d.ts +11 -0
- package/dist/commands/environment-variable/remove.js +32 -0
- package/dist/commands/environment-variable/remove.js.map +1 -0
- package/dist/commands/environment-variable/update.d.ts +13 -0
- package/dist/commands/environment-variable/update.js +40 -0
- package/dist/commands/environment-variable/update.js.map +1 -0
- package/dist/commands/git/connect.d.ts +1 -1
- package/dist/commands/git/connect.js +11 -12
- package/dist/commands/git/connect.js.map +1 -1
- package/dist/commands/git/disconnect.d.ts +1 -1
- package/dist/commands/git/disconnect.js +11 -11
- package/dist/commands/git/disconnect.js.map +1 -1
- package/dist/commands/login.js +4 -2
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/logs.d.ts +16 -0
- package/dist/commands/logs.js +96 -0
- package/dist/commands/logs.js.map +1 -0
- package/dist/commands/publish.d.ts +15 -0
- package/dist/commands/publish.js +51 -0
- package/dist/commands/publish.js.map +1 -0
- package/dist/commands/tunnel.d.ts +9 -0
- package/dist/commands/tunnel.js +53 -0
- package/dist/commands/tunnel.js.map +1 -0
- package/dist/lib/auth/oauth/server/index.js +5 -2
- package/dist/lib/auth/oauth/server/index.js.map +1 -1
- package/dist/lib/base-workflow.d.ts +1 -1
- package/dist/lib/base-workflow.js +1 -1
- package/dist/lib/base-workflow.js.map +1 -1
- package/dist/lib/deployment.d.ts +68 -0
- package/dist/lib/deployment.js +111 -3
- package/dist/lib/deployment.js.map +1 -1
- package/dist/lib/environment-variable.d.ts +41 -0
- package/dist/lib/environment-variable.js +311 -0
- package/dist/lib/environment-variable.js.map +1 -0
- package/dist/lib/git.d.ts +3 -3
- package/dist/lib/git.js +5 -7
- package/dist/lib/git.js.map +1 -1
- package/dist/lib/global-store.js +2 -2
- package/dist/lib/global-store.js.map +1 -1
- package/dist/lib/logs.d.ts +20 -0
- package/dist/lib/logs.js +86 -0
- package/dist/lib/logs.js.map +1 -0
- package/dist/lib/project.d.ts +4 -1
- package/dist/lib/project.js +16 -7
- package/dist/lib/project.js.map +1 -1
- package/dist/lib/publish.d.ts +22 -0
- package/dist/lib/publish.js +188 -0
- package/dist/lib/publish.js.map +1 -0
- package/dist/lib/table.d.ts +8 -0
- package/dist/lib/table.js +27 -0
- package/dist/lib/table.js.map +1 -0
- package/dist/lib/telemetry.js +1 -1
- package/dist/lib/telemetry.js.map +1 -1
- package/dist/lib/utils.d.ts +4 -0
- package/dist/lib/utils.js +45 -0
- package/dist/lib/utils.js.map +1 -0
- package/dist/lib/utils.test.d.ts +1 -0
- package/dist/lib/utils.test.js +27 -0
- package/dist/lib/utils.test.js.map +1 -0
- package/package.json +24 -19
|
@@ -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"}
|
|
@@ -3,7 +3,7 @@ export default class GitConnect extends AlpicCommand {
|
|
|
3
3
|
static description: string;
|
|
4
4
|
static examples: string[];
|
|
5
5
|
static flags: {
|
|
6
|
-
|
|
6
|
+
"non-interactive": import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
7
7
|
"remote-name": import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
8
8
|
};
|
|
9
9
|
run(): Promise<void>;
|
|
@@ -4,17 +4,16 @@ import chalk from "chalk";
|
|
|
4
4
|
import { api } from "../../api.js";
|
|
5
5
|
import { AlpicCommand } from "../../lib/alpic-command.js";
|
|
6
6
|
import { config } from "../../lib/config.js";
|
|
7
|
-
import {
|
|
7
|
+
import { confirmLinkAnotherIfAlreadyConnected, GitWorkflow, isGitRepository, listGithubRemotes, showGitSetupInstructions, } from "../../lib/git.js";
|
|
8
8
|
export default class GitConnect extends AlpicCommand {
|
|
9
9
|
static description = "Connect a linked Alpic project to a git remote source";
|
|
10
10
|
static examples = [
|
|
11
11
|
"<%= config.bin %> git connect",
|
|
12
|
-
"<%= config.bin %> git connect --
|
|
12
|
+
"<%= config.bin %> git connect --non-interactive",
|
|
13
13
|
"<%= config.bin %> git connect --remote-name origin",
|
|
14
14
|
];
|
|
15
15
|
static flags = {
|
|
16
|
-
|
|
17
|
-
char: "y",
|
|
16
|
+
"non-interactive": Flags.boolean({
|
|
18
17
|
description: "Automatically select the remote when only one is available",
|
|
19
18
|
default: false,
|
|
20
19
|
}),
|
|
@@ -41,15 +40,15 @@ export default class GitConnect extends AlpicCommand {
|
|
|
41
40
|
showGitSetupInstructions();
|
|
42
41
|
return;
|
|
43
42
|
}
|
|
44
|
-
const project = await api.projects.get.v1({
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
const workflow = new GitWorkflow({
|
|
43
|
+
const project = await api.projects.get.v1({
|
|
44
|
+
projectId: linkedConfig.projectId,
|
|
45
|
+
});
|
|
46
|
+
await confirmLinkAnotherIfAlreadyConnected(project);
|
|
47
|
+
const workflow = new GitWorkflow({
|
|
48
|
+
"non-interactive": flags["non-interactive"],
|
|
49
|
+
remoteName: flags["remote-name"],
|
|
50
|
+
});
|
|
49
51
|
const selectedSourceRepository = await workflow.selectRemoteSourceRepository(remotes);
|
|
50
|
-
if (selectedSourceRepository === null) {
|
|
51
|
-
throw new Error("No remote source repository selected.");
|
|
52
|
-
}
|
|
53
52
|
await api.projects.update.v1({
|
|
54
53
|
projectId: linkedConfig.projectId,
|
|
55
54
|
sourceRepository: selectedSourceRepository,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connect.js","sourceRoot":"","sources":["../../../src/commands/git/connect.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,GAAG,EAAE,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EACL,WAAW,EACX,
|
|
1
|
+
{"version":3,"file":"connect.js","sourceRoot":"","sources":["../../../src/commands/git/connect.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,GAAG,EAAE,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EACL,oCAAoC,EACpC,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,wBAAwB,GACzB,MAAM,kBAAkB,CAAC;AAE1B,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,YAAY;IAClD,MAAM,CAAU,WAAW,GAAG,uDAAuD,CAAC;IAEtF,MAAM,CAAU,QAAQ,GAAG;QACzB,+BAA+B;QAC/B,iDAAiD;QACjD,oDAAoD;KACrD,CAAC;IAEF,MAAM,CAAU,KAAK,GAAG;QACtB,iBAAiB,EAAE,KAAK,CAAC,OAAO,CAAC;YAC/B,WAAW,EAAE,4DAA4D;YACzE,OAAO,EAAE,KAAK;SACf,CAAC;QACF,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC;YAC1B,WAAW,EAAE,+BAA+B;SAC7C,CAAC;KACH,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC/C,CAAC,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;QAE9C,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAEjC,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;QACnC,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,uFAAuF,CAAC,CAAC;QAC3G,CAAC;QAED,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC;YACvB,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,yCAAyC,CAAC,CAAC;YACzD,wBAAwB,EAAE,CAAC;YAC3B,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG,iBAAiB,EAAE,CAAC;QACpC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,gDAAgD,CAAC,CAAC;YAChE,wBAAwB,EAAE,CAAC;YAC3B,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACxC,SAAS,EAAE,YAAY,CAAC,SAAS;SAClC,CAAC,CAAC;QACH,MAAM,oCAAoC,CAAC,OAAO,CAAC,CAAC;QAEpD,MAAM,QAAQ,GAAG,IAAI,WAAW,CAAC;YAC/B,iBAAiB,EAAE,KAAK,CAAC,iBAAiB,CAAC;YAC3C,UAAU,EAAE,KAAK,CAAC,aAAa,CAAC;SACjC,CAAC,CAAC;QACH,MAAM,wBAAwB,GAAG,MAAM,QAAQ,CAAC,4BAA4B,CAAC,OAAO,CAAC,CAAC;QAEtF,MAAM,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,SAAS,EAAE,YAAY,CAAC,SAAS;YACjC,gBAAgB,EAAE,wBAAwB;SAC3C,CAAC,CAAC;QAEH,CAAC,CAAC,GAAG,CAAC,IAAI,CACR,oHAAoH,CACrH,CAAC;QACF,CAAC,CAAC,KAAK,CAAC,eAAe,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,eAAe,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzG,CAAC"}
|
|
@@ -3,7 +3,7 @@ export default class GitDisconnect extends AlpicCommand {
|
|
|
3
3
|
static description: string;
|
|
4
4
|
static examples: string[];
|
|
5
5
|
static flags: {
|
|
6
|
-
|
|
6
|
+
"non-interactive": import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
7
7
|
};
|
|
8
8
|
run(): Promise<void>;
|
|
9
9
|
}
|
|
@@ -7,10 +7,9 @@ import { config } from "../../lib/config.js";
|
|
|
7
7
|
import { GitWorkflow } from "../../lib/git.js";
|
|
8
8
|
export default class GitDisconnect extends AlpicCommand {
|
|
9
9
|
static description = "Disconnect a linked Alpic project from its git remote source";
|
|
10
|
-
static examples = ["<%= config.bin %> git disconnect", "<%= config.bin %> git disconnect --
|
|
10
|
+
static examples = ["<%= config.bin %> git disconnect", "<%= config.bin %> git disconnect --non-interactive"];
|
|
11
11
|
static flags = {
|
|
12
|
-
|
|
13
|
-
char: "y",
|
|
12
|
+
"non-interactive": Flags.boolean({
|
|
14
13
|
description: "Skip the confirmation prompt",
|
|
15
14
|
default: false,
|
|
16
15
|
}),
|
|
@@ -21,19 +20,20 @@ export default class GitDisconnect extends AlpicCommand {
|
|
|
21
20
|
await this.ensureAuthenticated();
|
|
22
21
|
const linkedConfig = config.load();
|
|
23
22
|
if (!linkedConfig) {
|
|
24
|
-
|
|
25
|
-
return;
|
|
23
|
+
throw new Error("This directory is not linked to an Alpic project. Link it first using `alpic deploy`.");
|
|
26
24
|
}
|
|
27
|
-
const project = await api.projects.get.v1({
|
|
25
|
+
const project = await api.projects.get.v1({
|
|
26
|
+
projectId: linkedConfig.projectId,
|
|
27
|
+
});
|
|
28
28
|
if (!project.sourceRepository) {
|
|
29
|
-
|
|
30
|
-
return;
|
|
29
|
+
throw new Error(`Project "${project.name}" is not connected to any repository.`);
|
|
31
30
|
}
|
|
32
|
-
const workflow = new GitWorkflow({
|
|
31
|
+
const workflow = new GitWorkflow({
|
|
32
|
+
"non-interactive": flags["non-interactive"],
|
|
33
|
+
});
|
|
33
34
|
const confirmed = await workflow.confirmDisconnect(project.sourceRepository, project.name);
|
|
34
35
|
if (!confirmed) {
|
|
35
|
-
|
|
36
|
-
return;
|
|
36
|
+
throw new Error("Git disconnect cancelled");
|
|
37
37
|
}
|
|
38
38
|
await api.projects.update.v1({
|
|
39
39
|
projectId: linkedConfig.projectId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"disconnect.js","sourceRoot":"","sources":["../../../src/commands/git/disconnect.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,GAAG,EAAE,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,YAAY;IACrD,MAAM,CAAU,WAAW,GAAG,8DAA8D,CAAC;IAE7F,MAAM,CAAU,QAAQ,GAAG,CAAC,kCAAkC,EAAE,
|
|
1
|
+
{"version":3,"file":"disconnect.js","sourceRoot":"","sources":["../../../src/commands/git/disconnect.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,GAAG,EAAE,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,YAAY;IACrD,MAAM,CAAU,WAAW,GAAG,8DAA8D,CAAC;IAE7F,MAAM,CAAU,QAAQ,GAAG,CAAC,kCAAkC,EAAE,oDAAoD,CAAC,CAAC;IAEtH,MAAM,CAAU,KAAK,GAAG;QACtB,iBAAiB,EAAE,KAAK,CAAC,OAAO,CAAC;YAC/B,WAAW,EAAE,8BAA8B;YAC3C,OAAO,EAAE,KAAK;SACf,CAAC;KACH,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAClD,CAAC,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAEnD,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAEjC,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;QACnC,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,uFAAuF,CAAC,CAAC;QAC3G,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACxC,SAAS,EAAE,YAAY,CAAC,SAAS;SAClC,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,YAAY,OAAO,CAAC,IAAI,uCAAuC,CAAC,CAAC;QACnF,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,WAAW,CAAC;YAC/B,iBAAiB,EAAE,KAAK,CAAC,iBAAiB,CAAC;SAC5C,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,iBAAiB,CAAC,OAAO,CAAC,gBAAgB,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QAC3F,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC9C,CAAC;QAED,MAAM,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,SAAS,EAAE,YAAY,CAAC,SAAS;YACjC,gBAAgB,EAAE,IAAI;SACvB,CAAC,CAAC;QAEH,CAAC,CAAC,KAAK,CAAC,kBAAkB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,iBAAiB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9G,CAAC"}
|
package/dist/commands/login.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as p from "@clack/prompts";
|
|
2
|
+
import chalk from "chalk";
|
|
2
3
|
import open from "open";
|
|
3
4
|
import { AlpicCommand } from "../lib/alpic-command.js";
|
|
4
5
|
import { oAuthClient } from "../lib/auth/oauth/client.js";
|
|
@@ -17,8 +18,9 @@ export class Login extends AlpicCommand {
|
|
|
17
18
|
return;
|
|
18
19
|
}
|
|
19
20
|
const { authorizeUrl, state, nonce, codeVerifier } = await oAuthClient.prepareOAuthConfig();
|
|
20
|
-
|
|
21
|
-
|
|
21
|
+
const loginUrl = getLoginPageUrl();
|
|
22
|
+
p.log.message(`Opening browser to log in…\n\nIf the browser does not open, copy this URL: ${chalk.cyan(loginUrl)}`);
|
|
23
|
+
await open(loginUrl);
|
|
22
24
|
const storedToken = await listenToOAuthCallback({
|
|
23
25
|
state,
|
|
24
26
|
nonce,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AACpC,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC3F,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD,MAAM,OAAO,KAAM,SAAQ,YAAY;IACrC,MAAM,CAAU,WAAW,GAAG,gDAAgD,CAAC;IAE/E,MAAM,CAAU,QAAQ,GAAG,CAAC,yBAAyB,CAAC,CAAC;IAEvD,KAAK,CAAC,GAAG;QACP,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAExB,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAE3B,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,mBAAmB,EAAE,CAAC;QACtD,IAAI,KAAK,EAAE,CAAC;YACV,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;YAC9B,OAAO;QACT,CAAC;QAED,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,MAAM,WAAW,CAAC,kBAAkB,EAAE,CAAC;QAE5F,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC3F,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD,MAAM,OAAO,KAAM,SAAQ,YAAY;IACrC,MAAM,CAAU,WAAW,GAAG,gDAAgD,CAAC;IAE/E,MAAM,CAAU,QAAQ,GAAG,CAAC,yBAAyB,CAAC,CAAC;IAEvD,KAAK,CAAC,GAAG;QACP,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAExB,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAE3B,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,mBAAmB,EAAE,CAAC;QACtD,IAAI,KAAK,EAAE,CAAC;YACV,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;YAC9B,OAAO;QACT,CAAC;QAED,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,MAAM,WAAW,CAAC,kBAAkB,EAAE,CAAC;QAE5F,MAAM,QAAQ,GAAG,eAAe,EAAE,CAAC;QACnC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,8EAA8E,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACpH,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC;QAErB,MAAM,WAAW,GAAG,MAAM,qBAAqB,CAAC;YAC9C,KAAK;YACL,KAAK;YACL,YAAY;YACZ,YAAY,EAAE,YAAY,CAAC,QAAQ,EAAE;SACtC,CAAC,CAAC;QAEH,WAAW,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QAEzC,CAAC,CAAC,KAAK,CAAC,MAAM,oBAAoB,EAAE,CAAC,CAAC;IACxC,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { AlpicCommand } from "../lib/alpic-command.js";
|
|
2
|
+
export declare class Logs 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
|
+
since: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
8
|
+
until: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
9
|
+
limit: import("@oclif/core/interfaces").OptionFlag<number | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
10
|
+
follow: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
11
|
+
level: import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
12
|
+
search: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
13
|
+
"no-color": import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
14
|
+
};
|
|
15
|
+
run(): Promise<void>;
|
|
16
|
+
}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { Flags } from "@oclif/core";
|
|
2
|
+
import { api } from "../api.js";
|
|
3
|
+
import { AlpicCommand } from "../lib/alpic-command.js";
|
|
4
|
+
import { resolveEnvironmentId } from "../lib/environment-variable.js";
|
|
5
|
+
import { followEnvironmentLogs, parseLevel, printLog } from "../lib/logs.js";
|
|
6
|
+
export class Logs extends AlpicCommand {
|
|
7
|
+
static description = "Stream runtime logs for an environment";
|
|
8
|
+
static examples = [
|
|
9
|
+
"<%= config.bin %> logs --environment-id <environmentId>",
|
|
10
|
+
"<%= config.bin %> logs --environment-id <environmentId> --since 1h",
|
|
11
|
+
"<%= config.bin %> logs --environment-id <environmentId> --follow",
|
|
12
|
+
"<%= config.bin %> logs --environment-id <environmentId> --level ERROR --level WARNING",
|
|
13
|
+
"<%= config.bin %> logs --environment-id <environmentId> --search 'timeout' --limit 50",
|
|
14
|
+
"<%= config.bin %> logs --environment-id <environmentId> --no-color",
|
|
15
|
+
];
|
|
16
|
+
static flags = {
|
|
17
|
+
"environment-id": Flags.string({
|
|
18
|
+
description: "The ID of the environment",
|
|
19
|
+
required: false,
|
|
20
|
+
}),
|
|
21
|
+
since: Flags.string({
|
|
22
|
+
description: "Show logs after this time (e.g. 1h, 30m, 2024-01-01T00:00:00Z)",
|
|
23
|
+
required: false,
|
|
24
|
+
}),
|
|
25
|
+
until: Flags.string({
|
|
26
|
+
description: "Show logs before this time (e.g. 1h, 30m, 2024-01-01T00:00:00Z). Cannot be used with --follow",
|
|
27
|
+
required: false,
|
|
28
|
+
}),
|
|
29
|
+
limit: Flags.integer({
|
|
30
|
+
char: "n",
|
|
31
|
+
description: "Maximum number of log entries to fetch. Cannot be used with --follow",
|
|
32
|
+
required: false,
|
|
33
|
+
min: 1,
|
|
34
|
+
max: 1000,
|
|
35
|
+
}),
|
|
36
|
+
follow: Flags.boolean({
|
|
37
|
+
char: "f",
|
|
38
|
+
description: "Poll for new logs continuously",
|
|
39
|
+
required: false,
|
|
40
|
+
default: false,
|
|
41
|
+
}),
|
|
42
|
+
level: Flags.string({
|
|
43
|
+
description: "Filter by log level (INFO, ERROR, WARNING, DEBUG)",
|
|
44
|
+
required: false,
|
|
45
|
+
multiple: true,
|
|
46
|
+
}),
|
|
47
|
+
search: Flags.string({
|
|
48
|
+
description: "Filter logs. Accepts a regex-style pattern or plain text",
|
|
49
|
+
required: false,
|
|
50
|
+
}),
|
|
51
|
+
"no-color": Flags.boolean({
|
|
52
|
+
description: "Disable colorized output and show log levels as text",
|
|
53
|
+
required: false,
|
|
54
|
+
default: false,
|
|
55
|
+
}),
|
|
56
|
+
};
|
|
57
|
+
async run() {
|
|
58
|
+
const { flags } = await this.parse(Logs);
|
|
59
|
+
await this.ensureAuthenticated();
|
|
60
|
+
const environmentId = resolveEnvironmentId(flags);
|
|
61
|
+
const level = flags.level !== undefined ? parseLevel(flags.level) : undefined;
|
|
62
|
+
if (flags.follow && flags.until !== undefined) {
|
|
63
|
+
throw new Error("--until cannot be used with --follow");
|
|
64
|
+
}
|
|
65
|
+
if (flags.follow && flags.limit !== undefined) {
|
|
66
|
+
throw new Error("--limit cannot be used with --follow");
|
|
67
|
+
}
|
|
68
|
+
const options = {
|
|
69
|
+
environmentId,
|
|
70
|
+
since: flags.since ?? (flags.follow ? "10m" : undefined),
|
|
71
|
+
until: flags.until,
|
|
72
|
+
limit: flags.limit,
|
|
73
|
+
level,
|
|
74
|
+
search: flags.search,
|
|
75
|
+
};
|
|
76
|
+
const { logs, nextToken } = await api.environments.getLogs.v1(options);
|
|
77
|
+
const onLog = (log) => {
|
|
78
|
+
printLog(log, { noColor: flags["no-color"] });
|
|
79
|
+
};
|
|
80
|
+
for (const log of logs) {
|
|
81
|
+
onLog(log);
|
|
82
|
+
}
|
|
83
|
+
if (!flags.follow)
|
|
84
|
+
return;
|
|
85
|
+
await followEnvironmentLogs({
|
|
86
|
+
environmentId,
|
|
87
|
+
limit: flags.limit,
|
|
88
|
+
level,
|
|
89
|
+
search: flags.search,
|
|
90
|
+
nextToken,
|
|
91
|
+
initialLogs: logs,
|
|
92
|
+
onLog,
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=logs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logs.js","sourceRoot":"","sources":["../../src/commands/logs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { AlpicCommand } from "../lib/alpic-command.js";
|
|
2
|
+
export declare class Publish extends AlpicCommand {
|
|
3
|
+
static description: string;
|
|
4
|
+
static examples: string[];
|
|
5
|
+
static flags: {
|
|
6
|
+
"non-interactive": import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
7
|
+
domain: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
8
|
+
title: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
9
|
+
description: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
10
|
+
"website-url": import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
11
|
+
"icon-src": import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
12
|
+
"project-id": import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
13
|
+
};
|
|
14
|
+
run(): Promise<void>;
|
|
15
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import * as p from "@clack/prompts";
|
|
2
|
+
import { Flags } from "@oclif/core";
|
|
3
|
+
import { AlpicCommand } from "../lib/alpic-command.js";
|
|
4
|
+
import { resolveProjectId } from "../lib/project.js";
|
|
5
|
+
import { PublishWorkflow } from "../lib/publish.js";
|
|
6
|
+
export class Publish extends AlpicCommand {
|
|
7
|
+
static description = "Publish your MCP server to the MCP registry";
|
|
8
|
+
static examples = [
|
|
9
|
+
"<%= config.bin %> publish",
|
|
10
|
+
"<%= config.bin %> publish --non-interactive --domain my.domain.com --title 'My Server' --description 'Does things'",
|
|
11
|
+
];
|
|
12
|
+
static flags = {
|
|
13
|
+
"non-interactive": Flags.boolean({
|
|
14
|
+
description: "Skip all prompts",
|
|
15
|
+
required: false,
|
|
16
|
+
}),
|
|
17
|
+
domain: Flags.string({
|
|
18
|
+
description: "Domain to publish for",
|
|
19
|
+
required: false,
|
|
20
|
+
}),
|
|
21
|
+
title: Flags.string({
|
|
22
|
+
description: "Server title (1-100 chars)",
|
|
23
|
+
required: false,
|
|
24
|
+
}),
|
|
25
|
+
description: Flags.string({
|
|
26
|
+
description: "Server description (1-100 chars)",
|
|
27
|
+
required: false,
|
|
28
|
+
}),
|
|
29
|
+
"website-url": Flags.string({
|
|
30
|
+
description: "Website URL",
|
|
31
|
+
required: false,
|
|
32
|
+
}),
|
|
33
|
+
"icon-src": Flags.string({
|
|
34
|
+
description: "Icon URL",
|
|
35
|
+
required: false,
|
|
36
|
+
}),
|
|
37
|
+
"project-id": Flags.string({
|
|
38
|
+
description: "Project ID",
|
|
39
|
+
required: false,
|
|
40
|
+
}),
|
|
41
|
+
};
|
|
42
|
+
async run() {
|
|
43
|
+
const { flags } = await this.parse(Publish);
|
|
44
|
+
p.intro("Publishing to MCP Registry");
|
|
45
|
+
await this.ensureAuthenticated();
|
|
46
|
+
const projectId = resolveProjectId(flags);
|
|
47
|
+
const workflow = new PublishWorkflow(flags);
|
|
48
|
+
await workflow.publish(projectId);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=publish.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"publish.js","sourceRoot":"","sources":["../../src/commands/publish.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,OAAO,OAAQ,SAAQ,YAAY;IACvC,MAAM,CAAU,WAAW,GAAG,6CAA6C,CAAC;IAE5E,MAAM,CAAU,QAAQ,GAAG;QACzB,2BAA2B;QAC3B,oHAAoH;KACrH,CAAC;IAEF,MAAM,CAAU,KAAK,GAAG;QACtB,iBAAiB,EAAE,KAAK,CAAC,OAAO,CAAC;YAC/B,WAAW,EAAE,kBAAkB;YAC/B,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;YACnB,WAAW,EAAE,uBAAuB;YACpC,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC;YAClB,WAAW,EAAE,4BAA4B;YACzC,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC;YACxB,WAAW,EAAE,kCAAkC;YAC/C,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC;YAC1B,WAAW,EAAE,aAAa;YAC1B,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC;YACvB,WAAW,EAAE,UAAU;YACvB,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC;YACzB,WAAW,EAAE,YAAY;YACzB,QAAQ,EAAE,KAAK;SAChB,CAAC;KACH,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAE5C,CAAC,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAEtC,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAEjC,MAAM,SAAS,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC1C,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;QAC5C,MAAM,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { AlpicCommand } from "../lib/alpic-command.js";
|
|
2
|
+
export declare class Tunnel extends AlpicCommand {
|
|
3
|
+
static description: string;
|
|
4
|
+
static examples: string[];
|
|
5
|
+
static flags: {
|
|
6
|
+
port: import("@oclif/core/interfaces").OptionFlag<number, import("@oclif/core/interfaces").CustomOptions>;
|
|
7
|
+
};
|
|
8
|
+
run(): Promise<void>;
|
|
9
|
+
}
|