@trading-boy/cli 1.2.10 → 1.2.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.
- package/dist/api-client.js +8 -1
- package/dist/cli.bundle.js +11 -4
- package/package.json +5 -3
package/dist/api-client.js
CHANGED
|
@@ -112,7 +112,14 @@ export async function apiRequest(path, options = {}) {
|
|
|
112
112
|
throw new ApiError('API key invalid or expired. Run `trading-boy login` to re-authenticate.', 401);
|
|
113
113
|
}
|
|
114
114
|
if (response.status === 403) {
|
|
115
|
-
|
|
115
|
+
let message = 'Subscription inactive. Run `trading-boy billing manage` to update your billing.';
|
|
116
|
+
try {
|
|
117
|
+
const body = await response.clone().json();
|
|
118
|
+
if (typeof body.error === 'string')
|
|
119
|
+
message = body.error;
|
|
120
|
+
}
|
|
121
|
+
catch { /* use default message */ }
|
|
122
|
+
throw new ApiError(message, 403);
|
|
116
123
|
}
|
|
117
124
|
if (response.status === 429) {
|
|
118
125
|
const retryAfter = response.headers.get('Retry-After');
|
package/dist/cli.bundle.js
CHANGED
|
@@ -35368,16 +35368,16 @@ var envSchema = external_exports.object({
|
|
|
35368
35368
|
// Neo4j
|
|
35369
35369
|
NEO4J_URI: external_exports.string().default("bolt://localhost:7687"),
|
|
35370
35370
|
NEO4J_USER: external_exports.string().default("neo4j"),
|
|
35371
|
-
NEO4J_PASSWORD: external_exports.string()
|
|
35371
|
+
NEO4J_PASSWORD: external_exports.string(),
|
|
35372
35372
|
// TimescaleDB (individual fields for explicit control)
|
|
35373
35373
|
TIMESCALE_HOST: external_exports.string().default("localhost"),
|
|
35374
35374
|
TIMESCALE_PORT: external_exports.coerce.number().int().positive().default(5432),
|
|
35375
35375
|
TIMESCALE_USER: external_exports.string().default("tradingboy"),
|
|
35376
|
-
TIMESCALE_PASSWORD: external_exports.string()
|
|
35376
|
+
TIMESCALE_PASSWORD: external_exports.string(),
|
|
35377
35377
|
TIMESCALE_DB: external_exports.string().default("tradingboy"),
|
|
35378
35378
|
// Redis
|
|
35379
35379
|
REDIS_URL: external_exports.string().default("redis://localhost:6379"),
|
|
35380
|
-
REDIS_PASSWORD: external_exports.string()
|
|
35380
|
+
REDIS_PASSWORD: external_exports.string(),
|
|
35381
35381
|
// Data Sources (optional — empty string means not configured)
|
|
35382
35382
|
JUPITER_API_KEY: external_exports.string().default(""),
|
|
35383
35383
|
HELIUS_API_KEY: external_exports.string().default(""),
|
|
@@ -42781,7 +42781,14 @@ async function apiRequest(path4, options = {}) {
|
|
|
42781
42781
|
throw new ApiError("API key invalid or expired. Run `trading-boy login` to re-authenticate.", 401);
|
|
42782
42782
|
}
|
|
42783
42783
|
if (response.status === 403) {
|
|
42784
|
-
|
|
42784
|
+
let message = "Subscription inactive. Run `trading-boy billing manage` to update your billing.";
|
|
42785
|
+
try {
|
|
42786
|
+
const body = await response.clone().json();
|
|
42787
|
+
if (typeof body.error === "string")
|
|
42788
|
+
message = body.error;
|
|
42789
|
+
} catch {
|
|
42790
|
+
}
|
|
42791
|
+
throw new ApiError(message, 403);
|
|
42785
42792
|
}
|
|
42786
42793
|
if (response.status === 429) {
|
|
42787
42794
|
const retryAfter = response.headers.get("Retry-After");
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@trading-boy/cli",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.12",
|
|
4
4
|
"description": "Trading Boy CLI — crypto context intelligence for traders and AI agents. Query real-time prices, funding rates, whale activity, and DeFi risk for 100+ Solana tokens and 229 Hyperliquid perpetuals.",
|
|
5
5
|
"homepage": "https://cabal.ventures",
|
|
6
6
|
"repository": {
|
|
@@ -31,6 +31,7 @@
|
|
|
31
31
|
},
|
|
32
32
|
"files": [
|
|
33
33
|
"dist",
|
|
34
|
+
"README.md",
|
|
34
35
|
"!dist/**/*.test.*",
|
|
35
36
|
"!dist/**/*.map"
|
|
36
37
|
],
|
|
@@ -39,12 +40,12 @@
|
|
|
39
40
|
"typecheck": "tsc --noEmit",
|
|
40
41
|
"test": "vitest run",
|
|
41
42
|
"lint": "eslint src/",
|
|
42
|
-
"clean": "rm -rf dist .turbo"
|
|
43
|
+
"clean": "rm -rf dist .turbo",
|
|
44
|
+
"prepublishOnly": "node prepublish-check.js"
|
|
43
45
|
},
|
|
44
46
|
"dependencies": {
|
|
45
47
|
"@inquirer/prompts": "~7.10.1",
|
|
46
48
|
"@napi-rs/keyring": "~1.1.3",
|
|
47
|
-
"@trading-boy/core": "workspace:~1.2.0",
|
|
48
49
|
"chalk": "~5.6.2",
|
|
49
50
|
"commander": "~13.1.0",
|
|
50
51
|
"open": "~10.2.0",
|
|
@@ -52,6 +53,7 @@
|
|
|
52
53
|
"qrcode-terminal": "~0.12.0"
|
|
53
54
|
},
|
|
54
55
|
"devDependencies": {
|
|
56
|
+
"@trading-boy/core": "workspace:~1.2.0",
|
|
55
57
|
"esbuild": "~0.27.4",
|
|
56
58
|
"typescript": "^5.7.0"
|
|
57
59
|
}
|