@lizard-build/cli 4.0.66 → 4.0.68

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.
@@ -13,14 +13,26 @@ export interface OwnedDomain {
13
13
  expiresAt: number | null;
14
14
  }
15
15
  type DnsType = "A" | "AAAA" | "CNAME" | "ALIAS" | "MX" | "TXT" | "URL301";
16
+ interface DnsRecord {
17
+ name: string;
18
+ type: DnsType;
19
+ value: string;
20
+ ttl: number;
21
+ priority?: number;
22
+ }
23
+ /** Records connecting `names` would replace, leaving out ones nobody would miss: the
24
+ * registrar's parking page and a previous Lizard target. */
25
+ export declare function recordsToReplace(records: DnsRecord[], names: string[]): DnsRecord[];
16
26
  /** The bought domain `hostname` is, or is a subdomain of; null when none (or the
17
27
  * token cannot see bought domains, e.g. an API key). */
18
28
  export declare function findOwnedDomain(hostname: string): Promise<OwnedDomain | null>;
19
- /** Points `hostname` (the bought domain, or a subdomain of it) at a service: DNS and attach in one call. */
29
+ /** Points `hostname` (the bought domain, or a subdomain of it) at a service: DNS and attach
30
+ * in one call. Records it would replace, and a hostname attached to another service, need
31
+ * a yes at the terminal or --force, so one command cannot quietly take a working site down. */
20
32
  export declare function connectOwned(order: OwnedDomain, hostname: string, service: {
21
33
  id: string;
22
34
  name: string;
23
- }): Promise<void>;
35
+ }, force: boolean): Promise<void>;
24
36
  /** "@", "api", or "api.example.com" -> the name relative to the domain. */
25
37
  export declare function relativeName(name: string, domain: string): string;
26
38
  export declare function parseType(raw: string): DnsType;
@@ -4,6 +4,21 @@ import { api, APIError } from "../lib/api.js";
4
4
  import { success, isJSONMode, printJSON, table, isTTY, info } from "../lib/format.js";
5
5
  const DNS_TYPES = ["A", "AAAA", "CNAME", "ALIAS", "MX", "TXT", "URL301"];
6
6
  const SESSION_HINT = "Domains bought on Lizard need `lizard login` or an API key without scopes (a scoped key cannot reach them).";
7
+ /** Changing a bought domain needs a login: an API key can read it but not repoint it, so a
8
+ * leaked key cannot take the domain or its email. */
9
+ const WRITE_HINT = "Changing a domain bought on Lizard needs `lizard login` (an API key can read its records but not change them).";
10
+ function writeError(err) {
11
+ if (err instanceof APIError && err.status === 401)
12
+ throw new Error(WRITE_HINT);
13
+ throw err;
14
+ }
15
+ const POINTING = ["A", "AAAA", "CNAME", "ALIAS", "URL301"];
16
+ /** Records connecting `names` would replace, leaving out ones nobody would miss: the
17
+ * registrar's parking page and a previous Lizard target. */
18
+ export function recordsToReplace(records, names) {
19
+ return records.filter((r) => names.includes(r.name) && POINTING.includes(r.type)
20
+ && !/(^|\.)parkingpage\.namecheap\.com\.?$/i.test(r.value) && !/(^|\.)onlizard\.com\.?$/i.test(r.value));
21
+ }
7
22
  async function listOwned() {
8
23
  const r = await api.get("/api/domains/orders").catch((err) => {
9
24
  if (err instanceof APIError && err.status === 401)
@@ -21,10 +36,37 @@ export async function findOwnedDomain(hostname) {
21
36
  .filter((o) => o.status === "registered" && (host === o.domain || host.endsWith(`.${o.domain}`)))
22
37
  .sort((a, b) => b.domain.length - a.domain.length)[0] ?? null;
23
38
  }
24
- /** Points `hostname` (the bought domain, or a subdomain of it) at a service: DNS and attach in one call. */
25
- export async function connectOwned(order, hostname, service) {
39
+ /** Points `hostname` (the bought domain, or a subdomain of it) at a service: DNS and attach
40
+ * in one call. Records it would replace, and a hostname attached to another service, need
41
+ * a yes at the terminal or --force, so one command cannot quietly take a working site down. */
42
+ export async function connectOwned(order, hostname, service, force) {
26
43
  const host = hostname.toLowerCase().replace(/\.$/, "");
27
- const r = await api.post(`/api/domains/orders/${encodeURIComponent(order.id)}/connect`, { appId: service.id, hostname: host });
44
+ const names = host === order.domain ? ["@", "www"] : [host.slice(0, -(order.domain.length + 1))];
45
+ let move = force;
46
+ if (!force) {
47
+ const dns = await api.get(`/api/domains/orders/${encodeURIComponent(order.id)}/dns`);
48
+ const replaced = recordsToReplace(dns.records, names);
49
+ if (replaced.length) {
50
+ const list = replaced.map((r) => `${r.name} ${r.type} ${r.value}`).join(", ");
51
+ if (!isTTY() || isJSONMode())
52
+ throw new Error(`This replaces existing records on ${order.domain}: ${list}. Run again with --force to replace them.`);
53
+ printRecords(order.domain, replaced);
54
+ const ok = await p.confirm({ message: `Replace ${replaced.length === 1 ? "this record" : "these records"} so ${host} points at ${service.name}?` });
55
+ if (p.isCancel(ok) || !ok)
56
+ process.exit(5);
57
+ }
58
+ }
59
+ const connect = (forceMove) => api.post(`/api/domains/orders/${encodeURIComponent(order.id)}/connect`, { appId: service.id, hostname: host, force: forceMove });
60
+ const r = await connect(move).catch(async (err) => {
61
+ if (err instanceof APIError && err.status === 409 && !move && isTTY() && !isJSONMode()) {
62
+ const ok = await p.confirm({ message: `${err.message} Move it to ${service.name}?` });
63
+ if (p.isCancel(ok) || !ok)
64
+ process.exit(5);
65
+ move = true;
66
+ return connect(true).catch(writeError);
67
+ }
68
+ return writeError(err);
69
+ });
28
70
  if (isJSONMode()) {
29
71
  printJSON({ ...r, domain: order.domain, hostname: host, service: service.name });
30
72
  return;
@@ -162,7 +204,7 @@ To point a name at a Lizard service, use: lizard domain api.example.com --servic
162
204
  else {
163
205
  throw new Error(`Unknown action "${action}". Use set, add or rm (or nothing to list).`);
164
206
  }
165
- const saved = await api.put(path, { version: current.version, records });
207
+ const saved = await api.put(path, { version: current.version, records }).catch(writeError);
166
208
  if (isJSONMode())
167
209
  return printJSON({ domain: order.domain, ...saved });
168
210
  success(`${summary} on ${order.domain}`);
@@ -1 +1 @@
1
- {"version":3,"file":"domain-owned.js","sourceRoot":"","sources":["../../src/commands/domain-owned.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"domain-owned.js","sourceRoot":"","sources":["../../src/commands/domain-owned.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AAEpC,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAmBtF,MAAM,SAAS,GAAc,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;AAEpF,MAAM,YAAY,GAAG,6GAA6G,CAAC;AACnI;sDACsD;AACtD,MAAM,UAAU,GAAG,gHAAgH,CAAC;AAEpI,SAAS,UAAU,CAAC,GAAY;IAC9B,IAAI,GAAG,YAAY,QAAQ,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC;IAC/E,MAAM,GAAG,CAAC;AACZ,CAAC;AAED,MAAM,QAAQ,GAAc,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;AACtE;6DAC6D;AAC7D,MAAM,UAAU,gBAAgB,CAAC,OAAoB,EAAE,KAAe;IACpE,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;WAC3E,CAAC,wCAAwC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7G,CAAC;AAED,KAAK,UAAU,SAAS;IACtB,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,CAA4B,qBAAqB,CAAC,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;QAC/F,IAAI,GAAG,YAAY,QAAQ,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;QACjF,MAAM,GAAG,CAAC;IACZ,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC;AACxB,CAAC;AAED;yDACyD;AACzD,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,QAAgB;IACpD,MAAM,IAAI,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACvD,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,GAAG,CAA4B,qBAAqB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IAC3H,OAAO,MAAM;SACV,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,YAAY,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;SAChG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AAClE,CAAC;AAED;;gGAEgG;AAChG,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,KAAkB,EAAE,QAAgB,EAAE,OAAqC,EAAE,KAAc;IAC5H,MAAM,IAAI,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACvD,MAAM,KAAK,GAAG,IAAI,KAAK,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACjG,IAAI,IAAI,GAAG,KAAK,CAAC;IACjB,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,GAAG,CAA2B,uBAAuB,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;QAC/G,MAAM,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACtD,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;YACpB,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9E,IAAI,CAAC,KAAK,EAAE,IAAI,UAAU,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,KAAK,CAAC,MAAM,KAAK,IAAI,2CAA2C,CAAC,CAAC;YACrJ,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YACrC,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,WAAW,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,eAAe,OAAO,IAAI,cAAc,OAAO,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;YACpJ,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;gBAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IACD,MAAM,OAAO,GAAG,CAAC,SAAkB,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAC9C,uBAAuB,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC,UAAU,EAC7D,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CACxD,CAAC;IACF,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,GAAY,EAAE,EAAE;QACzD,IAAI,GAAG,YAAY,QAAQ,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,IAAI,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC;YACvF,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC,OAAO,eAAe,OAAO,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;YACtF,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;gBAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC3C,IAAI,GAAG,IAAI,CAAC;YACZ,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACzC,CAAC;QACD,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC,CAAC,CAAC;IACH,IAAI,UAAU,EAAE,EAAE,CAAC;QACjB,SAAS,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QACjF,OAAO;IACT,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAC9F,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,oBAAoB,KAAK,CAAC,MAAM,sBAAsB,CAAC,CAAC,IAAI,IAAI,2BAA2B,EAAE,CAAC,CAAC,CAAC;AACxH,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,MAAc;IACvC,MAAM,CAAC,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAClD,MAAM,GAAG,GAAG,MAAM,SAAS,EAAE,CAAC;IAC9B,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;IAC1C,IAAI,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAChF,MAAM,IAAI,KAAK,CACb,GAAG,CAAC,wCAAwC;YAC1C,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,0CAA0C,CAAC,CAC9F,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,CAAC,MAAM,KAAK,YAAY;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IACnG,OAAO,CAAC,CAAC;AACX,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,MAAc;IACvD,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAChD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,MAAM;QAAE,OAAO,GAAG,CAAC;IAC1C,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,MAAM,EAAE,CAAC;QAAE,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;IACtE,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,GAAW;IACnC,MAAM,CAAC,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;IAC5B,IAAI,CAAC,KAAK,UAAU;QAAE,OAAO,QAAQ,CAAC;IACtC,IAAI,CAAE,SAAsB,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAG,kBAAkB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IAC3G,CAAC;IACD,OAAO,CAAY,CAAC;AACtB,CAAC;AAED,SAAS,YAAY,CAAC,MAAc,EAAE,OAAoB;IACxD,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACpB,IAAI,CAAC,GAAG,MAAM,mDAAmD,MAAM,4BAA4B,CAAC,CAAC;QACrG,OAAO;IACT,CAAC;IACD,KAAK,CACH,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,EAChC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAClJ,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,GAAY;IACtD,GAAG;SACA,OAAO,CAAC,OAAO,CAAC;SAChB,KAAK,CAAC,QAAQ,CAAC;SACf,WAAW,CAAC,uCAAuC,CAAC;SACpD,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC;QACjC,IAAI,UAAU,EAAE;YAAE,OAAO,SAAS,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACnB,IAAI,CAAC,0EAA0E,CAAC,CAAC;YACjF,OAAO;QACT,CAAC;QACD,KAAK,CACH,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,EACtC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YAChB,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG;YACpE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG;SAC5B,CAAC,CACH,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,iFAAiF,CAAC,CAAC,CAAC;QAC1G,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC,CAAC;IAClF,CAAC,CAAC,CAAC;IAEL,GAAG;SACA,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CAAC,UAAU,EAAE,+BAA+B,CAAC;SACrD,QAAQ,CAAC,UAAU,EAAE,2CAA2C,CAAC;SACjE,QAAQ,CAAC,WAAW,EAAE,2DAA2D,CAAC;SAClF,WAAW,CAAC,iEAAiE,CAAC;SAC9E,MAAM,CAAC,iBAAiB,EAAE,gCAAgC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;SACnF,MAAM,CAAC,gBAAgB,EAAE,0BAA0B,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;SAC5E,MAAM,CAAC,WAAW,EAAE,8BAA8B,CAAC;SACnD,WAAW,CACV,OAAO,EACP;;;;;;;;;;;wFAWkF,CACnF;SACA,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,MAA0B,EAAE,IAAc,EAAE,IAAwD,EAAE,EAAE;QACrI,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,CAAC;QACxC,MAAM,IAAI,GAAG,uBAAuB,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC;QACvE,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,GAAG,CAA4D,IAAI,CAAC,CAAC;QAE/F,IAAI,CAAC,MAAM,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpD,IAAI,UAAU,EAAE;gBAAE,OAAO,SAAS,CAAC,OAAO,CAAC,CAAC;YAC5C,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;YAC5C,OAAO;QACT,CAAC;QAED,IAAI,OAAoB,CAAC;QACzB,IAAI,OAAe,CAAC;QACpB,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YACzC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,KAAK,CAAC,MAAM,IAAI,MAAM,wBAAwB,CAAC,CAAC;YACjH,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;YACjD,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACtC,MAAM,GAAG,GAAc,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;YACpE,IAAI,IAAI,KAAK,IAAI;gBAAE,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;YACtD,MAAM,IAAI,GAAG,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;YACvH,OAAO,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,CAAC;YACzB,OAAO,GAAG,GAAG,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,IAAI,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,OAAO,KAAK,EAAE,CAAC;QACjH,CAAC;aAAM,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YACzE,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,KAAK,CAAC,MAAM,2BAA2B,CAAC,CAAC;YAC1G,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;YACjD,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACjD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC/D,MAAM,KAAK,GAAG,CAAC,CAAY,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;YACvH,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC3C,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;YAC3H,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;gBACd,IAAI,CAAC,KAAK,EAAE;oBAAE,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;gBAC3E,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBACjC,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,UAAU,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,MAAM,UAAU,SAAS,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;gBAC9I,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;oBAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC7C,CAAC;YACD,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACnD,OAAO,GAAG,WAAW,IAAI,CAAC,MAAM,UAAU,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;QAC3E,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,mBAAmB,MAAM,6CAA6C,CAAC,CAAC;QAC1F,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,GAAG,CAA4C,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACtI,IAAI,UAAU,EAAE;YAAE,OAAO,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;QACvE,OAAO,CAAC,GAAG,OAAO,OAAO,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QACzC,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,6EAA6E,CAAC,CAAC,CAAC;IACxG,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -25,7 +25,7 @@ export function registerDomain(program) {
25
25
  .option("-s, --service <name>", "Service name or ID")
26
26
  .option("-p, --project <id>", "Project name, slug, or ID")
27
27
  .option("--port <n>", "Port to expose", parseIntOption)
28
- .option("-f, --force", "Move the domain here if it's attached to another of your services")
28
+ .option("-f, --force", "Move the domain here if it's attached to another of your services; on a domain bought on Lizard, also replace its existing records without asking")
29
29
  .action(async (hostname, opts, _cmd) => {
30
30
  const projectId = await resolveProjectId(opts.project);
31
31
  const service = await getActiveService(opts.service, projectId);
@@ -72,7 +72,7 @@ export function registerDomain(program) {
72
72
  // Bought on Lizard: set the DNS record and attach, nothing for the user to copy.
73
73
  const owned = await findOwnedDomain(hostname);
74
74
  if (owned) {
75
- await connectOwned(owned, hostname, service);
75
+ await connectOwned(owned, hostname, service, !!opts.force);
76
76
  return;
77
77
  }
78
78
  const result = await api
@@ -1 +1 @@
1
- {"version":3,"file":"domain.js","sourceRoot":"","sources":["../../src/commands/domain.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"domain.js","sourceRoot":"","sources":["../../src/commands/domain.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,4 @@
1
1
  import { Command } from "commander";
2
+ /** `lizard git status` inside a checkout: your changes. */
3
+ export declare function checkoutStatus(): boolean;
2
4
  export declare function registerLizardGit(git: Command): void;
@@ -3,13 +3,15 @@ import { spawnSync } from "node:child_process";
3
3
  import { readFileSync, writeFileSync } from "node:fs";
4
4
  import { basename } from "node:path";
5
5
  import { APIError } from "../lib/api.js";
6
- import { validToken } from "../lib/auth.js";
7
6
  import { isJSONMode, printJSON, table, success, info, warn, link } from "../lib/format.js";
8
- import { lg, qs, seg, segs, resolveRepo, repoPath, myLogin, cloneURL, gitURL, gitURLs, helperCommand, ago, ACTIVE_RUN, } from "../lib/lizard-git.js";
7
+ import { lg, qs, seg, segs, resolveRepo, repoPath, myLogin, gitURL, ago, ACTIVE_RUN, } from "../lib/lizard-git.js";
8
+ import * as wc from "../lib/checkout.js";
9
9
  /**
10
10
  * Lizard Git (lizard.build/git) from the terminal: repositories, issues, pull requests,
11
11
  * reviews, CI runs, releases, secrets, collaborators, webhooks, branch rules, labels,
12
- * notifications, tokens, and the credential helper that lets plain `git` push and pull.
12
+ * notifications, tokens; and working copies: clone, status, diff, commit, sync, switch. Lizard
13
+ * Git is Scion-style (no git protocol): a checkout holds files and .lizard-git/checkout.json, and
14
+ * every commit is made on the server (lib/checkout.ts).
13
15
  *
14
16
  * Registered under `lizard git`, next to the GitHub integration commands.
15
17
  */
@@ -57,70 +59,161 @@ function bodyFrom(opts) {
57
59
  return opts.body;
58
60
  }
59
61
  const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
62
+ /** The checkout this directory is in, or a clear error. */
63
+ function needCheckout() {
64
+ const root = wc.findCheckout();
65
+ if (!root)
66
+ throw new APIError(400, "not in a Lizard Git checkout (lizard git clone owner/name)");
67
+ return root;
68
+ }
69
+ /** `lizard git status` inside a checkout: your changes. */
70
+ export function checkoutStatus() {
71
+ const root = wc.findCheckout();
72
+ if (!root)
73
+ return false;
74
+ const c = wc.loadCheckout(root);
75
+ const ch = wc.changesOf(c, wc.scanWorking(root, c));
76
+ out({ repo: c.repo, branch: c.branch, commit: c.base, sparse: c.sparse, ...ch }, () => {
77
+ info(`${chalk.bold(c.repo)} on ${chalk.cyan(c.branch)} at ${c.base.slice(0, 12)}${c.sparse ? chalk.dim(` (sparse: ${c.sparse.join(", ")})`) : ""}`);
78
+ const n = ch.added.length + ch.modified.length + ch.deleted.length;
79
+ if (!n)
80
+ return info(chalk.dim("no changes"));
81
+ for (const p of ch.modified)
82
+ info(` ${chalk.yellow("modified")} ${p}`);
83
+ for (const p of ch.added)
84
+ info(` ${chalk.green("added")} ${p}`);
85
+ for (const p of ch.deleted)
86
+ info(` ${chalk.red("deleted")} ${p}`);
87
+ info(chalk.dim(` commit them: lizard git commit -m "..."`));
88
+ });
89
+ return true;
90
+ }
60
91
  function repoOpt(c) {
61
- return c.option("-R, --repo <owner/name>", "Repository (default: the Lizard Git remote of this checkout)");
92
+ return c.option("-R, --repo <owner/name>", "Repository (default: the one this checkout is of)");
62
93
  }
63
94
  export function registerLizardGit(git) {
64
95
  git.description("Lizard Git (lizard.build/git) repositories, pull requests, CI; and GitHub integration");
65
- // ── Sign-in for plain git ────────────────────────────────────────────
96
+ // ── Working copies ───────────────────────────────────────────────────
66
97
  git
67
- .command("setup")
68
- .description("Let git push and pull Lizard Git repositories with your Lizard sign-in (credential helper)")
69
- .option("--local", "Only for the repository in this directory")
70
- .action(async (opts) => {
71
- const scope = opts.local ? "--local" : "--global";
72
- // For lizard.build/git only (git matches the path: the rest of lizard.build never gets
73
- // the helper), and the old git.lizard.build for clones made before.
74
- for (const url of gitURLs()) {
75
- // An empty value first resets helpers inherited for this address; then ours.
76
- for (const value of ["", helperCommand()]) {
77
- const r = spawnSync("git", ["config", scope, value ? "--add" : "--replace-all", `credential.${url}.helper`, value], { encoding: "utf8" });
78
- if (r.status !== 0)
79
- throw new APIError(500, `git config failed: ${r.stderr || r.error?.message}`);
80
- }
81
- spawnSync("git", ["config", scope, `credential.${url}.username`, "lizard"]);
82
- }
83
- const who = await myLogin();
84
- out({ helper: helperCommand(), scope: opts.local ? "local" : "global", host: gitURL(), login: who }, () => {
85
- success(`git now signs in to ${gitURL()} as ${chalk.bold(who)} (${opts.local ? "this repository" : "every repository"})`);
86
- info(chalk.dim(` Try: lizard git clone ${who}/<repo>`));
87
- });
98
+ .command("clone")
99
+ .description("Check out a Lizard Git repository: only files, fetched on demand by hash (no history to download)")
100
+ .argument("<repo>", "owner/name, or name for one of yours")
101
+ .argument("[dir]", "Directory (default: the repository name)")
102
+ .option("-b, --branch <name>", "Branch (default: the repository's default branch)")
103
+ .option("--sparse <paths>", "Only these folders or files, comma-separated (a sparse checkout fetches nothing else)")
104
+ .action(async (repoArg, dir, opts) => {
105
+ const repo = await resolveRepo(repoArg);
106
+ const target = dir ?? repo.split("/")[1];
107
+ const sparse = list(opts.sparse)?.map((x) => x.replace(/^\/+|\/+$/g, "")) ?? null;
108
+ const c = await wc.clone(repo, target, opts.branch, sparse, (m) => !isJSONMode() && process.stderr.write(chalk.dim(` ${m}\r`)));
109
+ if (!isJSONMode())
110
+ process.stderr.write("\x1b[2K");
111
+ done({ repo, dir: target, branch: c.branch, commit: c.base, files: Object.keys(c.files).length, sparse }, `Checked out ${repo} (${c.branch} at ${c.base.slice(0, 12)}, ${Object.keys(c.files).length} files) into ${target}`);
88
112
  });
89
113
  git
90
- .command("credential")
91
- .description("git credential helper (used by `lizard git setup`; not run by hand)")
92
- .argument("[operation]", "get, store or erase")
93
- .action(async (op) => {
94
- if (op !== "get")
95
- return; // store/erase: nothing kept, nothing to forget
96
- const input = readFileSync(0, "utf8");
97
- const fields = Object.fromEntries(input.split("\n").filter(Boolean).map((l) => l.split(/=(.*)/s).slice(0, 2)));
98
- // Only for Lizard Git itself, over the same protocol (git always says both).
99
- if (!gitURLs().some((u) => { const w = new URL(u); return fields.host === w.host && fields.protocol === w.protocol.replace(":", ""); }))
100
- return;
101
- const token = process.env.LIZARD_GIT_TOKEN || validToken();
102
- if (!token) {
103
- process.stderr.write("lizard: not signed in; run `lizard login`\n");
114
+ .command("init")
115
+ .description("Make this folder the checkout of an empty repository (then lizard git commit)")
116
+ .argument("<repo>", "owner/name, or name for one of yours")
117
+ .action(async (repoArg) => {
118
+ const repo = await resolveRepo(repoArg);
119
+ const c = await wc.initHere(repo, process.cwd());
120
+ done({ repo, branch: c.branch }, `This folder is now ${repo} (${c.branch}); commit with lizard git commit -m "..."`);
121
+ });
122
+ git
123
+ .command("diff")
124
+ .description("Your changes in this checkout against the commit it's at")
125
+ .argument("[paths...]", "Only these files or folders")
126
+ .option("--name-only", "Only the changed paths")
127
+ .action(async (paths, opts) => {
128
+ const root = needCheckout();
129
+ const c = wc.loadCheckout(root);
130
+ const local = wc.scanWorking(root, c);
131
+ const ch = wc.changesOf(c, local);
132
+ const pick = (p) => !paths.length || paths.some((x) => p === x || p.startsWith(x.replace(/\/+$/, "") + "/"));
133
+ const all = [...ch.added.map((p) => ["added", p]), ...ch.modified.map((p) => ["modified", p]), ...ch.deleted.map((p) => ["deleted", p])].filter(([, p]) => pick(p));
134
+ if (isJSONMode() || opts.nameOnly) {
135
+ out(all.map(([status, path]) => ({ status, path })), () => all.forEach(([, p]) => console.log(p)));
104
136
  return;
105
137
  }
106
- process.stdout.write(`username=lizard\npassword=${token}\n`);
138
+ const before = await wc.getBlobs(c.repo, all.filter(([k]) => k !== "added").map(([, p]) => c.files[p].h));
139
+ for (const [kind, p] of all) {
140
+ const old = kind === "added" ? "" : before.get(c.files[p].h).toString();
141
+ const cur = kind === "deleted" ? "" : readFileSync(`${root}/${p}`, "utf8");
142
+ if (old.includes("\0") || cur.includes("\0")) {
143
+ console.log(chalk.bold(`Binary ${p} ${kind}`));
144
+ continue;
145
+ }
146
+ if (old.length + cur.length > 4 << 20) {
147
+ console.log(chalk.bold(`${p}: ${kind} (too large to show)`));
148
+ continue;
149
+ }
150
+ for (const line of wc.unifiedDiff(old, cur, p).split("\n")) {
151
+ console.log(line.startsWith("+") && !line.startsWith("+++") ? chalk.green(line) : line.startsWith("-") && !line.startsWith("---") ? chalk.red(line) : line.startsWith("@@") ? chalk.cyan(line) : line);
152
+ }
153
+ }
107
154
  });
108
155
  git
109
- .command("clone")
110
- .description("Clone a Lizard Git repository (signed in with your Lizard account)")
111
- .argument("<repo>", "owner/name, or name for one of yours")
112
- .argument("[dir]", "Directory (default: the repository name)")
113
- .action(async (repoArg, dir) => {
114
- const repo = await resolveRepo(repoArg);
115
- // Kept in the clone's config (--config applies before the fetch too): an empty helper
116
- // first, so helpers set globally for this host don't answer instead.
117
- const args = ["clone", "--config", `credential.${gitURL()}.helper=`, "--config", `credential.${gitURL()}.helper=${helperCommand()}`, cloneURL(repo)];
118
- if (dir)
119
- args.push(dir);
120
- const r = spawnSync("git", args, { stdio: isJSONMode() ? ["ignore", "ignore", "inherit"] : "inherit" });
121
- if (r.status !== 0)
122
- throw new APIError(500, `git clone failed (exit ${r.status})`);
123
- done({ repo, dir: dir ?? repo.split("/")[1], url: cloneURL(repo) }, `Cloned ${repo}`);
156
+ .command("commit")
157
+ .description("Commit your changes on the server (nothing to push): if the branch moved, the server puts them on top")
158
+ .argument("[paths...]", "Only these files or folders (default: every change)")
159
+ .requiredOption("-m, --message <text>", "Commit message")
160
+ .option("-b, --branch <name>", "Commit to a new branch, starting at this checkout's commit (and switch to it)")
161
+ .action(async (paths, opts) => {
162
+ const root = needCheckout();
163
+ const c = wc.loadCheckout(root);
164
+ const r = await wc.commit(root, c, opts.message.endsWith("\n") ? opts.message : opts.message + "\n", paths, opts.branch);
165
+ const extra = r.sync.updated.length + r.sync.removed.length;
166
+ done(r, `Committed ${r.files} file(s) to ${r.branch}: ${r.sha.slice(0, 12)}${r.uploaded ? chalk.dim(` (${r.uploaded} uploaded)`) : ""}${extra ? chalk.dim(` · ${extra} file(s) from others' commits updated`) : ""}`);
167
+ });
168
+ git
169
+ .command("sync")
170
+ .alias("pull")
171
+ .description("Bring this checkout to the branch's latest commit (keeps your changes)")
172
+ .action(async () => {
173
+ const root = needCheckout();
174
+ const c = wc.loadCheckout(root);
175
+ const r = await wc.sync(root, c);
176
+ done(r, r.from === r.to ? `Already at ${c.branch}'s latest (${r.to.slice(0, 12)})` :
177
+ `${c.branch}: ${r.from.slice(0, 12)} -> ${r.to.slice(0, 12)} (${r.updated.length} updated, ${r.removed.length} removed)`);
178
+ });
179
+ git
180
+ .command("switch")
181
+ .description("Switch this checkout to another branch (keeps your changes)")
182
+ .argument("<branch>")
183
+ .option("-c, --create", "Create the branch at this checkout's commit first")
184
+ .action(async (branch, opts) => {
185
+ const root = needCheckout();
186
+ const c = wc.loadCheckout(root);
187
+ if (opts.create)
188
+ await lg.post(`${repoPath(c.repo)}/branches`, { name: branch, from: c.base });
189
+ const r = await wc.sync(root, c, branch);
190
+ done({ ...r, branch }, `On ${branch} at ${r.to.slice(0, 12)} (${r.updated.length} updated, ${r.removed.length} removed)`);
191
+ });
192
+ git
193
+ .command("sparse")
194
+ .description("Change which folders this checkout has (comma-separated; \"all\" for everything)")
195
+ .argument("<paths>")
196
+ .action(async (paths) => {
197
+ const root = needCheckout();
198
+ const c = wc.loadCheckout(root);
199
+ const local = wc.scanWorking(root, c);
200
+ const ch = wc.changesOf(c, local);
201
+ if (ch.added.length + ch.modified.length + ch.deleted.length)
202
+ throw new APIError(409, "commit your changes first (lizard git commit)");
203
+ const next = paths === "all" ? null : list(paths).map((x) => x.replace(/^\/+|\/+$/g, ""));
204
+ // Drop what leaves the set, then sync with the new set (fetches what joins it).
205
+ const keep = (p) => !next || next.some((x) => p === x || p.startsWith(x + "/"));
206
+ for (const p of Object.keys(c.files)) {
207
+ if (!keep(p)) {
208
+ wc.removeFileAt(root, p);
209
+ delete c.files[p];
210
+ }
211
+ }
212
+ c.sparse = next;
213
+ const before = c.base;
214
+ c.base = ""; // make sync list and fetch everything in the new set
215
+ const r = await wc.sync(root, c);
216
+ done({ sparse: next, files: Object.keys(c.files).length, commit: r.to }, `Sparse: ${next ? next.join(", ") : "everything"} (${Object.keys(c.files).length} files at ${(r.to || before).slice(0, 12)})`);
124
217
  });
125
218
  // ── Repositories ─────────────────────────────────────────────────────
126
219
  const repo = git.command("repo").description("Lizard Git repositories");
@@ -150,16 +243,16 @@ export function registerLizardGit(git) {
150
243
  .argument("<name>")
151
244
  .option("--private", "Only you and collaborators can see it")
152
245
  .option("-d, --description <text>")
153
- .option("--readme", "Start with a README (otherwise empty, ready for a push)")
246
+ .option("--readme", "Start with a README (otherwise empty)")
154
247
  .option("--default-branch <name>", "Default branch (main)")
155
248
  .action(async (name, opts) => {
156
249
  const r = await lg.post("/api/repos", {
157
250
  name, private: !!opts.private, description: opts.description, readme: !!opts.readme, defaultBranch: opts.defaultBranch,
158
251
  });
159
252
  const full = `${r.owner}/${r.name}`;
160
- out({ ...r, url: `${gitURL()}/${full}`, cloneUrl: cloneURL(full) }, () => {
253
+ out({ ...r, url: `${gitURL()}/${full}` }, () => {
161
254
  success(`Created ${chalk.bold(full)} ${link(`${gitURL()}/${full}`)}`);
162
- info(chalk.dim(` Clone: lizard git clone ${full} Push: git remote add origin ${cloneURL(full)}`));
255
+ info(chalk.dim(` Check out: lizard git clone ${full} then: lizard git commit -m "..."`));
163
256
  });
164
257
  });
165
258
  repoOpt(repo.command("view").description("A repository's details").argument("[repo]"))
@@ -173,7 +266,7 @@ export function registerLizardGit(git) {
173
266
  if (m.forkOf)
174
267
  info(chalk.dim(`forked from ${m.forkOf}`));
175
268
  info(`default branch ${m.repo.defaultBranch} · ${m.branches} branches · ${m.tags} tags · ${m.openIssues} open issues · ${m.openPulls} open pull requests · ${m.repo.stars} stars`);
176
- info(`${link(`${gitURL()}/${r}`)}\nclone: ${m.cloneUrl}`);
269
+ info(`${link(`${gitURL()}/${r}`)}\ncheck out: lizard git clone ${r}`);
177
270
  });
178
271
  });
179
272
  repoOpt(repo.command("edit").description("Change name, description, visibility or default branch").argument("[repo]"))
@@ -181,13 +274,11 @@ export function registerLizardGit(git) {
181
274
  .option("-d, --description <text>")
182
275
  .option("--private").option("--public")
183
276
  .option("--default-branch <name>")
184
- .option("--api-commits", "Also accept commits written through the API by agents without a checkout")
185
- .option("--no-api-commits", "Changes only by git push and merged pull requests (the default for new repositories)")
186
277
  .action(async (arg, opts) => {
187
278
  const r = await resolveRepo(arg ?? opts.repo);
188
279
  await lg.patch(repoPath(r), {
189
280
  name: opts.name, description: opts.description, defaultBranch: opts.defaultBranch,
190
- private: opts.private ? true : opts.public ? false : undefined, apiCommits: opts.apiCommits,
281
+ private: opts.private ? true : opts.public ? false : undefined,
191
282
  });
192
283
  done({ ok: true, repo: opts.name ? `${r.split("/")[0]}/${opts.name}` : r }, `Updated ${r}`);
193
284
  });
@@ -208,7 +299,7 @@ export function registerLizardGit(git) {
208
299
  const f = await lg.post(`${repoPath(r)}/forks`, { name: opts.name });
209
300
  const full = `${f.owner}/${f.name}`;
210
301
  if (opts.clone)
211
- spawnSync("git", ["clone", "--config", `credential.${gitURL()}.helper=${helperCommand()}`, cloneURL(full)], { stdio: "inherit" });
302
+ await wc.clone(full, f.name, undefined, null);
212
303
  done({ ...f, url: `${gitURL()}/${full}` }, `Forked ${r} to ${chalk.bold(full)}`);
213
304
  });
214
305
  repoOpt(repo.command("forks").description("Forks of a repository").argument("[repo]"))
@@ -345,9 +436,9 @@ export function registerLizardGit(git) {
345
436
  if (pulls) {
346
437
  let head = opts.head;
347
438
  if (!head) {
348
- const b = spawnSync("git", ["rev-parse", "--abbrev-ref", "HEAD"], { encoding: "utf8" });
349
- head = b.status === 0 ? b.stdout.trim() : "";
350
- if (!head || head === "HEAD")
439
+ const root = wc.findCheckout();
440
+ head = root ? wc.loadCheckout(root).branch : "";
441
+ if (!head)
351
442
  throw new APIError(400, "pass --head <branch>");
352
443
  }
353
444
  Object.assign(body, { head, base: opts.base, headRepo: opts.headRepo, draft: !!opts.draft, reviewers: opts.reviewer.length ? opts.reviewer : undefined });
@@ -551,21 +642,15 @@ export function registerLizardGit(git) {
551
642
  });
552
643
  done(m, `Merged #${n} (${String(m.sha).slice(0, 7)})`);
553
644
  });
554
- repoOpt(grp.command("checkout").description("Check out a pull request's branch in this clone").argument("<number>", "", int))
645
+ repoOpt(grp.command("checkout").description("Switch this checkout to a pull request's branch").argument("<number>", "", int))
555
646
  .action(async (n, opts) => {
556
- const r = await resolveRepo(opts.repo);
557
- const d = await lg.get(`${repoPath(r)}/issues/${n}`);
558
- const local = d.issue.headRepo && d.issue.headRepo !== r ? `pr-${n}` : d.issue.headRef;
559
- const remoteRef = d.issue.headRepo && d.issue.headRepo !== r ? `refs/pull/${n}/head` : `refs/heads/${d.issue.headRef}`;
560
- const run = (args) => {
561
- const x = spawnSync("git", args, { stdio: isJSONMode() ? ["ignore", "ignore", "inherit"] : "inherit" });
562
- if (x.status !== 0)
563
- throw new APIError(500, `git ${args[0]} failed`);
564
- };
565
- run(["fetch", "origin", `+${remoteRef}:refs/remotes/origin/${local}`]);
566
- const exists = spawnSync("git", ["rev-parse", "--verify", "--quiet", `refs/heads/${local}`]).status === 0;
567
- run(exists ? ["checkout", local] : ["checkout", "-b", local, "--track", `origin/${local}`]);
568
- done({ branch: local }, `On branch ${local} (#${n})`);
647
+ const root = needCheckout();
648
+ const c = wc.loadCheckout(root);
649
+ const d = await lg.get(`${repoPath(c.repo)}/issues/${n}`);
650
+ // A fork's branch is read here under refs/pull/<n>/head: look, don't commit.
651
+ const target = d.issue.headRepo && d.issue.headRepo !== c.repo ? `pull/${n}/head` : d.issue.headRef;
652
+ const r = await wc.sync(root, c, target);
653
+ done({ branch: target, commit: r.to }, `On ${target} (#${n}) at ${r.to.slice(0, 12)}`);
569
654
  });
570
655
  }
571
656
  // ── CI runs and workflows ────────────────────────────────────────────