@lizard-build/cli 4.0.35 → 4.0.36

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.
@@ -5,11 +5,13 @@ export type AccountState = "unknown" | "not_owner" | "enterprise" | "credits" |
5
5
  export declare function accountState(sub: Subscription | null): AccountState;
6
6
  /** What an agent should do about the plan. Spells out the don'ts, since an agent takes a link as a hint to open it. */
7
7
  export declare function accountInstruction(state: AccountState, sub: Subscription | null, now?: number): string;
8
- /** Commands an agent can run next. */
8
+ /** Commands an agent can run next. Sandboxes first; both they and deploys live in a project. */
9
9
  export declare function nextSteps(linked: boolean): Array<{
10
10
  command: string;
11
11
  why: string;
12
12
  }>;
13
+ /** The same steps for a person, as aligned lines for the closing note. */
14
+ export declare function nextStepsNote(linked: boolean): string;
13
15
  /**
14
16
  * The token piped into `--token-stdin`. A token in `--token` shows up in the
15
17
  * process list and the shell history; one on stdin does not. A terminal on
@@ -34,7 +34,7 @@ export function accountInstruction(state, sub, now = Date.now()) {
34
34
  return "Could not read this account's plan, so nothing about it is known. Do NOT start billing. The user is signed in: carry on with their task.";
35
35
  case "not_owner":
36
36
  return ("This account deploys on its workspace owner's plan. Do NOT start or change a subscription: only the owner can." +
37
- (sub?.plan === "none" ? " Deploys stay blocked until the owner starts Pro." : ""));
37
+ (sub?.plan === "none" ? " Sandboxes and deploys stay blocked until the owner starts Pro." : ""));
38
38
  case "enterprise":
39
39
  return "Enterprise plan, invoiced monthly. Nothing to set up.";
40
40
  case "credits":
@@ -50,25 +50,41 @@ export function accountInstruction(state, sub, now = Date.now()) {
50
50
  case "active":
51
51
  return "Pro is active. Do NOT open billing or start a subscription.";
52
52
  case "trial_available":
53
- return (`No plan yet, and deploys need one. Offer the user the ${sub?.trial.days}-day Pro trial with ${usd(sub?.trial.creditCents ?? 0)} in credits: ` +
53
+ return (`No plan yet, and sandboxes and deploys need one. Offer the user the ${sub?.trial.days}-day Pro trial with ${usd(sub?.trial.creditCents ?? 0)} in credits: ` +
54
54
  `no charge today, then ${price}/month, taxes included. ${start}`);
55
55
  case "subscription_required":
56
- return ("No plan yet, and deploys need one. This account has had its trial, so do NOT promise one. " +
56
+ return ("No plan yet, and sandboxes and deploys need one. This account has had its trial, so do NOT promise one. " +
57
57
  `Pro is ${price}/month, taxes included, with ${usd(sub?.includedCents ?? 1900)} in credits each month. ${start}`);
58
58
  case "checkout_unavailable":
59
59
  return "No plan, and Pro is not open for this account yet. Do NOT try to start billing.";
60
60
  }
61
61
  }
62
- /** Commands an agent can run next. */
62
+ /** Commands an agent can run next. Sandboxes first; both they and deploys live in a project. */
63
63
  export function nextSteps(linked) {
64
64
  return [
65
65
  {
66
66
  command: "lizard skills get core",
67
67
  why: "The guide to every command, matched to this CLI version. Read it before running others.",
68
68
  },
69
- ...(linked ? [] : [{ command: "lizard init", why: "Create a project and link the current folder to it." }]),
70
- { command: "lizard up", why: linked ? "Deploy the linked folder." : "Deploy the folder once it is linked." },
69
+ ...(linked
70
+ ? []
71
+ : [{ command: "lizard init", why: "Create a project and link the current folder to it. Sandboxes and deploys both need one." }]),
72
+ {
73
+ command: "lizard sandbox create",
74
+ why: "Start a sandbox in the project, then run commands in it with `lizard sandbox exec <id> -- <cmd>`.",
75
+ },
76
+ { command: "lizard up", why: "Or deploy the linked folder." },
77
+ ];
78
+ }
79
+ /** The same steps for a person, as aligned lines for the closing note. */
80
+ export function nextStepsNote(linked) {
81
+ const rows = [
82
+ ...(linked ? [] : [["lizard init", "Create a project and link this folder"]]),
83
+ ["lizard sandbox create", linked ? "Start a sandbox in this project" : "Start a sandbox in it"],
84
+ ["lizard up", "Or deploy this folder"],
71
85
  ];
86
+ const width = Math.max(...rows.map(([cmd]) => cmd.length)) + 3;
87
+ return rows.map(([cmd, why]) => chalk.cyan(cmd) + " ".repeat(width - cmd.length) + why).join("\n");
72
88
  }
73
89
  async function fetchSubscription() {
74
90
  return api.get("/api/billing/subscription").catch(() => null);
@@ -124,7 +140,7 @@ async function offerPlan(canAsk) {
124
140
  const offer = trial
125
141
  ? `Pro trial: ${sub.trial.days} days with ${usd(sub.trial.creditCents ?? 0)} in credits. No charge today, then ${usd(sub.priceCents)}/month, taxes included.`
126
142
  : `Pro: ${usd(sub.priceCents)}/month, taxes included, with ${usd(sub.includedCents)} in credits each month.`;
127
- p.log.info(`No plan yet. Deploys need one.\n${offer}`);
143
+ p.log.info(`No plan yet. Sandboxes and deploys need one.\n${offer}`);
128
144
  const go = canAsk ? await p.confirm({ message: trial ? "Start the trial now?" : "Start Pro now?" }) : false;
129
145
  if (p.isCancel(go) || !go) {
130
146
  p.log.message(`Start it later: ${chalk.cyan("lizard billing start")}`);
@@ -157,10 +173,7 @@ async function loginInteractive(flag) {
157
173
  await signInInteractive(flag);
158
174
  }
159
175
  await offerPlan(canAsk);
160
- const linked = Boolean(getProjectLink());
161
- p.note((linked
162
- ? [`${chalk.cyan("lizard up")} Deploy this folder`]
163
- : [`${chalk.cyan("lizard init")} Create a project and link this folder`, `${chalk.cyan("lizard up")} Deploy it`]).join("\n"), "Next");
176
+ p.note(nextStepsNote(Boolean(getProjectLink())), "Next");
164
177
  p.outro("You're all set");
165
178
  }
166
179
  /** Validate a token, save it as this machine's login, and say who it belongs to. */
@@ -1 +1 @@
1
- {"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- export declare const CURRENT_VERSION = "4.0.35";
1
+ export declare const CURRENT_VERSION = "4.0.36";
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 = "4.0.35";
7
+ export const CURRENT_VERSION = "4.0.36";
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.35",
3
+ "version": "4.0.36",
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": {
@@ -66,7 +66,7 @@ export function accountInstruction(state: AccountState, sub: Subscription | null
66
66
  case "not_owner":
67
67
  return (
68
68
  "This account deploys on its workspace owner's plan. Do NOT start or change a subscription: only the owner can." +
69
- (sub?.plan === "none" ? " Deploys stay blocked until the owner starts Pro." : "")
69
+ (sub?.plan === "none" ? " Sandboxes and deploys stay blocked until the owner starts Pro." : "")
70
70
  );
71
71
  case "enterprise":
72
72
  return "Enterprise plan, invoiced monthly. Nothing to set up.";
@@ -84,12 +84,12 @@ export function accountInstruction(state: AccountState, sub: Subscription | null
84
84
  return "Pro is active. Do NOT open billing or start a subscription.";
85
85
  case "trial_available":
86
86
  return (
87
- `No plan yet, and deploys need one. Offer the user the ${sub?.trial.days}-day Pro trial with ${usd(sub?.trial.creditCents ?? 0)} in credits: ` +
87
+ `No plan yet, and sandboxes and deploys need one. Offer the user the ${sub?.trial.days}-day Pro trial with ${usd(sub?.trial.creditCents ?? 0)} in credits: ` +
88
88
  `no charge today, then ${price}/month, taxes included. ${start}`
89
89
  );
90
90
  case "subscription_required":
91
91
  return (
92
- "No plan yet, and deploys need one. This account has had its trial, so do NOT promise one. " +
92
+ "No plan yet, and sandboxes and deploys need one. This account has had its trial, so do NOT promise one. " +
93
93
  `Pro is ${price}/month, taxes included, with ${usd(sub?.includedCents ?? 1900)} in credits each month. ${start}`
94
94
  );
95
95
  case "checkout_unavailable":
@@ -97,16 +97,33 @@ export function accountInstruction(state: AccountState, sub: Subscription | null
97
97
  }
98
98
  }
99
99
 
100
- /** Commands an agent can run next. */
100
+ /** Commands an agent can run next. Sandboxes first; both they and deploys live in a project. */
101
101
  export function nextSteps(linked: boolean): Array<{ command: string; why: string }> {
102
102
  return [
103
103
  {
104
104
  command: "lizard skills get core",
105
105
  why: "The guide to every command, matched to this CLI version. Read it before running others.",
106
106
  },
107
- ...(linked ? [] : [{ command: "lizard init", why: "Create a project and link the current folder to it." }]),
108
- { command: "lizard up", why: linked ? "Deploy the linked folder." : "Deploy the folder once it is linked." },
107
+ ...(linked
108
+ ? []
109
+ : [{ command: "lizard init", why: "Create a project and link the current folder to it. Sandboxes and deploys both need one." }]),
110
+ {
111
+ command: "lizard sandbox create",
112
+ why: "Start a sandbox in the project, then run commands in it with `lizard sandbox exec <id> -- <cmd>`.",
113
+ },
114
+ { command: "lizard up", why: "Or deploy the linked folder." },
115
+ ];
116
+ }
117
+
118
+ /** The same steps for a person, as aligned lines for the closing note. */
119
+ export function nextStepsNote(linked: boolean): string {
120
+ const rows: Array<[string, string]> = [
121
+ ...(linked ? [] : ([["lizard init", "Create a project and link this folder"]] as Array<[string, string]>)),
122
+ ["lizard sandbox create", linked ? "Start a sandbox in this project" : "Start a sandbox in it"],
123
+ ["lizard up", "Or deploy this folder"],
109
124
  ];
125
+ const width = Math.max(...rows.map(([cmd]) => cmd.length)) + 3;
126
+ return rows.map(([cmd, why]) => chalk.cyan(cmd) + " ".repeat(width - cmd.length) + why).join("\n");
110
127
  }
111
128
 
112
129
  async function fetchSubscription(): Promise<Subscription | null> {
@@ -169,7 +186,7 @@ async function offerPlan(canAsk: boolean): Promise<void> {
169
186
  const offer = trial
170
187
  ? `Pro trial: ${sub.trial.days} days with ${usd(sub.trial.creditCents ?? 0)} in credits. No charge today, then ${usd(sub.priceCents)}/month, taxes included.`
171
188
  : `Pro: ${usd(sub.priceCents)}/month, taxes included, with ${usd(sub.includedCents)} in credits each month.`;
172
- p.log.info(`No plan yet. Deploys need one.\n${offer}`);
189
+ p.log.info(`No plan yet. Sandboxes and deploys need one.\n${offer}`);
173
190
 
174
191
  const go = canAsk ? await p.confirm({ message: trial ? "Start the trial now?" : "Start Pro now?" }) : false;
175
192
  if (p.isCancel(go) || !go) {
@@ -204,14 +221,7 @@ async function loginInteractive(flag?: AuthProvider): Promise<void> {
204
221
 
205
222
  await offerPlan(canAsk);
206
223
 
207
- const linked = Boolean(getProjectLink());
208
- p.note(
209
- (linked
210
- ? [`${chalk.cyan("lizard up")} Deploy this folder`]
211
- : [`${chalk.cyan("lizard init")} Create a project and link this folder`, `${chalk.cyan("lizard up")} Deploy it`]
212
- ).join("\n"),
213
- "Next",
214
- );
224
+ p.note(nextStepsNote(Boolean(getProjectLink())), "Next");
215
225
  p.outro("You're all set");
216
226
  }
217
227
 
@@ -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.35";
8
+ export const CURRENT_VERSION = "4.0.36";
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
 
@@ -4,7 +4,7 @@ import * as os from "node:os";
4
4
  import * as path from "node:path";
5
5
  import { Command } from "commander";
6
6
  import { Readable } from "node:stream";
7
- import { registerLogin, accountState, accountInstruction, nextSteps, readTokenFromStdin } from "../../src/commands/login.js";
7
+ import { registerLogin, accountState, accountInstruction, nextSteps, nextStepsNote, readTokenFromStdin } from "../../src/commands/login.js";
8
8
  import { authUrlFor, providerFlag, pendingPayload } from "../../src/lib/signin.js";
9
9
  import type { Subscription } from "../../src/commands/billing.js";
10
10
  import { requireAuth } from "../../src/lib/auth.js";
@@ -184,9 +184,22 @@ describe("account state", () => {
184
184
  );
185
185
  });
186
186
 
187
+ test("the closing note leads with sandboxes, aligned in two columns", () => {
188
+ const plain = (t: string) => t.replace(/\x1b\[[0-9;]*m/g, "");
189
+ expect(plain(nextStepsNote(false)).split("\n")).toEqual([
190
+ "lizard init Create a project and link this folder",
191
+ "lizard sandbox create Start a sandbox in it",
192
+ "lizard up Or deploy this folder",
193
+ ]);
194
+ expect(plain(nextStepsNote(true)).split("\n")).toEqual([
195
+ "lizard sandbox create Start a sandbox in this project",
196
+ "lizard up Or deploy this folder",
197
+ ]);
198
+ });
199
+
187
200
  test("an unlinked folder gets lizard init before lizard up", () => {
188
- expect(nextSteps(false).map((s) => s.command)).toEqual(["lizard skills get core", "lizard init", "lizard up"]);
189
- expect(nextSteps(true).map((s) => s.command)).toEqual(["lizard skills get core", "lizard up"]);
201
+ expect(nextSteps(false).map((s) => s.command)).toEqual(["lizard skills get core", "lizard init", "lizard sandbox create", "lizard up"]);
202
+ expect(nextSteps(true).map((s) => s.command)).toEqual(["lizard skills get core", "lizard sandbox create", "lizard up"]);
190
203
  });
191
204
  });
192
205