@sangria-sdk/cli 0.1.5 → 0.1.7
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 +8 -4
- package/dist/cli.js +9 -5
- package/dist/cli.js.map +1 -1
- package/dist/commands/auth.js +2 -2
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/buy.js +2 -2
- package/dist/commands/buy.js.map +1 -1
- package/dist/commands/discover.d.ts +1 -4
- package/dist/commands/discover.d.ts.map +1 -1
- package/dist/commands/discover.js +10 -78
- package/dist/commands/discover.js.map +1 -1
- package/dist/commands/orders.d.ts +6 -0
- package/dist/commands/orders.d.ts.map +1 -0
- package/dist/commands/orders.js +39 -0
- package/dist/commands/orders.js.map +1 -0
- package/dist/commands/settings.js +16 -7
- package/dist/commands/settings.js.map +1 -1
- package/dist/commands/topup.js +1 -1
- package/dist/commands/topup.js.map +1 -1
- package/dist/lib/args.d.ts.map +1 -1
- package/dist/lib/args.js +3 -4
- package/dist/lib/args.js.map +1 -1
- package/dist/lib/client.d.ts +5 -1
- package/dist/lib/client.d.ts.map +1 -1
- package/dist/lib/client.js +23 -16
- package/dist/lib/client.js.map +1 -1
- package/dist/lib/help.d.ts.map +1 -1
- package/dist/lib/help.js +13 -10
- package/dist/lib/help.js.map +1 -1
- package/dist/lib/money.d.ts +0 -1
- package/dist/lib/money.d.ts.map +1 -1
- package/dist/lib/money.js +0 -8
- package/dist/lib/money.js.map +1 -1
- package/dist/lib/output.d.ts +2 -1
- package/dist/lib/output.d.ts.map +1 -1
- package/dist/lib/output.js +30 -1
- package/dist/lib/output.js.map +1 -1
- package/dist/types/api.d.ts +17 -6
- package/dist/types/api.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -34,8 +34,11 @@ sangria settings show
|
|
|
34
34
|
sangria settings set-phone "(415) 555-2671"
|
|
35
35
|
sangria settings update --postal-code 94105
|
|
36
36
|
sangria settings update --line1 "123 Market St" --city "San Francisco" --state CA --postal-code 94105
|
|
37
|
-
sangria discover
|
|
37
|
+
sangria discover --url https://www.amazon.com/dp/B0XXXXXXXX
|
|
38
38
|
sangria buy <discovery_id> <sku>
|
|
39
|
+
sangria orders
|
|
40
|
+
sangria orders --limit 50
|
|
41
|
+
sangria orders --cursor <next_cursor>
|
|
39
42
|
sangria topup --amount 25.00
|
|
40
43
|
sangria topup confirm <topup_id> --code 123456
|
|
41
44
|
```
|
|
@@ -43,11 +46,12 @@ sangria topup confirm <topup_id> --code 123456
|
|
|
43
46
|
Add `--json` for machine-readable output:
|
|
44
47
|
|
|
45
48
|
```bash
|
|
46
|
-
sangria discover
|
|
47
|
-
|
|
48
|
-
--json
|
|
49
|
+
sangria discover --url https://www.amazon.com/dp/B0XXXXXXXX --json
|
|
50
|
+
sangria orders --json
|
|
49
51
|
```
|
|
50
52
|
|
|
53
|
+
`sangria orders` returns the 20 most recent orders by default. Pass `--limit <n>` to fetch a different page size — the cap is 100, and higher values are silently clamped. If the response has `has_more: true`, pass its `next_cursor` value with `--cursor` to fetch the next page.
|
|
54
|
+
|
|
51
55
|
Optional environment:
|
|
52
56
|
|
|
53
57
|
```bash
|
package/dist/cli.js
CHANGED
|
@@ -4,6 +4,7 @@ import { runAuthCommand } from "./commands/auth.js";
|
|
|
4
4
|
import { runBalanceCommand } from "./commands/balance.js";
|
|
5
5
|
import { runBuyCommand } from "./commands/buy.js";
|
|
6
6
|
import { runDiscoverCommand } from "./commands/discover.js";
|
|
7
|
+
import { runOrdersCommand } from "./commands/orders.js";
|
|
7
8
|
import { runSettingsCommand } from "./commands/settings.js";
|
|
8
9
|
import { runTopupCommand } from "./commands/topup.js";
|
|
9
10
|
import { resolveConfig } from "./lib/config.js";
|
|
@@ -47,17 +48,20 @@ async function main(argv) {
|
|
|
47
48
|
return runBalanceCommand(ctx);
|
|
48
49
|
}
|
|
49
50
|
if (group === "discover") {
|
|
50
|
-
return runDiscoverCommand(
|
|
51
|
+
return runDiscoverCommand({
|
|
51
52
|
url: stringFlag(parsed.flags, "url"),
|
|
52
|
-
reasoning: stringFlag(parsed.flags, "reasoning"),
|
|
53
53
|
context: stringFlag(parsed.flags, "context"),
|
|
54
|
-
minPrice: stringFlag(parsed.flags, "min-price"),
|
|
55
|
-
maxPrice: stringFlag(parsed.flags, "max-price"),
|
|
56
54
|
}, ctx);
|
|
57
55
|
}
|
|
58
56
|
if (group === "buy") {
|
|
59
57
|
return runBuyCommand(subcommand, args[0], ctx);
|
|
60
58
|
}
|
|
59
|
+
if (group === "orders") {
|
|
60
|
+
return runOrdersCommand(subcommand, args, {
|
|
61
|
+
limit: stringFlag(parsed.flags, "limit"),
|
|
62
|
+
cursor: stringFlag(parsed.flags, "cursor"),
|
|
63
|
+
}, ctx);
|
|
64
|
+
}
|
|
61
65
|
if (group === "topup") {
|
|
62
66
|
return runTopupCommand(subcommand, args, {
|
|
63
67
|
amount: stringFlag(parsed.flags, "amount"),
|
|
@@ -74,7 +78,7 @@ async function main(argv) {
|
|
|
74
78
|
country: stringFlag(parsed.flags, "country"),
|
|
75
79
|
}, ctx);
|
|
76
80
|
}
|
|
77
|
-
throw new CliError(`Unknown command: ${parsed.command.join(" ")}
|
|
81
|
+
throw new CliError(`Unknown command: ${parsed.command.join(" ")}. Run 'sangria --help' for available commands.`, EXIT.usage);
|
|
78
82
|
}
|
|
79
83
|
const argv = process.argv.slice(2);
|
|
80
84
|
const wantsJson = argv.includes("--json");
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAEzD,KAAK,UAAU,IAAI,CAAC,IAAc;IAChC,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAElD,IAAI,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC;QACtC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,UAAU,EAAE,IAAI,CAAC,CAAC;QAC1C,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QACjC,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC;QACjC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC;QAC3C,OAAO,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC;KAC9C,CAAC,CAAC;IAEH,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,MAAM,CAAC,OAAO,KAAK,MAAM,CAAC,aAAa,KAAK,CAAC,CAAC;QAChF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC;IACnG,CAAC;IAED,MAAM,GAAG,GAAmB,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IACtD,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC;IAEpD,qEAAqE;IACrE,sEAAsE;IACtE,uEAAuE;IACvE,uDAAuD;IACvD,IAAI,MAAM,CAAC,YAAY,KAAK,KAAK,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QACtD,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,sHAAsH,CACvH,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QACrB,OAAO,cAAc,CAAC,UAAU,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IAC/C,CAAC;IAED,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,iBAAiB,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAED,IAAI,KAAK,KAAK,UAAU,EAAE,CAAC;QACzB,OAAO,kBAAkB,CAAC;YACxB,GAAG,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC;YACpC,OAAO,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC;SAC7C,EAAE,GAAG,CAAC,CAAC;IACV,CAAC;IAED,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;QACpB,OAAO,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACjD,CAAC;IAED,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvB,OAAO,gBAAgB,CAAC,UAAU,EAAE,IAAI,EAAE;YACxC,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC;YACxC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC;SAC3C,EAAE,GAAG,CAAC,CAAC;IACV,CAAC;IAED,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;QACtB,OAAO,eAAe,CAAC,UAAU,EAAE,IAAI,EAAE;YACvC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC;YAC1C,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC;SACvC,EAAE,GAAG,CAAC,CAAC;IACV,CAAC;IAED,IAAI,KAAK,KAAK,UAAU,EAAE,CAAC;QACzB,OAAO,kBAAkB,CAAC,UAAU,EAAE,IAAI,EAAE;YAC1C,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC;YACxC,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC;YACxC,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC;YACtC,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC;YACxC,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,aAAa,CAAC;YACnD,OAAO,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC;SAC7C,EAAE,GAAG,CAAC,CAAC;IACV,CAAC;IAED,MAAM,IAAI,QAAQ,CAAC,oBAAoB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,gDAAgD,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AAC/H,CAAC;AAED,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAE1C,IAAI,CAAC,IAAI,CAAC;KACP,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;IACb,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;AAC1B,CAAC,CAAC;KACD,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;IACxB,IAAI,KAAK,YAAY,QAAQ,EAAE,CAAC;QAC9B,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;gBACrC,KAAK,EAAE,KAAK,CAAC,OAAO;gBACpB,SAAS,EAAE,KAAK,CAAC,QAAQ;gBACzB,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACrD,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;YAC3C,IAAI,KAAK,CAAC,OAAO;gBAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAChF,CAAC;QACD,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;QAClC,OAAO;IACT,CAAC;IACD,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;YACrC,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;YAC7D,SAAS,EAAE,IAAI,CAAC,OAAO;SACxB,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACtF,CAAC;IACD,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC;AAClC,CAAC,CAAC;KACD,OAAO,CAAC,GAAG,EAAE;IACZ,IAAI,sBAAsB,EAAE,EAAE,CAAC;QAC7B,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,yFAAyF,CAC1F,CAAC;IACJ,CAAC;AACH,CAAC,CAAC,CAAC"}
|
package/dist/commands/auth.js
CHANGED
|
@@ -18,13 +18,13 @@ export async function runAuthCommand(subcommand, args, ctx) {
|
|
|
18
18
|
async function setAuth(args, ctx) {
|
|
19
19
|
const apiKey = args[0];
|
|
20
20
|
if (!apiKey)
|
|
21
|
-
throw new CliError("Missing api_key.", EXIT.usage);
|
|
21
|
+
throw new CliError("Missing api_key. Usage: sangria auth set <api_key>", EXIT.usage);
|
|
22
22
|
const stored = await readStoredConfig();
|
|
23
23
|
await writeStoredConfig({ ...stored, apiKey });
|
|
24
24
|
if (ctx.json)
|
|
25
25
|
printJson({ saved: true, config_path: ctx.config.configPath });
|
|
26
26
|
else
|
|
27
|
-
process.stdout.write(`
|
|
27
|
+
process.stdout.write(`API key saved. Run 'sangria auth status' to verify.\n`);
|
|
28
28
|
return EXIT.success;
|
|
29
29
|
}
|
|
30
30
|
async function unsetAuth(ctx) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1F,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAG7C,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,UAA8B,EAAE,IAAc,EAAE,GAAmB;IACtG,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,KAAK;YACR,OAAO,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC5B,KAAK,OAAO;YACV,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;QACxB,KAAK,QAAQ;YACX,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC;QACzB;YACE,MAAM,IAAI,QAAQ,CAAC,sCAAsC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3E,CAAC;AACH,CAAC;AAED,KAAK,UAAU,OAAO,CAAC,IAAc,EAAE,GAAmB;IACxD,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACvB,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/buy.js
CHANGED
|
@@ -3,9 +3,9 @@ import { CliError, EXIT } from "../lib/errors.js";
|
|
|
3
3
|
import { printBuy, printJson } from "../lib/output.js";
|
|
4
4
|
export async function runBuyCommand(discoveryId, sku, ctx) {
|
|
5
5
|
if (!discoveryId)
|
|
6
|
-
throw new CliError("Missing discovery_id.", EXIT.usage);
|
|
6
|
+
throw new CliError("Missing discovery_id. Run 'sangria discover --url <product-url>' first to get a discovery_id.", EXIT.usage);
|
|
7
7
|
if (!sku)
|
|
8
|
-
throw new CliError("Missing sku.", EXIT.usage);
|
|
8
|
+
throw new CliError("Missing sku. The sku comes from the discover output. Usage: sangria buy <discovery_id> <sku>", EXIT.usage);
|
|
9
9
|
const client = new SangriaAgentClient(ctx.config);
|
|
10
10
|
const result = await client.buy(discoveryId, sku);
|
|
11
11
|
if (ctx.json)
|
package/dist/commands/buy.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buy.js","sourceRoot":"","sources":["../../src/commands/buy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAGvD,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,WAA+B,EAC/B,GAAuB,EACvB,GAAmB;IAEnB,IAAI,CAAC,WAAW;QAAE,MAAM,IAAI,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"buy.js","sourceRoot":"","sources":["../../src/commands/buy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAGvD,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,WAA+B,EAC/B,GAAuB,EACvB,GAAmB;IAEnB,IAAI,CAAC,WAAW;QAAE,MAAM,IAAI,QAAQ,CAAC,+FAA+F,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAClJ,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,QAAQ,CAAC,8FAA8F,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAEzI,MAAM,MAAM,GAAG,IAAI,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IAElD,IAAI,GAAG,CAAC,IAAI;QAAE,SAAS,CAAC,MAAM,CAAC,CAAC;;QAC3B,QAAQ,CAAC,MAAM,CAAC,CAAC;IAEtB,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;AACtE,CAAC"}
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
import type { CommandContext } from "./types.js";
|
|
2
|
-
export declare function runDiscoverCommand(
|
|
2
|
+
export declare function runDiscoverCommand(options: {
|
|
3
3
|
url?: string;
|
|
4
|
-
reasoning?: string;
|
|
5
4
|
context?: string;
|
|
6
|
-
minPrice?: string;
|
|
7
|
-
maxPrice?: string;
|
|
8
5
|
}, ctx: CommandContext): Promise<number>;
|
|
9
6
|
//# sourceMappingURL=discover.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discover.d.ts","sourceRoot":"","sources":["../../src/commands/discover.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"discover.d.ts","sourceRoot":"","sources":["../../src/commands/discover.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,wBAAsB,kBAAkB,CACtC,OAAO,EAAE;IACP,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,EACD,GAAG,EAAE,cAAc,GAClB,OAAO,CAAC,MAAM,CAAC,CAyBjB"}
|
|
@@ -1,69 +1,21 @@
|
|
|
1
1
|
import { SangriaAgentClient } from "../lib/client.js";
|
|
2
2
|
import { CliError, EXIT } from "../lib/errors.js";
|
|
3
|
-
import { dollarsToMicrounits } from "../lib/money.js";
|
|
4
3
|
import { addDisplayFieldsToDiscover, printDiscover, printJson } from "../lib/output.js";
|
|
5
|
-
export async function runDiscoverCommand(
|
|
6
|
-
//
|
|
7
|
-
//
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
// ambiguity the skill design avoids.
|
|
11
|
-
if (options.url !== undefined) {
|
|
12
|
-
// Trim + non-empty check before any strict-mutex error so `--url ""`
|
|
13
|
-
// (or `--url " "`) surfaces a clear usage error instead of slipping
|
|
14
|
-
// back into keyword mode and emitting a confusing `invalid_intent`
|
|
15
|
-
// from the backend.
|
|
16
|
-
const url = options.url.trim();
|
|
17
|
-
if (url === "") {
|
|
18
|
-
throw new CliError("--url must be a non-empty product URL.", EXIT.usage);
|
|
19
|
-
}
|
|
20
|
-
if (intent !== undefined) {
|
|
21
|
-
throw new CliError("intent is not supported in URL mode.", EXIT.usage);
|
|
22
|
-
}
|
|
23
|
-
if (options.reasoning !== undefined) {
|
|
24
|
-
throw new CliError("--reasoning is not supported in URL mode.", EXIT.usage);
|
|
25
|
-
}
|
|
26
|
-
if (options.context !== undefined) {
|
|
27
|
-
throw new CliError("--context is not supported in URL mode.", EXIT.usage);
|
|
28
|
-
}
|
|
29
|
-
if (options.minPrice !== undefined) {
|
|
30
|
-
throw new CliError("--min-price is not supported in URL mode.", EXIT.usage);
|
|
31
|
-
}
|
|
32
|
-
if (options.maxPrice !== undefined) {
|
|
33
|
-
throw new CliError("--max-price is not supported in URL mode.", EXIT.usage);
|
|
34
|
-
}
|
|
35
|
-
const client = new SangriaAgentClient(ctx.config);
|
|
36
|
-
const result = await client.discover({ url });
|
|
37
|
-
const displayResult = addDisplayFieldsToDiscover(result);
|
|
38
|
-
if (ctx.json)
|
|
39
|
-
printJson(displayResult);
|
|
40
|
-
else
|
|
41
|
-
printDiscover(displayResult);
|
|
42
|
-
return EXIT.success;
|
|
4
|
+
export async function runDiscoverCommand(options, ctx) {
|
|
5
|
+
// Discovery resolves a single product from its URL. --url is required;
|
|
6
|
+
// --context is optional metadata forwarded with the lookup.
|
|
7
|
+
if (options.url === undefined) {
|
|
8
|
+
throw new CliError("Missing --url. Usage: sangria discover --url <product-url>", EXIT.usage);
|
|
43
9
|
}
|
|
44
|
-
|
|
45
|
-
if (
|
|
46
|
-
throw new CliError("
|
|
47
|
-
if (!options.reasoning)
|
|
48
|
-
throw new CliError("Missing --reasoning <text>.", EXIT.usage);
|
|
49
|
-
const context = options.context === undefined ? undefined : parseContext(options.context);
|
|
50
|
-
// Dollar inputs validated client-side before conversion — gives a clear
|
|
51
|
-
// usage error instead of a backend `invalid_price_range`. Both bounds
|
|
52
|
-
// optional; when both supplied, min ≤ max is also enforced server-side.
|
|
53
|
-
const minPriceMicrounits = parseDollarFlag(options.minPrice, "min-price");
|
|
54
|
-
const maxPriceMicrounits = parseDollarFlag(options.maxPrice, "max-price");
|
|
55
|
-
if (minPriceMicrounits !== undefined &&
|
|
56
|
-
maxPriceMicrounits !== undefined &&
|
|
57
|
-
minPriceMicrounits > maxPriceMicrounits) {
|
|
58
|
-
throw new CliError("--min-price must be ≤ --max-price.", EXIT.usage);
|
|
10
|
+
const url = options.url.trim();
|
|
11
|
+
if (url === "") {
|
|
12
|
+
throw new CliError("--url must be a non-empty product URL.", EXIT.usage);
|
|
59
13
|
}
|
|
14
|
+
const context = options.context === undefined ? undefined : parseContext(options.context);
|
|
60
15
|
const client = new SangriaAgentClient(ctx.config);
|
|
61
16
|
const result = await client.discover({
|
|
62
|
-
|
|
63
|
-
reasoning: options.reasoning,
|
|
17
|
+
url,
|
|
64
18
|
...(context === undefined ? {} : { context }),
|
|
65
|
-
...(minPriceMicrounits === undefined ? {} : { min_price_microunits: minPriceMicrounits }),
|
|
66
|
-
...(maxPriceMicrounits === undefined ? {} : { max_price_microunits: maxPriceMicrounits }),
|
|
67
19
|
});
|
|
68
20
|
const displayResult = addDisplayFieldsToDiscover(result);
|
|
69
21
|
if (ctx.json)
|
|
@@ -80,24 +32,4 @@ function parseContext(input) {
|
|
|
80
32
|
throw new CliError("--context must be valid JSON.", EXIT.usage);
|
|
81
33
|
}
|
|
82
34
|
}
|
|
83
|
-
// parseDollarFlag accepts a non-negative decimal-dollar string like "20",
|
|
84
|
-
// "19.99", or "0", and returns the equivalent int microunits. Returns
|
|
85
|
-
// undefined when the flag was omitted so the caller can spread-omit the
|
|
86
|
-
// field from the request body.
|
|
87
|
-
//
|
|
88
|
-
// Strict regex (digits, optional `.digits` fraction) — parseFloat alone
|
|
89
|
-
// would silently accept trailing garbage like "20abc" → 20, hex literals
|
|
90
|
-
// like "0xff" → 0, and exponent notation like "1e3" → 1000. Dollar
|
|
91
|
-
// amounts don't need any of those, so we reject them explicitly to
|
|
92
|
-
// surface a clean usage error instead of charging the user something they
|
|
93
|
-
// didn't write.
|
|
94
|
-
const dollarFlagPattern = /^\d+(\.\d+)?$/;
|
|
95
|
-
function parseDollarFlag(input, flagName) {
|
|
96
|
-
if (input === undefined)
|
|
97
|
-
return undefined;
|
|
98
|
-
if (!dollarFlagPattern.test(input)) {
|
|
99
|
-
throw new CliError(`--${flagName} must be a non-negative decimal number like 20 or 19.99 (got ${JSON.stringify(input)}).`, EXIT.usage);
|
|
100
|
-
}
|
|
101
|
-
return dollarsToMicrounits(parseFloat(input));
|
|
102
|
-
}
|
|
103
35
|
//# sourceMappingURL=discover.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discover.js","sourceRoot":"","sources":["../../src/commands/discover.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"discover.js","sourceRoot":"","sources":["../../src/commands/discover.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,0BAA0B,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAGxF,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,OAGC,EACD,GAAmB;IAEnB,uEAAuE;IACvE,4DAA4D;IAC5D,IAAI,OAAO,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;QAC9B,MAAM,IAAI,QAAQ,CAAC,4DAA4D,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/F,CAAC;IACD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;IAC/B,IAAI,GAAG,KAAK,EAAE,EAAE,CAAC;QACf,MAAM,IAAI,QAAQ,CAAC,wCAAwC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3E,CAAC;IAED,MAAM,OAAO,GACX,OAAO,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAE5E,MAAM,MAAM,GAAG,IAAI,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC;QACnC,GAAG;QACH,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC;KAC9C,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,0BAA0B,CAAC,MAAM,CAAC,CAAC;IACzD,IAAI,GAAG,CAAC,IAAI;QAAE,SAAS,CAAC,aAAa,CAAC,CAAC;;QAClC,aAAa,CAAC,aAAa,CAAC,CAAC;IAElC,OAAO,IAAI,CAAC,OAAO,CAAC;AACtB,CAAC;AAED,SAAS,YAAY,CAAC,KAAa;IACjC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,QAAQ,CAAC,+BAA+B,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAClE,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orders.d.ts","sourceRoot":"","sources":["../../src/commands/orders.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,wBAAsB,gBAAgB,CACpC,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,IAAI,EAAE,MAAM,EAAE,EACd,KAAK,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,EAC1C,GAAG,EAAE,cAAc,GAClB,OAAO,CAAC,MAAM,CAAC,CAcjB"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { SangriaAgentClient } from "../lib/client.js";
|
|
2
|
+
import { CliError, EXIT } from "../lib/errors.js";
|
|
3
|
+
import { printJson, printOrders } from "../lib/output.js";
|
|
4
|
+
export async function runOrdersCommand(subcommand, args, flags, ctx) {
|
|
5
|
+
if (subcommand !== undefined || args.length > 0) {
|
|
6
|
+
throw new CliError("Usage: sangria orders [--limit <n>] [--cursor <cursor>] [--json]", EXIT.usage);
|
|
7
|
+
}
|
|
8
|
+
const limit = normalizeLimitFlag(flags.limit);
|
|
9
|
+
const cursor = normalizeCursorFlag(flags.cursor);
|
|
10
|
+
const client = new SangriaAgentClient(ctx.config);
|
|
11
|
+
const result = await client.orders({ limit, cursor });
|
|
12
|
+
if (ctx.json)
|
|
13
|
+
printJson(result);
|
|
14
|
+
else
|
|
15
|
+
printOrders(result);
|
|
16
|
+
return EXIT.success;
|
|
17
|
+
}
|
|
18
|
+
function normalizeLimitFlag(raw) {
|
|
19
|
+
if (raw === undefined)
|
|
20
|
+
return undefined;
|
|
21
|
+
if (!/^[0-9]+$/.test(raw)) {
|
|
22
|
+
throw new CliError("Invalid --limit. Use a positive integer.", EXIT.usage);
|
|
23
|
+
}
|
|
24
|
+
const limit = Number(raw);
|
|
25
|
+
if (!Number.isSafeInteger(limit) || limit <= 0) {
|
|
26
|
+
throw new CliError("Invalid --limit. Use a positive integer.", EXIT.usage);
|
|
27
|
+
}
|
|
28
|
+
return String(limit);
|
|
29
|
+
}
|
|
30
|
+
function normalizeCursorFlag(raw) {
|
|
31
|
+
if (raw === undefined)
|
|
32
|
+
return undefined;
|
|
33
|
+
const cursor = raw.trim();
|
|
34
|
+
if (cursor === "") {
|
|
35
|
+
throw new CliError("Invalid --cursor. Use the next_cursor value returned by sangria orders --json.", EXIT.usage);
|
|
36
|
+
}
|
|
37
|
+
return cursor;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=orders.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orders.js","sourceRoot":"","sources":["../../src/commands/orders.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG1D,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,UAA8B,EAC9B,IAAc,EACd,KAA0C,EAC1C,GAAmB;IAEnB,IAAI,UAAU,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,QAAQ,CAAC,kEAAkE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACrG,CAAC;IAED,MAAM,KAAK,GAAG,kBAAkB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,IAAI,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAEtD,IAAI,GAAG,CAAC,IAAI;QAAE,SAAS,CAAC,MAAM,CAAC,CAAC;;QAC3B,WAAW,CAAC,MAAM,CAAC,CAAC;IAEzB,OAAO,IAAI,CAAC,OAAO,CAAC;AACtB,CAAC;AAED,SAAS,kBAAkB,CAAC,GAAuB;IACjD,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACxC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,QAAQ,CAAC,0CAA0C,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7E,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC1B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,QAAQ,CAAC,0CAA0C,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC;AAED,SAAS,mBAAmB,CAAC,GAAuB;IAClD,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACxC,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAC1B,IAAI,MAAM,KAAK,EAAE,EAAE,CAAC;QAClB,MAAM,IAAI,QAAQ,CAAC,gFAAgF,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACnH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -11,10 +11,11 @@ export async function runSettingsCommand(subcommand, args, flags, ctx) {
|
|
|
11
11
|
throw new CliError("Usage: sangria settings <set-phone|update|show>", EXIT.usage);
|
|
12
12
|
}
|
|
13
13
|
async function updatePhone(phone, ctx) {
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
const normalizedPhone = phone?.trim();
|
|
15
|
+
if (!normalizedPhone)
|
|
16
|
+
throw new CliError("Missing phone number. Usage: sangria settings set-phone +1XXXXXXXXXX", EXIT.usage);
|
|
16
17
|
const client = new SangriaAgentClient(ctx.config);
|
|
17
|
-
const result = await client.updatePhone(
|
|
18
|
+
const result = await client.updatePhone(normalizedPhone);
|
|
18
19
|
if (ctx.json)
|
|
19
20
|
printJson(result);
|
|
20
21
|
else
|
|
@@ -31,8 +32,15 @@ async function updateShipping(flags, ctx) {
|
|
|
31
32
|
const result = await client.updateShippingAddress(shipping);
|
|
32
33
|
if (ctx.json)
|
|
33
34
|
printJson(result);
|
|
34
|
-
else
|
|
35
|
-
|
|
35
|
+
else {
|
|
36
|
+
const isFullAddress = result.shipping.line1 && result.shipping.city && result.shipping.state;
|
|
37
|
+
if (isFullAddress) {
|
|
38
|
+
process.stdout.write(`Shipping address saved. You can now discover and buy products.\n`);
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
process.stdout.write(`Zipcode set to ${result.shipping.postal_code}. You can now run 'sangria discover --url <product-url>'.\n`);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
36
44
|
return EXIT.success;
|
|
37
45
|
}
|
|
38
46
|
async function showSettings(ctx) {
|
|
@@ -42,10 +50,11 @@ async function showSettings(ctx) {
|
|
|
42
50
|
printJson(result);
|
|
43
51
|
return EXIT.success;
|
|
44
52
|
}
|
|
45
|
-
|
|
53
|
+
const phoneSet = result.phone != null;
|
|
54
|
+
process.stdout.write(`Phone: ${phoneSet ? result.phone : "(not set) — run 'sangria settings set-phone <phone>'"}\n`);
|
|
46
55
|
const s = result.shipping;
|
|
47
56
|
if (!s || !(s.line1 || s.city || s.state || s.postal_code || s.country)) {
|
|
48
|
-
process.stdout.write("Shipping: (not set)\n");
|
|
57
|
+
process.stdout.write("Shipping: (not set) — run 'sangria settings update --postal-code <zip>'\n");
|
|
49
58
|
return EXIT.success;
|
|
50
59
|
}
|
|
51
60
|
process.stdout.write("Shipping:\n");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../../src/commands/settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAa7C,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,UAA8B,EAC9B,IAAc,EACd,KAAoB,EACpB,GAAmB;IAEnB,IAAI,UAAU,KAAK,WAAW;QAAE,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACjE,IAAI,UAAU,KAAK,QAAQ;QAAE,OAAO,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC/D,IAAI,UAAU,KAAK,MAAM;QAAE,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC;IACpD,MAAM,IAAI,QAAQ,CAAC,iDAAiD,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AACpF,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,KAAyB,EAAE,GAAmB;IACvE,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../../src/commands/settings.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/topup.js
CHANGED
|
@@ -8,7 +8,7 @@ export async function runTopupCommand(subcommand, args, flags, ctx) {
|
|
|
8
8
|
if (!topupId)
|
|
9
9
|
throw new CliError("Usage: sangria topup confirm <topup_id> --code <code>", EXIT.usage);
|
|
10
10
|
if (!flags.code)
|
|
11
|
-
throw new CliError("Missing --code", EXIT.usage);
|
|
11
|
+
throw new CliError("Missing --code. Check your email for the authorization code. Usage: sangria topup confirm <topup_id> --code <code>", EXIT.usage);
|
|
12
12
|
const result = await client.confirmTopup(topupId, flags.code);
|
|
13
13
|
if (ctx.json)
|
|
14
14
|
printJson(result);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"topup.js","sourceRoot":"","sources":["../../src/commands/topup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAG7C,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,UAA8B,EAC9B,IAAc,EACd,KAAyC,EACzC,GAAmB;IAEnB,MAAM,MAAM,GAAG,IAAI,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAElD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,QAAQ,CAAC,uDAAuD,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACtG,IAAI,CAAC,KAAK,CAAC,IAAI;YAAE,MAAM,IAAI,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"topup.js","sourceRoot":"","sources":["../../src/commands/topup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAG7C,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,UAA8B,EAC9B,IAAc,EACd,KAAyC,EACzC,GAAmB;IAEnB,MAAM,MAAM,GAAG,IAAI,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAElD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,QAAQ,CAAC,uDAAuD,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACtG,IAAI,CAAC,KAAK,CAAC,IAAI;YAAE,MAAM,IAAI,QAAQ,CAAC,oHAAoH,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACtK,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAC9D,IAAI,GAAG,CAAC,IAAI;YAAE,SAAS,CAAC,MAAM,CAAC,CAAC;;YAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC;QACjD,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,MAAM,IAAI,QAAQ,CAAC,0BAA0B,UAAU,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACzE,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,MAAM;QAAE,MAAM,IAAI,QAAQ,CAAC,qCAAqC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACzF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACrD,IAAI,GAAG,CAAC,IAAI;QAAE,SAAS,CAAC,MAAM,CAAC,CAAC;;QAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC;IACjD,OAAO,IAAI,CAAC,OAAO,CAAC;AACtB,CAAC"}
|
package/dist/lib/args.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../../src/lib/args.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC;CACzC;
|
|
1
|
+
{"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../../src/lib/args.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC;CACzC;AAoBD,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,CAoCpD;AAED,wBAAgB,UAAU,CACxB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,EACvC,IAAI,EAAE,MAAM,GACX,MAAM,GAAG,SAAS,CAGpB;AAED,wBAAgB,QAAQ,CACtB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,EACvC,IAAI,EAAE,MAAM,GACX,OAAO,CAET"}
|
package/dist/lib/args.js
CHANGED
|
@@ -3,12 +3,11 @@ const valueFlags = new Set([
|
|
|
3
3
|
"api-key",
|
|
4
4
|
"base-url",
|
|
5
5
|
"url",
|
|
6
|
-
"reasoning",
|
|
7
6
|
"context",
|
|
8
|
-
"min-price",
|
|
9
|
-
"max-price",
|
|
10
7
|
"amount",
|
|
11
8
|
"code",
|
|
9
|
+
"limit",
|
|
10
|
+
"cursor",
|
|
12
11
|
"line1",
|
|
13
12
|
"line2",
|
|
14
13
|
"city",
|
|
@@ -35,7 +34,7 @@ export function parseArgs(argv) {
|
|
|
35
34
|
continue;
|
|
36
35
|
}
|
|
37
36
|
if (!valueFlags.has(name)) {
|
|
38
|
-
throw new CliError(`Unknown flag --${name}
|
|
37
|
+
throw new CliError(`Unknown flag --${name}. Run 'sangria --help' for available flags.`, EXIT.usage);
|
|
39
38
|
}
|
|
40
39
|
const value = inlineValue ?? argv[++i];
|
|
41
40
|
// Distinguish absent (undefined / next-token-is-a-flag) from
|
package/dist/lib/args.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/lib/args.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAO7C,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC;IACzB,SAAS;IACT,UAAU;IACV,KAAK;IACL,
|
|
1
|
+
{"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/lib/args.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAO7C,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC;IACzB,SAAS;IACT,UAAU;IACV,KAAK;IACL,SAAS;IACT,QAAQ;IACR,MAAM;IACN,OAAO;IACP,QAAQ;IACR,OAAO;IACP,OAAO;IACP,MAAM;IACN,OAAO;IACP,aAAa;IACb,SAAS;CACV,CAAC,CAAC;AACH,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;AAEjF,MAAM,UAAU,SAAS,CAAC,IAAc;IACtC,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,KAAK,GAAqC,EAAE,CAAC;IAEnD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAClB,SAAS;QACX,CAAC;QAED,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACzB,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACrC,MAAM,IAAI,GAAG,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;QAClE,MAAM,WAAW,GACf,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;QAC9D,IAAI,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;YACnB,SAAS;QACX,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,QAAQ,CAAC,kBAAkB,IAAI,6CAA6C,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACtG,CAAC;QACD,MAAM,KAAK,GAAG,WAAW,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QACvC,6DAA6D;QAC7D,kEAAkE;QAClE,kEAAkE;QAClE,gEAAgE;QAChE,mBAAmB;QACnB,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAClD,MAAM,IAAI,QAAQ,CAAC,uBAAuB,IAAI,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAChE,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;IACtB,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,UAAU,CACxB,KAAuC,EACvC,IAAY;IAEZ,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1B,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,QAAQ,CACtB,KAAuC,EACvC,IAAY;IAEZ,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;AAC9B,CAAC"}
|
package/dist/lib/client.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { BalanceResponse, BuyResponse, DiscoverRequest, DiscoverResponse, GetSettingsResponse, ShippingUpdate, StartTopupResponse, ConfirmTopupResponse, UpdatePhoneResponse, UpdateShippingAddressResponse } from "../types/api.js";
|
|
1
|
+
import type { BalanceResponse, BuyResponse, DiscoverRequest, DiscoverResponse, GetSettingsResponse, OrdersResponse, ShippingUpdate, StartTopupResponse, ConfirmTopupResponse, UpdatePhoneResponse, UpdateShippingAddressResponse } from "../types/api.js";
|
|
2
2
|
export declare function consumeUpdateAvailable(): boolean;
|
|
3
3
|
export declare class SangriaAgentClient {
|
|
4
4
|
private readonly apiKey;
|
|
@@ -10,6 +10,10 @@ export declare class SangriaAgentClient {
|
|
|
10
10
|
balance(): Promise<BalanceResponse>;
|
|
11
11
|
discover(body: DiscoverRequest): Promise<DiscoverResponse>;
|
|
12
12
|
buy(discoveryId: string, sku: string): Promise<BuyResponse>;
|
|
13
|
+
orders(options?: {
|
|
14
|
+
limit?: string;
|
|
15
|
+
cursor?: string;
|
|
16
|
+
}): Promise<OrdersResponse>;
|
|
13
17
|
startTopup(amountUsd: string): Promise<StartTopupResponse>;
|
|
14
18
|
confirmTopup(topupId: string, code: string): Promise<ConfirmTopupResponse>;
|
|
15
19
|
updatePhone(phone: string): Promise<UpdatePhoneResponse>;
|
package/dist/lib/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/lib/client.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,eAAe,EACf,WAAW,EACX,eAAe,EACf,gBAAgB,EAEhB,mBAAmB,EACnB,cAAc,EACd,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,6BAA6B,EAC9B,MAAM,iBAAiB,CAAC;AAQzB,wBAAgB,sBAAsB,IAAI,OAAO,CAIhD;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;gBAErB,MAAM,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE;IAQlD,OAAO,IAAI,OAAO,CAAC,eAAe,CAAC;IAInC,QAAQ,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAI1D,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAO3D,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAM1D,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAM1E,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAIxD,qBAAqB,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,6BAA6B,CAAC;IAIvF,WAAW,IAAI,OAAO,CAAC,mBAAmB,CAAC;YAInC,OAAO;CA0CtB"}
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/lib/client.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,eAAe,EACf,WAAW,EACX,eAAe,EACf,gBAAgB,EAEhB,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,6BAA6B,EAC9B,MAAM,iBAAiB,CAAC;AAQzB,wBAAgB,sBAAsB,IAAI,OAAO,CAIhD;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;gBAErB,MAAM,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE;IAQlD,OAAO,IAAI,OAAO,CAAC,eAAe,CAAC;IAInC,QAAQ,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAI1D,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAO3D,MAAM,CAAC,OAAO,GAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,OAAO,CAAC,cAAc,CAAC;IAQlF,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAM1D,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAM1E,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAIxD,qBAAqB,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,6BAA6B,CAAC;IAIvF,WAAW,IAAI,OAAO,CAAC,mBAAmB,CAAC;YAInC,OAAO;CA0CtB"}
|
package/dist/lib/client.js
CHANGED
|
@@ -32,6 +32,15 @@ export class SangriaAgentClient {
|
|
|
32
32
|
sku,
|
|
33
33
|
});
|
|
34
34
|
}
|
|
35
|
+
async orders(options = {}) {
|
|
36
|
+
const params = new URLSearchParams();
|
|
37
|
+
if (options.limit)
|
|
38
|
+
params.set("limit", options.limit);
|
|
39
|
+
if (options.cursor)
|
|
40
|
+
params.set("cursor", options.cursor);
|
|
41
|
+
const query = params.toString();
|
|
42
|
+
return this.request("GET", `/v1/orders${query ? `?${query}` : ""}`);
|
|
43
|
+
}
|
|
35
44
|
async startTopup(amountUsd) {
|
|
36
45
|
return this.request("POST", "/v1/topups", {
|
|
37
46
|
amount_usd: amountUsd,
|
|
@@ -84,9 +93,9 @@ export class SangriaAgentClient {
|
|
|
84
93
|
if (error instanceof ApiError || error instanceof CliError)
|
|
85
94
|
throw error;
|
|
86
95
|
if (error instanceof Error && error.name === "AbortError") {
|
|
87
|
-
throw new CliError("Sangria API request timed out.", EXIT.unavailable);
|
|
96
|
+
throw new CliError("Sangria API request timed out. Retry the same command.", EXIT.unavailable);
|
|
88
97
|
}
|
|
89
|
-
throw new CliError("Could not reach Sangria API.", EXIT.unavailable, {
|
|
98
|
+
throw new CliError("Could not reach Sangria API. Check your connection and retry.", EXIT.unavailable, {
|
|
90
99
|
cause: error instanceof Error ? error.message : String(error),
|
|
91
100
|
});
|
|
92
101
|
}
|
|
@@ -103,7 +112,7 @@ async function readJson(response) {
|
|
|
103
112
|
return JSON.parse(text);
|
|
104
113
|
}
|
|
105
114
|
catch {
|
|
106
|
-
throw new CliError(`Sangria API returned non-JSON response (${response.status}).`, EXIT.unavailable);
|
|
115
|
+
throw new CliError(`Sangria API returned a non-JSON response (${response.status}). The API may be temporarily unavailable — retry in a few seconds.`, EXIT.unavailable);
|
|
107
116
|
}
|
|
108
117
|
}
|
|
109
118
|
function friendlyApiMessage(code, message) {
|
|
@@ -117,16 +126,14 @@ function friendlyApiMessage(code, message) {
|
|
|
117
126
|
return "Your Sangria account could not be found.";
|
|
118
127
|
case "invalid_json":
|
|
119
128
|
return "The request JSON is invalid.";
|
|
120
|
-
case "invalid_intent":
|
|
121
|
-
return "Intent is required and must be 200 characters or fewer.";
|
|
122
|
-
case "invalid_reasoning":
|
|
123
|
-
return "Reasoning is required and must be 1,000 characters or fewer.";
|
|
124
|
-
case "invalid_price_range":
|
|
125
|
-
return "Price range is invalid: bounds must be non-negative, and when both are supplied --min-price must be ≤ --max-price.";
|
|
126
129
|
case "zipcode_required":
|
|
127
130
|
return "Your zipcode isn't set. Sangria uses it to find the products that best match and are nearest to you. Set it with: sangria settings update --postal-code <zip>.";
|
|
128
131
|
case "invalid_context":
|
|
129
132
|
return "Context JSON is too large. Trim --context to under 16 KiB or omit it.";
|
|
133
|
+
case "invalid_cursor":
|
|
134
|
+
return "The --cursor value is malformed. --cursor must come verbatim from a prior `sangria orders --json` response's `next_cursor` field. Re-run `sangria orders --json` without --cursor to start from the most recent page.";
|
|
135
|
+
case "url_required":
|
|
136
|
+
return "A product URL is required. Re-run with --url <product-url>.";
|
|
130
137
|
case "invalid_url":
|
|
131
138
|
return "URL is invalid or malformed.";
|
|
132
139
|
case "unsupported_merchant":
|
|
@@ -140,19 +147,19 @@ function friendlyApiMessage(code, message) {
|
|
|
140
147
|
case "discovery_expired":
|
|
141
148
|
return "Discovery quote expired. Run discover again.";
|
|
142
149
|
case "insufficient_funds":
|
|
143
|
-
return "Insufficient Sangria balance.";
|
|
150
|
+
return "Insufficient Sangria balance. Run 'sangria topup --amount <usd>' to add funds, then retry.";
|
|
144
151
|
case "payment_method_required":
|
|
145
|
-
return "
|
|
152
|
+
return "No payment method on file. Add a card at https://getsangria.com/client/settings, then retry.";
|
|
146
153
|
case "merchant_unreachable":
|
|
147
|
-
return "Merchant is currently unreachable.";
|
|
154
|
+
return "Merchant is currently unreachable. Retry in a few seconds.";
|
|
148
155
|
case "embedding_unavailable":
|
|
149
|
-
return "Discovery is temporarily unavailable.";
|
|
156
|
+
return "Discovery is temporarily unavailable. Retry in a few seconds.";
|
|
150
157
|
case "unknown_merchant_status":
|
|
151
|
-
return "Merchant returned an unexpected response.";
|
|
158
|
+
return "Merchant returned an unexpected response. Retry the same command.";
|
|
152
159
|
case "commit_failed":
|
|
153
|
-
return "
|
|
160
|
+
return "Something went wrong recording your order. Please contact support simantak@getsangria.com";
|
|
154
161
|
case "internal_error":
|
|
155
|
-
return "Sangria encountered an internal error.";
|
|
162
|
+
return "Sangria encountered an internal error. Retry the same command. If it persists, contact simantak@getsangria.com.";
|
|
156
163
|
default:
|
|
157
164
|
return code;
|
|
158
165
|
}
|
package/dist/lib/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/lib/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/lib/client.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/help.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../src/lib/help.ts"],"names":[],"mappings":"AAAA,wBAAgB,QAAQ,IAAI,MAAM,
|
|
1
|
+
{"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../src/lib/help.ts"],"names":[],"mappings":"AAAA,wBAAgB,QAAQ,IAAI,MAAM,CA4CjC"}
|
package/dist/lib/help.js
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
export function helpText() {
|
|
2
2
|
return `Sangria CLI
|
|
3
3
|
|
|
4
|
+
Flow:
|
|
5
|
+
1. sangria discover --url <product_url> Look up a product → get a discovery_id
|
|
6
|
+
2. sangria buy <discovery_id> <sku> Buy it using the discovery_id and sku from step 1
|
|
7
|
+
|
|
4
8
|
Usage:
|
|
5
9
|
sangria auth status [--json]
|
|
6
10
|
sangria auth set <api_key>
|
|
@@ -10,22 +14,19 @@ Usage:
|
|
|
10
14
|
sangria settings set-phone <phone> [--json]
|
|
11
15
|
sangria settings update --postal-code <zip> [--json]
|
|
12
16
|
sangria settings update --line1 <line1> [--line2 <line2>] --city <city> --state <state> --postal-code <zip> [--country US] [--json]
|
|
13
|
-
sangria discover
|
|
14
|
-
sangria discover --url <product_url> [--json]
|
|
17
|
+
sangria discover --url <product_url> [--context <json>] [--json]
|
|
15
18
|
sangria buy <discovery_id> <sku> [--json]
|
|
19
|
+
sangria orders [--limit <n>] [--cursor <next_cursor>] [--json]
|
|
16
20
|
sangria topup --amount <usd> [--json]
|
|
17
21
|
sangria topup confirm <topup_id> --code <code> [--json]
|
|
18
22
|
|
|
19
|
-
Discover flags
|
|
20
|
-
--
|
|
23
|
+
Discover flags:
|
|
24
|
+
--url <product_url> Product-page URL (Amazon, etc.) to look up. Required.
|
|
21
25
|
--context <json> Optional free-form JSON with situation context
|
|
22
|
-
--min-price <usd> Inclusive lower bound, decimal dollars (e.g. --min-price 20)
|
|
23
|
-
--max-price <usd> Inclusive upper bound, decimal dollars (e.g. --max-price 19.99)
|
|
24
26
|
|
|
25
|
-
|
|
26
|
-
--
|
|
27
|
-
|
|
28
|
-
keyword-mode flags above and the positional intent.
|
|
27
|
+
Orders flags:
|
|
28
|
+
--limit <n> Number of recent orders per page (default 20, max 100; higher values are clamped)
|
|
29
|
+
--cursor <cursor> Continue from a prior response's next_cursor
|
|
29
30
|
|
|
30
31
|
Global flags:
|
|
31
32
|
--json Print machine-readable JSON
|
|
@@ -38,6 +39,8 @@ Auth:
|
|
|
38
39
|
Resolution order: --api-key flag, then stored config, then SANGRIA_API_KEY.
|
|
39
40
|
Stored config lives at $XDG_CONFIG_HOME/sangria/config.json when XDG_CONFIG_HOME is set,
|
|
40
41
|
otherwise ~/.config/sangria/config.json.
|
|
42
|
+
|
|
43
|
+
For detailed instructions, load the Sangria skill: https://getsangria.com/skills/sangria/SKILL.md
|
|
41
44
|
`;
|
|
42
45
|
}
|
|
43
46
|
//# sourceMappingURL=help.js.map
|
package/dist/lib/help.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"help.js","sourceRoot":"","sources":["../../src/lib/help.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,QAAQ;IACtB,OAAO
|
|
1
|
+
{"version":3,"file":"help.js","sourceRoot":"","sources":["../../src/lib/help.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,QAAQ;IACtB,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0CR,CAAC;AACF,CAAC"}
|
package/dist/lib/money.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
export declare const MICROUNITS_PER_DOLLAR = 1000000;
|
|
2
2
|
export declare function usdString(microunits: number): string;
|
|
3
3
|
export declare function formatUsd(microunits: number): string;
|
|
4
|
-
export declare function dollarsToMicrounits(dollars: number): number;
|
|
5
4
|
export declare function withUsd<T extends {
|
|
6
5
|
price_microunits?: number;
|
|
7
6
|
balance_microunits?: number;
|
package/dist/lib/money.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"money.d.ts","sourceRoot":"","sources":["../../src/lib/money.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qBAAqB,UAAY,CAAC;AAE/C,wBAAgB,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED,wBAAgB,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAEpD;
|
|
1
|
+
{"version":3,"file":"money.d.ts","sourceRoot":"","sources":["../../src/lib/money.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qBAAqB,UAAY,CAAC;AAE/C,wBAAgB,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED,wBAAgB,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED,wBAAgB,OAAO,CAAC,CAAC,SAAS;IAAE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAAC,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAAE,EAC1F,KAAK,EAAE,CAAC,GACP,CAAC,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAUlD"}
|
package/dist/lib/money.js
CHANGED
|
@@ -5,14 +5,6 @@ export function usdString(microunits) {
|
|
|
5
5
|
export function formatUsd(microunits) {
|
|
6
6
|
return `$${usdString(microunits)}`;
|
|
7
7
|
}
|
|
8
|
-
// dollarsToMicrounits converts a non-negative decimal-dollar amount to int
|
|
9
|
-
// microunits. Math.round avoids float-precision drift on values like 19.99
|
|
10
|
-
// (which would otherwise round-trip to 19_989_999 microunits and lose a
|
|
11
|
-
// cent). Callers are responsible for validating non-negativity and
|
|
12
|
-
// finiteness before calling — this helper is a pure unit conversion.
|
|
13
|
-
export function dollarsToMicrounits(dollars) {
|
|
14
|
-
return Math.round(dollars * MICROUNITS_PER_DOLLAR);
|
|
15
|
-
}
|
|
16
8
|
export function withUsd(value) {
|
|
17
9
|
return {
|
|
18
10
|
...value,
|
package/dist/lib/money.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"money.js","sourceRoot":"","sources":["../../src/lib/money.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,qBAAqB,GAAG,SAAS,CAAC;AAE/C,MAAM,UAAU,SAAS,CAAC,UAAkB;IAC1C,OAAO,CAAC,UAAU,GAAG,qBAAqB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,UAAkB;IAC1C,OAAO,IAAI,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;AACrC,CAAC;AAED,
|
|
1
|
+
{"version":3,"file":"money.js","sourceRoot":"","sources":["../../src/lib/money.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,qBAAqB,GAAG,SAAS,CAAC;AAE/C,MAAM,UAAU,SAAS,CAAC,UAAkB;IAC1C,OAAO,CAAC,UAAU,GAAG,qBAAqB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,UAAkB;IAC1C,OAAO,IAAI,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,OAAO,CACrB,KAAQ;IAER,OAAO;QACL,GAAG,KAAK;QACR,GAAG,CAAC,OAAO,KAAK,CAAC,gBAAgB,KAAK,QAAQ,IAAI;YAChD,SAAS,EAAE,SAAS,CAAC,KAAK,CAAC,gBAAgB,CAAC;SAC7C,CAAC;QACF,GAAG,CAAC,OAAO,KAAK,CAAC,kBAAkB,KAAK,QAAQ,IAAI;YAClD,WAAW,EAAE,SAAS,CAAC,KAAK,CAAC,kBAAkB,CAAC;SACjD,CAAC;KACH,CAAC;AACJ,CAAC"}
|
package/dist/lib/output.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { BalanceResponse, BuyResponse, DiscoverResponse } from "../types/api.js";
|
|
1
|
+
import type { BalanceResponse, BuyResponse, DiscoverResponse, OrdersResponse } from "../types/api.js";
|
|
2
2
|
type DiscoverMatchWithUsd = DiscoverResponse["matches"][number] & {
|
|
3
3
|
price_usd: string;
|
|
4
4
|
};
|
|
@@ -9,6 +9,7 @@ export declare function printJson(value: unknown): void;
|
|
|
9
9
|
export declare function printBalance(balance: BalanceResponse): void;
|
|
10
10
|
export declare function printDiscover(result: DiscoverResponse): void;
|
|
11
11
|
export declare function printBuy(result: BuyResponse): void;
|
|
12
|
+
export declare function printOrders(result: OrdersResponse): void;
|
|
12
13
|
export declare function addDisplayFieldsToBalance(balance: BalanceResponse): BalanceResponse & {
|
|
13
14
|
balance_usd: string;
|
|
14
15
|
};
|
package/dist/lib/output.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../src/lib/output.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../src/lib/output.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtG,KAAK,oBAAoB,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,GAAG;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC;AACxF,MAAM,MAAM,uBAAuB,GAAG,gBAAgB,GAAG;IAAE,OAAO,EAAE,oBAAoB,EAAE,CAAA;CAAE,CAAC;AAE7F,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAE9C;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CAK3D;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI,CA+B5D;AAED,wBAAgB,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAelD;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAmBxD;AAQD,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,eAAe,GAAG,eAAe,GAAG;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,CAK7G;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,gBAAgB,GAAG,uBAAuB,CAQ5F"}
|
package/dist/lib/output.js
CHANGED
|
@@ -4,12 +4,15 @@ export function printJson(value) {
|
|
|
4
4
|
}
|
|
5
5
|
export function printBalance(balance) {
|
|
6
6
|
process.stdout.write(`Balance: ${formatUsd(balance.balance_microunits)}\n`);
|
|
7
|
+
if (balance.balance_microunits === 0) {
|
|
8
|
+
process.stdout.write("Run 'sangria topup --amount <usd>' to add funds.\n");
|
|
9
|
+
}
|
|
7
10
|
}
|
|
8
11
|
export function printDiscover(result) {
|
|
9
12
|
process.stdout.write(`Discovery: ${result.discovery_id}\n`);
|
|
10
13
|
process.stdout.write(`Expires: ${result.expires_at}\n\n`);
|
|
11
14
|
if (result.matches.length === 0) {
|
|
12
|
-
process.stdout.write("No matches found.\n");
|
|
15
|
+
process.stdout.write("No matches found. Verify the URL points to a specific product page, not a search or category page.\n");
|
|
13
16
|
return;
|
|
14
17
|
}
|
|
15
18
|
result.matches.forEach((match, index) => {
|
|
@@ -33,6 +36,7 @@ export function printDiscover(result) {
|
|
|
33
36
|
if (index < result.matches.length - 1)
|
|
34
37
|
process.stdout.write("\n");
|
|
35
38
|
});
|
|
39
|
+
process.stdout.write(`\nTo buy, run: sangria buy ${result.discovery_id} <sku>\n`);
|
|
36
40
|
}
|
|
37
41
|
export function printBuy(result) {
|
|
38
42
|
process.stdout.write(`Order: ${result.order_id}\n`);
|
|
@@ -41,6 +45,7 @@ export function printBuy(result) {
|
|
|
41
45
|
process.stdout.write(`\nFailure: ${result.failure_code ?? "unknown"}\n`);
|
|
42
46
|
if (result.failure_message)
|
|
43
47
|
process.stdout.write(`${result.failure_message}\n`);
|
|
48
|
+
process.stdout.write(`\nRun 'sangria discover --url <product-url>' to try again.\n`);
|
|
44
49
|
return;
|
|
45
50
|
}
|
|
46
51
|
if (result.result !== undefined) {
|
|
@@ -48,6 +53,30 @@ export function printBuy(result) {
|
|
|
48
53
|
process.stdout.write(`${JSON.stringify(result.result, null, 2)}\n`);
|
|
49
54
|
}
|
|
50
55
|
}
|
|
56
|
+
export function printOrders(result) {
|
|
57
|
+
if (result.orders.length === 0) {
|
|
58
|
+
process.stdout.write("No orders found.\n");
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
process.stdout.write("Orders:\n");
|
|
62
|
+
result.orders.forEach((order) => {
|
|
63
|
+
process.stdout.write(`${formatPlacedAt(order.placed_at)} ${order.status.padEnd(10)} $${order.total_usd.padStart(8)} ${order.item} (${order.id})\n`);
|
|
64
|
+
});
|
|
65
|
+
if (result.has_more) {
|
|
66
|
+
if (result.next_cursor) {
|
|
67
|
+
process.stdout.write(`\nMore orders are available. Re-run with: sangria orders --cursor "${result.next_cursor}"\n`);
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
process.stdout.write("\nMore orders are available. Re-run with --json and use next_cursor.\n");
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
function formatPlacedAt(value) {
|
|
75
|
+
const date = new Date(value);
|
|
76
|
+
if (Number.isNaN(date.getTime()))
|
|
77
|
+
return value;
|
|
78
|
+
return date.toISOString().slice(0, 16).replace("T", " ") + " UTC";
|
|
79
|
+
}
|
|
51
80
|
export function addDisplayFieldsToBalance(balance) {
|
|
52
81
|
return {
|
|
53
82
|
...balance,
|
package/dist/lib/output.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/lib/output.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAMlD,MAAM,UAAU,SAAS,CAAC,KAAc;IACtC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAAwB;IACnD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,SAAS,CAAC,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/lib/output.ts"],"names":[],"mappings":"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"}
|
package/dist/types/api.d.ts
CHANGED
|
@@ -21,11 +21,12 @@ export interface DiscoverResponse {
|
|
|
21
21
|
matches: DiscoveryMatch[];
|
|
22
22
|
expires_at: string;
|
|
23
23
|
}
|
|
24
|
+
export type OrderStatus = "running" | "confirmed" | "placed" | "shipped" | "delivered" | "cancelled" | "failed";
|
|
24
25
|
export interface BuyResponse {
|
|
25
26
|
order_id: string;
|
|
26
27
|
discovery_id: string;
|
|
27
28
|
sku: string;
|
|
28
|
-
status:
|
|
29
|
+
status: OrderStatus;
|
|
29
30
|
created_at: string;
|
|
30
31
|
completed_at?: string;
|
|
31
32
|
failed_at?: string;
|
|
@@ -33,6 +34,20 @@ export interface BuyResponse {
|
|
|
33
34
|
failure_code?: string;
|
|
34
35
|
failure_message?: string;
|
|
35
36
|
}
|
|
37
|
+
export interface AgentOrder {
|
|
38
|
+
id: string;
|
|
39
|
+
placed_at: string;
|
|
40
|
+
item: string;
|
|
41
|
+
status: OrderStatus;
|
|
42
|
+
total_microunits: number;
|
|
43
|
+
total_usd: string;
|
|
44
|
+
}
|
|
45
|
+
export interface OrdersResponse {
|
|
46
|
+
orders: AgentOrder[];
|
|
47
|
+
count: number;
|
|
48
|
+
has_more: boolean;
|
|
49
|
+
next_cursor: string | null;
|
|
50
|
+
}
|
|
36
51
|
export interface StartTopupResponse {
|
|
37
52
|
topup_id: string;
|
|
38
53
|
message: string;
|
|
@@ -81,11 +96,7 @@ export interface ErrorResponse {
|
|
|
81
96
|
message?: string;
|
|
82
97
|
}
|
|
83
98
|
export interface DiscoverRequest {
|
|
84
|
-
|
|
85
|
-
reasoning?: string;
|
|
99
|
+
url: string;
|
|
86
100
|
context?: unknown;
|
|
87
|
-
min_price_microunits?: number;
|
|
88
|
-
max_price_microunits?: number;
|
|
89
|
-
url?: string;
|
|
90
101
|
}
|
|
91
102
|
//# sourceMappingURL=api.d.ts.map
|
package/dist/types/api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/types/api.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC;AAED,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/types/api.ts"],"names":[],"mappings":"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"}
|