@vonpay/checkout-cli 0.9.0 → 0.11.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 (53) hide show
  1. package/README.md +6 -2
  2. package/dist/app-info.d.ts +5 -0
  3. package/dist/app-info.d.ts.map +1 -0
  4. package/dist/app-info.js +11 -0
  5. package/dist/app-info.js.map +1 -0
  6. package/dist/client-factory.d.ts.map +1 -1
  7. package/dist/client-factory.js +9 -4
  8. package/dist/client-factory.js.map +1 -1
  9. package/dist/commands/capabilities.js +2 -2
  10. package/dist/commands/capabilities.js.map +1 -1
  11. package/dist/commands/checkout.d.ts.map +1 -1
  12. package/dist/commands/checkout.js +9 -0
  13. package/dist/commands/checkout.js.map +1 -1
  14. package/dist/commands/doctor.d.ts.map +1 -1
  15. package/dist/commands/doctor.js +2 -0
  16. package/dist/commands/doctor.js.map +1 -1
  17. package/dist/commands/health.d.ts.map +1 -1
  18. package/dist/commands/health.js +11 -4
  19. package/dist/commands/health.js.map +1 -1
  20. package/dist/commands/listen.d.ts.map +1 -1
  21. package/dist/commands/listen.js +22 -9
  22. package/dist/commands/listen.js.map +1 -1
  23. package/dist/commands/payment-intents.d.ts.map +1 -1
  24. package/dist/commands/payment-intents.js +7 -7
  25. package/dist/commands/payment-intents.js.map +1 -1
  26. package/dist/commands/refunds.d.ts.map +1 -1
  27. package/dist/commands/refunds.js +12 -9
  28. package/dist/commands/refunds.js.map +1 -1
  29. package/dist/commands/sessions.d.ts +13 -0
  30. package/dist/commands/sessions.d.ts.map +1 -1
  31. package/dist/commands/sessions.js +58 -18
  32. package/dist/commands/sessions.js.map +1 -1
  33. package/dist/commands/tokens.js +2 -2
  34. package/dist/commands/tokens.js.map +1 -1
  35. package/dist/config.d.ts.map +1 -1
  36. package/dist/config.js +4 -2
  37. package/dist/config.js.map +1 -1
  38. package/dist/utils/errors.d.ts +74 -1
  39. package/dist/utils/errors.d.ts.map +1 -1
  40. package/dist/utils/errors.js +127 -13
  41. package/dist/utils/errors.js.map +1 -1
  42. package/dist/utils/json-errors.d.ts +16 -0
  43. package/dist/utils/json-errors.d.ts.map +1 -0
  44. package/dist/utils/json-errors.js +41 -0
  45. package/dist/utils/json-errors.js.map +1 -0
  46. package/dist/utils/live-key.d.ts.map +1 -1
  47. package/dist/utils/live-key.js +3 -2
  48. package/dist/utils/live-key.js.map +1 -1
  49. package/dist/utils/spinner.d.ts +15 -0
  50. package/dist/utils/spinner.d.ts.map +1 -0
  51. package/dist/utils/spinner.js +18 -0
  52. package/dist/utils/spinner.js.map +1 -0
  53. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"refunds.js","sourceRoot":"","sources":["../../src/commands/refunds.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"refunds.js","sourceRoot":"","sources":["../../src/commands/refunds.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,16 @@
1
1
  import { Command } from "commander";
2
+ import { makeCheckoutClient } from "../client-factory.js";
3
+ type SessionRead = Awaited<ReturnType<ReturnType<typeof makeCheckoutClient>["sessions"]["get"]>>;
4
+ /**
5
+ * The human-readable `sessions get` output. A hand-written field list, so it
6
+ * is exported for a test that pins the money fields: before this, the printer
7
+ * showed neither whether the money moved nor the payment intent a held
8
+ * payment is captured with, and a merchant reading it could not see a hold.
9
+ */
10
+ declare function sessionLines(session: SessionRead): string[];
11
+ export declare const __testing__: {
12
+ sessionLines: typeof sessionLines;
13
+ };
2
14
  export declare function sessionsCommand(): Command;
15
+ export {};
3
16
  //# sourceMappingURL=sessions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../../src/commands/sessions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASpC,wBAAgB,eAAe,IAAI,OAAO,CAoHzC"}
1
+ {"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../../src/commands/sessions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAK1D,KAAK,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAEjG;;;;;GAKG;AACH,iBAAS,YAAY,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,EAAE,CAuDpD;AAED,eAAO,MAAM,WAAW;;CAAmB,CAAC;AAE5C,wBAAgB,eAAe,IAAI,OAAO,CAkGzC"}
@@ -1,10 +1,63 @@
1
1
  import { Command } from "commander";
2
2
  import chalk from "chalk";
3
- import ora from "ora";
3
+ import { startSpinner } from "../utils/spinner.js";
4
4
  import { formatMinorUnits } from "@vonpay/checkout-node";
5
5
  import { makeCheckoutClient } from "../client-factory.js";
6
6
  import { handleError } from "../utils/errors.js";
7
7
  const makeClient = makeCheckoutClient;
8
+ /**
9
+ * The human-readable `sessions get` output. A hand-written field list, so it
10
+ * is exported for a test that pins the money fields: before this, the printer
11
+ * showed neither whether the money moved nor the payment intent a held
12
+ * payment is captured with, and a merchant reading it could not see a hold.
13
+ */
14
+ function sessionLines(session) {
15
+ const statusColor = session.status === "succeeded"
16
+ ? chalk.green
17
+ : session.status === "failed"
18
+ ? chalk.red
19
+ : session.status === "expired"
20
+ ? chalk.gray
21
+ : chalk.yellow;
22
+ const lines = [
23
+ ` ID: ${session.id}`,
24
+ ` Status: ${statusColor(session.status)}`,
25
+ ` Amount: ${formatMinorUnits(session.amount, session.currency)}`,
26
+ ];
27
+ if (session.paymentStatus) {
28
+ const paymentColor = session.paymentStatus === "paid"
29
+ ? chalk.green
30
+ : session.paymentStatus === "held"
31
+ ? chalk.yellow
32
+ : chalk.gray;
33
+ lines.push(` Payment: ${paymentColor(session.paymentStatus)}`);
34
+ if (session.paymentStatus === "held") {
35
+ lines.push(chalk.yellow(" Held, not taken: capture it to take the money, or void it. Do not ship on a hold alone."));
36
+ }
37
+ }
38
+ if (session.paymentIntentId) {
39
+ lines.push(` Intent: ${session.paymentIntentId}`);
40
+ }
41
+ if (session.transactionId) {
42
+ lines.push(` Transaction: ${session.transactionId}`);
43
+ }
44
+ // The refund id (`refunds create --transaction`). Shown only when it is a
45
+ // string; vp_tx_count 2+ means the buyer was charged more than once and no
46
+ // single id is a safe refund target.
47
+ if (typeof session.vp_tx_id === "string") {
48
+ lines.push(` Refund id: ${session.vp_tx_id}`);
49
+ }
50
+ if (typeof session.vp_tx_count === "number") {
51
+ lines.push(` Payments: ${session.vp_tx_count}`);
52
+ if (session.vp_tx_count >= 2) {
53
+ lines.push(chalk.red(` ⚠ Charged ${session.vp_tx_count} times: there is no single refund id. Have a person check the payments before refunding or fulfilling.`));
54
+ }
55
+ }
56
+ lines.push(` Created: ${session.createdAt}`);
57
+ lines.push(` Expires: ${session.expiresAt}`);
58
+ return lines;
59
+ }
60
+ export const __testing__ = { sessionLines };
8
61
  export function sessionsCommand() {
9
62
  const sessions = new Command("sessions").description("Create and manage checkout sessions");
10
63
  sessions
@@ -21,7 +74,7 @@ export function sessionsCommand() {
21
74
  .option("--json", "Output raw JSON")
22
75
  .action(async (opts) => {
23
76
  const client = makeClient();
24
- const spinner = ora("Creating session...").start();
77
+ const spinner = startSpinner("Creating session...");
25
78
  try {
26
79
  const params = {
27
80
  amount: opts.amount,
@@ -77,7 +130,7 @@ export function sessionsCommand() {
77
130
  .option("--json", "Output raw JSON")
78
131
  .action(async (id, opts) => {
79
132
  const client = makeClient();
80
- const spinner = ora("Fetching session...").start();
133
+ const spinner = startSpinner("Fetching session...");
81
134
  try {
82
135
  const session = await client.sessions.get(id);
83
136
  spinner.stop();
@@ -85,21 +138,8 @@ export function sessionsCommand() {
85
138
  console.log(JSON.stringify(session, null, 2));
86
139
  }
87
140
  else {
88
- const statusColor = session.status === "succeeded"
89
- ? chalk.green
90
- : session.status === "failed"
91
- ? chalk.red
92
- : session.status === "expired"
93
- ? chalk.gray
94
- : chalk.yellow;
95
- console.log(` ID: ${session.id}`);
96
- console.log(` Status: ${statusColor(session.status)}`);
97
- console.log(` Amount: ${formatMinorUnits(session.amount, session.currency)}`);
98
- if (session.transactionId) {
99
- console.log(` Transaction: ${session.transactionId}`);
100
- }
101
- console.log(` Created: ${session.createdAt}`);
102
- console.log(` Expires: ${session.expiresAt}`);
141
+ for (const line of sessionLines(session))
142
+ console.log(line);
103
143
  }
104
144
  }
105
145
  catch (err) {
@@ -1 +1 @@
1
- {"version":3,"file":"sessions.js","sourceRoot":"","sources":["../../src/commands/sessions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sessions.js","sourceRoot":"","sources":["../../src/commands/sessions.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { Command } from "commander";
2
2
  import chalk from "chalk";
3
- import ora from "ora";
3
+ import { startSpinner } from "../utils/spinner.js";
4
4
  import { requireApiKey } from "../config.js";
5
5
  import { makeCheckoutClient } from "../client-factory.js";
6
6
  import { parseMetadata } from "../utils/metadata.js";
@@ -40,7 +40,7 @@ export function tokensCommand() {
40
40
  warnLiveSecretFlag(apiKey, "--provider-reference");
41
41
  }
42
42
  const client = makeCheckoutClient();
43
- const spinner = ora("Creating token...").start();
43
+ const spinner = startSpinner("Creating token...");
44
44
  try {
45
45
  const metadata = parseMetadata(opts.metadata);
46
46
  const params = {};
@@ -1 +1 @@
1
- {"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../src/commands/tokens.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../src/commands/tokens.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,EAAE;QACT,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED,wBAAgB,UAAU,IAAI,SAAS,CAUtC;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAQlD;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,IAAI;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAkBxD;AAED,wBAAgB,SAAS,IAAI,MAAM,GAAG,SAAS,CAO9C;AAED,wBAAgB,aAAa,IAAI,MAAM,CAStC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,EAAE;QACT,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED,wBAAgB,UAAU,IAAI,SAAS,CAUtC;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAQlD;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,IAAI;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAkBxD;AAED,wBAAgB,SAAS,IAAI,MAAM,GAAG,SAAS,CAO9C;AAED,wBAAgB,aAAa,IAAI,MAAM,CAStC"}
package/dist/config.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { existsSync, mkdirSync, readFileSync, rmSync, writeFileSync } from "node:fs";
2
2
  import { homedir } from "node:os";
3
3
  import { join } from "node:path";
4
+ import { emitCliError } from "./utils/json-errors.js";
4
5
  const CONFIG_DIR = join(homedir(), ".vonpay");
5
6
  const CONFIG_FILE = join(CONFIG_DIR, "config.json");
6
7
  export function loadConfig() {
@@ -62,8 +63,9 @@ export function getApiKey() {
62
63
  export function requireApiKey() {
63
64
  const key = getApiKey();
64
65
  if (!key) {
65
- console.error("No API key found. Run `vonpay checkout login` or set VON_PAY_SECRET_KEY.");
66
- process.exit(1);
66
+ // Fixed text, nothing to redact.
67
+ const message = "No API key found. Run `vonpay checkout login` or set VON_PAY_SECRET_KEY.";
68
+ emitCliError({ error: message, code: null }, message);
67
69
  }
68
70
  return key;
69
71
  }
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACrF,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;AAC9C,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;AASpD,MAAM,UAAU,UAAU;IACxB,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;QAAE,OAAO,EAAE,CAAC;IACxC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAc,CAAC;IACrE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,KAAK,CACX,uFAAuF,CACxF,CAAC;QACF,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,MAAiB;IAC1C,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC1D,CAAC;IACD,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE;QACjE,QAAQ,EAAE,OAAO;QACjB,IAAI,EAAE,KAAK;KACZ,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB;IAC/B,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,yEAAyE;IACzE,6EAA6E;IAC7E,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM;QAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAExD,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;IAC9B,yEAAyE;IACzE,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC,QAAQ,CAAC;IAEtE,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrC,uEAAuE;QACvE,+EAA+E;QAC/E,MAAM,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACvC,CAAC;SAAM,CAAC;QACN,UAAU,CAAC,MAAM,CAAC,CAAC;IACrB,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,2BAA2B;IAC3B,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;IAC9C,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAE1B,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,OAAO,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,MAAM,GAAG,GAAG,SAAS,EAAE,CAAC;IACxB,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,CAAC,KAAK,CACX,0EAA0E,CAC3E,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACrF,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;AAC9C,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;AASpD,MAAM,UAAU,UAAU;IACxB,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;QAAE,OAAO,EAAE,CAAC;IACxC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAc,CAAC;IACrE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,KAAK,CACX,uFAAuF,CACxF,CAAC;QACF,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,MAAiB;IAC1C,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC1D,CAAC;IACD,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE;QACjE,QAAQ,EAAE,OAAO;QACjB,IAAI,EAAE,KAAK;KACZ,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB;IAC/B,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,yEAAyE;IACzE,6EAA6E;IAC7E,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM;QAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAExD,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;IAC9B,yEAAyE;IACzE,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC,QAAQ,CAAC;IAEtE,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrC,uEAAuE;QACvE,+EAA+E;QAC/E,MAAM,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACvC,CAAC;SAAM,CAAC;QACN,UAAU,CAAC,MAAM,CAAC,CAAC;IACrB,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,2BAA2B;IAC3B,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;IAC9C,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAE1B,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,OAAO,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,MAAM,GAAG,GAAG,SAAS,EAAE,CAAC;IACxB,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,iCAAiC;QACjC,MAAM,OAAO,GACX,0EAA0E,CAAC;QAC7E,YAAY,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -1,4 +1,77 @@
1
- declare function scrubSecrets(s: string): string;
1
+ import { VonPayError, type SessionNotExpirableError, type SessionNotModifiableError } from "@vonpay/checkout-node";
2
+ /**
3
+ * Secret shapes redacted from anything this CLI prints about an error.
4
+ *
5
+ * ⛔ Until 0.8.0 this matched `vp_sk_*` only, so a webhook signing secret, a
6
+ * session-signing secret or a Stripe key inside an error message (a failed
7
+ * config read, a proxy echoing a header) was printed in the clear — and CLI
8
+ * output lands in CI logs and pasted support threads.
9
+ *
10
+ * One of the lists `tests/scripts/secret-shape-parity.test.mjs` holds to the
11
+ * same definition of "a secret" as the SDK telemetry blocklists, the commit
12
+ * gate and the scrubbers. Add a shape there and here together.
13
+ *
14
+ * Publishable keys (`vp_pk_*`, `pk_*`) are deliberately NOT redacted: they are
15
+ * public by design (the commit gate does not block them either), and an error
16
+ * naming the publishable key that was rejected is useful.
17
+ *
18
+ * `vp_sk_live_…` contains `sk_live_…`. The Vonpay pattern runs first so the
19
+ * key is redacted as a Vonpay key; the output (`vp_sk_***`) is the same either
20
+ * way, and the Stripe pattern does not match it again.
21
+ */
22
+ export declare const SECRET_PATTERNS: ReadonlyArray<readonly [RegExp, string]>;
23
+ export declare function scrubSecrets(s: string): string;
24
+ /** Own data fields of a class instance (methods excluded). */
25
+ type DataKeys<T> = {
26
+ [K in keyof T]-?: T[K] extends (...args: never[]) => unknown ? never : K;
27
+ }[keyof T];
28
+ /** `Error`'s own fields. `message` is printed as the first line; the rest are not structured data. */
29
+ type ErrorBaseKeys = "name" | "message" | "stack" | "cause";
30
+ type StructuredField = Exclude<DataKeys<VonPayError>, ErrorBaseKeys> | Exclude<DataKeys<SessionNotExpirableError>, ErrorBaseKeys> | Exclude<DataKeys<SessionNotModifiableError>, ErrorBaseKeys>;
31
+ /**
32
+ * The structured fields, in print order. ONE list, read by both output
33
+ * formats: the text lines below and the `--json` object. It is the key list of
34
+ * `FIELD_PRINTERS`, whose mapped type makes `tsc` fail when `VonPayError` gains
35
+ * a field the CLI does not handle — so the JSON cannot silently drop a field
36
+ * the text prints, or the reverse.
37
+ *
38
+ * The MCP server's error envelope (`ERROR_ENVELOPE_FIELDS` in
39
+ * `@vonpay/checkout-mcp`) is held to the same set by
40
+ * `tests/integration/cli-mcp-error-field-parity.test.ts`. The two packages are
41
+ * published separately, so neither imports the other.
42
+ */
43
+ export declare const ERROR_FIELDS: ReadonlyArray<StructuredField>;
44
+ /**
45
+ * The one JSON object printed for an error under `--json`.
46
+ *
47
+ * Every error has:
48
+ * - `error` — the message (always a string)
49
+ * - `code` — the API error code, or `null` when no API response was
50
+ * involved (a network failure, or a problem the CLI caught
51
+ * before sending anything)
52
+ * and an API error adds every structured field the SDK's error carries that is
53
+ * not `undefined` — the same fields, under the same names, as the MCP server's
54
+ * error envelope: `status`, `nextAction`, `retryable`, `retryWithheld`,
55
+ * `captureOutcome`, `voidOutcome`, … Unlike the text output, `false` values are
56
+ * kept: `"retryWithheld": false` is an answer.
57
+ *
58
+ * ⚠️ `code: null` on `payment-intents capture` / `void` / `create` or
59
+ * `refunds create` does NOT mean nothing happened: a network failure leaves
60
+ * the outcome unknown. Read the resource back before running it again.
61
+ *
62
+ * Nothing here can carry the API key, the idempotency key or the request body:
63
+ * `VonPayError` holds none of them, and any other error contributes only its
64
+ * message. Every string still goes through the same redaction as the text
65
+ * output.
66
+ */
67
+ export declare function errorJson(err: unknown): Record<string, unknown>;
68
+ /**
69
+ * Exit 1 on a problem the CLI caught itself, before calling the API (a live
70
+ * key without --confirm-live, a bad flag value). In text mode `text` is
71
+ * printed exactly as given; under `--json` the output is
72
+ * `{"error": <message>, "code": null}`, redacted like everything else.
73
+ */
74
+ export declare function exitWithCliError(message: string, text: string): never;
2
75
  export declare function handleError(err: unknown): never;
3
76
  export declare const __testing__: {
4
77
  scrubSecrets: typeof scrubSecrets;
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AA+BA,iBAAS,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAIvC;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,KAAK,CAwB/C;AAED,eAAO,MAAM,WAAW;;CAEvB,CAAC"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AACA,OAAO,EACL,WAAW,EACX,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAC/B,MAAM,uBAAuB,CAAC;AAG/B;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,eAAe,EAAE,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAMpE,CAAC;AAEF,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAI9C;AAED,8DAA8D;AAC9D,KAAK,QAAQ,CAAC,CAAC,IAAI;KAChB,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,OAAO,GAAG,KAAK,GAAG,CAAC;CACzE,CAAC,MAAM,CAAC,CAAC,CAAC;AAEX,sGAAsG;AACtG,KAAK,aAAa,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,CAAC;AAE5D,KAAK,eAAe,GAChB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,aAAa,CAAC,GAC7C,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAC,EAAE,aAAa,CAAC,GAC1D,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAC,EAAE,aAAa,CAAC,CAAC;AA6DhE;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,YAAY,EAAkC,aAAa,CAAC,eAAe,CAAC,CAAC;AAyB1F;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAY/D;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,KAAK,CAErE;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,KAAK,CAe/C;AAED,eAAO,MAAM,WAAW;;CAEvB,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import chalk from "chalk";
2
- import { VonPayError } from "@vonpay/checkout-node";
2
+ import { VonPayError, } from "@vonpay/checkout-node";
3
+ import { emitCliError, jsonErrorsEnabled, printJsonError } from "./json-errors.js";
3
4
  /**
4
5
  * Secret shapes redacted from anything this CLI prints about an error.
5
6
  *
@@ -20,34 +21,147 @@ import { VonPayError } from "@vonpay/checkout-node";
20
21
  * key is redacted as a Vonpay key; the output (`vp_sk_***`) is the same either
21
22
  * way, and the Stripe pattern does not match it again.
22
23
  */
23
- const SECRET_PATTERNS = [
24
+ export const SECRET_PATTERNS = [
24
25
  [/vp_sk_(?:test|live)_[A-Za-z0-9_-]+/g, "vp_sk_***"],
25
26
  [/ss_(?:test|live)_[A-Za-z0-9_-]+/g, "ss_***"],
26
27
  [/whsec_[A-Za-z0-9_-]+/g, "whsec_***"],
27
28
  [/sk_(?:test|live)_[A-Za-z0-9_-]+/g, "sk_***"],
28
29
  [/rk_(?:test|live)_[A-Za-z0-9_-]+/g, "rk_***"],
29
30
  ];
30
- function scrubSecrets(s) {
31
+ export function scrubSecrets(s) {
31
32
  let out = s;
32
33
  for (const [re, replacement] of SECRET_PATTERNS)
33
34
  out = out.replace(re, replacement);
34
35
  return out;
35
36
  }
37
+ const str = (v) => (v === undefined || v === null ? null : String(v));
38
+ const FIELD_PRINTERS = {
39
+ code: (e) => `Code: ${str(e.code)}`,
40
+ fix: (e) => `Fix: ${str(e.fix)}`,
41
+ nextAction: (e) => (e.nextAction ? `Next action: ${str(e.nextAction)}` : null),
42
+ retryable: (e) => typeof e.retryable === "boolean"
43
+ ? `Retryable: ${e.retryable ? "yes" : "no — do not re-run this command as-is"}`
44
+ : null,
45
+ retryWithheld: (e) => e.retryWithheld === true
46
+ ? "Retry withheld: the outcome was unclear and no idempotency key was sent, so the CLI did not retry. Check whether it went through before running it again; with --idempotency-key, re-running the SAME key is safe."
47
+ : null,
48
+ captureOutcome: (e) => e.captureOutcome
49
+ ? `Capture outcome: ${str(e.captureOutcome)} — the provider accepted the capture but it could not be recorded, so money may have moved. Do NOT capture again; read the payment intent back first.`
50
+ : null,
51
+ voidOutcome: (e) => e.voidOutcome
52
+ ? `Void outcome: ${str(e.voidOutcome)} — the provider accepted the void but it could not be recorded. Do NOT void again or tell the buyer the hold was released until a read-back confirms it.`
53
+ : null,
54
+ currentStatus: (e) => (e.currentStatus ? `Current status: ${str(e.currentStatus)}` : null),
55
+ rejectReason: (e) => (e.rejectReason ? `Reject reason: ${str(e.rejectReason)}` : null),
56
+ paymentIntent: (e) => (e.paymentIntent ? `Payment intent: ${str(e.paymentIntent)}` : null),
57
+ // refund_target_is_duplicate: the SDK has already checked this is a
58
+ // transaction id (vp_tx_*), so it is safe to echo as a command.
59
+ refundInstead: (e) => e.refundInstead
60
+ ? `Refund instead: vonpay checkout refunds create --transaction ${str(e.refundInstead)}`
61
+ : null,
62
+ reason: (e) => (e.reason ? `Reason: ${str(e.reason)}` : null),
63
+ session: (e) => (e.session ? `Session: ${JSON.stringify(e.session)}` : null),
64
+ llmHint: (e) => (e.llmHint ? `Hint: ${str(e.llmHint)}` : null),
65
+ docs: (e) => (e.docs ? `Docs: ${str(e.docs)}` : null),
66
+ status: (e) => (typeof e.status === "number" ? `HTTP status: ${e.status}` : null),
67
+ rateLimit: (e) => (e.rateLimit ? `Rate limit: ${JSON.stringify(e.rateLimit)}` : null),
68
+ requestId: (e) => (e.requestId ? `Request ID: ${str(e.requestId)}` : null),
69
+ };
70
+ /**
71
+ * The structured fields, in print order. ONE list, read by both output
72
+ * formats: the text lines below and the `--json` object. It is the key list of
73
+ * `FIELD_PRINTERS`, whose mapped type makes `tsc` fail when `VonPayError` gains
74
+ * a field the CLI does not handle — so the JSON cannot silently drop a field
75
+ * the text prints, or the reverse.
76
+ *
77
+ * The MCP server's error envelope (`ERROR_ENVELOPE_FIELDS` in
78
+ * `@vonpay/checkout-mcp`) is held to the same set by
79
+ * `tests/integration/cli-mcp-error-field-parity.test.ts`. The two packages are
80
+ * published separately, so neither imports the other.
81
+ */
82
+ export const ERROR_FIELDS = Object.keys(FIELD_PRINTERS);
83
+ /** The detail lines printed under `Error: <message>`, already scrubbed. */
84
+ function errorDetailLines(err) {
85
+ const source = err;
86
+ const lines = [];
87
+ for (const print of Object.values(FIELD_PRINTERS)) {
88
+ const line = print(source);
89
+ if (line !== null)
90
+ lines.push(` ${scrubSecrets(line)}`);
91
+ }
92
+ return lines;
93
+ }
94
+ /** Scrub every string inside a JSON-able value (the `session` object, for one). */
95
+ function scrubDeep(value) {
96
+ if (typeof value === "string")
97
+ return scrubSecrets(value);
98
+ if (Array.isArray(value))
99
+ return value.map(scrubDeep);
100
+ if (value !== null && typeof value === "object") {
101
+ const out = {};
102
+ for (const [k, v] of Object.entries(value))
103
+ out[k] = scrubDeep(v);
104
+ return out;
105
+ }
106
+ return value;
107
+ }
108
+ /**
109
+ * The one JSON object printed for an error under `--json`.
110
+ *
111
+ * Every error has:
112
+ * - `error` — the message (always a string)
113
+ * - `code` — the API error code, or `null` when no API response was
114
+ * involved (a network failure, or a problem the CLI caught
115
+ * before sending anything)
116
+ * and an API error adds every structured field the SDK's error carries that is
117
+ * not `undefined` — the same fields, under the same names, as the MCP server's
118
+ * error envelope: `status`, `nextAction`, `retryable`, `retryWithheld`,
119
+ * `captureOutcome`, `voidOutcome`, … Unlike the text output, `false` values are
120
+ * kept: `"retryWithheld": false` is an answer.
121
+ *
122
+ * ⚠️ `code: null` on `payment-intents capture` / `void` / `create` or
123
+ * `refunds create` does NOT mean nothing happened: a network failure leaves
124
+ * the outcome unknown. Read the resource back before running it again.
125
+ *
126
+ * Nothing here can carry the API key, the idempotency key or the request body:
127
+ * `VonPayError` holds none of them, and any other error contributes only its
128
+ * message. Every string still goes through the same redaction as the text
129
+ * output.
130
+ */
131
+ export function errorJson(err) {
132
+ if (err instanceof VonPayError) {
133
+ const out = { error: err.message };
134
+ const source = err;
135
+ for (const field of ERROR_FIELDS) {
136
+ const value = source[field];
137
+ if (value !== undefined)
138
+ out[field] = value;
139
+ }
140
+ return scrubDeep(out);
141
+ }
142
+ const message = err instanceof Error ? err.message : String(err);
143
+ return { error: scrubSecrets(message), code: null };
144
+ }
145
+ /**
146
+ * Exit 1 on a problem the CLI caught itself, before calling the API (a live
147
+ * key without --confirm-live, a bad flag value). In text mode `text` is
148
+ * printed exactly as given; under `--json` the output is
149
+ * `{"error": <message>, "code": null}`, redacted like everything else.
150
+ */
151
+ export function exitWithCliError(message, text) {
152
+ return emitCliError({ error: scrubSecrets(message), code: null }, text);
153
+ }
36
154
  export function handleError(err) {
155
+ if (jsonErrorsEnabled()) {
156
+ printJsonError(errorJson(err));
157
+ process.exit(1);
158
+ }
37
159
  if (err instanceof VonPayError) {
38
160
  // Server-supplied text is scrubbed too: it is echoed to a terminal and
39
161
  // from there into logs, and nothing guarantees it never quotes a secret.
40
162
  console.error(chalk.red(`Error: ${scrubSecrets(err.message)}`));
41
- console.error(chalk.dim(` Code: ${err.code}`));
42
- console.error(chalk.dim(` Fix: ${scrubSecrets(err.fix)}`));
43
- if (err.refundInstead) {
44
- // refund_target_is_duplicate: the SDK has already checked this is a
45
- // transaction id (vp_tx_*), so it is safe to echo as a command.
46
- console.error(chalk.dim(` Refund instead: vonpay checkout refunds create --transaction ${err.refundInstead}`));
47
- }
48
- if (err.requestId) {
49
- console.error(chalk.dim(` Request ID: ${err.requestId}`));
50
- }
163
+ for (const line of errorDetailLines(err))
164
+ console.error(chalk.dim(line));
51
165
  process.exit(1);
52
166
  }
53
167
  const message = err instanceof Error ? err.message : String(err);
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,eAAe,GAA6C;IAChE,CAAC,qCAAqC,EAAE,WAAW,CAAC;IACpD,CAAC,kCAAkC,EAAE,QAAQ,CAAC;IAC9C,CAAC,uBAAuB,EAAE,WAAW,CAAC;IACtC,CAAC,kCAAkC,EAAE,QAAQ,CAAC;IAC9C,CAAC,kCAAkC,EAAE,QAAQ,CAAC;CAC/C,CAAC;AAEF,SAAS,YAAY,CAAC,CAAS;IAC7B,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,KAAK,MAAM,CAAC,EAAE,EAAE,WAAW,CAAC,IAAI,eAAe;QAAE,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;IACpF,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,GAAY;IACtC,IAAI,GAAG,YAAY,WAAW,EAAE,CAAC;QAC/B,uEAAuE;QACvE,yEAAyE;QACzE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;QAChE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAChD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7D,IAAI,GAAG,CAAC,aAAa,EAAE,CAAC;YACtB,oEAAoE;YACpE,gEAAgE;YAChE,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,GAAG,CACP,kEAAkE,GAAG,CAAC,aAAa,EAAE,CACtF,CACF,CAAC;QACJ,CAAC;QACD,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;YAClB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QAC7D,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACjE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,YAAY;CACb,CAAC"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ export declare function setJsonErrors(enabled: boolean): void;
2
+ export declare function jsonErrorsEnabled(): boolean;
3
+ /**
4
+ * One error, as one JSON line, on stderr. stdout is left alone: under
5
+ * `--json` it carries the command's RESULT, and a script reading stdout must
6
+ * never be handed an error it could parse as a result. The exit code (1) is
7
+ * what says the command failed.
8
+ */
9
+ export declare function printJsonError(obj: Record<string, unknown>): void;
10
+ /**
11
+ * Print an error the CLI caught itself and exit 1: `json` under `--json`,
12
+ * otherwise `text` exactly as given. Callers pass already-redacted values;
13
+ * `exitWithCliError` in `errors.ts` does that for a message.
14
+ */
15
+ export declare function emitCliError(json: Record<string, unknown>, text: string): never;
16
+ //# sourceMappingURL=json-errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-errors.d.ts","sourceRoot":"","sources":["../../src/utils/json-errors.ts"],"names":[],"mappings":"AAcA,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAEpD;AAED,wBAAgB,iBAAiB,IAAI,OAAO,CAE3C;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAEjE;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,KAAK,CAI/E"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Whether errors in this run are printed as JSON, and the one place they are
3
+ * written. Deliberately a leaf module (no imports) so the lowest-level code —
4
+ * `config.ts`'s `requireApiKey` — can use it without pulling in the SDK. The
5
+ * error formatting itself lives in `errors.ts`.
6
+ *
7
+ * Set once per run, before the command's action, from that command's own
8
+ * `--json` flag — by the `preAction` hook in `commands/checkout.ts`. A process
9
+ * runs one command, so a process-wide setting is the honest scope, and it
10
+ * reaches the checks that fail before any request is sent (no key, the
11
+ * live-key gate) without threading the flag through each of them.
12
+ */
13
+ let jsonErrors = false;
14
+ export function setJsonErrors(enabled) {
15
+ jsonErrors = enabled;
16
+ }
17
+ export function jsonErrorsEnabled() {
18
+ return jsonErrors;
19
+ }
20
+ /**
21
+ * One error, as one JSON line, on stderr. stdout is left alone: under
22
+ * `--json` it carries the command's RESULT, and a script reading stdout must
23
+ * never be handed an error it could parse as a result. The exit code (1) is
24
+ * what says the command failed.
25
+ */
26
+ export function printJsonError(obj) {
27
+ console.error(JSON.stringify(obj));
28
+ }
29
+ /**
30
+ * Print an error the CLI caught itself and exit 1: `json` under `--json`,
31
+ * otherwise `text` exactly as given. Callers pass already-redacted values;
32
+ * `exitWithCliError` in `errors.ts` does that for a message.
33
+ */
34
+ export function emitCliError(json, text) {
35
+ if (jsonErrors)
36
+ printJsonError(json);
37
+ else
38
+ console.error(text);
39
+ return process.exit(1);
40
+ }
41
+ //# sourceMappingURL=json-errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-errors.js","sourceRoot":"","sources":["../../src/utils/json-errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,IAAI,UAAU,GAAG,KAAK,CAAC;AAEvB,MAAM,UAAU,aAAa,CAAC,OAAgB;IAC5C,UAAU,GAAG,OAAO,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,GAA4B;IACzD,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;AACrC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,IAA6B,EAAE,IAAY;IACtE,IAAI,UAAU;QAAE,cAAc,CAAC,IAAI,CAAC,CAAC;;QAChC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACzB,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACzB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"live-key.d.ts","sourceRoot":"","sources":["../../src/utils/live-key.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAKlD,OAAO,EAAE,SAAS,EAAE,CAAC;AAErB,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,YAAY,EAClB,SAAS,EAAE,MAAM,EACjB,WAAW,SAAoB,GAC9B,IAAI,CAgBN;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAOlE"}
1
+ {"version":3,"file":"live-key.d.ts","sourceRoot":"","sources":["../../src/utils/live-key.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAMlD,OAAO,EAAE,SAAS,EAAE,CAAC;AAErB,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,YAAY,EAClB,SAAS,EAAE,MAAM,EACjB,WAAW,SAAoB,GAC9B,IAAI,CAYN;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAOlE"}
@@ -1,5 +1,6 @@
1
1
  import chalk from "chalk";
2
2
  import { isLiveKey } from "@vonpay/checkout-node";
3
+ import { exitWithCliError } from "./errors.js";
3
4
  // The ONE definition of "live key", owned by the SDK (3.0.0+). Re-exported so
4
5
  // existing imports of `isLiveKey` from this module keep working; do not
5
6
  // re-implement the prefix check here.
@@ -25,8 +26,8 @@ export function requireLiveConfirmation(key, opts, operation, consequence = "is
25
26
  console.warn(chalk.yellow(`Live key in use — ${operation} ${consequence}. Proceeding because --confirm-live was passed.`));
26
27
  return;
27
28
  }
28
- console.error(chalk.red(`Refusing to ${operation} with a live key. Pass --confirm-live to acknowledge this is intentional.`));
29
- process.exit(1);
29
+ const message = `Refusing to ${operation} with a live key. Pass --confirm-live to acknowledge this is intentional.`;
30
+ exitWithCliError(message, chalk.red(message));
30
31
  }
31
32
  export function warnLiveSecretFlag(key, flag) {
32
33
  if (!isLiveKey(key))