dashb 1.0.3 → 1.0.5

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/custom.js CHANGED
@@ -16,18 +16,21 @@ const C = {
16
16
  red: (s) => w('\x1b[38;2;255;80;80m', s),
17
17
  dim: (s) => w('\x1b[38;2;120;80;25m', s),
18
18
  };
19
+ import { homedir } from 'node:os';
19
20
  // ═══════════════════════════════════════════════════════════════
20
21
  // Config file path
21
22
  // ═══════════════════════════════════════════════════════════════
22
23
  const CONFIG_FILE = '.dashb.json';
23
- function configPath(cwd) {
24
+ function localConfigPath(cwd) {
24
25
  return join(cwd, CONFIG_FILE);
25
26
  }
27
+ function globalConfigPath() {
28
+ return join(homedir(), CONFIG_FILE);
29
+ }
26
30
  // ═══════════════════════════════════════════════════════════════
27
31
  // Load / Save
28
32
  // ═══════════════════════════════════════════════════════════════
29
- export function loadCustom(cwd) {
30
- const path = configPath(cwd);
33
+ function readConfig(path) {
31
34
  if (!existsSync(path))
32
35
  return [];
33
36
  try {
@@ -45,8 +48,39 @@ export function loadCustom(cwd) {
45
48
  return [];
46
49
  }
47
50
  }
48
- function saveCustom(cwd, commands) {
49
- const path = configPath(cwd);
51
+ export function loadCustom(cwd, detectedStacks = []) {
52
+ const local = readConfig(localConfigPath(cwd));
53
+ const global = readConfig(globalConfigPath());
54
+ // Filter global commands by scope
55
+ const activeStackIds = new Set(detectedStacks.map(s => s.id));
56
+ const filteredGlobal = global.filter(cmd => {
57
+ // If no scopes defined, assume it's legacy and global
58
+ if (!cmd.scopes || cmd.scopes.length === 0)
59
+ return true;
60
+ // If explicitly global
61
+ if (cmd.scopes.includes('global'))
62
+ return true;
63
+ // Otherwise, check if any of its scopes match the current project's stacks
64
+ return cmd.scopes.some(scope => activeStackIds.has(scope));
65
+ });
66
+ // Merge them. Local has precedence if keys collide.
67
+ const mergedMap = new Map();
68
+ // Add global first
69
+ for (const cmd of filteredGlobal) {
70
+ mergedMap.set(cmd.key, cmd);
71
+ }
72
+ // Add local (overwriting global if same key)
73
+ for (const cmd of local) {
74
+ mergedMap.set(cmd.key, cmd);
75
+ }
76
+ return Array.from(mergedMap.values());
77
+ }
78
+ function saveCustomLocal(cwd, commands) {
79
+ const path = localConfigPath(cwd);
80
+ writeFileSync(path, JSON.stringify(commands, null, 2) + '\n');
81
+ }
82
+ function saveCustomGlobal(commands) {
83
+ const path = globalConfigPath();
50
84
  writeFileSync(path, JSON.stringify(commands, null, 2) + '\n');
51
85
  }
52
86
  // ═══════════════════════════════════════════════════════════════
@@ -63,7 +97,7 @@ function ask(rl, prompt) {
63
97
  const RESERVED_KEYS = new Set([
64
98
  'add', 'rm', 'doc', '--version', '-v', '--help', '-h',
65
99
  ]);
66
- export async function interactiveAdd(cwd) {
100
+ export async function interactiveAdd(cwd, detectedStacks = []) {
67
101
  const rl = createInterface({
68
102
  input: process.stdin,
69
103
  output: process.stdout,
@@ -93,15 +127,43 @@ export async function interactiveAdd(cwd) {
93
127
  // Get label (optional, defaults to command)
94
128
  const labelInput = await ask(rl, ` ${C.orange('Label')} ${C.dim('▸')} `);
95
129
  const label = labelInput || command;
96
- // Load existing, check for duplicates
97
- const existing = loadCustom(cwd);
130
+ // Ask for Local vs Global
131
+ let isGlobal = true;
132
+ const scopeChoice = await ask(rl, `\n ${C.orange('Save to')} ${C.dim('▸')} [1] Global (~/.dashb.json)\n [2] Local (.dashb.json in this project) \n ${C.gray('Select (1/2)')} ${C.dim('▸')} `);
133
+ if (scopeChoice === '2') {
134
+ isGlobal = false;
135
+ }
136
+ let scopes = undefined;
137
+ if (isGlobal) {
138
+ const currentStack = detectedStacks.length > 0 ? detectedStacks[0].label : 'Project';
139
+ const stackId = detectedStacks.length > 0 ? detectedStacks[0].id : 'unknown';
140
+ const constraintChoice = await ask(rl, `\n ${C.orange('Show when')} ${C.dim('▸')} [1] In all projects\n [2] Only in ${currentStack} projects \n ${C.gray('Select (1/2)')} ${C.dim('▸')} `);
141
+ if (constraintChoice === '2' && stackId !== 'unknown') {
142
+ scopes = [stackId];
143
+ }
144
+ else {
145
+ scopes = ['global'];
146
+ }
147
+ }
148
+ // Load existing for the chosen destination
149
+ const existing = isGlobal
150
+ ? readConfig(globalConfigPath())
151
+ : readConfig(localConfigPath(cwd));
98
152
  const duplicate = existing.findIndex((c) => c.key === key);
99
153
  if (duplicate !== -1) {
100
154
  existing.splice(duplicate, 1);
101
155
  }
102
156
  // Add and save
103
- existing.push({ key, label, command });
104
- saveCustom(cwd, existing);
157
+ const newCmd = { key, label, command };
158
+ if (scopes)
159
+ newCmd.scopes = scopes;
160
+ existing.push(newCmd);
161
+ if (isGlobal) {
162
+ saveCustomGlobal(existing);
163
+ }
164
+ else {
165
+ saveCustomLocal(cwd, existing);
166
+ }
105
167
  console.log('');
106
168
  if (duplicate !== -1) {
107
169
  console.log(` ${C.green('✔')} Updated: ${C.bright(`db ${key}`)} ${C.dim('→')} ${C.gray(command)}`);
@@ -119,14 +181,23 @@ export async function interactiveAdd(cwd) {
119
181
  // Remove
120
182
  // ═══════════════════════════════════════════════════════════════
121
183
  export function removeShortcut(cwd, key) {
122
- const existing = loadCustom(cwd);
123
- const idx = existing.findIndex((c) => c.key === key);
124
- if (idx === -1) {
184
+ const local = readConfig(localConfigPath(cwd));
185
+ const global = readConfig(globalConfigPath());
186
+ const localIdx = local.findIndex((c) => c.key === key);
187
+ const globalIdx = global.findIndex((c) => c.key === key);
188
+ if (localIdx === -1 && globalIdx === -1) {
125
189
  console.log(`\n ${C.red('✖')} No custom shortcut found for "${key}"\n`);
126
190
  process.exit(1);
127
191
  }
128
- existing.splice(idx, 1);
129
- saveCustom(cwd, existing);
130
- console.log(`\n ${C.green('✔')} Removed shortcut "${C.bright(key)}"\n`);
192
+ if (localIdx !== -1) {
193
+ local.splice(localIdx, 1);
194
+ saveCustomLocal(cwd, local);
195
+ console.log(`\n ${C.green('✔')} Removed local shortcut "${C.bright(key)}"\n`);
196
+ }
197
+ if (globalIdx !== -1) {
198
+ global.splice(globalIdx, 1);
199
+ saveCustomGlobal(global);
200
+ console.log(`\n ${C.green('✔')} Removed global shortcut "${C.bright(key)}"\n`);
201
+ }
131
202
  }
132
203
  //# sourceMappingURL=custom.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"custom.js","sourceRoot":"","sources":["../source/custom.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"custom.js","sourceRoot":"","sources":["../source/custom.ts"],"names":[],"mappings":"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"}
package/dist/display.js CHANGED
@@ -180,6 +180,26 @@ export function display(opts) {
180
180
  }
181
181
  push(blank(boxW));
182
182
  }
183
+ // ── Built-in Tools ──
184
+ push(midBorder(boxW));
185
+ push(blank(boxW));
186
+ push(row(' ' + O.boldOrange('TOOLS'), boxW));
187
+ push(blank(boxW));
188
+ const builtInTools = [
189
+ { key: 'doc', label: 'Health Check', desc: 'project diagnostics' },
190
+ { key: 'stats', label: 'Usage Stats', desc: 'command usage chart' },
191
+ { key: 'add', label: 'Add Shortcut', desc: 'create custom shortcut' },
192
+ { key: 'rm <key>', label: 'Remove', desc: 'delete a shortcut' },
193
+ { key: 'setup-autocomplete', label: 'Autocomplete', desc: 'shell tab-completion' },
194
+ ];
195
+ const tMaxKeyLen = Math.max(...builtInTools.map(t => `${bin} ${t.key}`.length));
196
+ const tKeyColW = tMaxKeyLen + 2;
197
+ for (const tool of builtInTools) {
198
+ const shortcut = O.bright(padR(` ${bin} ${tool.key}`, tKeyColW + 2));
199
+ const label = O.white(tool.label);
200
+ push(row(`${shortcut} ${label}`, boxW));
201
+ }
202
+ push(blank(boxW));
183
203
  // ── Tips ──
184
204
  if (bin === 'dashb') {
185
205
  push(row(' ' + O.gray(`tip: use "db" instead of "dashb" for shorter commands`), boxW));
@@ -189,7 +209,7 @@ export function display(opts) {
189
209
  push(row(' ' + O.gray(`tip: use "db <stack>" for stack-specific commands (e.g. db py)`), boxW));
190
210
  push(blank(boxW));
191
211
  }
192
- push(row(' ' + O.gray(`tip: run "db add" to create custom shortcuts`), boxW));
212
+ push(row(' ' + O.gray(`tip: stack commands: "db t b" runs tests then build`), boxW));
193
213
  push(blank(boxW));
194
214
  // ── Bottom ──
195
215
  push(botBorder(boxW));
@@ -1 +1 @@
1
- {"version":3,"file":"display.js","sourceRoot":"","sources":["../source/display.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"display.js","sourceRoot":"","sources":["../source/display.ts"],"names":[],"mappings":"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"}
package/dist/env.d.ts ADDED
@@ -0,0 +1 @@
1
+ export declare function checkEnv(cwd: string): void;
package/dist/env.js ADDED
@@ -0,0 +1,89 @@
1
+ import { existsSync, readFileSync } from 'node:fs';
2
+ import { join } from 'node:path';
3
+ const TTY = process.stdout.isTTY !== false && !process.env['NO_COLOR'];
4
+ const w = (code, t) => (TTY ? `${code}${t}\x1b[0m` : t);
5
+ const C = {
6
+ orange: (s) => w('\x1b[38;2;255;165;0m', s),
7
+ boldOrange: (s) => w('\x1b[1;38;2;255;165;0m', s),
8
+ bright: (s) => w('\x1b[1;38;2;255;200;100m', s),
9
+ white: (s) => w('\x1b[97m', s),
10
+ gray: (s) => w('\x1b[90m', s),
11
+ green: (s) => w('\x1b[38;2;110;210;130m', s),
12
+ red: (s) => w('\x1b[38;2;255;80;80m', s),
13
+ dim: (s) => w('\x1b[38;2;120;80;25m', s),
14
+ };
15
+ function parseEnvKeys(filePath) {
16
+ const keys = new Set();
17
+ try {
18
+ const content = readFileSync(filePath, 'utf-8');
19
+ const lines = content.split('\n');
20
+ for (const line of lines) {
21
+ const trimmed = line.trim();
22
+ if (trimmed && !trimmed.startsWith('#')) {
23
+ const match = trimmed.match(/^([^=]+)=/);
24
+ if (match && match[1]) {
25
+ keys.add(match[1].trim());
26
+ }
27
+ }
28
+ }
29
+ }
30
+ catch {
31
+ // ignore read errors
32
+ }
33
+ return keys;
34
+ }
35
+ export function checkEnv(cwd) {
36
+ console.log('');
37
+ console.log(` ${C.dim('┌─────────────────────────────────────┐')}`);
38
+ console.log(` ${C.dim('│')} ${C.boldOrange('Environment Configuration Check')} ${C.dim('│')}`);
39
+ console.log(` ${C.dim('└─────────────────────────────────────┘')}`);
40
+ console.log('');
41
+ const templateFiles = ['.env.example', '.env.template', '.env.sample'];
42
+ const localFiles = ['.env', '.env.local'];
43
+ let foundTemplate = '';
44
+ let foundLocal = '';
45
+ for (const file of templateFiles) {
46
+ if (existsSync(join(cwd, file))) {
47
+ foundTemplate = file;
48
+ break;
49
+ }
50
+ }
51
+ for (const file of localFiles) {
52
+ if (existsSync(join(cwd, file))) {
53
+ foundLocal = file;
54
+ break;
55
+ }
56
+ }
57
+ if (!foundTemplate) {
58
+ console.log(` ${C.orange('ℹ')} No template file found (${templateFiles.join(', ')}).`);
59
+ console.log(` Create an ${C.bright('.env.example')} to enable environment checking.\n`);
60
+ return;
61
+ }
62
+ if (!foundLocal) {
63
+ console.log(` ${C.red('✖')} Found ${C.bright(foundTemplate)} but no local environment file (${localFiles.join(', ')}).`);
64
+ console.log(` Run ${C.bright(`cp ${foundTemplate} .env`)} to create one.\n`);
65
+ return;
66
+ }
67
+ console.log(` ${C.dim('▸')} Comparing ${C.bright(foundLocal)} against ${C.gray(foundTemplate)}...`);
68
+ console.log('');
69
+ const templateKeys = parseEnvKeys(join(cwd, foundTemplate));
70
+ const localKeys = parseEnvKeys(join(cwd, foundLocal));
71
+ const missingKeys = [];
72
+ for (const key of templateKeys) {
73
+ if (!localKeys.has(key)) {
74
+ missingKeys.push(key);
75
+ }
76
+ }
77
+ if (missingKeys.length === 0) {
78
+ console.log(` ${C.green('✔')} All required environment variables are present in ${C.bright(foundLocal)}.\n`);
79
+ }
80
+ else {
81
+ console.log(` ${C.red('✖')} Missing ${missingKeys.length} keys in ${C.bright(foundLocal)}:\n`);
82
+ for (const key of missingKeys) {
83
+ console.log(` ${C.red('-')} ${key}`);
84
+ }
85
+ console.log('');
86
+ console.log(` ${C.dim('ℹ')} Please copy these variables from ${C.bright(foundTemplate)} safely.\n`);
87
+ }
88
+ }
89
+ //# sourceMappingURL=env.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env.js","sourceRoot":"","sources":["../source/env.ts"],"names":[],"mappings":"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"}
package/dist/kill.d.ts ADDED
@@ -0,0 +1 @@
1
+ export declare function killPort(args: string[]): Promise<void>;
package/dist/kill.js ADDED
@@ -0,0 +1,199 @@
1
+ import { execSync } from 'node:child_process';
2
+ import * as readline from 'node:readline';
3
+ const TTY = process.stdout.isTTY !== false && !process.env['NO_COLOR'];
4
+ const w = (code, t) => (TTY ? `${code}${t}\x1b[0m` : t);
5
+ const C = {
6
+ orange: (s) => w('\x1b[38;2;255;165;0m', s),
7
+ boldOrange: (s) => w('\x1b[1;38;2;255;165;0m', s),
8
+ bright: (s) => w('\x1b[1;38;2;255;200;100m', s),
9
+ white: (s) => w('\x1b[97m', s),
10
+ gray: (s) => w('\x1b[90m', s),
11
+ green: (s) => w('\x1b[38;2;110;210;130m', s),
12
+ red: (s) => w('\x1b[38;2;255;80;80m', s),
13
+ dim: (s) => w('\x1b[38;2;120;80;25m', s),
14
+ };
15
+ function getListeningPorts() {
16
+ const isWin = process.platform === 'win32';
17
+ const results = new Map();
18
+ if (isWin) {
19
+ try {
20
+ const output = execSync('netstat -ano | findstr LISTENING', { encoding: 'utf-8', stdio: ['ignore', 'pipe', 'ignore'] });
21
+ const lines = output.trim().split('\n');
22
+ for (const line of lines) {
23
+ const parts = line.trim().split(/\s+/).filter(Boolean);
24
+ const localAddr = parts[1];
25
+ const pid = parts[parts.length - 1];
26
+ if (localAddr && pid && pid !== '0') {
27
+ const portMatch = localAddr.match(/:(\d+)$/);
28
+ if (portMatch) {
29
+ const port = parseInt(portMatch[1], 10);
30
+ if (!results.has(port)) {
31
+ results.set(port, { port, processName: `PID: ${pid}`, pid });
32
+ }
33
+ }
34
+ }
35
+ }
36
+ }
37
+ catch { }
38
+ }
39
+ else {
40
+ try {
41
+ const output = execSync('lsof -iTCP -sTCP:LISTEN -P -n', { encoding: 'utf-8', stdio: ['ignore', 'pipe', 'ignore'] });
42
+ const lines = output.trim().split('\n').slice(1);
43
+ for (const line of lines) {
44
+ const parts = line.trim().split(/\s+/);
45
+ const command = parts[0];
46
+ const pid = parts[1];
47
+ const nameCol = parts[parts.length - 2] + ' ' + parts[parts.length - 1];
48
+ const portMatch = nameCol.match(/:(\d+)/);
49
+ if (portMatch && command && pid) {
50
+ const port = parseInt(portMatch[1], 10);
51
+ if (!results.has(port)) {
52
+ results.set(port, { port, processName: command, pid });
53
+ }
54
+ }
55
+ }
56
+ }
57
+ catch { }
58
+ }
59
+ return Array.from(results.values()).sort((a, b) => a.port - b.port);
60
+ }
61
+ async function interactiveSelect(prompt, options) {
62
+ if (options.length === 0)
63
+ return null;
64
+ return new Promise((resolve) => {
65
+ let selectedIndex = 0;
66
+ let isFirstRender = true;
67
+ const render = () => {
68
+ if (!isFirstRender) {
69
+ readline.moveCursor(process.stdout, 0, -options.length - 1);
70
+ readline.clearScreenDown(process.stdout);
71
+ }
72
+ isFirstRender = false;
73
+ console.log(` ${prompt}`);
74
+ options.forEach((opt, i) => {
75
+ const isSelected = i === selectedIndex;
76
+ const prefix = isSelected ? C.bright('❯') : ' ';
77
+ const label = isSelected ? C.bright(opt.label) : C.gray(opt.label);
78
+ console.log(` ${prefix} ${label}`);
79
+ });
80
+ };
81
+ render();
82
+ const onKeyPress = (str, key) => {
83
+ if (key.name === 'up' && selectedIndex > 0) {
84
+ selectedIndex--;
85
+ render();
86
+ }
87
+ else if (key.name === 'down' && selectedIndex < options.length - 1) {
88
+ selectedIndex++;
89
+ render();
90
+ }
91
+ else if (key.name === 'return' || key.name === 'enter') {
92
+ cleanup();
93
+ resolve(options[selectedIndex].value);
94
+ }
95
+ else if (key.name === 'escape' || (key.ctrl && key.name === 'c')) {
96
+ cleanup();
97
+ if (key.ctrl && key.name === 'c')
98
+ process.exit(0);
99
+ resolve(null);
100
+ }
101
+ };
102
+ const cleanup = () => {
103
+ if (process.stdin.isTTY)
104
+ process.stdin.setRawMode(false);
105
+ process.stdin.removeListener('keypress', onKeyPress);
106
+ process.stdin.pause();
107
+ };
108
+ readline.emitKeypressEvents(process.stdin);
109
+ if (process.stdin.isTTY)
110
+ process.stdin.setRawMode(true);
111
+ process.stdin.resume();
112
+ process.stdin.on('keypress', onKeyPress);
113
+ });
114
+ }
115
+ function parsePort(input) {
116
+ const p = parseInt(input, 10);
117
+ if (!isNaN(p) && p > 0 && p <= 65535)
118
+ return p;
119
+ return null;
120
+ }
121
+ export async function killPort(args) {
122
+ console.log('');
123
+ console.log(` ${C.dim('┌─────────────────────────────────────┐')}`);
124
+ console.log(` ${C.dim('│')} ${C.boldOrange('Port Killer')} ${C.dim('│')}`);
125
+ console.log(` ${C.dim('└─────────────────────────────────────┘')}`);
126
+ console.log('');
127
+ let port = null;
128
+ if (args.length > 0) {
129
+ port = parsePort(args[0]);
130
+ if (!port) {
131
+ console.log(` ${C.red('✖')} Invalid port number: ${args[0]}\n`);
132
+ return;
133
+ }
134
+ }
135
+ else {
136
+ const ports = getListeningPorts();
137
+ if (ports.length === 0) {
138
+ console.log(` ${C.green('✔')} No open listening ports found.\n`);
139
+ return;
140
+ }
141
+ const options = ports.map(p => ({
142
+ label: `Port ${p.port.toString().padEnd(5)} ${C.dim('—')} ${C.gray(p.processName)}`,
143
+ value: p.port
144
+ }));
145
+ port = await interactiveSelect(C.orange('Select a port to kill:'), options);
146
+ if (!port) {
147
+ console.log(`\n ${C.dim('✖')} Cancelled.\n`);
148
+ return;
149
+ }
150
+ console.log('');
151
+ }
152
+ // Try to find the PID
153
+ const isWin = process.platform === 'win32';
154
+ try {
155
+ let pids = [];
156
+ if (isWin) {
157
+ try {
158
+ const output = execSync(`netstat -ano | findstr :${port}`, { encoding: 'utf-8', stdio: ['ignore', 'pipe', 'ignore'] });
159
+ const lines = output.trim().split('\n');
160
+ for (const line of lines) {
161
+ const parts = line.trim().split(/\s+/).filter(Boolean);
162
+ if (parts.length >= 5 && parts[1]?.endsWith(`:${port}`)) {
163
+ const pid = parts[parts.length - 1];
164
+ if (pid && pid !== '0')
165
+ pids.push(pid);
166
+ }
167
+ }
168
+ }
169
+ catch { }
170
+ }
171
+ else {
172
+ try {
173
+ const output = execSync(`lsof -t -i :${port}`, { encoding: 'utf-8', stdio: ['ignore', 'pipe', 'ignore'] });
174
+ pids = output.trim().split('\n').filter(Boolean);
175
+ }
176
+ catch { }
177
+ }
178
+ pids = Array.from(new Set(pids));
179
+ if (pids.length === 0) {
180
+ console.log(` ${C.green('✔')} Port ${C.bright(port.toString())} is already free.\n`);
181
+ return;
182
+ }
183
+ console.log(` ${C.dim('▸')} Found ${pids.length} process(es) on port ${port}. Killing...`);
184
+ for (const pid of pids) {
185
+ if (isWin) {
186
+ execSync(`taskkill /PID ${pid} /F`, { stdio: 'ignore' });
187
+ }
188
+ else {
189
+ execSync(`kill -9 ${pid}`, { stdio: 'ignore' });
190
+ }
191
+ }
192
+ console.log(` ${C.green('✔')} Successfully killed processes on port ${C.bright(port.toString())}.\n`);
193
+ }
194
+ catch (e) {
195
+ console.log(` ${C.red('✖')} Failed to kill port ${C.bright(port.toString())}.`);
196
+ console.log(` Ensure you have permission or try running as Administrator/root.\n`);
197
+ }
198
+ }
199
+ //# sourceMappingURL=kill.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kill.js","sourceRoot":"","sources":["../source/kill.ts"],"names":[],"mappings":"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"}
package/dist/run.d.ts CHANGED
@@ -1,2 +1,3 @@
1
1
  import type { CommandInfo } from './commands.js';
2
- export declare function runShortcut(cmd: CommandInfo, bin: string): void;
2
+ export declare function runShortcut(cmd: CommandInfo, bin: string, args?: string[]): number;
3
+ export declare function findFileRunner(arg: string, cwd: string, stack?: string): Promise<CommandInfo | null>;