codingbuddy 0.0.0-canary.20251219151055.e4122b3 → 0.0.0-dev.20251217095837.0d8312e

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 (100) hide show
  1. package/README.md +16 -140
  2. package/dist/src/keyword/keyword.module.js.map +1 -1
  3. package/dist/src/keyword/keyword.service.spec.d.ts +1 -0
  4. package/dist/src/keyword/keyword.service.spec.js +225 -0
  5. package/dist/src/keyword/keyword.service.spec.js.map +1 -0
  6. package/dist/src/main.js +0 -0
  7. package/dist/src/mcp/mcp.module.js +1 -2
  8. package/dist/src/mcp/mcp.module.js.map +1 -1
  9. package/dist/src/mcp/mcp.service.d.ts +7 -16
  10. package/dist/src/mcp/mcp.service.js +65 -140
  11. package/dist/src/mcp/mcp.service.js.map +1 -1
  12. package/dist/src/rules/rules.service.js +2 -2
  13. package/dist/src/rules/rules.service.js.map +1 -1
  14. package/dist/tsconfig.tsbuildinfo +1 -0
  15. package/package.json +7 -22
  16. package/dist/src/analyzer/analyzer.module.d.ts +0 -2
  17. package/dist/src/analyzer/analyzer.module.js +0 -21
  18. package/dist/src/analyzer/analyzer.module.js.map +0 -1
  19. package/dist/src/analyzer/analyzer.service.d.ts +0 -10
  20. package/dist/src/analyzer/analyzer.service.js +0 -74
  21. package/dist/src/analyzer/analyzer.service.js.map +0 -1
  22. package/dist/src/analyzer/analyzer.types.d.ts +0 -70
  23. package/dist/src/analyzer/analyzer.types.js +0 -3
  24. package/dist/src/analyzer/analyzer.types.js.map +0 -1
  25. package/dist/src/analyzer/code.sampler.d.ts +0 -7
  26. package/dist/src/analyzer/code.sampler.js +0 -161
  27. package/dist/src/analyzer/code.sampler.js.map +0 -1
  28. package/dist/src/analyzer/config.analyzer.d.ts +0 -7
  29. package/dist/src/analyzer/config.analyzer.js +0 -182
  30. package/dist/src/analyzer/config.analyzer.js.map +0 -1
  31. package/dist/src/analyzer/directory.analyzer.d.ts +0 -12
  32. package/dist/src/analyzer/directory.analyzer.js +0 -156
  33. package/dist/src/analyzer/directory.analyzer.js.map +0 -1
  34. package/dist/src/analyzer/index.d.ts +0 -7
  35. package/dist/src/analyzer/index.js +0 -32
  36. package/dist/src/analyzer/index.js.map +0 -1
  37. package/dist/src/analyzer/package.analyzer.d.ts +0 -12
  38. package/dist/src/analyzer/package.analyzer.js +0 -126
  39. package/dist/src/analyzer/package.analyzer.js.map +0 -1
  40. package/dist/src/cli/cli.d.ts +0 -10
  41. package/dist/src/cli/cli.js +0 -98
  42. package/dist/src/cli/cli.js.map +0 -1
  43. package/dist/src/cli/cli.types.d.ts +0 -18
  44. package/dist/src/cli/cli.types.js +0 -3
  45. package/dist/src/cli/cli.types.js.map +0 -1
  46. package/dist/src/cli/index.d.ts +0 -6
  47. package/dist/src/cli/index.js +0 -15
  48. package/dist/src/cli/index.js.map +0 -1
  49. package/dist/src/cli/init/config.generator.d.ts +0 -16
  50. package/dist/src/cli/init/config.generator.js +0 -70
  51. package/dist/src/cli/init/config.generator.js.map +0 -1
  52. package/dist/src/cli/init/config.writer.d.ts +0 -10
  53. package/dist/src/cli/init/config.writer.js +0 -43
  54. package/dist/src/cli/init/config.writer.js.map +0 -1
  55. package/dist/src/cli/init/index.d.ts +0 -5
  56. package/dist/src/cli/init/index.js +0 -16
  57. package/dist/src/cli/init/index.js.map +0 -1
  58. package/dist/src/cli/init/init.command.d.ts +0 -3
  59. package/dist/src/cli/init/init.command.js +0 -80
  60. package/dist/src/cli/init/init.command.js.map +0 -1
  61. package/dist/src/cli/init/prompt.builder.d.ts +0 -7
  62. package/dist/src/cli/init/prompt.builder.js +0 -225
  63. package/dist/src/cli/init/prompt.builder.js.map +0 -1
  64. package/dist/src/cli/utils/console.d.ts +0 -11
  65. package/dist/src/cli/utils/console.js +0 -33
  66. package/dist/src/cli/utils/console.js.map +0 -1
  67. package/dist/src/cli/utils/index.d.ts +0 -2
  68. package/dist/src/cli/utils/index.js +0 -7
  69. package/dist/src/cli/utils/index.js.map +0 -1
  70. package/dist/src/config/config.loader.d.ts +0 -22
  71. package/dist/src/config/config.loader.js +0 -105
  72. package/dist/src/config/config.loader.js.map +0 -1
  73. package/dist/src/config/config.module.d.ts +0 -2
  74. package/dist/src/config/config.module.js +0 -21
  75. package/dist/src/config/config.module.js.map +0 -1
  76. package/dist/src/config/config.schema.d.ts +0 -544
  77. package/dist/src/config/config.schema.js +0 -98
  78. package/dist/src/config/config.schema.js.map +0 -1
  79. package/dist/src/config/config.service.d.ts +0 -33
  80. package/dist/src/config/config.service.js +0 -126
  81. package/dist/src/config/config.service.js.map +0 -1
  82. package/dist/src/config/config.types.d.ts +0 -2
  83. package/dist/src/config/config.types.js +0 -6
  84. package/dist/src/config/config.types.js.map +0 -1
  85. package/dist/src/config/context.loader.d.ts +0 -23
  86. package/dist/src/config/context.loader.js +0 -146
  87. package/dist/src/config/context.loader.js.map +0 -1
  88. package/dist/src/config/ignore.parser.d.ts +0 -12
  89. package/dist/src/config/ignore.parser.js +0 -132
  90. package/dist/src/config/ignore.parser.js.map +0 -1
  91. package/dist/src/config/index.d.ts +0 -13
  92. package/dist/src/config/index.js +0 -41
  93. package/dist/src/config/index.js.map +0 -1
  94. package/dist/src/shared/file.utils.d.ts +0 -4
  95. package/dist/src/shared/file.utils.js +0 -37
  96. package/dist/src/shared/file.utils.js.map +0 -1
  97. package/dist/src/shared/path.utils.d.ts +0 -2
  98. package/dist/src/shared/path.utils.js +0 -14
  99. package/dist/src/shared/path.utils.js.map +0 -1
  100. package/dist/tsconfig.build.tsbuildinfo +0 -1
@@ -1,74 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.AnalyzerService = void 0;
10
- const common_1 = require("@nestjs/common");
11
- const package_analyzer_1 = require("./package.analyzer");
12
- const directory_analyzer_1 = require("./directory.analyzer");
13
- const config_analyzer_1 = require("./config.analyzer");
14
- const code_sampler_1 = require("./code.sampler");
15
- const DEFAULT_OPTIONS = {
16
- maxCodeSamples: 5,
17
- ignorePatterns: [],
18
- };
19
- let AnalyzerService = class AnalyzerService {
20
- async analyzeProject(projectRoot, options = {}) {
21
- const opts = { ...DEFAULT_OPTIONS, ...options };
22
- const [packageInfo, dirAnalysis] = await Promise.all([
23
- (0, package_analyzer_1.analyzePackage)(projectRoot),
24
- (0, directory_analyzer_1.analyzeDirectory)(projectRoot, opts.ignorePatterns),
25
- ]);
26
- const configFiles = await (0, config_analyzer_1.analyzeConfigs)(projectRoot, dirAnalysis.rootFiles);
27
- const codeSamples = await (0, code_sampler_1.sampleCode)(projectRoot, dirAnalysis.allFiles, opts.maxCodeSamples);
28
- const detectedPatterns = this.inferPatterns(packageInfo, dirAnalysis);
29
- return {
30
- packageInfo,
31
- directoryStructure: dirAnalysis,
32
- configFiles,
33
- codeSamples,
34
- detectedPatterns,
35
- };
36
- }
37
- inferPatterns(packageInfo, dirAnalysis) {
38
- const patterns = [];
39
- for (const pattern of dirAnalysis.patterns) {
40
- if (pattern.confidence >= 0.5) {
41
- patterns.push(pattern.name);
42
- }
43
- }
44
- if (packageInfo) {
45
- for (const framework of packageInfo.detectedFrameworks) {
46
- if (framework.category === 'frontend' ||
47
- framework.category === 'fullstack') {
48
- patterns.push(`${framework.name} Project`);
49
- }
50
- if (framework.category === 'backend') {
51
- patterns.push(`${framework.name} Backend`);
52
- }
53
- }
54
- if (packageInfo.devDependencies['typescript'] ||
55
- packageInfo.dependencies['typescript']) {
56
- patterns.push('TypeScript');
57
- }
58
- if (packageInfo.devDependencies['lerna'] ||
59
- packageInfo.devDependencies['turbo'] ||
60
- packageInfo.devDependencies['nx']) {
61
- patterns.push('Monorepo');
62
- }
63
- }
64
- return [...new Set(patterns)];
65
- }
66
- async quickAnalyze(projectRoot) {
67
- return (0, package_analyzer_1.analyzePackage)(projectRoot);
68
- }
69
- };
70
- exports.AnalyzerService = AnalyzerService;
71
- exports.AnalyzerService = AnalyzerService = __decorate([
72
- (0, common_1.Injectable)()
73
- ], AnalyzerService);
74
- //# sourceMappingURL=analyzer.service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"analyzer.service.js","sourceRoot":"","sources":["../../../src/analyzer/analyzer.service.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA4C;AAE5C,yDAAoD;AACpD,6DAAwD;AACxD,uDAAmD;AACnD,iDAA4C;AAe5C,MAAM,eAAe,GAA6B;IAChD,cAAc,EAAE,CAAC;IACjB,cAAc,EAAE,EAAE;CACnB,CAAC;AAMK,IAAM,eAAe,GAArB,MAAM,eAAe;IAQ1B,KAAK,CAAC,cAAc,CAClB,WAAmB,EACnB,UAA0B,EAAE;QAE5B,MAAM,IAAI,GAAG,EAAE,GAAG,eAAe,EAAE,GAAG,OAAO,EAAE,CAAC;QAGhD,MAAM,CAAC,WAAW,EAAE,WAAW,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACnD,IAAA,iCAAc,EAAC,WAAW,CAAC;YAC3B,IAAA,qCAAgB,EAAC,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC;SACnD,CAAC,CAAC;QAGH,MAAM,WAAW,GAAG,MAAM,IAAA,gCAAc,EACtC,WAAW,EACX,WAAW,CAAC,SAAS,CACtB,CAAC;QAGF,MAAM,WAAW,GAAG,MAAM,IAAA,yBAAU,EAClC,WAAW,EACX,WAAW,CAAC,QAAQ,EACpB,IAAI,CAAC,cAAc,CACpB,CAAC;QAGF,MAAM,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QAEtE,OAAO;YACL,WAAW;YACX,kBAAkB,EAAE,WAAW;YAC/B,WAAW;YACX,WAAW;YACX,gBAAgB;SACjB,CAAC;IACJ,CAAC;IAKO,aAAa,CACnB,WAA+B,EAC/B,WAAiE;QAEjE,MAAM,QAAQ,GAAa,EAAE,CAAC;QAG9B,KAAK,MAAM,OAAO,IAAI,WAAW,CAAC,QAAQ,EAAE,CAAC;YAC3C,IAAI,OAAO,CAAC,UAAU,IAAI,GAAG,EAAE,CAAC;gBAC9B,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;QAGD,IAAI,WAAW,EAAE,CAAC;YAChB,KAAK,MAAM,SAAS,IAAI,WAAW,CAAC,kBAAkB,EAAE,CAAC;gBACvD,IACE,SAAS,CAAC,QAAQ,KAAK,UAAU;oBACjC,SAAS,CAAC,QAAQ,KAAK,WAAW,EAClC,CAAC;oBACD,QAAQ,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,UAAU,CAAC,CAAC;gBAC7C,CAAC;gBACD,IAAI,SAAS,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;oBACrC,QAAQ,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,UAAU,CAAC,CAAC;gBAC7C,CAAC;YACH,CAAC;YAGD,IACE,WAAW,CAAC,eAAe,CAAC,YAAY,CAAC;gBACzC,WAAW,CAAC,YAAY,CAAC,YAAY,CAAC,EACtC,CAAC;gBACD,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC9B,CAAC;YAGD,IACE,WAAW,CAAC,eAAe,CAAC,OAAO,CAAC;gBACpC,WAAW,CAAC,eAAe,CAAC,OAAO,CAAC;gBACpC,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,EACjC,CAAC;gBACD,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;QAGD,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;IAChC,CAAC;IAKD,KAAK,CAAC,YAAY,CAAC,WAAmB;QACpC,OAAO,IAAA,iCAAc,EAAC,WAAW,CAAC,CAAC;IACrC,CAAC;CACF,CAAA;AAvGY,0CAAe;0BAAf,eAAe;IAD3B,IAAA,mBAAU,GAAE;GACA,eAAe,CAuG3B"}
@@ -1,70 +0,0 @@
1
- export interface ProjectAnalysis {
2
- packageInfo: PackageInfo | null;
3
- directoryStructure: DirectoryAnalysis;
4
- configFiles: ConfigFilesSummary;
5
- codeSamples: CodeSample[];
6
- detectedPatterns: string[];
7
- }
8
- export interface PackageInfo {
9
- name: string;
10
- version: string;
11
- description?: string;
12
- dependencies: Record<string, string>;
13
- devDependencies: Record<string, string>;
14
- scripts: Record<string, string>;
15
- type?: 'module' | 'commonjs';
16
- detectedFrameworks: DetectedFramework[];
17
- }
18
- export interface DetectedFramework {
19
- name: string;
20
- category: FrameworkCategory;
21
- version: string;
22
- }
23
- export type FrameworkCategory = 'frontend' | 'backend' | 'fullstack' | 'testing' | 'build' | 'linting' | 'styling' | 'database' | 'other';
24
- export interface DirectoryAnalysis {
25
- rootDirs: string[];
26
- rootFiles: string[];
27
- allFiles: string[];
28
- patterns: ArchitecturePattern[];
29
- totalFiles: number;
30
- totalDirs: number;
31
- }
32
- export interface ArchitecturePattern {
33
- name: string;
34
- confidence: number;
35
- indicators: string[];
36
- }
37
- export interface ConfigFilesSummary {
38
- typescript?: TsConfigSummary;
39
- eslint?: EslintSummary;
40
- prettier?: PrettierSummary;
41
- detected: string[];
42
- }
43
- export interface TsConfigSummary {
44
- path: string;
45
- strict?: boolean;
46
- target?: string;
47
- module?: string;
48
- hasPathAliases: boolean;
49
- }
50
- export interface EslintSummary {
51
- path: string;
52
- format: 'legacy' | 'flat';
53
- extends?: string[];
54
- plugins?: string[];
55
- }
56
- export interface PrettierSummary {
57
- path: string;
58
- tabWidth?: number;
59
- semi?: boolean;
60
- singleQuote?: boolean;
61
- trailingComma?: 'none' | 'es5' | 'all';
62
- }
63
- export interface CodeSample {
64
- path: string;
65
- language: string;
66
- category: CodeCategory;
67
- preview: string;
68
- lineCount: number;
69
- }
70
- export type CodeCategory = 'component' | 'page' | 'util' | 'hook' | 'api' | 'service' | 'model' | 'test' | 'config' | 'other';
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=analyzer.types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"analyzer.types.js","sourceRoot":"","sources":["../../../src/analyzer/analyzer.types.ts"],"names":[],"mappings":""}
@@ -1,7 +0,0 @@
1
- import type { CodeSample, CodeCategory } from './analyzer.types';
2
- export declare const LANGUAGE_EXTENSIONS: Record<string, string>;
3
- export declare function detectLanguage(filePath: string): string;
4
- export declare function isCodeFile(filePath: string): boolean;
5
- export declare function categorizeFile(filePath: string): CodeCategory;
6
- export declare function selectSampleFiles(files: string[], maxSamples: number): string[];
7
- export declare function sampleCode(projectRoot: string, files: string[], maxSamples?: number): Promise<CodeSample[]>;
@@ -1,161 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.LANGUAGE_EXTENSIONS = void 0;
4
- exports.detectLanguage = detectLanguage;
5
- exports.isCodeFile = isCodeFile;
6
- exports.categorizeFile = categorizeFile;
7
- exports.selectSampleFiles = selectSampleFiles;
8
- exports.sampleCode = sampleCode;
9
- const fs = require("fs/promises");
10
- const path = require("path");
11
- const path_utils_1 = require("../shared/path.utils");
12
- exports.LANGUAGE_EXTENSIONS = {
13
- '.ts': 'typescript',
14
- '.tsx': 'typescript',
15
- '.js': 'javascript',
16
- '.jsx': 'javascript',
17
- '.py': 'python',
18
- '.java': 'java',
19
- '.css': 'css',
20
- '.scss': 'scss',
21
- '.json': 'json',
22
- '.yaml': 'yaml',
23
- '.yml': 'yaml',
24
- '.vue': 'vue',
25
- '.svelte': 'svelte',
26
- };
27
- const CODE_EXTENSIONS = new Set([
28
- '.ts',
29
- '.tsx',
30
- '.js',
31
- '.jsx',
32
- '.py',
33
- '.java',
34
- '.css',
35
- '.scss',
36
- '.vue',
37
- '.svelte',
38
- ]);
39
- function detectLanguage(filePath) {
40
- const ext = path.extname(filePath).toLowerCase();
41
- return exports.LANGUAGE_EXTENSIONS[ext] ?? 'unknown';
42
- }
43
- function isCodeFile(filePath) {
44
- const ext = path.extname(filePath).toLowerCase();
45
- return CODE_EXTENSIONS.has(ext);
46
- }
47
- function categorizeFile(filePath) {
48
- const lower = filePath.toLowerCase();
49
- const fileName = path.basename(filePath).toLowerCase();
50
- if (fileName.includes('.spec.') ||
51
- fileName.includes('.test.') ||
52
- lower.includes('__tests__') ||
53
- lower.includes('__mocks__')) {
54
- return 'test';
55
- }
56
- if ((0, path_utils_1.pathContainsSegment)(filePath, 'api') ||
57
- fileName === 'route.ts' ||
58
- fileName === 'route.js') {
59
- return 'api';
60
- }
61
- if ((0, path_utils_1.pathContainsSegment)(filePath, 'services') ||
62
- fileName.includes('.service.')) {
63
- return 'service';
64
- }
65
- if ((0, path_utils_1.pathContainsSegment)(filePath, 'models') ||
66
- (0, path_utils_1.pathContainsSegment)(filePath, 'entities')) {
67
- return 'model';
68
- }
69
- if ((0, path_utils_1.pathContainsSegment)(filePath, 'hooks')) {
70
- return 'hook';
71
- }
72
- const baseFileName = path.basename(filePath);
73
- if (/^use[A-Z]/.test(baseFileName)) {
74
- return 'hook';
75
- }
76
- if ((0, path_utils_1.pathContainsSegment)(filePath, 'components') ||
77
- (0, path_utils_1.pathContainsSegment)(filePath, 'ui')) {
78
- return 'component';
79
- }
80
- if ((0, path_utils_1.pathContainsSegment)(filePath, 'pages') ||
81
- fileName === 'page.tsx' ||
82
- fileName === 'page.ts' ||
83
- fileName === 'page.jsx' ||
84
- fileName === 'page.js') {
85
- return 'page';
86
- }
87
- if ((0, path_utils_1.pathContainsSegment)(filePath, 'utils') ||
88
- (0, path_utils_1.pathContainsSegment)(filePath, 'lib') ||
89
- (0, path_utils_1.pathContainsSegment)(filePath, 'helpers')) {
90
- return 'util';
91
- }
92
- if ((0, path_utils_1.pathContainsSegment)(filePath, 'config')) {
93
- return 'config';
94
- }
95
- return 'other';
96
- }
97
- function selectSampleFiles(files, maxSamples) {
98
- const codeFiles = files.filter(f => {
99
- if (!isCodeFile(f))
100
- return false;
101
- const category = categorizeFile(f);
102
- return category !== 'test';
103
- });
104
- if (codeFiles.length === 0) {
105
- return [];
106
- }
107
- const byCategory = new Map();
108
- for (const file of codeFiles) {
109
- const category = categorizeFile(file);
110
- if (!byCategory.has(category)) {
111
- byCategory.set(category, []);
112
- }
113
- byCategory.get(category).push(file);
114
- }
115
- const selected = [];
116
- const categories = Array.from(byCategory.keys());
117
- let categoryIndex = 0;
118
- while (selected.length < maxSamples && byCategory.size > 0) {
119
- const category = categories[categoryIndex % categories.length];
120
- const filesInCategory = byCategory.get(category);
121
- if (filesInCategory && filesInCategory.length > 0) {
122
- selected.push(filesInCategory.shift());
123
- if (filesInCategory.length === 0) {
124
- byCategory.delete(category);
125
- categories.splice(categories.indexOf(category), 1);
126
- }
127
- }
128
- categoryIndex++;
129
- if (categories.length === 0)
130
- break;
131
- }
132
- return selected;
133
- }
134
- const PREVIEW_LINES = 50;
135
- const MAX_FILE_SIZE = 100 * 1024;
136
- async function sampleCode(projectRoot, files, maxSamples = 5) {
137
- const selectedFiles = selectSampleFiles(files, maxSamples);
138
- const samples = [];
139
- for (const relativePath of selectedFiles) {
140
- const fullPath = path.join(projectRoot, relativePath);
141
- try {
142
- const stats = await fs.stat(fullPath);
143
- if (stats.size > MAX_FILE_SIZE) {
144
- continue;
145
- }
146
- const content = await fs.readFile(fullPath, 'utf-8');
147
- const lines = content.split('\n');
148
- samples.push({
149
- path: relativePath,
150
- language: detectLanguage(relativePath),
151
- category: categorizeFile(relativePath),
152
- preview: lines.slice(0, PREVIEW_LINES).join('\n'),
153
- lineCount: lines.length,
154
- });
155
- }
156
- catch {
157
- }
158
- }
159
- return samples;
160
- }
161
- //# sourceMappingURL=code.sampler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"code.sampler.js","sourceRoot":"","sources":["../../../src/analyzer/code.sampler.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- import type { ConfigFilesSummary, TsConfigSummary, EslintSummary, PrettierSummary } from './analyzer.types';
2
- export declare const CONFIG_FILE_PATTERNS: Record<string, string[]>;
3
- export declare function parseTsConfig(content: string, filePath: string): TsConfigSummary | null;
4
- export declare function parseEslintConfig(content: string, filePath: string, format: 'legacy' | 'flat'): EslintSummary | null;
5
- export declare function parsePrettierConfig(content: string, filePath: string): PrettierSummary | null;
6
- export declare function detectConfigFiles(files: string[]): string[];
7
- export declare function analyzeConfigs(projectRoot: string, rootFiles: string[]): Promise<ConfigFilesSummary>;
@@ -1,182 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CONFIG_FILE_PATTERNS = void 0;
4
- exports.parseTsConfig = parseTsConfig;
5
- exports.parseEslintConfig = parseEslintConfig;
6
- exports.parsePrettierConfig = parsePrettierConfig;
7
- exports.detectConfigFiles = detectConfigFiles;
8
- exports.analyzeConfigs = analyzeConfigs;
9
- const fs_1 = require("fs");
10
- const path = require("path");
11
- const file_utils_1 = require("../shared/file.utils");
12
- exports.CONFIG_FILE_PATTERNS = {
13
- typescript: ['tsconfig.json', 'tsconfig.*.json', 'jsconfig.json'],
14
- eslint: [
15
- '.eslintrc',
16
- '.eslintrc.json',
17
- '.eslintrc.js',
18
- '.eslintrc.cjs',
19
- '.eslintrc.yaml',
20
- '.eslintrc.yml',
21
- 'eslint.config.js',
22
- 'eslint.config.mjs',
23
- 'eslint.config.cjs',
24
- ],
25
- prettier: [
26
- '.prettierrc',
27
- '.prettierrc.json',
28
- '.prettierrc.js',
29
- '.prettierrc.cjs',
30
- '.prettierrc.yaml',
31
- '.prettierrc.yml',
32
- 'prettier.config.js',
33
- 'prettier.config.mjs',
34
- 'prettier.config.cjs',
35
- ],
36
- vite: [
37
- 'vite.config.ts',
38
- 'vite.config.js',
39
- 'vite.config.mts',
40
- 'vite.config.mjs',
41
- ],
42
- webpack: ['webpack.config.js', 'webpack.config.ts'],
43
- tailwind: ['tailwind.config.js', 'tailwind.config.ts', 'tailwind.config.cjs'],
44
- jest: ['jest.config.js', 'jest.config.ts', 'jest.config.json'],
45
- vitest: ['vitest.config.ts', 'vitest.config.js', 'vitest.config.mts'],
46
- };
47
- const ALL_CONFIG_PATTERNS = Object.values(exports.CONFIG_FILE_PATTERNS).flat();
48
- function parseTsConfig(content, filePath) {
49
- try {
50
- const config = JSON.parse(content);
51
- const compilerOptions = config.compilerOptions ?? {};
52
- return {
53
- path: filePath,
54
- strict: compilerOptions.strict,
55
- target: compilerOptions.target,
56
- module: compilerOptions.module,
57
- hasPathAliases: !!compilerOptions.paths &&
58
- Object.keys(compilerOptions.paths).length > 0,
59
- };
60
- }
61
- catch {
62
- return null;
63
- }
64
- }
65
- function parseEslintConfig(content, filePath, format) {
66
- try {
67
- const config = JSON.parse(content);
68
- return {
69
- path: filePath,
70
- format,
71
- extends: config.extends,
72
- plugins: config.plugins,
73
- };
74
- }
75
- catch {
76
- return null;
77
- }
78
- }
79
- function parsePrettierConfig(content, filePath) {
80
- try {
81
- const config = JSON.parse(content);
82
- return {
83
- path: filePath,
84
- tabWidth: config.tabWidth,
85
- semi: config.semi,
86
- singleQuote: config.singleQuote,
87
- trailingComma: config.trailingComma,
88
- };
89
- }
90
- catch {
91
- return null;
92
- }
93
- }
94
- function matchesConfigPattern(fileName) {
95
- const baseName = path.basename(fileName);
96
- for (const pattern of ALL_CONFIG_PATTERNS) {
97
- if (pattern.includes('*')) {
98
- const regex = new RegExp('^' + pattern.replace(/\./g, '\\.').replace(/\*/g, '.*') + '$');
99
- if (regex.test(baseName)) {
100
- return true;
101
- }
102
- }
103
- else if (baseName === pattern) {
104
- return true;
105
- }
106
- }
107
- return false;
108
- }
109
- function detectConfigFiles(files) {
110
- return files.filter(file => matchesConfigPattern(file));
111
- }
112
- function getEslintFormat(fileName) {
113
- const baseName = path.basename(fileName);
114
- if (baseName.startsWith('eslint.config.')) {
115
- return 'flat';
116
- }
117
- return 'legacy';
118
- }
119
- async function analyzeConfigs(projectRoot, rootFiles) {
120
- const detected = detectConfigFiles(rootFiles);
121
- const result = { detected };
122
- for (const pattern of exports.CONFIG_FILE_PATTERNS.typescript) {
123
- if (!pattern.includes('*')) {
124
- const filePath = path.join(projectRoot, pattern);
125
- if ((0, fs_1.existsSync)(filePath)) {
126
- const content = await (0, file_utils_1.tryReadFile)(filePath);
127
- if (content !== undefined) {
128
- const parsed = parseTsConfig(content, pattern);
129
- if (parsed) {
130
- result.typescript = parsed;
131
- break;
132
- }
133
- }
134
- }
135
- }
136
- }
137
- const eslintJsonFiles = ['.eslintrc', '.eslintrc.json'];
138
- for (const fileName of eslintJsonFiles) {
139
- const filePath = path.join(projectRoot, fileName);
140
- if ((0, fs_1.existsSync)(filePath)) {
141
- const content = await (0, file_utils_1.tryReadFile)(filePath);
142
- if (content !== undefined) {
143
- const parsed = parseEslintConfig(content, fileName, getEslintFormat(fileName));
144
- if (parsed) {
145
- result.eslint = parsed;
146
- break;
147
- }
148
- }
149
- }
150
- }
151
- for (const pattern of [
152
- 'eslint.config.js',
153
- 'eslint.config.mjs',
154
- 'eslint.config.cjs',
155
- ]) {
156
- if ((0, fs_1.existsSync)(path.join(projectRoot, pattern))) {
157
- if (!result.eslint) {
158
- result.eslint = {
159
- path: pattern,
160
- format: 'flat',
161
- };
162
- }
163
- break;
164
- }
165
- }
166
- const prettierJsonFiles = ['.prettierrc', '.prettierrc.json'];
167
- for (const fileName of prettierJsonFiles) {
168
- const filePath = path.join(projectRoot, fileName);
169
- if ((0, fs_1.existsSync)(filePath)) {
170
- const content = await (0, file_utils_1.tryReadFile)(filePath);
171
- if (content !== undefined) {
172
- const parsed = parsePrettierConfig(content, fileName);
173
- if (parsed) {
174
- result.prettier = parsed;
175
- break;
176
- }
177
- }
178
- }
179
- }
180
- return result;
181
- }
182
- //# sourceMappingURL=config.analyzer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.analyzer.js","sourceRoot":"","sources":["../../../src/analyzer/config.analyzer.ts"],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- import type { DirectoryAnalysis, ArchitecturePattern } from './analyzer.types';
2
- interface PatternDefinition {
3
- name: string;
4
- indicators: string[];
5
- minIndicators: number;
6
- }
7
- export declare const ARCHITECTURE_PATTERNS: PatternDefinition[];
8
- export type DirectoryCategory = 'source' | 'test' | 'config' | 'build' | 'dependencies' | 'static' | 'other';
9
- export declare function categorizeDirectory(dirName: string): DirectoryCategory;
10
- export declare function detectArchitecturePatterns(directories: string[]): ArchitecturePattern[];
11
- export declare function analyzeDirectory(projectRoot: string, customIgnorePatterns?: string[]): Promise<DirectoryAnalysis>;
12
- export {};