agentcard 0.0.16 → 0.0.17
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.
|
@@ -3,60 +3,13 @@ import inquirer from "inquirer";
|
|
|
3
3
|
import open from "open";
|
|
4
4
|
import ora from "ora";
|
|
5
5
|
import { get, post } from "../../lib/api.js";
|
|
6
|
-
import { prompt } from "../../lib/prompt.js";
|
|
7
6
|
import { printCardDetails } from "./details.js";
|
|
8
7
|
const POLL_INTERVAL = 2000;
|
|
9
8
|
const TIMEOUT = 10 * 60 * 1000;
|
|
10
9
|
function formatDollars(cents) {
|
|
11
10
|
return `$${(cents / 100).toFixed(2)}`;
|
|
12
11
|
}
|
|
13
|
-
async function requestCustomCard(amountCents) {
|
|
14
|
-
let cents = amountCents;
|
|
15
|
-
if (!cents) {
|
|
16
|
-
const { amount: rawAmount } = await inquirer.prompt([
|
|
17
|
-
{
|
|
18
|
-
type: "input",
|
|
19
|
-
name: "amount",
|
|
20
|
-
message: "Enter amount in dollars (e.g. 75):",
|
|
21
|
-
validate: (v) => {
|
|
22
|
-
const n = parseFloat(v);
|
|
23
|
-
if (isNaN(n) || n <= 0)
|
|
24
|
-
return "Enter a valid dollar amount";
|
|
25
|
-
if (!Number.isInteger(n))
|
|
26
|
-
return "Amount must be a whole dollar value (no cents)";
|
|
27
|
-
if (n < 20)
|
|
28
|
-
return "Minimum amount is $20";
|
|
29
|
-
if (n > 200)
|
|
30
|
-
return "Maximum amount is $200";
|
|
31
|
-
return true;
|
|
32
|
-
},
|
|
33
|
-
},
|
|
34
|
-
]);
|
|
35
|
-
cents = Math.round(parseFloat(rawAmount) * 100);
|
|
36
|
-
}
|
|
37
|
-
console.log("");
|
|
38
|
-
console.log(chalk.yellow("Note: Most cards are delivered quickly. During high demand, it may take up to 72 hours."));
|
|
39
|
-
console.log("");
|
|
40
|
-
const spinner = ora("Creating checkout session...").start();
|
|
41
|
-
try {
|
|
42
|
-
const res = await post("/api/cards/request", { amountCents: cents });
|
|
43
|
-
spinner.stop();
|
|
44
|
-
console.log("");
|
|
45
|
-
console.log(chalk.green(`Complete payment to request your ${formatDollars(cents)} card:`));
|
|
46
|
-
console.log("");
|
|
47
|
-
console.log(` ${res.url}`);
|
|
48
|
-
console.log("");
|
|
49
|
-
}
|
|
50
|
-
catch (err) {
|
|
51
|
-
spinner.fail(`Failed to submit request: ${err instanceof Error ? err.message : "Unknown error"}`);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
async function getAvailableDenominations() {
|
|
55
|
-
const res = await get("/api/cards/denominations");
|
|
56
|
-
return res.denominations;
|
|
57
|
-
}
|
|
58
12
|
export async function createCard(amount) {
|
|
59
|
-
const denominations = await getAvailableDenominations();
|
|
60
13
|
let dollars;
|
|
61
14
|
if (amount) {
|
|
62
15
|
dollars = parseInt(amount, 10);
|
|
@@ -64,41 +17,32 @@ export async function createCard(amount) {
|
|
|
64
17
|
console.error(chalk.red("Amount must be a positive integer (in dollars)."));
|
|
65
18
|
process.exit(1);
|
|
66
19
|
}
|
|
67
|
-
const match = denominations.find((d) => d.amountCents === dollars * 100);
|
|
68
|
-
if (!match) {
|
|
69
|
-
// Not in stock — automatically request as custom amount
|
|
70
|
-
await requestCustomCard(dollars * 100);
|
|
71
|
-
return;
|
|
72
|
-
}
|
|
73
20
|
}
|
|
74
21
|
else {
|
|
75
|
-
const
|
|
76
|
-
name: formatDollars(d.amountCents),
|
|
77
|
-
value: d.amountCents / 100,
|
|
78
|
-
}));
|
|
79
|
-
// Add custom request option
|
|
80
|
-
choices.push({
|
|
81
|
-
name: "Request custom amount",
|
|
82
|
-
value: -1,
|
|
83
|
-
});
|
|
84
|
-
if (denominations.length === 0) {
|
|
85
|
-
console.log(chalk.dim("No cards available right now."));
|
|
86
|
-
await requestCustomCard();
|
|
87
|
-
return;
|
|
88
|
-
}
|
|
89
|
-
const answers = await prompt([
|
|
22
|
+
const { rawAmount } = await inquirer.prompt([
|
|
90
23
|
{
|
|
91
|
-
type: "
|
|
92
|
-
name: "
|
|
93
|
-
message: "
|
|
94
|
-
|
|
24
|
+
type: "input",
|
|
25
|
+
name: "rawAmount",
|
|
26
|
+
message: "Enter card amount in dollars (multiples of $5, up to $200):",
|
|
27
|
+
validate: (v) => {
|
|
28
|
+
const n = parseFloat(v);
|
|
29
|
+
if (isNaN(n) || n <= 0)
|
|
30
|
+
return "Enter a valid dollar amount";
|
|
31
|
+
if (!Number.isInteger(n) || n % 5 !== 0)
|
|
32
|
+
return "Amount must be a multiple of $5 (e.g. 5, 10, 15, 20)";
|
|
33
|
+
if (n < 5)
|
|
34
|
+
return "Minimum amount is $5";
|
|
35
|
+
if (n > 200)
|
|
36
|
+
return "Maximum amount is $200";
|
|
37
|
+
return true;
|
|
38
|
+
},
|
|
95
39
|
},
|
|
96
40
|
]);
|
|
97
|
-
dollars =
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
41
|
+
dollars = parseInt(rawAmount, 10);
|
|
42
|
+
}
|
|
43
|
+
if (dollars < 5 || dollars > 200 || dollars % 5 !== 0) {
|
|
44
|
+
console.error(chalk.red("Amount must be a multiple of $5, between $5 and $200."));
|
|
45
|
+
process.exit(1);
|
|
102
46
|
}
|
|
103
47
|
const spinner = ora("Creating checkout session...").start();
|
|
104
48
|
let purchase;
|
|
@@ -112,10 +56,23 @@ export async function createCard(amount) {
|
|
|
112
56
|
process.exit(1);
|
|
113
57
|
}
|
|
114
58
|
spinner.stop();
|
|
59
|
+
if (purchase.manualFulfillment) {
|
|
60
|
+
console.log("");
|
|
61
|
+
console.log(chalk.yellow("Note: Cards are currently being fulfilled manually. After payment, your card will be available within 72 hours."));
|
|
62
|
+
console.log(chalk.yellow("Run `agentcard list` to check when your card is ready."));
|
|
63
|
+
console.log("");
|
|
64
|
+
}
|
|
115
65
|
console.log(`Checkout URL: ${purchase.url}`);
|
|
66
|
+
if (purchase.manualFulfillment) {
|
|
67
|
+
// In manual mode, don't auto-open or poll — just show the URL
|
|
68
|
+
console.log("");
|
|
69
|
+
console.log(chalk.green("Complete payment at the URL above."));
|
|
70
|
+
console.log(chalk.dim("Your card will appear in `agentcard list` once fulfilled (up to 72 hours)."));
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
116
73
|
console.log(chalk.blue("Opening browser for payment..."));
|
|
117
74
|
await open(purchase.url);
|
|
118
|
-
const paymentSpinner = ora("Waiting for payment...").start();
|
|
75
|
+
const paymentSpinner = ora("Waiting for payment and card provisioning...").start();
|
|
119
76
|
const deadline = Date.now() + TIMEOUT;
|
|
120
77
|
while (Date.now() < deadline) {
|
|
121
78
|
await new Promise((resolve) => setTimeout(resolve, POLL_INTERVAL));
|
|
@@ -134,6 +91,10 @@ export async function createCard(amount) {
|
|
|
134
91
|
}
|
|
135
92
|
return;
|
|
136
93
|
}
|
|
94
|
+
if (status.status === "failed") {
|
|
95
|
+
paymentSpinner.fail(chalk.red(status.error || "Card could not be provisioned. Your payment has been refunded."));
|
|
96
|
+
process.exit(1);
|
|
97
|
+
}
|
|
137
98
|
if (status.status === "expired") {
|
|
138
99
|
paymentSpinner.fail("Payment session expired. Please try again.");
|
|
139
100
|
process.exit(1);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../../src/commands/cards/create.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../../src/commands/cards/create.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.js
CHANGED
|
@@ -19,8 +19,8 @@ Examples:
|
|
|
19
19
|
|
|
20
20
|
$ agentcard signup --email you@example.com Sign up (AI-friendly, no browser)
|
|
21
21
|
$ agentcard signup Sign up (interactive prompt)
|
|
22
|
-
$ agentcard create --amount 25 Buy a $25
|
|
23
|
-
$ agentcard create
|
|
22
|
+
$ agentcard create --amount 25 Buy a $25 prepaid Visa card
|
|
23
|
+
$ agentcard create Purchase a card (prompts for amount, multiples of $5)
|
|
24
24
|
$ agentcard list List your cards
|
|
25
25
|
$ agentcard details <id> Reveal full card number, CVV, expiry
|
|
26
26
|
$ agentcard balance <id> Check card denomination
|
|
@@ -54,8 +54,8 @@ program
|
|
|
54
54
|
// -- Cards ------------------------------------------------------------------
|
|
55
55
|
program
|
|
56
56
|
.command("create")
|
|
57
|
-
.description("Purchase a prepaid card
|
|
58
|
-
.option("--amount <dollars>", "Card amount in dollars (e.g. 10, 25, 50)")
|
|
57
|
+
.description("Purchase a prepaid Visa card (multiples of $5, $5-$200)")
|
|
58
|
+
.option("--amount <dollars>", "Card amount in dollars, must be a multiple of $5 (e.g. 5, 10, 25, 50)")
|
|
59
59
|
.action((opts) => createCard(opts.amount));
|
|
60
60
|
program
|
|
61
61
|
.command("list")
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,WAAW,CAAC;KACjB,WAAW,CAAC,0CAA0C,CAAC;KACvD,OAAO,CAAC,eAAe,EAAE,CAAC;KAC1B,kBAAkB,EAAE;KACpB,WAAW,CACV,OAAO,EACP;;;;;;;;;;;;;;;;;CAiBH,CACE,CAAC;AAEJ,8EAA8E;AAE9E,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,mBAAmB,CAAC;KAChC,MAAM,CAAC,iBAAiB,EAAE,8DAA8D,CAAC;KACzF,MAAM,CAAC,MAAM,CAAC,CAAC;AAElB,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,kBAAkB,CAAC;KAC/B,MAAM,CAAC,iBAAiB,EAAE,8DAA8D,CAAC;KACzF,MAAM,CAAC,MAAM,CAAC,CAAC;AAElB,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,qCAAqC,CAAC;KAClD,MAAM,CAAC,MAAM,CAAC,CAAC;AAElB,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,mCAAmC,CAAC;KAChD,MAAM,CAAC,MAAM,CAAC,CAAC;AAElB,8EAA8E;AAE9E,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,WAAW,CAAC;KACjB,WAAW,CAAC,0CAA0C,CAAC;KACvD,OAAO,CAAC,eAAe,EAAE,CAAC;KAC1B,kBAAkB,EAAE;KACpB,WAAW,CACV,OAAO,EACP;;;;;;;;;;;;;;;;;CAiBH,CACE,CAAC;AAEJ,8EAA8E;AAE9E,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,mBAAmB,CAAC;KAChC,MAAM,CAAC,iBAAiB,EAAE,8DAA8D,CAAC;KACzF,MAAM,CAAC,MAAM,CAAC,CAAC;AAElB,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,kBAAkB,CAAC;KAC/B,MAAM,CAAC,iBAAiB,EAAE,8DAA8D,CAAC;KACzF,MAAM,CAAC,MAAM,CAAC,CAAC;AAElB,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,qCAAqC,CAAC;KAClD,MAAM,CAAC,MAAM,CAAC,CAAC;AAElB,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,mCAAmC,CAAC;KAChD,MAAM,CAAC,MAAM,CAAC,CAAC;AAElB,8EAA8E;AAE9E,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,yDAAyD,CAAC;KACtE,MAAM,CAAC,oBAAoB,EAAE,uEAAuE,CAAC;KACrG,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAE7C,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,+BAA+B,CAAC;KAC5C,MAAM,CAAC,SAAS,CAAC,CAAC;AAErB,OAAO;KACJ,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,6CAA6C,CAAC;KAC1D,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;KAC3B,MAAM,CAAC,WAAW,CAAC,CAAC;AAEvB,OAAO;KACJ,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,yBAAyB,CAAC;KACtC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;KAC3B,MAAM,CAAC,OAAO,CAAC,CAAC;AAEnB,8EAA8E;AAE9E,OAAO;KACJ,OAAO,CAAC,gBAAgB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;KAC3C,WAAW,CAAC,yBAAyB,CAAC;KACtC,cAAc,CAAC,eAAe,EAAE,oBAAoB,CAAC;KACrD,cAAc,CAAC,oBAAoB,EAAE,4BAA4B,CAAC;KAClE,MAAM,CAAC,iBAAiB,EAAE,8CAA8C,CAAC;KACzE,MAAM,CAAC,cAAc,EAAE,oDAAoD,CAAC;KAC5E,MAAM,CAAC,mBAAmB,EAAE,yCAAyC,CAAC;KACtE,MAAM,CAAC,aAAa,CAAC,CAAC;AAEzB,OAAO,EAAE,OAAO,EAAE,CAAC"}
|