@stackguide/mcp-server 3.1.0 → 3.3.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/README.md +59 -2
- package/dist/config/types.d.ts +1 -0
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js.map +1 -1
- package/dist/handlers/analyze.d.ts +11 -0
- package/dist/handlers/analyze.d.ts.map +1 -0
- package/dist/handlers/analyze.js +274 -0
- package/dist/handlers/analyze.js.map +1 -0
- package/dist/handlers/index.d.ts +1 -0
- package/dist/handlers/index.d.ts.map +1 -1
- package/dist/handlers/index.js +1 -0
- package/dist/handlers/index.js.map +1 -1
- package/dist/handlers/setup.d.ts +1 -0
- package/dist/handlers/setup.d.ts.map +1 -1
- package/dist/handlers/setup.js +42 -0
- package/dist/handlers/setup.js.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/services/codeAnalyzer.d.ts +5 -1
- package/dist/services/codeAnalyzer.d.ts.map +1 -1
- package/dist/services/codeAnalyzer.js +39 -2
- package/dist/services/codeAnalyzer.js.map +1 -1
- package/dist/services/intelligence/configGenerator.d.ts +28 -0
- package/dist/services/intelligence/configGenerator.d.ts.map +1 -0
- package/dist/services/intelligence/configGenerator.js +404 -0
- package/dist/services/intelligence/configGenerator.js.map +1 -0
- package/dist/services/intelligence/dependencyAdvisor.d.ts +24 -0
- package/dist/services/intelligence/dependencyAdvisor.d.ts.map +1 -0
- package/dist/services/intelligence/dependencyAdvisor.js +404 -0
- package/dist/services/intelligence/dependencyAdvisor.js.map +1 -0
- package/dist/services/intelligence/index.d.ts +12 -0
- package/dist/services/intelligence/index.d.ts.map +1 -0
- package/dist/services/intelligence/index.js +16 -0
- package/dist/services/intelligence/index.js.map +1 -0
- package/dist/services/intelligence/projectIntelligence.d.ts +26 -0
- package/dist/services/intelligence/projectIntelligence.d.ts.map +1 -0
- package/dist/services/intelligence/projectIntelligence.js +344 -0
- package/dist/services/intelligence/projectIntelligence.js.map +1 -0
- package/dist/services/intelligence/structureAnalyzer.d.ts +27 -0
- package/dist/services/intelligence/structureAnalyzer.d.ts.map +1 -0
- package/dist/services/intelligence/structureAnalyzer.js +286 -0
- package/dist/services/intelligence/structureAnalyzer.js.map +1 -0
- package/dist/services/intelligence/templates.d.ts +22 -0
- package/dist/services/intelligence/templates.d.ts.map +1 -0
- package/dist/services/intelligence/templates.js +521 -0
- package/dist/services/intelligence/templates.js.map +1 -0
- package/dist/services/intelligence/types.d.ts +222 -0
- package/dist/services/intelligence/types.d.ts.map +1 -0
- package/dist/services/intelligence/types.js +7 -0
- package/dist/services/intelligence/types.js.map +1 -0
- package/dist/services/parsers/baseParser.d.ts +44 -0
- package/dist/services/parsers/baseParser.d.ts.map +1 -0
- package/dist/services/parsers/baseParser.js +177 -0
- package/dist/services/parsers/baseParser.js.map +1 -0
- package/dist/services/parsers/goParser.d.ts +28 -0
- package/dist/services/parsers/goParser.d.ts.map +1 -0
- package/dist/services/parsers/goParser.js +590 -0
- package/dist/services/parsers/goParser.js.map +1 -0
- package/dist/services/parsers/index.d.ts +62 -0
- package/dist/services/parsers/index.d.ts.map +1 -0
- package/dist/services/parsers/index.js +121 -0
- package/dist/services/parsers/index.js.map +1 -0
- package/dist/services/parsers/pythonParser.d.ts +28 -0
- package/dist/services/parsers/pythonParser.d.ts.map +1 -0
- package/dist/services/parsers/pythonParser.js +663 -0
- package/dist/services/parsers/pythonParser.js.map +1 -0
- package/dist/services/parsers/rustParser.d.ts +28 -0
- package/dist/services/parsers/rustParser.d.ts.map +1 -0
- package/dist/services/parsers/rustParser.js +654 -0
- package/dist/services/parsers/rustParser.js.map +1 -0
- package/dist/services/parsers/types.d.ts +241 -0
- package/dist/services/parsers/types.d.ts.map +1 -0
- package/dist/services/parsers/types.js +47 -0
- package/dist/services/parsers/types.js.map +1 -0
- package/dist/tools/definitions.d.ts +87 -0
- package/dist/tools/definitions.d.ts.map +1 -1
- package/dist/tools/definitions.js +34 -0
- package/dist/tools/definitions.js.map +1 -1
- package/dist/utils/validation.d.ts +2 -2
- package/package.json +1 -1
|
@@ -0,0 +1,404 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Smart Configuration Generator
|
|
3
|
+
* Generates optimal configuration files based on project analysis
|
|
4
|
+
* @version 3.3.0
|
|
5
|
+
*/
|
|
6
|
+
import * as fs from 'fs';
|
|
7
|
+
import * as path from 'path';
|
|
8
|
+
import { getFrameworkTemplate, getConfigTemplate } from './templates.js';
|
|
9
|
+
/**
|
|
10
|
+
* Configuration file patterns for detection
|
|
11
|
+
*/
|
|
12
|
+
const CONFIG_PATTERNS = {
|
|
13
|
+
'eslint': ['.eslintrc', '.eslintrc.js', '.eslintrc.json', '.eslintrc.yml', 'eslint.config.js', 'eslint.config.mjs'],
|
|
14
|
+
'prettier': ['.prettierrc', '.prettierrc.js', '.prettierrc.json', 'prettier.config.js'],
|
|
15
|
+
'tsconfig': ['tsconfig.json', 'tsconfig.*.json'],
|
|
16
|
+
'jest': ['jest.config.js', 'jest.config.ts', 'jest.config.json'],
|
|
17
|
+
'vitest': ['vitest.config.ts', 'vitest.config.js'],
|
|
18
|
+
'babel': ['.babelrc', '.babelrc.js', 'babel.config.js', 'babel.config.json'],
|
|
19
|
+
'webpack': ['webpack.config.js', 'webpack.config.ts'],
|
|
20
|
+
'vite': ['vite.config.js', 'vite.config.ts'],
|
|
21
|
+
'rollup': ['rollup.config.js', 'rollup.config.ts'],
|
|
22
|
+
'docker': ['Dockerfile', 'docker-compose.yml', 'docker-compose.yaml'],
|
|
23
|
+
'github-actions': ['.github/workflows/*.yml', '.github/workflows/*.yaml'],
|
|
24
|
+
'editorconfig': ['.editorconfig'],
|
|
25
|
+
'gitignore': ['.gitignore'],
|
|
26
|
+
'env': ['.env', '.env.local', '.env.example'],
|
|
27
|
+
'package-json': ['package.json'],
|
|
28
|
+
'pyproject': ['pyproject.toml'],
|
|
29
|
+
'cargo': ['Cargo.toml'],
|
|
30
|
+
'go-mod': ['go.mod'],
|
|
31
|
+
'other': []
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* Analyze existing configuration files
|
|
35
|
+
*/
|
|
36
|
+
export function analyzeConfigurations(projectPath, projectType) {
|
|
37
|
+
const existingConfigs = [];
|
|
38
|
+
const recommendedConfigs = [];
|
|
39
|
+
const issues = [];
|
|
40
|
+
// Scan for existing configs
|
|
41
|
+
for (const [configType, patterns] of Object.entries(CONFIG_PATTERNS)) {
|
|
42
|
+
for (const pattern of patterns) {
|
|
43
|
+
const configPath = path.join(projectPath, pattern);
|
|
44
|
+
if (fs.existsSync(configPath) && !pattern.includes('*')) {
|
|
45
|
+
const configFile = parseConfigFile(configPath, configType);
|
|
46
|
+
if (configFile) {
|
|
47
|
+
existingConfigs.push(configFile);
|
|
48
|
+
// Analyze for issues
|
|
49
|
+
const configIssues = analyzeConfigFile(configFile, projectType);
|
|
50
|
+
issues.push(...configIssues);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
// Determine what's missing
|
|
56
|
+
const template = getFrameworkTemplate(projectType);
|
|
57
|
+
const existingTypes = new Set(existingConfigs.map(c => c.type));
|
|
58
|
+
// Check for recommended configs
|
|
59
|
+
if (!existingTypes.has('eslint')) {
|
|
60
|
+
recommendedConfigs.push({
|
|
61
|
+
type: 'eslint',
|
|
62
|
+
filename: 'eslint.config.js',
|
|
63
|
+
description: 'Code linting and quality enforcement',
|
|
64
|
+
priority: 'high',
|
|
65
|
+
suggestedContent: getConfigTemplate('eslint')?.content || '',
|
|
66
|
+
reason: 'ESLint helps catch bugs and enforce code style'
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
if (!existingTypes.has('prettier')) {
|
|
70
|
+
recommendedConfigs.push({
|
|
71
|
+
type: 'prettier',
|
|
72
|
+
filename: '.prettierrc',
|
|
73
|
+
description: 'Automatic code formatting',
|
|
74
|
+
priority: 'high',
|
|
75
|
+
suggestedContent: getConfigTemplate('prettier')?.content || '',
|
|
76
|
+
reason: 'Prettier ensures consistent code formatting'
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
if (!existingTypes.has('editorconfig')) {
|
|
80
|
+
recommendedConfigs.push({
|
|
81
|
+
type: 'editorconfig',
|
|
82
|
+
filename: '.editorconfig',
|
|
83
|
+
description: 'Editor-agnostic settings',
|
|
84
|
+
priority: 'medium',
|
|
85
|
+
suggestedContent: getConfigTemplate('editorconfig')?.content || '',
|
|
86
|
+
reason: 'EditorConfig ensures consistent editor settings across team'
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
if (!existingTypes.has('gitignore')) {
|
|
90
|
+
recommendedConfigs.push({
|
|
91
|
+
type: 'gitignore',
|
|
92
|
+
filename: '.gitignore',
|
|
93
|
+
description: 'Git ignore patterns',
|
|
94
|
+
priority: 'critical',
|
|
95
|
+
suggestedContent: getConfigTemplate('gitignore')?.content || '',
|
|
96
|
+
reason: 'Prevents committing sensitive or generated files'
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
// TypeScript projects should have tsconfig
|
|
100
|
+
const needsTypeScript = ['react-typescript', 'nextjs', 'nestjs', 'express', 'vue-node'].includes(projectType);
|
|
101
|
+
if (needsTypeScript && !existingTypes.has('tsconfig')) {
|
|
102
|
+
recommendedConfigs.push({
|
|
103
|
+
type: 'tsconfig',
|
|
104
|
+
filename: 'tsconfig.json',
|
|
105
|
+
description: 'TypeScript compiler configuration',
|
|
106
|
+
priority: 'critical',
|
|
107
|
+
suggestedContent: getConfigTemplate('tsconfig')?.content || '',
|
|
108
|
+
reason: 'TypeScript configuration is required for type checking'
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
// Calculate config score
|
|
112
|
+
const configScore = calculateConfigScore(existingConfigs, recommendedConfigs, issues);
|
|
113
|
+
return {
|
|
114
|
+
existingConfigs,
|
|
115
|
+
recommendedConfigs,
|
|
116
|
+
issues,
|
|
117
|
+
configScore
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Parse a configuration file
|
|
122
|
+
*/
|
|
123
|
+
function parseConfigFile(filePath, type) {
|
|
124
|
+
try {
|
|
125
|
+
const content = fs.readFileSync(filePath, 'utf-8');
|
|
126
|
+
let settings = {};
|
|
127
|
+
let isValid = true;
|
|
128
|
+
const issues = [];
|
|
129
|
+
if (filePath.endsWith('.json')) {
|
|
130
|
+
try {
|
|
131
|
+
settings = JSON.parse(content);
|
|
132
|
+
}
|
|
133
|
+
catch {
|
|
134
|
+
isValid = false;
|
|
135
|
+
issues.push('Invalid JSON syntax');
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
else if (filePath.endsWith('.toml')) {
|
|
139
|
+
// Basic TOML parsing (simplified)
|
|
140
|
+
settings = { _raw: content };
|
|
141
|
+
}
|
|
142
|
+
else if (filePath.endsWith('.js') || filePath.endsWith('.mjs') || filePath.endsWith('.ts')) {
|
|
143
|
+
// JS configs need to be required/imported - just mark as existing
|
|
144
|
+
settings = { _type: 'javascript-config' };
|
|
145
|
+
}
|
|
146
|
+
else {
|
|
147
|
+
// Try JSON first, then mark as raw
|
|
148
|
+
try {
|
|
149
|
+
settings = JSON.parse(content);
|
|
150
|
+
}
|
|
151
|
+
catch {
|
|
152
|
+
settings = { _raw: content };
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
return {
|
|
156
|
+
path: filePath,
|
|
157
|
+
type,
|
|
158
|
+
isValid,
|
|
159
|
+
settings,
|
|
160
|
+
issues: issues.length > 0 ? issues : undefined
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
catch {
|
|
164
|
+
return null;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Analyze a config file for issues
|
|
169
|
+
*/
|
|
170
|
+
function analyzeConfigFile(config, projectType) {
|
|
171
|
+
const issues = [];
|
|
172
|
+
// TSConfig analysis
|
|
173
|
+
if (config.type === 'tsconfig' && config.settings) {
|
|
174
|
+
const compilerOptions = config.settings.compilerOptions;
|
|
175
|
+
if (compilerOptions) {
|
|
176
|
+
// Check strict mode
|
|
177
|
+
if (!compilerOptions.strict) {
|
|
178
|
+
issues.push({
|
|
179
|
+
file: config.path,
|
|
180
|
+
type: 'tsconfig',
|
|
181
|
+
severity: 'warning',
|
|
182
|
+
message: 'Strict mode is not enabled',
|
|
183
|
+
suggestion: 'Enable "strict": true for better type safety',
|
|
184
|
+
autoFixable: true,
|
|
185
|
+
fix: {
|
|
186
|
+
type: 'modify',
|
|
187
|
+
path: config.path,
|
|
188
|
+
key: 'compilerOptions.strict',
|
|
189
|
+
value: true,
|
|
190
|
+
description: 'Enable strict type checking'
|
|
191
|
+
}
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
// Check noImplicitAny
|
|
195
|
+
if (!compilerOptions.strict && !compilerOptions.noImplicitAny) {
|
|
196
|
+
issues.push({
|
|
197
|
+
file: config.path,
|
|
198
|
+
type: 'tsconfig',
|
|
199
|
+
severity: 'warning',
|
|
200
|
+
message: 'noImplicitAny is not enabled',
|
|
201
|
+
suggestion: 'Enable "noImplicitAny": true to prevent implicit any types',
|
|
202
|
+
autoFixable: true,
|
|
203
|
+
fix: {
|
|
204
|
+
type: 'modify',
|
|
205
|
+
path: config.path,
|
|
206
|
+
key: 'compilerOptions.noImplicitAny',
|
|
207
|
+
value: true,
|
|
208
|
+
description: 'Prevent implicit any types'
|
|
209
|
+
}
|
|
210
|
+
});
|
|
211
|
+
}
|
|
212
|
+
// Check ES module interop
|
|
213
|
+
if (compilerOptions.esModuleInterop === false) {
|
|
214
|
+
issues.push({
|
|
215
|
+
file: config.path,
|
|
216
|
+
type: 'tsconfig',
|
|
217
|
+
severity: 'info',
|
|
218
|
+
message: 'esModuleInterop is disabled',
|
|
219
|
+
suggestion: 'Consider enabling for better CommonJS/ES module interoperability',
|
|
220
|
+
autoFixable: true,
|
|
221
|
+
fix: {
|
|
222
|
+
type: 'modify',
|
|
223
|
+
path: config.path,
|
|
224
|
+
key: 'compilerOptions.esModuleInterop',
|
|
225
|
+
value: true,
|
|
226
|
+
description: 'Enable ES module interop'
|
|
227
|
+
}
|
|
228
|
+
});
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
// Package.json analysis
|
|
233
|
+
if (config.type === 'package-json' && config.settings) {
|
|
234
|
+
const pkg = config.settings;
|
|
235
|
+
// Check for missing scripts
|
|
236
|
+
const scripts = pkg.scripts;
|
|
237
|
+
if (!scripts) {
|
|
238
|
+
issues.push({
|
|
239
|
+
file: config.path,
|
|
240
|
+
type: 'package-json',
|
|
241
|
+
severity: 'warning',
|
|
242
|
+
message: 'No scripts defined in package.json',
|
|
243
|
+
suggestion: 'Add common scripts like "build", "test", "lint"',
|
|
244
|
+
autoFixable: false
|
|
245
|
+
});
|
|
246
|
+
}
|
|
247
|
+
else {
|
|
248
|
+
if (!scripts.lint && !scripts['lint:fix']) {
|
|
249
|
+
issues.push({
|
|
250
|
+
file: config.path,
|
|
251
|
+
type: 'package-json',
|
|
252
|
+
severity: 'info',
|
|
253
|
+
message: 'No lint script defined',
|
|
254
|
+
suggestion: 'Add a "lint" script to run ESLint',
|
|
255
|
+
autoFixable: true,
|
|
256
|
+
fix: {
|
|
257
|
+
type: 'add',
|
|
258
|
+
path: config.path,
|
|
259
|
+
key: 'scripts.lint',
|
|
260
|
+
value: 'eslint .',
|
|
261
|
+
description: 'Add lint script'
|
|
262
|
+
}
|
|
263
|
+
});
|
|
264
|
+
}
|
|
265
|
+
if (!scripts.format) {
|
|
266
|
+
issues.push({
|
|
267
|
+
file: config.path,
|
|
268
|
+
type: 'package-json',
|
|
269
|
+
severity: 'info',
|
|
270
|
+
message: 'No format script defined',
|
|
271
|
+
suggestion: 'Add a "format" script to run Prettier',
|
|
272
|
+
autoFixable: true,
|
|
273
|
+
fix: {
|
|
274
|
+
type: 'add',
|
|
275
|
+
path: config.path,
|
|
276
|
+
key: 'scripts.format',
|
|
277
|
+
value: 'prettier --write .',
|
|
278
|
+
description: 'Add format script'
|
|
279
|
+
}
|
|
280
|
+
});
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
// Check for engines field
|
|
284
|
+
if (!pkg.engines) {
|
|
285
|
+
issues.push({
|
|
286
|
+
file: config.path,
|
|
287
|
+
type: 'package-json',
|
|
288
|
+
severity: 'info',
|
|
289
|
+
message: 'No engines field specified',
|
|
290
|
+
suggestion: 'Specify Node.js version requirements in engines field',
|
|
291
|
+
autoFixable: true,
|
|
292
|
+
fix: {
|
|
293
|
+
type: 'add',
|
|
294
|
+
path: config.path,
|
|
295
|
+
key: 'engines',
|
|
296
|
+
value: { node: '>=18.0.0' },
|
|
297
|
+
description: 'Add engines field'
|
|
298
|
+
}
|
|
299
|
+
});
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
return issues;
|
|
303
|
+
}
|
|
304
|
+
/**
|
|
305
|
+
* Generate a smart configuration
|
|
306
|
+
*/
|
|
307
|
+
export function generateSmartConfig(configType, projectType, customizations) {
|
|
308
|
+
const template = getConfigTemplate(configType);
|
|
309
|
+
if (!template)
|
|
310
|
+
return null;
|
|
311
|
+
// Apply customizations if provided
|
|
312
|
+
if (customizations && template.content) {
|
|
313
|
+
let content = template.content;
|
|
314
|
+
// For JSON configs, we can merge customizations
|
|
315
|
+
if (template.filename.endsWith('.json') || template.filename.endsWith('rc')) {
|
|
316
|
+
try {
|
|
317
|
+
const parsed = JSON.parse(content);
|
|
318
|
+
const merged = { ...parsed, ...customizations };
|
|
319
|
+
content = JSON.stringify(merged, null, 2);
|
|
320
|
+
return { ...template, content };
|
|
321
|
+
}
|
|
322
|
+
catch {
|
|
323
|
+
// Not JSON, return as-is
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
return template;
|
|
328
|
+
}
|
|
329
|
+
/**
|
|
330
|
+
* Calculate configuration health score
|
|
331
|
+
*/
|
|
332
|
+
function calculateConfigScore(existing, recommended, issues) {
|
|
333
|
+
let score = 100;
|
|
334
|
+
// Deduct for missing critical configs
|
|
335
|
+
const criticalMissing = recommended.filter(r => r.priority === 'critical').length;
|
|
336
|
+
score -= criticalMissing * 15;
|
|
337
|
+
// Deduct for missing high priority configs
|
|
338
|
+
const highMissing = recommended.filter(r => r.priority === 'high').length;
|
|
339
|
+
score -= highMissing * 10;
|
|
340
|
+
// Deduct for issues
|
|
341
|
+
const errorIssues = issues.filter(i => i.severity === 'error').length;
|
|
342
|
+
const warningIssues = issues.filter(i => i.severity === 'warning').length;
|
|
343
|
+
score -= errorIssues * 10;
|
|
344
|
+
score -= warningIssues * 5;
|
|
345
|
+
// Bonus for having good configs
|
|
346
|
+
if (existing.some(c => c.type === 'eslint'))
|
|
347
|
+
score += 5;
|
|
348
|
+
if (existing.some(c => c.type === 'prettier'))
|
|
349
|
+
score += 5;
|
|
350
|
+
if (existing.some(c => c.type === 'tsconfig'))
|
|
351
|
+
score += 5;
|
|
352
|
+
return Math.max(0, Math.min(100, score));
|
|
353
|
+
}
|
|
354
|
+
/**
|
|
355
|
+
* Apply a configuration fix
|
|
356
|
+
*/
|
|
357
|
+
export function applyConfigFix(projectPath, fix) {
|
|
358
|
+
if (!fix)
|
|
359
|
+
return false;
|
|
360
|
+
try {
|
|
361
|
+
const content = fs.readFileSync(fix.path, 'utf-8');
|
|
362
|
+
let parsed;
|
|
363
|
+
try {
|
|
364
|
+
parsed = JSON.parse(content);
|
|
365
|
+
}
|
|
366
|
+
catch {
|
|
367
|
+
// Can't fix non-JSON files automatically
|
|
368
|
+
return false;
|
|
369
|
+
}
|
|
370
|
+
if (fix.type === 'add' || fix.type === 'modify') {
|
|
371
|
+
// Navigate to nested key
|
|
372
|
+
const keys = fix.key?.split('.') || [];
|
|
373
|
+
let current = parsed;
|
|
374
|
+
for (let i = 0; i < keys.length - 1; i++) {
|
|
375
|
+
if (!current[keys[i]]) {
|
|
376
|
+
current[keys[i]] = {};
|
|
377
|
+
}
|
|
378
|
+
current = current[keys[i]];
|
|
379
|
+
}
|
|
380
|
+
if (keys.length > 0) {
|
|
381
|
+
current[keys[keys.length - 1]] = fix.value;
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
else if (fix.type === 'remove' && fix.key) {
|
|
385
|
+
const keys = fix.key.split('.');
|
|
386
|
+
let current = parsed;
|
|
387
|
+
for (let i = 0; i < keys.length - 1; i++) {
|
|
388
|
+
current = current[keys[i]];
|
|
389
|
+
if (!current)
|
|
390
|
+
break;
|
|
391
|
+
}
|
|
392
|
+
if (current && keys.length > 0) {
|
|
393
|
+
delete current[keys[keys.length - 1]];
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
fs.writeFileSync(fix.path, JSON.stringify(parsed, null, 2) + '\n');
|
|
397
|
+
return true;
|
|
398
|
+
}
|
|
399
|
+
catch {
|
|
400
|
+
return false;
|
|
401
|
+
}
|
|
402
|
+
}
|
|
403
|
+
export { parseConfigFile, analyzeConfigFile };
|
|
404
|
+
//# sourceMappingURL=configGenerator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configGenerator.js","sourceRoot":"","sources":["../../../src/services/intelligence/configGenerator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dependency Advisor
|
|
3
|
+
* Analyzes project dependencies and provides recommendations
|
|
4
|
+
* @version 3.3.0
|
|
5
|
+
*/
|
|
6
|
+
import type { DependencyAnalysis, DependencyInfo, DependencyRecommendation } from './types.js';
|
|
7
|
+
/**
|
|
8
|
+
* Analyze project dependencies
|
|
9
|
+
*/
|
|
10
|
+
export declare function analyzeDependencies(projectPath: string, projectType: string): DependencyAnalysis;
|
|
11
|
+
/**
|
|
12
|
+
* Detect package manager used in project
|
|
13
|
+
*/
|
|
14
|
+
declare function detectPackageManager(projectPath: string): DependencyAnalysis['packageManager'];
|
|
15
|
+
/**
|
|
16
|
+
* Extract dependencies from project files
|
|
17
|
+
*/
|
|
18
|
+
declare function extractDependencies(projectPath: string, packageManager: DependencyAnalysis['packageManager']): DependencyInfo[];
|
|
19
|
+
/**
|
|
20
|
+
* Generate install command for missing dependencies
|
|
21
|
+
*/
|
|
22
|
+
export declare function generateInstallCommand(recommendations: DependencyRecommendation[], packageManager: DependencyAnalysis['packageManager'], asDev?: boolean): string;
|
|
23
|
+
export { detectPackageManager, extractDependencies };
|
|
24
|
+
//# sourceMappingURL=dependencyAdvisor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dependencyAdvisor.d.ts","sourceRoot":"","sources":["../../../src/services/intelligence/dependencyAdvisor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EACV,kBAAkB,EAClB,cAAc,EAGd,wBAAwB,EACzB,MAAM,YAAY,CAAC;AAGpB;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,kBAAkB,CAoChG;AAED;;GAEG;AACH,iBAAS,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,kBAAkB,CAAC,gBAAgB,CAAC,CA2BvF;AAED;;GAEG;AACH,iBAAS,mBAAmB,CAC1B,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,GACnD,cAAc,EAAE,CAyKlB;AA2KD;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,eAAe,EAAE,wBAAwB,EAAE,EAC3C,cAAc,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,EACpD,KAAK,UAAQ,GACZ,MAAM,CAsBR;AAED,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,CAAC"}
|