praetom 0.1.1 → 0.2.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.
Files changed (51) hide show
  1. package/dist/cli/cli.js +11 -1
  2. package/dist/cli/cli.js.map +1 -1
  3. package/dist/cli/commands/connect.d.ts +13 -0
  4. package/dist/cli/commands/connect.d.ts.map +1 -0
  5. package/dist/cli/commands/connect.js +106 -0
  6. package/dist/cli/commands/connect.js.map +1 -0
  7. package/dist/cli/commands/discover.d.ts.map +1 -1
  8. package/dist/cli/commands/discover.js +4 -6
  9. package/dist/cli/commands/discover.js.map +1 -1
  10. package/dist/cli/commands/features.d.ts.map +1 -1
  11. package/dist/cli/commands/features.js +65 -49
  12. package/dist/cli/commands/features.js.map +1 -1
  13. package/dist/cli/commands/init.d.ts +16 -0
  14. package/dist/cli/commands/init.d.ts.map +1 -1
  15. package/dist/cli/commands/init.js +59 -40
  16. package/dist/cli/commands/init.js.map +1 -1
  17. package/dist/cli/commands/install.d.ts +20 -0
  18. package/dist/cli/commands/install.d.ts.map +1 -0
  19. package/dist/cli/commands/install.js +82 -0
  20. package/dist/cli/commands/install.js.map +1 -0
  21. package/dist/cli/commands/login.d.ts +1 -1
  22. package/dist/cli/commands/login.d.ts.map +1 -1
  23. package/dist/cli/commands/login.js +59 -45
  24. package/dist/cli/commands/login.js.map +1 -1
  25. package/dist/cli/commands/logout.d.ts.map +1 -1
  26. package/dist/cli/commands/logout.js +10 -10
  27. package/dist/cli/commands/logout.js.map +1 -1
  28. package/dist/cli/commands/rotate.d.ts.map +1 -1
  29. package/dist/cli/commands/rotate.js +29 -23
  30. package/dist/cli/commands/rotate.js.map +1 -1
  31. package/dist/cli/commands/status.d.ts.map +1 -1
  32. package/dist/cli/commands/status.js +38 -12
  33. package/dist/cli/commands/status.js.map +1 -1
  34. package/dist/cli/commands/uninstall.d.ts.map +1 -1
  35. package/dist/cli/commands/uninstall.js +63 -51
  36. package/dist/cli/commands/uninstall.js.map +1 -1
  37. package/dist/cli/commands/usage.d.ts.map +1 -1
  38. package/dist/cli/commands/usage.js +12 -12
  39. package/dist/cli/commands/usage.js.map +1 -1
  40. package/dist/cli/commands/whoami.d.ts.map +1 -1
  41. package/dist/cli/commands/whoami.js +22 -25
  42. package/dist/cli/commands/whoami.js.map +1 -1
  43. package/dist/cli/util/api.d.ts +9 -0
  44. package/dist/cli/util/api.d.ts.map +1 -1
  45. package/dist/cli/util/api.js +14 -1
  46. package/dist/cli/util/api.js.map +1 -1
  47. package/dist/cli/util/output.d.ts +55 -0
  48. package/dist/cli/util/output.d.ts.map +1 -0
  49. package/dist/cli/util/output.js +170 -0
  50. package/dist/cli/util/output.js.map +1 -0
  51. package/package.json +12 -4
@@ -0,0 +1,82 @@
1
+ import boxen from "boxen";
2
+ import { apiRequest, NotAuthenticatedError, workspaceQuery, } from "../util/api.js";
3
+ import { resolveRepo } from "../util/git.js";
4
+ import { colors, logError, result, runTasks } from "../util/output.js";
5
+ /**
6
+ * `praetom install` — open the install pull request for the current
7
+ * repository. Wires `praetom` into the customer's source: adds the
8
+ * dependency to package.json and creates the framework-specific boot
9
+ * wrapper (instrumentation.ts for Next.js, server-entry edits for
10
+ * Express/Fastify, etc.).
11
+ *
12
+ * Was named `praetom init` until we split that verb out as the
13
+ * orchestrator command. The server endpoint is still /api/cli/install.
14
+ */
15
+ export async function installCommand(ctx) {
16
+ const repo = await resolveRepo(ctx.repo);
17
+ if (!repo) {
18
+ logError(ctx, "Couldn't determine the repository. Pass --repo owner/name, or run this from inside a git checkout with a GitHub remote.");
19
+ process.exit(1);
20
+ }
21
+ const slug = `${repo.owner}/${repo.name}`;
22
+ // Use a holder so TS keeps the union type across the async closure
23
+ // assignment inside runTasks (otherwise it narrows to `never`).
24
+ const out = { response: null };
25
+ try {
26
+ await runTasks(ctx, [
27
+ {
28
+ title: `Installing praetom into ${slug}`,
29
+ task: async (t) => {
30
+ try {
31
+ out.response = await apiRequest("/api/cli/install", {
32
+ method: "POST",
33
+ body: { owner: repo.owner, name: repo.name },
34
+ query: workspaceQuery(ctx),
35
+ });
36
+ t.setTitle(`Installed praetom into ${slug} ${colors.dim(`(${out.response.framework})`)}`);
37
+ }
38
+ catch (e) {
39
+ if (e instanceof NotAuthenticatedError) {
40
+ throw new Error(`${e.message} Run \`praetom login\` first.`);
41
+ }
42
+ throw e;
43
+ }
44
+ },
45
+ },
46
+ ]);
47
+ }
48
+ catch {
49
+ process.exit(1);
50
+ }
51
+ const r = out.response;
52
+ if (!r)
53
+ return;
54
+ result(ctx, {
55
+ ok: true,
56
+ repo: slug,
57
+ prUrl: r.prUrl,
58
+ prNumber: r.prNumber,
59
+ branch: r.branch,
60
+ framework: r.framework,
61
+ }, () => {
62
+ const body = [
63
+ colors.bold("Pull request opened"),
64
+ ` ${r.prUrl}`,
65
+ ``,
66
+ `Framework: ${colors.cyan(r.framework)}`,
67
+ `Branch: ${colors.dim(r.branch)}`,
68
+ ``,
69
+ `Next:`,
70
+ ` 1. Review + merge the pull request.`,
71
+ ` 2. Deploy your service.`,
72
+ ` 3. Run ${colors.bold("praetom status")} to watch it go live.`,
73
+ ].join("\n");
74
+ process.stdout.write(boxen(body, {
75
+ padding: 1,
76
+ margin: { top: 1, bottom: 1, left: 0, right: 0 },
77
+ borderStyle: "round",
78
+ borderColor: "green",
79
+ }) + "\n");
80
+ });
81
+ }
82
+ //# sourceMappingURL=install.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/cli/commands/install.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ import type { RunContext } from "../util/run.js";
4
4
  *
5
5
  * 1. Asks praetom to start a session (returns short user_code +
6
6
  * long device_code + verification URL).
7
- * 2. Prints the URL + user_code, then opens the browser.
7
+ * 2. Opens the browser to the verification URL.
8
8
  * 3. The user signs in on praetom.com (if needed), confirms the
9
9
  * user_code matches, clicks Approve.
10
10
  * 4. We poll praetom every couple seconds until approved, expired, or
@@ -1 +1 @@
1
- {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/login.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAmBjD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,YAAY,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAmGjE"}
1
+ {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/login.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAoBjD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,YAAY,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CA+EjE"}
@@ -1,11 +1,12 @@
1
1
  import { spawn } from "node:child_process";
2
2
  import { writeAuth, DEFAULT_API_BASE } from "../util/auth-file.js";
3
+ import { colors, logError, result, runTasks } from "../util/output.js";
3
4
  /**
4
5
  * OAuth-style device-authorization handshake. The CLI:
5
6
  *
6
7
  * 1. Asks praetom to start a session (returns short user_code +
7
8
  * long device_code + verification URL).
8
- * 2. Prints the URL + user_code, then opens the browser.
9
+ * 2. Opens the browser to the verification URL.
9
10
  * 3. The user signs in on praetom.com (if needed), confirms the
10
11
  * user_code matches, clicks Approve.
11
12
  * 4. We poll praetom every couple seconds until approved, expired, or
@@ -19,33 +20,60 @@ import { writeAuth, DEFAULT_API_BASE } from "../util/auth-file.js";
19
20
  */
20
21
  export async function loginCommand(ctx) {
21
22
  if (ctx.nonInteractive) {
22
- const msg = "praetom login: --non-interactive set; can't open a browser. Set PRAETOM_TOKEN in the environment instead.";
23
- if (ctx.json) {
24
- process.stdout.write(JSON.stringify({ error: "non_interactive" }) + "\n");
25
- }
26
- else {
27
- process.stderr.write(`${msg}\n`);
28
- }
23
+ logError(ctx, "praetom login: --non-interactive set; can't open a browser. Set PRAETOM_TOKEN in the environment instead.");
29
24
  process.exit(2);
30
25
  }
31
26
  const apiBase = (process.env["PRAETOM_API_BASE"] ?? DEFAULT_API_BASE).replace(/\/+$/, "");
32
- // Start the handshake.
33
- const start = await fetchJson(`${apiBase}/api/cli/auth/device-start`, { method: "POST" });
34
- if (!start.ok) {
35
- process.stderr.write(`praetom login failed: ${start.error}\n`);
36
- process.exit(1);
27
+ const out = { session: null, token: null, prefix: null };
28
+ try {
29
+ await runTasks(ctx, [
30
+ {
31
+ title: "Requesting device code",
32
+ task: async (t) => {
33
+ const start = await fetchJson(`${apiBase}/api/cli/auth/device-start`, { method: "POST" });
34
+ if (!start.ok) {
35
+ throw new Error(start.error);
36
+ }
37
+ out.session = start.value;
38
+ t.setTitle(`Got device code ${colors.dim(`(code ${out.session.user_code})`)}`);
39
+ },
40
+ },
41
+ {
42
+ title: "Opening your browser",
43
+ task: (t) => {
44
+ if (!out.session)
45
+ throw new Error("missing session");
46
+ openBrowser(out.session.verification_uri_complete);
47
+ t.setTitle(`Opened ${colors.dim(out.session.verification_uri)} ${colors.dim(`(code ${out.session.user_code})`)}`);
48
+ },
49
+ },
50
+ {
51
+ title: "Waiting for approval",
52
+ task: async (t) => {
53
+ if (!out.session)
54
+ throw new Error("missing session");
55
+ t.setTitle(`Waiting for approval (${out.session.user_code})`);
56
+ const poll = await pollUntilApproved(out.session, apiBase, t);
57
+ out.token = poll.token;
58
+ out.prefix = poll.prefix;
59
+ t.setTitle(`Approved ${colors.dim(`(token prefix ${poll.prefix}…)`)}`);
60
+ },
61
+ },
62
+ ]);
37
63
  }
38
- const session = start.value;
39
- if (!ctx.json) {
40
- process.stdout.write(`\nVisit: ${session.verification_uri}\n` +
41
- `Code: ${session.user_code}\n\n` +
42
- `Opening your browser...\n`);
64
+ catch {
65
+ process.exit(1);
43
66
  }
44
- openBrowser(session.verification_uri_complete);
45
- // Poll until approved or expired.
67
+ if (!out.token || !out.prefix)
68
+ return;
69
+ await writeAuth(out.token, apiBase);
70
+ result(ctx, { signedIn: true, prefix: out.prefix }, () => {
71
+ process.stdout.write(`\n${colors.green("✓")} Signed in. ${colors.dim(`Token (prefix ${out.prefix}…) saved to ~/.config/praetom/auth.json.`)}\n`);
72
+ });
73
+ }
74
+ async function pollUntilApproved(session, apiBase, t) {
46
75
  const intervalMs = Math.max(1, session.interval) * 1000;
47
76
  const deadline = Date.now() + session.expires_in * 1000;
48
- let lastDot = Date.now();
49
77
  while (Date.now() < deadline) {
50
78
  await sleep(intervalMs);
51
79
  const poll = await fetchJson(`${apiBase}/api/cli/auth/device-poll`, {
@@ -54,41 +82,24 @@ export async function loginCommand(ctx) {
54
82
  contentType: "application/json",
55
83
  });
56
84
  if (!poll.ok) {
57
- process.stderr.write(`\npraetom login failed: ${poll.error}\n`);
58
- process.exit(1);
85
+ throw new Error(poll.error);
59
86
  }
60
87
  const r = poll.value;
61
88
  if (r.status === "approved") {
62
- await writeAuth(r.token, apiBase);
63
- if (ctx.json) {
64
- process.stdout.write(JSON.stringify({ signedIn: true, prefix: r.prefix }) + "\n");
65
- }
66
- else {
67
- process.stdout.write(`\nSigned in. Token (prefix ${r.prefix}…) saved to ~/.config/praetom/auth.json.\n`);
68
- }
69
- return;
89
+ return { token: r.token, prefix: r.prefix };
70
90
  }
71
91
  if (r.status === "expired") {
72
- process.stderr.write("\nCode expired before approval. Run `praetom login` again.\n");
73
- process.exit(1);
92
+ throw new Error("Code expired before approval. Run `praetom login` again.");
74
93
  }
75
94
  if (r.status === "consumed") {
76
- process.stderr.write("\nThis code was already approved and the token was claimed by another `praetom login`. Run `praetom login` again.\n");
77
- process.exit(1);
95
+ throw new Error("This code was already approved and the token was claimed by another `praetom login`. Run `praetom login` again.");
78
96
  }
79
97
  if (r.status === "error") {
80
- process.stderr.write(`\npraetom login failed: ${r.error}\n`);
81
- process.exit(1);
82
- }
83
- // status === "pending" — print a dot every 5s so the user knows
84
- // we're still waiting.
85
- if (!ctx.json && Date.now() - lastDot > 5000) {
86
- process.stdout.write(".");
87
- lastDot = Date.now();
98
+ throw new Error(r.error);
88
99
  }
100
+ t.setTitle(`Waiting for approval (${session.user_code}) ${colors.dim(`(${secondsLeft(deadline)}s left)`)}`);
89
101
  }
90
- process.stderr.write("\nTimed out waiting for approval. Run `praetom login` again.\n");
91
- process.exit(1);
102
+ throw new Error("Timed out waiting for approval. Run `praetom login` again.");
92
103
  }
93
104
  async function fetchJson(url, init = {}) {
94
105
  const headers = {
@@ -135,4 +146,7 @@ function openBrowser(url) {
135
146
  function sleep(ms) {
136
147
  return new Promise((r) => setTimeout(r, ms));
137
148
  }
149
+ function secondsLeft(deadline) {
150
+ return Math.max(0, Math.round((deadline - Date.now()) / 1000));
151
+ }
138
152
  //# sourceMappingURL=login.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"login.js","sourceRoot":"","sources":["../../../src/cli/commands/login.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"login.js","sourceRoot":"","sources":["../../../src/cli/commands/login.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"logout.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/logout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGjD,wBAAsB,aAAa,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAalE"}
1
+ {"version":3,"file":"logout.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/logout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAIjD,wBAAsB,aAAa,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAelE"}
@@ -1,15 +1,15 @@
1
1
  import { deleteAuth, authFilePath } from "../util/auth-file.js";
2
+ import { colors, logInfo, logSuccess, result } from "../util/output.js";
2
3
  export async function logoutCommand(ctx) {
3
4
  const removed = await deleteAuth();
4
- if (ctx.json) {
5
- process.stdout.write(JSON.stringify({ removed, path: authFilePath() }) + "\n");
6
- return;
7
- }
8
- if (removed) {
9
- process.stdout.write(`Removed ${authFilePath()}\n`);
10
- }
11
- else {
12
- process.stdout.write(`No auth file at ${authFilePath()}\n`);
13
- }
5
+ const path = authFilePath();
6
+ result(ctx, { removed, path }, () => {
7
+ if (removed) {
8
+ logSuccess(ctx, `Removed ${colors.dim(path)}`);
9
+ }
10
+ else {
11
+ logInfo(ctx, `No auth file at ${colors.dim(path)}`);
12
+ }
13
+ });
14
14
  }
15
15
  //# sourceMappingURL=logout.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"logout.js","sourceRoot":"","sources":["../../../src/cli/commands/logout.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEhE,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,GAAe;IACjD,MAAM,OAAO,GAAG,MAAM,UAAU,EAAE,CAAC;IACnC,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;QACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,CAAC,GAAG,IAAI,CACzD,CAAC;QACF,OAAO;IACT,CAAC;IACD,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,YAAY,EAAE,IAAI,CAAC,CAAC;IACtD,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,YAAY,EAAE,IAAI,CAAC,CAAC;IAC9D,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"logout.js","sourceRoot":"","sources":["../../../src/cli/commands/logout.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAExE,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,GAAe;IACjD,MAAM,OAAO,GAAG,MAAM,UAAU,EAAE,CAAC;IACnC,MAAM,IAAI,GAAG,YAAY,EAAE,CAAC;IAE5B,MAAM,CACJ,GAAG,EACH,EAAE,OAAO,EAAE,IAAI,EAAE,EACjB,GAAG,EAAE;QACH,IAAI,OAAO,EAAE,CAAC;YACZ,UAAU,CAAC,GAAG,EAAE,WAAW,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjD,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,EAAE,mBAAmB,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACtD,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"rotate.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/rotate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAYjD,wBAAsB,aAAa,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAiClE"}
1
+ {"version":3,"file":"rotate.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/rotate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAajD,wBAAsB,aAAa,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CA+ClE"}
@@ -1,33 +1,39 @@
1
1
  import { apiRequest, workspaceQuery } from "../util/api.js";
2
2
  import { resolveRepo } from "../util/git.js";
3
+ import { colors, logError, result, runTasks } from "../util/output.js";
3
4
  export async function rotateCommand(ctx) {
4
5
  const repo = await resolveRepo(ctx.repo);
5
6
  if (!repo) {
6
- fail(ctx, "Couldn't determine the repository. Pass --repo owner/name, or run this from inside a git checkout with a GitHub remote.");
7
+ logError(ctx, "Couldn't determine the repository. Pass --repo owner/name, or run this from inside a git checkout with a GitHub remote.");
8
+ process.exit(1);
7
9
  }
8
- if (!ctx.json) {
9
- process.stdout.write(`Rotating ingest token for ${repo.owner}/${repo.name}…\n`);
10
+ const slug = `${repo.owner}/${repo.name}`;
11
+ const out = { response: null };
12
+ try {
13
+ await runTasks(ctx, [
14
+ {
15
+ title: `Rotating ingest token for ${slug}`,
16
+ task: async (t) => {
17
+ out.response = await apiRequest("/api/cli/rotate", {
18
+ method: "POST",
19
+ body: { owner: repo.owner, name: repo.name },
20
+ query: workspaceQuery(ctx),
21
+ });
22
+ t.setTitle(`Rotated ingest token for ${slug} ${colors.dim(`(${out.response.filesCommitted} file${out.response.filesCommitted === 1 ? "" : "s"} updated)`)}`);
23
+ },
24
+ },
25
+ ]);
10
26
  }
11
- const result = await apiRequest("/api/cli/rotate", {
12
- method: "POST",
13
- body: { owner: repo.owner, name: repo.name },
14
- query: workspaceQuery(ctx),
15
- });
16
- if (ctx.json) {
17
- process.stdout.write(JSON.stringify({ repo: `${repo.owner}/${repo.name}`, ...result }) + "\n");
18
- return;
19
- }
20
- process.stdout.write(`\nIngest token rotated. ${result.filesCommitted} file(s) updated.\n` +
21
- `Pull request opened: ${result.prUrl}\n\n` +
22
- `Merge and deploy to swap the token live. \`praetom status\` will reflect it.\n`);
23
- }
24
- function fail(ctx, message) {
25
- if (ctx.json) {
26
- process.stdout.write(JSON.stringify({ ok: false, error: message }) + "\n");
27
+ catch {
28
+ process.exit(1);
27
29
  }
28
- else {
29
- process.stderr.write(`${message}\n`);
30
- }
31
- process.exit(1);
30
+ const r = out.response;
31
+ if (!r)
32
+ return;
33
+ result(ctx, { repo: slug, ...r }, () => {
34
+ process.stdout.write(`\n${colors.green("✓")} Ingest token rotated. ${colors.dim(`${r.filesCommitted} file(s) updated.`)}\n` +
35
+ `${colors.dim("Pull request:")} ${r.prUrl}\n\n` +
36
+ `${colors.dim("Merge and deploy to swap the token live. `praetom status` will reflect it.")}\n`);
37
+ });
32
38
  }
33
39
  //# sourceMappingURL=rotate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rotate.js","sourceRoot":"","sources":["../../../src/cli/commands/rotate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAU7C,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,GAAe;IACjD,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACzC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,IAAI,CACF,GAAG,EACH,yHAAyH,CAC1H,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QACd,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,6BAA6B,IAAK,CAAC,KAAK,IAAI,IAAK,CAAC,IAAI,KAAK,CAC5D,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,UAAU,CAAiB,iBAAiB,EAAE;QACjE,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,EAAE,KAAK,EAAE,IAAK,CAAC,KAAK,EAAE,IAAI,EAAE,IAAK,CAAC,IAAI,EAAE;QAC9C,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC;KAC3B,CAAC,CAAC;IAEH,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;QACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,GAAG,IAAK,CAAC,KAAK,IAAI,IAAK,CAAC,IAAI,EAAE,EAAE,GAAG,MAAM,EAAE,CAAC,GAAG,IAAI,CAC3E,CAAC;QACF,OAAO;IACT,CAAC;IAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,2BAA2B,MAAM,CAAC,cAAc,qBAAqB;QACnE,wBAAwB,MAAM,CAAC,KAAK,MAAM;QAC1C,gFAAgF,CACnF,CAAC;AACJ,CAAC;AAED,SAAS,IAAI,CAAC,GAAe,EAAE,OAAe;IAC5C,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;QACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;IAC7E,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,IAAI,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"rotate.js","sourceRoot":"","sources":["../../../src/cli/commands/rotate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAUvE,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,GAAe;IACjD,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACzC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,QAAQ,CACN,GAAG,EACH,yHAAyH,CAC1H,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;IAC1C,MAAM,GAAG,GAAwC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAEpE,IAAI,CAAC;QACH,MAAM,QAAQ,CAAC,GAAG,EAAE;YAClB;gBACE,KAAK,EAAE,6BAA6B,IAAI,EAAE;gBAC1C,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;oBAChB,GAAG,CAAC,QAAQ,GAAG,MAAM,UAAU,CAAiB,iBAAiB,EAAE;wBACjE,MAAM,EAAE,MAAM;wBACd,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;wBAC5C,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC;qBAC3B,CAAC,CAAC;oBACH,CAAC,CAAC,QAAQ,CACR,4BAA4B,IAAI,KAAK,MAAM,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,cAAc,QAAQ,GAAG,CAAC,QAAQ,CAAC,cAAc,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,EAAE,CAClJ,CAAC;gBACJ,CAAC;aACF;SACF,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC;IACvB,IAAI,CAAC,CAAC;QAAE,OAAO;IAEf,MAAM,CACJ,GAAG,EACH,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,EACpB,GAAG,EAAE;QACH,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,KAAK,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,0BAA0B,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,cAAc,mBAAmB,CAAC,IAAI;YACpG,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,KAAK,MAAM;YAC/C,GAAG,MAAM,CAAC,GAAG,CAAC,4EAA4E,CAAC,IAAI,CAClG,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/status.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAyBjD,wBAAsB,aAAa,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CA0BlE"}
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/status.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AA0BjD,wBAAsB,aAAa,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CA6BlE"}
@@ -1,5 +1,6 @@
1
1
  import { apiRequest, workspaceQuery } from "../util/api.js";
2
2
  import { resolveRepo } from "../util/git.js";
3
+ import { colors, logInfo, result } from "../util/output.js";
3
4
  export async function statusCommand(ctx) {
4
5
  const repo = await resolveRepo(ctx.repo);
5
6
  const query = {
@@ -8,19 +9,44 @@ export async function statusCommand(ctx) {
8
9
  if (repo)
9
10
  query.repo = `${repo.owner}/${repo.name}`;
10
11
  const res = await apiRequest("/api/cli/installs", { query });
11
- if (ctx.json) {
12
- process.stdout.write(JSON.stringify(res) + "\n");
13
- return;
14
- }
15
- if (res.installs.length === 0) {
16
- const scope = repo ? `${repo.owner}/${repo.name}` : res.workspaceSlug;
17
- process.stdout.write(`No installs recorded for ${scope}.\n`);
18
- return;
12
+ result(ctx, res, () => {
13
+ if (res.installs.length === 0) {
14
+ const scope = repo ? `${repo.owner}/${repo.name}` : res.workspaceSlug;
15
+ logInfo(ctx, `No installs recorded for ${colors.dim(scope)}.`);
16
+ return;
17
+ }
18
+ for (const row of res.installs) {
19
+ const dot = statusDot(row.status);
20
+ const word = statusWord(row.status);
21
+ process.stdout.write(`${dot} ${colors.bold(`${row.owner}/${row.name}`)} ${word} ${colors.dim(`PR #${row.prNumber}`)} ${colors.cyan(row.framework)}\n` +
22
+ ` ${colors.dim(row.prUrl)}\n` +
23
+ ` ${colors.dim(describeTimeline(row))}\n\n`);
24
+ }
25
+ });
26
+ }
27
+ function statusDot(status) {
28
+ switch (status) {
29
+ case "live":
30
+ return colors.green("●");
31
+ case "registered":
32
+ return colors.blue("●");
33
+ case "install_pending":
34
+ return colors.yellow("●");
35
+ case "stalled":
36
+ return colors.red("●");
19
37
  }
20
- for (const row of res.installs) {
21
- process.stdout.write(`${row.owner}/${row.name} ${pad(row.status, 10)} PR #${row.prNumber} ${row.framework}\n` +
22
- ` ${row.prUrl}\n` +
23
- ` ${describeTimeline(row)}\n\n`);
38
+ }
39
+ function statusWord(status) {
40
+ const padded = pad(status, 16);
41
+ switch (status) {
42
+ case "live":
43
+ return colors.green(padded);
44
+ case "registered":
45
+ return colors.blue(padded);
46
+ case "install_pending":
47
+ return colors.yellow(padded);
48
+ case "stalled":
49
+ return colors.red(padded);
24
50
  }
25
51
  }
26
52
  function describeTimeline(row) {
@@ -1 +1 @@
1
- {"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/cli/commands/status.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/cli/commands/status.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"uninstall.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/uninstall.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAejD,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAiErE"}
1
+ {"version":3,"file":"uninstall.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/uninstall.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAoBjD,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CA+FrE"}