@lizard-build/cli 0.3.76 → 0.3.77

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,6 +1,6 @@
1
1
  import { Command } from "commander";
2
2
  /**
3
- * `lizard workspace` — workspace info.
3
+ * `lizard workspace` — create and list workspaces.
4
4
  *
5
5
  * Member management (invite/remove/rename) intentionally lives in the
6
6
  * dashboard, not here, to keep CLI surface narrow (Railway model).
@@ -1,8 +1,9 @@
1
1
  import chalk from "chalk";
2
+ import { api } from "../lib/api.js";
2
3
  import { fetchWorkspaces } from "../lib/picker.js";
3
- import { isJSONMode, printJSON, table } from "../lib/format.js";
4
+ import { isJSONMode, printJSON, table, success, info } from "../lib/format.js";
4
5
  /**
5
- * `lizard workspace` — workspace info.
6
+ * `lizard workspace` — create and list workspaces.
6
7
  *
7
8
  * Member management (invite/remove/rename) intentionally lives in the
8
9
  * dashboard, not here, to keep CLI surface narrow (Railway model).
@@ -10,7 +11,20 @@ import { isJSONMode, printJSON, table } from "../lib/format.js";
10
11
  export function registerWorkspace(program) {
11
12
  const ws = program
12
13
  .command("workspace")
13
- .description("Workspace info");
14
+ .description("Create and list workspaces");
15
+ ws.command("create")
16
+ .argument("<name>", "Workspace name")
17
+ .description("Create a new workspace")
18
+ .action(async (name) => {
19
+ const workspace = await api.post("/api/workspaces", { name });
20
+ if (isJSONMode()) {
21
+ printJSON(workspace);
22
+ return;
23
+ }
24
+ success(`Workspace ${chalk.bold(workspace.name)} created`);
25
+ info(chalk.dim(` Slug: ${workspace.slug}`));
26
+ info(chalk.dim(` Add a project: lizard project create <name> --workspace ${workspace.slug}`));
27
+ });
14
28
  ws.command("list")
15
29
  .alias("ls")
16
30
  .description("List workspaces you belong to")
@@ -1 +1 @@
1
- {"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../src/commands/workspace.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEhE;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAgB;IAChD,MAAM,EAAE,GAAG,OAAO;SACf,OAAO,CAAC,WAAW,CAAC;SACpB,WAAW,CAAC,gBAAgB,CAAC,CAAC;IAEjC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;SACf,KAAK,CAAC,IAAI,CAAC;SACX,WAAW,CAAC,+BAA+B,CAAC;SAC5C,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,IAAI,GAAG,MAAM,eAAe,EAAE,CAAC;QAErC,IAAI,UAAU,EAAE,EAAE,CAAC;YACjB,SAAS,CAAC,IAAI,CAAC,CAAC;YAChB,OAAO;QACT,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,uEAAuE,CAAC,CAAC;YACrF,OAAO;QACT,CAAC;QAED,KAAK,CACH,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,EAChD,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YACd,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,IAAI;YACN,MAAM,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC;YAC3B,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;SACrC,CAAC,CACH,CAAC;IACJ,CAAC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../src/commands/workspace.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,GAAG,EAAkB,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAE/E;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAgB;IAChD,MAAM,EAAE,GAAG,OAAO;SACf,OAAO,CAAC,WAAW,CAAC;SACpB,WAAW,CAAC,4BAA4B,CAAC,CAAC;IAE7C,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC;SACjB,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SACpC,WAAW,CAAC,wBAAwB,CAAC;SACrC,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,EAAE;QAC7B,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,IAAI,CAAY,iBAAiB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QAEzE,IAAI,UAAU,EAAE,EAAE,CAAC;YACjB,SAAS,CAAC,SAAS,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QAED,OAAO,CAAC,aAAa,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC3D,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC7C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,6DAA6D,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACjG,CAAC,CAAC,CAAC;IAEL,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;SACf,KAAK,CAAC,IAAI,CAAC;SACX,WAAW,CAAC,+BAA+B,CAAC;SAC5C,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,IAAI,GAAG,MAAM,eAAe,EAAE,CAAC;QAErC,IAAI,UAAU,EAAE,EAAE,CAAC;YACjB,SAAS,CAAC,IAAI,CAAC,CAAC;YAChB,OAAO;QACT,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,uEAAuE,CAAC,CAAC;YACrF,OAAO;QACT,CAAC;QAED,KAAK,CACH,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,EAChD,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YACd,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,IAAI;YACN,MAAM,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC;YAC3B,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;SACrC,CAAC,CACH,CAAC;IACJ,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -1,4 +1,4 @@
1
- export declare const CURRENT_VERSION = "0.3.76";
1
+ export declare const CURRENT_VERSION = "0.3.77";
2
2
  /**
3
3
  * True only when running as the Bun-compiled standalone binary. Under
4
4
  * npm/node, `process.execPath` is the *node* executable — self-update would
@@ -4,7 +4,7 @@ import { Readable } from "node:stream";
4
4
  import { join, dirname } from "node:path";
5
5
  import os from "node:os";
6
6
  import { spawn } from "node:child_process";
7
- export const CURRENT_VERSION = "0.3.76";
7
+ export const CURRENT_VERSION = "0.3.77";
8
8
  const RELEASES_API = "https://api.github.com/repos/lizard-build/lizard-cli/releases/latest";
9
9
  const RELEASE_BASE = "https://github.com/lizard-build/lizard-cli/releases/latest/download";
10
10
  /** Minimum gap between background update checks. */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lizard-build/cli",
3
- "version": "0.3.76",
3
+ "version": "0.3.77",
4
4
  "description": "Lizard CLI — deploy and manage apps on Lizard",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1,10 +1,11 @@
1
1
  import chalk from "chalk";
2
2
  import { Command } from "commander";
3
+ import { api, type Workspace } from "../lib/api.js";
3
4
  import { fetchWorkspaces } from "../lib/picker.js";
4
- import { isJSONMode, printJSON, table } from "../lib/format.js";
5
+ import { isJSONMode, printJSON, table, success, info } from "../lib/format.js";
5
6
 
6
7
  /**
7
- * `lizard workspace` — workspace info.
8
+ * `lizard workspace` — create and list workspaces.
8
9
  *
9
10
  * Member management (invite/remove/rename) intentionally lives in the
10
11
  * dashboard, not here, to keep CLI surface narrow (Railway model).
@@ -12,7 +13,23 @@ import { isJSONMode, printJSON, table } from "../lib/format.js";
12
13
  export function registerWorkspace(program: Command) {
13
14
  const ws = program
14
15
  .command("workspace")
15
- .description("Workspace info");
16
+ .description("Create and list workspaces");
17
+
18
+ ws.command("create")
19
+ .argument("<name>", "Workspace name")
20
+ .description("Create a new workspace")
21
+ .action(async (name: string) => {
22
+ const workspace = await api.post<Workspace>("/api/workspaces", { name });
23
+
24
+ if (isJSONMode()) {
25
+ printJSON(workspace);
26
+ return;
27
+ }
28
+
29
+ success(`Workspace ${chalk.bold(workspace.name)} created`);
30
+ info(chalk.dim(` Slug: ${workspace.slug}`));
31
+ info(chalk.dim(` Add a project: lizard project create <name> --workspace ${workspace.slug}`));
32
+ });
16
33
 
17
34
  ws.command("list")
18
35
  .alias("ls")
@@ -5,7 +5,7 @@ import { join, dirname } from "node:path";
5
5
  import os from "node:os";
6
6
  import { spawn } from "node:child_process";
7
7
 
8
- export const CURRENT_VERSION = "0.3.76";
8
+ export const CURRENT_VERSION = "0.3.77";
9
9
  const RELEASES_API = "https://api.github.com/repos/lizard-build/lizard-cli/releases/latest";
10
10
  const RELEASE_BASE = "https://github.com/lizard-build/lizard-cli/releases/latest/download";
11
11