@lizard-build/cli 4.0.76 → 4.0.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.
- package/dist/commands/projects.js +5 -3
- package/dist/commands/projects.js.map +1 -1
- package/dist/lib/updater.d.ts +1 -1
- package/dist/lib/updater.js +1 -1
- package/package.json +1 -1
- package/src/commands/projects.ts +6 -4
- package/src/lib/updater.ts +1 -1
- package/test/unit/project-delete.test.ts +28 -0
|
@@ -79,8 +79,10 @@ export function registerProjects(program) {
|
|
|
79
79
|
proj
|
|
80
80
|
.command("delete")
|
|
81
81
|
.alias("rm")
|
|
82
|
-
.description("Delete a project —
|
|
83
|
-
|
|
82
|
+
.description("Delete a project — services and databases go to trash for 3 days; sandboxes, their volumes and snapshots are deleted at once")
|
|
83
|
+
// Always named: no fallback to the linked folder or the default project, so a delete
|
|
84
|
+
// run in the wrong folder can't take a project nobody meant.
|
|
85
|
+
.argument("<project>", "Project name, slug, or ID")
|
|
84
86
|
.option("-y, --yes", "Skip confirmation")
|
|
85
87
|
.action(async (projectArg, opts) => {
|
|
86
88
|
const projectId = await resolveProjectId(projectArg);
|
|
@@ -90,7 +92,7 @@ export function registerProjects(program) {
|
|
|
90
92
|
if (!isTTY())
|
|
91
93
|
throw new Error("Use -y to confirm in non-interactive mode");
|
|
92
94
|
const confirm = await p.confirm({
|
|
93
|
-
message: `Delete project ${chalk.bold(name)}?
|
|
95
|
+
message: `Delete project ${chalk.bold(name)}? Its services and databases stop and stay in trash for 3 days; its sandboxes, their volumes and snapshots are deleted now.`,
|
|
94
96
|
});
|
|
95
97
|
if (p.isCancel(confirm) || !confirm)
|
|
96
98
|
process.exit(5);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/commands/projects.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AAEpC,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAChF,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAwB,MAAM,YAAY,CAAC;AAanE,MAAM,UAAU,gBAAgB,CAAC,OAAgB;IAC/C,MAAM,IAAI,GAAG,OAAO;SACjB,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,oBAAoB,CAAC,CAAC;IAErC,IAAI;SACD,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,mBAAmB,CAAC;SAChC,MAAM,CAAC,sBAAsB,EAAE,uCAAuC,CAAC;SACvE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,IAAI,WAA+B,CAAC;QACpC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,WAAW,GAAG,CAAC,MAAM,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5D,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,GAAG,CAC5B,SAAS,CAAC,eAAe,EAAE,EAAE,WAAW,EAAE,CAAC,CAC5C,CAAC;QAEF,IAAI,UAAU,EAAE,EAAE,CAAC;YACjB,SAAS,CAAC,QAAQ,CAAC,CAAC;YACpB,OAAO;QACT,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;YAC7D,OAAO;QACT,CAAC;QAED,KAAK,CACH,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAChD,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YAClB,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,aAAa,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;YACjC,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,IAAI,IAAI,OAAO;YACjB,MAAM,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC;SAC3B,CAAC,CACH,CAAC;IACJ,CAAC,CAAC,CAAC;IAEL,IAAI;SACD,OAAO,CAAC,QAAQ,CAAC;SACjB,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;SAClC,WAAW,CAAC,2DAA2D,CAAC;SACxE,MAAM,CAAC,sBAAsB,EAAE,oCAAoC,CAAC;SACpE,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,IAAI,EAAE,EAAE;QACnC,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QAChE,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,IAAI,CAAU,eAAe,EAAE;YACvD,IAAI;YACJ,WAAW,EAAE,SAAS,CAAC,EAAE;SAC1B,CAAC,CAAC;QAEH,IAAI,UAAU,EAAE,EAAE,CAAC;YACjB,SAAS,CAAC;gBACR,GAAG,OAAO;gBACV,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,SAAS,CAAC,EAAE;gBAChD,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,SAAS,CAAC,IAAI;aACvD,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,OAAO,CACL,WAAW,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAC/E,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,KAAK,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAU,EAAE,CAAC;QAC9C,IAAI;aACD,OAAO,CAAC,EAAE,CAAC;aACX,WAAW,CAAC,EAAE,KAAK,OAAO;YACzB,CAAC,CAAC,wFAAwF;YAC1F,CAAC,CAAC,6CAA6C,CAAC;aACjD,QAAQ,CAAC,WAAW,EAAE,8EAA8E,CAAC;aACrG,MAAM,CAAC,KAAK,EAAE,UAA8B,EAAE,EAAE;YAC/C,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC,UAAU,CAAC,CAAC;YACrD,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,CAAkB,iBAAiB,SAAS,IAAI,EAAE,EAAE,CAAC,CAAC;YACnF,IAAI,UAAU,EAAE,EAAE,CAAC;gBAAC,SAAS,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;gBAAC,OAAO;YAAC,CAAC;YACtE,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,GAAG,CAAY,eAAe,CAAC,CAAC;YAC3D,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,SAAS,CAAC,EAAE,IAAI,IAAI,SAAS,CAAC;YAC/E,eAAe,CAAC,EAAE,EAAE,WAAW,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;IACP,CAAC;IAED,IAAI;SACD,OAAO,CAAC,QAAQ,CAAC;SACjB,KAAK,CAAC,IAAI,CAAC;SACX,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/commands/projects.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/updater.d.ts
CHANGED
package/dist/lib/updater.js
CHANGED
|
@@ -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 = "4.0.
|
|
7
|
+
export const CURRENT_VERSION = "4.0.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": "4.0.
|
|
3
|
+
"version": "4.0.77",
|
|
4
4
|
"description": "Lizard CLI — deploy apps, databases and sandboxes to Lizard (lizard.build) from your terminal or your coding agent. Detects Go, Node, Python, Rust, Ruby, PHP, Java and static sites; adds Managed Postgres, Managed Redis and Managed Object Storage in one command.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
package/src/commands/projects.ts
CHANGED
|
@@ -103,10 +103,12 @@ export function registerProjects(program: Command) {
|
|
|
103
103
|
proj
|
|
104
104
|
.command("delete")
|
|
105
105
|
.alias("rm")
|
|
106
|
-
.description("Delete a project —
|
|
107
|
-
|
|
106
|
+
.description("Delete a project — services and databases go to trash for 3 days; sandboxes, their volumes and snapshots are deleted at once")
|
|
107
|
+
// Always named: no fallback to the linked folder or the default project, so a delete
|
|
108
|
+
// run in the wrong folder can't take a project nobody meant.
|
|
109
|
+
.argument("<project>", "Project name, slug, or ID")
|
|
108
110
|
.option("-y, --yes", "Skip confirmation")
|
|
109
|
-
.action(async (projectArg: string
|
|
111
|
+
.action(async (projectArg: string, opts) => {
|
|
110
112
|
const projectId = await resolveProjectId(projectArg);
|
|
111
113
|
const projects = await api.get<Project[]>("/api/projects");
|
|
112
114
|
const name = projects.find((proj) => proj.id === projectId)?.name ?? projectId;
|
|
@@ -114,7 +116,7 @@ export function registerProjects(program: Command) {
|
|
|
114
116
|
if (!opts.yes) {
|
|
115
117
|
if (!isTTY()) throw new Error("Use -y to confirm in non-interactive mode");
|
|
116
118
|
const confirm = await p.confirm({
|
|
117
|
-
message: `Delete project ${chalk.bold(name)}?
|
|
119
|
+
message: `Delete project ${chalk.bold(name)}? Its services and databases stop and stay in trash for 3 days; its sandboxes, their volumes and snapshots are deleted now.`,
|
|
118
120
|
});
|
|
119
121
|
if (p.isCancel(confirm) || !confirm) process.exit(5);
|
|
120
122
|
}
|
package/src/lib/updater.ts
CHANGED
|
@@ -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 = "4.0.
|
|
8
|
+
export const CURRENT_VERSION = "4.0.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
|
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { describe, test, expect } from "vitest";
|
|
2
|
+
import { Command } from "commander";
|
|
3
|
+
import { registerProjects } from "../../src/commands/projects.js";
|
|
4
|
+
|
|
5
|
+
function deleteCommand(): Command {
|
|
6
|
+
const program = new Command();
|
|
7
|
+
registerProjects(program);
|
|
8
|
+
const project = program.commands.find((c) => c.name() === "project")!;
|
|
9
|
+
return project.commands.find((c) => c.name() === "delete")!;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
describe("project delete", () => {
|
|
13
|
+
test("needs the project named: no fallback to the linked folder or the default project", () => {
|
|
14
|
+
const args = deleteCommand().registeredArguments;
|
|
15
|
+
expect(args).toHaveLength(1);
|
|
16
|
+
expect(args[0].name()).toBe("project");
|
|
17
|
+
expect(args[0].required).toBe(true);
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
test("refuses to run without a project before calling the API", async () => {
|
|
21
|
+
const program = new Command().exitOverride();
|
|
22
|
+
registerProjects(program);
|
|
23
|
+
program.commands.forEach((c) => c.exitOverride().commands.forEach((s) => s.exitOverride().configureOutput({ writeErr: () => {} })));
|
|
24
|
+
await expect(program.parseAsync(["node", "lizard", "project", "delete", "--yes"])).rejects.toMatchObject({
|
|
25
|
+
code: "commander.missingArgument",
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
});
|