@bithumb-official/bithumb-cli 0.1.16
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/account-UVDNQRB7.js +78 -0
- package/dist/account-UVDNQRB7.js.map +1 -0
- package/dist/account-YNPFEHQT.js +90 -0
- package/dist/account-YNPFEHQT.js.map +1 -0
- package/dist/chunk-AUQ7MB6O.js +143 -0
- package/dist/chunk-AUQ7MB6O.js.map +1 -0
- package/dist/chunk-FYO6WLZI.js +72 -0
- package/dist/chunk-FYO6WLZI.js.map +1 -0
- package/dist/chunk-YXIFBNEQ.js +3488 -0
- package/dist/chunk-YXIFBNEQ.js.map +1 -0
- package/dist/config-2P3Y3TQH.js +182 -0
- package/dist/config-2P3Y3TQH.js.map +1 -0
- package/dist/config-6BIS2PLC.js +154 -0
- package/dist/config-6BIS2PLC.js.map +1 -0
- package/dist/deposit-HNUSMKX5.js +161 -0
- package/dist/deposit-HNUSMKX5.js.map +1 -0
- package/dist/deposit-TCMLJ7MI.js +169 -0
- package/dist/deposit-TCMLJ7MI.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +211 -0
- package/dist/index.js.map +1 -0
- package/dist/market-EEF3KI4T.js +219 -0
- package/dist/market-EEF3KI4T.js.map +1 -0
- package/dist/market-GLU62BWO.js +304 -0
- package/dist/market-GLU62BWO.js.map +1 -0
- package/dist/setup-LAAVO63H.js +21 -0
- package/dist/setup-LAAVO63H.js.map +1 -0
- package/dist/system-BRZY7PTZ.js +98 -0
- package/dist/system-BRZY7PTZ.js.map +1 -0
- package/dist/system-XRZ2KHXL.js +69 -0
- package/dist/system-XRZ2KHXL.js.map +1 -0
- package/dist/trade-FERR47DJ.js +233 -0
- package/dist/trade-FERR47DJ.js.map +1 -0
- package/dist/trade-H4G5P2W2.js +159 -0
- package/dist/trade-H4G5P2W2.js.map +1 -0
- package/dist/twap-44UCVSIR.js +91 -0
- package/dist/twap-44UCVSIR.js.map +1 -0
- package/dist/twap-4LRBUMTG.js +82 -0
- package/dist/twap-4LRBUMTG.js.map +1 -0
- package/dist/withdraw-IRMICBD2.js +203 -0
- package/dist/withdraw-IRMICBD2.js.map +1 -0
- package/dist/withdraw-TLGVRUBS.js +161 -0
- package/dist/withdraw-TLGVRUBS.js.map +1 -0
- package/package.json +25 -0
|
@@ -0,0 +1,304 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
toNumber
|
|
4
|
+
} from "./chunk-AUQ7MB6O.js";
|
|
5
|
+
import {
|
|
6
|
+
errorLine,
|
|
7
|
+
outputLine,
|
|
8
|
+
printJson,
|
|
9
|
+
printTable
|
|
10
|
+
} from "./chunk-FYO6WLZI.js";
|
|
11
|
+
|
|
12
|
+
// src/commands/market.ts
|
|
13
|
+
async function handleMarketCommand(run, action, rest, v, json) {
|
|
14
|
+
switch (action) {
|
|
15
|
+
case "markets":
|
|
16
|
+
return cmdMarkets(run, { isDetails: v.isDetails, json });
|
|
17
|
+
case "ticker":
|
|
18
|
+
return cmdTicker(run, rest[0] ?? v.market, json);
|
|
19
|
+
case "orderbook":
|
|
20
|
+
return cmdOrderbook(run, rest[0] ?? v.market, json);
|
|
21
|
+
case "trades":
|
|
22
|
+
return cmdTrades(run, rest[0] ?? v.market, {
|
|
23
|
+
count: toNumber(v.count),
|
|
24
|
+
to: v.to,
|
|
25
|
+
cursor: v.cursor,
|
|
26
|
+
daysAgo: toNumber(v.daysAgo),
|
|
27
|
+
json
|
|
28
|
+
});
|
|
29
|
+
case "candles-minutes":
|
|
30
|
+
return cmdCandlesMinutes(run, rest[0] ?? v.market, {
|
|
31
|
+
unit: toNumber(v.unit) ?? 1,
|
|
32
|
+
count: toNumber(v.count),
|
|
33
|
+
to: v.to,
|
|
34
|
+
json
|
|
35
|
+
});
|
|
36
|
+
case "candles-days":
|
|
37
|
+
return cmdCandlesDays(run, rest[0] ?? v.market, {
|
|
38
|
+
count: toNumber(v.count),
|
|
39
|
+
to: v.to,
|
|
40
|
+
convertingPriceUnit: v.convertingPriceUnit,
|
|
41
|
+
json
|
|
42
|
+
});
|
|
43
|
+
case "candles-weeks":
|
|
44
|
+
return cmdCandlesWeeks(run, rest[0] ?? v.market, {
|
|
45
|
+
count: toNumber(v.count),
|
|
46
|
+
to: v.to,
|
|
47
|
+
json
|
|
48
|
+
});
|
|
49
|
+
case "candles-months":
|
|
50
|
+
return cmdCandlesMonths(run, rest[0] ?? v.market, {
|
|
51
|
+
count: toNumber(v.count),
|
|
52
|
+
to: v.to,
|
|
53
|
+
json
|
|
54
|
+
});
|
|
55
|
+
case "warnings":
|
|
56
|
+
return cmdWarnings(run, json);
|
|
57
|
+
case "notices":
|
|
58
|
+
return cmdNotices(run, { count: toNumber(v.count), json });
|
|
59
|
+
case "fee-inout":
|
|
60
|
+
return cmdFeeInout(run, rest[0] ?? v.currency, json);
|
|
61
|
+
default:
|
|
62
|
+
errorLine(`Unknown market command: ${action}. Run 'bithumb market --help' for usage.`);
|
|
63
|
+
process.exitCode = 1;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
async function cmdMarkets(run, opts) {
|
|
67
|
+
const result = await run("market_get_markets", {
|
|
68
|
+
...opts.isDetails !== void 0 && { isDetails: opts.isDetails }
|
|
69
|
+
});
|
|
70
|
+
const items = result.data;
|
|
71
|
+
if (opts.json) return printJson(items);
|
|
72
|
+
if (!items?.length) {
|
|
73
|
+
outputLine("No markets found");
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
printTable(items.map((m) => ({
|
|
77
|
+
market: m["market"],
|
|
78
|
+
korean_name: m["korean_name"],
|
|
79
|
+
english_name: m["english_name"],
|
|
80
|
+
...opts.isDetails ? { market_warning: m["market_warning"] ?? "" } : {}
|
|
81
|
+
})));
|
|
82
|
+
}
|
|
83
|
+
async function cmdTicker(run, markets, json) {
|
|
84
|
+
if (!markets) {
|
|
85
|
+
errorLine("Error: market argument required. Example: bithumb market ticker KRW-BTC");
|
|
86
|
+
process.exitCode = 1;
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
const result = await run("market_get_ticker", { markets });
|
|
90
|
+
const items = result.data;
|
|
91
|
+
if (json) return printJson(items);
|
|
92
|
+
if (!items?.length) {
|
|
93
|
+
outputLine("No ticker data");
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
printTable(items.map((t) => ({
|
|
97
|
+
market: t["market"],
|
|
98
|
+
trade_price: t["trade_price"],
|
|
99
|
+
signed_change_rate: t["signed_change_rate"],
|
|
100
|
+
acc_trade_volume_24h: t["acc_trade_volume_24h"],
|
|
101
|
+
high_price: t["high_price"],
|
|
102
|
+
low_price: t["low_price"]
|
|
103
|
+
})));
|
|
104
|
+
}
|
|
105
|
+
async function cmdOrderbook(run, markets, json) {
|
|
106
|
+
if (!markets) {
|
|
107
|
+
errorLine("Error: market argument required. Example: bithumb market orderbook KRW-BTC");
|
|
108
|
+
process.exitCode = 1;
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
const result = await run("market_get_orderbook", { markets });
|
|
112
|
+
const items = result.data;
|
|
113
|
+
if (json) return printJson(items);
|
|
114
|
+
if (!items?.length) {
|
|
115
|
+
outputLine("No orderbook data");
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
for (const book of items) {
|
|
119
|
+
outputLine(`
|
|
120
|
+
--- ${book["market"]} ---`);
|
|
121
|
+
outputLine(`Total Ask Size: ${book["total_ask_size"]}`);
|
|
122
|
+
outputLine(`Total Bid Size: ${book["total_bid_size"]}`);
|
|
123
|
+
const units = book["orderbook_units"];
|
|
124
|
+
if (units?.length) {
|
|
125
|
+
printTable(units.slice(0, 10).map((u) => ({
|
|
126
|
+
ask_price: u["ask_price"],
|
|
127
|
+
ask_size: u["ask_size"],
|
|
128
|
+
bid_price: u["bid_price"],
|
|
129
|
+
bid_size: u["bid_size"]
|
|
130
|
+
})));
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
async function cmdTrades(run, market, opts) {
|
|
135
|
+
if (!market) {
|
|
136
|
+
errorLine("Error: market argument required. Example: bithumb market trades KRW-BTC");
|
|
137
|
+
process.exitCode = 1;
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
140
|
+
const args = { market };
|
|
141
|
+
if (opts.count !== void 0) args.count = opts.count;
|
|
142
|
+
if (opts.to !== void 0) args.to = opts.to;
|
|
143
|
+
if (opts.cursor !== void 0) args.cursor = opts.cursor;
|
|
144
|
+
if (opts.daysAgo !== void 0) args.daysAgo = opts.daysAgo;
|
|
145
|
+
const result = await run("market_get_trades", args);
|
|
146
|
+
const items = result.data;
|
|
147
|
+
if (opts.json) return printJson(items);
|
|
148
|
+
if (!items?.length) {
|
|
149
|
+
outputLine("No trades found");
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
printTable(items.map((t) => ({
|
|
153
|
+
trade_date_utc: t["trade_date_utc"],
|
|
154
|
+
trade_time_utc: t["trade_time_utc"],
|
|
155
|
+
trade_price: t["trade_price"],
|
|
156
|
+
trade_volume: t["trade_volume"],
|
|
157
|
+
ask_bid: t["ask_bid"]
|
|
158
|
+
})));
|
|
159
|
+
}
|
|
160
|
+
async function cmdCandlesMinutes(run, market, opts) {
|
|
161
|
+
if (!market) {
|
|
162
|
+
errorLine("Error: market argument required");
|
|
163
|
+
process.exitCode = 1;
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
166
|
+
const args = { market, unit: opts.unit };
|
|
167
|
+
if (opts.count !== void 0) args.count = opts.count;
|
|
168
|
+
if (opts.to !== void 0) args.to = opts.to;
|
|
169
|
+
const result = await run("market_get_candles_minutes", args);
|
|
170
|
+
const items = result.data;
|
|
171
|
+
if (opts.json) return printJson(items);
|
|
172
|
+
if (!items?.length) {
|
|
173
|
+
outputLine("No candle data");
|
|
174
|
+
return;
|
|
175
|
+
}
|
|
176
|
+
printTable(items.map((c) => ({
|
|
177
|
+
candle_date_time_kst: c["candle_date_time_kst"],
|
|
178
|
+
opening_price: c["opening_price"],
|
|
179
|
+
high_price: c["high_price"],
|
|
180
|
+
low_price: c["low_price"],
|
|
181
|
+
trade_price: c["trade_price"],
|
|
182
|
+
candle_acc_trade_volume: c["candle_acc_trade_volume"]
|
|
183
|
+
})));
|
|
184
|
+
}
|
|
185
|
+
async function cmdCandlesDays(run, market, opts) {
|
|
186
|
+
if (!market) {
|
|
187
|
+
errorLine("Error: market argument required");
|
|
188
|
+
process.exitCode = 1;
|
|
189
|
+
return;
|
|
190
|
+
}
|
|
191
|
+
const args = { market };
|
|
192
|
+
if (opts.count !== void 0) args.count = opts.count;
|
|
193
|
+
if (opts.to !== void 0) args.to = opts.to;
|
|
194
|
+
if (opts.convertingPriceUnit !== void 0) args.convertingPriceUnit = opts.convertingPriceUnit;
|
|
195
|
+
const result = await run("market_get_candles_days", args);
|
|
196
|
+
const items = result.data;
|
|
197
|
+
if (opts.json) return printJson(items);
|
|
198
|
+
if (!items?.length) {
|
|
199
|
+
outputLine("No candle data");
|
|
200
|
+
return;
|
|
201
|
+
}
|
|
202
|
+
printTable(items.map((c) => ({
|
|
203
|
+
candle_date_time_kst: c["candle_date_time_kst"],
|
|
204
|
+
opening_price: c["opening_price"],
|
|
205
|
+
high_price: c["high_price"],
|
|
206
|
+
low_price: c["low_price"],
|
|
207
|
+
trade_price: c["trade_price"],
|
|
208
|
+
candle_acc_trade_volume: c["candle_acc_trade_volume"]
|
|
209
|
+
})));
|
|
210
|
+
}
|
|
211
|
+
async function cmdCandlesWeeks(run, market, opts) {
|
|
212
|
+
if (!market) {
|
|
213
|
+
errorLine("Error: market argument required");
|
|
214
|
+
process.exitCode = 1;
|
|
215
|
+
return;
|
|
216
|
+
}
|
|
217
|
+
const args = { market };
|
|
218
|
+
if (opts.count !== void 0) args.count = opts.count;
|
|
219
|
+
if (opts.to !== void 0) args.to = opts.to;
|
|
220
|
+
const result = await run("market_get_candles_weeks", args);
|
|
221
|
+
const items = result.data;
|
|
222
|
+
if (opts.json) return printJson(items);
|
|
223
|
+
if (!items?.length) {
|
|
224
|
+
outputLine("No candle data");
|
|
225
|
+
return;
|
|
226
|
+
}
|
|
227
|
+
printTable(items.map((c) => ({
|
|
228
|
+
candle_date_time_kst: c["candle_date_time_kst"],
|
|
229
|
+
opening_price: c["opening_price"],
|
|
230
|
+
high_price: c["high_price"],
|
|
231
|
+
low_price: c["low_price"],
|
|
232
|
+
trade_price: c["trade_price"],
|
|
233
|
+
candle_acc_trade_volume: c["candle_acc_trade_volume"]
|
|
234
|
+
})));
|
|
235
|
+
}
|
|
236
|
+
async function cmdCandlesMonths(run, market, opts) {
|
|
237
|
+
if (!market) {
|
|
238
|
+
errorLine("Error: market argument required");
|
|
239
|
+
process.exitCode = 1;
|
|
240
|
+
return;
|
|
241
|
+
}
|
|
242
|
+
const args = { market };
|
|
243
|
+
if (opts.count !== void 0) args.count = opts.count;
|
|
244
|
+
if (opts.to !== void 0) args.to = opts.to;
|
|
245
|
+
const result = await run("market_get_candles_months", args);
|
|
246
|
+
const items = result.data;
|
|
247
|
+
if (opts.json) return printJson(items);
|
|
248
|
+
if (!items?.length) {
|
|
249
|
+
outputLine("No candle data");
|
|
250
|
+
return;
|
|
251
|
+
}
|
|
252
|
+
printTable(items.map((c) => ({
|
|
253
|
+
candle_date_time_kst: c["candle_date_time_kst"],
|
|
254
|
+
opening_price: c["opening_price"],
|
|
255
|
+
high_price: c["high_price"],
|
|
256
|
+
low_price: c["low_price"],
|
|
257
|
+
trade_price: c["trade_price"],
|
|
258
|
+
candle_acc_trade_volume: c["candle_acc_trade_volume"]
|
|
259
|
+
})));
|
|
260
|
+
}
|
|
261
|
+
async function cmdWarnings(run, json) {
|
|
262
|
+
const result = await run("market_get_warnings", {});
|
|
263
|
+
const data = result.data;
|
|
264
|
+
if (json) return printJson(data);
|
|
265
|
+
const items = data;
|
|
266
|
+
if (!items?.length) {
|
|
267
|
+
outputLine("No warnings found");
|
|
268
|
+
return;
|
|
269
|
+
}
|
|
270
|
+
printTable(items);
|
|
271
|
+
}
|
|
272
|
+
async function cmdNotices(run, opts) {
|
|
273
|
+
const args = {};
|
|
274
|
+
if (opts.count !== void 0) args.count = opts.count;
|
|
275
|
+
const result = await run("market_get_notices", args);
|
|
276
|
+
const data = result.data;
|
|
277
|
+
if (opts.json) return printJson(data);
|
|
278
|
+
const items = data;
|
|
279
|
+
if (!items?.length) {
|
|
280
|
+
outputLine("No notices found");
|
|
281
|
+
return;
|
|
282
|
+
}
|
|
283
|
+
printTable(items);
|
|
284
|
+
}
|
|
285
|
+
async function cmdFeeInout(run, currency, json) {
|
|
286
|
+
if (!currency) {
|
|
287
|
+
errorLine("Error: currency argument required. Example: bithumb market fee-inout BTC");
|
|
288
|
+
process.exitCode = 1;
|
|
289
|
+
return;
|
|
290
|
+
}
|
|
291
|
+
const result = await run("market_get_fee_inout", { currency });
|
|
292
|
+
const data = result.data;
|
|
293
|
+
if (json) return printJson(data);
|
|
294
|
+
const items = data;
|
|
295
|
+
if (Array.isArray(items) && items.length) {
|
|
296
|
+
printTable(items);
|
|
297
|
+
return;
|
|
298
|
+
}
|
|
299
|
+
printJson(data);
|
|
300
|
+
}
|
|
301
|
+
export {
|
|
302
|
+
handleMarketCommand
|
|
303
|
+
};
|
|
304
|
+
//# sourceMappingURL=market-GLU62BWO.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/commands/market.ts"],"sourcesContent":["import type { ToolRunner } from \"@bithumb-official/bithumb-core\";\nimport type { CliValues } from \"../parser.js\";\nimport { toNumber } from \"../parser.js\";\nimport { outputLine, errorLine, printJson, printTable, printKv } from \"../formatter.js\";\n\nexport async function handleMarketCommand(\n run: ToolRunner,\n action: string,\n rest: string[],\n v: CliValues,\n json: boolean,\n): Promise<void> {\n switch (action) {\n case \"markets\":\n return cmdMarkets(run, { isDetails: v.isDetails, json });\n case \"ticker\":\n return cmdTicker(run, rest[0] ?? v.market, json);\n case \"orderbook\":\n return cmdOrderbook(run, rest[0] ?? v.market, json);\n case \"trades\":\n return cmdTrades(run, rest[0] ?? v.market, {\n count: toNumber(v.count),\n to: v.to,\n cursor: v.cursor,\n daysAgo: toNumber(v.daysAgo),\n json,\n });\n case \"candles-minutes\":\n return cmdCandlesMinutes(run, rest[0] ?? v.market, {\n unit: toNumber(v.unit) ?? 1,\n count: toNumber(v.count),\n to: v.to,\n json,\n });\n case \"candles-days\":\n return cmdCandlesDays(run, rest[0] ?? v.market, {\n count: toNumber(v.count),\n to: v.to,\n convertingPriceUnit: v.convertingPriceUnit,\n json,\n });\n case \"candles-weeks\":\n return cmdCandlesWeeks(run, rest[0] ?? v.market, {\n count: toNumber(v.count),\n to: v.to,\n json,\n });\n case \"candles-months\":\n return cmdCandlesMonths(run, rest[0] ?? v.market, {\n count: toNumber(v.count),\n to: v.to,\n json,\n });\n case \"warnings\":\n return cmdWarnings(run, json);\n case \"notices\":\n return cmdNotices(run, { count: toNumber(v.count), json });\n case \"fee-inout\":\n return cmdFeeInout(run, rest[0] ?? v.currency, json);\n default:\n errorLine(`Unknown market command: ${action}. Run 'bithumb market --help' for usage.`);\n process.exitCode = 1;\n }\n}\n\nasync function cmdMarkets(\n run: ToolRunner,\n opts: { isDetails?: boolean; json: boolean },\n): Promise<void> {\n const result = await run(\"market_get_markets\", {\n ...(opts.isDetails !== undefined && { isDetails: opts.isDetails }),\n });\n const items = result.data as Record<string, unknown>[];\n if (opts.json) return printJson(items);\n if (!items?.length) { outputLine(\"No markets found\"); return; }\n printTable(items.map((m) => ({\n market: m[\"market\"],\n korean_name: m[\"korean_name\"],\n english_name: m[\"english_name\"],\n ...(opts.isDetails ? { market_warning: m[\"market_warning\"] ?? \"\" } : {}),\n })));\n}\n\nasync function cmdTicker(run: ToolRunner, markets: string | undefined, json: boolean): Promise<void> {\n if (!markets) { errorLine(\"Error: market argument required. Example: bithumb market ticker KRW-BTC\"); process.exitCode = 1; return; }\n const result = await run(\"market_get_ticker\", { markets });\n const items = result.data as Record<string, unknown>[];\n if (json) return printJson(items);\n if (!items?.length) { outputLine(\"No ticker data\"); return; }\n printTable(items.map((t) => ({\n market: t[\"market\"],\n trade_price: t[\"trade_price\"],\n signed_change_rate: t[\"signed_change_rate\"],\n acc_trade_volume_24h: t[\"acc_trade_volume_24h\"],\n high_price: t[\"high_price\"],\n low_price: t[\"low_price\"],\n })));\n}\n\nasync function cmdOrderbook(run: ToolRunner, markets: string | undefined, json: boolean): Promise<void> {\n if (!markets) { errorLine(\"Error: market argument required. Example: bithumb market orderbook KRW-BTC\"); process.exitCode = 1; return; }\n const result = await run(\"market_get_orderbook\", { markets });\n const items = result.data as Record<string, unknown>[];\n if (json) return printJson(items);\n if (!items?.length) { outputLine(\"No orderbook data\"); return; }\n for (const book of items) {\n outputLine(`\\n--- ${book[\"market\"]} ---`);\n outputLine(`Total Ask Size: ${book[\"total_ask_size\"]}`);\n outputLine(`Total Bid Size: ${book[\"total_bid_size\"]}`);\n const units = book[\"orderbook_units\"] as Record<string, unknown>[];\n if (units?.length) {\n printTable(units.slice(0, 10).map((u) => ({\n ask_price: u[\"ask_price\"],\n ask_size: u[\"ask_size\"],\n bid_price: u[\"bid_price\"],\n bid_size: u[\"bid_size\"],\n })));\n }\n }\n}\n\nasync function cmdTrades(\n run: ToolRunner,\n market: string | undefined,\n opts: { count?: number; to?: string; cursor?: string; daysAgo?: number; json: boolean },\n): Promise<void> {\n if (!market) { errorLine(\"Error: market argument required. Example: bithumb market trades KRW-BTC\"); process.exitCode = 1; return; }\n const args: Record<string, unknown> = { market };\n if (opts.count !== undefined) args.count = opts.count;\n if (opts.to !== undefined) args.to = opts.to;\n if (opts.cursor !== undefined) args.cursor = opts.cursor;\n if (opts.daysAgo !== undefined) args.daysAgo = opts.daysAgo;\n const result = await run(\"market_get_trades\", args);\n const items = result.data as Record<string, unknown>[];\n if (opts.json) return printJson(items);\n if (!items?.length) { outputLine(\"No trades found\"); return; }\n printTable(items.map((t) => ({\n trade_date_utc: t[\"trade_date_utc\"],\n trade_time_utc: t[\"trade_time_utc\"],\n trade_price: t[\"trade_price\"],\n trade_volume: t[\"trade_volume\"],\n ask_bid: t[\"ask_bid\"],\n })));\n}\n\nasync function cmdCandlesMinutes(\n run: ToolRunner,\n market: string | undefined,\n opts: { unit: number; count?: number; to?: string; json: boolean },\n): Promise<void> {\n if (!market) { errorLine(\"Error: market argument required\"); process.exitCode = 1; return; }\n const args: Record<string, unknown> = { market, unit: opts.unit };\n if (opts.count !== undefined) args.count = opts.count;\n if (opts.to !== undefined) args.to = opts.to;\n const result = await run(\"market_get_candles_minutes\", args);\n const items = result.data as Record<string, unknown>[];\n if (opts.json) return printJson(items);\n if (!items?.length) { outputLine(\"No candle data\"); return; }\n printTable(items.map((c) => ({\n candle_date_time_kst: c[\"candle_date_time_kst\"],\n opening_price: c[\"opening_price\"],\n high_price: c[\"high_price\"],\n low_price: c[\"low_price\"],\n trade_price: c[\"trade_price\"],\n candle_acc_trade_volume: c[\"candle_acc_trade_volume\"],\n })));\n}\n\nasync function cmdCandlesDays(\n run: ToolRunner,\n market: string | undefined,\n opts: { count?: number; to?: string; convertingPriceUnit?: string; json: boolean },\n): Promise<void> {\n if (!market) { errorLine(\"Error: market argument required\"); process.exitCode = 1; return; }\n const args: Record<string, unknown> = { market };\n if (opts.count !== undefined) args.count = opts.count;\n if (opts.to !== undefined) args.to = opts.to;\n if (opts.convertingPriceUnit !== undefined) args.convertingPriceUnit = opts.convertingPriceUnit;\n const result = await run(\"market_get_candles_days\", args);\n const items = result.data as Record<string, unknown>[];\n if (opts.json) return printJson(items);\n if (!items?.length) { outputLine(\"No candle data\"); return; }\n printTable(items.map((c) => ({\n candle_date_time_kst: c[\"candle_date_time_kst\"],\n opening_price: c[\"opening_price\"],\n high_price: c[\"high_price\"],\n low_price: c[\"low_price\"],\n trade_price: c[\"trade_price\"],\n candle_acc_trade_volume: c[\"candle_acc_trade_volume\"],\n })));\n}\n\nasync function cmdCandlesWeeks(\n run: ToolRunner,\n market: string | undefined,\n opts: { count?: number; to?: string; json: boolean },\n): Promise<void> {\n if (!market) { errorLine(\"Error: market argument required\"); process.exitCode = 1; return; }\n const args: Record<string, unknown> = { market };\n if (opts.count !== undefined) args.count = opts.count;\n if (opts.to !== undefined) args.to = opts.to;\n const result = await run(\"market_get_candles_weeks\", args);\n const items = result.data as Record<string, unknown>[];\n if (opts.json) return printJson(items);\n if (!items?.length) { outputLine(\"No candle data\"); return; }\n printTable(items.map((c) => ({\n candle_date_time_kst: c[\"candle_date_time_kst\"],\n opening_price: c[\"opening_price\"],\n high_price: c[\"high_price\"],\n low_price: c[\"low_price\"],\n trade_price: c[\"trade_price\"],\n candle_acc_trade_volume: c[\"candle_acc_trade_volume\"],\n })));\n}\n\nasync function cmdCandlesMonths(\n run: ToolRunner,\n market: string | undefined,\n opts: { count?: number; to?: string; json: boolean },\n): Promise<void> {\n if (!market) { errorLine(\"Error: market argument required\"); process.exitCode = 1; return; }\n const args: Record<string, unknown> = { market };\n if (opts.count !== undefined) args.count = opts.count;\n if (opts.to !== undefined) args.to = opts.to;\n const result = await run(\"market_get_candles_months\", args);\n const items = result.data as Record<string, unknown>[];\n if (opts.json) return printJson(items);\n if (!items?.length) { outputLine(\"No candle data\"); return; }\n printTable(items.map((c) => ({\n candle_date_time_kst: c[\"candle_date_time_kst\"],\n opening_price: c[\"opening_price\"],\n high_price: c[\"high_price\"],\n low_price: c[\"low_price\"],\n trade_price: c[\"trade_price\"],\n candle_acc_trade_volume: c[\"candle_acc_trade_volume\"],\n })));\n}\n\nasync function cmdWarnings(run: ToolRunner, json: boolean): Promise<void> {\n const result = await run(\"market_get_warnings\", {});\n const data = result.data;\n if (json) return printJson(data);\n const items = data as Record<string, unknown>[];\n if (!items?.length) { outputLine(\"No warnings found\"); return; }\n printTable(items);\n}\n\nasync function cmdNotices(run: ToolRunner, opts: { count?: number; json: boolean }): Promise<void> {\n const args: Record<string, unknown> = {};\n if (opts.count !== undefined) args.count = opts.count;\n const result = await run(\"market_get_notices\", args);\n const data = result.data;\n if (opts.json) return printJson(data);\n const items = data as Record<string, unknown>[];\n if (!items?.length) { outputLine(\"No notices found\"); return; }\n printTable(items);\n}\n\nasync function cmdFeeInout(run: ToolRunner, currency: string | undefined, json: boolean): Promise<void> {\n if (!currency) { errorLine(\"Error: currency argument required. Example: bithumb market fee-inout BTC\"); process.exitCode = 1; return; }\n const result = await run(\"market_get_fee_inout\", { currency });\n const data = result.data;\n if (json) return printJson(data);\n const items = data as Record<string, unknown>[];\n if (Array.isArray(items) && items.length) { printTable(items); return; }\n printJson(data);\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
// src/help/setup.ts
|
|
4
|
+
var MODULE_HELP = `
|
|
5
|
+
Usage: bithumb setup --client <client> [--profile <name>] [--modules <list>]
|
|
6
|
+
|
|
7
|
+
Configure MCP client integration for supported AI coding tools.
|
|
8
|
+
|
|
9
|
+
Options:
|
|
10
|
+
--client <client> Target client: claude-desktop, cursor, windsurf, vscode, claude-code
|
|
11
|
+
--profile <name> Config profile to use (default: "default")
|
|
12
|
+
--modules <list> Comma-separated modules to enable
|
|
13
|
+
|
|
14
|
+
Examples:
|
|
15
|
+
bithumb setup --client claude-desktop
|
|
16
|
+
bithumb setup --client cursor --modules market,account
|
|
17
|
+
`;
|
|
18
|
+
export {
|
|
19
|
+
MODULE_HELP
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=setup-LAAVO63H.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/help/setup.ts"],"sourcesContent":["export const MODULE_HELP = `\nUsage: bithumb setup --client <client> [--profile <name>] [--modules <list>]\n\nConfigure MCP client integration for supported AI coding tools.\n\nOptions:\n --client <client> Target client: claude-desktop, cursor, windsurf, vscode, claude-code\n --profile <name> Config profile to use (default: \"default\")\n --modules <list> Comma-separated modules to enable\n\nExamples:\n bithumb setup --client claude-desktop\n bithumb setup --client cursor --modules market,account\n`;\n"],"mappings":";;;AAAO,IAAM,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;","names":[]}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
// src/help/system.ts
|
|
4
|
+
var MODULE_HELP = `
|
|
5
|
+
Usage: bithumb system <command> [options]
|
|
6
|
+
|
|
7
|
+
Commands:
|
|
8
|
+
capabilities Server capabilities and module availability for agent planning
|
|
9
|
+
diagnose Run connectivity, authentication, config, and module diagnostics
|
|
10
|
+
audit View local trade audit log
|
|
11
|
+
|
|
12
|
+
Options:
|
|
13
|
+
--json Output as JSON
|
|
14
|
+
--profile <name> Config profile to use (default: "default")
|
|
15
|
+
--verbose Enable verbose logging
|
|
16
|
+
|
|
17
|
+
Examples:
|
|
18
|
+
bithumb system capabilities
|
|
19
|
+
bithumb system capabilities --json
|
|
20
|
+
bithumb system diagnose
|
|
21
|
+
bithumb system diagnose --profile trading
|
|
22
|
+
bithumb system audit --limit 10
|
|
23
|
+
|
|
24
|
+
Notes:
|
|
25
|
+
- Use 'capabilities' to discover which modules are enabled and which require auth.
|
|
26
|
+
- Use 'diagnose' to verify API reachability, auth status, TOML config, and module status.
|
|
27
|
+
- Use 'audit' to view local CLI/MCP trade audit log entries (reads ~/.bithumb/logs/).
|
|
28
|
+
- All three commands run without API credentials (auth is reported but not required).
|
|
29
|
+
`;
|
|
30
|
+
var CAPABILITIES_HELP = `
|
|
31
|
+
Usage: bithumb system capabilities [options]
|
|
32
|
+
|
|
33
|
+
Show server capabilities and module availability for agent planning.
|
|
34
|
+
Reports which modules are enabled, which require authentication, and which
|
|
35
|
+
are read-only in the current configuration.
|
|
36
|
+
|
|
37
|
+
Required:
|
|
38
|
+
(none)
|
|
39
|
+
|
|
40
|
+
Options:
|
|
41
|
+
--json Output as JSON
|
|
42
|
+
|
|
43
|
+
Examples:
|
|
44
|
+
bithumb system capabilities
|
|
45
|
+
bithumb system capabilities --json
|
|
46
|
+
`;
|
|
47
|
+
var DIAGNOSE_HELP = `
|
|
48
|
+
Usage: bithumb system diagnose [options]
|
|
49
|
+
|
|
50
|
+
Run connectivity, authentication, config, and module diagnostics against the
|
|
51
|
+
Bithumb API. Useful as a first step when authenticated commands fail or when
|
|
52
|
+
verifying a fresh \`bithumb setup\`.
|
|
53
|
+
|
|
54
|
+
Options:
|
|
55
|
+
--json Output as JSON
|
|
56
|
+
--profile <name> Config profile to use (default: "default")
|
|
57
|
+
--verbose Enable verbose logging
|
|
58
|
+
|
|
59
|
+
Examples:
|
|
60
|
+
bithumb system diagnose
|
|
61
|
+
bithumb system diagnose --json
|
|
62
|
+
bithumb system diagnose --profile trading
|
|
63
|
+
|
|
64
|
+
Notes:
|
|
65
|
+
- Does not require API credentials to run, but reports auth status.
|
|
66
|
+
- Output includes API reachability, auth validity, config OK, module status.
|
|
67
|
+
`;
|
|
68
|
+
var AUDIT_HELP = `
|
|
69
|
+
Usage: bithumb system audit [options]
|
|
70
|
+
|
|
71
|
+
View the local trade audit log (records of CLI/MCP-issued tool calls).
|
|
72
|
+
Reads from \`~/.bithumb/logs/trade-YYYY-MM-DD.log\` over the last 7 days.
|
|
73
|
+
Does not require API credentials \u2014 purely local file access.
|
|
74
|
+
|
|
75
|
+
Required:
|
|
76
|
+
(none)
|
|
77
|
+
|
|
78
|
+
Options:
|
|
79
|
+
--limit <n> Number of log entries to return (default: 20)
|
|
80
|
+
--tool <name> Filter by tool name
|
|
81
|
+
--since <date> Show entries since date (ISO format)
|
|
82
|
+
--level <level> Filter by log level (INFO, WARN, ERROR, DEBUG)
|
|
83
|
+
|
|
84
|
+
Examples:
|
|
85
|
+
bithumb system audit --limit 10
|
|
86
|
+
bithumb system audit --since 2026-05-01 --level ERROR
|
|
87
|
+
bithumb system audit --tool account_get_balance --json
|
|
88
|
+
`;
|
|
89
|
+
var ACTION_HELP = {
|
|
90
|
+
capabilities: CAPABILITIES_HELP,
|
|
91
|
+
diagnose: DIAGNOSE_HELP,
|
|
92
|
+
audit: AUDIT_HELP
|
|
93
|
+
};
|
|
94
|
+
export {
|
|
95
|
+
ACTION_HELP,
|
|
96
|
+
MODULE_HELP
|
|
97
|
+
};
|
|
98
|
+
//# sourceMappingURL=system-BRZY7PTZ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/help/system.ts"],"sourcesContent":["export const MODULE_HELP = `\nUsage: bithumb system <command> [options]\n\nCommands:\n capabilities Server capabilities and module availability for agent planning\n diagnose Run connectivity, authentication, config, and module diagnostics\n audit View local trade audit log\n\nOptions:\n --json Output as JSON\n --profile <name> Config profile to use (default: \"default\")\n --verbose Enable verbose logging\n\nExamples:\n bithumb system capabilities\n bithumb system capabilities --json\n bithumb system diagnose\n bithumb system diagnose --profile trading\n bithumb system audit --limit 10\n\nNotes:\n - Use 'capabilities' to discover which modules are enabled and which require auth.\n - Use 'diagnose' to verify API reachability, auth status, TOML config, and module status.\n - Use 'audit' to view local CLI/MCP trade audit log entries (reads ~/.bithumb/logs/).\n - All three commands run without API credentials (auth is reported but not required).\n`;\n\nconst CAPABILITIES_HELP = `\nUsage: bithumb system capabilities [options]\n\nShow server capabilities and module availability for agent planning.\nReports which modules are enabled, which require authentication, and which\nare read-only in the current configuration.\n\nRequired:\n (none)\n\nOptions:\n --json Output as JSON\n\nExamples:\n bithumb system capabilities\n bithumb system capabilities --json\n`;\n\nconst DIAGNOSE_HELP = `\nUsage: bithumb system diagnose [options]\n\nRun connectivity, authentication, config, and module diagnostics against the\nBithumb API. Useful as a first step when authenticated commands fail or when\nverifying a fresh \\`bithumb setup\\`.\n\nOptions:\n --json Output as JSON\n --profile <name> Config profile to use (default: \"default\")\n --verbose Enable verbose logging\n\nExamples:\n bithumb system diagnose\n bithumb system diagnose --json\n bithumb system diagnose --profile trading\n\nNotes:\n - Does not require API credentials to run, but reports auth status.\n - Output includes API reachability, auth validity, config OK, module status.\n`;\n\nconst AUDIT_HELP = `\nUsage: bithumb system audit [options]\n\nView the local trade audit log (records of CLI/MCP-issued tool calls).\nReads from \\`~/.bithumb/logs/trade-YYYY-MM-DD.log\\` over the last 7 days.\nDoes not require API credentials — purely local file access.\n\nRequired:\n (none)\n\nOptions:\n --limit <n> Number of log entries to return (default: 20)\n --tool <name> Filter by tool name\n --since <date> Show entries since date (ISO format)\n --level <level> Filter by log level (INFO, WARN, ERROR, DEBUG)\n\nExamples:\n bithumb system audit --limit 10\n bithumb system audit --since 2026-05-01 --level ERROR\n bithumb system audit --tool account_get_balance --json\n`;\n\nexport const ACTION_HELP: Record<string, string> = {\n capabilities: CAPABILITIES_HELP,\n diagnose: DIAGNOSE_HELP,\n audit: AUDIT_HELP,\n};\n"],"mappings":";;;AAAO,IAAM,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA2B3B,IAAM,oBAAoB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAkB1B,IAAM,gBAAgB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAsBtB,IAAM,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAsBZ,IAAM,cAAsC;AAAA,EACjD,cAAc;AAAA,EACd,UAAU;AAAA,EACV,OAAO;AACT;","names":[]}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
toNumber
|
|
4
|
+
} from "./chunk-AUQ7MB6O.js";
|
|
5
|
+
import {
|
|
6
|
+
errorLine,
|
|
7
|
+
outputLine,
|
|
8
|
+
printJson,
|
|
9
|
+
printKv,
|
|
10
|
+
printTable
|
|
11
|
+
} from "./chunk-FYO6WLZI.js";
|
|
12
|
+
|
|
13
|
+
// src/commands/system.ts
|
|
14
|
+
async function handleSystemCommand(run, action, v, json) {
|
|
15
|
+
switch (action) {
|
|
16
|
+
case "capabilities":
|
|
17
|
+
return cmdCapabilities(run, json);
|
|
18
|
+
case "diagnose":
|
|
19
|
+
return cmdDiagnose(run, json);
|
|
20
|
+
case "audit":
|
|
21
|
+
return cmdAudit(run, {
|
|
22
|
+
limit: toNumber(v.limit),
|
|
23
|
+
tool: v.tool,
|
|
24
|
+
since: v.since,
|
|
25
|
+
level: v.level,
|
|
26
|
+
json
|
|
27
|
+
});
|
|
28
|
+
default:
|
|
29
|
+
errorLine(`Unknown system command: ${action ?? "(none)"}. Run 'bithumb system --help' for usage.`);
|
|
30
|
+
process.exitCode = 1;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
async function cmdCapabilities(run, json) {
|
|
34
|
+
const result = await run("system_get_capabilities", {});
|
|
35
|
+
const data = result.data ?? result;
|
|
36
|
+
if (json) return printJson(data);
|
|
37
|
+
printKv(data);
|
|
38
|
+
}
|
|
39
|
+
async function cmdDiagnose(run, json) {
|
|
40
|
+
const result = await run("system_diagnose", {});
|
|
41
|
+
const data = result.data ?? result;
|
|
42
|
+
if (json) return printJson(data);
|
|
43
|
+
printKv(data);
|
|
44
|
+
}
|
|
45
|
+
async function cmdAudit(run, opts) {
|
|
46
|
+
const args = {};
|
|
47
|
+
if (opts.limit !== void 0) args.limit = opts.limit;
|
|
48
|
+
if (opts.tool !== void 0) args.tool = opts.tool;
|
|
49
|
+
if (opts.since !== void 0) args.since = opts.since;
|
|
50
|
+
if (opts.level !== void 0) args.level = opts.level;
|
|
51
|
+
const result = await run("system_get_audit_log", args);
|
|
52
|
+
const items = result.data;
|
|
53
|
+
if (opts.json) return printJson(items);
|
|
54
|
+
if (!items?.length) {
|
|
55
|
+
outputLine("No audit entries found");
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
printTable(items.map((entry) => ({
|
|
59
|
+
timestamp: entry["ts"],
|
|
60
|
+
level: entry["level"],
|
|
61
|
+
tool: entry["tool"],
|
|
62
|
+
message: entry["message"],
|
|
63
|
+
elapsed_ms: entry["elapsed"]
|
|
64
|
+
})));
|
|
65
|
+
}
|
|
66
|
+
export {
|
|
67
|
+
handleSystemCommand
|
|
68
|
+
};
|
|
69
|
+
//# sourceMappingURL=system-XRZ2KHXL.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/commands/system.ts"],"sourcesContent":["import type { ToolRunner } from \"@bithumb-official/bithumb-core\";\nimport type { CliValues } from \"../parser.js\";\nimport { toNumber } from \"../parser.js\";\nimport { outputLine, errorLine, printJson, printTable, printKv } from \"../formatter.js\";\n\nexport async function handleSystemCommand(\n run: ToolRunner,\n action: string | undefined,\n v: CliValues,\n json: boolean,\n): Promise<void> {\n switch (action) {\n case \"capabilities\":\n return cmdCapabilities(run, json);\n case \"diagnose\":\n return cmdDiagnose(run, json);\n case \"audit\":\n return cmdAudit(run, {\n limit: toNumber(v.limit),\n tool: v.tool,\n since: v.since,\n level: v.level,\n json,\n });\n default:\n errorLine(`Unknown system command: ${action ?? \"(none)\"}. Run 'bithumb system --help' for usage.`);\n process.exitCode = 1;\n }\n}\n\nasync function cmdCapabilities(run: ToolRunner, json: boolean): Promise<void> {\n const result = await run(\"system_get_capabilities\", {});\n const data = result.data ?? result;\n if (json) return printJson(data);\n printKv(data as Record<string, unknown>);\n}\n\nasync function cmdDiagnose(run: ToolRunner, json: boolean): Promise<void> {\n const result = await run(\"system_diagnose\", {});\n const data = result.data ?? result;\n if (json) return printJson(data);\n printKv(data as Record<string, unknown>);\n}\n\nasync function cmdAudit(\n run: ToolRunner,\n opts: { limit?: number; tool?: string; since?: string; level?: string; json: boolean },\n): Promise<void> {\n const args: Record<string, unknown> = {};\n if (opts.limit !== undefined) args.limit = opts.limit;\n if (opts.tool !== undefined) args.tool = opts.tool;\n if (opts.since !== undefined) args.since = opts.since;\n if (opts.level !== undefined) args.level = opts.level;\n const result = await run(\"system_get_audit_log\", args);\n const items = result.data as Record<string, unknown>[];\n if (opts.json) return printJson(items);\n if (!items?.length) { outputLine(\"No audit entries found\"); return; }\n printTable(items.map((entry) => ({\n timestamp: entry[\"ts\"],\n level: entry[\"level\"],\n tool: entry[\"tool\"],\n message: entry[\"message\"],\n elapsed_ms: entry[\"elapsed\"],\n })));\n}\n"],"mappings":";;;;;;;;;;;;;AAKA,eAAsB,oBACpB,KACA,QACA,GACA,MACe;AACf,UAAQ,QAAQ;AAAA,IACd,KAAK;AACH,aAAO,gBAAgB,KAAK,IAAI;AAAA,IAClC,KAAK;AACH,aAAO,YAAY,KAAK,IAAI;AAAA,IAC9B,KAAK;AACH,aAAO,SAAS,KAAK;AAAA,QACnB,OAAO,SAAS,EAAE,KAAK;AAAA,QACvB,MAAM,EAAE;AAAA,QACR,OAAO,EAAE;AAAA,QACT,OAAO,EAAE;AAAA,QACT;AAAA,MACF,CAAC;AAAA,IACH;AACE,gBAAU,2BAA2B,UAAU,QAAQ,0CAA0C;AACjG,cAAQ,WAAW;AAAA,EACvB;AACF;AAEA,eAAe,gBAAgB,KAAiB,MAA8B;AAC5E,QAAM,SAAS,MAAM,IAAI,2BAA2B,CAAC,CAAC;AACtD,QAAM,OAAO,OAAO,QAAQ;AAC5B,MAAI,KAAM,QAAO,UAAU,IAAI;AAC/B,UAAQ,IAA+B;AACzC;AAEA,eAAe,YAAY,KAAiB,MAA8B;AACxE,QAAM,SAAS,MAAM,IAAI,mBAAmB,CAAC,CAAC;AAC9C,QAAM,OAAO,OAAO,QAAQ;AAC5B,MAAI,KAAM,QAAO,UAAU,IAAI;AAC/B,UAAQ,IAA+B;AACzC;AAEA,eAAe,SACb,KACA,MACe;AACf,QAAM,OAAgC,CAAC;AACvC,MAAI,KAAK,UAAU,OAAW,MAAK,QAAQ,KAAK;AAChD,MAAI,KAAK,SAAS,OAAW,MAAK,OAAO,KAAK;AAC9C,MAAI,KAAK,UAAU,OAAW,MAAK,QAAQ,KAAK;AAChD,MAAI,KAAK,UAAU,OAAW,MAAK,QAAQ,KAAK;AAChD,QAAM,SAAS,MAAM,IAAI,wBAAwB,IAAI;AACrD,QAAM,QAAQ,OAAO;AACrB,MAAI,KAAK,KAAM,QAAO,UAAU,KAAK;AACrC,MAAI,CAAC,OAAO,QAAQ;AAAE,eAAW,wBAAwB;AAAG;AAAA,EAAQ;AACpE,aAAW,MAAM,IAAI,CAAC,WAAW;AAAA,IAC/B,WAAW,MAAM,IAAI;AAAA,IACrB,OAAO,MAAM,OAAO;AAAA,IACpB,MAAM,MAAM,MAAM;AAAA,IAClB,SAAS,MAAM,SAAS;AAAA,IACxB,YAAY,MAAM,SAAS;AAAA,EAC7B,EAAE,CAAC;AACL;","names":[]}
|