@vonpay/checkout-cli 0.7.1 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -1
- package/dist/commands/listen.js +3 -3
- package/dist/commands/listen.js.map +1 -1
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js +2 -1
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/payment-intents.d.ts +17 -0
- package/dist/commands/payment-intents.d.ts.map +1 -1
- package/dist/commands/payment-intents.js +35 -6
- package/dist/commands/payment-intents.js.map +1 -1
- package/dist/commands/refunds.d.ts.map +1 -1
- package/dist/commands/refunds.js +2 -1
- package/dist/commands/refunds.js.map +1 -1
- package/dist/commands/sessions.d.ts.map +1 -1
- package/dist/commands/sessions.js +2 -1
- package/dist/commands/sessions.js.map +1 -1
- package/dist/commands/trigger.d.ts.map +1 -1
- package/dist/commands/trigger.js +27 -0
- package/dist/commands/trigger.js.map +1 -1
- package/dist/utils/errors.d.ts.map +1 -1
- package/dist/utils/errors.js +35 -4
- package/dist/utils/errors.js.map +1 -1
- package/dist/utils/forward-to.d.ts +5 -1
- package/dist/utils/forward-to.d.ts.map +1 -1
- package/dist/utils/forward-to.js +10 -6
- package/dist/utils/forward-to.js.map +1 -1
- package/dist/utils/listen-forward.js +1 -1
- package/dist/utils/listen-forward.js.map +1 -1
- package/dist/utils/live-key.d.ts +8 -2
- package/dist/utils/live-key.d.ts.map +1 -1
- package/dist/utils/live-key.js +12 -5
- package/dist/utils/live-key.js.map +1 -1
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -62,7 +62,7 @@ Run `vonpay checkout <command> --help` for full flag reference.
|
|
|
62
62
|
|
|
63
63
|
### Live-key safety
|
|
64
64
|
|
|
65
|
-
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.
|
|
65
|
+
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`. Since 0.8.0 `trigger` does too: it signs its synthetic event with the loaded key and sends it to `--url` (this machine only, unless `--url-tunnel`), and a live-key signature on a made-up event is one a receiver would accept as genuine. `listen` has its own `--confirm-live` for the same reason. This mirrors the `--confirm-cli-exposure` pattern used by `login`. Test-mode keys (`vp_sk_test_*`) ignore the flag.
|
|
66
66
|
|
|
67
67
|
## Quick start
|
|
68
68
|
|
|
@@ -95,6 +95,8 @@ vonpay checkout capabilities
|
|
|
95
95
|
|
|
96
96
|
# Trigger a session.succeeded webhook against localhost:3000
|
|
97
97
|
vonpay checkout trigger session.succeeded --url http://localhost:3000/webhooks/vonpay
|
|
98
|
+
# --url must be this machine; to go through a tunnel (ngrok, Cloudflare Tunnel), add --url-tunnel
|
|
99
|
+
vonpay checkout trigger session.succeeded --url https://abc123.ngrok.app/webhooks/vonpay --url-tunnel
|
|
98
100
|
```
|
|
99
101
|
|
|
100
102
|
### Merchant-initiated transactions (MIT)
|
package/dist/commands/listen.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Command } from "commander";
|
|
2
|
-
import { VonPayCheckout } from "@vonpay/checkout-node";
|
|
2
|
+
import { VonPayCheckout, isLiveKey } from "@vonpay/checkout-node";
|
|
3
3
|
import { requireApiKey } from "../config.js";
|
|
4
4
|
import { getBaseUrl } from "../client-factory.js";
|
|
5
5
|
import { validateForwardTo } from "../utils/forward-to.js";
|
|
@@ -33,12 +33,12 @@ export function listenCommand() {
|
|
|
33
33
|
.option("--confirm-live", "Acknowledge that the listen stream may surface production webhook attempts (required for vp_sk_live_* keys)")
|
|
34
34
|
.action(async (opts) => {
|
|
35
35
|
const apiKey = opts.apiKey ?? requireApiKey();
|
|
36
|
-
if (apiKey
|
|
36
|
+
if (isLiveKey(apiKey) && !opts.confirmLive) {
|
|
37
37
|
process.stderr.write(formatLifecycleHuman("Refusing to start listen with a live key (vp_sk_live_*). Re-run with --confirm-live to acknowledge that production webhook attempts will stream to this terminal.", "error") + "\n");
|
|
38
38
|
process.exit(1);
|
|
39
39
|
}
|
|
40
40
|
if (!apiKey.startsWith("vp_sk_test_") &&
|
|
41
|
-
!apiKey
|
|
41
|
+
!isLiveKey(apiKey)) {
|
|
42
42
|
process.stderr.write(formatLifecycleHuman("Listen requires a secret key (vp_sk_*). Publishable keys are rejected by the server.", "error") + "\n");
|
|
43
43
|
process.exit(1);
|
|
44
44
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listen.js","sourceRoot":"","sources":["../../src/commands/listen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"listen.js","sourceRoot":"","sources":["../../src/commands/listen.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,MAAM,MAAM,iBAAiB,GACzB;IAAE,MAAM,EAAE,QAAQ,CAAA;CAAE,GACpB;IAAE,MAAM,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACpC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzC;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,IAAI,EAAE;IAAE,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAAE,GACrC,iBAAiB,CAYnB;AAYD,wBAAgB,YAAY,IAAI,OAAO,CA0DtC"}
|
package/dist/commands/login.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Command } from "commander";
|
|
2
2
|
import { createInterface } from "node:readline";
|
|
3
3
|
import chalk from "chalk";
|
|
4
|
+
import { isLiveKey } from "@vonpay/checkout-node";
|
|
4
5
|
import { loadConfig, saveConfig } from "../config.js";
|
|
5
6
|
const VALID_PREFIXES = ["vp_sk_test_", "vp_sk_live_"];
|
|
6
7
|
/**
|
|
@@ -19,7 +20,7 @@ export function evaluateCliKeyGate(key, opts) {
|
|
|
19
20
|
if (!key)
|
|
20
21
|
return { action: "prompt" };
|
|
21
22
|
const warning = "Warning: passing keys as a command argument exposes them in shell history and process-list (`ps`). Use interactive mode (`vonpay checkout login`) instead.";
|
|
22
|
-
if (key
|
|
23
|
+
if (isLiveKey(key) && !opts.confirmCliExposure) {
|
|
23
24
|
return {
|
|
24
25
|
action: "refuse",
|
|
25
26
|
reason: "Refusing to save a live key supplied on the CLI. Re-run with --confirm-cli-exposure if this is intentional, or omit the key argument to be prompted interactively.",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAEtD,MAAM,cAAc,GAAG,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;AAOtD;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,kBAAkB,CAChC,GAAuB,EACvB,IAAsC;IAEtC,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IACtC,MAAM,OAAO,GACX,4JAA4J,CAAC;IAC/J,IAAI,
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"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"}
|
|
@@ -35,11 +35,28 @@ declare function buildCreateParams(opts: CreateOpts, resolved: {
|
|
|
35
35
|
metadata?: Record<string, string>;
|
|
36
36
|
mit?: MITBlock;
|
|
37
37
|
}): CreatePaymentIntentParams;
|
|
38
|
+
/**
|
|
39
|
+
* The idempotency key this charge is sent with: the caller's
|
|
40
|
+
* `--idempotency-key` when given (trimmed), otherwise a freshly generated one.
|
|
41
|
+
*
|
|
42
|
+
* Every charge carries a key. The API refuses a keyless charge from
|
|
43
|
+
* 28 October 2026 (`400 idempotency_key_required`), and a key is also what
|
|
44
|
+
* lets the SDK retry an ambiguous failure (timeout, 5xx) inside this one
|
|
45
|
+
* command without risking a second charge. A generated key protects only that
|
|
46
|
+
* single invocation — re-running the command makes a new key and therefore a
|
|
47
|
+
* new charge — so it is printed (to stderr, keeping `--json` stdout clean)
|
|
48
|
+
* for the caller to pass back on a deliberate retry of the SAME charge.
|
|
49
|
+
*/
|
|
50
|
+
declare function resolveIdempotencyKey(flag: string | undefined): {
|
|
51
|
+
key: string;
|
|
52
|
+
generated: boolean;
|
|
53
|
+
};
|
|
38
54
|
declare function buildMITBlock(opts: CreateOpts): MITBlock | undefined;
|
|
39
55
|
export declare function paymentIntentsCommand(): Command;
|
|
40
56
|
export declare const __testing__: {
|
|
41
57
|
buildMITBlock: typeof buildMITBlock;
|
|
42
58
|
buildCreateParams: typeof buildCreateParams;
|
|
59
|
+
resolveIdempotencyKey: typeof resolveIdempotencyKey;
|
|
43
60
|
};
|
|
44
61
|
export {};
|
|
45
62
|
//# sourceMappingURL=payment-intents.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payment-intents.d.ts","sourceRoot":"","sources":["../../src/commands/payment-intents.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"payment-intents.d.ts","sourceRoot":"","sources":["../../src/commands/payment-intents.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,OAAO,KAAK,EACV,yBAAyB,EAEzB,QAAQ,EAGT,MAAM,uBAAuB,CAAC;AAe/B,UAAU,UAAU;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;;;;;;;;;;;;GAaG;AACH,iBAAS,iBAAiB,CACxB,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE;IACR,aAAa,CAAC,EAAE,WAAW,GAAG,QAAQ,CAAC;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,GAAG,CAAC,EAAE,QAAQ,CAAC;CAChB,GACA,yBAAyB,CAgC3B;AAED;;;;;;;;;;;GAWG;AACH,iBAAS,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG;IACxD,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,OAAO,CAAC;CACpB,CAIA;AAED,iBAAS,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,QAAQ,GAAG,SAAS,CAgC7D;AAoDD,wBAAgB,qBAAqB,IAAI,OAAO,CAmN/C;AAED,eAAO,MAAM,WAAW;;;;CAIvB,CAAC"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
import { randomUUID } from "node:crypto";
|
|
1
2
|
import { Command } from "commander";
|
|
2
3
|
import chalk from "chalk";
|
|
3
4
|
import ora from "ora";
|
|
5
|
+
import { formatMinorUnits } from "@vonpay/checkout-node";
|
|
4
6
|
import { requireApiKey } from "../config.js";
|
|
5
7
|
import { makeCheckoutClient } from "../client-factory.js";
|
|
6
8
|
import { parseMetadata } from "../utils/metadata.js";
|
|
@@ -59,6 +61,24 @@ function buildCreateParams(opts, resolved) {
|
|
|
59
61
|
}
|
|
60
62
|
return params;
|
|
61
63
|
}
|
|
64
|
+
/**
|
|
65
|
+
* The idempotency key this charge is sent with: the caller's
|
|
66
|
+
* `--idempotency-key` when given (trimmed), otherwise a freshly generated one.
|
|
67
|
+
*
|
|
68
|
+
* Every charge carries a key. The API refuses a keyless charge from
|
|
69
|
+
* 28 October 2026 (`400 idempotency_key_required`), and a key is also what
|
|
70
|
+
* lets the SDK retry an ambiguous failure (timeout, 5xx) inside this one
|
|
71
|
+
* command without risking a second charge. A generated key protects only that
|
|
72
|
+
* single invocation — re-running the command makes a new key and therefore a
|
|
73
|
+
* new charge — so it is printed (to stderr, keeping `--json` stdout clean)
|
|
74
|
+
* for the caller to pass back on a deliberate retry of the SAME charge.
|
|
75
|
+
*/
|
|
76
|
+
function resolveIdempotencyKey(flag) {
|
|
77
|
+
const given = flag?.trim();
|
|
78
|
+
if (given)
|
|
79
|
+
return { key: given, generated: false };
|
|
80
|
+
return { key: `cli-${randomUUID()}`, generated: true };
|
|
81
|
+
}
|
|
62
82
|
function buildMITBlock(opts) {
|
|
63
83
|
// Treat empty string as not provided — `--mit-original-transaction-id ""`
|
|
64
84
|
// would otherwise build a malformed MIT block that the server may reject
|
|
@@ -96,7 +116,7 @@ function printPaymentIntent(intent) {
|
|
|
96
116
|
: chalk.gray;
|
|
97
117
|
console.log(` ID: ${intent.id}`);
|
|
98
118
|
console.log(` Status: ${statusColor(intent.status)}`);
|
|
99
|
-
console.log(` Amount: ${(intent.amount
|
|
119
|
+
console.log(` Amount: ${formatMinorUnits(intent.amount, intent.currency)}`);
|
|
100
120
|
console.log(` Capture: ${intent.captureMethod}`);
|
|
101
121
|
if (intent.nextAction) {
|
|
102
122
|
// nextAction is the structured 3DS action object, not a bare URL — reading
|
|
@@ -130,7 +150,7 @@ export function paymentIntentsCommand() {
|
|
|
130
150
|
.option("--session-id <id>", "Checkout session this charge belongs to (vp_cs_*). Arms the double-charge guard: refused if that session already charged at submit. Safe to always send")
|
|
131
151
|
.option("--buyer-id <id>", "Your customer reference. Send on EVERY saved-card charge — it is what makes the server reject a charge against the wrong customer's stored card")
|
|
132
152
|
.option("--buyer-email <email>", "Buyer email for this charge")
|
|
133
|
-
.option("--idempotency-key <key>", "Idempotency key for
|
|
153
|
+
.option("--idempotency-key <key>", "Idempotency key for this charge. Reuse the SAME key to retry the same charge safely. Generated (and printed) when omitted")
|
|
134
154
|
.option("--confirm-live", CONFIRM_LIVE_DESCRIPTION)
|
|
135
155
|
.option("--json", "Output raw JSON")
|
|
136
156
|
.action(async (opts) => {
|
|
@@ -150,9 +170,17 @@ export function paymentIntentsCommand() {
|
|
|
150
170
|
const metadata = parseMetadata(opts.metadata);
|
|
151
171
|
const mit = buildMITBlock(opts);
|
|
152
172
|
const params = buildCreateParams(opts, { captureMethod, metadata, mit });
|
|
153
|
-
const
|
|
154
|
-
|
|
155
|
-
|
|
173
|
+
const { key: idempotencyKey, generated } = resolveIdempotencyKey(opts.idempotencyKey);
|
|
174
|
+
if (generated) {
|
|
175
|
+
// Printed BEFORE the request so it is on screen even if the call
|
|
176
|
+
// times out — that is exactly when the caller needs it to retry.
|
|
177
|
+
spinner.stop();
|
|
178
|
+
console.error(chalk.dim(`Idempotency key: ${idempotencyKey} (to retry this same charge, re-run with --idempotency-key ${idempotencyKey})`));
|
|
179
|
+
spinner.start();
|
|
180
|
+
}
|
|
181
|
+
const intent = await client.paymentIntents.create(params, {
|
|
182
|
+
idempotencyKey,
|
|
183
|
+
});
|
|
156
184
|
spinner.stop();
|
|
157
185
|
if (opts.json) {
|
|
158
186
|
console.log(JSON.stringify(intent, null, 2));
|
|
@@ -192,7 +220,7 @@ export function paymentIntentsCommand() {
|
|
|
192
220
|
}
|
|
193
221
|
else {
|
|
194
222
|
const captureLabel = opts.amountToCapture !== undefined
|
|
195
|
-
? ` (partial: ${(opts.amountToCapture
|
|
223
|
+
? ` (partial: ${formatMinorUnits(opts.amountToCapture, intent.currency)})`
|
|
196
224
|
: "";
|
|
197
225
|
console.log(chalk.green(`✓ Payment intent captured${captureLabel}`));
|
|
198
226
|
printPaymentIntent(intent);
|
|
@@ -238,5 +266,6 @@ export function paymentIntentsCommand() {
|
|
|
238
266
|
export const __testing__ = {
|
|
239
267
|
buildMITBlock,
|
|
240
268
|
buildCreateParams,
|
|
269
|
+
resolveIdempotencyKey,
|
|
241
270
|
};
|
|
242
271
|
//# sourceMappingURL=payment-intents.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payment-intents.js","sourceRoot":"","sources":["../../src/commands/payment-intents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"payment-intents.js","sourceRoot":"","sources":["../../src/commands/payment-intents.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"refunds.d.ts","sourceRoot":"","sources":["../../src/commands/refunds.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"refunds.d.ts","sourceRoot":"","sources":["../../src/commands/refunds.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,OAAO,KAAK,EACV,kBAAkB,EAClB,MAAM,EACN,iBAAiB,EAClB,MAAM,uBAAuB,CAAC;AAQ/B,UAAU,gBAAgB;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAOD;;;GAGG;AACH,kDAAkD;AAClD,iBAAS,OAAO,CAAC,IAAI,EAAE,kBAAkB,GAAG,eAAe,GAAG,MAAM,CAKnE;AAED,iBAAS,mBAAmB,CAC1B,IAAI,EAAE,IAAI,CAAC,gBAAgB,EAAE,eAAe,GAAG,aAAa,CAAC,GAC5D;IAAE,aAAa,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,CAarD;AAED;;;;GAIG;AACH,iBAAS,iBAAiB,CACxB,IAAI,EAAE,gBAAgB,EACtB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,GAC3C,kBAAkB,CASpB;AAED,iBAAS,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAyB7D;AAED,wBAAgB,cAAc,IAAI,OAAO,CA8ExC;AAED,eAAO,MAAM,WAAW;;;;;CAKvB,CAAC"}
|
package/dist/commands/refunds.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Command } from "commander";
|
|
2
2
|
import chalk from "chalk";
|
|
3
3
|
import ora from "ora";
|
|
4
|
+
import { formatMinorUnits } from "@vonpay/checkout-node";
|
|
4
5
|
import { requireApiKey } from "../config.js";
|
|
5
6
|
import { makeCheckoutClient } from "../client-factory.js";
|
|
6
7
|
import { parseMetadata } from "../utils/metadata.js";
|
|
@@ -67,7 +68,7 @@ function printRefund(refund) {
|
|
|
67
68
|
console.log(` Payment intent: ${refund.paymentIntent}`);
|
|
68
69
|
}
|
|
69
70
|
console.log(` Status: ${statusColor(refund.status)}`);
|
|
70
|
-
console.log(` Amount: ${(refund.amount
|
|
71
|
+
console.log(` Amount: ${formatMinorUnits(refund.amount, refund.currency)}`);
|
|
71
72
|
if (refund.reason) {
|
|
72
73
|
// Server echoes back the user-supplied reason; strip terminal escapes
|
|
73
74
|
// before printing so a malicious or accidentally-formatted reason can't
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"refunds.js","sourceRoot":"","sources":["../../src/commands/refunds.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"refunds.js","sourceRoot":"","sources":["../../src/commands/refunds.ts"],"names":[],"mappings":"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"}
|
|
@@ -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;
|
|
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,6 +1,7 @@
|
|
|
1
1
|
import { Command } from "commander";
|
|
2
2
|
import chalk from "chalk";
|
|
3
3
|
import ora from "ora";
|
|
4
|
+
import { formatMinorUnits } from "@vonpay/checkout-node";
|
|
4
5
|
import { makeCheckoutClient } from "../client-factory.js";
|
|
5
6
|
import { handleError } from "../utils/errors.js";
|
|
6
7
|
const makeClient = makeCheckoutClient;
|
|
@@ -93,7 +94,7 @@ export function sessionsCommand() {
|
|
|
93
94
|
: chalk.yellow;
|
|
94
95
|
console.log(` ID: ${session.id}`);
|
|
95
96
|
console.log(` Status: ${statusColor(session.status)}`);
|
|
96
|
-
console.log(` Amount: ${(session.amount
|
|
97
|
+
console.log(` Amount: ${formatMinorUnits(session.amount, session.currency)}`);
|
|
97
98
|
if (session.transactionId) {
|
|
98
99
|
console.log(` Transaction: ${session.transactionId}`);
|
|
99
100
|
}
|
|
@@ -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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trigger.d.ts","sourceRoot":"","sources":["../../src/commands/trigger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"trigger.d.ts","sourceRoot":"","sources":["../../src/commands/trigger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAsBpC,eAAO,MAAM,gBAAgB,oOAWnB,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,EAAE,SAAS,cAAc,EAG1D,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,cAAc,EACrB,KAAK,GAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAA6B,GACpD,OAAO,CAYT;AACD,KAAK,cAAc,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAMxD,UAAU,eAAe;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,cAAc,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;OAKG;IACH,UAAU,EAAE,IAAI,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B;AA2FD,wBAAgB,YAAY,CAC1B,KAAK,EAAE,cAAc,EACrB,IAAI,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAC/D,eAAe,CAiBjB;AAED,wBAAgB,cAAc,IAAI,OAAO,CA6HxC"}
|
package/dist/commands/trigger.js
CHANGED
|
@@ -3,6 +3,9 @@ import { createHmac, randomUUID } from "node:crypto";
|
|
|
3
3
|
import chalk from "chalk";
|
|
4
4
|
import ora from "ora";
|
|
5
5
|
import { requireApiKey } from "../config.js";
|
|
6
|
+
import { requireLiveConfirmation } from "../utils/live-key.js";
|
|
7
|
+
import { validateForwardTo } from "../utils/forward-to.js";
|
|
8
|
+
import { safeDisplay } from "../utils/sanitize.js";
|
|
6
9
|
// Real server-emitted event keys this local trigger can synthesize. The
|
|
7
10
|
// fictional `refund.created` was removed — the server emits `charge.refunded`.
|
|
8
11
|
//
|
|
@@ -161,13 +164,37 @@ export function triggerCommand() {
|
|
|
161
164
|
.option("--session-id <id>", "Custom session ID")
|
|
162
165
|
.option("--amount <cents>", "Amount in minor units", (v) => parseInt(v, 10))
|
|
163
166
|
.option("--currency <code>", "Currency code")
|
|
167
|
+
.option("--url-tunnel", "Allow a non-loopback --url (ngrok / Cloudflare Tunnel). Without it, --url must be this machine")
|
|
168
|
+
.option("--confirm-live", "Required when the loaded key is vp_sk_live_*: the event is signed with that LIVE key and sent to --url")
|
|
164
169
|
.action(async (event, opts) => {
|
|
165
170
|
if (!SUPPORTED_EVENTS.includes(event)) {
|
|
166
171
|
console.error(chalk.red(`Unknown event: ${event}\nSupported: ${SUPPORTED_EVENTS.join(", ")}`));
|
|
167
172
|
process.exit(1);
|
|
168
173
|
}
|
|
169
174
|
warnIfUnsubscribable(event);
|
|
175
|
+
// Same destination policy as `listen --forward-to`: this machine only,
|
|
176
|
+
// unless --url-tunnel. A signed synthetic event is a local-dev tool; a
|
|
177
|
+
// production endpoint that verifies with the API key would accept it as
|
|
178
|
+
// a genuine paid-order event.
|
|
179
|
+
const destination = validateForwardTo(String(opts.url ?? ""), {
|
|
180
|
+
allowTunnel: opts.urlTunnel === true,
|
|
181
|
+
flag: "--url",
|
|
182
|
+
tunnelFlag: "--url-tunnel",
|
|
183
|
+
});
|
|
184
|
+
if (!destination.ok) {
|
|
185
|
+
console.error(chalk.red(destination.reason));
|
|
186
|
+
process.exit(1);
|
|
187
|
+
}
|
|
188
|
+
if (destination.warning)
|
|
189
|
+
console.warn(chalk.yellow(destination.warning));
|
|
170
190
|
const apiKey = requireApiKey();
|
|
191
|
+
// A synthetic event signed with a LIVE key is a real signature from a
|
|
192
|
+
// real secret, sent to whatever --url says (any host, not only
|
|
193
|
+
// localhost). A receiver that verifies with that key — the documented
|
|
194
|
+
// local-dev stand-in — accepts it as genuine, so a live-key trigger
|
|
195
|
+
// aimed at a production endpoint forges a paid-order event. Same gate as
|
|
196
|
+
// the money commands, before anything is signed or sent.
|
|
197
|
+
requireLiveConfirmation(apiKey, opts, "trigger a test webhook event", `signs a synthetic event with your LIVE key and sends it to ${safeDisplay(String(opts.url))}`);
|
|
171
198
|
const payload = buildPayload(event, opts);
|
|
172
199
|
const body = JSON.stringify(payload);
|
|
173
200
|
// v1 webhook signature contract: ONE `x-vonpay-signature` header of
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trigger.js","sourceRoot":"","sources":["../../src/commands/trigger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"trigger.js","sourceRoot":"","sources":["../../src/commands/trigger.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"
|
|
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"}
|
package/dist/utils/errors.js
CHANGED
|
@@ -1,14 +1,45 @@
|
|
|
1
1
|
import chalk from "chalk";
|
|
2
2
|
import { VonPayError } from "@vonpay/checkout-node";
|
|
3
|
-
|
|
3
|
+
/**
|
|
4
|
+
* Secret shapes redacted from anything this CLI prints about an error.
|
|
5
|
+
*
|
|
6
|
+
* ⛔ Until 0.8.0 this matched `vp_sk_*` only, so a webhook signing secret, a
|
|
7
|
+
* session-signing secret or a Stripe key inside an error message (a failed
|
|
8
|
+
* config read, a proxy echoing a header) was printed in the clear — and CLI
|
|
9
|
+
* output lands in CI logs and pasted support threads.
|
|
10
|
+
*
|
|
11
|
+
* One of the lists `tests/scripts/secret-shape-parity.test.mjs` holds to the
|
|
12
|
+
* same definition of "a secret" as the SDK telemetry blocklists, the commit
|
|
13
|
+
* gate and the scrubbers. Add a shape there and here together.
|
|
14
|
+
*
|
|
15
|
+
* Publishable keys (`vp_pk_*`, `pk_*`) are deliberately NOT redacted: they are
|
|
16
|
+
* public by design (the commit gate does not block them either), and an error
|
|
17
|
+
* naming the publishable key that was rejected is useful.
|
|
18
|
+
*
|
|
19
|
+
* `vp_sk_live_…` contains `sk_live_…`. The Vonpay pattern runs first so the
|
|
20
|
+
* key is redacted as a Vonpay key; the output (`vp_sk_***`) is the same either
|
|
21
|
+
* way, and the Stripe pattern does not match it again.
|
|
22
|
+
*/
|
|
23
|
+
const SECRET_PATTERNS = [
|
|
24
|
+
[/vp_sk_(?:test|live)_[A-Za-z0-9_-]+/g, "vp_sk_***"],
|
|
25
|
+
[/ss_(?:test|live)_[A-Za-z0-9_-]+/g, "ss_***"],
|
|
26
|
+
[/whsec_[A-Za-z0-9_-]+/g, "whsec_***"],
|
|
27
|
+
[/sk_(?:test|live)_[A-Za-z0-9_-]+/g, "sk_***"],
|
|
28
|
+
[/rk_(?:test|live)_[A-Za-z0-9_-]+/g, "rk_***"],
|
|
29
|
+
];
|
|
4
30
|
function scrubSecrets(s) {
|
|
5
|
-
|
|
31
|
+
let out = s;
|
|
32
|
+
for (const [re, replacement] of SECRET_PATTERNS)
|
|
33
|
+
out = out.replace(re, replacement);
|
|
34
|
+
return out;
|
|
6
35
|
}
|
|
7
36
|
export function handleError(err) {
|
|
8
37
|
if (err instanceof VonPayError) {
|
|
9
|
-
|
|
38
|
+
// Server-supplied text is scrubbed too: it is echoed to a terminal and
|
|
39
|
+
// from there into logs, and nothing guarantees it never quotes a secret.
|
|
40
|
+
console.error(chalk.red(`Error: ${scrubSecrets(err.message)}`));
|
|
10
41
|
console.error(chalk.dim(` Code: ${err.code}`));
|
|
11
|
-
console.error(chalk.dim(` Fix: ${err.fix}`));
|
|
42
|
+
console.error(chalk.dim(` Fix: ${scrubSecrets(err.fix)}`));
|
|
12
43
|
if (err.refundInstead) {
|
|
13
44
|
// refund_target_is_duplicate: the SDK has already checked this is a
|
|
14
45
|
// transaction id (vp_tx_*), so it is safe to echo as a command.
|
package/dist/utils/errors.js.map
CHANGED
|
@@ -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,MAAM,
|
|
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,5 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* URL validation for `vonpay checkout listen --forward-to
|
|
2
|
+
* URL validation for `vonpay checkout listen --forward-to` and
|
|
3
|
+
* `vonpay checkout trigger --url` (same policy since 0.8.1; the flag names in
|
|
4
|
+
* messages are passed in).
|
|
3
5
|
*
|
|
4
6
|
* Default posture: loopback-only. Refuses any URL whose hostname is not
|
|
5
7
|
* one of the IPv4/IPv6 loopback aliases. This protects against the
|
|
@@ -30,5 +32,7 @@ export type ForwardToVerdict = {
|
|
|
30
32
|
*/
|
|
31
33
|
export declare function validateForwardTo(raw: string, opts: {
|
|
32
34
|
allowTunnel: boolean;
|
|
35
|
+
flag?: string;
|
|
36
|
+
tunnelFlag?: string;
|
|
33
37
|
}): ForwardToVerdict;
|
|
34
38
|
//# sourceMappingURL=forward-to.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"forward-to.d.ts","sourceRoot":"","sources":["../../src/utils/forward-to.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"forward-to.d.ts","sourceRoot":"","sources":["../../src/utils/forward-to.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAmBH,MAAM,MAAM,gBAAgB,GACxB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,GAAG,EAAE,GAAG,CAAC;IAAC,UAAU,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAC7D;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAElC;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,MAAM,EACX,IAAI,EAAE;IAAE,WAAW,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GACjE,gBAAgB,CA+ClB"}
|
package/dist/utils/forward-to.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* URL validation for `vonpay checkout listen --forward-to
|
|
2
|
+
* URL validation for `vonpay checkout listen --forward-to` and
|
|
3
|
+
* `vonpay checkout trigger --url` (same policy since 0.8.1; the flag names in
|
|
4
|
+
* messages are passed in).
|
|
3
5
|
*
|
|
4
6
|
* Default posture: loopback-only. Refuses any URL whose hostname is not
|
|
5
7
|
* one of the IPv4/IPv6 loopback aliases. This protects against the
|
|
@@ -36,8 +38,10 @@ const LOOPBACK_HOSTS = new Set([
|
|
|
36
38
|
* (the CLI surfaces `reason` to stderr and exits non-zero).
|
|
37
39
|
*/
|
|
38
40
|
export function validateForwardTo(raw, opts) {
|
|
41
|
+
const flag = opts.flag ?? "--forward-to";
|
|
42
|
+
const tunnelFlag = opts.tunnelFlag ?? "--forward-to-tunnel";
|
|
39
43
|
if (typeof raw !== "string" || raw.length === 0) {
|
|
40
|
-
return { ok: false, reason:
|
|
44
|
+
return { ok: false, reason: `${flag} URL is required` };
|
|
41
45
|
}
|
|
42
46
|
let url;
|
|
43
47
|
try {
|
|
@@ -46,13 +50,13 @@ export function validateForwardTo(raw, opts) {
|
|
|
46
50
|
catch {
|
|
47
51
|
return {
|
|
48
52
|
ok: false,
|
|
49
|
-
reason:
|
|
53
|
+
reason: `${flag} is not a parseable URL: ${truncate(raw)}`,
|
|
50
54
|
};
|
|
51
55
|
}
|
|
52
56
|
if (url.protocol !== "http:" && url.protocol !== "https:") {
|
|
53
57
|
return {
|
|
54
58
|
ok: false,
|
|
55
|
-
reason:
|
|
59
|
+
reason: `${flag} scheme must be http or https; got ${url.protocol}`,
|
|
56
60
|
};
|
|
57
61
|
}
|
|
58
62
|
const host = normalizeHost(url.hostname);
|
|
@@ -60,8 +64,8 @@ export function validateForwardTo(raw, opts) {
|
|
|
60
64
|
if (!isLoopback && !opts.allowTunnel) {
|
|
61
65
|
return {
|
|
62
66
|
ok: false,
|
|
63
|
-
reason:
|
|
64
|
-
`Re-run with
|
|
67
|
+
reason: `${flag} refuses non-loopback hosts by default (got ${url.hostname}). ` +
|
|
68
|
+
`Re-run with ${tunnelFlag} if forwarding through ngrok / Cloudflare Tunnel / etc.`,
|
|
65
69
|
};
|
|
66
70
|
}
|
|
67
71
|
// `0.0.0.0` is treated as loopback for dev convenience, but it's a
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"forward-to.js","sourceRoot":"","sources":["../../src/utils/forward-to.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"forward-to.js","sourceRoot":"","sources":["../../src/utils/forward-to.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC;IAC7B,WAAW;IACX,WAAW;IACX,SAAS,EAAE,sEAAsE;IACjF,KAAK;IACL,uEAAuE;IACvE,uEAAuE;IACvE,4BAA4B;IAC5B,OAAO;IACP,0DAA0D;IAC1D,kEAAkE;IAClE,6DAA6D;IAC7D,wBAAwB;IACxB,kBAAkB;IAClB,eAAe;CAChB,CAAC,CAAC;AAMH;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAC/B,GAAW,EACX,IAAkE;IAElE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,cAAc,CAAC;IACzC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,qBAAqB,CAAC;IAC5D,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,kBAAkB,EAAE,CAAC;IAC1D,CAAC;IAED,IAAI,GAAQ,CAAC;IACb,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;YACL,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,GAAG,IAAI,4BAA4B,QAAQ,CAAC,GAAG,CAAC,EAAE;SAC3D,CAAC;IACJ,CAAC;IAED,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1D,OAAO;YACL,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,GAAG,IAAI,sCAAsC,GAAG,CAAC,QAAQ,EAAE;SACpE,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACzC,MAAM,UAAU,GAAG,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAE5C,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACrC,OAAO;YACL,EAAE,EAAE,KAAK;YACT,MAAM,EACJ,GAAG,IAAI,+CAA+C,GAAG,CAAC,QAAQ,KAAK;gBACvE,eAAe,UAAU,yDAAyD;SACrF,CAAC;IACJ,CAAC;IAED,mEAAmE;IACnE,oEAAoE;IACpE,qEAAqE;IACrE,mEAAmE;IACnE,0CAA0C;IAC1C,MAAM,OAAO,GACX,IAAI,KAAK,SAAS;QAChB,CAAC,CAAC,gNAAgN;QAClN,CAAC,CAAC,SAAS,CAAC;IAEhB,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;AAChD,CAAC;AAED,SAAS,aAAa,CAAC,QAAgB;IACrC,mEAAmE;IACnE,8BAA8B;IAC9B,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACvD,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,QAAQ,CAAC,WAAW,EAAE,CAAC;AAChC,CAAC;AAED,SAAS,QAAQ,CAAC,CAAS;IACzB,OAAO,CAAC,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC;AACvD,CAAC"}
|
|
@@ -17,7 +17,7 @@ export async function forwardPayload(payload, opts) {
|
|
|
17
17
|
// CLI's re-sign posture. Unlike the old bare-hex shape, `t` IS folded
|
|
18
18
|
// into the HMAC per the v1 contract (`${t}.${body}`).
|
|
19
19
|
const t = Math.floor(Date.now() / 1000);
|
|
20
|
-
// v1 signature contract (vonpay
|
|
20
|
+
// v1 signature contract (https://docs.vonpay.com/integration/webhook-verification):
|
|
21
21
|
// ONE header `x-vonpay-signature: t=<unix-seconds>,v1=<hex>`, HMAC-SHA256
|
|
22
22
|
// over `${t}.${body}`. There is NO separate timestamp header. Rotation
|
|
23
23
|
// (multiple `v1=` entries) does not apply to this synthetic local loop —
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listen-forward.js","sourceRoot":"","sources":["../../src/utils/listen-forward.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AA6CzC;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,OAAgC,EAChC,IAAoB;IAEpB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAErC,iEAAiE;IACjE,mEAAmE;IACnE,qEAAqE;IACrE,qEAAqE;IACrE,+DAA+D;IAC/D,+DAA+D;IAC/D,kEAAkE;IAClE,sEAAsE;IACtE,sEAAsE;IACtE,sDAAsD;IACtD,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAExC,
|
|
1
|
+
{"version":3,"file":"listen-forward.js","sourceRoot":"","sources":["../../src/utils/listen-forward.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/live-key.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
import { isLiveKey } from "@vonpay/checkout-node";
|
|
2
|
+
export { isLiveKey };
|
|
2
3
|
export interface LiveGateOpts {
|
|
3
4
|
confirmLive?: boolean;
|
|
4
5
|
}
|
|
@@ -8,9 +9,14 @@ export interface LiveGateOpts {
|
|
|
8
9
|
* in `login.ts` — a deliberate friction step, not a TTY check (CI pseudo-TTYs
|
|
9
10
|
* are unreliable signals).
|
|
10
11
|
*
|
|
12
|
+
* `consequence` completes the sentence "Live key in use — <operation>
|
|
13
|
+
* <consequence>." printed when the caller DID confirm. It defaults to
|
|
14
|
+
* "is irreversible", which is right for money calls; pass a truthful one for
|
|
15
|
+
* anything else.
|
|
16
|
+
*
|
|
11
17
|
* Exits the process with code 1 on refusal so callers can `requireLiveConfirmation(...)`
|
|
12
18
|
* as an early guard at the top of an action handler.
|
|
13
19
|
*/
|
|
14
|
-
export declare function requireLiveConfirmation(key: string, opts: LiveGateOpts, operation: string): void;
|
|
20
|
+
export declare function requireLiveConfirmation(key: string, opts: LiveGateOpts, operation: string, consequence?: string): void;
|
|
15
21
|
export declare function warnLiveSecretFlag(key: string, flag: string): void;
|
|
16
22
|
//# sourceMappingURL=live-key.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"live-key.d.ts","sourceRoot":"","sources":["../../src/utils/live-key.ts"],"names":[],"mappings":"
|
|
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"}
|
package/dist/utils/live-key.js
CHANGED
|
@@ -1,21 +1,28 @@
|
|
|
1
1
|
import chalk from "chalk";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
import { isLiveKey } from "@vonpay/checkout-node";
|
|
3
|
+
// The ONE definition of "live key", owned by the SDK (3.0.0+). Re-exported so
|
|
4
|
+
// existing imports of `isLiveKey` from this module keep working; do not
|
|
5
|
+
// re-implement the prefix check here.
|
|
6
|
+
export { isLiveKey };
|
|
5
7
|
/**
|
|
6
8
|
* Refuse to run a destructive/irreversible operation on a live key unless the
|
|
7
9
|
* caller explicitly passes --confirm-live. Pattern mirrors --confirm-cli-exposure
|
|
8
10
|
* in `login.ts` — a deliberate friction step, not a TTY check (CI pseudo-TTYs
|
|
9
11
|
* are unreliable signals).
|
|
10
12
|
*
|
|
13
|
+
* `consequence` completes the sentence "Live key in use — <operation>
|
|
14
|
+
* <consequence>." printed when the caller DID confirm. It defaults to
|
|
15
|
+
* "is irreversible", which is right for money calls; pass a truthful one for
|
|
16
|
+
* anything else.
|
|
17
|
+
*
|
|
11
18
|
* Exits the process with code 1 on refusal so callers can `requireLiveConfirmation(...)`
|
|
12
19
|
* as an early guard at the top of an action handler.
|
|
13
20
|
*/
|
|
14
|
-
export function requireLiveConfirmation(key, opts, operation) {
|
|
21
|
+
export function requireLiveConfirmation(key, opts, operation, consequence = "is irreversible") {
|
|
15
22
|
if (!isLiveKey(key))
|
|
16
23
|
return;
|
|
17
24
|
if (opts.confirmLive) {
|
|
18
|
-
console.warn(chalk.yellow(`Live key in use — ${operation}
|
|
25
|
+
console.warn(chalk.yellow(`Live key in use — ${operation} ${consequence}. Proceeding because --confirm-live was passed.`));
|
|
19
26
|
return;
|
|
20
27
|
}
|
|
21
28
|
console.error(chalk.red(`Refusing to ${operation} with a live key. Pass --confirm-live to acknowledge this is intentional.`));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"live-key.js","sourceRoot":"","sources":["../../src/utils/live-key.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"live-key.js","sourceRoot":"","sources":["../../src/utils/live-key.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,8EAA8E;AAC9E,wEAAwE;AACxE,sCAAsC;AACtC,OAAO,EAAE,SAAS,EAAE,CAAC;AAMrB;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,uBAAuB,CACrC,GAAW,EACX,IAAkB,EAClB,SAAiB,EACjB,WAAW,GAAG,iBAAiB;IAE/B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;QAAE,OAAO;IAC5B,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,OAAO,CAAC,IAAI,CACV,KAAK,CAAC,MAAM,CACV,qBAAqB,SAAS,IAAI,WAAW,iDAAiD,CAC/F,CACF,CAAC;QACF,OAAO;IACT,CAAC;IACD,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,GAAG,CACP,eAAe,SAAS,2EAA2E,CACpG,CACF,CAAC;IACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,GAAW,EAAE,IAAY;IAC1D,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;QAAE,OAAO;IAC5B,OAAO,CAAC,IAAI,CACV,KAAK,CAAC,MAAM,CACV,oBAAoB,IAAI,mJAAmJ,CAC5K,CACF,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vonpay/checkout-cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.0",
|
|
4
4
|
"description": "Von Payments CLI — developer tools for checkout integration",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -15,14 +15,14 @@
|
|
|
15
15
|
"node": ">=20"
|
|
16
16
|
},
|
|
17
17
|
"dependencies": {
|
|
18
|
+
"@vonpay/checkout-node": "^3.2.0",
|
|
18
19
|
"commander": "^13.0.0",
|
|
19
20
|
"chalk": "^5.4.0",
|
|
20
|
-
"ora": "^8.2.0"
|
|
21
|
-
"@vonpay/checkout-node": "2.11.0"
|
|
21
|
+
"ora": "^8.2.0"
|
|
22
22
|
},
|
|
23
23
|
"devDependencies": {
|
|
24
24
|
"typescript": "^5.7.0",
|
|
25
|
-
"vitest": "^3.
|
|
25
|
+
"vitest": "^3.2.7"
|
|
26
26
|
},
|
|
27
27
|
"keywords": [
|
|
28
28
|
"vonpay",
|