faf-cli 3.1.6 → 3.2.1

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 (51) hide show
  1. package/README.md +57 -1
  2. package/dist/cli.d.ts.map +1 -1
  3. package/dist/cli.js +92 -14
  4. package/dist/cli.js.map +1 -1
  5. package/dist/commands/check.d.ts +19 -3
  6. package/dist/commands/check.d.ts.map +1 -1
  7. package/dist/commands/check.js +280 -37
  8. package/dist/commands/check.js.map +1 -1
  9. package/dist/commands/git.d.ts.map +1 -1
  10. package/dist/commands/git.js +7 -4
  11. package/dist/commands/git.js.map +1 -1
  12. package/dist/commands/human.d.ts +19 -0
  13. package/dist/commands/human.d.ts.map +1 -0
  14. package/dist/commands/human.js +205 -0
  15. package/dist/commands/human.js.map +1 -0
  16. package/dist/commands/readme.d.ts +16 -0
  17. package/dist/commands/readme.d.ts.map +1 -0
  18. package/dist/commands/readme.js +453 -0
  19. package/dist/commands/readme.js.map +1 -0
  20. package/dist/commands/version.d.ts +1 -1
  21. package/dist/commands/version.js +2 -2
  22. package/dist/compiler/faf-compiler.d.ts.map +1 -1
  23. package/dist/compiler/faf-compiler.js +43 -0
  24. package/dist/compiler/faf-compiler.js.map +1 -1
  25. package/dist/engines/fab-formats-processor.d.ts +8 -0
  26. package/dist/engines/fab-formats-processor.d.ts.map +1 -1
  27. package/dist/engines/fab-formats-processor.js +78 -1
  28. package/dist/engines/fab-formats-processor.js.map +1 -1
  29. package/dist/framework-detector.d.ts.map +1 -1
  30. package/dist/framework-detector.js +7 -0
  31. package/dist/framework-detector.js.map +1 -1
  32. package/dist/github/github-extractor.d.ts +12 -6
  33. package/dist/github/github-extractor.d.ts.map +1 -1
  34. package/dist/github/github-extractor.js +339 -84
  35. package/dist/github/github-extractor.js.map +1 -1
  36. package/dist/utils/fab-formats-engine.d.ts +7 -0
  37. package/dist/utils/fab-formats-engine.d.ts.map +1 -1
  38. package/dist/utils/fab-formats-engine.js +23 -1
  39. package/dist/utils/fab-formats-engine.js.map +1 -1
  40. package/dist/utils/file-utils.d.ts.map +1 -1
  41. package/dist/utils/file-utils.js +20 -1
  42. package/dist/utils/file-utils.js.map +1 -1
  43. package/dist/utils/turbo-cat-knowledge.d.ts +2 -0
  44. package/dist/utils/turbo-cat-knowledge.d.ts.map +1 -1
  45. package/dist/utils/turbo-cat-knowledge.js +15 -0
  46. package/dist/utils/turbo-cat-knowledge.js.map +1 -1
  47. package/dist/utils/turbo-cat.d.ts +7 -0
  48. package/dist/utils/turbo-cat.d.ts.map +1 -1
  49. package/dist/utils/turbo-cat.js +30 -2
  50. package/dist/utils/turbo-cat.js.map +1 -1
  51. package/package.json +1 -1
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * 🏆 GitHub Repository Metadata Extractor
3
3
  *
4
- * Port of Chrome Extension GitHub extraction logic for CLI
5
- * Fetches rich metadata without cloning the repository
4
+ * Uses Git CLI for cloning (no rate limits) with optional GitHub API enrichment
5
+ * Fetches rich metadata via shallow clone + local analysis
6
6
  */
7
7
  export interface GitHubMetadata {
8
8
  owner: string;
@@ -22,6 +22,7 @@ export interface GitHubMetadata {
22
22
  hasPackageJson?: boolean;
23
23
  hasTsConfig?: boolean;
24
24
  hasDockerfile?: boolean;
25
+ _clonePath?: string;
25
26
  }
26
27
  export interface GitHubFile {
27
28
  path: string;
@@ -37,14 +38,19 @@ export declare function parseGitHubUrl(url: string): {
37
38
  repo: string;
38
39
  } | null;
39
40
  /**
40
- * Fetch repository metadata from GitHub API
41
- * (No auth required for public repos, 60 requests/hour limit)
41
+ * Fetch repository metadata using Git CLI (no rate limits!)
42
+ * Falls back to GitHub API for enrichment data (stars, topics, etc.)
42
43
  */
43
44
  export declare function fetchGitHubMetadata(owner: string, repo: string, includeFiles?: boolean): Promise<GitHubMetadata>;
44
45
  /**
45
- * Fetch repository file tree
46
+ * Fetch repository file tree from local clone
47
+ * Uses the _clonePath from metadata if available
46
48
  */
47
- export declare function fetchGitHubFileTree(owner: string, repo: string, branch?: string, path?: string): Promise<GitHubFile[]>;
49
+ export declare function fetchGitHubFileTree(owner: string, repo: string, branch?: string, pathPrefix?: string, metadata?: GitHubMetadata): Promise<GitHubFile[]>;
50
+ /**
51
+ * Cleanup cloned repository after extraction
52
+ */
53
+ export declare function cleanupClonedRepo(metadata: GitHubMetadata): void;
48
54
  /**
49
55
  * Detect framework/stack from repository metadata
50
56
  */
@@ -1 +1 @@
1
- {"version":3,"file":"github-extractor.d.ts","sourceRoot":"","sources":["../../src/github/github-extractor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAgDlF;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,YAAY,GAAE,OAAe,GAC5B,OAAO,CAAC,cAAc,CAAC,CAuFzB;AA2BD;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,GAAE,MAAe,EACvB,IAAI,GAAE,MAAW,GAChB,OAAO,CAAC,UAAU,EAAE,CAAC,CA8BvB;AAeD;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM,EAAE,CAgD1E;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM,CAiD1E"}
1
+ {"version":3,"file":"github-extractor.d.ts","sourceRoot":"","sources":["../../src/github/github-extractor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAgDlF;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,YAAY,GAAE,OAAe,GAC5B,OAAO,CAAC,cAAc,CAAC,CA4HzB;AA2KD;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,GAAE,MAAe,EACvB,UAAU,GAAE,MAAW,EACvB,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CAAC,UAAU,EAAE,CAAC,CA4CvB;AA0DD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI,CAQhE;AAeD;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM,EAAE,CAgD1E;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM,CAiD1E"}
@@ -2,15 +2,20 @@
2
2
  /**
3
3
  * 🏆 GitHub Repository Metadata Extractor
4
4
  *
5
- * Port of Chrome Extension GitHub extraction logic for CLI
6
- * Fetches rich metadata without cloning the repository
5
+ * Uses Git CLI for cloning (no rate limits) with optional GitHub API enrichment
6
+ * Fetches rich metadata via shallow clone + local analysis
7
7
  */
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.parseGitHubUrl = parseGitHubUrl;
10
10
  exports.fetchGitHubMetadata = fetchGitHubMetadata;
11
11
  exports.fetchGitHubFileTree = fetchGitHubFileTree;
12
+ exports.cleanupClonedRepo = cleanupClonedRepo;
12
13
  exports.detectStackFromMetadata = detectStackFromMetadata;
13
14
  exports.calculateRepoQualityScore = calculateRepoQualityScore;
15
+ const child_process_1 = require("child_process");
16
+ const fs_1 = require("fs");
17
+ const path_1 = require("path");
18
+ const os_1 = require("os");
14
19
  /**
15
20
  * Parse GitHub URL to extract owner and repo
16
21
  */
@@ -56,82 +61,122 @@ function parseGitHubUrl(url) {
56
61
  }
57
62
  }
58
63
  /**
59
- * Fetch repository metadata from GitHub API
60
- * (No auth required for public repos, 60 requests/hour limit)
64
+ * Fetch repository metadata using Git CLI (no rate limits!)
65
+ * Falls back to GitHub API for enrichment data (stars, topics, etc.)
61
66
  */
62
67
  async function fetchGitHubMetadata(owner, repo, includeFiles = false) {
63
- const apiUrl = `https://api.github.com/repos/${owner}/${repo}`;
68
+ const repoUrl = `https://github.com/${owner}/${repo}.git`;
69
+ const clonePath = (0, path_1.join)((0, os_1.tmpdir)(), `faf-git-${owner}-${repo}-${Date.now()}`);
64
70
  try {
65
- const response = await fetch(apiUrl, {
66
- headers: {
67
- 'Accept': 'application/vnd.github.v3+json',
68
- 'User-Agent': 'faf-cli'
69
- }
71
+ // Step 1: Shallow clone with Git CLI (no rate limits!)
72
+ const cloneResult = (0, child_process_1.spawnSync)('git', [
73
+ 'clone',
74
+ '--depth', '1',
75
+ '--single-branch',
76
+ repoUrl,
77
+ clonePath
78
+ ], {
79
+ encoding: 'utf-8',
80
+ timeout: 30000, // 30 second timeout
81
+ stdio: ['pipe', 'pipe', 'pipe']
70
82
  });
71
- if (!response.ok) {
72
- if (response.status === 404) {
83
+ if (cloneResult.status !== 0) {
84
+ // Check if repo doesn't exist
85
+ const stderr = cloneResult.stderr || '';
86
+ if (stderr.includes('not found') || stderr.includes('Repository not found') || stderr.includes('does not exist')) {
73
87
  throw new Error(`Repository ${owner}/${repo} not found`);
74
88
  }
75
- if (response.status === 403) {
76
- throw new Error('GitHub API rate limit exceeded. Try again later or set GITHUB_TOKEN.');
77
- }
78
- throw new Error(`GitHub API error: ${response.status} ${response.statusText}`);
89
+ throw new Error(`Git clone failed: ${stderr}`);
79
90
  }
80
- const data = await response.json();
81
- // Extract metadata
91
+ // Step 2: Extract metadata from cloned repo
82
92
  const metadata = {
83
93
  owner,
84
94
  repo,
85
95
  url: `https://github.com/${owner}/${repo}`,
86
- description: data.description || undefined,
87
- topics: data.topics || undefined,
88
- stars: formatNumber(data.stargazers_count),
89
- forks: formatNumber(data.forks_count),
90
- license: data.license?.spdx_id || data.license?.name || undefined,
91
- lastUpdated: data.updated_at || data.pushed_at || undefined,
92
- defaultBranch: data.default_branch || 'main',
93
- openIssues: data.open_issues_count || 0,
94
- watchers: data.watchers_count || 0,
96
+ _clonePath: clonePath,
95
97
  };
96
- // Fetch language breakdown
97
- if (data.languages_url) {
98
- const langResponse = await fetch(data.languages_url, {
99
- headers: {
100
- 'Accept': 'application/vnd.github.v3+json',
101
- 'User-Agent': 'faf-cli'
98
+ // Get default branch from git
99
+ try {
100
+ const branchResult = (0, child_process_1.execSync)('git rev-parse --abbrev-ref HEAD', {
101
+ cwd: clonePath,
102
+ encoding: 'utf-8'
103
+ }).trim();
104
+ metadata.defaultBranch = branchResult || 'main';
105
+ }
106
+ catch {
107
+ metadata.defaultBranch = 'main';
108
+ }
109
+ // Get last commit date
110
+ try {
111
+ const dateResult = (0, child_process_1.execSync)('git log -1 --format=%cI', {
112
+ cwd: clonePath,
113
+ encoding: 'utf-8'
114
+ }).trim();
115
+ metadata.lastUpdated = dateResult;
116
+ }
117
+ catch {
118
+ // Ignore
119
+ }
120
+ // Check for common files locally (instant, no API)
121
+ metadata.readme = (0, fs_1.existsSync)((0, path_1.join)(clonePath, 'README.md')) ||
122
+ (0, fs_1.existsSync)((0, path_1.join)(clonePath, 'readme.md')) ||
123
+ (0, fs_1.existsSync)((0, path_1.join)(clonePath, 'Readme.md'));
124
+ metadata.hasPackageJson = (0, fs_1.existsSync)((0, path_1.join)(clonePath, 'package.json'));
125
+ metadata.hasTsConfig = (0, fs_1.existsSync)((0, path_1.join)(clonePath, 'tsconfig.json'));
126
+ metadata.hasDockerfile = (0, fs_1.existsSync)((0, path_1.join)(clonePath, 'Dockerfile'));
127
+ // Extract description from package.json if available
128
+ if (metadata.hasPackageJson) {
129
+ try {
130
+ const pkgJson = JSON.parse((0, fs_1.readFileSync)((0, path_1.join)(clonePath, 'package.json'), 'utf-8'));
131
+ if (pkgJson.description && !metadata.description) {
132
+ metadata.description = pkgJson.description;
133
+ }
134
+ }
135
+ catch {
136
+ // Ignore parse errors
137
+ }
138
+ }
139
+ // Detect languages from file extensions (local analysis)
140
+ metadata.languages = detectLanguagesFromFiles(clonePath);
141
+ // Try to extract license from LICENSE file
142
+ const licenseFile = findLicenseFile(clonePath);
143
+ if (licenseFile) {
144
+ metadata.license = detectLicenseType(licenseFile);
145
+ }
146
+ // Step 3: Optional API enrichment (stars, topics, forks) - best effort
147
+ // This may fail due to rate limits, but core extraction still works
148
+ try {
149
+ const enrichment = await fetchGitHubApiEnrichment(owner, repo);
150
+ if (enrichment) {
151
+ metadata.stars = enrichment.stars;
152
+ metadata.forks = enrichment.forks;
153
+ metadata.topics = enrichment.topics;
154
+ metadata.openIssues = enrichment.openIssues;
155
+ metadata.watchers = enrichment.watchers;
156
+ if (enrichment.description && !metadata.description) {
157
+ metadata.description = enrichment.description;
158
+ }
159
+ if (enrichment.license && !metadata.license) {
160
+ metadata.license = enrichment.license;
102
161
  }
103
- });
104
- if (langResponse.ok) {
105
- const languages = await langResponse.json();
106
- const total = Object.values(languages).reduce((sum, bytes) => sum + bytes, 0);
107
- metadata.languages = Object.entries(languages)
108
- .map(([lang, bytes]) => {
109
- const percentage = ((bytes / total) * 100).toFixed(1);
110
- return `${lang} (${percentage}%)`;
111
- })
112
- .sort((a, b) => {
113
- const aPercent = parseFloat(a.match(/\((.+)%\)/)?.[1] || '0');
114
- const bPercent = parseFloat(b.match(/\((.+)%\)/)?.[1] || '0');
115
- return bPercent - aPercent;
116
- });
117
162
  }
118
163
  }
119
- // Check for common files (if requested)
120
- if (includeFiles) {
121
- const fileChecks = await Promise.allSettled([
122
- checkFileExists(owner, repo, 'README.md', metadata.defaultBranch),
123
- checkFileExists(owner, repo, 'package.json', metadata.defaultBranch),
124
- checkFileExists(owner, repo, 'tsconfig.json', metadata.defaultBranch),
125
- checkFileExists(owner, repo, 'Dockerfile', metadata.defaultBranch),
126
- ]);
127
- metadata.readme = fileChecks[0].status === 'fulfilled' && fileChecks[0].value;
128
- metadata.hasPackageJson = fileChecks[1].status === 'fulfilled' && fileChecks[1].value;
129
- metadata.hasTsConfig = fileChecks[2].status === 'fulfilled' && fileChecks[2].value;
130
- metadata.hasDockerfile = fileChecks[3].status === 'fulfilled' && fileChecks[3].value;
164
+ catch {
165
+ // API enrichment failed (rate limit), but core extraction succeeded
166
+ // Leave stars/forks/topics as undefined
131
167
  }
132
168
  return metadata;
133
169
  }
134
170
  catch (error) {
171
+ // Cleanup on error
172
+ try {
173
+ if ((0, fs_1.existsSync)(clonePath)) {
174
+ (0, fs_1.rmSync)(clonePath, { recursive: true, force: true });
175
+ }
176
+ }
177
+ catch {
178
+ // Ignore cleanup errors
179
+ }
135
180
  if (error instanceof Error) {
136
181
  throw error;
137
182
  }
@@ -139,53 +184,263 @@ async function fetchGitHubMetadata(owner, repo, includeFiles = false) {
139
184
  }
140
185
  }
141
186
  /**
142
- * Check if a file exists in the repository
187
+ * Fetch optional enrichment data from GitHub API (best effort)
143
188
  */
144
- async function checkFileExists(owner, repo, path, branch = 'main') {
145
- const url = `https://api.github.com/repos/${owner}/${repo}/contents/${path}?ref=${branch}`;
189
+ async function fetchGitHubApiEnrichment(owner, repo) {
146
190
  try {
147
- const response = await fetch(url, {
191
+ const apiUrl = `https://api.github.com/repos/${owner}/${repo}`;
192
+ const response = await fetch(apiUrl, {
148
193
  headers: {
149
194
  'Accept': 'application/vnd.github.v3+json',
150
195
  'User-Agent': 'faf-cli'
151
196
  }
152
197
  });
153
- return response.ok;
198
+ if (!response.ok) {
199
+ return null; // Don't throw, just return null for enrichment
200
+ }
201
+ const data = await response.json();
202
+ return {
203
+ stars: formatNumber(data.stargazers_count),
204
+ forks: formatNumber(data.forks_count),
205
+ topics: data.topics || undefined,
206
+ description: data.description || undefined,
207
+ license: data.license?.spdx_id || data.license?.name || undefined,
208
+ openIssues: data.open_issues_count || 0,
209
+ watchers: data.watchers_count || 0,
210
+ };
154
211
  }
155
212
  catch {
156
- return false;
213
+ return null;
157
214
  }
158
215
  }
159
216
  /**
160
- * Fetch repository file tree
217
+ * Detect programming languages from file extensions in cloned repo
161
218
  */
162
- async function fetchGitHubFileTree(owner, repo, branch = 'main', path = '') {
163
- const url = `https://api.github.com/repos/${owner}/${repo}/contents/${path}?ref=${branch}`;
164
- try {
165
- const response = await fetch(url, {
166
- headers: {
167
- 'Accept': 'application/vnd.github.v3+json',
168
- 'User-Agent': 'faf-cli'
219
+ function detectLanguagesFromFiles(repoPath) {
220
+ const extensionMap = {
221
+ '.ts': 'TypeScript',
222
+ '.tsx': 'TypeScript',
223
+ '.js': 'JavaScript',
224
+ '.jsx': 'JavaScript',
225
+ '.py': 'Python',
226
+ '.rs': 'Rust',
227
+ '.go': 'Go',
228
+ '.java': 'Java',
229
+ '.rb': 'Ruby',
230
+ '.php': 'PHP',
231
+ '.swift': 'Swift',
232
+ '.kt': 'Kotlin',
233
+ '.cs': 'C#',
234
+ '.cpp': 'C++',
235
+ '.c': 'C',
236
+ '.vue': 'Vue',
237
+ '.svelte': 'Svelte',
238
+ };
239
+ const languageCounts = {};
240
+ function scanDirectory(dir, depth = 0) {
241
+ if (depth > 5)
242
+ return; // Limit depth to avoid deep recursion
243
+ try {
244
+ const entries = (0, fs_1.readdirSync)(dir, { withFileTypes: true });
245
+ for (const entry of entries) {
246
+ // Skip hidden directories and node_modules
247
+ if (entry.name.startsWith('.') || entry.name === 'node_modules' || entry.name === 'vendor') {
248
+ continue;
249
+ }
250
+ const fullPath = (0, path_1.join)(dir, entry.name);
251
+ if (entry.isDirectory()) {
252
+ scanDirectory(fullPath, depth + 1);
253
+ }
254
+ else if (entry.isFile()) {
255
+ const ext = entry.name.substring(entry.name.lastIndexOf('.'));
256
+ const lang = extensionMap[ext];
257
+ if (lang) {
258
+ try {
259
+ const size = (0, fs_1.statSync)(fullPath).size;
260
+ languageCounts[lang] = (languageCounts[lang] || 0) + size;
261
+ }
262
+ catch {
263
+ // Ignore stat errors
264
+ }
265
+ }
266
+ }
169
267
  }
268
+ }
269
+ catch {
270
+ // Ignore directory read errors
271
+ }
272
+ }
273
+ scanDirectory(repoPath);
274
+ // Calculate percentages
275
+ const total = Object.values(languageCounts).reduce((sum, bytes) => sum + bytes, 0);
276
+ if (total === 0)
277
+ return [];
278
+ return Object.entries(languageCounts)
279
+ .map(([lang, bytes]) => {
280
+ const percentage = ((bytes / total) * 100).toFixed(1);
281
+ return { lang, percentage: parseFloat(percentage), display: `${lang} (${percentage}%)` };
282
+ })
283
+ .sort((a, b) => b.percentage - a.percentage)
284
+ .map(item => item.display);
285
+ }
286
+ /**
287
+ * Find LICENSE file in repository
288
+ */
289
+ function findLicenseFile(repoPath) {
290
+ const licenseNames = ['LICENSE', 'LICENSE.md', 'LICENSE.txt', 'license', 'License'];
291
+ for (const name of licenseNames) {
292
+ const licensePath = (0, path_1.join)(repoPath, name);
293
+ if ((0, fs_1.existsSync)(licensePath)) {
294
+ try {
295
+ return (0, fs_1.readFileSync)(licensePath, 'utf-8');
296
+ }
297
+ catch {
298
+ return null;
299
+ }
300
+ }
301
+ }
302
+ return null;
303
+ }
304
+ /**
305
+ * Detect license type from LICENSE file content
306
+ */
307
+ function detectLicenseType(content) {
308
+ const lowerContent = content.toLowerCase();
309
+ if (lowerContent.includes('mit license') || lowerContent.includes('permission is hereby granted, free of charge')) {
310
+ return 'MIT';
311
+ }
312
+ if (lowerContent.includes('apache license') && lowerContent.includes('version 2.0')) {
313
+ return 'Apache-2.0';
314
+ }
315
+ if (lowerContent.includes('gnu general public license') && lowerContent.includes('version 3')) {
316
+ return 'GPL-3.0';
317
+ }
318
+ if (lowerContent.includes('gnu general public license') && lowerContent.includes('version 2')) {
319
+ return 'GPL-2.0';
320
+ }
321
+ if (lowerContent.includes('bsd 3-clause') || lowerContent.includes('3-clause bsd')) {
322
+ return 'BSD-3-Clause';
323
+ }
324
+ if (lowerContent.includes('bsd 2-clause') || lowerContent.includes('2-clause bsd')) {
325
+ return 'BSD-2-Clause';
326
+ }
327
+ if (lowerContent.includes('isc license')) {
328
+ return 'ISC';
329
+ }
330
+ if (lowerContent.includes('mozilla public license') && lowerContent.includes('2.0')) {
331
+ return 'MPL-2.0';
332
+ }
333
+ return 'Other';
334
+ }
335
+ /**
336
+ * Fetch repository file tree from local clone
337
+ * Uses the _clonePath from metadata if available
338
+ */
339
+ async function fetchGitHubFileTree(owner, repo, branch = 'main', pathPrefix = '', metadata) {
340
+ // If we have a local clone path, use it
341
+ const clonePath = metadata?._clonePath;
342
+ if (clonePath && (0, fs_1.existsSync)(clonePath)) {
343
+ return getLocalFileTree(clonePath, pathPrefix);
344
+ }
345
+ // Fallback: do a fresh shallow clone
346
+ const repoUrl = `https://github.com/${owner}/${repo}.git`;
347
+ const tempClonePath = (0, path_1.join)((0, os_1.tmpdir)(), `faf-tree-${owner}-${repo}-${Date.now()}`);
348
+ try {
349
+ const cloneResult = (0, child_process_1.spawnSync)('git', [
350
+ 'clone',
351
+ '--depth', '1',
352
+ '--single-branch',
353
+ repoUrl,
354
+ tempClonePath
355
+ ], {
356
+ encoding: 'utf-8',
357
+ timeout: 30000,
358
+ stdio: ['pipe', 'pipe', 'pipe']
170
359
  });
171
- if (!response.ok) {
172
- throw new Error(`Failed to fetch file tree: ${response.status}`);
360
+ if (cloneResult.status !== 0) {
361
+ console.warn(`Failed to clone for file tree: ${cloneResult.stderr}`);
362
+ return [];
173
363
  }
174
- const data = await response.json();
175
- // API returns an array for directories, object for files
176
- const items = Array.isArray(data) ? data : [data];
177
- return items.map((item) => ({
178
- path: item.path,
179
- type: item.type === 'dir' ? 'dir' : 'file',
180
- size: item.size,
181
- url: item.html_url,
182
- }));
364
+ const files = getLocalFileTree(tempClonePath, pathPrefix);
365
+ // Cleanup temp clone
366
+ try {
367
+ (0, fs_1.rmSync)(tempClonePath, { recursive: true, force: true });
368
+ }
369
+ catch {
370
+ // Ignore cleanup errors
371
+ }
372
+ return files;
183
373
  }
184
374
  catch (error) {
185
375
  console.warn(`Failed to fetch file tree: ${error}`);
186
376
  return [];
187
377
  }
188
378
  }
379
+ /**
380
+ * Get file tree from local directory
381
+ */
382
+ function getLocalFileTree(repoPath, pathPrefix = '') {
383
+ const files = [];
384
+ const basePath = pathPrefix ? (0, path_1.join)(repoPath, pathPrefix) : repoPath;
385
+ function scanDirectory(dir, relativePath = '', depth = 0) {
386
+ if (depth > 3)
387
+ return; // Limit depth for performance
388
+ try {
389
+ const entries = (0, fs_1.readdirSync)(dir, { withFileTypes: true });
390
+ for (const entry of entries) {
391
+ // Skip hidden files/directories and common excludes
392
+ if (entry.name.startsWith('.') || entry.name === 'node_modules' || entry.name === 'vendor') {
393
+ continue;
394
+ }
395
+ const fullPath = (0, path_1.join)(dir, entry.name);
396
+ const entryRelativePath = relativePath ? `${relativePath}/${entry.name}` : entry.name;
397
+ if (entry.isDirectory()) {
398
+ files.push({
399
+ path: entryRelativePath,
400
+ type: 'dir',
401
+ });
402
+ scanDirectory(fullPath, entryRelativePath, depth + 1);
403
+ }
404
+ else if (entry.isFile()) {
405
+ try {
406
+ const stats = (0, fs_1.statSync)(fullPath);
407
+ files.push({
408
+ path: entryRelativePath,
409
+ type: 'file',
410
+ size: stats.size,
411
+ });
412
+ }
413
+ catch {
414
+ files.push({
415
+ path: entryRelativePath,
416
+ type: 'file',
417
+ });
418
+ }
419
+ }
420
+ }
421
+ }
422
+ catch {
423
+ // Ignore directory read errors
424
+ }
425
+ }
426
+ if ((0, fs_1.existsSync)(basePath)) {
427
+ scanDirectory(basePath);
428
+ }
429
+ return files;
430
+ }
431
+ /**
432
+ * Cleanup cloned repository after extraction
433
+ */
434
+ function cleanupClonedRepo(metadata) {
435
+ if (metadata._clonePath && (0, fs_1.existsSync)(metadata._clonePath)) {
436
+ try {
437
+ (0, fs_1.rmSync)(metadata._clonePath, { recursive: true, force: true });
438
+ }
439
+ catch {
440
+ // Ignore cleanup errors
441
+ }
442
+ }
443
+ }
189
444
  /**
190
445
  * Format large numbers with K/M suffix
191
446
  */
@@ -1 +1 @@
1
- {"version":3,"file":"github-extractor.js","sourceRoot":"","sources":["../../src/github/github-extractor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"github-extractor.js","sourceRoot":"","sources":["../../src/github/github-extractor.ts"],"names":[],"mappings":"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"}
@@ -39,8 +39,15 @@ export declare class FabFormatsEngine {
39
39
  discoverFormats(projectDir: string): Promise<FabFormatsAnalysis>;
40
40
  /**
41
41
  * Find all format files (no content reading yet!)
42
+ *
43
+ * MONOREPO SUPPORT: If the project directory has its own .git, we only scan
44
+ * that directory (not parent dirs) to avoid polluting with parent project configs.
42
45
  */
43
46
  private findAllFormats;
47
+ /**
48
+ * Check if directory has a .git folder (indicates project boundary)
49
+ */
50
+ private hasGitDirectory;
44
51
  private isKnownExtension;
45
52
  /**
46
53
  * STAGE 2: CATEGORIZE - Smart deduplication
@@ -1 +1 @@
1
- {"version":3,"file":"fab-formats-engine.d.ts","sourceRoot":"","sources":["../../src/utils/fab-formats-engine.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,GAAG,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;IACtC,sBAAsB,EAAE,MAAM,CAAC;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7C,gBAAgB,EAAE;QAChB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;QACtB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACtC,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,aAAa,CAAC,EAAE,OAAO,CAAC;KACzB,CAAC;CACH;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,mBAAmB,CAA4C;IAEvE;;OAEG;IACG,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAuBtE;;OAEG;YACW,cAAc;IA2B5B,OAAO,CAAC,gBAAgB;IAKxB;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAgBhC;;OAEG;IACH,OAAO,CAAC,cAAc;IAkDtB;;OAEG;YACW,mBAAmB;IAkCjC;;OAEG;YACW,WAAW;IAyBzB;;OAEG;YACW,kBAAkB;IA0ChC;;OAEG;IACH,OAAO,CAAC,uBAAuB;IA0E/B,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,gBAAgB;IAUxB;;OAEG;IACH,OAAO,CAAC,cAAc;CA6CvB"}
1
+ {"version":3,"file":"fab-formats-engine.d.ts","sourceRoot":"","sources":["../../src/utils/fab-formats-engine.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,GAAG,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;IACtC,sBAAsB,EAAE,MAAM,CAAC;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7C,gBAAgB,EAAE;QAChB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;QACtB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACtC,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,aAAa,CAAC,EAAE,OAAO,CAAC;KACzB,CAAC;CACH;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,mBAAmB,CAA4C;IAEvE;;OAEG;IACG,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAuBtE;;;;;OAKG;YACW,cAAc;IAmC5B;;OAEG;YACW,eAAe;IAU7B,OAAO,CAAC,gBAAgB;IAKxB;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAgBhC;;OAEG;IACH,OAAO,CAAC,cAAc;IAkDtB;;OAEG;YACW,mBAAmB;IAkCjC;;OAEG;YACW,WAAW;IAyBzB;;OAEG;YACW,kBAAkB;IA0ChC;;OAEG;IACH,OAAO,CAAC,uBAAuB;IA0E/B,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,gBAAgB;IAUxB;;OAEG;IACH,OAAO,CAAC,cAAc;CA6CvB"}