@vibe-validate/cli 0.9.10 → 0.10.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.
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +151 -38
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +228 -109
- package/dist/commands/init.js.map +1 -1
- package/dist/utils/config-loader.d.ts +3 -7
- package/dist/utils/config-loader.d.ts.map +1 -1
- package/dist/utils/config-loader.js +7 -19
- package/dist/utils/config-loader.js.map +1 -1
- package/dist/utils/git-detection.d.ts +41 -0
- package/dist/utils/git-detection.d.ts.map +1 -0
- package/dist/utils/git-detection.js +109 -0
- package/dist/utils/git-detection.js.map +1 -0
- package/dist/utils/runner-adapter.js +3 -3
- package/dist/utils/runner-adapter.js.map +1 -1
- package/dist/utils/setup-checks/gitignore-check.d.ts +23 -0
- package/dist/utils/setup-checks/gitignore-check.d.ts.map +1 -0
- package/dist/utils/setup-checks/gitignore-check.js +156 -0
- package/dist/utils/setup-checks/gitignore-check.js.map +1 -0
- package/dist/utils/setup-checks/hooks-check.d.ts +27 -0
- package/dist/utils/setup-checks/hooks-check.d.ts.map +1 -0
- package/dist/utils/setup-checks/hooks-check.js +175 -0
- package/dist/utils/setup-checks/hooks-check.js.map +1 -0
- package/dist/utils/setup-checks/workflow-check.d.ts +22 -0
- package/dist/utils/setup-checks/workflow-check.d.ts.map +1 -0
- package/dist/utils/setup-checks/workflow-check.js +147 -0
- package/dist/utils/setup-checks/workflow-check.js.map +1 -0
- package/dist/utils/setup-engine.d.ts +155 -0
- package/dist/utils/setup-engine.d.ts.map +1 -0
- package/dist/utils/setup-engine.js +31 -0
- package/dist/utils/setup-engine.js.map +1 -0
- package/package.json +4 -4
package/dist/commands/init.js
CHANGED
|
@@ -3,61 +3,45 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Interactive setup wizard for vibe-validate configuration.
|
|
5
5
|
*/
|
|
6
|
-
import { writeFileSync } from 'fs';
|
|
6
|
+
import { writeFileSync, existsSync } from 'fs';
|
|
7
7
|
import { join } from 'path';
|
|
8
|
-
import {
|
|
8
|
+
import { pathToFileURL } from 'url';
|
|
9
|
+
import { dump as stringifyYaml } from 'js-yaml';
|
|
9
10
|
import chalk from 'chalk';
|
|
10
11
|
import { configExists } from '../utils/config-loader.js';
|
|
11
|
-
import {
|
|
12
|
+
import { detectGitConfig } from '../utils/git-detection.js';
|
|
13
|
+
import { GitignoreSetupCheck } from '../utils/setup-checks/gitignore-check.js';
|
|
14
|
+
import { HooksSetupCheck } from '../utils/setup-checks/hooks-check.js';
|
|
15
|
+
import { WorkflowSetupCheck } from '../utils/setup-checks/workflow-check.js';
|
|
12
16
|
export function initCommand(program) {
|
|
13
17
|
program
|
|
14
18
|
.command('init')
|
|
15
19
|
.description('Initialize vibe-validate configuration')
|
|
16
20
|
.option('-p, --preset <preset>', 'Use preset (typescript-library|typescript-nodejs|typescript-react)')
|
|
17
21
|
.option('-f, --force', 'Overwrite existing configuration')
|
|
22
|
+
.option('--dry-run', 'Preview changes without writing files')
|
|
23
|
+
.option('--setup-hooks', 'Install pre-commit hook')
|
|
24
|
+
.option('--setup-workflow', 'Create GitHub Actions workflow')
|
|
25
|
+
.option('--fix-gitignore', 'Add state file to .gitignore')
|
|
26
|
+
.option('--migrate', 'Migrate .mjs config to .yaml format')
|
|
18
27
|
.action(async (options) => {
|
|
19
28
|
try {
|
|
20
29
|
const cwd = process.cwd();
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
30
|
+
const isDryRun = options.dryRun || false;
|
|
31
|
+
// Handle migration
|
|
32
|
+
if (options.migrate) {
|
|
33
|
+
await handleMigration(cwd, options, isDryRun);
|
|
34
|
+
return;
|
|
26
35
|
}
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
if (
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
process.exit(1);
|
|
36
|
+
// Check if this is a focused operation
|
|
37
|
+
const isFocusedOperation = options.setupHooks || options.setupWorkflow || options.fixGitignore;
|
|
38
|
+
// Handle focused operations
|
|
39
|
+
if (isFocusedOperation) {
|
|
40
|
+
await handleFocusedOperations(cwd, options, isDryRun);
|
|
41
|
+
return;
|
|
34
42
|
}
|
|
35
|
-
//
|
|
36
|
-
|
|
37
|
-
if (gitConfig.detected) {
|
|
38
|
-
console.log(chalk.blue('🔍 Auto-detected git configuration:'));
|
|
39
|
-
console.log(chalk.gray(` Main branch: ${gitConfig.mainBranch}`));
|
|
40
|
-
console.log(chalk.gray(` Remote: ${gitConfig.remoteOrigin}`));
|
|
41
|
-
}
|
|
42
|
-
else {
|
|
43
|
-
console.log(chalk.gray('ℹ️ Using default git configuration (main, origin)'));
|
|
44
|
-
}
|
|
45
|
-
// Generate config file content
|
|
46
|
-
const configContent = generateConfig(preset, gitConfig);
|
|
47
|
-
const configPath = join(cwd, 'vibe-validate.config.ts');
|
|
48
|
-
// Write config file
|
|
49
|
-
writeFileSync(configPath, configContent, 'utf-8');
|
|
50
|
-
console.log(chalk.green('✅ Configuration file created successfully'));
|
|
51
|
-
console.log(chalk.blue(`📋 Created: ${configPath}`));
|
|
52
|
-
console.log(chalk.gray(` Preset: ${preset}`));
|
|
53
|
-
console.log();
|
|
54
|
-
console.log(chalk.yellow('Next steps:'));
|
|
55
|
-
console.log(chalk.gray(' 1. Review and customize vibe-validate.config.ts'));
|
|
56
|
-
console.log(chalk.gray(' 2. Run: vibe-validate validate'));
|
|
57
|
-
console.log(chalk.gray(' 3. Add to package.json scripts:'));
|
|
58
|
-
console.log(chalk.gray(' "validate": "vibe-validate validate"'));
|
|
59
|
-
console.log(chalk.gray(' "pre-commit": "vibe-validate pre-commit"'));
|
|
60
|
-
process.exit(0);
|
|
43
|
+
// Handle config initialization
|
|
44
|
+
await handleConfigInitialization(cwd, options, isDryRun);
|
|
61
45
|
}
|
|
62
46
|
catch (error) {
|
|
63
47
|
console.error(chalk.red('❌ Failed to initialize configuration:'), error);
|
|
@@ -65,86 +49,221 @@ export function initCommand(program) {
|
|
|
65
49
|
}
|
|
66
50
|
});
|
|
67
51
|
}
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
52
|
+
/**
|
|
53
|
+
* Handle focused operations (--setup-hooks, --setup-workflow, --fix-gitignore)
|
|
54
|
+
*
|
|
55
|
+
* Executes specific setup tasks independently without creating config files.
|
|
56
|
+
* All operations are idempotent and can be safely run multiple times.
|
|
57
|
+
*
|
|
58
|
+
* @param cwd - Current working directory
|
|
59
|
+
* @param options - Init command options
|
|
60
|
+
* @param isDryRun - Preview mode (no file modifications)
|
|
61
|
+
* @throws Error if setup check fails
|
|
62
|
+
*/
|
|
63
|
+
async function handleFocusedOperations(cwd, options, isDryRun) {
|
|
64
|
+
const fixOptions = { cwd, dryRun: isDryRun, force: options.force };
|
|
65
|
+
const operations = [];
|
|
66
|
+
// Setup gitignore check
|
|
67
|
+
if (options.fixGitignore) {
|
|
68
|
+
operations.push({
|
|
69
|
+
name: 'Gitignore',
|
|
70
|
+
check: new GitignoreSetupCheck(),
|
|
71
|
+
enabled: true,
|
|
72
|
+
});
|
|
77
73
|
}
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
74
|
+
// Setup hooks check
|
|
75
|
+
if (options.setupHooks) {
|
|
76
|
+
operations.push({
|
|
77
|
+
name: 'Pre-commit hook',
|
|
78
|
+
check: new HooksSetupCheck(),
|
|
79
|
+
enabled: true,
|
|
80
|
+
});
|
|
81
81
|
}
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
stdio: 'pipe',
|
|
106
|
-
}).trim();
|
|
107
|
-
mainBranch = headRef.replace(`refs/remotes/${remoteOrigin}/`, '');
|
|
108
|
-
detected = true;
|
|
109
|
-
}
|
|
110
|
-
catch {
|
|
111
|
-
// Remote HEAD not set, try to detect from common branch names
|
|
112
|
-
try {
|
|
113
|
-
const branches = execSync(`git ls-remote --heads ${remoteOrigin}`, {
|
|
114
|
-
encoding: 'utf8',
|
|
115
|
-
stdio: 'pipe',
|
|
116
|
-
}).trim();
|
|
117
|
-
// Check for common main branch names in order of preference
|
|
118
|
-
if (branches.includes('refs/heads/main')) {
|
|
119
|
-
mainBranch = 'main';
|
|
120
|
-
detected = true;
|
|
121
|
-
}
|
|
122
|
-
else if (branches.includes('refs/heads/master')) {
|
|
123
|
-
mainBranch = 'master';
|
|
124
|
-
detected = true;
|
|
125
|
-
}
|
|
126
|
-
else if (branches.includes('refs/heads/develop')) {
|
|
127
|
-
mainBranch = 'develop';
|
|
128
|
-
detected = true;
|
|
82
|
+
// Setup workflow check
|
|
83
|
+
if (options.setupWorkflow) {
|
|
84
|
+
operations.push({
|
|
85
|
+
name: 'GitHub Actions workflow',
|
|
86
|
+
check: new WorkflowSetupCheck(),
|
|
87
|
+
enabled: true,
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
// Execute operations
|
|
91
|
+
for (const operation of operations) {
|
|
92
|
+
if (!operation.enabled)
|
|
93
|
+
continue;
|
|
94
|
+
if (isDryRun) {
|
|
95
|
+
// Preview mode
|
|
96
|
+
const preview = await operation.check.preview(fixOptions);
|
|
97
|
+
console.log(chalk.blue(`\n🔍 ${operation.name} (dry-run):`));
|
|
98
|
+
console.log(chalk.gray(` ${preview.description}`));
|
|
99
|
+
if (preview.changes && preview.changes.length > 0) {
|
|
100
|
+
console.log(chalk.yellow(' Would create:'));
|
|
101
|
+
for (const change of preview.changes) {
|
|
102
|
+
console.log(chalk.gray(` - ${change.file} (${change.action})`));
|
|
103
|
+
if (change.content && change.content.length < 500) {
|
|
104
|
+
console.log(chalk.gray('\n' + change.content));
|
|
129
105
|
}
|
|
130
106
|
}
|
|
131
|
-
|
|
132
|
-
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
else {
|
|
110
|
+
// Fix mode
|
|
111
|
+
const result = await operation.check.fix(fixOptions);
|
|
112
|
+
if (result.success) {
|
|
113
|
+
if (result.filesChanged.length > 0) {
|
|
114
|
+
console.log(chalk.green(`✅ ${operation.name}: ${result.message}`));
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
console.log(chalk.gray(`ℹ️ ${operation.name}: ${result.message}`));
|
|
133
118
|
}
|
|
134
119
|
}
|
|
120
|
+
else {
|
|
121
|
+
console.error(chalk.red(`❌ ${operation.name}: ${result.message}`));
|
|
122
|
+
}
|
|
135
123
|
}
|
|
136
124
|
}
|
|
137
|
-
|
|
138
|
-
|
|
125
|
+
if (isDryRun) {
|
|
126
|
+
console.log(chalk.yellow('\n💡 Run without --dry-run to apply changes'));
|
|
139
127
|
}
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
128
|
+
process.exit(0);
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Handle config file initialization
|
|
132
|
+
*
|
|
133
|
+
* Creates a new vibe-validate configuration file using the specified preset.
|
|
134
|
+
* Auto-detects git configuration and generates appropriate defaults.
|
|
135
|
+
*
|
|
136
|
+
* @param cwd - Current working directory
|
|
137
|
+
* @param options - Init command options
|
|
138
|
+
* @param isDryRun - Preview mode (no file modifications)
|
|
139
|
+
* @throws Error if config already exists (unless force is true)
|
|
140
|
+
*/
|
|
141
|
+
async function handleConfigInitialization(cwd, options, isDryRun) {
|
|
142
|
+
// Check if config already exists
|
|
143
|
+
if (configExists(cwd) && !options.force && !isDryRun) {
|
|
144
|
+
console.error(chalk.red('❌ Configuration file already exists'));
|
|
145
|
+
console.error(chalk.gray(' Use --force to overwrite'));
|
|
146
|
+
process.exit(1);
|
|
147
|
+
}
|
|
148
|
+
const preset = options.preset || 'typescript-library';
|
|
149
|
+
// Validate preset
|
|
150
|
+
const validPresets = ['typescript-library', 'typescript-nodejs', 'typescript-react'];
|
|
151
|
+
if (!validPresets.includes(preset)) {
|
|
152
|
+
console.error(chalk.red(`❌ Invalid preset: ${preset}`));
|
|
153
|
+
console.error(chalk.gray(` Valid presets: ${validPresets.join(', ')}`));
|
|
154
|
+
process.exit(1);
|
|
155
|
+
}
|
|
156
|
+
// Detect git configuration
|
|
157
|
+
const gitConfig = detectGitConfig();
|
|
158
|
+
if (!isDryRun) {
|
|
159
|
+
if (gitConfig.detected) {
|
|
160
|
+
console.log(chalk.blue('🔍 Auto-detected git configuration:'));
|
|
161
|
+
console.log(chalk.gray(` Main branch: ${gitConfig.mainBranch}`));
|
|
162
|
+
console.log(chalk.gray(` Remote: ${gitConfig.remoteOrigin}`));
|
|
163
|
+
}
|
|
164
|
+
else {
|
|
165
|
+
console.log(chalk.gray('ℹ️ Using default git configuration (main, origin)'));
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
// Generate config file content (still using TypeScript for now)
|
|
169
|
+
const configContent = generateConfig(preset, gitConfig);
|
|
170
|
+
const configPath = join(cwd, 'vibe-validate.config.ts');
|
|
171
|
+
if (isDryRun) {
|
|
172
|
+
// Preview mode - show what would be created
|
|
173
|
+
console.log(chalk.blue('🔍 Configuration preview (dry-run):'));
|
|
174
|
+
console.log(chalk.yellow(' Would create:'));
|
|
175
|
+
console.log(chalk.gray(` - ${configPath}`));
|
|
176
|
+
console.log(chalk.gray(` - Preset: ${preset}`));
|
|
177
|
+
console.log();
|
|
178
|
+
console.log(chalk.yellow('💡 Run without --dry-run to create configuration'));
|
|
179
|
+
process.exit(0);
|
|
180
|
+
}
|
|
181
|
+
// Write config file
|
|
182
|
+
writeFileSync(configPath, configContent, 'utf-8');
|
|
183
|
+
console.log(chalk.green('✅ Configuration file created successfully'));
|
|
184
|
+
console.log(chalk.blue(`📋 Created: ${configPath}`));
|
|
185
|
+
console.log(chalk.gray(` Preset: ${preset}`));
|
|
186
|
+
console.log();
|
|
187
|
+
console.log(chalk.yellow('Next steps:'));
|
|
188
|
+
console.log(chalk.gray(' 1. Review and customize vibe-validate.config.ts'));
|
|
189
|
+
console.log(chalk.gray(' 2. Run: vibe-validate validate'));
|
|
190
|
+
console.log(chalk.gray(' 3. Add to package.json scripts:'));
|
|
191
|
+
console.log(chalk.gray(' "validate": "vibe-validate validate"'));
|
|
192
|
+
console.log(chalk.gray(' "pre-commit": "vibe-validate pre-commit"'));
|
|
193
|
+
process.exit(0);
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Handle migration from .mjs to .yaml config format
|
|
197
|
+
*
|
|
198
|
+
* Loads the existing .mjs configuration, converts it to YAML format,
|
|
199
|
+
* and writes it to vibe-validate.config.yaml.
|
|
200
|
+
*
|
|
201
|
+
* @param cwd - Current working directory
|
|
202
|
+
* @param options - Init command options
|
|
203
|
+
* @param isDryRun - Preview mode (no file modifications)
|
|
204
|
+
* @throws Error if .mjs config doesn't exist or .yaml already exists (without --force)
|
|
205
|
+
*/
|
|
206
|
+
async function handleMigration(cwd, options, isDryRun) {
|
|
207
|
+
const mjsPath = join(cwd, 'vibe-validate.config.mjs');
|
|
208
|
+
const yamlPath = join(cwd, 'vibe-validate.config.yaml');
|
|
209
|
+
// Check if .mjs config exists
|
|
210
|
+
if (!existsSync(mjsPath)) {
|
|
211
|
+
console.error(chalk.red('❌ No .mjs config found to migrate'));
|
|
212
|
+
console.error(chalk.gray(' Expected: vibe-validate.config.mjs'));
|
|
213
|
+
process.exit(1);
|
|
214
|
+
}
|
|
215
|
+
// Check if .yaml config already exists (unless --force)
|
|
216
|
+
if (existsSync(yamlPath) && !options.force && !isDryRun) {
|
|
217
|
+
console.error(chalk.red('❌ YAML config already exists'));
|
|
218
|
+
console.error(chalk.gray(' Use --force to overwrite'));
|
|
219
|
+
process.exit(1);
|
|
220
|
+
}
|
|
221
|
+
// Load the .mjs config
|
|
222
|
+
const fileUrl = pathToFileURL(mjsPath).href;
|
|
223
|
+
const module = await import(fileUrl);
|
|
224
|
+
const config = module.default || module;
|
|
225
|
+
// Convert to YAML
|
|
226
|
+
const yamlContent = stringifyYaml(config, {
|
|
227
|
+
indent: 2,
|
|
228
|
+
lineWidth: 100,
|
|
229
|
+
noRefs: true,
|
|
230
|
+
});
|
|
231
|
+
if (isDryRun) {
|
|
232
|
+
// Preview mode
|
|
233
|
+
console.log(chalk.blue('🔍 Migration preview (dry-run):'));
|
|
234
|
+
console.log(chalk.yellow(' Would create:'));
|
|
235
|
+
console.log(chalk.gray(` - ${yamlPath}`));
|
|
236
|
+
console.log();
|
|
237
|
+
console.log(chalk.gray('Preview of YAML content:'));
|
|
238
|
+
console.log(chalk.gray('─'.repeat(60)));
|
|
239
|
+
console.log(yamlContent);
|
|
240
|
+
console.log(chalk.gray('─'.repeat(60)));
|
|
241
|
+
console.log();
|
|
242
|
+
console.log(chalk.yellow('💡 Run without --dry-run to apply migration'));
|
|
243
|
+
console.log(chalk.gray(' Original .mjs file will be preserved (you can delete it manually)'));
|
|
244
|
+
process.exit(0);
|
|
245
|
+
}
|
|
246
|
+
// Write YAML config
|
|
247
|
+
writeFileSync(yamlPath, yamlContent, 'utf-8');
|
|
248
|
+
console.log(chalk.green('✅ Migration completed successfully'));
|
|
249
|
+
console.log(chalk.blue(`📋 Created: ${yamlPath}`));
|
|
250
|
+
console.log();
|
|
251
|
+
console.log(chalk.yellow('Next steps:'));
|
|
252
|
+
console.log(chalk.gray(' 1. Review vibe-validate.config.yaml'));
|
|
253
|
+
console.log(chalk.gray(' 2. Test with: vibe-validate validate'));
|
|
254
|
+
console.log(chalk.gray(` 3. Delete old config: rm ${mjsPath}`));
|
|
255
|
+
console.log(chalk.gray(' 4. Commit the new YAML config'));
|
|
256
|
+
process.exit(0);
|
|
145
257
|
}
|
|
146
258
|
/**
|
|
147
259
|
* Generate configuration content based on preset
|
|
260
|
+
*
|
|
261
|
+
* Creates TypeScript configuration file content with the specified preset
|
|
262
|
+
* and git configuration values.
|
|
263
|
+
*
|
|
264
|
+
* @param preset - Preset name (typescript-library, typescript-nodejs, typescript-react)
|
|
265
|
+
* @param gitConfig - Detected git configuration
|
|
266
|
+
* @returns TypeScript configuration file content
|
|
148
267
|
*/
|
|
149
268
|
function generateConfig(preset, gitConfig) {
|
|
150
269
|
const configs = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,13 +7,9 @@ import type { VibeValidateConfig } from '@vibe-validate/config';
|
|
|
7
7
|
/**
|
|
8
8
|
* Load vibe-validate configuration from project root
|
|
9
9
|
*
|
|
10
|
-
* Searches for configuration
|
|
11
|
-
* - vibe-validate.config.
|
|
12
|
-
* - vibe-validate.config.
|
|
13
|
-
* - vibe-validate.config.mjs
|
|
14
|
-
* - .vibe-validate.ts
|
|
15
|
-
* - .vibe-validate.js
|
|
16
|
-
* - .vibe-validate.mjs
|
|
10
|
+
* Searches for configuration files:
|
|
11
|
+
* - vibe-validate.config.yaml (primary format)
|
|
12
|
+
* - vibe-validate.config.mjs (deprecated, legacy support only)
|
|
17
13
|
*
|
|
18
14
|
* @param cwd Current working directory (defaults to process.cwd())
|
|
19
15
|
* @returns Configuration object or null if not found
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-loader.d.ts","sourceRoot":"","sources":["../../src/utils/config-loader.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAGhE
|
|
1
|
+
{"version":3,"file":"config-loader.d.ts","sourceRoot":"","sources":["../../src/utils/config-loader.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAGhE;;;;;;;;;GASG;AACH,wBAAsB,UAAU,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAajF;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAQlD;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAe1D"}
|
|
@@ -10,13 +10,9 @@ import chalk from 'chalk';
|
|
|
10
10
|
/**
|
|
11
11
|
* Load vibe-validate configuration from project root
|
|
12
12
|
*
|
|
13
|
-
* Searches for configuration
|
|
14
|
-
* - vibe-validate.config.
|
|
15
|
-
* - vibe-validate.config.
|
|
16
|
-
* - vibe-validate.config.mjs
|
|
17
|
-
* - .vibe-validate.ts
|
|
18
|
-
* - .vibe-validate.js
|
|
19
|
-
* - .vibe-validate.mjs
|
|
13
|
+
* Searches for configuration files:
|
|
14
|
+
* - vibe-validate.config.yaml (primary format)
|
|
15
|
+
* - vibe-validate.config.mjs (deprecated, legacy support only)
|
|
20
16
|
*
|
|
21
17
|
* @param cwd Current working directory (defaults to process.cwd())
|
|
22
18
|
* @returns Configuration object or null if not found
|
|
@@ -44,12 +40,8 @@ export async function loadConfig(cwd) {
|
|
|
44
40
|
export function configExists(cwd) {
|
|
45
41
|
const searchDir = cwd ?? process.cwd();
|
|
46
42
|
const configPaths = [
|
|
47
|
-
'vibe-validate.config.
|
|
48
|
-
'vibe-validate.config.
|
|
49
|
-
'vibe-validate.config.mjs',
|
|
50
|
-
'.vibe-validate.ts',
|
|
51
|
-
'.vibe-validate.js',
|
|
52
|
-
'.vibe-validate.mjs',
|
|
43
|
+
'vibe-validate.config.yaml',
|
|
44
|
+
'vibe-validate.config.mjs', // Legacy (deprecated)
|
|
53
45
|
];
|
|
54
46
|
return configPaths.some(path => existsSync(join(searchDir, path)));
|
|
55
47
|
}
|
|
@@ -62,12 +54,8 @@ export function configExists(cwd) {
|
|
|
62
54
|
export function findConfigPath(cwd) {
|
|
63
55
|
const searchDir = cwd ?? process.cwd();
|
|
64
56
|
const configPaths = [
|
|
65
|
-
'vibe-validate.config.
|
|
66
|
-
'vibe-validate.config.
|
|
67
|
-
'vibe-validate.config.mjs',
|
|
68
|
-
'.vibe-validate.ts',
|
|
69
|
-
'.vibe-validate.js',
|
|
70
|
-
'.vibe-validate.mjs',
|
|
57
|
+
'vibe-validate.config.yaml',
|
|
58
|
+
'vibe-validate.config.mjs', // Legacy (deprecated)
|
|
71
59
|
];
|
|
72
60
|
for (const path of configPaths) {
|
|
73
61
|
const fullPath = join(searchDir, path);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-loader.js","sourceRoot":"","sources":["../../src/utils/config-loader.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B
|
|
1
|
+
{"version":3,"file":"config-loader.js","sourceRoot":"","sources":["../../src/utils/config-loader.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,GAAY;IAC3C,MAAM,SAAS,GAAG,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAEvC,IAAI,CAAC;QACH,mFAAmF;QACnF,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAClD,OAAO,MAAM,IAAI,IAAI,CAAC;IACxB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,mCAAmC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC/E,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,GAAY;IACvC,MAAM,SAAS,GAAG,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACvC,MAAM,WAAW,GAAG;QAClB,2BAA2B;QAC3B,0BAA0B,EAAE,sBAAsB;KACnD,CAAC;IAEF,OAAO,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AACrE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,GAAY;IACzC,MAAM,SAAS,GAAG,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACvC,MAAM,WAAW,GAAG;QAClB,2BAA2B;QAC3B,0BAA0B,EAAE,sBAAsB;KACnD,CAAC;IAEF,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACvC,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzB,OAAO,QAAQ,CAAC;QAClB,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Git Detection Utilities
|
|
3
|
+
*
|
|
4
|
+
* Shared utilities for detecting git configuration (main branch, remote origin).
|
|
5
|
+
* Used by both init and doctor commands.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Result of git configuration detection
|
|
9
|
+
*/
|
|
10
|
+
export interface DetectedGitConfig {
|
|
11
|
+
/** The detected or default main branch name (e.g., 'main', 'master', 'develop') */
|
|
12
|
+
mainBranch: string;
|
|
13
|
+
/** The detected or default remote origin name (e.g., 'origin', 'upstream') */
|
|
14
|
+
remoteOrigin: string;
|
|
15
|
+
/** Whether git configuration was successfully detected (false means defaults were used) */
|
|
16
|
+
detected: boolean;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Detects git configuration from the current repository.
|
|
20
|
+
*
|
|
21
|
+
* This function attempts to auto-detect the main branch and remote origin
|
|
22
|
+
* by inspecting the git repository. It follows this detection strategy:
|
|
23
|
+
*
|
|
24
|
+
* 1. Check if we're in a git repository
|
|
25
|
+
* 2. Detect available remotes (prefer 'upstream' > 'origin' > first available)
|
|
26
|
+
* 3. Try to detect main branch from remote HEAD reference
|
|
27
|
+
* 4. If remote HEAD is not set, check for common branch names (main > master > develop)
|
|
28
|
+
* 5. Fall back to defaults if detection fails
|
|
29
|
+
*
|
|
30
|
+
* @returns {DetectedGitConfig} The detected or default git configuration
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* ```typescript
|
|
34
|
+
* const gitConfig = detectGitConfig();
|
|
35
|
+
* console.log(gitConfig.mainBranch); // 'main'
|
|
36
|
+
* console.log(gitConfig.remoteOrigin); // 'origin'
|
|
37
|
+
* console.log(gitConfig.detected); // true if detected, false if defaults
|
|
38
|
+
* ```
|
|
39
|
+
*/
|
|
40
|
+
export declare function detectGitConfig(): DetectedGitConfig;
|
|
41
|
+
//# sourceMappingURL=git-detection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git-detection.d.ts","sourceRoot":"","sources":["../../src/utils/git-detection.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,mFAAmF;IACnF,UAAU,EAAE,MAAM,CAAC;IACnB,8EAA8E;IAC9E,YAAY,EAAE,MAAM,CAAC;IACrB,2FAA2F;IAC3F,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,eAAe,IAAI,iBAAiB,CA4EnD"}
|