@tachui/cli 0.7.0-alpha1

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,337 @@
1
+ /**
2
+ * Tacho CLI - Analyze Command
3
+ *
4
+ * Code analysis and performance insights for TachUI applications
5
+ */
6
+ import { readFileSync, statSync, writeFileSync } from 'node:fs';
7
+ import { resolve } from 'node:path';
8
+ import chalk from 'chalk';
9
+ import { Command } from 'commander';
10
+ import { glob } from 'glob';
11
+ import ora from 'ora';
12
+ function analyzeFile(filePath, content) {
13
+ const lines = content.split('\n');
14
+ const analysis = {
15
+ file: filePath,
16
+ lines: lines.length,
17
+ size: Buffer.byteLength(content, 'utf8'),
18
+ hasState: false,
19
+ hasModifiers: false,
20
+ hasLifecycle: false,
21
+ hasNavigation: false,
22
+ imports: [],
23
+ exports: [],
24
+ components: [],
25
+ stateUsage: [],
26
+ modifierUsage: [],
27
+ layoutUsage: [],
28
+ lifecycleUsage: [],
29
+ navigationUsage: [],
30
+ complexity: 0,
31
+ };
32
+ // Analyze imports
33
+ const importMatches = content.match(/import.*from ['"]@tachui\/core['"]/g) || [];
34
+ analysis.imports = importMatches;
35
+ // Analyze state usage
36
+ if (content.includes('State(') ||
37
+ content.includes('ObservedObject(') ||
38
+ content.includes('EnvironmentObject(')) {
39
+ analysis.hasState = true;
40
+ const stateMatches = content.match(/const \w+ = State\([^)]*\)/g) || [];
41
+ analysis.stateUsage.push(...stateMatches);
42
+ }
43
+ // Analyze modifier usage
44
+ if (content.includes('.modifier')) {
45
+ analysis.hasModifiers = true;
46
+ const modifierChains = content.match(/\.modifier[\s\S]*?\.build\(\)/g) || [];
47
+ analysis.modifierUsage = modifierChains.map((chain) => chain
48
+ .split('.')
49
+ .filter((part) => part.trim() && !part.includes('modifier') && !part.includes('build()'))
50
+ .join('.'));
51
+ }
52
+ // Analyze layout usage
53
+ const layoutMatches = content.match(/Layout\.(VStack|HStack|ZStack)/g) || [];
54
+ analysis.layoutUsage = [...new Set(layoutMatches)];
55
+ if (layoutMatches.length > 0) {
56
+ analysis.complexity += layoutMatches.length;
57
+ }
58
+ // Analyze lifecycle usage
59
+ const lifecycleModifiers = ['onAppear', 'onDisappear', 'task', 'refreshable'];
60
+ lifecycleModifiers.forEach((modifier) => {
61
+ if (content.includes(`.${modifier}(`)) {
62
+ analysis.hasLifecycle = true;
63
+ analysis.lifecycleUsage.push(modifier);
64
+ }
65
+ });
66
+ // Analyze navigation usage
67
+ const navigationComponents = ['NavigationView', 'NavigationLink', 'TabView', 'useNavigation'];
68
+ navigationComponents.forEach((component) => {
69
+ if (content.includes(component)) {
70
+ analysis.hasNavigation = true;
71
+ analysis.navigationUsage.push(component);
72
+ }
73
+ });
74
+ // Find component definitions
75
+ const componentMatches = content.match(/export function (\w+)\(/g) || [];
76
+ analysis.components = componentMatches.map((match) => match.replace('export function ', '').replace('(', ''));
77
+ // Calculate complexity score
78
+ analysis.complexity += (content.match(/if\s*\(/g) || []).length * 2;
79
+ analysis.complexity += (content.match(/for\s*\(/g) || []).length * 2;
80
+ analysis.complexity += (content.match(/while\s*\(/g) || []).length * 2;
81
+ analysis.complexity += (content.match(/switch\s*\(/g) || []).length * 3;
82
+ analysis.complexity += (content.match(/\.map\(/g) || []).length;
83
+ analysis.complexity += (content.match(/\.filter\(/g) || []).length;
84
+ analysis.complexity += analysis.modifierUsage.length * 0.5;
85
+ return analysis;
86
+ }
87
+ function generateSuggestions(results) {
88
+ const suggestions = [];
89
+ // State management suggestions
90
+ if (results.components.withState < results.components.total * 0.3) {
91
+ suggestions.push('Consider using @State for more reactive components');
92
+ }
93
+ // Modifier usage suggestions
94
+ if (results.components.withModifiers < results.components.total * 0.7) {
95
+ suggestions.push('Use TachUI modifiers for consistent styling (.modifier.padding(), .foregroundColor())');
96
+ }
97
+ // Lifecycle suggestions
98
+ if (results.components.withLifecycle < results.components.total * 0.2) {
99
+ suggestions.push('Consider using lifecycle modifiers (onAppear, task) for better component behavior');
100
+ }
101
+ // Performance suggestions
102
+ if (results.performance.largeComponents.length > 0) {
103
+ suggestions.push(`Break down large components (${results.performance.largeComponents.length} components >200 lines)`);
104
+ }
105
+ if (results.performance.complexComponents.length > 0) {
106
+ suggestions.push(`Simplify complex components (${results.performance.complexComponents.length} components with high complexity)`);
107
+ }
108
+ // Pattern suggestions
109
+ const hasNavigation = results.patterns.navigationUsage.length > 0;
110
+ if (!hasNavigation && results.components.total > 3) {
111
+ suggestions.push('Consider adding navigation (NavigationView, TabView) for better user experience');
112
+ }
113
+ // Layout suggestions
114
+ const layoutTypes = new Set(results.patterns.layoutUsage.map((usage) => usage.split('.')[1]));
115
+ if (layoutTypes.size === 1 && layoutTypes.has('VStack')) {
116
+ suggestions.push('Consider using HStack or ZStack for more dynamic layouts');
117
+ }
118
+ return suggestions;
119
+ }
120
+ export const analyzeCommand = new Command('analyze')
121
+ .description('Analyze TachUI codebase for patterns and performance')
122
+ .option('-p, --pattern <pattern>', 'File pattern to analyze', 'src/**/*.{js,jsx,ts,tsx}')
123
+ .option('-o, --output <file>', 'Output report to file')
124
+ .option('--performance', 'Include performance analysis', true)
125
+ .option('--suggestions', 'Include improvement suggestions', true)
126
+ .option('--detailed', 'Show detailed component analysis', false)
127
+ .action(async (options) => {
128
+ try {
129
+ console.log(chalk.cyan(`
130
+ ╭─────────────────────────────────────╮
131
+ │ šŸ“Š TachUI Code Analyzer │
132
+ │ Pattern analysis & metrics │
133
+ ╰─────────────────────────────────────╯
134
+ `));
135
+ const spinner = ora('Analyzing codebase...').start();
136
+ // Find files to analyze
137
+ const files = await glob(options.pattern, {
138
+ cwd: process.cwd(),
139
+ absolute: true,
140
+ });
141
+ if (files.length === 0) {
142
+ spinner.fail('No files found matching pattern');
143
+ console.log(chalk.yellow(`Pattern: ${options.pattern}`));
144
+ return;
145
+ }
146
+ const fileAnalyses = [];
147
+ const results = {
148
+ files: {
149
+ total: 0,
150
+ byType: {},
151
+ totalSize: 0,
152
+ averageSize: 0,
153
+ },
154
+ components: {
155
+ total: 0,
156
+ withState: 0,
157
+ withModifiers: 0,
158
+ withLifecycle: 0,
159
+ withNavigation: 0,
160
+ },
161
+ patterns: {
162
+ stateUsage: [],
163
+ modifierUsage: [],
164
+ layoutUsage: [],
165
+ lifecycleUsage: [],
166
+ navigationUsage: [],
167
+ },
168
+ performance: {
169
+ largeComponents: [],
170
+ complexComponents: [],
171
+ unusedImports: [],
172
+ },
173
+ suggestions: [],
174
+ };
175
+ // Analyze each file
176
+ for (const file of files) {
177
+ try {
178
+ const content = readFileSync(file, 'utf-8');
179
+ const stats = statSync(file);
180
+ const ext = file.split('.').pop() || 'unknown';
181
+ const analysis = analyzeFile(file, content);
182
+ fileAnalyses.push(analysis);
183
+ // Update file stats
184
+ results.files.total++;
185
+ results.files.byType[ext] = (results.files.byType[ext] || 0) + 1;
186
+ results.files.totalSize += stats.size;
187
+ // Update component stats
188
+ results.components.total += analysis.components.length;
189
+ if (analysis.hasState)
190
+ results.components.withState++;
191
+ if (analysis.hasModifiers)
192
+ results.components.withModifiers++;
193
+ if (analysis.hasLifecycle)
194
+ results.components.withLifecycle++;
195
+ if (analysis.hasNavigation)
196
+ results.components.withNavigation++;
197
+ // Collect patterns
198
+ results.patterns.stateUsage.push(...analysis.stateUsage);
199
+ results.patterns.modifierUsage.push(...analysis.modifierUsage);
200
+ results.patterns.layoutUsage.push(...analysis.layoutUsage);
201
+ results.patterns.lifecycleUsage.push(...analysis.lifecycleUsage);
202
+ results.patterns.navigationUsage.push(...analysis.navigationUsage);
203
+ // Performance analysis
204
+ if (analysis.lines > 200) {
205
+ results.performance.largeComponents.push({
206
+ file: file.split('/').pop() || file,
207
+ lines: analysis.lines,
208
+ size: analysis.size,
209
+ });
210
+ }
211
+ if (analysis.complexity > 20) {
212
+ results.performance.complexComponents.push({
213
+ file: file.split('/').pop() || file,
214
+ complexity: analysis.complexity,
215
+ });
216
+ }
217
+ }
218
+ catch (_error) {
219
+ // Skip files that can't be read
220
+ }
221
+ }
222
+ results.files.averageSize = results.files.totalSize / results.files.total;
223
+ // Generate suggestions
224
+ if (options.suggestions) {
225
+ results.suggestions = generateSuggestions(results);
226
+ }
227
+ spinner.succeed('Code analysis complete!');
228
+ // Display results
229
+ console.log(`\n${chalk.green('šŸ“Š Analysis Results')}`);
230
+ console.log(chalk.gray('─'.repeat(40)));
231
+ // File statistics
232
+ console.log(`\n${chalk.yellow('šŸ“ File Statistics:')}`);
233
+ console.log(`${chalk.gray('Total files:')} ${results.files.total}`);
234
+ console.log(`${chalk.gray('Total size:')} ${(results.files.totalSize / 1024).toFixed(1)} KB`);
235
+ console.log(`${chalk.gray('Average size:')} ${(results.files.averageSize / 1024).toFixed(1)} KB`);
236
+ console.log(`\n${chalk.gray('File types:')}`);
237
+ Object.entries(results.files.byType).forEach(([type, count]) => {
238
+ console.log(` ${type}: ${count}`);
239
+ });
240
+ // Component statistics
241
+ console.log(`\n${chalk.yellow('🧩 Component Statistics:')}`);
242
+ console.log(`${chalk.gray('Total components:')} ${results.components.total}`);
243
+ console.log(`${chalk.gray('With @State:')} ${results.components.withState} (${((results.components.withState / results.files.total) * 100).toFixed(1)}%)`);
244
+ console.log(`${chalk.gray('With modifiers:')} ${results.components.withModifiers} (${((results.components.withModifiers / results.files.total) * 100).toFixed(1)}%)`);
245
+ console.log(`${chalk.gray('With lifecycle:')} ${results.components.withLifecycle} (${((results.components.withLifecycle / results.files.total) * 100).toFixed(1)}%)`);
246
+ console.log(`${chalk.gray('With navigation:')} ${results.components.withNavigation} (${((results.components.withNavigation / results.files.total) * 100).toFixed(1)}%)`);
247
+ // Pattern usage
248
+ console.log(`\n${chalk.yellow('šŸŽØ Pattern Usage:')}`);
249
+ const topModifiers = [...new Set(results.patterns.modifierUsage.flat())].slice(0, 5);
250
+ if (topModifiers.length > 0) {
251
+ console.log(`${chalk.gray('Top modifiers:')} ${topModifiers.join(', ')}`);
252
+ }
253
+ const layoutTypes = [...new Set(results.patterns.layoutUsage)];
254
+ if (layoutTypes.length > 0) {
255
+ console.log(`${chalk.gray('Layout types:')} ${layoutTypes.join(', ')}`);
256
+ }
257
+ const lifecycleTypes = [...new Set(results.patterns.lifecycleUsage)];
258
+ if (lifecycleTypes.length > 0) {
259
+ console.log(`${chalk.gray('Lifecycle modifiers:')} ${lifecycleTypes.join(', ')}`);
260
+ }
261
+ // Performance insights
262
+ if (options.performance) {
263
+ console.log(`\n${chalk.yellow('⚔ Performance Insights:')}`);
264
+ if (results.performance.largeComponents.length > 0) {
265
+ console.log(`${chalk.red('Large components:')} ${results.performance.largeComponents.length}`);
266
+ results.performance.largeComponents.slice(0, 3).forEach((comp) => {
267
+ console.log(` ${comp.file}: ${comp.lines} lines`);
268
+ });
269
+ }
270
+ if (results.performance.complexComponents.length > 0) {
271
+ console.log(`${chalk.red('Complex components:')} ${results.performance.complexComponents.length}`);
272
+ results.performance.complexComponents.slice(0, 3).forEach((comp) => {
273
+ console.log(` ${comp.file}: complexity ${comp.complexity}`);
274
+ });
275
+ }
276
+ if (results.performance.largeComponents.length === 0 &&
277
+ results.performance.complexComponents.length === 0) {
278
+ console.log(chalk.green('āœ… No performance issues detected'));
279
+ }
280
+ }
281
+ // Suggestions
282
+ if (options.suggestions && results.suggestions.length > 0) {
283
+ console.log(`\n${chalk.yellow('šŸ’” Improvement Suggestions:')}`);
284
+ results.suggestions.forEach((suggestion, index) => {
285
+ console.log(`${chalk.gray(`${index + 1}.`)} ${suggestion}`);
286
+ });
287
+ }
288
+ // Detailed analysis
289
+ if (options.detailed && fileAnalyses.length > 0) {
290
+ console.log(`\n${chalk.yellow('šŸ” Detailed Component Analysis:')}`);
291
+ fileAnalyses
292
+ .filter((analysis) => analysis.components.length > 0)
293
+ .slice(0, 5)
294
+ .forEach((analysis) => {
295
+ const fileName = analysis.file.split('/').pop();
296
+ console.log(`\n${chalk.cyan(fileName)}:`);
297
+ console.log(` Components: ${analysis.components.join(', ')}`);
298
+ console.log(` Lines: ${analysis.lines}`);
299
+ console.log(` Complexity: ${analysis.complexity}`);
300
+ if (analysis.stateUsage.length > 0) {
301
+ console.log(` State usage: ${analysis.stateUsage.length} instances`);
302
+ }
303
+ if (analysis.modifierUsage.length > 0) {
304
+ console.log(` Modifier chains: ${analysis.modifierUsage.length}`);
305
+ }
306
+ });
307
+ }
308
+ // TachUI health score
309
+ const stateScore = (results.components.withState / results.files.total) * 25;
310
+ const modifierScore = (results.components.withModifiers / results.files.total) * 25;
311
+ const lifecycleScore = (results.components.withLifecycle / results.files.total) * 25;
312
+ const performanceScore = Math.max(0, 25 -
313
+ (results.performance.largeComponents.length +
314
+ results.performance.complexComponents.length) *
315
+ 5);
316
+ const healthScore = Math.round(stateScore + modifierScore + lifecycleScore + performanceScore);
317
+ console.log(`\n${chalk.yellow('šŸ„ TachUI Health Score:')} ${healthScore}/100`);
318
+ let healthColor = chalk.red;
319
+ if (healthScore >= 80)
320
+ healthColor = chalk.green;
321
+ else if (healthScore >= 60)
322
+ healthColor = chalk.yellow;
323
+ console.log(healthColor(`${'ā–ˆ'.repeat(Math.floor(healthScore / 5))}${'ā–‘'.repeat(20 - Math.floor(healthScore / 5))}`));
324
+ // Save report if requested
325
+ if (options.output) {
326
+ const report = JSON.stringify(results, null, 2);
327
+ writeFileSync(resolve(options.output), report);
328
+ console.log(`\n${chalk.green('šŸ“„ Report saved to:')} ${options.output}`);
329
+ }
330
+ console.log(`\n${chalk.green('Analysis complete! šŸŽ‰')}`);
331
+ }
332
+ catch (error) {
333
+ console.error(chalk.red('Analysis error:'), error.message);
334
+ process.exit(1);
335
+ }
336
+ });
337
+ //# sourceMappingURL=analyze.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analyze.js","sourceRoot":"","sources":["../../src/commands/analyze.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Tacho CLI - Dev Command
3
+ *
4
+ * Start development server with TachUI optimizations and real-time performance monitoring
5
+ */
6
+ import { Command } from 'commander';
7
+ export declare const devCommand: Command;
8
+ //# sourceMappingURL=dev.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAGnC,eAAO,MAAM,UAAU,SA0LnB,CAAA"}
@@ -0,0 +1,171 @@
1
+ /**
2
+ * Tacho CLI - Dev Command
3
+ *
4
+ * Start development server with TachUI optimizations and real-time performance monitoring
5
+ */
6
+ import { spawn } from 'node:child_process';
7
+ import { existsSync } from 'node:fs';
8
+ import { resolve } from 'node:path';
9
+ import chalk from 'chalk';
10
+ import { Command } from 'commander';
11
+ import ora from 'ora';
12
+ export const devCommand = new Command('dev')
13
+ .description('Start development server with TachUI optimizations')
14
+ .option('-p, --port <port>', 'Port number', '3000')
15
+ .option('-h, --host <host>', 'Host address', 'localhost')
16
+ .option('--open', 'Open browser automatically', true)
17
+ .option('--performance', 'Enable performance monitoring', false)
18
+ .option('--debug', 'Enable debug mode with detailed logging', false)
19
+ .action(async (options) => {
20
+ try {
21
+ const cwd = process.cwd();
22
+ // Check if we're in a TachUI project
23
+ const packageJsonPath = resolve(cwd, 'package.json');
24
+ if (!existsSync(packageJsonPath)) {
25
+ console.error(chalk.red('āŒ No package.json found. Are you in a TachUI project?'));
26
+ console.log(chalk.yellow('šŸ’” Run `tacho init` to create a new project'));
27
+ process.exit(1);
28
+ }
29
+ // Check for TachUI dependency
30
+ const packageJson = require(packageJsonPath);
31
+ const hasTachUI = packageJson.dependencies?.['@tachui/core'] || packageJson.devDependencies?.['@tachui/core'];
32
+ if (!hasTachUI) {
33
+ console.log(chalk.yellow('āš ļø TachUI not found in dependencies'));
34
+ console.log(chalk.blue('šŸ’” This appears to be a regular Vite project'));
35
+ }
36
+ console.log(chalk.cyan(`
37
+ ╭─────────────────────────────────────╮
38
+ │ šŸš€ TachUI Development Server │
39
+ │ Enhanced for TachUI projects │
40
+ ╰─────────────────────────────────────╯
41
+ `));
42
+ // Performance monitoring setup
43
+ if (options.performance) {
44
+ console.log(chalk.green('šŸ“Š Performance monitoring enabled'));
45
+ console.log(chalk.gray(' • Bundle size tracking'));
46
+ console.log(chalk.gray(' • Hot reload performance'));
47
+ console.log(chalk.gray(' • Memory usage monitoring'));
48
+ }
49
+ // Debug mode setup
50
+ if (options.debug) {
51
+ console.log(chalk.blue('šŸ› Debug mode enabled'));
52
+ console.log(chalk.gray(' • Detailed compilation logs'));
53
+ console.log(chalk.gray(' • Signal tracking'));
54
+ console.log(chalk.gray(' • Component lifecycle logging'));
55
+ }
56
+ const spinner = ora('Starting development server...').start();
57
+ // Check if vite.config exists
58
+ const viteConfigExists = existsSync(resolve(cwd, 'vite.config.ts')) || existsSync(resolve(cwd, 'vite.config.js'));
59
+ if (!viteConfigExists) {
60
+ spinner.warn('No vite.config found, using defaults');
61
+ }
62
+ // Prepare Vite command arguments
63
+ const viteArgs = ['--port', options.port, '--host', options.host];
64
+ if (options.open) {
65
+ viteArgs.push('--open');
66
+ }
67
+ // Add TachUI-specific environment variables
68
+ const env = {
69
+ ...process.env,
70
+ TACHUI_DEV: 'true',
71
+ TACHUI_PERFORMANCE_MONITORING: options.performance ? 'true' : 'false',
72
+ TACHUI_DEBUG: options.debug ? 'true' : 'false',
73
+ NODE_ENV: 'development',
74
+ };
75
+ // Start Vite development server
76
+ const viteProcess = spawn('npx', ['vite', ...viteArgs], {
77
+ cwd,
78
+ env,
79
+ stdio: 'pipe',
80
+ });
81
+ let serverStarted = false;
82
+ viteProcess.stdout?.on('data', (data) => {
83
+ const output = data.toString();
84
+ // Detect when server is ready
85
+ if (output.includes('Local:') && !serverStarted) {
86
+ serverStarted = true;
87
+ spinner.succeed('Development server started!');
88
+ // Show TachUI-specific info
89
+ console.log(chalk.green('\nāœ… TachUI Development Server Ready!'));
90
+ if (options.performance) {
91
+ console.log(chalk.blue('šŸ“Š Performance monitoring active'));
92
+ }
93
+ if (options.debug) {
94
+ console.log(chalk.blue('šŸ› Debug logging enabled'));
95
+ }
96
+ console.log(chalk.gray('\nšŸ“ TachUI Features:'));
97
+ console.log(chalk.gray(' • SwiftUI-style modifiers'));
98
+ console.log(chalk.gray(' • Fine-grained reactivity'));
99
+ console.log(chalk.gray(' • Direct DOM rendering'));
100
+ console.log(chalk.gray(' • Phase 6 state management'));
101
+ console.log(chalk.gray(' • Navigation system'));
102
+ console.log(chalk.yellow('\nšŸ’” Tips:'));
103
+ console.log(chalk.gray(' • Use .modifier chains for styling'));
104
+ console.log(chalk.gray(' • Try @State for reactive local state'));
105
+ console.log(chalk.gray(' • Use TabView for navigation'));
106
+ console.log(chalk.gray(' • Check browser devtools for performance'));
107
+ }
108
+ // Filter and enhance output
109
+ const lines = output.split('\n').filter((line) => line.trim());
110
+ lines.forEach((line) => {
111
+ if (line.includes('Local:')) {
112
+ console.log(chalk.green(line));
113
+ }
114
+ else if (line.includes('Network:')) {
115
+ console.log(chalk.blue(line));
116
+ }
117
+ else if (line.includes('ready in')) {
118
+ console.log(chalk.cyan(line));
119
+ }
120
+ else if (options.debug && line.trim()) {
121
+ console.log(chalk.gray(line));
122
+ }
123
+ });
124
+ });
125
+ viteProcess.stderr?.on('data', (data) => {
126
+ const error = data.toString();
127
+ // Handle common TachUI-related errors
128
+ if (error.includes('@tachui/core')) {
129
+ console.error(chalk.red('āŒ TachUI import error:'));
130
+ console.error(chalk.gray(error));
131
+ console.log(chalk.yellow('šŸ’” Make sure @tachui/core is installed: npm install @tachui/core'));
132
+ }
133
+ else if (error.includes('TypeScript')) {
134
+ console.error(chalk.red('āŒ TypeScript error:'));
135
+ console.error(chalk.gray(error));
136
+ }
137
+ else if (options.debug) {
138
+ console.error(chalk.red(error));
139
+ }
140
+ });
141
+ viteProcess.on('close', (code) => {
142
+ if (code !== 0) {
143
+ console.error(chalk.red(`āŒ Development server exited with code ${code}`));
144
+ }
145
+ else {
146
+ console.log(chalk.green('āœ… Development server stopped'));
147
+ }
148
+ });
149
+ // Handle process termination
150
+ process.on('SIGINT', () => {
151
+ console.log(chalk.yellow('\nšŸ›‘ Stopping development server...'));
152
+ viteProcess.kill('SIGINT');
153
+ process.exit(0);
154
+ });
155
+ process.on('SIGTERM', () => {
156
+ viteProcess.kill('SIGTERM');
157
+ process.exit(0);
158
+ });
159
+ }
160
+ catch (error) {
161
+ console.error(chalk.red('āŒ Error starting development server:'), error.message);
162
+ // Provide helpful debugging information
163
+ console.log(chalk.yellow('\nšŸ” Troubleshooting:'));
164
+ console.log(chalk.gray(" • Make sure you're in a TachUI project directory"));
165
+ console.log(chalk.gray(' • Check that package.json exists'));
166
+ console.log(chalk.gray(' • Verify @tachui/core is installed'));
167
+ console.log(chalk.gray(' • Try: npm install && tacho dev'));
168
+ process.exit(1);
169
+ }
170
+ });
171
+ //# sourceMappingURL=dev.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Tacho CLI - Generate Command
3
+ *
4
+ * Code generation and scaffolding for TachUI components with Phase 6 patterns
5
+ */
6
+ import { Command } from 'commander';
7
+ export declare const generateCommand: Command;
8
+ //# sourceMappingURL=generate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAiqBnC,eAAO,MAAM,eAAe,SAoIxB,CAAA"}