agentcard 0.0.11 → 0.0.12
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.
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import chalk from "chalk";
|
|
2
|
+
import inquirer from "inquirer";
|
|
2
3
|
import open from "open";
|
|
3
4
|
import ora from "ora";
|
|
4
5
|
import { get, post } from "../../lib/api.js";
|
|
@@ -9,6 +10,47 @@ const TIMEOUT = 10 * 60 * 1000;
|
|
|
9
10
|
function formatDollars(cents) {
|
|
10
11
|
return `$${(cents / 100).toFixed(2)}`;
|
|
11
12
|
}
|
|
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
|
+
}
|
|
12
54
|
async function getAvailableDenominations() {
|
|
13
55
|
const res = await get("/api/cards/denominations");
|
|
14
56
|
return res.denominations;
|
|
@@ -21,10 +63,6 @@ function printAvailable(denominations) {
|
|
|
21
63
|
}
|
|
22
64
|
export async function createCard(amount) {
|
|
23
65
|
const denominations = await getAvailableDenominations();
|
|
24
|
-
if (denominations.length === 0) {
|
|
25
|
-
console.error(chalk.red("No cards available right now. Check back later."));
|
|
26
|
-
process.exit(1);
|
|
27
|
-
}
|
|
28
66
|
let dollars;
|
|
29
67
|
if (amount) {
|
|
30
68
|
dollars = parseInt(amount, 10);
|
|
@@ -32,11 +70,18 @@ export async function createCard(amount) {
|
|
|
32
70
|
console.error(chalk.red("Amount must be a positive integer (in dollars)."));
|
|
33
71
|
process.exit(1);
|
|
34
72
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
73
|
+
if (denominations.length > 0) {
|
|
74
|
+
const match = denominations.find((d) => d.amountCents === dollars * 100);
|
|
75
|
+
if (!match) {
|
|
76
|
+
console.error(chalk.red(`No $${dollars} cards available.`));
|
|
77
|
+
printAvailable(denominations);
|
|
78
|
+
process.exit(1);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
// No cards available — offer to request
|
|
83
|
+
await requestCustomCard(dollars * 100);
|
|
84
|
+
return;
|
|
40
85
|
}
|
|
41
86
|
}
|
|
42
87
|
else {
|
|
@@ -44,6 +89,16 @@ export async function createCard(amount) {
|
|
|
44
89
|
name: formatDollars(d.amountCents),
|
|
45
90
|
value: d.amountCents / 100,
|
|
46
91
|
}));
|
|
92
|
+
// Add custom request option
|
|
93
|
+
choices.push({
|
|
94
|
+
name: "Request custom amount",
|
|
95
|
+
value: -1,
|
|
96
|
+
});
|
|
97
|
+
if (denominations.length === 0) {
|
|
98
|
+
console.log(chalk.dim("No cards available right now."));
|
|
99
|
+
await requestCustomCard();
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
47
102
|
const answers = await prompt([
|
|
48
103
|
{
|
|
49
104
|
type: "list",
|
|
@@ -53,6 +108,10 @@ export async function createCard(amount) {
|
|
|
53
108
|
},
|
|
54
109
|
]);
|
|
55
110
|
dollars = Number(answers.dollars);
|
|
111
|
+
if (dollars === -1) {
|
|
112
|
+
await requestCustomCard();
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
56
115
|
}
|
|
57
116
|
const spinner = ora("Creating checkout session...").start();
|
|
58
117
|
let purchase;
|
|
@@ -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,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAoB,MAAM,cAAc,CAAC;AAElE,MAAM,aAAa,GAAG,IAAI,CAAC;AAC3B,MAAM,OAAO,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAiB/B,SAAS,aAAa,CAAC,KAAa;IAClC,OAAO,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;AACxC,CAAC;AAED,KAAK,UAAU,
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../../src/commands/cards/create.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,27 +2,42 @@ import chalk from "chalk";
|
|
|
2
2
|
import { get } from "../../lib/api.js";
|
|
3
3
|
export async function listCards() {
|
|
4
4
|
let cards;
|
|
5
|
+
let requests = [];
|
|
5
6
|
try {
|
|
6
7
|
const res = await get("/api/cards");
|
|
7
8
|
cards = res.cards;
|
|
9
|
+
requests = res.requests ?? [];
|
|
8
10
|
}
|
|
9
11
|
catch (err) {
|
|
10
12
|
console.error(chalk.red(`Failed to fetch cards: ${err instanceof Error ? err.message : "Unknown error"}`));
|
|
11
13
|
process.exit(1);
|
|
12
14
|
}
|
|
13
|
-
if (cards.length === 0) {
|
|
15
|
+
if (cards.length === 0 && requests.length === 0) {
|
|
14
16
|
console.log(chalk.yellow('No cards yet. Run `agentcard cards create` to get started.'));
|
|
15
17
|
return;
|
|
16
18
|
}
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
|
|
19
|
+
if (cards.length > 0) {
|
|
20
|
+
const idWidth = Math.max(4, ...cards.map((c) => c.id.length)) + 2;
|
|
21
|
+
const header = `${"ID".padEnd(idWidth)} ${"Last 4".padEnd(8)} ${"Amount".padEnd(10)} Purchased`;
|
|
22
|
+
console.log(chalk.bold(header));
|
|
23
|
+
console.log("-".repeat(header.length));
|
|
24
|
+
for (const card of cards) {
|
|
25
|
+
const amount = `$${(card.amountCents / 100).toFixed(2)}`;
|
|
26
|
+
const date = card.purchasedAt ? new Date(card.purchasedAt).toLocaleDateString() : "-";
|
|
27
|
+
console.log(`${card.id.padEnd(idWidth)} ${card.last4.padEnd(8)} ${amount.padEnd(10)} ${date}`);
|
|
28
|
+
}
|
|
29
|
+
console.log(chalk.dim(`\nRun \`agentcard cards details <id>\` to view full card details.`));
|
|
30
|
+
}
|
|
31
|
+
if (requests.length > 0) {
|
|
32
|
+
console.log("");
|
|
33
|
+
console.log(chalk.bold("Pending Requests"));
|
|
34
|
+
console.log("-".repeat(40));
|
|
35
|
+
for (const req of requests) {
|
|
36
|
+
const amount = `$${(req.amountCents / 100).toFixed(2)}`;
|
|
37
|
+
const date = new Date(req.createdAt).toLocaleDateString();
|
|
38
|
+
const status = req.status === "paid" ? chalk.green("paid") : chalk.yellow(req.status);
|
|
39
|
+
console.log(` ${amount.padEnd(10)} ${status.padEnd(20)} ${date}`);
|
|
40
|
+
}
|
|
25
41
|
}
|
|
26
|
-
console.log(chalk.dim(`\nRun \`agentcard cards details <id>\` to view full card details.`));
|
|
27
42
|
}
|
|
28
43
|
//# sourceMappingURL=list.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../src/commands/cards/list.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../src/commands/cards/list.ts"],"names":[],"mappings":"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"}
|