@kingslanding/cli 0.2.0 → 0.3.1
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/commands/deploy.d.ts.map +1 -1
- package/dist/commands/deploy.js +6 -63
- package/dist/commands/deploy.js.map +1 -1
- package/dist/index.js +2 -12
- package/dist/index.js.map +1 -1
- package/dist/lib/config.d.ts +0 -5
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +0 -23
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/version.d.ts +9 -0
- package/dist/lib/version.d.ts.map +1 -0
- package/dist/lib/version.js +14 -0
- package/dist/lib/version.js.map +1 -0
- package/package.json +4 -3
- package/dist/commands/compose-down.d.ts +0 -3
- package/dist/commands/compose-down.d.ts.map +0 -1
- package/dist/commands/compose-down.js +0 -56
- package/dist/commands/compose-down.js.map +0 -1
- package/dist/commands/compose-logs.d.ts +0 -3
- package/dist/commands/compose-logs.d.ts.map +0 -1
- package/dist/commands/compose-logs.js +0 -33
- package/dist/commands/compose-logs.js.map +0 -1
- package/dist/commands/compose-ps.d.ts +0 -3
- package/dist/commands/compose-ps.d.ts.map +0 -1
- package/dist/commands/compose-ps.js +0 -27
- package/dist/commands/compose-ps.js.map +0 -1
- package/dist/commands/compose-run.d.ts +0 -3
- package/dist/commands/compose-run.d.ts.map +0 -1
- package/dist/commands/compose-run.js +0 -30
- package/dist/commands/compose-run.js.map +0 -1
- package/dist/services/compute-service.d.ts +0 -28
- package/dist/services/compute-service.d.ts.map +0 -1
- package/dist/services/compute-service.js +0 -77
- package/dist/services/compute-service.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAWzC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAmK5D"}
|
package/dist/commands/deploy.js
CHANGED
|
@@ -1,34 +1,13 @@
|
|
|
1
|
-
import * as fs from "node:fs";
|
|
2
1
|
import * as path from "node:path";
|
|
3
2
|
import { confirm } from "@inquirer/prompts";
|
|
4
3
|
import { ApiClient } from "../lib/api.js";
|
|
5
|
-
import { resolveApiUrl,
|
|
4
|
+
import { resolveApiUrl, loadProjectConfig } from "../lib/config.js";
|
|
6
5
|
import { getAuthHeader, loadCredentials, isDeployKeyAuth } from "../lib/auth.js";
|
|
7
6
|
import { buildFileManifest } from "../lib/files.js";
|
|
8
7
|
import { createSpinner, formatBytes } from "../lib/output.js";
|
|
9
8
|
import { CLIError, ApiError, AuthError } from "../lib/errors.js";
|
|
10
9
|
import { AuthService } from "../services/auth-service.js";
|
|
11
10
|
import { DeployService, defaultReadFile } from "../services/deploy-service.js";
|
|
12
|
-
import { ComputeService } from "../services/compute-service.js";
|
|
13
|
-
const COMPOSE_FILE_NAMES = [
|
|
14
|
-
"docker-compose.yml",
|
|
15
|
-
"docker-compose.yaml",
|
|
16
|
-
"compose.yml",
|
|
17
|
-
"compose.yaml",
|
|
18
|
-
];
|
|
19
|
-
function findComposeFile(dir, explicitFile) {
|
|
20
|
-
if (explicitFile) {
|
|
21
|
-
const resolved = path.resolve(dir, explicitFile);
|
|
22
|
-
return fs.existsSync(resolved) ? resolved : null;
|
|
23
|
-
}
|
|
24
|
-
for (const name of COMPOSE_FILE_NAMES) {
|
|
25
|
-
const candidate = path.join(dir, name);
|
|
26
|
-
if (fs.existsSync(candidate)) {
|
|
27
|
-
return candidate;
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
return null;
|
|
31
|
-
}
|
|
32
11
|
export function registerDeployCommand(program) {
|
|
33
12
|
program
|
|
34
13
|
.command("deploy")
|
|
@@ -38,42 +17,14 @@ export function registerDeployCommand(program) {
|
|
|
38
17
|
.option("-t, --team <slug>", "Team slug")
|
|
39
18
|
.option("--create", "Create project if it does not exist")
|
|
40
19
|
.option("-v, --verbose", "Show detailed output")
|
|
41
|
-
.option("-f, --file <path>", "Path to compose file (compose deploy only)")
|
|
42
20
|
.option("--json", "Output deployment result as JSON")
|
|
43
21
|
.action(async (dirArg, options) => {
|
|
44
22
|
const cwd = process.cwd();
|
|
45
23
|
const config = loadProjectConfig(cwd);
|
|
46
24
|
const apiUrl = resolveApiUrl(cwd);
|
|
47
|
-
// Resolve deploy directory
|
|
25
|
+
// Resolve deploy directory
|
|
48
26
|
const relativeDir = dirArg ?? config?.directory ?? ".";
|
|
49
27
|
const deployDir = path.resolve(cwd, relativeDir);
|
|
50
|
-
// Auto-detect compose deploy
|
|
51
|
-
const composePath = findComposeFile(deployDir, options.file);
|
|
52
|
-
if (composePath) {
|
|
53
|
-
const projectName = options.project ?? config?.project;
|
|
54
|
-
if (!projectName) {
|
|
55
|
-
throw new CLIError("No project name. Use --project <name> or run `kl init`.");
|
|
56
|
-
}
|
|
57
|
-
const authHeader = getAuthHeader(apiUrl);
|
|
58
|
-
if (!authHeader) {
|
|
59
|
-
throw new AuthError("Not logged in. Run `kl login` first.");
|
|
60
|
-
}
|
|
61
|
-
const computeApiUrl = await getComputeUrl();
|
|
62
|
-
const composeYaml = fs.readFileSync(composePath, "utf-8");
|
|
63
|
-
const computeService = new ComputeService(computeApiUrl, authHeader);
|
|
64
|
-
const spinner = createSpinner("Deploying...");
|
|
65
|
-
spinner.start();
|
|
66
|
-
try {
|
|
67
|
-
const result = await computeService.deploy(projectName, composeYaml);
|
|
68
|
-
spinner.stop();
|
|
69
|
-
console.log("Live at " + result.url);
|
|
70
|
-
}
|
|
71
|
-
catch (err) {
|
|
72
|
-
spinner.stop();
|
|
73
|
-
throw err;
|
|
74
|
-
}
|
|
75
|
-
return;
|
|
76
|
-
}
|
|
77
28
|
// Resolve project name
|
|
78
29
|
const projectName = options.project ?? config?.project;
|
|
79
30
|
if (!projectName) {
|
|
@@ -133,16 +84,12 @@ export function registerDeployCommand(program) {
|
|
|
133
84
|
result = await runDeploy(options.create);
|
|
134
85
|
}
|
|
135
86
|
catch (err) {
|
|
136
|
-
if (err instanceof ApiError &&
|
|
137
|
-
err.status === 404 &&
|
|
138
|
-
!options.create) {
|
|
87
|
+
if (err instanceof ApiError && err.status === 404 && !options.create) {
|
|
139
88
|
spinner.stop();
|
|
140
89
|
const isTTY = process.stdout.isTTY;
|
|
141
90
|
if (isTTY) {
|
|
142
91
|
const shouldCreate = await confirm({
|
|
143
|
-
message: 'Project "' +
|
|
144
|
-
projectName +
|
|
145
|
-
'" does not exist. Create it?',
|
|
92
|
+
message: 'Project "' + projectName + '" does not exist. Create it?',
|
|
146
93
|
default: true,
|
|
147
94
|
});
|
|
148
95
|
if (!shouldCreate) {
|
|
@@ -152,9 +99,7 @@ export function registerDeployCommand(program) {
|
|
|
152
99
|
result = await runDeploy(true);
|
|
153
100
|
}
|
|
154
101
|
else {
|
|
155
|
-
throw new CLIError('Project "' +
|
|
156
|
-
projectName +
|
|
157
|
-
'" not found. Use --create to create it.');
|
|
102
|
+
throw new CLIError('Project "' + projectName + '" not found. Use --create to create it.');
|
|
158
103
|
}
|
|
159
104
|
}
|
|
160
105
|
else {
|
|
@@ -173,9 +118,7 @@ export function registerDeployCommand(program) {
|
|
|
173
118
|
}
|
|
174
119
|
else {
|
|
175
120
|
if (options.verbose && result.owner) {
|
|
176
|
-
const ownerLabel = result.owner.type === "team" && result.owner.slug
|
|
177
|
-
? result.owner.slug
|
|
178
|
-
: "personal";
|
|
121
|
+
const ownerLabel = result.owner.type === "team" && result.owner.slug ? result.owner.slug : "personal";
|
|
179
122
|
console.log("Deploying to " + projectName + " (owner: " + ownerLabel + ")");
|
|
180
123
|
}
|
|
181
124
|
if (options.verbose) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -7,20 +7,14 @@ import { registerDeployCommand } from "./commands/deploy.js";
|
|
|
7
7
|
import { registerProjectsCommand } from "./commands/projects.js";
|
|
8
8
|
import { registerWhoamiCommand } from "./commands/whoami.js";
|
|
9
9
|
import { registerDeployKeyCommand } from "./commands/deploy-key.js";
|
|
10
|
-
import { registerComposePsCommand } from "./commands/compose-ps.js";
|
|
11
|
-
import { registerComposeLogsCommand } from "./commands/compose-logs.js";
|
|
12
|
-
import { registerComposeRunCommand } from "./commands/compose-run.js";
|
|
13
|
-
import { registerComposeDownCommand } from "./commands/compose-down.js";
|
|
14
10
|
import { CLIError } from "./lib/errors.js";
|
|
15
11
|
import { checkCredentialPermissions } from "./lib/auth.js";
|
|
12
|
+
import { getVersion } from "./lib/version.js";
|
|
16
13
|
const warning = checkCredentialPermissions();
|
|
17
14
|
if (warning)
|
|
18
15
|
console.warn(warning);
|
|
19
16
|
const program = new Command();
|
|
20
|
-
program
|
|
21
|
-
.name("kl")
|
|
22
|
-
.description("Deploy static sites to King's Landing")
|
|
23
|
-
.version("0.1.0");
|
|
17
|
+
program.name("kl").description("Deploy static sites to King's Landing").version(getVersion());
|
|
24
18
|
registerLoginCommand(program);
|
|
25
19
|
registerLogoutCommand(program);
|
|
26
20
|
registerInitCommand(program);
|
|
@@ -28,10 +22,6 @@ registerDeployCommand(program);
|
|
|
28
22
|
registerProjectsCommand(program);
|
|
29
23
|
registerWhoamiCommand(program);
|
|
30
24
|
registerDeployKeyCommand(program);
|
|
31
|
-
registerComposePsCommand(program);
|
|
32
|
-
registerComposeLogsCommand(program);
|
|
33
|
-
registerComposeRunCommand(program);
|
|
34
|
-
registerComposeDownCommand(program);
|
|
35
25
|
program.parseAsync(process.argv).catch((err) => {
|
|
36
26
|
if (err instanceof CLIError) {
|
|
37
27
|
console.error(err.message);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,OAAO,GAAG,0BAA0B,EAAE,CAAC;AAC7C,IAAI,OAAO;IAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAEnC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,uCAAuC,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;AAE9F,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC9B,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC/B,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC7B,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC/B,uBAAuB,CAAC,OAAO,CAAC,CAAC;AACjC,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC/B,wBAAwB,CAAC,OAAO,CAAC,CAAC;AAElC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IAC7C,IAAI,GAAG,YAAY,QAAQ,EAAE,CAAC;QAC5B,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC3B,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC;IACD,OAAO,CAAC,KAAK,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC;IACpF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
package/dist/lib/config.d.ts
CHANGED
|
@@ -7,11 +7,6 @@ export interface ProjectConfig {
|
|
|
7
7
|
export declare function resolveApiUrl(cwd?: string): string;
|
|
8
8
|
export declare function loadProjectConfig(cwd: string): ProjectConfig | null;
|
|
9
9
|
export declare function writeProjectConfig(cwd: string, config: Pick<ProjectConfig, "project" | "directory">): void;
|
|
10
|
-
/**
|
|
11
|
-
* Discover the compute API URL from the main API.
|
|
12
|
-
* Falls back to KL_COMPUTE_API_URL env var if set (escape hatch).
|
|
13
|
-
*/
|
|
14
|
-
export declare function getComputeUrl(): Promise<string>;
|
|
15
10
|
export declare function isLocalMode(apiUrl: string): boolean;
|
|
16
11
|
export declare function siteUrl(projectName: string, apiUrl: string): string;
|
|
17
12
|
//# sourceMappingURL=config.d.ts.map
|
package/dist/lib/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,MAAM,QAAiC,CAAC;AAErD,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,aAAa,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAqBlD;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAyBnE;AAED,wBAAgB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,MAAM,QAAiC,CAAC;AAErD,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,aAAa,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAqBlD;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAyBnE;AAED,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,SAAS,GAAG,WAAW,CAAC,GACnD,IAAI,CAGN;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED,wBAAgB,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAQnE"}
|
package/dist/lib/config.js
CHANGED
|
@@ -54,29 +54,6 @@ export function writeProjectConfig(cwd, config) {
|
|
|
54
54
|
const configPath = path.join(cwd, "kl.json");
|
|
55
55
|
fs.writeFileSync(configPath, JSON.stringify(config, null, 2) + "\n", "utf-8");
|
|
56
56
|
}
|
|
57
|
-
let cachedComputeUrl = null;
|
|
58
|
-
/**
|
|
59
|
-
* Discover the compute API URL from the main API.
|
|
60
|
-
* Falls back to KL_COMPUTE_API_URL env var if set (escape hatch).
|
|
61
|
-
*/
|
|
62
|
-
export async function getComputeUrl() {
|
|
63
|
-
const envOverride = process.env.KL_COMPUTE_API_URL;
|
|
64
|
-
if (envOverride)
|
|
65
|
-
return envOverride;
|
|
66
|
-
if (cachedComputeUrl)
|
|
67
|
-
return cachedComputeUrl;
|
|
68
|
-
const apiUrl = resolveApiUrl();
|
|
69
|
-
const response = await fetch(`${apiUrl}/api/v1/config`);
|
|
70
|
-
if (!response.ok) {
|
|
71
|
-
throw new Error(`Failed to fetch config from ${apiUrl}: ${response.status}`);
|
|
72
|
-
}
|
|
73
|
-
const config = (await response.json());
|
|
74
|
-
if (!config.compute_url) {
|
|
75
|
-
throw new Error(`Compute URL not configured on ${apiUrl}. Is the compute platform deployed?`);
|
|
76
|
-
}
|
|
77
|
-
cachedComputeUrl = config.compute_url;
|
|
78
|
-
return cachedComputeUrl;
|
|
79
|
-
}
|
|
80
57
|
export function isLocalMode(apiUrl) {
|
|
81
58
|
return apiUrl === LOCAL_API_URL;
|
|
82
59
|
}
|
package/dist/lib/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAE9B,MAAM,eAAe,GAAG,6BAA6B,CAAC;AACtD,MAAM,aAAa,GAAG,qBAAqB,CAAC;AAC5C,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC;AAQrD,MAAM,UAAU,aAAa,CAAC,GAAY;IACxC,MAAM,WAAW,GAAG,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAEzC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;IACtC,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAE1B,MAAM,MAAM,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAC9C,IAAI,MAAM,EAAE,OAAO;QAAE,OAAO,MAAM,CAAC,OAAO,CAAC;IAE3C,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC1D,IAAI,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACpC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;YACvD,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAyB,CAAC;YAC7D,IAAI,YAAY,CAAC,OAAO;gBAAE,OAAO,YAAY,CAAC,OAAO,CAAC;QACxD,CAAC;QAAC,MAAM,CAAC;YACP,iCAAiC;QACnC,CAAC;IACH,CAAC;IAED,OAAO,eAAe,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,GAAW;IAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAC7C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,IAAI,CAAC;IAE5C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA4B,CAAC;QAC1D,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QAEvE,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC;YAC5C,OAAO,CAAC,IAAI,CACV,0EAA0E;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Returns the CLI version, read from the package manifest at runtime.
|
|
3
|
+
*
|
|
4
|
+
* The manifest sits at the package root, one level above the compiled
|
|
5
|
+
* `dist/lib/` (and the `src/lib/` sources), so the same relative path
|
|
6
|
+
* resolves in both the built CLI and the test suite.
|
|
7
|
+
*/
|
|
8
|
+
export declare function getVersion(): string;
|
|
9
|
+
//# sourceMappingURL=version.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/lib/version.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAInC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { readFileSync } from "node:fs";
|
|
2
|
+
/**
|
|
3
|
+
* Returns the CLI version, read from the package manifest at runtime.
|
|
4
|
+
*
|
|
5
|
+
* The manifest sits at the package root, one level above the compiled
|
|
6
|
+
* `dist/lib/` (and the `src/lib/` sources), so the same relative path
|
|
7
|
+
* resolves in both the built CLI and the test suite.
|
|
8
|
+
*/
|
|
9
|
+
export function getVersion() {
|
|
10
|
+
const manifestUrl = new URL("../../package.json", import.meta.url);
|
|
11
|
+
const manifest = JSON.parse(readFileSync(manifestUrl, "utf8"));
|
|
12
|
+
return manifest.version;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=version.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/lib/version.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC;;;;;;GAMG;AACH,MAAM,UAAU,UAAU;IACxB,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,oBAAoB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnE,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAwB,CAAC;IACtF,OAAO,QAAQ,CAAC,OAAO,CAAC;AAC1B,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kingslanding/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.1",
|
|
4
4
|
"description": "Deploy static sites to King's Landing from any terminal or CI/CD pipeline",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"prepublishOnly": "npm run build"
|
|
22
22
|
},
|
|
23
23
|
"engines": {
|
|
24
|
-
"node": ">=
|
|
24
|
+
"node": ">=22"
|
|
25
25
|
},
|
|
26
26
|
"repository": {
|
|
27
27
|
"type": "git",
|
|
@@ -46,9 +46,10 @@
|
|
|
46
46
|
"@types/node": "^22.0.0",
|
|
47
47
|
"@typescript-eslint/eslint-plugin": "^8.0.0",
|
|
48
48
|
"@typescript-eslint/parser": "^8.0.0",
|
|
49
|
+
"@vitest/coverage-v8": "^4.1.9",
|
|
49
50
|
"eslint": "^8.0.0",
|
|
50
51
|
"prettier": "^3.0.0",
|
|
51
52
|
"typescript": "^5.7.0",
|
|
52
|
-
"vitest": "^
|
|
53
|
+
"vitest": "^4.1.9"
|
|
53
54
|
}
|
|
54
55
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"compose-down.d.ts","sourceRoot":"","sources":["../../src/commands/compose-down.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQzC,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAyDjE"}
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import { confirm } from "@inquirer/prompts";
|
|
2
|
-
import { ComputeService } from "../services/compute-service.js";
|
|
3
|
-
import { resolveApiUrl, getComputeUrl, loadProjectConfig } from "../lib/config.js";
|
|
4
|
-
import { getAuthHeader } from "../lib/auth.js";
|
|
5
|
-
import { createSpinner } from "../lib/output.js";
|
|
6
|
-
import { CLIError, AuthError } from "../lib/errors.js";
|
|
7
|
-
export function registerComposeDownCommand(program) {
|
|
8
|
-
program
|
|
9
|
-
.command("down")
|
|
10
|
-
.description("Delete the current project and all its containers")
|
|
11
|
-
.option("-y, --yes", "Skip confirmation prompt")
|
|
12
|
-
.action(async (options) => {
|
|
13
|
-
const cwd = process.cwd();
|
|
14
|
-
const config = loadProjectConfig(cwd);
|
|
15
|
-
const projectId = config?.project;
|
|
16
|
-
if (!projectId) {
|
|
17
|
-
throw new CLIError("No project name. Run `kl init` or create a kl.json with a project field.");
|
|
18
|
-
}
|
|
19
|
-
if (!options.yes) {
|
|
20
|
-
const isTTY = process.stdout.isTTY;
|
|
21
|
-
if (isTTY) {
|
|
22
|
-
const confirmed = await confirm({
|
|
23
|
-
message: 'Delete project "' +
|
|
24
|
-
projectId +
|
|
25
|
-
'" and all its containers? This cannot be undone.',
|
|
26
|
-
default: false,
|
|
27
|
-
});
|
|
28
|
-
if (!confirmed) {
|
|
29
|
-
throw new CLIError("Aborted.");
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
else {
|
|
33
|
-
throw new CLIError("Use --yes to confirm deletion in non-interactive mode.");
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
const apiUrl = resolveApiUrl(cwd);
|
|
37
|
-
const authHeader = getAuthHeader(apiUrl);
|
|
38
|
-
if (!authHeader) {
|
|
39
|
-
throw new AuthError("Not logged in. Run `kl login` first.");
|
|
40
|
-
}
|
|
41
|
-
const computeApiUrl = await getComputeUrl();
|
|
42
|
-
const computeService = new ComputeService(computeApiUrl, authHeader);
|
|
43
|
-
const spinner = createSpinner("Deleting project...");
|
|
44
|
-
spinner.start();
|
|
45
|
-
try {
|
|
46
|
-
await computeService.deleteProject(projectId);
|
|
47
|
-
spinner.stop();
|
|
48
|
-
console.log('Project "' + projectId + '" deleted.');
|
|
49
|
-
}
|
|
50
|
-
catch (err) {
|
|
51
|
-
spinner.stop();
|
|
52
|
-
throw err;
|
|
53
|
-
}
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
//# sourceMappingURL=compose-down.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"compose-down.js","sourceRoot":"","sources":["../../src/commands/compose-down.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACnF,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAEvD,MAAM,UAAU,0BAA0B,CAAC,OAAgB;IACzD,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,mDAAmD,CAAC;SAChE,MAAM,CAAC,WAAW,EAAE,0BAA0B,CAAC;SAC/C,MAAM,CAAC,KAAK,EAAE,OAA0B,EAAE,EAAE;QAC3C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAEtC,MAAM,SAAS,GAAG,MAAM,EAAE,OAAO,CAAC;QAClC,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,QAAQ,CAChB,0EAA0E,CAC3E,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;YACjB,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;YACnC,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC;oBAC9B,OAAO,EACL,kBAAkB;wBAClB,SAAS;wBACT,kDAAkD;oBACpD,OAAO,EAAE,KAAK;iBACf,CAAC,CAAC;gBACH,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,MAAM,IAAI,QAAQ,CAAC,UAAU,CAAC,CAAC;gBACjC,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,QAAQ,CAChB,wDAAwD,CACzD,CAAC;YACJ,CAAC;QACH,CAAC;QAED,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;QAClC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QACzC,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;QAC9D,CAAC;QAED,MAAM,aAAa,GAAG,MAAM,aAAa,EAAE,CAAC;QAC5C,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;QAErE,MAAM,OAAO,GAAG,aAAa,CAAC,qBAAqB,CAAC,CAAC;QACrD,OAAO,CAAC,KAAK,EAAE,CAAC;QAEhB,IAAI,CAAC;YACH,MAAM,cAAc,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;YAC9C,OAAO,CAAC,IAAI,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,WAAW,GAAG,SAAS,GAAG,YAAY,CAAC,CAAC;QACtD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,EAAE,CAAC;YACf,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"compose-logs.d.ts","sourceRoot":"","sources":["../../src/commands/compose-logs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMzC,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAiCjE"}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { ComputeService } from "../services/compute-service.js";
|
|
2
|
-
import { resolveApiUrl, getComputeUrl, loadProjectConfig } from "../lib/config.js";
|
|
3
|
-
import { getAuthHeader } from "../lib/auth.js";
|
|
4
|
-
import { CLIError, AuthError } from "../lib/errors.js";
|
|
5
|
-
export function registerComposeLogsCommand(program) {
|
|
6
|
-
program
|
|
7
|
-
.command("logs")
|
|
8
|
-
.description("Fetch logs from the current project")
|
|
9
|
-
.argument("[service]", "Service name to filter logs")
|
|
10
|
-
.option("--tail <n>", "Number of lines to show from the end", "100")
|
|
11
|
-
.action(async (service, options) => {
|
|
12
|
-
const cwd = process.cwd();
|
|
13
|
-
const config = loadProjectConfig(cwd);
|
|
14
|
-
const projectId = config?.project;
|
|
15
|
-
if (!projectId) {
|
|
16
|
-
throw new CLIError("No project name. Run `kl init` or create a kl.json with a project field.");
|
|
17
|
-
}
|
|
18
|
-
const tail = parseInt(options.tail, 10);
|
|
19
|
-
if (isNaN(tail) || tail < 1) {
|
|
20
|
-
throw new CLIError("--tail must be a positive integer.");
|
|
21
|
-
}
|
|
22
|
-
const apiUrl = resolveApiUrl(cwd);
|
|
23
|
-
const authHeader = getAuthHeader(apiUrl);
|
|
24
|
-
if (!authHeader) {
|
|
25
|
-
throw new AuthError("Not logged in. Run `kl login` first.");
|
|
26
|
-
}
|
|
27
|
-
const computeApiUrl = await getComputeUrl();
|
|
28
|
-
const computeService = new ComputeService(computeApiUrl, authHeader);
|
|
29
|
-
const output = await computeService.getLogs(projectId, service, tail);
|
|
30
|
-
process.stdout.write(output);
|
|
31
|
-
});
|
|
32
|
-
}
|
|
33
|
-
//# sourceMappingURL=compose-logs.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"compose-logs.js","sourceRoot":"","sources":["../../src/commands/compose-logs.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACnF,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAEvD,MAAM,UAAU,0BAA0B,CAAC,OAAgB;IACzD,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,qCAAqC,CAAC;SAClD,QAAQ,CAAC,WAAW,EAAE,6BAA6B,CAAC;SACpD,MAAM,CAAC,YAAY,EAAE,sCAAsC,EAAE,KAAK,CAAC;SACnE,MAAM,CAAC,KAAK,EAAE,OAA2B,EAAE,OAAyB,EAAE,EAAE;QACvE,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAEtC,MAAM,SAAS,GAAG,MAAM,EAAE,OAAO,CAAC;QAClC,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,QAAQ,CAChB,0EAA0E,CAC3E,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACxC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,QAAQ,CAAC,oCAAoC,CAAC,CAAC;QAC3D,CAAC;QAED,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;QAClC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QACzC,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;QAC9D,CAAC;QAED,MAAM,aAAa,GAAG,MAAM,aAAa,EAAE,CAAC;QAC5C,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;QACrE,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QACtE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"compose-ps.d.ts","sourceRoot":"","sources":["../../src/commands/compose-ps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMzC,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA0B/D"}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { ComputeService } from "../services/compute-service.js";
|
|
2
|
-
import { resolveApiUrl, getComputeUrl, loadProjectConfig } from "../lib/config.js";
|
|
3
|
-
import { getAuthHeader } from "../lib/auth.js";
|
|
4
|
-
import { CLIError, AuthError } from "../lib/errors.js";
|
|
5
|
-
export function registerComposePsCommand(program) {
|
|
6
|
-
program
|
|
7
|
-
.command("ps")
|
|
8
|
-
.description("Show running containers for the current project")
|
|
9
|
-
.action(async () => {
|
|
10
|
-
const cwd = process.cwd();
|
|
11
|
-
const config = loadProjectConfig(cwd);
|
|
12
|
-
const projectId = config?.project;
|
|
13
|
-
if (!projectId) {
|
|
14
|
-
throw new CLIError("No project name. Run `kl init` or create a kl.json with a project field.");
|
|
15
|
-
}
|
|
16
|
-
const apiUrl = resolveApiUrl(cwd);
|
|
17
|
-
const authHeader = getAuthHeader(apiUrl);
|
|
18
|
-
if (!authHeader) {
|
|
19
|
-
throw new AuthError("Not logged in. Run `kl login` first.");
|
|
20
|
-
}
|
|
21
|
-
const computeApiUrl = await getComputeUrl();
|
|
22
|
-
const computeService = new ComputeService(computeApiUrl, authHeader);
|
|
23
|
-
const output = await computeService.getPs(projectId);
|
|
24
|
-
process.stdout.write(output);
|
|
25
|
-
});
|
|
26
|
-
}
|
|
27
|
-
//# sourceMappingURL=compose-ps.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"compose-ps.js","sourceRoot":"","sources":["../../src/commands/compose-ps.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACnF,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAEvD,MAAM,UAAU,wBAAwB,CAAC,OAAgB;IACvD,OAAO;SACJ,OAAO,CAAC,IAAI,CAAC;SACb,WAAW,CAAC,iDAAiD,CAAC;SAC9D,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAEtC,MAAM,SAAS,GAAG,MAAM,EAAE,OAAO,CAAC;QAClC,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,QAAQ,CAChB,0EAA0E,CAC3E,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;QAClC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QACzC,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;QAC9D,CAAC;QAED,MAAM,aAAa,GAAG,MAAM,aAAa,EAAE,CAAC;QAC5C,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;QACrE,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACrD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"compose-run.d.ts","sourceRoot":"","sources":["../../src/commands/compose-run.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMzC,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAkChE"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { ComputeService } from "../services/compute-service.js";
|
|
2
|
-
import { resolveApiUrl, getComputeUrl, loadProjectConfig } from "../lib/config.js";
|
|
3
|
-
import { getAuthHeader } from "../lib/auth.js";
|
|
4
|
-
import { CLIError, AuthError } from "../lib/errors.js";
|
|
5
|
-
export function registerComposeRunCommand(program) {
|
|
6
|
-
program
|
|
7
|
-
.command("run")
|
|
8
|
-
.description("Run a one-off command in a project service container")
|
|
9
|
-
.argument("<service>", "Service name to run the command in")
|
|
10
|
-
.argument("<command...>", "Command and arguments to run")
|
|
11
|
-
.action(async (service, command) => {
|
|
12
|
-
const cwd = process.cwd();
|
|
13
|
-
const config = loadProjectConfig(cwd);
|
|
14
|
-
const projectId = config?.project;
|
|
15
|
-
if (!projectId) {
|
|
16
|
-
throw new CLIError("No project name. Run `kl init` or create a kl.json with a project field.");
|
|
17
|
-
}
|
|
18
|
-
const apiUrl = resolveApiUrl(cwd);
|
|
19
|
-
const authHeader = getAuthHeader(apiUrl);
|
|
20
|
-
if (!authHeader) {
|
|
21
|
-
throw new AuthError("Not logged in. Run `kl login` first.");
|
|
22
|
-
}
|
|
23
|
-
const computeApiUrl = await getComputeUrl();
|
|
24
|
-
const computeService = new ComputeService(computeApiUrl, authHeader);
|
|
25
|
-
const result = await computeService.execCommand(projectId, service, command);
|
|
26
|
-
process.stdout.write(result.output);
|
|
27
|
-
process.exit(result.returncode);
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
//# sourceMappingURL=compose-run.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"compose-run.js","sourceRoot":"","sources":["../../src/commands/compose-run.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACnF,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAEvD,MAAM,UAAU,yBAAyB,CAAC,OAAgB;IACxD,OAAO;SACJ,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,sDAAsD,CAAC;SACnE,QAAQ,CAAC,WAAW,EAAE,oCAAoC,CAAC;SAC3D,QAAQ,CAAC,cAAc,EAAE,8BAA8B,CAAC;SACxD,MAAM,CAAC,KAAK,EAAE,OAAe,EAAE,OAAiB,EAAE,EAAE;QACnD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAEtC,MAAM,SAAS,GAAG,MAAM,EAAE,OAAO,CAAC;QAClC,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,QAAQ,CAChB,0EAA0E,CAC3E,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;QAClC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QACzC,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;QAC9D,CAAC;QAED,MAAM,aAAa,GAAG,MAAM,aAAa,EAAE,CAAC;QAC5C,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;QACrE,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,WAAW,CAC7C,SAAS,EACT,OAAO,EACP,OAAO,CACR,CAAC;QAEF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACpC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
export interface ComputeDeployResult {
|
|
2
|
-
project_id: string;
|
|
3
|
-
url: string;
|
|
4
|
-
state: string;
|
|
5
|
-
}
|
|
6
|
-
export interface ComputeProjectStatus {
|
|
7
|
-
project_id: string;
|
|
8
|
-
state: string;
|
|
9
|
-
url: string;
|
|
10
|
-
}
|
|
11
|
-
export interface ComputeExecResult {
|
|
12
|
-
output: string;
|
|
13
|
-
returncode: number;
|
|
14
|
-
}
|
|
15
|
-
export declare class ComputeService {
|
|
16
|
-
private readonly baseUrl;
|
|
17
|
-
private readonly authHeader;
|
|
18
|
-
constructor(baseUrl: string, authHeader: string);
|
|
19
|
-
deploy(projectId: string, composeYaml: string): Promise<ComputeDeployResult>;
|
|
20
|
-
listProjects(): Promise<ComputeProjectStatus[]>;
|
|
21
|
-
stopProject(projectId: string): Promise<void>;
|
|
22
|
-
deleteProject(projectId: string): Promise<void>;
|
|
23
|
-
getLogs(projectId: string, service?: string, tail?: number): Promise<string>;
|
|
24
|
-
getPs(projectId: string): Promise<string>;
|
|
25
|
-
execCommand(projectId: string, service: string, command: string[]): Promise<ComputeExecResult>;
|
|
26
|
-
private request;
|
|
27
|
-
}
|
|
28
|
-
//# sourceMappingURL=compute-service.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"compute-service.d.ts","sourceRoot":"","sources":["../../src/services/compute-service.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,cAAc;IAEvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,UAAU;gBADV,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM;IAG/B,MAAM,CACV,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,mBAAmB,CAAC;IAOzB,YAAY,IAAI,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAI/C,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7C,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/C,OAAO,CACX,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,MAAM,EAChB,IAAI,SAAM,GACT,OAAO,CAAC,MAAM,CAAC;IAUZ,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAQzC,WAAW,CACf,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EAAE,GAChB,OAAO,CAAC,iBAAiB,CAAC;YAOf,OAAO;CAuCtB"}
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
import { ApiError, NetworkError } from "../lib/errors.js";
|
|
2
|
-
export class ComputeService {
|
|
3
|
-
baseUrl;
|
|
4
|
-
authHeader;
|
|
5
|
-
constructor(baseUrl, authHeader) {
|
|
6
|
-
this.baseUrl = baseUrl;
|
|
7
|
-
this.authHeader = authHeader;
|
|
8
|
-
}
|
|
9
|
-
async deploy(projectId, composeYaml) {
|
|
10
|
-
return this.request("POST", "/deploy", {
|
|
11
|
-
project_id: projectId,
|
|
12
|
-
compose_yaml: composeYaml,
|
|
13
|
-
});
|
|
14
|
-
}
|
|
15
|
-
async listProjects() {
|
|
16
|
-
return this.request("GET", "/projects");
|
|
17
|
-
}
|
|
18
|
-
async stopProject(projectId) {
|
|
19
|
-
await this.request("POST", "/projects/" + projectId + "/stop");
|
|
20
|
-
}
|
|
21
|
-
async deleteProject(projectId) {
|
|
22
|
-
await this.request("DELETE", "/projects/" + projectId);
|
|
23
|
-
}
|
|
24
|
-
async getLogs(projectId, service, tail = 100) {
|
|
25
|
-
const params = new URLSearchParams({ tail: String(tail) });
|
|
26
|
-
if (service)
|
|
27
|
-
params.set("service", service);
|
|
28
|
-
const result = await this.request("GET", "/projects/" + projectId + "/logs?" + params.toString());
|
|
29
|
-
return result.output;
|
|
30
|
-
}
|
|
31
|
-
async getPs(projectId) {
|
|
32
|
-
const result = await this.request("GET", "/projects/" + projectId + "/ps");
|
|
33
|
-
return result.output;
|
|
34
|
-
}
|
|
35
|
-
async execCommand(projectId, service, command) {
|
|
36
|
-
return this.request("POST", "/projects/" + projectId + "/exec", {
|
|
37
|
-
service,
|
|
38
|
-
command,
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
async request(method, path, body) {
|
|
42
|
-
const url = this.baseUrl + path;
|
|
43
|
-
const headers = {
|
|
44
|
-
Authorization: this.authHeader,
|
|
45
|
-
};
|
|
46
|
-
if (body !== undefined) {
|
|
47
|
-
headers["Content-Type"] = "application/json";
|
|
48
|
-
}
|
|
49
|
-
let response;
|
|
50
|
-
try {
|
|
51
|
-
response = await fetch(url, {
|
|
52
|
-
method,
|
|
53
|
-
headers,
|
|
54
|
-
body: body !== undefined ? JSON.stringify(body) : undefined,
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
catch {
|
|
58
|
-
throw new NetworkError(this.baseUrl);
|
|
59
|
-
}
|
|
60
|
-
if (response.status === 204)
|
|
61
|
-
return undefined;
|
|
62
|
-
if (!response.ok) {
|
|
63
|
-
let detail = "HTTP " + response.status;
|
|
64
|
-
try {
|
|
65
|
-
const json = (await response.json());
|
|
66
|
-
if (typeof json.detail === "string")
|
|
67
|
-
detail = json.detail;
|
|
68
|
-
}
|
|
69
|
-
catch {
|
|
70
|
-
// Non-JSON error body
|
|
71
|
-
}
|
|
72
|
-
throw new ApiError(response.status, detail);
|
|
73
|
-
}
|
|
74
|
-
return response.json();
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
//# sourceMappingURL=compute-service.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"compute-service.js","sourceRoot":"","sources":["../../src/services/compute-service.ts"],"names":[],"mappings":"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"}
|