@rajinthan17/dot-cli
Advanced tools
+1
-1
| { | ||
| "baseUrl": "https://example.com" | ||
| "baseUrl": "http://localhost:3000" | ||
| } |
+55
-0
@@ -252,3 +252,58 @@ #!/usr/bin/env node | ||
| program | ||
| .command('task') | ||
| .description('Get task details by task id') | ||
| .argument('<taskId>', 'Task id') | ||
| .option('--project <projectId>', 'Project id (or set in config via DOT_PROJECT_ID)') | ||
| .option('--base-url <url>', 'Base URL (or set DOT_SPECS_BASE_URL / config baseUrl)') | ||
| .action(async (taskId, options) => { | ||
| const cfg = await loadConfig(); | ||
| const baseUrl = options.baseUrl || process.env.DOT_SPECS_BASE_URL || cfg.baseUrl; | ||
| const projectId = options.project || process.env.DOT_PROJECT_ID || cfg.projectId; | ||
| if (!baseUrl) { | ||
| console.error(chalk.red('No base URL configured. Set DOT_SPECS_BASE_URL, run `dot config base-url <url>`, or pass --base-url.')); | ||
| process.exitCode = 1; | ||
| return; | ||
| } | ||
| if (!projectId) { | ||
| console.error(chalk.red('No project id. Pass --project <projectId> or set DOT_PROJECT_ID or projectId in config.')); | ||
| process.exitCode = 1; | ||
| return; | ||
| } | ||
| const url = `${baseUrl.replace(/\/$/, '')}/api/projects/${encodeURIComponent(projectId)}/tasks/${encodeURIComponent(taskId)}`; | ||
| console.log(chalk.yellow(`\n--- Task ${taskId} ---\n`)); | ||
| console.log(chalk.blue(`ℹ GET ${url}\n`)); | ||
| if (typeof fetch !== 'function') { | ||
| console.error(chalk.red('Global fetch() is not available. Please use Node v18+.')); | ||
| process.exitCode = 1; | ||
| return; | ||
| } | ||
| try { | ||
| const res = await fetch(url, { headers: { Accept: 'application/json' } }); | ||
| if (!res.ok) { | ||
| console.error(chalk.red(`HTTP ${res.status} ${res.statusText}`)); | ||
| const text = await res.text(); | ||
| if (text) console.log(chalk.gray(text.slice(0, 500))); | ||
| process.exitCode = 1; | ||
| return; | ||
| } | ||
| const contentType = res.headers.get('content-type') || ''; | ||
| if (contentType.includes('application/json')) { | ||
| const data = await res.json(); | ||
| console.log(JSON.stringify(data, null, 2)); | ||
| } else { | ||
| const text = await res.text(); | ||
| console.log(text); | ||
| } | ||
| console.log(''); | ||
| } catch (e) { | ||
| console.error(chalk.red('Request failed:'), e?.message || e); | ||
| process.exitCode = 1; | ||
| } | ||
| }); | ||
| program | ||
@@ -255,0 +310,0 @@ .command('hello') |
+1
-1
| { | ||
| "name": "@rajinthan17/dot-cli", | ||
| "version": "1.0.2", | ||
| "version": "1.0.3", | ||
| "description": "", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
13754
21.15%287
21.61%7
40%5
66.67%