@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.
@@ -1 +1 @@
1
- {"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiCzC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAgN5D"}
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"}
@@ -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, getComputeUrl, loadProjectConfig } from "../lib/config.js";
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 early so compose detection uses the right path
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":"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"}
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,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAE3D,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;KACJ,IAAI,CAAC,IAAI,CAAC;KACV,WAAW,CAAC,uCAAuC,CAAC;KACpD,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,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;AAClC,wBAAwB,CAAC,OAAO,CAAC,CAAC;AAClC,0BAA0B,CAAC,OAAO,CAAC,CAAC;AACpC,yBAAyB,CAAC,OAAO,CAAC,CAAC;AACnC,0BAA0B,CAAC,OAAO,CAAC,CAAC;AAEpC,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"}
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"}
@@ -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
@@ -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,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,SAAS,GAAG,WAAW,CAAC,GAAG,IAAI,CAG1G;AAID;;;GAGG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,CAiBrD;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED,wBAAgB,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAQnE"}
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"}
@@ -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
  }
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"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"}
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.2.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": ">=18"
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": "^3.0.0"
53
+ "vitest": "^4.1.9"
53
54
  }
54
55
  }
@@ -1,3 +0,0 @@
1
- import type { Command } from "commander";
2
- export declare function registerComposeDownCommand(program: Command): void;
3
- //# sourceMappingURL=compose-down.d.ts.map
@@ -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,3 +0,0 @@
1
- import type { Command } from "commander";
2
- export declare function registerComposeLogsCommand(program: Command): void;
3
- //# sourceMappingURL=compose-logs.d.ts.map
@@ -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,3 +0,0 @@
1
- import type { Command } from "commander";
2
- export declare function registerComposePsCommand(program: Command): void;
3
- //# sourceMappingURL=compose-ps.d.ts.map
@@ -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,3 +0,0 @@
1
- import type { Command } from "commander";
2
- export declare function registerComposeRunCommand(program: Command): void;
3
- //# sourceMappingURL=compose-run.d.ts.map
@@ -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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"}