codingbuddy 0.0.0-dev.20251219022942.ae1c42d → 0.0.0-dev.20251219080524.57fa408

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.
Files changed (79) hide show
  1. package/dist/src/analyzer/code.sampler.js +11 -16
  2. package/dist/src/analyzer/code.sampler.js.map +1 -1
  3. package/dist/src/analyzer/config.analyzer.js +7 -13
  4. package/dist/src/analyzer/config.analyzer.js.map +1 -1
  5. package/dist/src/analyzer/directory.analyzer.js +17 -21
  6. package/dist/src/analyzer/directory.analyzer.js.map +1 -1
  7. package/dist/src/analyzer/package.analyzer.js +5 -2
  8. package/dist/src/analyzer/package.analyzer.js.map +1 -1
  9. package/dist/src/config/config.schema.d.ts +0 -2
  10. package/dist/src/config/config.schema.js +0 -28
  11. package/dist/src/config/config.schema.js.map +1 -1
  12. package/dist/src/config/context.loader.d.ts +0 -1
  13. package/dist/src/config/context.loader.js +20 -27
  14. package/dist/src/config/context.loader.js.map +1 -1
  15. package/dist/src/config/ignore.parser.js +8 -10
  16. package/dist/src/config/ignore.parser.js.map +1 -1
  17. package/dist/src/config/index.d.ts +2 -2
  18. package/dist/src/config/index.js +1 -4
  19. package/dist/src/config/index.js.map +1 -1
  20. package/dist/src/shared/file.utils.d.ts +4 -0
  21. package/dist/src/shared/file.utils.js +37 -0
  22. package/dist/src/shared/file.utils.js.map +1 -0
  23. package/dist/src/shared/path.utils.d.ts +2 -0
  24. package/dist/src/shared/path.utils.js +14 -0
  25. package/dist/src/shared/path.utils.js.map +1 -0
  26. package/dist/tsconfig.build.tsbuildinfo +1 -0
  27. package/package.json +2 -2
  28. package/dist/src/analyzer/analyzer.service.spec.d.ts +0 -1
  29. package/dist/src/analyzer/analyzer.service.spec.js +0 -67
  30. package/dist/src/analyzer/analyzer.service.spec.js.map +0 -1
  31. package/dist/src/analyzer/code.sampler.spec.d.ts +0 -1
  32. package/dist/src/analyzer/code.sampler.spec.js +0 -157
  33. package/dist/src/analyzer/code.sampler.spec.js.map +0 -1
  34. package/dist/src/analyzer/config.analyzer.spec.d.ts +0 -1
  35. package/dist/src/analyzer/config.analyzer.spec.js +0 -146
  36. package/dist/src/analyzer/config.analyzer.spec.js.map +0 -1
  37. package/dist/src/analyzer/directory.analyzer.spec.d.ts +0 -1
  38. package/dist/src/analyzer/directory.analyzer.spec.js +0 -119
  39. package/dist/src/analyzer/directory.analyzer.spec.js.map +0 -1
  40. package/dist/src/analyzer/package.analyzer.spec.d.ts +0 -1
  41. package/dist/src/analyzer/package.analyzer.spec.js +0 -109
  42. package/dist/src/analyzer/package.analyzer.spec.js.map +0 -1
  43. package/dist/src/cli/cli.spec.d.ts +0 -1
  44. package/dist/src/cli/cli.spec.js +0 -84
  45. package/dist/src/cli/cli.spec.js.map +0 -1
  46. package/dist/src/cli/init/config.generator.spec.d.ts +0 -1
  47. package/dist/src/cli/init/config.generator.spec.js +0 -182
  48. package/dist/src/cli/init/config.generator.spec.js.map +0 -1
  49. package/dist/src/cli/init/config.writer.spec.d.ts +0 -1
  50. package/dist/src/cli/init/config.writer.spec.js +0 -112
  51. package/dist/src/cli/init/config.writer.spec.js.map +0 -1
  52. package/dist/src/cli/init/init.command.spec.d.ts +0 -1
  53. package/dist/src/cli/init/init.command.spec.js +0 -227
  54. package/dist/src/cli/init/init.command.spec.js.map +0 -1
  55. package/dist/src/cli/init/prompt.builder.spec.d.ts +0 -1
  56. package/dist/src/cli/init/prompt.builder.spec.js +0 -199
  57. package/dist/src/cli/init/prompt.builder.spec.js.map +0 -1
  58. package/dist/src/cli/utils/console.spec.d.ts +0 -1
  59. package/dist/src/cli/utils/console.spec.js +0 -100
  60. package/dist/src/cli/utils/console.spec.js.map +0 -1
  61. package/dist/src/config/config.loader.spec.d.ts +0 -1
  62. package/dist/src/config/config.loader.spec.js +0 -86
  63. package/dist/src/config/config.loader.spec.js.map +0 -1
  64. package/dist/src/config/config.schema.spec.d.ts +0 -1
  65. package/dist/src/config/config.schema.spec.js +0 -235
  66. package/dist/src/config/config.schema.spec.js.map +0 -1
  67. package/dist/src/config/context.loader.spec.d.ts +0 -1
  68. package/dist/src/config/context.loader.spec.js +0 -123
  69. package/dist/src/config/context.loader.spec.js.map +0 -1
  70. package/dist/src/config/ignore.parser.spec.d.ts +0 -1
  71. package/dist/src/config/ignore.parser.spec.js +0 -130
  72. package/dist/src/config/ignore.parser.spec.js.map +0 -1
  73. package/dist/src/keyword/keyword.service.spec.d.ts +0 -1
  74. package/dist/src/keyword/keyword.service.spec.js +0 -225
  75. package/dist/src/keyword/keyword.service.spec.js.map +0 -1
  76. package/dist/src/mcp/mcp.service.spec.d.ts +0 -1
  77. package/dist/src/mcp/mcp.service.spec.js +0 -262
  78. package/dist/src/mcp/mcp.service.spec.js.map +0 -1
  79. package/dist/tsconfig.tsbuildinfo +0 -1
@@ -1,67 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const vitest_1 = require("vitest");
4
- const analyzer_service_1 = require("./analyzer.service");
5
- (0, vitest_1.describe)('AnalyzerService', () => {
6
- const service = new analyzer_service_1.AnalyzerService();
7
- (0, vitest_1.describe)('analyzeProject', () => {
8
- (0, vitest_1.it)('should return null packageInfo for non-existent path', async () => {
9
- const result = await service.analyzeProject('/non/existent/path');
10
- (0, vitest_1.expect)(result.packageInfo).toBeNull();
11
- (0, vitest_1.expect)(result.directoryStructure.rootDirs).toEqual([]);
12
- (0, vitest_1.expect)(result.directoryStructure.rootFiles).toEqual([]);
13
- (0, vitest_1.expect)(result.codeSamples).toEqual([]);
14
- });
15
- (0, vitest_1.it)('should analyze current project', async () => {
16
- const result = await service.analyzeProject(process.cwd());
17
- (0, vitest_1.expect)(result.packageInfo).not.toBeNull();
18
- (0, vitest_1.expect)(result.packageInfo?.name).toBeDefined();
19
- (0, vitest_1.expect)(result.detectedPatterns).toContain('TypeScript');
20
- (0, vitest_1.expect)(result.directoryStructure.rootDirs).toContain('src');
21
- (0, vitest_1.expect)(result.directoryStructure.totalDirs).toBeGreaterThan(0);
22
- (0, vitest_1.expect)(result.directoryStructure.totalFiles).toBeGreaterThan(0);
23
- (0, vitest_1.expect)(result.directoryStructure.allFiles.length).toBe(result.directoryStructure.totalFiles);
24
- });
25
- (0, vitest_1.it)('should respect maxCodeSamples option', async () => {
26
- const result = await service.analyzeProject(process.cwd(), {
27
- maxCodeSamples: 2,
28
- });
29
- (0, vitest_1.expect)(result.codeSamples.length).toBeLessThanOrEqual(2);
30
- });
31
- (0, vitest_1.it)('should detect NestJS framework', async () => {
32
- const result = await service.analyzeProject(process.cwd());
33
- (0, vitest_1.expect)(result.packageInfo?.detectedFrameworks).toContainEqual(vitest_1.expect.objectContaining({ name: 'NestJS', category: 'backend' }));
34
- (0, vitest_1.expect)(result.detectedPatterns).toContain('NestJS Backend');
35
- });
36
- (0, vitest_1.it)('should detect config files', async () => {
37
- const result = await service.analyzeProject(process.cwd());
38
- (0, vitest_1.expect)(result.configFiles.typescript).toBeDefined();
39
- (0, vitest_1.expect)(result.configFiles.typescript?.path).toBe('tsconfig.json');
40
- });
41
- });
42
- (0, vitest_1.describe)('quickAnalyze', () => {
43
- (0, vitest_1.it)('should return package info only', async () => {
44
- const result = await service.quickAnalyze(process.cwd());
45
- (0, vitest_1.expect)(result).not.toBeNull();
46
- (0, vitest_1.expect)(result?.name).toBeDefined();
47
- (0, vitest_1.expect)(result?.detectedFrameworks).toBeDefined();
48
- });
49
- (0, vitest_1.it)('should return null for non-existent path', async () => {
50
- const result = await service.quickAnalyze('/non/existent/path');
51
- (0, vitest_1.expect)(result).toBeNull();
52
- });
53
- });
54
- (0, vitest_1.describe)('inferPatterns', () => {
55
- (0, vitest_1.it)('should infer patterns from analysis results', async () => {
56
- const result = await service.analyzeProject(process.cwd());
57
- (0, vitest_1.expect)(result.detectedPatterns.length).toBeGreaterThan(0);
58
- (0, vitest_1.expect)(result.detectedPatterns).toContain('TypeScript');
59
- });
60
- (0, vitest_1.it)('should remove duplicate patterns', async () => {
61
- const result = await service.analyzeProject(process.cwd());
62
- const uniquePatterns = new Set(result.detectedPatterns);
63
- (0, vitest_1.expect)(result.detectedPatterns.length).toBe(uniquePatterns.size);
64
- });
65
- });
66
- });
67
- //# sourceMappingURL=analyzer.service.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"analyzer.service.spec.js","sourceRoot":"","sources":["../../../src/analyzer/analyzer.service.spec.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,157 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const vitest_1 = require("vitest");
4
- const code_sampler_1 = require("./code.sampler");
5
- (0, vitest_1.describe)('code.sampler', () => {
6
- (0, vitest_1.describe)('LANGUAGE_EXTENSIONS', () => {
7
- (0, vitest_1.it)('should have common language extensions', () => {
8
- (0, vitest_1.expect)(code_sampler_1.LANGUAGE_EXTENSIONS['.ts']).toBe('typescript');
9
- (0, vitest_1.expect)(code_sampler_1.LANGUAGE_EXTENSIONS['.tsx']).toBe('typescript');
10
- (0, vitest_1.expect)(code_sampler_1.LANGUAGE_EXTENSIONS['.js']).toBe('javascript');
11
- (0, vitest_1.expect)(code_sampler_1.LANGUAGE_EXTENSIONS['.jsx']).toBe('javascript');
12
- (0, vitest_1.expect)(code_sampler_1.LANGUAGE_EXTENSIONS['.py']).toBe('python');
13
- });
14
- });
15
- (0, vitest_1.describe)('detectLanguage', () => {
16
- (0, vitest_1.it)('should detect TypeScript files', () => {
17
- (0, vitest_1.expect)((0, code_sampler_1.detectLanguage)('index.ts')).toBe('typescript');
18
- (0, vitest_1.expect)((0, code_sampler_1.detectLanguage)('App.tsx')).toBe('typescript');
19
- (0, vitest_1.expect)((0, code_sampler_1.detectLanguage)('src/utils/helper.ts')).toBe('typescript');
20
- });
21
- (0, vitest_1.it)('should detect JavaScript files', () => {
22
- (0, vitest_1.expect)((0, code_sampler_1.detectLanguage)('index.js')).toBe('javascript');
23
- (0, vitest_1.expect)((0, code_sampler_1.detectLanguage)('App.jsx')).toBe('javascript');
24
- });
25
- (0, vitest_1.it)('should detect Python files', () => {
26
- (0, vitest_1.expect)((0, code_sampler_1.detectLanguage)('main.py')).toBe('python');
27
- });
28
- (0, vitest_1.it)('should detect Vue and Svelte files', () => {
29
- (0, vitest_1.expect)((0, code_sampler_1.detectLanguage)('App.vue')).toBe('vue');
30
- (0, vitest_1.expect)((0, code_sampler_1.detectLanguage)('Component.svelte')).toBe('svelte');
31
- });
32
- (0, vitest_1.it)('should return unknown for unrecognized extensions', () => {
33
- (0, vitest_1.expect)((0, code_sampler_1.detectLanguage)('file.xyz')).toBe('unknown');
34
- (0, vitest_1.expect)((0, code_sampler_1.detectLanguage)('noextension')).toBe('unknown');
35
- });
36
- });
37
- (0, vitest_1.describe)('isCodeFile', () => {
38
- (0, vitest_1.it)('should return true for code files', () => {
39
- (0, vitest_1.expect)((0, code_sampler_1.isCodeFile)('index.ts')).toBe(true);
40
- (0, vitest_1.expect)((0, code_sampler_1.isCodeFile)('app.js')).toBe(true);
41
- (0, vitest_1.expect)((0, code_sampler_1.isCodeFile)('main.py')).toBe(true);
42
- (0, vitest_1.expect)((0, code_sampler_1.isCodeFile)('style.css')).toBe(true);
43
- });
44
- (0, vitest_1.it)('should return false for non-code files', () => {
45
- (0, vitest_1.expect)((0, code_sampler_1.isCodeFile)('image.png')).toBe(false);
46
- (0, vitest_1.expect)((0, code_sampler_1.isCodeFile)('document.pdf')).toBe(false);
47
- (0, vitest_1.expect)((0, code_sampler_1.isCodeFile)('archive.zip')).toBe(false);
48
- (0, vitest_1.expect)((0, code_sampler_1.isCodeFile)('README.md')).toBe(false);
49
- });
50
- (0, vitest_1.it)('should return false for files without extension', () => {
51
- (0, vitest_1.expect)((0, code_sampler_1.isCodeFile)('Makefile')).toBe(false);
52
- (0, vitest_1.expect)((0, code_sampler_1.isCodeFile)('Dockerfile')).toBe(false);
53
- });
54
- });
55
- (0, vitest_1.describe)('categorizeFile', () => {
56
- (0, vitest_1.it)('should categorize component files', () => {
57
- (0, vitest_1.expect)((0, code_sampler_1.categorizeFile)('src/components/Button.tsx')).toBe('component');
58
- (0, vitest_1.expect)((0, code_sampler_1.categorizeFile)('components/Header/index.tsx')).toBe('component');
59
- (0, vitest_1.expect)((0, code_sampler_1.categorizeFile)('src/ui/Card.tsx')).toBe('component');
60
- });
61
- (0, vitest_1.it)('should categorize page files', () => {
62
- (0, vitest_1.expect)((0, code_sampler_1.categorizeFile)('pages/index.tsx')).toBe('page');
63
- (0, vitest_1.expect)((0, code_sampler_1.categorizeFile)('app/dashboard/page.tsx')).toBe('page');
64
- (0, vitest_1.expect)((0, code_sampler_1.categorizeFile)('src/pages/Home.tsx')).toBe('page');
65
- });
66
- (0, vitest_1.it)('should categorize utility files', () => {
67
- (0, vitest_1.expect)((0, code_sampler_1.categorizeFile)('src/utils/format.ts')).toBe('util');
68
- (0, vitest_1.expect)((0, code_sampler_1.categorizeFile)('src/lib/helpers.ts')).toBe('util');
69
- (0, vitest_1.expect)((0, code_sampler_1.categorizeFile)('utils/date.ts')).toBe('util');
70
- });
71
- (0, vitest_1.it)('should categorize hook files', () => {
72
- (0, vitest_1.expect)((0, code_sampler_1.categorizeFile)('src/hooks/useAuth.ts')).toBe('hook');
73
- (0, vitest_1.expect)((0, code_sampler_1.categorizeFile)('hooks/useForm.ts')).toBe('hook');
74
- (0, vitest_1.expect)((0, code_sampler_1.categorizeFile)('src/useCounter.ts')).toBe('hook');
75
- });
76
- (0, vitest_1.it)('should categorize API/route files', () => {
77
- (0, vitest_1.expect)((0, code_sampler_1.categorizeFile)('src/api/users.ts')).toBe('api');
78
- (0, vitest_1.expect)((0, code_sampler_1.categorizeFile)('pages/api/auth.ts')).toBe('api');
79
- (0, vitest_1.expect)((0, code_sampler_1.categorizeFile)('app/api/users/route.ts')).toBe('api');
80
- });
81
- (0, vitest_1.it)('should categorize service files', () => {
82
- (0, vitest_1.expect)((0, code_sampler_1.categorizeFile)('src/services/auth.service.ts')).toBe('service');
83
- (0, vitest_1.expect)((0, code_sampler_1.categorizeFile)('services/user.service.ts')).toBe('service');
84
- });
85
- (0, vitest_1.it)('should categorize model files', () => {
86
- (0, vitest_1.expect)((0, code_sampler_1.categorizeFile)('src/models/User.ts')).toBe('model');
87
- (0, vitest_1.expect)((0, code_sampler_1.categorizeFile)('src/entities/Product.ts')).toBe('model');
88
- (0, vitest_1.expect)((0, code_sampler_1.categorizeFile)('models/Order.ts')).toBe('model');
89
- });
90
- (0, vitest_1.it)('should categorize test files', () => {
91
- (0, vitest_1.expect)((0, code_sampler_1.categorizeFile)('src/utils/format.spec.ts')).toBe('test');
92
- (0, vitest_1.expect)((0, code_sampler_1.categorizeFile)('src/utils/format.test.ts')).toBe('test');
93
- (0, vitest_1.expect)((0, code_sampler_1.categorizeFile)('__tests__/app.test.tsx')).toBe('test');
94
- });
95
- (0, vitest_1.it)('should categorize config files', () => {
96
- (0, vitest_1.expect)((0, code_sampler_1.categorizeFile)('src/config/database.ts')).toBe('config');
97
- (0, vitest_1.expect)((0, code_sampler_1.categorizeFile)('config/env.ts')).toBe('config');
98
- });
99
- (0, vitest_1.it)('should return other for unrecognized patterns', () => {
100
- (0, vitest_1.expect)((0, code_sampler_1.categorizeFile)('src/index.ts')).toBe('other');
101
- (0, vitest_1.expect)((0, code_sampler_1.categorizeFile)('main.ts')).toBe('other');
102
- });
103
- });
104
- (0, vitest_1.describe)('selectSampleFiles', () => {
105
- (0, vitest_1.it)('should select files from different categories', () => {
106
- const files = [
107
- 'src/components/Button.tsx',
108
- 'src/components/Card.tsx',
109
- 'src/hooks/useAuth.ts',
110
- 'src/utils/format.ts',
111
- 'src/index.ts',
112
- ];
113
- const result = (0, code_sampler_1.selectSampleFiles)(files, 3);
114
- const categories = result.map((f) => (0, code_sampler_1.categorizeFile)(f));
115
- (0, vitest_1.expect)(new Set(categories).size).toBeGreaterThan(1);
116
- });
117
- (0, vitest_1.it)('should limit to maxSamples', () => {
118
- const files = [
119
- 'src/components/Button.tsx',
120
- 'src/components/Card.tsx',
121
- 'src/components/Input.tsx',
122
- 'src/hooks/useAuth.ts',
123
- 'src/utils/format.ts',
124
- ];
125
- const result = (0, code_sampler_1.selectSampleFiles)(files, 2);
126
- (0, vitest_1.expect)(result.length).toBeLessThanOrEqual(2);
127
- });
128
- (0, vitest_1.it)('should return empty array for no code files', () => {
129
- const files = ['README.md', 'package.json', 'image.png'];
130
- const result = (0, code_sampler_1.selectSampleFiles)(files, 5);
131
- (0, vitest_1.expect)(result).toEqual([]);
132
- });
133
- (0, vitest_1.it)('should filter out test files from samples', () => {
134
- const files = [
135
- 'src/utils/format.ts',
136
- 'src/utils/format.spec.ts',
137
- 'src/utils/format.test.ts',
138
- ];
139
- const result = (0, code_sampler_1.selectSampleFiles)(files, 5);
140
- (0, vitest_1.expect)(result).not.toContain('src/utils/format.spec.ts');
141
- (0, vitest_1.expect)(result).not.toContain('src/utils/format.test.ts');
142
- });
143
- (0, vitest_1.it)('should prioritize diverse categories', () => {
144
- const files = [
145
- 'src/components/A.tsx',
146
- 'src/components/B.tsx',
147
- 'src/components/C.tsx',
148
- 'src/hooks/useA.ts',
149
- 'src/utils/a.ts',
150
- ];
151
- const result = (0, code_sampler_1.selectSampleFiles)(files, 3);
152
- const categories = result.map((f) => (0, code_sampler_1.categorizeFile)(f));
153
- (0, vitest_1.expect)(new Set(categories).size).toBeGreaterThanOrEqual(2);
154
- });
155
- });
156
- });
157
- //# sourceMappingURL=code.sampler.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"code.sampler.spec.js","sourceRoot":"","sources":["../../../src/analyzer/code.sampler.spec.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,146 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const vitest_1 = require("vitest");
4
- const config_analyzer_1 = require("./config.analyzer");
5
- (0, vitest_1.describe)('config.analyzer', () => {
6
- (0, vitest_1.describe)('CONFIG_FILE_PATTERNS', () => {
7
- (0, vitest_1.it)('should have patterns for major config types', () => {
8
- (0, vitest_1.expect)(config_analyzer_1.CONFIG_FILE_PATTERNS.typescript).toContain('tsconfig.json');
9
- (0, vitest_1.expect)(config_analyzer_1.CONFIG_FILE_PATTERNS.eslint).toContain('.eslintrc.json');
10
- (0, vitest_1.expect)(config_analyzer_1.CONFIG_FILE_PATTERNS.prettier).toContain('.prettierrc');
11
- });
12
- });
13
- (0, vitest_1.describe)('parseTsConfig', () => {
14
- (0, vitest_1.it)('should parse basic tsconfig.json', () => {
15
- const content = JSON.stringify({
16
- compilerOptions: {
17
- strict: true,
18
- target: 'ES2020',
19
- module: 'ESNext',
20
- },
21
- });
22
- const result = (0, config_analyzer_1.parseTsConfig)(content, 'tsconfig.json');
23
- (0, vitest_1.expect)(result.path).toBe('tsconfig.json');
24
- (0, vitest_1.expect)(result.strict).toBe(true);
25
- (0, vitest_1.expect)(result.target).toBe('ES2020');
26
- (0, vitest_1.expect)(result.module).toBe('ESNext');
27
- (0, vitest_1.expect)(result.hasPathAliases).toBe(false);
28
- });
29
- (0, vitest_1.it)('should detect path aliases', () => {
30
- const content = JSON.stringify({
31
- compilerOptions: {
32
- paths: {
33
- '@/*': ['./src/*'],
34
- },
35
- },
36
- });
37
- const result = (0, config_analyzer_1.parseTsConfig)(content, 'tsconfig.json');
38
- (0, vitest_1.expect)(result.hasPathAliases).toBe(true);
39
- });
40
- (0, vitest_1.it)('should handle missing compilerOptions', () => {
41
- const content = JSON.stringify({});
42
- const result = (0, config_analyzer_1.parseTsConfig)(content, 'tsconfig.json');
43
- (0, vitest_1.expect)(result.strict).toBeUndefined();
44
- (0, vitest_1.expect)(result.hasPathAliases).toBe(false);
45
- });
46
- (0, vitest_1.it)('should return null for invalid JSON', () => {
47
- const result = (0, config_analyzer_1.parseTsConfig)('invalid', 'tsconfig.json');
48
- (0, vitest_1.expect)(result).toBeNull();
49
- });
50
- });
51
- (0, vitest_1.describe)('parseEslintConfig', () => {
52
- (0, vitest_1.it)('should parse legacy eslintrc format', () => {
53
- const content = JSON.stringify({
54
- extends: ['eslint:recommended', 'plugin:@typescript-eslint/recommended'],
55
- plugins: ['@typescript-eslint'],
56
- });
57
- const result = (0, config_analyzer_1.parseEslintConfig)(content, '.eslintrc.json', 'legacy');
58
- (0, vitest_1.expect)(result.path).toBe('.eslintrc.json');
59
- (0, vitest_1.expect)(result.format).toBe('legacy');
60
- (0, vitest_1.expect)(result.extends).toContain('eslint:recommended');
61
- (0, vitest_1.expect)(result.plugins).toContain('@typescript-eslint');
62
- });
63
- (0, vitest_1.it)('should handle eslint config without extends or plugins', () => {
64
- const content = JSON.stringify({
65
- rules: {
66
- 'no-console': 'warn',
67
- },
68
- });
69
- const result = (0, config_analyzer_1.parseEslintConfig)(content, '.eslintrc.json', 'legacy');
70
- (0, vitest_1.expect)(result.extends).toBeUndefined();
71
- (0, vitest_1.expect)(result.plugins).toBeUndefined();
72
- });
73
- (0, vitest_1.it)('should return null for invalid JSON', () => {
74
- const result = (0, config_analyzer_1.parseEslintConfig)('invalid', '.eslintrc.json', 'legacy');
75
- (0, vitest_1.expect)(result).toBeNull();
76
- });
77
- });
78
- (0, vitest_1.describe)('parsePrettierConfig', () => {
79
- (0, vitest_1.it)('should parse prettier config', () => {
80
- const content = JSON.stringify({
81
- tabWidth: 2,
82
- semi: true,
83
- singleQuote: true,
84
- trailingComma: 'all',
85
- });
86
- const result = (0, config_analyzer_1.parsePrettierConfig)(content, '.prettierrc');
87
- (0, vitest_1.expect)(result.path).toBe('.prettierrc');
88
- (0, vitest_1.expect)(result.tabWidth).toBe(2);
89
- (0, vitest_1.expect)(result.semi).toBe(true);
90
- (0, vitest_1.expect)(result.singleQuote).toBe(true);
91
- (0, vitest_1.expect)(result.trailingComma).toBe('all');
92
- });
93
- (0, vitest_1.it)('should handle partial config', () => {
94
- const content = JSON.stringify({
95
- semi: false,
96
- });
97
- const result = (0, config_analyzer_1.parsePrettierConfig)(content, '.prettierrc');
98
- (0, vitest_1.expect)(result.semi).toBe(false);
99
- (0, vitest_1.expect)(result.tabWidth).toBeUndefined();
100
- (0, vitest_1.expect)(result.singleQuote).toBeUndefined();
101
- });
102
- (0, vitest_1.it)('should return null for invalid JSON', () => {
103
- const result = (0, config_analyzer_1.parsePrettierConfig)('invalid', '.prettierrc');
104
- (0, vitest_1.expect)(result).toBeNull();
105
- });
106
- });
107
- (0, vitest_1.describe)('detectConfigFiles', () => {
108
- (0, vitest_1.it)('should detect TypeScript config files', () => {
109
- const files = ['tsconfig.json', 'src/index.ts', 'package.json'];
110
- const result = (0, config_analyzer_1.detectConfigFiles)(files);
111
- (0, vitest_1.expect)(result).toContain('tsconfig.json');
112
- });
113
- (0, vitest_1.it)('should detect ESLint config files (legacy)', () => {
114
- const files = ['.eslintrc.json', 'src/index.ts'];
115
- const result = (0, config_analyzer_1.detectConfigFiles)(files);
116
- (0, vitest_1.expect)(result).toContain('.eslintrc.json');
117
- });
118
- (0, vitest_1.it)('should detect ESLint config files (flat)', () => {
119
- const files = ['eslint.config.js', 'src/index.ts'];
120
- const result = (0, config_analyzer_1.detectConfigFiles)(files);
121
- (0, vitest_1.expect)(result).toContain('eslint.config.js');
122
- });
123
- (0, vitest_1.it)('should detect Prettier config files', () => {
124
- const files = ['.prettierrc', 'src/index.ts'];
125
- const result = (0, config_analyzer_1.detectConfigFiles)(files);
126
- (0, vitest_1.expect)(result).toContain('.prettierrc');
127
- });
128
- (0, vitest_1.it)('should detect multiple config files', () => {
129
- const files = [
130
- 'tsconfig.json',
131
- '.eslintrc.json',
132
- '.prettierrc',
133
- 'vite.config.ts',
134
- 'tailwind.config.js',
135
- ];
136
- const result = (0, config_analyzer_1.detectConfigFiles)(files);
137
- (0, vitest_1.expect)(result).toHaveLength(5);
138
- });
139
- (0, vitest_1.it)('should return empty array when no config files found', () => {
140
- const files = ['src/index.ts', 'src/app.ts'];
141
- const result = (0, config_analyzer_1.detectConfigFiles)(files);
142
- (0, vitest_1.expect)(result).toEqual([]);
143
- });
144
- });
145
- });
146
- //# sourceMappingURL=config.analyzer.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.analyzer.spec.js","sourceRoot":"","sources":["../../../src/analyzer/config.analyzer.spec.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,119 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const vitest_1 = require("vitest");
4
- const directory_analyzer_1 = require("./directory.analyzer");
5
- (0, vitest_1.describe)('directory.analyzer', () => {
6
- (0, vitest_1.describe)('ARCHITECTURE_PATTERNS', () => {
7
- (0, vitest_1.it)('should have definitions for common patterns', () => {
8
- const names = directory_analyzer_1.ARCHITECTURE_PATTERNS.map((p) => p.name);
9
- (0, vitest_1.expect)(names).toContain('Next.js App Router');
10
- (0, vitest_1.expect)(names).toContain('Next.js Pages Router');
11
- (0, vitest_1.expect)(names).toContain('NestJS Modular');
12
- (0, vitest_1.expect)(names).toContain('Feature-Sliced Design');
13
- (0, vitest_1.expect)(names).toContain('Component-Based');
14
- });
15
- });
16
- (0, vitest_1.describe)('detectArchitecturePatterns', () => {
17
- (0, vitest_1.it)('should detect Next.js App Router pattern', () => {
18
- const dirs = ['app', 'components', 'lib', 'public'];
19
- const result = (0, directory_analyzer_1.detectArchitecturePatterns)(dirs);
20
- (0, vitest_1.expect)(result).toContainEqual(vitest_1.expect.objectContaining({
21
- name: 'Next.js App Router',
22
- confidence: vitest_1.expect.any(Number),
23
- }));
24
- });
25
- (0, vitest_1.it)('should detect Next.js Pages Router pattern', () => {
26
- const dirs = ['pages', 'components', 'styles', 'public'];
27
- const result = (0, directory_analyzer_1.detectArchitecturePatterns)(dirs);
28
- (0, vitest_1.expect)(result).toContainEqual(vitest_1.expect.objectContaining({
29
- name: 'Next.js Pages Router',
30
- confidence: vitest_1.expect.any(Number),
31
- }));
32
- });
33
- (0, vitest_1.it)('should detect NestJS Modular pattern', () => {
34
- const dirs = ['src/modules', 'src/common', 'src/config'];
35
- const result = (0, directory_analyzer_1.detectArchitecturePatterns)(dirs);
36
- (0, vitest_1.expect)(result).toContainEqual(vitest_1.expect.objectContaining({
37
- name: 'NestJS Modular',
38
- }));
39
- });
40
- (0, vitest_1.it)('should detect Feature-Sliced Design', () => {
41
- const dirs = ['src/features', 'src/entities', 'src/shared', 'src/widgets'];
42
- const result = (0, directory_analyzer_1.detectArchitecturePatterns)(dirs);
43
- (0, vitest_1.expect)(result).toContainEqual(vitest_1.expect.objectContaining({
44
- name: 'Feature-Sliced Design',
45
- }));
46
- });
47
- (0, vitest_1.it)('should detect Component-Based architecture', () => {
48
- const dirs = ['src/components', 'src/hooks', 'src/utils'];
49
- const result = (0, directory_analyzer_1.detectArchitecturePatterns)(dirs);
50
- (0, vitest_1.expect)(result).toContainEqual(vitest_1.expect.objectContaining({
51
- name: 'Component-Based',
52
- }));
53
- });
54
- (0, vitest_1.it)('should detect Monorepo pattern', () => {
55
- const dirs = ['packages', 'apps'];
56
- const result = (0, directory_analyzer_1.detectArchitecturePatterns)(dirs);
57
- (0, vitest_1.expect)(result).toContainEqual(vitest_1.expect.objectContaining({
58
- name: 'Monorepo',
59
- }));
60
- });
61
- (0, vitest_1.it)('should return empty array for unrecognized structure', () => {
62
- const dirs = ['random', 'unknown', 'folders'];
63
- const result = (0, directory_analyzer_1.detectArchitecturePatterns)(dirs);
64
- (0, vitest_1.expect)(result).toEqual([]);
65
- });
66
- (0, vitest_1.it)('should calculate confidence based on matching indicators', () => {
67
- const fullMatch = (0, directory_analyzer_1.detectArchitecturePatterns)(['app', 'components', 'lib', 'public']);
68
- const appRouterPattern = fullMatch.find((p) => p.name === 'Next.js App Router');
69
- (0, vitest_1.expect)(appRouterPattern?.confidence).toBe(1);
70
- (0, vitest_1.expect)(appRouterPattern?.indicators).toHaveLength(4);
71
- const partialMatch = (0, directory_analyzer_1.detectArchitecturePatterns)(['app', 'components']);
72
- const partialPattern = partialMatch.find((p) => p.name === 'Next.js App Router');
73
- (0, vitest_1.expect)(partialPattern?.confidence).toBe(0.5);
74
- (0, vitest_1.expect)(partialPattern?.indicators).toHaveLength(2);
75
- });
76
- (0, vitest_1.it)('should sort patterns by confidence descending', () => {
77
- const dirs = ['app', 'src/components', 'src/hooks'];
78
- const result = (0, directory_analyzer_1.detectArchitecturePatterns)(dirs);
79
- for (let i = 1; i < result.length; i++) {
80
- (0, vitest_1.expect)(result[i - 1].confidence).toBeGreaterThanOrEqual(result[i].confidence);
81
- }
82
- });
83
- });
84
- (0, vitest_1.describe)('categorizeDirectory', () => {
85
- (0, vitest_1.it)('should categorize source directories', () => {
86
- (0, vitest_1.expect)((0, directory_analyzer_1.categorizeDirectory)('src')).toBe('source');
87
- (0, vitest_1.expect)((0, directory_analyzer_1.categorizeDirectory)('lib')).toBe('source');
88
- });
89
- (0, vitest_1.it)('should categorize test directories', () => {
90
- (0, vitest_1.expect)((0, directory_analyzer_1.categorizeDirectory)('test')).toBe('test');
91
- (0, vitest_1.expect)((0, directory_analyzer_1.categorizeDirectory)('tests')).toBe('test');
92
- (0, vitest_1.expect)((0, directory_analyzer_1.categorizeDirectory)('__tests__')).toBe('test');
93
- (0, vitest_1.expect)((0, directory_analyzer_1.categorizeDirectory)('spec')).toBe('test');
94
- });
95
- (0, vitest_1.it)('should categorize config directories', () => {
96
- (0, vitest_1.expect)((0, directory_analyzer_1.categorizeDirectory)('config')).toBe('config');
97
- (0, vitest_1.expect)((0, directory_analyzer_1.categorizeDirectory)('.config')).toBe('config');
98
- });
99
- (0, vitest_1.it)('should categorize build output directories', () => {
100
- (0, vitest_1.expect)((0, directory_analyzer_1.categorizeDirectory)('dist')).toBe('build');
101
- (0, vitest_1.expect)((0, directory_analyzer_1.categorizeDirectory)('build')).toBe('build');
102
- (0, vitest_1.expect)((0, directory_analyzer_1.categorizeDirectory)('out')).toBe('build');
103
- (0, vitest_1.expect)((0, directory_analyzer_1.categorizeDirectory)('.next')).toBe('build');
104
- });
105
- (0, vitest_1.it)('should categorize dependency directories', () => {
106
- (0, vitest_1.expect)((0, directory_analyzer_1.categorizeDirectory)('node_modules')).toBe('dependencies');
107
- });
108
- (0, vitest_1.it)('should categorize public/static directories', () => {
109
- (0, vitest_1.expect)((0, directory_analyzer_1.categorizeDirectory)('public')).toBe('static');
110
- (0, vitest_1.expect)((0, directory_analyzer_1.categorizeDirectory)('static')).toBe('static');
111
- (0, vitest_1.expect)((0, directory_analyzer_1.categorizeDirectory)('assets')).toBe('static');
112
- });
113
- (0, vitest_1.it)('should return other for unknown directories', () => {
114
- (0, vitest_1.expect)((0, directory_analyzer_1.categorizeDirectory)('random')).toBe('other');
115
- (0, vitest_1.expect)((0, directory_analyzer_1.categorizeDirectory)('custom')).toBe('other');
116
- });
117
- });
118
- });
119
- //# sourceMappingURL=directory.analyzer.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"directory.analyzer.spec.js","sourceRoot":"","sources":["../../../src/analyzer/directory.analyzer.spec.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};