alpic 0.0.0-staging.2ab71bc → 0.0.0-staging.2ba052d
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +40 -0
- package/bin/run.js +5 -0
- package/dist/__tests__/alpic-command.test.d.ts +1 -0
- package/dist/__tests__/alpic-command.test.js +41 -0
- package/dist/__tests__/alpic-command.test.js.map +1 -0
- package/dist/__tests__/audit.e2e.test.d.ts +1 -0
- package/dist/__tests__/audit.e2e.test.js +561 -0
- package/dist/__tests__/audit.e2e.test.js.map +1 -0
- package/dist/__tests__/auth.e2e.test.js +38 -18
- package/dist/__tests__/auth.e2e.test.js.map +1 -1
- package/dist/__tests__/deploy-flags.e2e.test.d.ts +1 -0
- package/dist/__tests__/deploy-flags.e2e.test.js +228 -0
- package/dist/__tests__/deploy-flags.e2e.test.js.map +1 -0
- package/dist/__tests__/deploy.e2e.test.js +33 -66
- package/dist/__tests__/deploy.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 +119 -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 +121 -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 +262 -0
- package/dist/__tests__/deployment-logs.e2e.test.js.map +1 -0
- package/dist/__tests__/environment-inspect.e2e.test.d.ts +1 -0
- package/dist/__tests__/environment-inspect.e2e.test.js +78 -0
- package/dist/__tests__/environment-inspect.e2e.test.js.map +1 -0
- package/dist/__tests__/environment-list.e2e.test.d.ts +1 -0
- package/dist/__tests__/environment-list.e2e.test.js +63 -0
- package/dist/__tests__/environment-list.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 +277 -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 +146 -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 +148 -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 +348 -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__/fixtures/demo-project/index.js +1 -1
- package/dist/__tests__/fixtures/demo-project/index.js.map +1 -1
- package/dist/__tests__/git-flags.e2e.test.d.ts +1 -0
- package/dist/__tests__/git-flags.e2e.test.js +129 -0
- package/dist/__tests__/git-flags.e2e.test.js.map +1 -0
- package/dist/__tests__/git.e2e.test.js +25 -17
- package/dist/__tests__/git.e2e.test.js.map +1 -1
- package/dist/__tests__/link.e2e.test.d.ts +1 -0
- package/dist/__tests__/link.e2e.test.js +282 -0
- package/dist/__tests__/link.e2e.test.js.map +1 -0
- package/dist/__tests__/logs.e2e.test.d.ts +1 -0
- package/dist/__tests__/logs.e2e.test.js +230 -0
- package/dist/__tests__/logs.e2e.test.js.map +1 -0
- package/dist/__tests__/mock-server.d.ts +25 -0
- package/dist/__tests__/mock-server.js +386 -23
- package/dist/__tests__/mock-server.js.map +1 -1
- package/dist/__tests__/playground/playground-configure.e2e.test.d.ts +1 -0
- package/dist/__tests__/playground/playground-configure.e2e.test.js +135 -0
- package/dist/__tests__/playground/playground-configure.e2e.test.js.map +1 -0
- package/dist/__tests__/playground/playground-enable-disable.e2e.test.d.ts +1 -0
- package/dist/__tests__/playground/playground-enable-disable.e2e.test.js +104 -0
- package/dist/__tests__/playground/playground-enable-disable.e2e.test.js.map +1 -0
- package/dist/__tests__/playground/playground-example-prompt.e2e.test.d.ts +1 -0
- package/dist/__tests__/playground/playground-example-prompt.e2e.test.js +282 -0
- package/dist/__tests__/playground/playground-example-prompt.e2e.test.js.map +1 -0
- package/dist/__tests__/playground/playground-headers.e2e.test.d.ts +1 -0
- package/dist/__tests__/playground/playground-headers.e2e.test.js +324 -0
- package/dist/__tests__/playground/playground-headers.e2e.test.js.map +1 -0
- package/dist/__tests__/playground/playground-status.e2e.test.d.ts +1 -0
- package/dist/__tests__/playground/playground-status.e2e.test.js +88 -0
- package/dist/__tests__/playground/playground-status.e2e.test.js.map +1 -0
- package/dist/__tests__/project-inspect.e2e.test.d.ts +1 -0
- package/dist/__tests__/project-inspect.e2e.test.js +83 -0
- package/dist/__tests__/project-inspect.e2e.test.js.map +1 -0
- package/dist/__tests__/project-list.e2e.test.d.ts +1 -0
- package/dist/__tests__/project-list.e2e.test.js +95 -0
- package/dist/__tests__/project-list.e2e.test.js.map +1 -0
- package/dist/__tests__/publish.e2e.test.d.ts +1 -0
- package/dist/__tests__/publish.e2e.test.js +575 -0
- package/dist/__tests__/publish.e2e.test.js.map +1 -0
- package/dist/__tests__/team-inspect.e2e.test.d.ts +1 -0
- package/dist/__tests__/team-inspect.e2e.test.js +86 -0
- package/dist/__tests__/team-inspect.e2e.test.js.map +1 -0
- package/dist/__tests__/team-list.e2e.test.d.ts +1 -0
- package/dist/__tests__/team-list.e2e.test.js +58 -0
- package/dist/__tests__/team-list.e2e.test.js.map +1 -0
- package/dist/__tests__/tunnel.e2e.test.d.ts +1 -0
- package/dist/__tests__/tunnel.e2e.test.js +66 -0
- package/dist/__tests__/tunnel.e2e.test.js.map +1 -0
- package/dist/__tests__/utils.d.ts +17 -5
- package/dist/__tests__/utils.js +120 -26
- package/dist/__tests__/utils.js.map +1 -1
- package/dist/api.d.ts +1 -1
- package/dist/api.js +10 -3
- package/dist/api.js.map +1 -1
- package/dist/commands/audit.d.ts +13 -0
- package/dist/commands/audit.js +45 -0
- package/dist/commands/audit.js.map +1 -0
- package/dist/commands/deploy.d.ts +7 -2
- package/dist/commands/deploy.js +67 -25
- 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/inspect.d.ts +10 -0
- package/dist/commands/environment/inspect.js +94 -0
- package/dist/commands/environment/inspect.js.map +1 -0
- package/dist/commands/environment/list.d.ts +10 -0
- package/dist/commands/environment/list.js +79 -0
- package/dist/commands/environment/list.js.map +1 -0
- package/dist/commands/environment-variable/add.d.ts +13 -0
- package/dist/commands/environment-variable/add.js +43 -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 +45 -0
- package/dist/commands/environment-variable/list.js.map +1 -0
- package/dist/commands/environment-variable/remove.d.ts +10 -0
- package/dist/commands/environment-variable/remove.js +29 -0
- package/dist/commands/environment-variable/remove.js.map +1 -0
- package/dist/commands/environment-variable/update.d.ts +12 -0
- package/dist/commands/environment-variable/update.js +37 -0
- package/dist/commands/environment-variable/update.js.map +1 -0
- package/dist/commands/git/connect.d.ts +2 -2
- package/dist/commands/git/connect.js +25 -28
- package/dist/commands/git/connect.js.map +1 -1
- package/dist/commands/git/disconnect.d.ts +0 -3
- package/dist/commands/git/disconnect.js +14 -29
- package/dist/commands/git/disconnect.js.map +1 -1
- package/dist/commands/git.js +2 -2
- package/dist/commands/git.js.map +1 -1
- package/dist/commands/link.d.ts +16 -0
- package/dist/commands/link.js +97 -0
- package/dist/commands/link.js.map +1 -0
- package/dist/commands/login.js +6 -24
- 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/playground/configure.d.ts +12 -0
- package/dist/commands/playground/configure.js +39 -0
- package/dist/commands/playground/configure.js.map +1 -0
- package/dist/commands/playground/disable.d.ts +9 -0
- package/dist/commands/playground/disable.js +24 -0
- package/dist/commands/playground/disable.js.map +1 -0
- package/dist/commands/playground/enable.d.ts +9 -0
- package/dist/commands/playground/enable.js +24 -0
- package/dist/commands/playground/enable.js.map +1 -0
- package/dist/commands/playground/example-prompt/add.d.ts +12 -0
- package/dist/commands/playground/example-prompt/add.js +39 -0
- package/dist/commands/playground/example-prompt/add.js.map +1 -0
- package/dist/commands/playground/example-prompt/list.d.ts +9 -0
- package/dist/commands/playground/example-prompt/list.js +24 -0
- package/dist/commands/playground/example-prompt/list.js.map +1 -0
- package/dist/commands/playground/example-prompt/remove.d.ts +11 -0
- package/dist/commands/playground/example-prompt/remove.js +34 -0
- package/dist/commands/playground/example-prompt/remove.js.map +1 -0
- package/dist/commands/playground/headers/add.d.ts +14 -0
- package/dist/commands/playground/headers/add.js +49 -0
- package/dist/commands/playground/headers/add.js.map +1 -0
- package/dist/commands/playground/headers/list.d.ts +9 -0
- package/dist/commands/playground/headers/list.js +24 -0
- package/dist/commands/playground/headers/list.js.map +1 -0
- package/dist/commands/playground/headers/remove.d.ts +11 -0
- package/dist/commands/playground/headers/remove.js +34 -0
- package/dist/commands/playground/headers/remove.js.map +1 -0
- package/dist/commands/playground/status.d.ts +9 -0
- package/dist/commands/playground/status.js +24 -0
- package/dist/commands/playground/status.js.map +1 -0
- package/dist/commands/project/inspect.d.ts +10 -0
- package/dist/commands/project/inspect.js +97 -0
- package/dist/commands/project/inspect.js.map +1 -0
- package/dist/commands/project/list.d.ts +10 -0
- package/dist/commands/project/list.js +50 -0
- package/dist/commands/project/list.js.map +1 -0
- package/dist/commands/publish.d.ts +14 -0
- package/dist/commands/publish.js +47 -0
- package/dist/commands/publish.js.map +1 -0
- package/dist/commands/team/inspect.d.ts +10 -0
- package/dist/commands/team/inspect.js +97 -0
- package/dist/commands/team/inspect.js.map +1 -0
- package/dist/commands/team/list.d.ts +9 -0
- package/dist/commands/team/list.js +40 -0
- package/dist/commands/team/list.js.map +1 -0
- package/dist/commands/tunnel.d.ts +10 -0
- package/dist/commands/tunnel.js +132 -0
- package/dist/commands/tunnel.js.map +1 -0
- package/dist/commands/whoami.js +2 -14
- package/dist/commands/whoami.js.map +1 -1
- package/dist/env.js +1 -1
- package/dist/env.js.map +1 -1
- package/dist/lib/alpic-command.d.ts +7 -0
- package/dist/lib/alpic-command.js +24 -6
- package/dist/lib/alpic-command.js.map +1 -1
- package/dist/lib/archive.d.ts +3 -3
- package/dist/lib/archive.js +21 -19
- package/dist/lib/archive.js.map +1 -1
- package/dist/lib/audit.d.ts +16 -0
- package/dist/lib/audit.js +258 -0
- package/dist/lib/audit.js.map +1 -0
- package/dist/lib/auth/auth.d.ts +3 -0
- package/dist/lib/auth/auth.js +26 -3
- package/dist/lib/auth/auth.js.map +1 -1
- package/dist/lib/auth/oauth/client.d.ts +1 -1
- package/dist/lib/auth/oauth/client.js +7 -1
- package/dist/lib/auth/oauth/client.js.map +1 -1
- package/dist/lib/auth/oauth/server/index.d.ts +2 -1
- package/dist/lib/auth/oauth/server/index.js +36 -10
- package/dist/lib/auth/oauth/server/index.js.map +1 -1
- package/dist/lib/auth/whoami.d.ts +1 -28
- package/dist/lib/auth/whoami.js +29 -19
- package/dist/lib/auth/whoami.js.map +1 -1
- package/dist/lib/base-workflow.d.ts +10 -0
- package/dist/lib/base-workflow.js +22 -0
- package/dist/lib/base-workflow.js.map +1 -0
- package/dist/lib/config.d.ts +3 -2
- package/dist/lib/config.js +8 -7
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/deployment.d.ts +69 -1
- package/dist/lib/deployment.js +113 -5
- package/dist/lib/deployment.js.map +1 -1
- package/dist/lib/environment-variable.d.ts +37 -0
- package/dist/lib/environment-variable.js +305 -0
- package/dist/lib/environment-variable.js.map +1 -0
- package/dist/lib/git.d.ts +12 -4
- package/dist/lib/git.js +52 -26
- package/dist/lib/git.js.map +1 -1
- package/dist/lib/global-store.d.ts +1 -1
- package/dist/lib/global-store.js +4 -3
- package/dist/lib/global-store.js.map +1 -1
- package/dist/lib/link.d.ts +83 -0
- package/dist/lib/link.js +387 -0
- package/dist/lib/link.js.map +1 -0
- package/dist/lib/logs.d.ts +20 -0
- package/dist/lib/logs.js +87 -0
- package/dist/lib/logs.js.map +1 -0
- package/dist/lib/playground.d.ts +53 -0
- package/dist/lib/playground.js +288 -0
- package/dist/lib/playground.js.map +1 -0
- package/dist/lib/publish.d.ts +22 -0
- package/dist/lib/publish.js +201 -0
- package/dist/lib/publish.js.map +1 -0
- package/dist/lib/resolve.d.ts +6 -0
- package/dist/lib/resolve.js +26 -0
- package/dist/lib/resolve.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 +6 -0
- package/dist/lib/utils.js +54 -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/dist/types.d.ts +1 -0
- package/package.json +28 -21
- package/dist/lib/project.d.ts +0 -67
- package/dist/lib/project.js +0 -285
- package/dist/lib/project.js.map +0 -1
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { Flags } from "@oclif/core";
|
|
2
|
+
import { AlpicCommand } from "../../../lib/alpic-command.js";
|
|
3
|
+
import { PlaygroundWorkflow } from "../../../lib/playground.js";
|
|
4
|
+
import { resolveEnvironmentId } from "../../../lib/resolve.js";
|
|
5
|
+
export default class PlaygroundHeadersAdd extends AlpicCommand {
|
|
6
|
+
static description = "Add a header to the playground configuration";
|
|
7
|
+
static examples = [
|
|
8
|
+
"<%= config.bin %> playground headers add",
|
|
9
|
+
'<%= config.bin %> playground headers add --name "X-Api-Key" --description "API key for authentication" --required --secret',
|
|
10
|
+
];
|
|
11
|
+
static flags = {
|
|
12
|
+
"environment-id": Flags.string({
|
|
13
|
+
description: "The ID of the environment",
|
|
14
|
+
required: false,
|
|
15
|
+
}),
|
|
16
|
+
name: Flags.string({
|
|
17
|
+
description: "The header name (max 100 characters)",
|
|
18
|
+
required: false,
|
|
19
|
+
}),
|
|
20
|
+
description: Flags.string({
|
|
21
|
+
description: "The header description (max 200 characters)",
|
|
22
|
+
required: false,
|
|
23
|
+
}),
|
|
24
|
+
required: Flags.boolean({
|
|
25
|
+
description: "Whether the header is required",
|
|
26
|
+
allowNo: true,
|
|
27
|
+
}),
|
|
28
|
+
secret: Flags.boolean({
|
|
29
|
+
description: "Whether the header value is secret",
|
|
30
|
+
allowNo: true,
|
|
31
|
+
}),
|
|
32
|
+
"non-interactive": Flags.boolean({
|
|
33
|
+
description: "Disable interactive prompts. Requires --name and --description.",
|
|
34
|
+
default: false,
|
|
35
|
+
}),
|
|
36
|
+
};
|
|
37
|
+
async run() {
|
|
38
|
+
const { flags } = await this.parse(PlaygroundHeadersAdd);
|
|
39
|
+
await this.ensureAuthenticated(flags);
|
|
40
|
+
const environmentId = resolveEnvironmentId(flags);
|
|
41
|
+
await new PlaygroundWorkflow(flags).addHeader(environmentId, {
|
|
42
|
+
name: flags.name,
|
|
43
|
+
description: flags.description,
|
|
44
|
+
required: flags.required,
|
|
45
|
+
secret: flags.secret,
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=add.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"add.js","sourceRoot":"","sources":["../../../../src/commands/playground/headers/add.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAE/D,MAAM,CAAC,OAAO,OAAO,oBAAqB,SAAQ,YAAY;IAC5D,MAAM,CAAU,WAAW,GAAG,8CAA8C,CAAC;IAE7E,MAAM,CAAU,QAAQ,GAAG;QACzB,0CAA0C;QAC1C,4HAA4H;KAC7H,CAAC;IAEF,MAAM,CAAU,KAAK,GAAG;QACtB,gBAAgB,EAAE,KAAK,CAAC,MAAM,CAAC;YAC7B,WAAW,EAAE,2BAA2B;YACxC,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC;YACjB,WAAW,EAAE,sCAAsC;YACnD,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC;YACxB,WAAW,EAAE,6CAA6C;YAC1D,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC;YACtB,WAAW,EAAE,gCAAgC;YAC7C,OAAO,EAAE,IAAI;SACd,CAAC;QACF,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC;YACpB,WAAW,EAAE,oCAAoC;YACjD,OAAO,EAAE,IAAI;SACd,CAAC;QACF,iBAAiB,EAAE,KAAK,CAAC,OAAO,CAAC;YAC/B,WAAW,EAAE,iEAAiE;YAC9E,OAAO,EAAE,KAAK;SACf,CAAC;KACH,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACzD,MAAM,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QACtC,MAAM,aAAa,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAClD,MAAM,IAAI,kBAAkB,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,aAAa,EAAE;YAC3D,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,MAAM,EAAE,KAAK,CAAC,MAAM;SACrB,CAAC,CAAC;IACL,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { AlpicCommand } from "../../../lib/alpic-command.js";
|
|
2
|
+
export default class PlaygroundHeadersList 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,24 @@
|
|
|
1
|
+
import { Flags } from "@oclif/core";
|
|
2
|
+
import { AlpicCommand } from "../../../lib/alpic-command.js";
|
|
3
|
+
import { PlaygroundWorkflow } from "../../../lib/playground.js";
|
|
4
|
+
import { resolveEnvironmentId } from "../../../lib/resolve.js";
|
|
5
|
+
export default class PlaygroundHeadersList extends AlpicCommand {
|
|
6
|
+
static description = "List playground headers for an environment";
|
|
7
|
+
static examples = [
|
|
8
|
+
"<%= config.bin %> playground headers list",
|
|
9
|
+
"<%= config.bin %> playground headers list --environment-id <environmentId>",
|
|
10
|
+
];
|
|
11
|
+
static flags = {
|
|
12
|
+
"environment-id": Flags.string({
|
|
13
|
+
description: "The ID of the environment",
|
|
14
|
+
required: false,
|
|
15
|
+
}),
|
|
16
|
+
};
|
|
17
|
+
async run() {
|
|
18
|
+
const { flags } = await this.parse(PlaygroundHeadersList);
|
|
19
|
+
await this.ensureAuthenticated(flags);
|
|
20
|
+
const environmentId = resolveEnvironmentId(flags);
|
|
21
|
+
await new PlaygroundWorkflow(flags).listHeaders(environmentId);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../src/commands/playground/headers/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAE/D,MAAM,CAAC,OAAO,OAAO,qBAAsB,SAAQ,YAAY;IAC7D,MAAM,CAAU,WAAW,GAAG,4CAA4C,CAAC;IAE3E,MAAM,CAAU,QAAQ,GAAG;QACzB,2CAA2C;QAC3C,4EAA4E;KAC7E,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,qBAAqB,CAAC,CAAC;QAC1D,MAAM,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QACtC,MAAM,aAAa,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAClD,MAAM,IAAI,kBAAkB,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;IACjE,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { AlpicCommand } from "../../../lib/alpic-command.js";
|
|
2
|
+
export default class PlaygroundHeadersRemove 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
|
+
name: 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,34 @@
|
|
|
1
|
+
import { Flags } from "@oclif/core";
|
|
2
|
+
import { AlpicCommand } from "../../../lib/alpic-command.js";
|
|
3
|
+
import { PlaygroundWorkflow } from "../../../lib/playground.js";
|
|
4
|
+
import { resolveEnvironmentId } from "../../../lib/resolve.js";
|
|
5
|
+
export default class PlaygroundHeadersRemove extends AlpicCommand {
|
|
6
|
+
static description = "Remove a playground header";
|
|
7
|
+
static examples = [
|
|
8
|
+
"<%= config.bin %> playground headers remove",
|
|
9
|
+
'<%= config.bin %> playground headers remove --name "X-Api-Key"',
|
|
10
|
+
];
|
|
11
|
+
static flags = {
|
|
12
|
+
"environment-id": Flags.string({
|
|
13
|
+
description: "The ID of the environment",
|
|
14
|
+
required: false,
|
|
15
|
+
}),
|
|
16
|
+
name: Flags.string({
|
|
17
|
+
description: "The name of the header to remove",
|
|
18
|
+
required: false,
|
|
19
|
+
}),
|
|
20
|
+
"non-interactive": Flags.boolean({
|
|
21
|
+
description: "Disable interactive prompts. Requires --name.",
|
|
22
|
+
default: false,
|
|
23
|
+
}),
|
|
24
|
+
};
|
|
25
|
+
async run() {
|
|
26
|
+
const { flags } = await this.parse(PlaygroundHeadersRemove);
|
|
27
|
+
await this.ensureAuthenticated(flags);
|
|
28
|
+
const environmentId = resolveEnvironmentId(flags);
|
|
29
|
+
await new PlaygroundWorkflow(flags).removeHeader(environmentId, {
|
|
30
|
+
name: flags.name,
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=remove.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remove.js","sourceRoot":"","sources":["../../../../src/commands/playground/headers/remove.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAE/D,MAAM,CAAC,OAAO,OAAO,uBAAwB,SAAQ,YAAY;IAC/D,MAAM,CAAU,WAAW,GAAG,4BAA4B,CAAC;IAE3D,MAAM,CAAU,QAAQ,GAAG;QACzB,6CAA6C;QAC7C,gEAAgE;KACjE,CAAC;IAEF,MAAM,CAAU,KAAK,GAAG;QACtB,gBAAgB,EAAE,KAAK,CAAC,MAAM,CAAC;YAC7B,WAAW,EAAE,2BAA2B;YACxC,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC;YACjB,WAAW,EAAE,kCAAkC;YAC/C,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,iBAAiB,EAAE,KAAK,CAAC,OAAO,CAAC;YAC/B,WAAW,EAAE,+CAA+C;YAC5D,OAAO,EAAE,KAAK;SACf,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,CAAC,KAAK,CAAC,CAAC;QACtC,MAAM,aAAa,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAClD,MAAM,IAAI,kBAAkB,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,aAAa,EAAE;YAC9D,IAAI,EAAE,KAAK,CAAC,IAAI;SACjB,CAAC,CAAC;IACL,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { AlpicCommand } from "../../lib/alpic-command.js";
|
|
2
|
+
export default class PlaygroundStatus 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,24 @@
|
|
|
1
|
+
import { Flags } from "@oclif/core";
|
|
2
|
+
import { AlpicCommand } from "../../lib/alpic-command.js";
|
|
3
|
+
import { PlaygroundWorkflow } from "../../lib/playground.js";
|
|
4
|
+
import { resolveEnvironmentId } from "../../lib/resolve.js";
|
|
5
|
+
export default class PlaygroundStatus extends AlpicCommand {
|
|
6
|
+
static description = "Show playground configuration for an environment";
|
|
7
|
+
static examples = [
|
|
8
|
+
"<%= config.bin %> playground status",
|
|
9
|
+
"<%= config.bin %> playground status --environment-id <environmentId>",
|
|
10
|
+
];
|
|
11
|
+
static flags = {
|
|
12
|
+
"environment-id": Flags.string({
|
|
13
|
+
description: "The ID of the environment",
|
|
14
|
+
required: false,
|
|
15
|
+
}),
|
|
16
|
+
};
|
|
17
|
+
async run() {
|
|
18
|
+
const { flags } = await this.parse(PlaygroundStatus);
|
|
19
|
+
await this.ensureAuthenticated(flags);
|
|
20
|
+
const environmentId = resolveEnvironmentId(flags);
|
|
21
|
+
await new PlaygroundWorkflow(flags).status(environmentId);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/commands/playground/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE5D,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,YAAY;IACxD,MAAM,CAAU,WAAW,GAAG,kDAAkD,CAAC;IAEjF,MAAM,CAAU,QAAQ,GAAG;QACzB,qCAAqC;QACrC,sEAAsE;KACvE,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,gBAAgB,CAAC,CAAC;QACrD,MAAM,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QACtC,MAAM,aAAa,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAClD,MAAM,IAAI,kBAAkB,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IAC5D,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { AlpicCommand } from "../../lib/alpic-command.js";
|
|
2
|
+
export declare class ProjectInspect extends AlpicCommand {
|
|
3
|
+
static description: string;
|
|
4
|
+
static examples: string[];
|
|
5
|
+
static flags: {
|
|
6
|
+
"project-id": import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
7
|
+
"non-interactive": import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
8
|
+
};
|
|
9
|
+
run(): Promise<void>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import * as p from "@clack/prompts";
|
|
2
|
+
import { Flags } from "@oclif/core";
|
|
3
|
+
import chalk from "chalk";
|
|
4
|
+
import { api } from "../../api.js";
|
|
5
|
+
import { AlpicCommand } from "../../lib/alpic-command.js";
|
|
6
|
+
import { formatTable } from "../../lib/table.js";
|
|
7
|
+
import { formatAgo, plural } from "../../lib/utils.js";
|
|
8
|
+
export class ProjectInspect extends AlpicCommand {
|
|
9
|
+
static description = "Show details of a project and its environments";
|
|
10
|
+
static examples = [
|
|
11
|
+
"<%= config.bin %> project inspect --project-id <projectId>",
|
|
12
|
+
"<%= config.bin %> project inspect",
|
|
13
|
+
];
|
|
14
|
+
static flags = {
|
|
15
|
+
"project-id": Flags.string({
|
|
16
|
+
description: "The ID of the project",
|
|
17
|
+
}),
|
|
18
|
+
"non-interactive": Flags.boolean({
|
|
19
|
+
description: "Disable interactive prompts. Requires --project-id.",
|
|
20
|
+
default: false,
|
|
21
|
+
}),
|
|
22
|
+
};
|
|
23
|
+
async run() {
|
|
24
|
+
const { flags } = await this.parse(ProjectInspect);
|
|
25
|
+
await this.ensureAuthenticated(flags);
|
|
26
|
+
let projectId = flags["project-id"];
|
|
27
|
+
if (!projectId) {
|
|
28
|
+
if (flags["non-interactive"]) {
|
|
29
|
+
this.exitWithErrorMessage("No project specified. Use --project-id <projectId>.");
|
|
30
|
+
}
|
|
31
|
+
const spinner = p.spinner();
|
|
32
|
+
spinner.start("Fetching projects...");
|
|
33
|
+
const projects = await api.projects.list.v1();
|
|
34
|
+
spinner.stop("");
|
|
35
|
+
if (projects.length === 0) {
|
|
36
|
+
p.log.info("No projects found.");
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
const choice = await p.select({
|
|
40
|
+
message: chalk.bold("Choose a project"),
|
|
41
|
+
options: projects.map((proj) => ({ value: proj.id, label: proj.name })),
|
|
42
|
+
});
|
|
43
|
+
if (p.isCancel(choice)) {
|
|
44
|
+
p.cancel();
|
|
45
|
+
this.exit(1);
|
|
46
|
+
}
|
|
47
|
+
projectId = choice;
|
|
48
|
+
}
|
|
49
|
+
const spinner = p.spinner();
|
|
50
|
+
spinner.start("Fetching project...");
|
|
51
|
+
const project = await api.projects.get.v1({ projectId });
|
|
52
|
+
spinner.stop("Project found");
|
|
53
|
+
const detailRows = [
|
|
54
|
+
{ label: "ID", value: chalk.cyan(project.id) },
|
|
55
|
+
{ label: "Name", value: project.name },
|
|
56
|
+
{ label: "Team", value: project.teamId },
|
|
57
|
+
{ label: "Runtime", value: project.runtime },
|
|
58
|
+
{ label: "Transport", value: project.transport ?? chalk.gray("-") },
|
|
59
|
+
{ label: "Repository", value: project.sourceRepository ?? chalk.gray("-") },
|
|
60
|
+
{ label: "Root Directory", value: project.rootDirectory ?? chalk.gray("-") },
|
|
61
|
+
{ label: "Build Command", value: project.buildCommand ?? chalk.gray("-") },
|
|
62
|
+
{ label: "Install Command", value: project.installCommand ?? chalk.gray("-") },
|
|
63
|
+
{ label: "Start Command", value: project.startCommand ?? chalk.gray("-") },
|
|
64
|
+
{ label: "Created", value: formatAgo(project.createdAt) },
|
|
65
|
+
{
|
|
66
|
+
label: "Production URL",
|
|
67
|
+
value: project.productionEnvironment
|
|
68
|
+
? chalk.underline(project.productionEnvironment.mcpServerUrl)
|
|
69
|
+
: chalk.gray("-"),
|
|
70
|
+
},
|
|
71
|
+
];
|
|
72
|
+
console.log(formatTable(detailRows, [
|
|
73
|
+
{ key: "label", header: "", format: (value) => chalk.bold(value) },
|
|
74
|
+
{ key: "value", header: "" },
|
|
75
|
+
]));
|
|
76
|
+
if (project.environments.length === 0) {
|
|
77
|
+
p.log.info("No environments in this project.");
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
p.log.info(`${plural(project.environments.length, "environment")}:`);
|
|
81
|
+
const envRows = project.environments.map((env) => ({
|
|
82
|
+
id: env.id,
|
|
83
|
+
name: env.name,
|
|
84
|
+
branch: env.sourceBranch ?? "-",
|
|
85
|
+
url: env.mcpServerUrl,
|
|
86
|
+
created: env.createdAt ? formatAgo(env.createdAt, { short: true }) : "-",
|
|
87
|
+
}));
|
|
88
|
+
console.log(formatTable(envRows, [
|
|
89
|
+
{ key: "id", header: "id", format: (value) => chalk.cyan(value) },
|
|
90
|
+
{ key: "name", header: "name", format: (value) => chalk.bold(value) },
|
|
91
|
+
{ key: "branch", header: "branch", format: (value) => chalk.gray(value) },
|
|
92
|
+
{ key: "url", header: "url", format: (value) => chalk.underline(value) },
|
|
93
|
+
{ key: "created", header: "created", format: (value) => chalk.gray(value) },
|
|
94
|
+
]));
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=inspect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inspect.js","sourceRoot":"","sources":["../../../src/commands/project/inspect.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,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAEvD,MAAM,OAAO,cAAe,SAAQ,YAAY;IAC9C,MAAM,CAAU,WAAW,GAAG,gDAAgD,CAAC;IAE/E,MAAM,CAAU,QAAQ,GAAG;QACzB,4DAA4D;QAC5D,mCAAmC;KACpC,CAAC;IAEF,MAAM,CAAU,KAAK,GAAG;QACtB,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC;YACzB,WAAW,EAAE,uBAAuB;SACrC,CAAC;QACF,iBAAiB,EAAE,KAAK,CAAC,OAAO,CAAC;YAC/B,WAAW,EAAE,qDAAqD;YAClE,OAAO,EAAE,KAAK;SACf,CAAC;KACH,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAEnD,MAAM,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAEtC,IAAI,SAAS,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC;QAEpC,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,IAAI,KAAK,CAAC,iBAAiB,CAAC,EAAE,CAAC;gBAC7B,IAAI,CAAC,oBAAoB,CAAC,qDAAqD,CAAC,CAAC;YACnF,CAAC;YAED,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;YAC5B,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAEtC,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YAE9C,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAEjB,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC1B,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;gBACjC,OAAO;YACT,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,MAAM,CAAC;gBAC5B,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC;gBACvC,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;aACxE,CAAC,CAAC;YAEH,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBACvB,CAAC,CAAC,MAAM,EAAE,CAAC;gBACX,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACf,CAAC;YAED,SAAS,GAAG,MAAM,CAAC;QACrB,CAAC;QAED,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;QAC5B,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;QAErC,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;QAEzD,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAE9B,MAAM,UAAU,GAAG;YACjB,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;YAC9C,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE;YACtC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE;YACxC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE;YAC5C,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YACnE,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,CAAC,gBAAgB,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YAC3E,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,OAAO,CAAC,aAAa,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YAC5E,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,OAAO,CAAC,YAAY,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YAC1E,EAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,OAAO,CAAC,cAAc,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YAC9E,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,OAAO,CAAC,YAAY,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YAC1E,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;YACzD;gBACE,KAAK,EAAE,gBAAgB;gBACvB,KAAK,EAAE,OAAO,CAAC,qBAAqB;oBAClC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,qBAAqB,CAAC,YAAY,CAAC;oBAC7D,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;aACpB;SACF,CAAC;QAEF,OAAO,CAAC,GAAG,CACT,WAAW,CAAC,UAAU,EAAE;YACtB,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YAClE,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE;SAC7B,CAAC,CACH,CAAC;QAEF,IAAI,OAAO,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;YAC/C,OAAO;QACT,CAAC;QAED,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC;QAErE,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACjD,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,MAAM,EAAE,GAAG,CAAC,YAAY,IAAI,GAAG;YAC/B,GAAG,EAAE,GAAG,CAAC,YAAY;YACrB,OAAO,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG;SACzE,CAAC,CAAC,CAAC;QAEJ,OAAO,CAAC,GAAG,CACT,WAAW,CAAC,OAAO,EAAE;YACnB,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YACjE,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YACrE,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YACzE,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;YACxE,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;SAC5E,CAAC,CACH,CAAC;IACJ,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { AlpicCommand } from "../../lib/alpic-command.js";
|
|
2
|
+
export declare class ProjectList extends AlpicCommand {
|
|
3
|
+
static description: string;
|
|
4
|
+
static examples: string[];
|
|
5
|
+
static flags: {
|
|
6
|
+
"team-id": import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
7
|
+
"non-interactive": import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
8
|
+
};
|
|
9
|
+
run(): Promise<void>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import * as p from "@clack/prompts";
|
|
2
|
+
import { Flags } from "@oclif/core";
|
|
3
|
+
import chalk from "chalk";
|
|
4
|
+
import { api } from "../../api.js";
|
|
5
|
+
import { AlpicCommand } from "../../lib/alpic-command.js";
|
|
6
|
+
import { formatTable } from "../../lib/table.js";
|
|
7
|
+
import { formatAgo, plural } from "../../lib/utils.js";
|
|
8
|
+
export class ProjectList extends AlpicCommand {
|
|
9
|
+
static description = "List projects";
|
|
10
|
+
static examples = ["<%= config.bin %> project list", "<%= config.bin %> project list --team-id <teamId>"];
|
|
11
|
+
static flags = {
|
|
12
|
+
"team-id": Flags.string({
|
|
13
|
+
description: "Filter by team ID",
|
|
14
|
+
required: false,
|
|
15
|
+
}),
|
|
16
|
+
"non-interactive": Flags.boolean({
|
|
17
|
+
description: "Disable interactive prompts",
|
|
18
|
+
default: false,
|
|
19
|
+
}),
|
|
20
|
+
};
|
|
21
|
+
async run() {
|
|
22
|
+
const { flags } = await this.parse(ProjectList);
|
|
23
|
+
await this.ensureAuthenticated(flags);
|
|
24
|
+
const spinner = p.spinner();
|
|
25
|
+
spinner.start("Fetching projects...");
|
|
26
|
+
const projects = await api.projects.list.v1(flags["team-id"] ? { teamId: flags["team-id"] } : undefined);
|
|
27
|
+
spinner.stop(`Found ${plural(projects.length, "project")}`);
|
|
28
|
+
if (projects.length === 0) {
|
|
29
|
+
p.log.info("No projects found.");
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
const rows = projects.map((project) => ({
|
|
33
|
+
id: project.id,
|
|
34
|
+
name: project.name,
|
|
35
|
+
team: project.teamId,
|
|
36
|
+
runtime: project.runtime,
|
|
37
|
+
repository: project.sourceRepository ?? "-",
|
|
38
|
+
created: project.createdAt ? formatAgo(project.createdAt, { short: true }) : "-",
|
|
39
|
+
}));
|
|
40
|
+
console.log(formatTable(rows, [
|
|
41
|
+
{ key: "id", header: "id", format: (value) => chalk.cyan(value) },
|
|
42
|
+
{ key: "name", header: "name", format: (value) => chalk.bold(value) },
|
|
43
|
+
{ key: "team", header: "team", format: (value) => chalk.gray(value) },
|
|
44
|
+
{ key: "runtime", header: "runtime", format: (value) => chalk.gray(value) },
|
|
45
|
+
{ key: "repository", header: "repository", format: (value) => chalk.gray(value) },
|
|
46
|
+
{ key: "created", header: "created", format: (value) => chalk.gray(value) },
|
|
47
|
+
]));
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/project/list.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
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
|
+
domain: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
7
|
+
title: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
8
|
+
description: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
9
|
+
"website-url": import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
10
|
+
"icon-src": import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
11
|
+
"project-id": import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
12
|
+
};
|
|
13
|
+
run(): Promise<void>;
|
|
14
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import * as p from "@clack/prompts";
|
|
2
|
+
import { Flags } from "@oclif/core";
|
|
3
|
+
import { AlpicCommand } from "../lib/alpic-command.js";
|
|
4
|
+
import { PublishWorkflow } from "../lib/publish.js";
|
|
5
|
+
import { resolveProjectId } from "../lib/resolve.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
|
+
domain: Flags.string({
|
|
14
|
+
description: "Domain to publish for",
|
|
15
|
+
required: false,
|
|
16
|
+
}),
|
|
17
|
+
title: Flags.string({
|
|
18
|
+
description: "Server title (1-100 chars)",
|
|
19
|
+
required: false,
|
|
20
|
+
}),
|
|
21
|
+
description: Flags.string({
|
|
22
|
+
description: "Server description (1-100 chars)",
|
|
23
|
+
required: false,
|
|
24
|
+
}),
|
|
25
|
+
"website-url": Flags.string({
|
|
26
|
+
description: "Website URL",
|
|
27
|
+
required: false,
|
|
28
|
+
}),
|
|
29
|
+
"icon-src": Flags.string({
|
|
30
|
+
description: "Icon URL",
|
|
31
|
+
required: false,
|
|
32
|
+
}),
|
|
33
|
+
"project-id": Flags.string({
|
|
34
|
+
description: "Project ID",
|
|
35
|
+
required: false,
|
|
36
|
+
}),
|
|
37
|
+
};
|
|
38
|
+
async run() {
|
|
39
|
+
const { flags } = await this.parse(Publish);
|
|
40
|
+
p.intro("Publishing to MCP Registry");
|
|
41
|
+
await this.ensureAuthenticated(flags);
|
|
42
|
+
const projectId = resolveProjectId(flags);
|
|
43
|
+
const workflow = new PublishWorkflow(flags);
|
|
44
|
+
await workflow.publish(projectId);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
//# 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,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAErD,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,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,CAAC,KAAK,CAAC,CAAC;QAEtC,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,10 @@
|
|
|
1
|
+
import { AlpicCommand } from "../../lib/alpic-command.js";
|
|
2
|
+
export declare class TeamInspect extends AlpicCommand {
|
|
3
|
+
static description: string;
|
|
4
|
+
static examples: string[];
|
|
5
|
+
static flags: {
|
|
6
|
+
"team-id": import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
7
|
+
"non-interactive": import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
8
|
+
};
|
|
9
|
+
run(): Promise<void>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import * as p from "@clack/prompts";
|
|
2
|
+
import { Flags } from "@oclif/core";
|
|
3
|
+
import chalk from "chalk";
|
|
4
|
+
import { api } from "../../api.js";
|
|
5
|
+
import { AlpicCommand } from "../../lib/alpic-command.js";
|
|
6
|
+
import { formatTable } from "../../lib/table.js";
|
|
7
|
+
import { formatAgo, plural } from "../../lib/utils.js";
|
|
8
|
+
export class TeamInspect extends AlpicCommand {
|
|
9
|
+
static description = "Show details of a team and its projects";
|
|
10
|
+
static examples = ["<%= config.bin %> team inspect --team-id <teamId>", "<%= config.bin %> team inspect"];
|
|
11
|
+
static flags = {
|
|
12
|
+
"team-id": Flags.string({
|
|
13
|
+
description: "The ID of the team",
|
|
14
|
+
}),
|
|
15
|
+
"non-interactive": Flags.boolean({
|
|
16
|
+
description: "Disable interactive prompts. Requires --team-id.",
|
|
17
|
+
default: false,
|
|
18
|
+
}),
|
|
19
|
+
};
|
|
20
|
+
async run() {
|
|
21
|
+
const { flags } = await this.parse(TeamInspect);
|
|
22
|
+
await this.ensureAuthenticated(flags);
|
|
23
|
+
let teamId = flags["team-id"];
|
|
24
|
+
const spinner = p.spinner();
|
|
25
|
+
spinner.start("Fetching teams...");
|
|
26
|
+
let teams;
|
|
27
|
+
try {
|
|
28
|
+
teams = await api.teams.list.v1();
|
|
29
|
+
}
|
|
30
|
+
catch (error) {
|
|
31
|
+
spinner.stop();
|
|
32
|
+
throw error;
|
|
33
|
+
}
|
|
34
|
+
if (!teamId) {
|
|
35
|
+
spinner.stop("");
|
|
36
|
+
if (flags["non-interactive"]) {
|
|
37
|
+
this.exitWithErrorMessage("No team specified. Use --team-id <teamId>.");
|
|
38
|
+
}
|
|
39
|
+
if (teams.length === 0) {
|
|
40
|
+
p.log.info("No teams found.");
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
const choice = await p.select({
|
|
44
|
+
message: chalk.bold("Choose a team"),
|
|
45
|
+
options: teams.map((t) => ({ value: t.id, label: t.name })),
|
|
46
|
+
});
|
|
47
|
+
if (p.isCancel(choice)) {
|
|
48
|
+
p.cancel();
|
|
49
|
+
this.exit(1);
|
|
50
|
+
}
|
|
51
|
+
teamId = choice;
|
|
52
|
+
spinner.start("Fetching team...");
|
|
53
|
+
}
|
|
54
|
+
const team = teams.find((t) => t.id === teamId);
|
|
55
|
+
if (!team) {
|
|
56
|
+
spinner.stop("Team not found");
|
|
57
|
+
this.exitWithErrorMessage(`Team not found: ${teamId}`);
|
|
58
|
+
}
|
|
59
|
+
let projects;
|
|
60
|
+
try {
|
|
61
|
+
projects = await api.projects.list.v1({ teamId });
|
|
62
|
+
}
|
|
63
|
+
catch (error) {
|
|
64
|
+
spinner.stop();
|
|
65
|
+
throw error;
|
|
66
|
+
}
|
|
67
|
+
spinner.stop("Team found");
|
|
68
|
+
const detailRows = [
|
|
69
|
+
{ label: "ID", value: chalk.cyan(team.id) },
|
|
70
|
+
{ label: "Name", value: team.name },
|
|
71
|
+
{ label: "Stripe Account", value: team.hasStripeAccount ? "yes" : chalk.gray("no") },
|
|
72
|
+
{ label: "Created", value: formatAgo(team.createdAt) },
|
|
73
|
+
];
|
|
74
|
+
console.log(formatTable(detailRows, [
|
|
75
|
+
{ key: "label", header: "", format: (value) => chalk.bold(value) },
|
|
76
|
+
{ key: "value", header: "" },
|
|
77
|
+
]));
|
|
78
|
+
if (projects.length === 0) {
|
|
79
|
+
p.log.info("No projects in this team.");
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
p.log.info(`${plural(projects.length, "project")}:`);
|
|
83
|
+
const projectRows = projects.map((project) => ({
|
|
84
|
+
id: project.id,
|
|
85
|
+
name: project.name,
|
|
86
|
+
runtime: project.runtime,
|
|
87
|
+
created: project.createdAt ? formatAgo(project.createdAt, { short: true }) : "-",
|
|
88
|
+
}));
|
|
89
|
+
console.log(formatTable(projectRows, [
|
|
90
|
+
{ key: "id", header: "id", format: (value) => chalk.cyan(value) },
|
|
91
|
+
{ key: "name", header: "name", format: (value) => chalk.bold(value) },
|
|
92
|
+
{ key: "runtime", header: "runtime", format: (value) => chalk.gray(value) },
|
|
93
|
+
{ key: "created", header: "created", format: (value) => chalk.gray(value) },
|
|
94
|
+
]));
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=inspect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inspect.js","sourceRoot":"","sources":["../../../src/commands/team/inspect.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { AlpicCommand } from "../../lib/alpic-command.js";
|
|
2
|
+
export declare class TeamList extends AlpicCommand {
|
|
3
|
+
static description: string;
|
|
4
|
+
static examples: string[];
|
|
5
|
+
static flags: {
|
|
6
|
+
"non-interactive": import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
7
|
+
};
|
|
8
|
+
run(): Promise<void>;
|
|
9
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import * as p from "@clack/prompts";
|
|
2
|
+
import { Flags } from "@oclif/core";
|
|
3
|
+
import chalk from "chalk";
|
|
4
|
+
import { api } from "../../api.js";
|
|
5
|
+
import { AlpicCommand } from "../../lib/alpic-command.js";
|
|
6
|
+
import { formatTable } from "../../lib/table.js";
|
|
7
|
+
import { formatAgo, plural } from "../../lib/utils.js";
|
|
8
|
+
export class TeamList extends AlpicCommand {
|
|
9
|
+
static description = "List teams for the current user";
|
|
10
|
+
static examples = ["<%= config.bin %> team list"];
|
|
11
|
+
static flags = {
|
|
12
|
+
"non-interactive": Flags.boolean({
|
|
13
|
+
description: "Disable interactive prompts",
|
|
14
|
+
default: false,
|
|
15
|
+
}),
|
|
16
|
+
};
|
|
17
|
+
async run() {
|
|
18
|
+
const { flags } = await this.parse(TeamList);
|
|
19
|
+
await this.ensureAuthenticated(flags);
|
|
20
|
+
const spinner = p.spinner();
|
|
21
|
+
spinner.start("Fetching teams...");
|
|
22
|
+
const teams = await api.teams.list.v1();
|
|
23
|
+
spinner.stop(`Found ${plural(teams.length, "team")}`);
|
|
24
|
+
if (teams.length === 0) {
|
|
25
|
+
p.log.info("No teams found.");
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
const rows = teams.map((team) => ({
|
|
29
|
+
id: team.id,
|
|
30
|
+
name: team.name,
|
|
31
|
+
created: team.createdAt ? formatAgo(team.createdAt, { short: true }) : "-",
|
|
32
|
+
}));
|
|
33
|
+
console.log(formatTable(rows, [
|
|
34
|
+
{ key: "id", header: "id", format: (value) => chalk.cyan(value) },
|
|
35
|
+
{ key: "name", header: "name", format: (value) => chalk.bold(value) },
|
|
36
|
+
{ key: "created", header: "created", format: (value) => chalk.gray(value) },
|
|
37
|
+
]));
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/team/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,GAAG,EAAE,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAEvD,MAAM,OAAO,QAAS,SAAQ,YAAY;IACxC,MAAM,CAAU,WAAW,GAAG,iCAAiC,CAAC;IAEhE,MAAM,CAAU,QAAQ,GAAG,CAAC,6BAA6B,CAAC,CAAC;IAE3D,MAAM,CAAU,KAAK,GAAG;QACtB,iBAAiB,EAAE,KAAK,CAAC,OAAO,CAAC;YAC/B,WAAW,EAAE,6BAA6B;YAC1C,OAAO,EAAE,KAAK;SACf,CAAC;KACH,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAE7C,MAAM,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAEtC,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;QAC5B,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAEnC,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QAExC,OAAO,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;QAEtD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAC9B,OAAO;QACT,CAAC;QAED,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAChC,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG;SAC3E,CAAC,CAAC,CAAC;QAEJ,OAAO,CAAC,GAAG,CACT,WAAW,CAAC,IAAI,EAAE;YAChB,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YACjE,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YACrE,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;SAC5E,CAAC,CACH,CAAC;IACJ,CAAC"}
|