@vonpay/checkout-cli 0.3.2 → 0.4.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 (78) hide show
  1. package/README.md +55 -10
  2. package/dist/client-factory.d.ts +10 -0
  3. package/dist/client-factory.d.ts.map +1 -0
  4. package/dist/client-factory.js +26 -0
  5. package/dist/client-factory.js.map +1 -0
  6. package/dist/commands/capabilities.d.ts +11 -0
  7. package/dist/commands/capabilities.d.ts.map +1 -0
  8. package/dist/commands/capabilities.js +66 -0
  9. package/dist/commands/capabilities.js.map +1 -0
  10. package/dist/commands/checkout.d.ts.map +1 -1
  11. package/dist/commands/checkout.js +10 -0
  12. package/dist/commands/checkout.js.map +1 -1
  13. package/dist/commands/doctor.d.ts +56 -0
  14. package/dist/commands/doctor.d.ts.map +1 -1
  15. package/dist/commands/doctor.js +15 -5
  16. package/dist/commands/doctor.js.map +1 -1
  17. package/dist/commands/health.js +3 -3
  18. package/dist/commands/health.js.map +1 -1
  19. package/dist/commands/listen.d.ts +19 -0
  20. package/dist/commands/listen.d.ts.map +1 -0
  21. package/dist/commands/listen.js +236 -0
  22. package/dist/commands/listen.js.map +1 -0
  23. package/dist/commands/payment-intents.d.ts +21 -0
  24. package/dist/commands/payment-intents.d.ts.map +1 -0
  25. package/dist/commands/payment-intents.js +195 -0
  26. package/dist/commands/payment-intents.js.map +1 -0
  27. package/dist/commands/refunds.d.ts +3 -0
  28. package/dist/commands/refunds.d.ts.map +1 -0
  29. package/dist/commands/refunds.js +78 -0
  30. package/dist/commands/refunds.js.map +1 -0
  31. package/dist/commands/sessions.d.ts.map +1 -1
  32. package/dist/commands/sessions.js +3 -18
  33. package/dist/commands/sessions.js.map +1 -1
  34. package/dist/commands/tokens.d.ts +3 -0
  35. package/dist/commands/tokens.d.ts.map +1 -0
  36. package/dist/commands/tokens.js +77 -0
  37. package/dist/commands/tokens.js.map +1 -0
  38. package/dist/commands/trigger.d.ts +20 -0
  39. package/dist/commands/trigger.d.ts.map +1 -1
  40. package/dist/commands/trigger.js +17 -5
  41. package/dist/commands/trigger.js.map +1 -1
  42. package/dist/utils/errors.d.ts +7 -0
  43. package/dist/utils/errors.d.ts.map +1 -0
  44. package/dist/utils/errors.js +24 -0
  45. package/dist/utils/errors.js.map +1 -0
  46. package/dist/utils/forward-to.d.ts +34 -0
  47. package/dist/utils/forward-to.d.ts.map +1 -0
  48. package/dist/utils/forward-to.js +88 -0
  49. package/dist/utils/forward-to.js.map +1 -0
  50. package/dist/utils/listen-forward.d.ts +43 -0
  51. package/dist/utils/listen-forward.d.ts.map +1 -0
  52. package/dist/utils/listen-forward.js +106 -0
  53. package/dist/utils/listen-forward.js.map +1 -0
  54. package/dist/utils/listen-output.d.ts +52 -0
  55. package/dist/utils/listen-output.d.ts.map +1 -0
  56. package/dist/utils/listen-output.js +85 -0
  57. package/dist/utils/listen-output.js.map +1 -0
  58. package/dist/utils/live-key.d.ts +16 -0
  59. package/dist/utils/live-key.d.ts.map +1 -0
  60. package/dist/utils/live-key.js +29 -0
  61. package/dist/utils/live-key.js.map +1 -0
  62. package/dist/utils/metadata.d.ts +2 -0
  63. package/dist/utils/metadata.d.ts.map +1 -0
  64. package/dist/utils/metadata.js +31 -0
  65. package/dist/utils/metadata.js.map +1 -0
  66. package/dist/utils/sanitize.d.ts +4 -0
  67. package/dist/utils/sanitize.d.ts.map +1 -0
  68. package/dist/utils/sanitize.js +18 -0
  69. package/dist/utils/sanitize.js.map +1 -0
  70. package/dist/utils/sse-consumer.d.ts +81 -0
  71. package/dist/utils/sse-consumer.d.ts.map +1 -0
  72. package/dist/utils/sse-consumer.js +172 -0
  73. package/dist/utils/sse-consumer.js.map +1 -0
  74. package/dist/utils/sse-parser.d.ts +63 -0
  75. package/dist/utils/sse-parser.d.ts.map +1 -0
  76. package/dist/utils/sse-parser.js +149 -0
  77. package/dist/utils/sse-parser.js.map +1 -0
  78. package/package.json +2 -2
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @vonpay/checkout-cli
2
2
 
3
- Command-line tools for developers integrating with [Von Payments Checkout](https://docs.vonpay.com). Create test sessions, inspect session state, trigger webhook events, and bootstrap local integration work.
3
+ Command-line tools for developers integrating with [Von Payments Checkout](https://docs.vonpay.com). Create test sessions, drive the discrete-lifecycle payment intent flow (create / capture / void / refund), manage saved-card tokens, inspect binder capabilities, trigger webhook events, and bootstrap local integration work.
4
4
 
5
5
  ## Install
6
6
 
@@ -18,7 +18,7 @@ Save your Von Payments API key once:
18
18
  vonpay checkout login
19
19
  ```
20
20
 
21
- Stores credentials at `~/.vonpay/config.json`. Use a test-mode key (`vp_sk_test_...`) for local development.
21
+ Stores credentials at `~/.vonpay/config.json` (mode `0600`). Use a test-mode key (`vp_sk_test_...`) for local development. The CLI also reads `VON_PAY_SECRET_KEY` from the environment if set, which takes precedence over the saved config.
22
22
 
23
23
  ## Commands
24
24
 
@@ -28,13 +28,32 @@ All commands are namespaced under `vonpay checkout`:
28
28
  |---|---|
29
29
  | `vonpay checkout login` | Save API key to `~/.vonpay/config.json` |
30
30
  | `vonpay checkout init` | Scaffold a minimal checkout integration starter |
31
- | `vonpay checkout sessions list` | List recent checkout sessions |
32
- | `vonpay checkout sessions create` | Create a test checkout session and print the URL |
31
+ | `vonpay checkout sessions create` | Create a hosted-checkout session and print the URL |
33
32
  | `vonpay checkout sessions get <id>` | Fetch session details |
34
- | `vonpay checkout trigger <event>` | Trigger a synthetic webhook event against your local endpoint |
35
- | `vonpay checkout health` | Check Von Payments API health and latency |
33
+ | `vonpay checkout payment-intents create` | Create a discrete-lifecycle payment intent (server-driven flows, MIT) |
34
+ | `vonpay checkout payment-intents capture <id>` | Capture an authorized intent (full or partial) |
35
+ | `vonpay checkout payment-intents void <id>` | Void an authorized intent before capture |
36
+ | `vonpay checkout refunds create` | Refund a captured intent (full or partial) |
37
+ | `vonpay checkout tokens create` | Create a payment-method token for saved-card / MIT flows |
38
+ | `vonpay checkout capabilities` | Show what this merchant's binder supports |
39
+ | `vonpay checkout trigger <event>` | Trigger a synthetic webhook event against your local endpoint (`session.succeeded`, `session.failed`, `refund.created`) |
40
+ | `vonpay checkout listen` | Stream live webhook delivery attempts; optionally re-forward each to a local URL with `--forward-to` |
41
+ | `vonpay checkout health` | Check API health and latency |
42
+ | `vonpay checkout doctor` | Diagnose runtime + env + live API probe |
36
43
 
37
- Run `vonpay checkout --help` for the full flag reference.
44
+ Run `vonpay checkout <command> --help` for full flag reference.
45
+
46
+ > **`listen --forward-to` signs forwarded events with the v1 scheme** (a fresh `X-VonPay-Timestamp` stamped at forward time + a bare-hex `X-VonPay-Signature` over the body). Verify them in your local handler with `vonpay.webhooks.constructEvent(rawBody, signature, secretKey, timestamp)` — **not** `constructEventV2`. If your subscription is opted into v2 signatures, the forwarded events still use v1; this is a known limitation of local forwarding.
47
+
48
+ ### Common flags
49
+
50
+ - `--json` on every read/write command for machine-readable output
51
+ - `--idempotency-key <key>` on every mutating command for safe retries (pass the same key with the same body to get the same record back)
52
+ - `--metadata key=value` (repeatable) on `payment-intents create`, `refunds create`, and `tokens create`. Keys and values are bounded to 256 characters; control characters are rejected.
53
+
54
+ ### Live-key safety
55
+
56
+ Mutating commands that are irreversible on a live key — `payment-intents create`, `payment-intents capture`, `payment-intents void`, and `refunds create` — refuse to run with a `vp_sk_live_*` key unless you pass `--confirm-live`. This mirrors the `--confirm-cli-exposure` pattern used by `login`. Test-mode keys (`vp_sk_test_*`) ignore the flag.
38
57
 
39
58
  ## Quick start
40
59
 
@@ -42,13 +61,39 @@ Run `vonpay checkout --help` for the full flag reference.
42
61
  # One-time setup
43
62
  vonpay checkout login
44
63
 
45
- # Create a test session
64
+ # Hosted checkout — buyer redirects to a Vonpay-hosted page
46
65
  vonpay checkout sessions create --amount 1499 --currency USD --country US
47
66
 
48
- # Trigger a payment.succeeded webhook against localhost:3000
49
- vonpay checkout trigger payment.succeeded --url http://localhost:3000/webhooks/vonpay
67
+ # Discrete lifecycle — server-driven flow with manual capture (fulfillment-on-ship)
68
+ vonpay checkout payment-intents create --amount 1499 --currency USD --capture-method manual
69
+ vonpay checkout payment-intents capture vpi_test_abc123
70
+ # or, before fulfillment:
71
+ vonpay checkout payment-intents void vpi_test_abc123
72
+
73
+ # Refund a succeeded intent
74
+ vonpay checkout refunds create --payment-intent vpi_test_abc123 --amount 500 --reason duplicate
75
+
76
+ # What does my binder support?
77
+ vonpay checkout capabilities
78
+
79
+ # Trigger a session.succeeded webhook against localhost:3000
80
+ vonpay checkout trigger session.succeeded --url http://localhost:3000/webhooks/vonpay
50
81
  ```
51
82
 
83
+ ### Merchant-initiated transactions (MIT)
84
+
85
+ For recurring billing, retry, or saved-card charges, pass all three MIT flags together:
86
+
87
+ ```bash
88
+ vonpay checkout payment-intents create \
89
+ --amount 1499 --currency USD \
90
+ --mit-initiator merchant \
91
+ --mit-reason recurring \
92
+ --mit-original-transaction-id vpi_test_anchor_xxx
93
+ ```
94
+
95
+ Check `vonpay checkout capabilities` first to verify `MIT: yes` for your binder.
96
+
52
97
  ## Documentation
53
98
 
54
99
  - [CLI reference](https://docs.vonpay.com/sdks/cli)
@@ -0,0 +1,10 @@
1
+ import { VonPayCheckout } from "@vonpay/checkout-node";
2
+ export declare function getBaseUrl(): string | undefined;
3
+ /**
4
+ * Build a VonPayCheckout client honoring the user's saved API key and the
5
+ * VONPAY_BASE_URL env var (or saved baseUrl). All CLI commands should call
6
+ * this instead of `new VonPayCheckout(apiKey)` — the bare constructor
7
+ * silently hits prod even when VONPAY_BASE_URL points at staging.
8
+ */
9
+ export declare function makeCheckoutClient(): VonPayCheckout;
10
+ //# sourceMappingURL=client-factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-factory.d.ts","sourceRoot":"","sources":["../src/client-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAGvD,wBAAgB,UAAU,IAAI,MAAM,GAAG,SAAS,CAQ/C;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,IAAI,cAAc,CAOnD"}
@@ -0,0 +1,26 @@
1
+ import { VonPayCheckout } from "@vonpay/checkout-node";
2
+ import { loadConfig, requireApiKey } from "./config.js";
3
+ export function getBaseUrl() {
4
+ // VONPAY_BASE_URL env var takes precedence (matches doctor.ts pattern).
5
+ // Then ~/.vonpay/config.json. Unset → SDK uses its default (prod).
6
+ const envBase = process.env.VONPAY_BASE_URL;
7
+ if (envBase)
8
+ return envBase;
9
+ const config = loadConfig();
10
+ return config.checkout?.baseUrl;
11
+ }
12
+ /**
13
+ * Build a VonPayCheckout client honoring the user's saved API key and the
14
+ * VONPAY_BASE_URL env var (or saved baseUrl). All CLI commands should call
15
+ * this instead of `new VonPayCheckout(apiKey)` — the bare constructor
16
+ * silently hits prod even when VONPAY_BASE_URL points at staging.
17
+ */
18
+ export function makeCheckoutClient() {
19
+ const apiKey = requireApiKey();
20
+ const baseUrl = getBaseUrl();
21
+ if (baseUrl) {
22
+ return new VonPayCheckout({ apiKey, baseUrl });
23
+ }
24
+ return new VonPayCheckout(apiKey);
25
+ }
26
+ //# sourceMappingURL=client-factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-factory.js","sourceRoot":"","sources":["../src/client-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAExD,MAAM,UAAU,UAAU;IACxB,wEAAwE;IACxE,mEAAmE;IACnE,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;IAC5C,IAAI,OAAO;QAAE,OAAO,OAAO,CAAC;IAE5B,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,OAAO,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC;AAClC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB;IAChC,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;IAC/B,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,IAAI,cAAc,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;AACpC,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { Command } from "commander";
2
+ import type { Capabilities } from "@vonpay/checkout-node";
3
+ declare function fmtBool(v: boolean): string;
4
+ declare function fmtVoidPolicy(v: Capabilities["supportedOperations"]["voidAfterCapture"]): string;
5
+ export declare function capabilitiesCommand(): Command;
6
+ export declare const __testing__: {
7
+ fmtBool: typeof fmtBool;
8
+ fmtVoidPolicy: typeof fmtVoidPolicy;
9
+ };
10
+ export {};
11
+ //# sourceMappingURL=capabilities.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../../src/commands/capabilities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAI1D,iBAAS,OAAO,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CAEnC;AAED,iBAAS,aAAa,CACpB,CAAC,EAAE,YAAY,CAAC,qBAAqB,CAAC,CAAC,kBAAkB,CAAC,GACzD,MAAM,CASR;AA2BD,wBAAgB,mBAAmB,IAAI,OAAO,CAsB7C;AAED,eAAO,MAAM,WAAW;;;CAGvB,CAAC"}
@@ -0,0 +1,66 @@
1
+ import { Command } from "commander";
2
+ import chalk from "chalk";
3
+ import ora from "ora";
4
+ import { makeCheckoutClient } from "../client-factory.js";
5
+ import { handleError } from "../utils/errors.js";
6
+ function fmtBool(v) {
7
+ return v ? chalk.green("yes") : chalk.dim("no");
8
+ }
9
+ function fmtVoidPolicy(v) {
10
+ switch (v) {
11
+ case "supported":
12
+ return chalk.green(v);
13
+ case "rerouted_to_refund":
14
+ return chalk.yellow(v);
15
+ case "unsupported":
16
+ return chalk.dim(v);
17
+ }
18
+ }
19
+ function printCapabilities(caps) {
20
+ const ops = caps.supportedOperations;
21
+ console.log(chalk.bold("Supported operations"));
22
+ console.log(` auth/capture separation: ${fmtBool(ops.authCaptureSeparation)}`);
23
+ console.log(` partial capture: ${fmtBool(ops.partialCapture)}`);
24
+ console.log(` partial refund: ${fmtBool(ops.partialRefund)}`);
25
+ console.log(` unreferenced refund: ${fmtBool(ops.unreferencedRefund)}`);
26
+ console.log(` void after capture: ${fmtVoidPolicy(ops.voidAfterCapture)}`);
27
+ console.log(` MIT: ${fmtBool(ops.mit)}`);
28
+ console.log(` network tokens: ${fmtBool(ops.networkTokens)}`);
29
+ console.log(` 3D Secure 2: ${fmtBool(ops.threeDSecure2)}`);
30
+ console.log(` ACH: ${fmtBool(ops.ach)}`);
31
+ console.log(` payouts API: ${fmtBool(ops.payoutsApi)}`);
32
+ console.log();
33
+ console.log(chalk.bold("Settlement currencies"));
34
+ console.log(` ${caps.settlementCurrencies.length ? caps.settlementCurrencies.join(", ") : chalk.dim("(none reported)")}`);
35
+ console.log();
36
+ console.log(chalk.bold("Rate limits"));
37
+ console.log(` payment intents / minute: ${caps.rateLimits.paymentIntentsPerMinute}`);
38
+ }
39
+ export function capabilitiesCommand() {
40
+ return new Command("capabilities")
41
+ .description("Show what this merchant's binder supports")
42
+ .option("--json", "Output raw JSON")
43
+ .action(async (opts) => {
44
+ const client = makeCheckoutClient();
45
+ const spinner = ora("Fetching capabilities...").start();
46
+ try {
47
+ const caps = await client.capabilities.get();
48
+ spinner.stop();
49
+ if (opts.json) {
50
+ console.log(JSON.stringify(caps, null, 2));
51
+ }
52
+ else {
53
+ printCapabilities(caps);
54
+ }
55
+ }
56
+ catch (err) {
57
+ spinner.stop();
58
+ handleError(err);
59
+ }
60
+ });
61
+ }
62
+ export const __testing__ = {
63
+ fmtBool,
64
+ fmtVoidPolicy,
65
+ };
66
+ //# sourceMappingURL=capabilities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../src/commands/capabilities.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"checkout.d.ts","sourceRoot":"","sources":["../../src/commands/checkout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAWvD"}
1
+ {"version":3,"file":"checkout.d.ts","sourceRoot":"","sources":["../../src/commands/checkout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAapC,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAgBvD"}
@@ -1,7 +1,12 @@
1
1
  import { loginCommand } from "./login.js";
2
2
  import { initCommand } from "./init.js";
3
3
  import { sessionsCommand } from "./sessions.js";
4
+ import { paymentIntentsCommand } from "./payment-intents.js";
5
+ import { refundsCommand } from "./refunds.js";
6
+ import { tokensCommand } from "./tokens.js";
7
+ import { capabilitiesCommand } from "./capabilities.js";
4
8
  import { triggerCommand } from "./trigger.js";
9
+ import { listenCommand } from "./listen.js";
5
10
  import { healthCommand } from "./health.js";
6
11
  import { doctorCommand } from "./doctor.js";
7
12
  export function registerCheckout(program) {
@@ -11,7 +16,12 @@ export function registerCheckout(program) {
11
16
  checkout.addCommand(loginCommand());
12
17
  checkout.addCommand(initCommand());
13
18
  checkout.addCommand(sessionsCommand());
19
+ checkout.addCommand(paymentIntentsCommand());
20
+ checkout.addCommand(refundsCommand());
21
+ checkout.addCommand(tokensCommand());
22
+ checkout.addCommand(capabilitiesCommand());
14
23
  checkout.addCommand(triggerCommand());
24
+ checkout.addCommand(listenCommand());
15
25
  checkout.addCommand(healthCommand());
16
26
  checkout.addCommand(doctorCommand());
17
27
  }
@@ -1 +1 @@
1
- {"version":3,"file":"checkout.js","sourceRoot":"","sources":["../../src/commands/checkout.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,UAAU,gBAAgB,CAAC,OAAgB;IAC/C,MAAM,QAAQ,GAAG,OAAO;SACrB,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,4BAA4B,CAAC,CAAC;IAE7C,QAAQ,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC,CAAC;IACpC,QAAQ,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;IACnC,QAAQ,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC,CAAC;IACvC,QAAQ,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,CAAC;IACtC,QAAQ,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,CAAC;IACrC,QAAQ,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,CAAC;AACvC,CAAC"}
1
+ {"version":3,"file":"checkout.js","sourceRoot":"","sources":["../../src/commands/checkout.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,UAAU,gBAAgB,CAAC,OAAgB;IAC/C,MAAM,QAAQ,GAAG,OAAO;SACrB,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,4BAA4B,CAAC,CAAC;IAE7C,QAAQ,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC,CAAC;IACpC,QAAQ,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;IACnC,QAAQ,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC,CAAC;IACvC,QAAQ,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC,CAAC;IAC7C,QAAQ,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,CAAC;IACtC,QAAQ,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,CAAC;IACrC,QAAQ,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAC3C,QAAQ,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,CAAC;IACtC,QAAQ,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,CAAC;IACrC,QAAQ,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,CAAC;IACrC,QAAQ,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,CAAC;AACvC,CAAC"}
@@ -1,3 +1,59 @@
1
1
  import { Command } from "commander";
2
+ interface DoctorReport {
3
+ generatedAt: string;
4
+ cli: {
5
+ version: string;
6
+ };
7
+ runtime: {
8
+ node: string;
9
+ npm?: string;
10
+ platform: string;
11
+ arch: string;
12
+ /** Working directory with the user's home prefix replaced by `~` to avoid leaking username when the bundle is pasted publicly. */
13
+ cwd: string;
14
+ };
15
+ envVarsPresent: string[];
16
+ configFile: {
17
+ path: string;
18
+ present: boolean;
19
+ keyType?: string;
20
+ };
21
+ apiKeyPrefix?: string;
22
+ apiKeyMode?: "test" | "live";
23
+ health: {
24
+ baseUrl: string;
25
+ reachable: boolean;
26
+ latencyMs?: number;
27
+ status?: string;
28
+ error?: string;
29
+ };
30
+ validateProbe?: {
31
+ ok: boolean;
32
+ warnings?: string[];
33
+ error?: {
34
+ code: string;
35
+ status: number;
36
+ nextAction: string;
37
+ llmHint: string;
38
+ };
39
+ };
40
+ hints: string[];
41
+ }
42
+ /** Replace the user's home-directory prefix with `~` so paths in the bundle don't leak username/filesystem layout when pasted publicly. */
43
+ declare function redactHome(p: string): string;
44
+ declare function maskPrefix(key: string | undefined): string | undefined;
45
+ declare function keyMode(key: string | undefined): "test" | "live" | undefined;
46
+ declare function gather(): Promise<DoctorReport>;
47
+ declare function renderHuman(r: DoctorReport): string;
48
+ declare function renderForLlm(r: DoctorReport): string;
49
+ export declare const __test__: {
50
+ maskPrefix: typeof maskPrefix;
51
+ keyMode: typeof keyMode;
52
+ redactHome: typeof redactHome;
53
+ renderHuman: typeof renderHuman;
54
+ renderForLlm: typeof renderForLlm;
55
+ gather: typeof gather;
56
+ };
2
57
  export declare function doctorCommand(): Command;
58
+ export {};
3
59
  //# sourceMappingURL=doctor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA+WpC,wBAAgB,aAAa,IAAI,OAAO,CA4BvC"}
1
+ {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA2BpC,UAAU,YAAY;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IACzB,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,kIAAkI;QAClI,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,UAAU,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACjE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,MAAM,EAAE;QACN,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,OAAO,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,aAAa,CAAC,EAAE;QACd,EAAE,EAAE,OAAO,CAAC;QACZ,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,KAAK,CAAC,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC;KAC/E,CAAC;IACF,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,2IAA2I;AAC3I,iBAAS,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAMrC;AAED,iBAAS,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAO/D;AAED,iBAAS,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAQrE;AAED,iBAAe,MAAM,IAAI,OAAO,CAAC,YAAY,CAAC,CAuI7C;AAED,iBAAS,WAAW,CAAC,CAAC,EAAE,YAAY,GAAG,MAAM,CAwE5C;AAED,iBAAS,YAAY,CAAC,CAAC,EAAE,YAAY,GAAG,MAAM,CAqE7C;AAGD,eAAO,MAAM,QAAQ;;;;;;;CAOpB,CAAC;AAEF,wBAAgB,aAAa,IAAI,OAAO,CA4BvC"}
@@ -26,7 +26,6 @@ const RELEVANT_ENV_VARS = [
26
26
  "VON_PAY_SECRET_KEY",
27
27
  "VON_PAY_PUBLISHABLE_KEY",
28
28
  "VON_PAY_SESSION_SECRET",
29
- "VONPAY_API_KEY",
30
29
  "VONPAY_BASE_URL",
31
30
  "VONPAY_QUIET",
32
31
  "NEXT_PUBLIC_BASE_URL",
@@ -52,6 +51,10 @@ function maskPrefix(key) {
52
51
  function keyMode(key) {
53
52
  if (!key)
54
53
  return undefined;
54
+ // Only API keys (vp_sk_* / vp_pk_*) carry mode in their prefix. Session
55
+ // signing secrets (ss_*) and webhook secrets (whsec_*) don't.
56
+ if (!/^vp_[ps]k_/.test(key))
57
+ return undefined;
55
58
  if (key.includes("_test_"))
56
59
  return "test";
57
60
  if (key.includes("_live_"))
@@ -61,7 +64,6 @@ function keyMode(key) {
61
64
  async function gather() {
62
65
  const config = loadConfig();
63
66
  const apiKey = process.env.VON_PAY_SECRET_KEY ??
64
- process.env.VONPAY_API_KEY ??
65
67
  config.checkout?.apiKey;
66
68
  const baseUrl = process.env.VONPAY_BASE_URL ?? "https://checkout.vonpay.com";
67
69
  const envVarsPresent = RELEVANT_ENV_VARS.filter((n) => process.env[n] && process.env[n] !== "");
@@ -89,9 +91,8 @@ async function gather() {
89
91
  report.hints.push("No API key found. Set VON_PAY_SECRET_KEY in env, or run `vonpay checkout login` to save one. Without a key the health probe still runs but sessions.validate is skipped.");
90
92
  }
91
93
  // Health probe — public endpoint, requires no auth. Uses bare fetch to avoid
92
- // constructing a VonPayCheckout with a placeholder key (would transmit a
93
- // hardcoded sentinel string as Bearer; flagged HIGH by code-reviewer in 0.3.0
94
- // review). The /api/health endpoint is documented as public.
94
+ // constructing a VonPayCheckout with a placeholder key (which would transmit
95
+ // a placeholder string as Bearer). The /api/health endpoint is documented as public.
95
96
  const start = Date.now();
96
97
  try {
97
98
  const controller = new AbortController();
@@ -326,6 +327,15 @@ function renderForLlm(r) {
326
327
  out.push("");
327
328
  return out.join("\n");
328
329
  }
330
+ // Internals exposed for unit tests. Not part of the public CLI surface.
331
+ export const __test__ = {
332
+ maskPrefix,
333
+ keyMode,
334
+ redactHome,
335
+ renderHuman,
336
+ renderForLlm,
337
+ gather,
338
+ };
329
339
  export function doctorCommand() {
330
340
  return new Command("doctor")
331
341
  .description("Diagnose your Von Payments environment — runtime, env vars, live API probe; outputs human / JSON / LLM-readable formats")
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,14 @@
1
1
  import { Command } from "commander";
2
2
  import chalk from "chalk";
3
3
  import ora from "ora";
4
- import { VonPayCheckout, VonPayError } from "@vonpay/checkout-node";
5
- import { requireApiKey } from "../config.js";
4
+ import { VonPayError } from "@vonpay/checkout-node";
5
+ import { makeCheckoutClient } from "../client-factory.js";
6
6
  export function healthCommand() {
7
7
  return new Command("health")
8
8
  .description("Check checkout API health")
9
9
  .option("--json", "Output raw JSON")
10
10
  .action(async (opts) => {
11
- const client = new VonPayCheckout(requireApiKey());
11
+ const client = makeCheckoutClient();
12
12
  const spinner = ora("Checking API health...").start();
13
13
  try {
14
14
  const health = await client.health();
@@ -1 +1 @@
1
- {"version":3,"file":"health.js","sourceRoot":"","sources":["../../src/commands/health.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,MAAM,UAAU,aAAa;IAC3B,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC;SACzB,WAAW,CAAC,2BAA2B,CAAC;SACxC,MAAM,CAAC,QAAQ,EAAE,iBAAiB,CAAC;SACnC,MAAM,CAAC,KAAK,EAAE,IAAwB,EAAE,EAAE;QACzC,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC,aAAa,EAAE,CAAC,CAAC;QACnD,MAAM,OAAO,GAAG,GAAG,CAAC,wBAAwB,CAAC,CAAC,KAAK,EAAE,CAAC;QAEtD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC;YACrC,OAAO,CAAC,IAAI,EAAE,CAAC;YAEf,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBACN,MAAM,WAAW,GACf,MAAM,CAAC,MAAM,KAAK,IAAI;oBACpB,CAAC,CAAC,KAAK,CAAC,KAAK;oBACb,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,UAAU;wBAC5B,CAAC,CAAC,KAAK,CAAC,MAAM;wBACd,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC;gBAElB,OAAO,CAAC,GAAG,CAAC,eAAe,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACzD,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC;gBACjD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;oBACnB,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC/C,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,EAAE,CAAC;YACf,IAAI,GAAG,YAAY,WAAW,EAAE,CAAC;gBAC/B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;gBACtD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAClD,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,GAAG,CACP,qBAAqB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAChE,CACF,CAAC;YACJ,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"health.js","sourceRoot":"","sources":["../../src/commands/health.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,MAAM,UAAU,aAAa;IAC3B,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC;SACzB,WAAW,CAAC,2BAA2B,CAAC;SACxC,MAAM,CAAC,QAAQ,EAAE,iBAAiB,CAAC;SACnC,MAAM,CAAC,KAAK,EAAE,IAAwB,EAAE,EAAE;QACzC,MAAM,MAAM,GAAG,kBAAkB,EAAE,CAAC;QACpC,MAAM,OAAO,GAAG,GAAG,CAAC,wBAAwB,CAAC,CAAC,KAAK,EAAE,CAAC;QAEtD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC;YACrC,OAAO,CAAC,IAAI,EAAE,CAAC;YAEf,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBACN,MAAM,WAAW,GACf,MAAM,CAAC,MAAM,KAAK,IAAI;oBACpB,CAAC,CAAC,KAAK,CAAC,KAAK;oBACb,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,UAAU;wBAC5B,CAAC,CAAC,KAAK,CAAC,MAAM;wBACd,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC;gBAElB,OAAO,CAAC,GAAG,CAAC,eAAe,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACzD,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC;gBACjD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;oBACnB,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC/C,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,EAAE,CAAC;YACf,IAAI,GAAG,YAAY,WAAW,EAAE,CAAC;gBAC/B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;gBACtD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAClD,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,GAAG,CACP,qBAAqB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAChE,CACF,CAAC;YACJ,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { Command } from "commander";
2
+ /**
3
+ * `vonpay checkout listen` — long-lived SSE consumer for the merchant's
4
+ * webhook delivery attempts.
5
+ *
6
+ * Industry conventions followed: WHATWG SSE spec for parsing,
7
+ * Last-Event-ID for reconnect dedupe, exponential backoff, loopback-only
8
+ * forward-to (Stripe CLI posture), refuse-live gate (mirrors
9
+ * `vonpay checkout login --confirm-cli-exposure`), kubectl/gh-style
10
+ * default human output with `--json` opt-in for machine consumption.
11
+ *
12
+ * Output channels:
13
+ * stdout — attempt events (one per delivery), formatted per --json
14
+ * stderr — lifecycle (connecting, reconnecting, shutdown summary)
15
+ *
16
+ * Stdout stays parseable in JSON mode regardless of reconnects.
17
+ */
18
+ export declare function listenCommand(): Command;
19
+ //# sourceMappingURL=listen.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"listen.d.ts","sourceRoot":"","sources":["../../src/commands/listen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA4BpC;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,aAAa,IAAI,OAAO,CAqOvC"}