@toromarket/cli 0.1.0

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.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/index.ts","../src/client.ts","../src/config/credentials.ts","../src/index.ts"],"sourcesContent":["import chalk from \"chalk\";\nimport { Command } from \"commander\";\nimport type { AuthResponse, OrderSide } from \"@toromarket/sdk\";\nimport { ToromarketError } from \"@toromarket/sdk\";\nimport { createClient } from \"../client.js\";\nimport { getCredentialsPath, saveCredentials } from \"../config/credentials.js\";\n\nfunction print(data: unknown): void {\n const normalized = data === undefined ? { ok: true } : data;\n process.stdout.write(`${JSON.stringify(normalized, null, 2)}\\n`);\n}\n\nfunction printError(error: unknown): void {\n if (error instanceof ToromarketError) {\n const payload: Record<string, unknown> = {\n error: error.message,\n statusCode: error.statusCode\n };\n if (error.code) {\n payload.code = error.code;\n }\n process.stderr.write(`${chalk.red(\"Error:\")} ${JSON.stringify(payload, null, 2)}\\n`);\n } else {\n const msg = error instanceof Error ? error.message : String(error);\n process.stderr.write(`${chalk.red(\"Error:\")} ${msg}\\n`);\n }\n}\n\nasync function withClient(\n action: (program: Command, client: Awaited<ReturnType<typeof createClient>>) => Promise<void>\n): Promise<void> {\n const program = new Command();\n const client = await createClient();\n try {\n await action(program, client);\n } catch (error) {\n printError(error);\n process.exitCode = 1;\n }\n}\n\nexport function createProgram(): Command {\n const program = new Command();\n program\n .name(\"toromarket\")\n .description(\"Toromarket CLI\")\n .version(\"0.1.0\");\n\n program\n .command(\"register\")\n .requiredOption(\"--email <email>\")\n .requiredOption(\"--username <username>\")\n .requiredOption(\"--password <password>\")\n .action(async (options) => {\n await withClient(async (_, client) => {\n const auth = await client.auth.register(options);\n await saveAuth(auth, options.email);\n print(auth);\n });\n });\n\n program\n .command(\"login\")\n .requiredOption(\"--email <email>\")\n .requiredOption(\"--password <password>\")\n .action(async (options) => {\n await withClient(async (_, client) => {\n const auth = await client.auth.login(options);\n await saveAuth(auth, options.email);\n print(auth);\n });\n });\n\n const markets = program.command(\"markets\").description(\"Prediction markets\");\n markets.command(\"list\").action(async () => {\n await withClient(async (_, client) => {\n print(await client.predictions.listMarkets());\n });\n });\n\n markets.command(\"get\").argument(\"<marketId>\").action(async (marketId: string) => {\n await withClient(async (_, client) => {\n print(await client.predictions.getMarket(marketId));\n });\n });\n markets\n .command(\"trades\").argument(\"<marketId>\")\n .option(\"--limit <limit>\").option(\"--offset <offset>\")\n .action(async (marketId: string, options: { limit?: string; offset?: string }) => {\n await withClient(async (_, client) => {\n print(await client.predictions.getMarketTrades(marketId, {\n ...(options.limit ? { limit: Number(options.limit) } : {}),\n ...(options.offset ? { offset: Number(options.offset) } : {})\n }));\n });\n });\n markets.command(\"positions\").argument(\"<marketId>\").action(async (marketId: string) => {\n await withClient(async (_, client) => { print(await client.predictions.getMarketPositions(marketId)); });\n });\n markets.command(\"orders\").argument(\"<marketId>\").action(async (marketId: string) => {\n await withClient(async (_, client) => { print(await client.predictions.getMarketOrders(marketId)); });\n });\n\n program\n .command(\"buy\")\n .argument(\"<marketId>\")\n .requiredOption(\"--outcome-id <outcomeId>\")\n .requiredOption(\"--shares <shares>\")\n .requiredOption(\"--price <price>\")\n .action(async (marketId: string, options) => {\n await placePredictionOrder(marketId, \"BUY\", options);\n });\n\n program\n .command(\"sell\")\n .argument(\"<marketId>\")\n .requiredOption(\"--outcome-id <outcomeId>\")\n .requiredOption(\"--shares <shares>\")\n .requiredOption(\"--price <price>\")\n .action(async (marketId: string, options) => {\n await placePredictionOrder(marketId, \"SELL\", options);\n });\n\n const orders = program.command(\"orders\").description(\"Prediction orders\");\n orders\n .command(\"cancel\")\n .argument(\"<marketId>\")\n .argument(\"<orderId>\")\n .action(async (marketId: string, orderId: string) => {\n await withClient(async (_, client) => {\n print(await client.predictions.cancelOrder(marketId, orderId));\n });\n });\n\n const crypto = program.command(\"crypto\").description(\"Crypto markets\");\n crypto.command(\"list\").action(async () => {\n await withClient(async (_, client) => {\n print(await client.markets.list());\n });\n });\n crypto\n .command(\"buy\")\n .argument(\"<symbol>\")\n .requiredOption(\"--quantity <quantity>\")\n .action(async (symbol: string, options) => {\n await tradeCrypto(symbol, \"BUY\", options.quantity);\n });\n crypto\n .command(\"sell\")\n .argument(\"<symbol>\")\n .requiredOption(\"--quantity <quantity>\")\n .action(async (symbol: string, options) => {\n await tradeCrypto(symbol, \"SELL\", options.quantity);\n });\n crypto.command(\"get\").argument(\"<symbol>\").action(async (symbol: string) => {\n await withClient(async (_, client) => { print(await client.markets.get(symbol)); });\n });\n crypto\n .command(\"klines\").argument(\"<symbol>\")\n .option(\"--interval <interval>\", \"e.g. 1h, 4h, 1d\")\n .option(\"--limit <limit>\")\n .action(async (symbol: string, options: { interval?: string; limit?: string }) => {\n await withClient(async (_, client) => {\n print(await client.markets.getKlines(symbol, {\n ...(options.interval ? { interval: options.interval } : {}),\n ...(options.limit ? { limit: Number(options.limit) } : {})\n }));\n });\n });\n crypto.command(\"movers\").action(async () => {\n await withClient(async (_, client) => { print(await client.markets.getMovers()); });\n });\n\n program.command(\"portfolio\").action(async () => {\n await withClient(async (_, client) => {\n print(await client.portfolio.get());\n });\n });\n\n program.command(\"positions\").action(async () => {\n await withClient(async (_, client) => {\n print(await client.predictions.getPositions());\n });\n });\n\n program.command(\"balance\").action(async () => {\n await withClient(async (_, client) => {\n const portfolio = await client.portfolio.get();\n print({ balance: portfolio.balance ?? null, totalValue: portfolio.totalValue ?? null });\n });\n });\n\n program.command(\"trades\")\n .option(\"--limit <limit>\")\n .option(\"--offset <offset>\")\n .action(async (options: { limit?: string; offset?: string }) => {\n await withClient(async (_, client) => {\n print(await client.portfolio.getTrades({\n ...(options.limit ? { limit: Number(options.limit) } : {}),\n ...(options.offset ? { offset: Number(options.offset) } : {})\n }));\n });\n });\n program.command(\"open-orders\").action(async () => {\n await withClient(async (_, client) => { print(await client.portfolio.getOpenOrders()); });\n });\n program.command(\"portfolio-metrics\").action(async () => {\n await withClient(async (_, client) => { print(await client.portfolio.getMetrics()); });\n });\n\n program\n .command(\"comment\")\n .argument(\"<marketId>\")\n .argument(\"<content>\")\n .action(async (marketId: string, content: string) => {\n await withClient(async (_, client) => {\n print(await client.chat.post(`PRED-${marketId}`, { content }));\n });\n });\n\n const funds = program.command(\"funds\").description(\"Fund actions\");\n funds.command(\"list\").action(async () => {\n await withClient(async (_, client) => {\n print(await client.funds.list());\n });\n });\n funds\n .command(\"join\")\n .argument(\"<fundId>\")\n .requiredOption(\"--stake <stake>\")\n .option(\"--invite-code <inviteCode>\")\n .action(async (fundId: string, options: { stake: string; inviteCode?: string }) => {\n await withClient(async (_, client) => {\n print(\n await client.funds.join(fundId, {\n stake: Number(options.stake),\n ...(options.inviteCode ? { inviteCode: options.inviteCode } : {})\n })\n );\n });\n });\n funds\n .command(\"create\")\n .requiredOption(\"--name <name>\")\n .requiredOption(\"--description <description>\")\n .requiredOption(\"--initial-stake <initialStake>\")\n .option(\"--invite-only\")\n .option(\"--min-stake <minStakeToJoin>\")\n .option(\"--invite-code <inviteCode>\")\n .action(\n async (options: {\n name: string;\n description: string;\n initialStake: string;\n inviteOnly?: boolean;\n minStake?: string;\n inviteCode?: string;\n }) => {\n await withClient(async (_, client) => {\n print(\n await client.funds.create({\n name: options.name,\n description: options.description,\n initialStake: Number(options.initialStake),\n ...(options.inviteOnly ? { inviteOnly: true } : {}),\n ...(options.minStake ? { minStakeToJoin: Number(options.minStake) } : {}),\n ...(options.inviteCode ? { inviteCode: options.inviteCode } : {})\n })\n );\n });\n }\n );\n funds\n .command(\"message\")\n .argument(\"<fundId>\")\n .argument(\"<content>\")\n .action(async (fundId: string, content: string) => {\n await withClient(async (_, client) => {\n print(await client.funds.chat(fundId, { content }));\n });\n });\n funds.command(\"members\").argument(\"<fundId>\").action(async (fundId: string) => {\n await withClient(async (_, client) => {\n print(await client.funds.members(fundId));\n });\n });\n funds\n .command(\"set-role\")\n .argument(\"<fundId>\")\n .requiredOption(\"--user-id <targetUserId>\")\n .requiredOption(\"--role <role>\")\n .action(\n async (\n fundId: string,\n options: { targetUserId: string; role: \"MEMBER\" | \"PROGRAMMER\" | \"MANAGER\" | \"ADMIN\" }\n ) => {\n await withClient(async (_, client) => {\n print(\n await client.funds.updateMemberRole(fundId, {\n targetUserId: options.targetUserId,\n role: options.role\n })\n );\n });\n }\n );\n funds\n .command(\"remove-member\")\n .argument(\"<fundId>\")\n .requiredOption(\"--user-id <userId>\")\n .action(async (fundId: string, options: { userId: string }) => {\n await withClient(async (_, client) => {\n print(await client.funds.removeMember(fundId, options.userId));\n });\n });\n funds\n .command(\"transfer-ownership\")\n .argument(\"<fundId>\")\n .requiredOption(\"--target-user-id <targetUserId>\")\n .action(async (fundId: string, options: { targetUserId: string }) => {\n await withClient(async (_, client) => {\n print(await client.funds.transferOwnership(fundId, { targetUserId: options.targetUserId }));\n });\n });\n funds.command(\"leave\").argument(\"<fundId>\").action(async (fundId: string) => {\n await withClient(async (_, client) => {\n print(await client.funds.leave(fundId));\n });\n });\n funds\n .command(\"chat\")\n .argument(\"<fundId>\")\n .option(\"--cursor <cursor>\")\n .option(\"--limit <limit>\")\n .action(async (fundId: string, options: { cursor?: string; limit?: string }) => {\n await withClient(async (_, client) => {\n print(\n await client.funds.chatHistory(fundId, {\n ...(options.cursor ? { cursor: options.cursor } : {}),\n ...(options.limit ? { limit: Number(options.limit) } : {})\n })\n );\n });\n });\n funds.command(\"get\").argument(\"<fundId>\").action(async (fundId: string) => {\n await withClient(async (_, client) => { print(await client.funds.get(fundId)); });\n });\n funds.command(\"positions\").argument(\"<fundId>\").action(async (fundId: string) => {\n await withClient(async (_, client) => { print(await client.funds.positions(fundId)); });\n });\n funds.command(\"prediction-positions\").argument(\"<fundId>\").action(async (fundId: string) => {\n await withClient(async (_, client) => { print(await client.funds.predictionPositions(fundId)); });\n });\n funds.command(\"orders\").argument(\"<fundId>\").action(async (fundId: string) => {\n await withClient(async (_, client) => { print(await client.funds.predictionOrders(fundId)); });\n });\n funds\n .command(\"trades\")\n .argument(\"<fundId>\")\n .option(\"--limit <limit>\")\n .option(\"--offset <offset>\")\n .action(async (fundId: string, options: { limit?: string; offset?: string }) => {\n await withClient(async (_, client) => {\n print(await client.funds.trades(fundId, {\n ...(options.limit ? { limit: Number(options.limit) } : {}),\n ...(options.offset ? { offset: Number(options.offset) } : {})\n }));\n });\n });\n funds.command(\"cancel-order\").argument(\"<fundId>\").argument(\"<orderId>\")\n .action(async (fundId: string, orderId: string) => {\n await withClient(async (_, client) => { print(await client.funds.cancelPredictionOrder(fundId, orderId)); });\n });\n funds\n .command(\"buy\")\n .argument(\"<fundId>\")\n .argument(\"<marketId>\")\n .requiredOption(\"--outcome-id <outcomeId>\")\n .requiredOption(\"--shares <shares>\")\n .requiredOption(\"--price <price>\")\n .action(async (fundId: string, marketId: string, options: { outcomeId: string; shares: string; price: string }) => {\n await withClient(async (_, client) => {\n print(await client.funds.placePredictionOrder(fundId, {\n marketId, outcomeId: options.outcomeId, side: \"BUY\", type: \"LIMIT\",\n price: Number(options.price), quantity: Number(options.shares)\n }));\n });\n });\n funds\n .command(\"sell\")\n .argument(\"<fundId>\")\n .argument(\"<marketId>\")\n .requiredOption(\"--outcome-id <outcomeId>\")\n .requiredOption(\"--shares <shares>\")\n .requiredOption(\"--price <price>\")\n .action(async (fundId: string, marketId: string, options: { outcomeId: string; shares: string; price: string }) => {\n await withClient(async (_, client) => {\n print(await client.funds.placePredictionOrder(fundId, {\n marketId, outcomeId: options.outcomeId, side: \"SELL\", type: \"LIMIT\",\n price: Number(options.price), quantity: Number(options.shares)\n }));\n });\n });\n funds\n .command(\"crypto-buy\").argument(\"<fundId>\").argument(\"<symbol>\")\n .requiredOption(\"--quantity <quantity>\")\n .action(async (fundId: string, symbol: string, options: { quantity: string }) => {\n await withClient(async (_, client) => {\n print(await client.funds.tradeCrypto(fundId, { symbol, side: \"BUY\", quantity: Number(options.quantity) }));\n });\n });\n funds\n .command(\"crypto-sell\").argument(\"<fundId>\").argument(\"<symbol>\")\n .requiredOption(\"--quantity <quantity>\")\n .action(async (fundId: string, symbol: string, options: { quantity: string }) => {\n await withClient(async (_, client) => {\n print(await client.funds.tradeCrypto(fundId, { symbol, side: \"SELL\", quantity: Number(options.quantity) }));\n });\n });\n\n program\n .command(\"search\").argument(\"<query>\")\n .option(\"--limit <limit>\").option(\"--offset <offset>\")\n .action(async (query: string, options: { limit?: string; offset?: string }) => {\n await withClient(async (_, client) => {\n print(await client.search.query(query, {\n ...(options.limit ? { limit: Number(options.limit) } : {}),\n ...(options.offset ? { offset: Number(options.offset) } : {})\n }));\n });\n });\n\n program\n .command(\"leaderboard\")\n .option(\"--category <category>\")\n .option(\"--sort <sort>\")\n .action(async (options: { category?: string; sort?: string }) => {\n await withClient(async (_, client) => {\n const params: { category?: \"traders\" | \"funds\" | \"predictions\" | \"wars\"; sort?: string } = {};\n if (options.category) {\n params.category = options.category as \"traders\" | \"funds\" | \"predictions\" | \"wars\";\n }\n if (options.sort) {\n params.sort = options.sort;\n }\n print(await client.leaderboards.get(params));\n });\n });\n\n program.command(\"profile\").argument(\"<username>\").action(async (username: string) => {\n await withClient(async (_, client) => {\n print(await client.profiles.get(username));\n });\n });\n\n program.command(\"follow\").argument(\"<userId>\").action(async (userId: string) => {\n await withClient(async (_, client) => { print(await client.social.follow(userId)); });\n });\n program.command(\"unfollow\").argument(\"<userId>\").action(async (userId: string) => {\n await withClient(async (_, client) => { print(await client.social.unfollow(userId)); });\n });\n program.command(\"followers\").action(async () => {\n await withClient(async (_, client) => { print(await client.social.followers()); });\n });\n program.command(\"following\").action(async () => {\n await withClient(async (_, client) => { print(await client.social.following()); });\n });\n\n const watchlist = program.command(\"watchlist\").description(\"Watchlist\");\n watchlist.command(\"list\").action(async () => {\n await withClient(async (_, client) => { print(await client.watchlist.list()); });\n });\n watchlist.command(\"add\").argument(\"<symbol>\").action(async (symbol: string) => {\n await withClient(async (_, client) => { print(await client.watchlist.add(symbol)); });\n });\n watchlist.command(\"remove\").argument(\"<symbol>\").action(async (symbol: string) => {\n await withClient(async (_, client) => { print(await client.watchlist.remove(symbol)); });\n });\n\n program.command(\"subscription\").action(async () => {\n await withClient(async (_, client) => { print(await client.billing.getSubscription()); });\n });\n program.command(\"upgrade\").argument(\"<tier>\").action(async (tier: string) => {\n await withClient(async (_, client) => {\n print(await client.billing.createCheckout(tier as \"PRO\" | \"ENTERPRISE\"));\n });\n });\n program.command(\"billing\").action(async () => {\n await withClient(async (_, client) => { print(await client.billing.createPortalSession()); });\n });\n\n // Phase 3: Intelligence\n const intelligence = program.command(\"intelligence\").description(\"Market intelligence\");\n intelligence.command(\"summary\").action(async () => {\n await withClient(async (_, client) => {\n print(await client.intelligence.getSummary());\n });\n });\n intelligence.command(\"signals\").argument(\"<marketId>\").action(async (marketId: string) => {\n await withClient(async (_, client) => {\n print(await client.intelligence.getSignals(marketId));\n });\n });\n\n // Phase 3: Performance\n const performance = program.command(\"performance\").description(\"Performance & reflection\");\n performance\n .command(\"summary\")\n .option(\"--period <period>\", \"Time period: 7d, 30d, 90d, all\")\n .option(\"--category <category>\", \"Filter by market category\")\n .action(async (options: { period?: string; category?: string }) => {\n await withClient(async (_, client) => {\n print(\n await client.performance.get({\n ...(options.period ? { period: options.period as \"7d\" | \"30d\" | \"90d\" | \"all\" } : {}),\n ...(options.category ? { category: options.category } : {})\n })\n );\n });\n });\n performance\n .command(\"resolved\")\n .option(\"--cursor <cursor>\", \"Pagination cursor\")\n .option(\"--limit <limit>\", \"Page size (max 50)\")\n .option(\"--outcome <outcome>\", \"Filter: correct, incorrect, all\")\n .action(async (options: { cursor?: string; limit?: string; outcome?: string }) => {\n await withClient(async (_, client) => {\n print(\n await client.performance.getResolved({\n ...(options.cursor ? { cursor: options.cursor } : {}),\n ...(options.limit ? { limit: Number(options.limit) } : {}),\n ...(options.outcome ? { outcome: options.outcome as \"correct\" | \"incorrect\" | \"all\" } : {})\n })\n );\n });\n });\n performance.command(\"benchmarks\")\n .option(\"--period <period>\", \"Time period: 7d, 30d, 90d, all\")\n .action(async (options: { period?: string }) => {\n await withClient(async (_, client) => {\n print(\n await client.performance.getBenchmarks({\n ...(options.period ? { period: options.period as \"7d\" | \"30d\" | \"90d\" | \"all\" } : {})\n })\n );\n });\n });\n\n // Phase 3: Wars\n const wars = program.command(\"wars\").description(\"Trading Wars\");\n wars.command(\"list\").action(async () => {\n await withClient(async (_, client) => {\n print(await client.wars.list());\n });\n });\n wars.command(\"active\").action(async () => {\n await withClient(async (_, client) => {\n print(await client.wars.active());\n });\n });\n wars.command(\"get\").argument(\"<warId>\").action(async (warId: string) => {\n await withClient(async (_, client) => {\n print(await client.wars.get(warId));\n });\n });\n wars\n .command(\"queue\")\n .requiredOption(\"--tier <tier>\", \"Duration tier: BLITZ, STANDARD, MARATHON\")\n .action(async (options: { tier: string }) => {\n await withClient(async (_, client) => {\n print(await client.wars.enterQueue({ durationTier: options.tier as \"BLITZ\" | \"STANDARD\" | \"MARATHON\" }));\n });\n });\n wars.command(\"cancel-queue\").action(async () => {\n await withClient(async (_, client) => {\n print(await client.wars.cancelQueue());\n });\n });\n wars.command(\"queue-status\").action(async () => {\n await withClient(async (_, client) => {\n print(await client.wars.getQueueStatus());\n });\n });\n wars.command(\"results\").argument(\"<warId>\").action(async (warId: string) => {\n await withClient(async (_, client) => {\n print(await client.wars.results(warId));\n });\n });\n wars.command(\"history\").action(async () => {\n await withClient(async (_, client) => {\n print(await client.wars.history());\n });\n });\n wars.command(\"leaderboard\").action(async () => {\n await withClient(async (_, client) => {\n print(await client.wars.leaderboard());\n });\n });\n\n return program;\n}\n\nasync function saveAuth(auth: AuthResponse, email: string): Promise<void> {\n await saveCredentials({ token: auth.token, email });\n process.stderr.write(\n `${chalk.green(\"Saved credentials\")} at ${chalk.cyan(getCredentialsPath())}\\n`\n );\n}\n\nasync function placePredictionOrder(\n marketId: string,\n side: OrderSide,\n options: { outcomeId: string; shares: string; price: string }\n): Promise<void> {\n await withClient(async (_, client) => {\n const response = await client.predictions.placeOrder(marketId, {\n outcomeId: options.outcomeId,\n side,\n type: \"LIMIT\",\n price: Number(options.price),\n quantity: Number(options.shares)\n });\n print(response);\n });\n}\n\nasync function tradeCrypto(\n symbol: string,\n side: OrderSide,\n quantityRaw: string\n): Promise<void> {\n await withClient(async (_, client) => {\n const result = await client.portfolio.trade({\n symbol,\n side,\n quantity: Number(quantityRaw)\n });\n print(result);\n });\n}\n","import { ToromarketClient } from \"@toromarket/sdk\";\nimport { loadCredentials } from \"./config/credentials.js\";\n\nexport async function createClient(): Promise<ToromarketClient> {\n const baseUrl = process.env.TOROMARKET_BASE_URL ?? \"https://api.toromarket.io\";\n const creds = await loadCredentials();\n return new ToromarketClient({\n baseUrl,\n ...(creds?.token ? { token: creds.token } : {})\n });\n}\n","import { mkdir, readFile, writeFile } from \"node:fs/promises\";\nimport { homedir } from \"node:os\";\nimport { dirname, join } from \"node:path\";\n\nexport interface StoredCredentials {\n token: string;\n email?: string;\n}\n\nconst credentialsPath = join(homedir(), \".toromarket\", \"credentials.json\");\n\nexport function getCredentialsPath(): string {\n return credentialsPath;\n}\n\nexport async function loadCredentials(): Promise<StoredCredentials | null> {\n try {\n const raw = await readFile(credentialsPath, \"utf8\");\n return JSON.parse(raw) as StoredCredentials;\n } catch {\n return null;\n }\n}\n\nexport async function saveCredentials(credentials: StoredCredentials): Promise<void> {\n await mkdir(dirname(credentialsPath), { recursive: true, mode: 0o700 });\n await writeFile(credentialsPath, JSON.stringify(credentials, null, 2), { encoding: \"utf8\", mode: 0o600 });\n}\n","#!/usr/bin/env node\n\nimport { createProgram } from \"./commands/index.js\";\n\nasync function main(): Promise<void> {\n const program = createProgram();\n await program.parseAsync(process.argv);\n}\n\nmain().catch((error) => {\n const message = error instanceof Error ? error.message : String(error);\n process.stderr.write(`${message}\\n`);\n process.exit(1);\n});\n"],"mappings":"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","names":[]}
package/package.json ADDED
@@ -0,0 +1,41 @@
1
+ {
2
+ "name": "@toromarket/cli",
3
+ "version": "0.1.0",
4
+ "description": "CLI for Toromarket",
5
+ "type": "module",
6
+ "main": "dist/index.cjs",
7
+ "module": "dist/index.js",
8
+ "types": "dist/index.d.ts",
9
+ "bin": {
10
+ "toromarket": "dist/index.js"
11
+ },
12
+ "exports": {
13
+ ".": {
14
+ "types": "./dist/index.d.ts",
15
+ "import": "./dist/index.js",
16
+ "require": "./dist/index.cjs"
17
+ }
18
+ },
19
+ "files": [
20
+ "dist"
21
+ ],
22
+ "dependencies": {
23
+ "chalk": "^5.6.2",
24
+ "commander": "^14.0.1",
25
+ "@toromarket/sdk": "0.1.0"
26
+ },
27
+ "devDependencies": {
28
+ "@types/node": "^24.5.2",
29
+ "msw": "^2.11.2",
30
+ "tsup": "^8.5.0",
31
+ "typescript": "^5.9.2",
32
+ "vitest": "^3.2.4"
33
+ },
34
+ "scripts": {
35
+ "build": "tsup",
36
+ "dev": "tsup --watch",
37
+ "typecheck": "tsc -p tsconfig.json --noEmit",
38
+ "test": "vitest run",
39
+ "lint": "tsc -p tsconfig.json --noEmit"
40
+ }
41
+ }