@chest-gate/cli 0.4.3 → 0.6.0

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/manage.js CHANGED
@@ -1,127 +1,67 @@
1
1
  /**
2
- * Shared helper for dashboard-signed management actions (archive, unlist).
3
- * Used by both `chest-gate gate archive|unlist` and `chest-gate app archive|unlist`.
2
+ * Shared helper for owner-scoped management actions (archive, unlist) used
3
+ * by both `chest-gate gate archive|unlist` and `chest-gate app archive|unlist`.
4
4
  *
5
- * Signs `chest-dashboard:{wallet}:{action}:{slug}:{windowTs}` with the
6
- * deployer/author keypair from ~/.chest/wallet.json (same wallet that signed
7
- * the original deploy / publish), then POSTs to /api/{kind}/:slug/{op}.
5
+ * Auth: CLI bearer token (`ca_live_*`), minted by `chest-gate login`. The
6
+ * server checks that the token's owner wallet matches the slug's deployer
7
+ * (gate) or author (app) before mutating. The previous per-action ed25519
8
+ * `X-Dashboard-Sig` flow was removed server-side; sending it now is a
9
+ * silent no-op that fails 401.
8
10
  */
9
- import { existsSync } from "node:fs";
10
- import { readFile } from "node:fs/promises";
11
- import { homedir } from "node:os";
12
- import { join } from "node:path";
13
11
  import chalk from "chalk";
14
- import { Keypair } from "@solana/web3.js";
15
- import { signDashboardMessage } from "./dashboard-sig.js";
16
- const WALLET_PATH = join(homedir(), ".chest", "wallet.json");
17
- const DEFAULT_SERVER = process.env.CHEST_SERVER || "https://gate.chest.sh";
18
- /**
19
- * Load the deployer/author secret key. Priority:
20
- * 1. CHEST_WALLET_KEY env (inline 64-byte JSON array)
21
- * 2. --wallet-key <path> (raw Solana keypair JSON)
22
- * 3. ~/.chest/wallet.json (the wallet `chest-gate keypair` writes)
23
- *
24
- * Errors if none are present, since management actions can't fall back to
25
- * creating a fresh wallet (which wouldn't own any existing slug).
26
- */
27
- async function loadDeployerSecretKey(walletKeyPath) {
28
- const inline = process.env.CHEST_WALLET_KEY;
29
- if (inline) {
30
- try {
31
- return new Uint8Array(JSON.parse(inline));
32
- }
33
- catch {
34
- throw new Error("CHEST_WALLET_KEY must be a JSON array of 64 bytes");
35
- }
36
- }
37
- const path = walletKeyPath || process.env.CHEST_WALLET_KEY_PATH;
38
- if (path) {
39
- const resolved = path.replace(/^~/, process.env.HOME || "");
40
- return new Uint8Array(JSON.parse(await readFile(resolved, "utf-8")));
41
- }
42
- if (!existsSync(WALLET_PATH)) {
43
- throw new Error(`No wallet found at ${WALLET_PATH}. Run \`chest-gate keypair\` (or pass --wallet-key) ` +
44
- `with the same wallet that signed the original deploy / publish.`);
45
- }
46
- const wallet = JSON.parse(await readFile(WALLET_PATH, "utf-8"));
47
- return new Uint8Array(wallet.solanaKeypair);
48
- }
49
- /**
50
- * Run a dashboard-signed management action (archive or unlist) against the
51
- * gate.chest.sh server. The slug must be owned by the loaded keypair.
52
- */
12
+ import { api, ApiError, NotLoggedInError } from "./api.js";
53
13
  export async function runManageAction(opts) {
54
- const server = (opts.server || DEFAULT_SERVER).replace(/\/$/, "");
55
14
  const slug = opts.slug.toLowerCase();
56
15
  const kindPath = opts.kind === "gate" ? "gates" : "apps";
57
- const action = opts.kind === "gate"
58
- ? opts.op === "archive"
59
- ? "deployment:archive"
60
- : "deployment:unlist"
61
- : opts.op === "archive"
62
- ? "app:archive"
63
- : "app:unlist";
64
- let secretKey;
65
- try {
66
- secretKey = await loadDeployerSecretKey(opts.walletKey);
67
- }
68
- catch (err) {
69
- console.error(chalk.red(` Error: ${err.message}`));
70
- process.exit(1);
71
- }
72
- const wallet = Keypair.fromSecretKey(secretKey).publicKey.toBase58();
16
+ const path = `/api/${kindPath}/${encodeURIComponent(slug)}/${opts.op}`;
73
17
  console.log(chalk.gray(" Slug: ") + chalk.white(slug));
74
- console.log(chalk.gray(" Wallet: ") + chalk.cyan(wallet));
75
- console.log(chalk.gray(" Action: ") + chalk.white(action));
76
- console.log(chalk.gray(" Server: ") + chalk.gray(server));
18
+ console.log(chalk.gray(" Action: ") + chalk.white(`${opts.kind}:${opts.op}`));
77
19
  console.log();
78
- const sigBase64 = signDashboardMessage({ wallet, action, resourceId: slug }, secretKey);
79
- const url = `${server}/api/${kindPath}/${encodeURIComponent(slug)}/${opts.op}?wallet=${encodeURIComponent(wallet)}`;
80
- const init = {
81
- method: "POST",
82
- headers: {
83
- "X-Dashboard-Sig": sigBase64,
84
- ...(opts.op === "unlist" ? { "Content-Type": "application/json" } : {}),
85
- },
86
- ...(opts.op === "unlist"
87
- ? { body: JSON.stringify({ unlisted: opts.unlisted ?? true }) }
88
- : {}),
89
- };
90
- let res;
91
20
  try {
92
- res = await fetch(url, init);
21
+ const body = opts.op === "unlist" ? { unlisted: opts.unlisted ?? true } : undefined;
22
+ const result = await api(path, {
23
+ method: "POST",
24
+ body,
25
+ server: opts.server,
26
+ });
27
+ if (opts.op === "archive") {
28
+ if (result.alreadyArchived) {
29
+ console.log(chalk.yellow(` Already archived at ${result.archivedAt}`));
30
+ return;
31
+ }
32
+ console.log(chalk.green(" ✓ Archived"));
33
+ if (typeof result.archivedAt === "string") {
34
+ console.log(chalk.gray(" archivedAt: ") + chalk.gray(result.archivedAt));
35
+ }
36
+ }
37
+ else {
38
+ const unlisted = result.unlisted === true;
39
+ console.log(chalk.green(unlisted ? " ✓ Unlisted" : " ✓ Re-listed"));
40
+ }
93
41
  }
94
42
  catch (err) {
95
- console.error(chalk.red(` Error: could not reach ${server}: ${err.message}`));
43
+ handleApiError(err, slug);
96
44
  process.exit(1);
97
45
  }
98
- const body = (await res.json().catch(() => ({})));
99
- if (!res.ok) {
100
- console.error(chalk.red(` Error ${res.status}: ${body.error ?? res.statusText}`));
101
- if (res.status === 403) {
102
- console.error(chalk.gray(` The loaded wallet doesn't own slug "${slug}". Use the same wallet that signed the original deploy / publish.`));
103
- }
104
- else if (res.status === 404) {
105
- console.error(chalk.gray(` Slug "${slug}" not found.`));
106
- }
107
- else if (res.status === 401) {
108
- console.error(chalk.gray(" Signature failed verification. Check that ~/.chest/wallet.json holds the deployer / author key."));
109
- }
110
- process.exit(1);
46
+ }
47
+ function handleApiError(err, slug) {
48
+ if (err instanceof NotLoggedInError) {
49
+ console.error(chalk.red(` Error: ${err.message}`));
50
+ return;
111
51
  }
112
- if (opts.op === "archive") {
113
- if (body.alreadyArchived) {
114
- console.log(chalk.yellow(` Already archived at ${body.archivedAt}`));
115
- return;
52
+ if (err instanceof ApiError) {
53
+ console.error(chalk.red(` Error ${err.status}: ${err.message}`));
54
+ if (err.status === 401) {
55
+ console.error(chalk.gray(" Re-run `chest-gate login` to mint a fresh token."));
116
56
  }
117
- console.log(chalk.green(" ✓ Archived"));
118
- if (typeof body.archivedAt === "string") {
119
- console.log(chalk.gray(" archivedAt: ") + chalk.gray(body.archivedAt));
57
+ else if (err.status === 403) {
58
+ console.error(chalk.gray(` Your wallet doesn't own slug "${slug}". Log in with the wallet that deployed/published it.`));
120
59
  }
60
+ else if (err.status === 404) {
61
+ console.error(chalk.gray(` Slug "${slug}" not found.`));
62
+ }
63
+ return;
121
64
  }
122
- else {
123
- const unlisted = body.unlisted === true;
124
- console.log(chalk.green(unlisted ? " ✓ Unlisted" : " ✓ Re-listed"));
125
- }
65
+ console.error(chalk.red(` Error: ${err.message}`));
126
66
  }
127
67
  //# sourceMappingURL=manage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"manage.js","sourceRoot":"","sources":["../src/manage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manage.js","sourceRoot":"","sources":["../src/manage.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chest-gate/cli",
3
- "version": "0.4.3",
3
+ "version": "0.6.0",
4
4
  "description": "Chest Gate CLI. One command to monetise any API with x402 on Solana.",
5
5
  "keywords": [
6
6
  "x402",