@principal-ai/codebase-composition 0.2.8 → 0.2.10
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/package.json +5 -4
- package/dist/adapters/NodeFileSystemAdapter.d.ts +0 -28
- package/dist/adapters/NodeFileSystemAdapter.d.ts.map +0 -1
- package/dist/adapters/NodeFileSystemAdapter.js +0 -128
- package/dist/adapters/NodeFileSystemAdapter.js.map +0 -1
- package/dist/helpers/QualityMetricsCalculator.d.ts +0 -46
- package/dist/helpers/QualityMetricsCalculator.d.ts.map +0 -1
- package/dist/helpers/QualityMetricsCalculator.js +0 -161
- package/dist/helpers/QualityMetricsCalculator.js.map +0 -1
- package/dist/helpers/packageLayerHelpers.d.ts +0 -30
- package/dist/helpers/packageLayerHelpers.d.ts.map +0 -1
- package/dist/helpers/packageLayerHelpers.js +0 -88
- package/dist/helpers/packageLayerHelpers.js.map +0 -1
- package/dist/index.d.ts +0 -11
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -14
- package/dist/index.js.map +0 -1
- package/dist/modules/DependencyLayerModule.d.ts +0 -44
- package/dist/modules/DependencyLayerModule.d.ts.map +0 -1
- package/dist/modules/DependencyLayerModule.js +0 -282
- package/dist/modules/DependencyLayerModule.js.map +0 -1
- package/dist/modules/FileSystemModule.d.ts +0 -30
- package/dist/modules/FileSystemModule.d.ts.map +0 -1
- package/dist/modules/FileSystemModule.js +0 -43
- package/dist/modules/FileSystemModule.js.map +0 -1
- package/dist/modules/FileTypeLayerModule.d.ts +0 -34
- package/dist/modules/FileTypeLayerModule.d.ts.map +0 -1
- package/dist/modules/FileTypeLayerModule.js +0 -165
- package/dist/modules/FileTypeLayerModule.js.map +0 -1
- package/dist/modules/FrameworkLayerModule.d.ts +0 -22
- package/dist/modules/FrameworkLayerModule.d.ts.map +0 -1
- package/dist/modules/FrameworkLayerModule.js +0 -384
- package/dist/modules/FrameworkLayerModule.js.map +0 -1
- package/dist/modules/PackageLayerModule.d.ts +0 -23
- package/dist/modules/PackageLayerModule.d.ts.map +0 -1
- package/dist/modules/PackageLayerModule.js +0 -775
- package/dist/modules/PackageLayerModule.js.map +0 -1
- package/dist/modules/TypeExtractionModule.d.ts +0 -37
- package/dist/modules/TypeExtractionModule.d.ts.map +0 -1
- package/dist/modules/TypeExtractionModule.js +0 -141
- package/dist/modules/TypeExtractionModule.js.map +0 -1
- package/dist/modules/VersionControlLayerModule.d.ts +0 -10
- package/dist/modules/VersionControlLayerModule.d.ts.map +0 -1
- package/dist/modules/VersionControlLayerModule.js +0 -26
- package/dist/modules/VersionControlLayerModule.js.map +0 -1
- package/dist/modules/__fixtures__/typescript-packages/complex-types/src/index.d.ts +0 -4
- package/dist/modules/__fixtures__/typescript-packages/complex-types/src/index.d.ts.map +0 -1
- package/dist/modules/__fixtures__/typescript-packages/complex-types/src/index.js +0 -3
- package/dist/modules/__fixtures__/typescript-packages/complex-types/src/index.js.map +0 -1
- package/dist/modules/__fixtures__/typescript-packages/complex-types/src/models/category.d.ts +0 -15
- package/dist/modules/__fixtures__/typescript-packages/complex-types/src/models/category.d.ts.map +0 -1
- package/dist/modules/__fixtures__/typescript-packages/complex-types/src/models/category.js +0 -2
- package/dist/modules/__fixtures__/typescript-packages/complex-types/src/models/category.js.map +0 -1
- package/dist/modules/__fixtures__/typescript-packages/complex-types/src/models/product.d.ts +0 -34
- package/dist/modules/__fixtures__/typescript-packages/complex-types/src/models/product.d.ts.map +0 -1
- package/dist/modules/__fixtures__/typescript-packages/complex-types/src/models/product.js +0 -19
- package/dist/modules/__fixtures__/typescript-packages/complex-types/src/models/product.js.map +0 -1
- package/dist/modules/__fixtures__/typescript-packages/simple-types/index.d.ts +0 -39
- package/dist/modules/__fixtures__/typescript-packages/simple-types/index.d.ts.map +0 -1
- package/dist/modules/__fixtures__/typescript-packages/simple-types/index.js +0 -36
- package/dist/modules/__fixtures__/typescript-packages/simple-types/index.js.map +0 -1
- package/dist/modules/extractors/TypeScriptExtractor.d.ts +0 -18
- package/dist/modules/extractors/TypeScriptExtractor.d.ts.map +0 -1
- package/dist/modules/extractors/TypeScriptExtractor.js +0 -322
- package/dist/modules/extractors/TypeScriptExtractor.js.map +0 -1
- package/dist/modules/index.d.ts +0 -13
- package/dist/modules/index.d.ts.map +0 -1
- package/dist/modules/index.js +0 -10
- package/dist/modules/index.js.map +0 -1
- package/dist/providers/GitVersionControlProvider.d.ts +0 -108
- package/dist/providers/GitVersionControlProvider.d.ts.map +0 -1
- package/dist/providers/GitVersionControlProvider.js +0 -375
- package/dist/providers/GitVersionControlProvider.js.map +0 -1
- package/dist/providers/PackageManagerApiProvider.d.ts +0 -78
- package/dist/providers/PackageManagerApiProvider.d.ts.map +0 -1
- package/dist/providers/PackageManagerApiProvider.js +0 -10
- package/dist/providers/PackageManagerApiProvider.js.map +0 -1
- package/dist/providers/index.d.ts +0 -4
- package/dist/providers/index.d.ts.map +0 -1
- package/dist/providers/index.js +0 -5
- package/dist/providers/index.js.map +0 -1
- package/dist/services/FilesystemService.d.ts +0 -59
- package/dist/services/FilesystemService.d.ts.map +0 -1
- package/dist/services/FilesystemService.js +0 -394
- package/dist/services/FilesystemService.js.map +0 -1
- package/dist/services/index.d.ts +0 -2
- package/dist/services/index.d.ts.map +0 -1
- package/dist/services/index.js +0 -3
- package/dist/services/index.js.map +0 -1
- package/dist/types/file-system.d.ts +0 -6
- package/dist/types/file-system.d.ts.map +0 -1
- package/dist/types/file-system.js +0 -6
- package/dist/types/file-system.js.map +0 -1
- package/dist/types/index.d.ts +0 -4
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/index.js +0 -2
- package/dist/types/index.js.map +0 -1
- package/dist/types/layer-types.d.ts +0 -205
- package/dist/types/layer-types.d.ts.map +0 -1
- package/dist/types/layer-types.js +0 -6
- package/dist/types/layer-types.js.map +0 -1
- package/dist/types/version-control-layer.d.ts +0 -53
- package/dist/types/version-control-layer.d.ts.map +0 -1
- package/dist/types/version-control-layer.js +0 -2
- package/dist/types/version-control-layer.js.map +0 -1
- package/dist/types/workspace-boundaries.d.ts +0 -17
- package/dist/types/workspace-boundaries.d.ts.map +0 -1
- package/dist/types/workspace-boundaries.js +0 -6
- package/dist/types/workspace-boundaries.js.map +0 -1
|
@@ -1,375 +0,0 @@
|
|
|
1
|
-
import ignore from 'ignore';
|
|
2
|
-
// Path utilities that work in both Node and browser environments
|
|
3
|
-
const path = {
|
|
4
|
-
join: (...parts) => {
|
|
5
|
-
const joined = parts.filter(p => p).join('/');
|
|
6
|
-
return joined.replace(/\/+/g, '/');
|
|
7
|
-
},
|
|
8
|
-
dirname: (p) => {
|
|
9
|
-
const parts = p.split('/');
|
|
10
|
-
parts.pop();
|
|
11
|
-
return parts.join('/') || '/';
|
|
12
|
-
},
|
|
13
|
-
relative: (from, to) => {
|
|
14
|
-
if (!from || from === '.')
|
|
15
|
-
return to;
|
|
16
|
-
if (to.startsWith(from + '/'))
|
|
17
|
-
return to.slice(from.length + 1);
|
|
18
|
-
if (to === from)
|
|
19
|
-
return '.';
|
|
20
|
-
return to;
|
|
21
|
-
},
|
|
22
|
-
basename: (p) => {
|
|
23
|
-
const parts = p.split('/');
|
|
24
|
-
return parts[parts.length - 1] || '';
|
|
25
|
-
},
|
|
26
|
-
};
|
|
27
|
-
/**
|
|
28
|
-
* Git implementation of VersionControlProvider for core library
|
|
29
|
-
* Handles .gitignore parsing and Git-specific operations
|
|
30
|
-
*/
|
|
31
|
-
export class GitVersionControlProvider {
|
|
32
|
-
fileSystemAdapter;
|
|
33
|
-
gitAdapter;
|
|
34
|
-
constructor(fileSystemAdapter, gitAdapter) {
|
|
35
|
-
this.fileSystemAdapter = fileSystemAdapter;
|
|
36
|
-
this.gitAdapter = gitAdapter;
|
|
37
|
-
}
|
|
38
|
-
async detect(directoryPath) {
|
|
39
|
-
// Check if .git directory exists
|
|
40
|
-
let currentPath = directoryPath;
|
|
41
|
-
while (currentPath && currentPath !== '/' && currentPath !== '.') {
|
|
42
|
-
const gitPath = path.join(currentPath, '.git');
|
|
43
|
-
// Try using isDirectory if available, otherwise check for .git/HEAD file
|
|
44
|
-
if (this.fileSystemAdapter.isDirectory) {
|
|
45
|
-
if (await this.fileSystemAdapter.isDirectory(gitPath)) {
|
|
46
|
-
return true;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
else if (this.fileSystemAdapter.fileExists) {
|
|
50
|
-
// Fallback: check for .git/HEAD file
|
|
51
|
-
const headPath = path.join(gitPath, 'HEAD');
|
|
52
|
-
if (await this.fileSystemAdapter.fileExists(headPath)) {
|
|
53
|
-
return true;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
// Move up one directory
|
|
57
|
-
const parent = path.dirname(currentPath);
|
|
58
|
-
if (parent === currentPath)
|
|
59
|
-
break; // Reached root
|
|
60
|
-
currentPath = parent;
|
|
61
|
-
}
|
|
62
|
-
return false;
|
|
63
|
-
}
|
|
64
|
-
async getRepositoryRoot(directoryPath) {
|
|
65
|
-
let currentPath = directoryPath;
|
|
66
|
-
while (currentPath && currentPath !== '/' && currentPath !== '.') {
|
|
67
|
-
const gitPath = path.join(currentPath, '.git');
|
|
68
|
-
// Check using same logic as detect
|
|
69
|
-
let isGitRepo = false;
|
|
70
|
-
if (this.fileSystemAdapter.isDirectory) {
|
|
71
|
-
isGitRepo = await this.fileSystemAdapter.isDirectory(gitPath);
|
|
72
|
-
}
|
|
73
|
-
else if (this.fileSystemAdapter.fileExists) {
|
|
74
|
-
const headPath = path.join(gitPath, 'HEAD');
|
|
75
|
-
isGitRepo = await this.fileSystemAdapter.fileExists(headPath);
|
|
76
|
-
}
|
|
77
|
-
if (isGitRepo) {
|
|
78
|
-
return currentPath;
|
|
79
|
-
}
|
|
80
|
-
// Move up one directory
|
|
81
|
-
const parent = path.dirname(currentPath);
|
|
82
|
-
if (parent === currentPath)
|
|
83
|
-
break; // Reached root
|
|
84
|
-
currentPath = parent;
|
|
85
|
-
}
|
|
86
|
-
return null;
|
|
87
|
-
}
|
|
88
|
-
async createLayer(repositoryRoot) {
|
|
89
|
-
// PERFORMANCE OPTIMIZATION: Return minimal git metadata since buildFilteredFileTree
|
|
90
|
-
// now handles all filtering. This avoids expensive file reads for .git/HEAD, .git/config, etc.
|
|
91
|
-
const ignorePatterns = await this.extractIgnorePatterns(repositoryRoot);
|
|
92
|
-
// Return default values instead of reading git files
|
|
93
|
-
const currentBranch = 'main'; // Default branch name
|
|
94
|
-
const currentRevision = 'unknown'; // Skip expensive git file reads
|
|
95
|
-
const remotes = []; // Empty remotes
|
|
96
|
-
return {
|
|
97
|
-
id: `vcs-git-${repositoryRoot.replace(/[^a-zA-Z0-9]/g, '-')}`,
|
|
98
|
-
name: 'Git Version Control',
|
|
99
|
-
type: 'version-control',
|
|
100
|
-
enabled: true,
|
|
101
|
-
workspaceRoot: repositoryRoot,
|
|
102
|
-
vcsData: {
|
|
103
|
-
system: 'git',
|
|
104
|
-
repositoryRoot,
|
|
105
|
-
currentBranch: currentBranch || 'unknown',
|
|
106
|
-
currentRevision: currentRevision || 'unknown',
|
|
107
|
-
remotes: remotes || [],
|
|
108
|
-
ignorePatterns,
|
|
109
|
-
},
|
|
110
|
-
derivedFrom: {
|
|
111
|
-
fileSets: [
|
|
112
|
-
{
|
|
113
|
-
id: 'git-files',
|
|
114
|
-
name: '.git directory and .gitignore files',
|
|
115
|
-
patterns: [
|
|
116
|
-
{ type: 'glob', pattern: '.git/**' },
|
|
117
|
-
{ type: 'glob', pattern: '**/.gitignore' },
|
|
118
|
-
],
|
|
119
|
-
},
|
|
120
|
-
],
|
|
121
|
-
derivationType: 'content',
|
|
122
|
-
description: 'Git version control metadata and ignore patterns',
|
|
123
|
-
},
|
|
124
|
-
};
|
|
125
|
-
}
|
|
126
|
-
/**
|
|
127
|
-
* Extract all .gitignore patterns from the repository
|
|
128
|
-
*/
|
|
129
|
-
async extractIgnorePatterns(repositoryRoot) {
|
|
130
|
-
const patterns = [];
|
|
131
|
-
// Always add .git directory as ignored
|
|
132
|
-
patterns.push({
|
|
133
|
-
pattern: '.git',
|
|
134
|
-
type: 'exact',
|
|
135
|
-
source: 'implicit',
|
|
136
|
-
scope: 'repository',
|
|
137
|
-
negated: false,
|
|
138
|
-
description: 'Git metadata directory',
|
|
139
|
-
});
|
|
140
|
-
// Parse root .gitignore
|
|
141
|
-
const rootGitignorePath = path.join(repositoryRoot, '.gitignore');
|
|
142
|
-
const rootPatterns = await this.parseGitignoreFile(rootGitignorePath, repositoryRoot);
|
|
143
|
-
patterns.push(...rootPatterns);
|
|
144
|
-
// Find and parse subdirectory .gitignore files
|
|
145
|
-
if (this.fileSystemAdapter.readDirectory) {
|
|
146
|
-
const subdirPatterns = await this.findAndParseGitignoreFiles(repositoryRoot, repositoryRoot);
|
|
147
|
-
patterns.push(...subdirPatterns);
|
|
148
|
-
}
|
|
149
|
-
return patterns;
|
|
150
|
-
}
|
|
151
|
-
/**
|
|
152
|
-
* Recursively find and parse .gitignore files
|
|
153
|
-
*/
|
|
154
|
-
async findAndParseGitignoreFiles(currentPath, repositoryRoot) {
|
|
155
|
-
const patterns = [];
|
|
156
|
-
if (!this.fileSystemAdapter.readDirectory) {
|
|
157
|
-
return patterns;
|
|
158
|
-
}
|
|
159
|
-
try {
|
|
160
|
-
const entries = await this.fileSystemAdapter.readDirectory(currentPath);
|
|
161
|
-
for (const entry of entries) {
|
|
162
|
-
const fullPath = path.join(currentPath, entry);
|
|
163
|
-
// Skip .git directory
|
|
164
|
-
if (entry === '.git')
|
|
165
|
-
continue;
|
|
166
|
-
// Check for .gitignore file
|
|
167
|
-
if (entry === '.gitignore' && currentPath !== repositoryRoot) {
|
|
168
|
-
const gitignorePatterns = await this.parseGitignoreFile(fullPath, repositoryRoot);
|
|
169
|
-
patterns.push(...gitignorePatterns);
|
|
170
|
-
}
|
|
171
|
-
// Recursively check subdirectories
|
|
172
|
-
if (this.fileSystemAdapter.isDirectory &&
|
|
173
|
-
(await this.fileSystemAdapter.isDirectory(fullPath))) {
|
|
174
|
-
const subdirPatterns = await this.findAndParseGitignoreFiles(fullPath, repositoryRoot);
|
|
175
|
-
patterns.push(...subdirPatterns);
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
catch (error) {
|
|
180
|
-
console.warn(`Error reading directory ${currentPath}:`, error);
|
|
181
|
-
}
|
|
182
|
-
return patterns;
|
|
183
|
-
}
|
|
184
|
-
/**
|
|
185
|
-
* Parse a .gitignore file and return patterns using the ignore library
|
|
186
|
-
*/
|
|
187
|
-
async parseGitignoreFile(gitignorePath, repositoryRoot) {
|
|
188
|
-
const patterns = [];
|
|
189
|
-
try {
|
|
190
|
-
const result = await this.fileSystemAdapter.readFile(gitignorePath);
|
|
191
|
-
if (!result)
|
|
192
|
-
return patterns;
|
|
193
|
-
const content = result.content;
|
|
194
|
-
const lines = content.split('\n');
|
|
195
|
-
const relativePath = path.relative(repositoryRoot, path.dirname(gitignorePath));
|
|
196
|
-
// For root gitignore, use "./" prefix to show it's in the current directory
|
|
197
|
-
const source = relativePath === '.' ? './.gitignore' : `${relativePath}/.gitignore`;
|
|
198
|
-
// Use ignore library to validate patterns as we process them
|
|
199
|
-
const ig = ignore();
|
|
200
|
-
for (const line of lines) {
|
|
201
|
-
const trimmed = line.trim();
|
|
202
|
-
// Skip empty lines and comments
|
|
203
|
-
if (!trimmed || trimmed.startsWith('#'))
|
|
204
|
-
continue;
|
|
205
|
-
// Handle negation patterns
|
|
206
|
-
const negated = trimmed.startsWith('!');
|
|
207
|
-
const pattern = negated ? trimmed.slice(1) : trimmed;
|
|
208
|
-
// Validate pattern using ignore library
|
|
209
|
-
try {
|
|
210
|
-
// Test if the pattern is valid by trying to add it to ignore
|
|
211
|
-
const testIgnore = ignore();
|
|
212
|
-
testIgnore.add([trimmed]); // Add the original line (with ! if present)
|
|
213
|
-
// Determine pattern type based on content
|
|
214
|
-
const hasGlobChars = /[*?[\]]/.test(pattern);
|
|
215
|
-
const hasSlash = pattern.includes('/');
|
|
216
|
-
const patternType = hasGlobChars || hasSlash ? 'glob' : 'exact';
|
|
217
|
-
// Determine scope
|
|
218
|
-
const scope = source === '.gitignore' ? 'repository' : 'directory';
|
|
219
|
-
patterns.push({
|
|
220
|
-
pattern: pattern,
|
|
221
|
-
type: patternType,
|
|
222
|
-
source,
|
|
223
|
-
scope,
|
|
224
|
-
negated,
|
|
225
|
-
description: `From ${source}`,
|
|
226
|
-
});
|
|
227
|
-
// Add valid patterns to our ignore instance for potential future use
|
|
228
|
-
ig.add([trimmed]);
|
|
229
|
-
}
|
|
230
|
-
catch (err) {
|
|
231
|
-
console.warn(`Invalid gitignore pattern: ${trimmed} in ${source}`, err);
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
catch (error) {
|
|
236
|
-
console.warn(`Error reading gitignore file ${gitignorePath}:`, error);
|
|
237
|
-
}
|
|
238
|
-
return patterns;
|
|
239
|
-
}
|
|
240
|
-
/**
|
|
241
|
-
* Create an ignore instance from patterns for efficient filtering
|
|
242
|
-
* This can be used by FilesystemService or other components
|
|
243
|
-
*/
|
|
244
|
-
createIgnoreFromPatterns(patterns) {
|
|
245
|
-
const ig = ignore();
|
|
246
|
-
// Convert patterns back to gitignore format
|
|
247
|
-
const gitignoreLines = patterns.map(p => (p.negated ? `!${p.pattern}` : p.pattern));
|
|
248
|
-
if (gitignoreLines.length > 0) {
|
|
249
|
-
ig.add(gitignoreLines);
|
|
250
|
-
}
|
|
251
|
-
return ig;
|
|
252
|
-
}
|
|
253
|
-
/**
|
|
254
|
-
* Get current branch name
|
|
255
|
-
*/
|
|
256
|
-
async getCurrentBranch(repositoryRoot) {
|
|
257
|
-
// First try using GitAdapter if available
|
|
258
|
-
if (this.gitAdapter?.getCurrentBranch) {
|
|
259
|
-
try {
|
|
260
|
-
return await this.gitAdapter.getCurrentBranch(repositoryRoot);
|
|
261
|
-
}
|
|
262
|
-
catch (error) {
|
|
263
|
-
console.warn('Error getting branch via GitAdapter:', error);
|
|
264
|
-
}
|
|
265
|
-
}
|
|
266
|
-
// Fallback to reading .git/HEAD file
|
|
267
|
-
try {
|
|
268
|
-
const headPath = path.join(repositoryRoot, '.git', 'HEAD');
|
|
269
|
-
const result = await this.fileSystemAdapter.readFile(headPath);
|
|
270
|
-
if (!result)
|
|
271
|
-
return null;
|
|
272
|
-
const content = result.content.trim();
|
|
273
|
-
if (content.startsWith('ref: refs/heads/')) {
|
|
274
|
-
return content.replace('ref: refs/heads/', '');
|
|
275
|
-
}
|
|
276
|
-
// Detached HEAD state
|
|
277
|
-
return 'HEAD';
|
|
278
|
-
}
|
|
279
|
-
catch (error) {
|
|
280
|
-
console.warn('Error reading .git/HEAD:', error);
|
|
281
|
-
return null;
|
|
282
|
-
}
|
|
283
|
-
}
|
|
284
|
-
/**
|
|
285
|
-
* Get current commit SHA
|
|
286
|
-
*/
|
|
287
|
-
async getCurrentRevision(repositoryRoot) {
|
|
288
|
-
// First try using GitAdapter if available
|
|
289
|
-
if (this.gitAdapter?.getCurrentCommit) {
|
|
290
|
-
try {
|
|
291
|
-
return await this.gitAdapter.getCurrentCommit(repositoryRoot);
|
|
292
|
-
}
|
|
293
|
-
catch (error) {
|
|
294
|
-
console.warn('Error getting commit via GitAdapter:', error);
|
|
295
|
-
}
|
|
296
|
-
}
|
|
297
|
-
// Fallback to reading from .git files
|
|
298
|
-
try {
|
|
299
|
-
const headPath = path.join(repositoryRoot, '.git', 'HEAD');
|
|
300
|
-
const headResult = await this.fileSystemAdapter.readFile(headPath);
|
|
301
|
-
if (!headResult)
|
|
302
|
-
return null;
|
|
303
|
-
const headContent = headResult.content.trim();
|
|
304
|
-
// If HEAD points to a ref, read that ref
|
|
305
|
-
if (headContent.startsWith('ref: ')) {
|
|
306
|
-
const ref = headContent.replace('ref: ', '');
|
|
307
|
-
const refPath = path.join(repositoryRoot, '.git', ref);
|
|
308
|
-
const refResult = await this.fileSystemAdapter.readFile(refPath);
|
|
309
|
-
if (refResult) {
|
|
310
|
-
return refResult.content.trim().substring(0, 7); // Short SHA
|
|
311
|
-
}
|
|
312
|
-
}
|
|
313
|
-
else {
|
|
314
|
-
// Direct commit SHA in HEAD (detached state)
|
|
315
|
-
return headContent.substring(0, 7);
|
|
316
|
-
}
|
|
317
|
-
}
|
|
318
|
-
catch (error) {
|
|
319
|
-
console.warn('Error reading git revision:', error);
|
|
320
|
-
}
|
|
321
|
-
return null;
|
|
322
|
-
}
|
|
323
|
-
/**
|
|
324
|
-
* Get remote repositories
|
|
325
|
-
*/
|
|
326
|
-
async getRemotes(repositoryRoot) {
|
|
327
|
-
// First try using GitAdapter if available
|
|
328
|
-
if (this.gitAdapter?.getRemotes) {
|
|
329
|
-
try {
|
|
330
|
-
const remotes = await this.gitAdapter.getRemotes(repositoryRoot);
|
|
331
|
-
// Ensure all remotes have a type, default to 'both' if not specified
|
|
332
|
-
return remotes.map(remote => ({
|
|
333
|
-
name: remote.name,
|
|
334
|
-
url: remote.url,
|
|
335
|
-
type: remote.type || 'both',
|
|
336
|
-
}));
|
|
337
|
-
}
|
|
338
|
-
catch (error) {
|
|
339
|
-
console.warn('Error getting remotes via GitAdapter:', error);
|
|
340
|
-
}
|
|
341
|
-
}
|
|
342
|
-
// Fallback to reading .git/config file
|
|
343
|
-
try {
|
|
344
|
-
const configPath = path.join(repositoryRoot, '.git', 'config');
|
|
345
|
-
const result = await this.fileSystemAdapter.readFile(configPath);
|
|
346
|
-
if (!result)
|
|
347
|
-
return [];
|
|
348
|
-
const remotes = [];
|
|
349
|
-
const lines = result.content.split('\n');
|
|
350
|
-
let currentRemote = null;
|
|
351
|
-
for (const line of lines) {
|
|
352
|
-
const trimmed = line.trim();
|
|
353
|
-
// Check for remote section
|
|
354
|
-
const remoteMatch = trimmed.match(/^\[remote "(.+)"\]$/);
|
|
355
|
-
if (remoteMatch) {
|
|
356
|
-
currentRemote = remoteMatch[1];
|
|
357
|
-
continue;
|
|
358
|
-
}
|
|
359
|
-
// Extract URL for current remote
|
|
360
|
-
if (currentRemote && trimmed.startsWith('url = ')) {
|
|
361
|
-
const url = trimmed.replace('url = ', '');
|
|
362
|
-
// Git remotes are typically used for both fetch and push unless specified otherwise
|
|
363
|
-
remotes.push({ name: currentRemote, url, type: 'both' });
|
|
364
|
-
currentRemote = null;
|
|
365
|
-
}
|
|
366
|
-
}
|
|
367
|
-
return remotes;
|
|
368
|
-
}
|
|
369
|
-
catch (error) {
|
|
370
|
-
console.warn('Error reading .git/config:', error);
|
|
371
|
-
return [];
|
|
372
|
-
}
|
|
373
|
-
}
|
|
374
|
-
}
|
|
375
|
-
//# sourceMappingURL=GitVersionControlProvider.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"GitVersionControlProvider.js","sourceRoot":"","sources":["../../src/providers/GitVersionControlProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Package management API provider for checking versions, vulnerabilities, and licenses
|
|
3
|
-
*/
|
|
4
|
-
export type PackageManager = 'npm' | 'pnpm' | 'yarn';
|
|
5
|
-
export interface PackageVersionInfo {
|
|
6
|
-
name: string;
|
|
7
|
-
currentVersion: string;
|
|
8
|
-
}
|
|
9
|
-
export interface VersionCheckResult {
|
|
10
|
-
packageName: string;
|
|
11
|
-
currentVersion: string;
|
|
12
|
-
latestVersion?: string;
|
|
13
|
-
updateType?: 'major' | 'minor' | 'patch' | 'none';
|
|
14
|
-
isOutdated: boolean;
|
|
15
|
-
isDeprecated?: boolean;
|
|
16
|
-
deprecationMessage?: string;
|
|
17
|
-
error?: string;
|
|
18
|
-
}
|
|
19
|
-
export interface VulnerabilityInfo {
|
|
20
|
-
id: string;
|
|
21
|
-
severity: 'low' | 'moderate' | 'high' | 'critical';
|
|
22
|
-
title: string;
|
|
23
|
-
description?: string;
|
|
24
|
-
fixAvailable?: boolean;
|
|
25
|
-
}
|
|
26
|
-
export interface VulnerabilityCheckResult {
|
|
27
|
-
packageName: string;
|
|
28
|
-
version: string;
|
|
29
|
-
vulnerabilities: VulnerabilityInfo[];
|
|
30
|
-
error?: string;
|
|
31
|
-
}
|
|
32
|
-
export interface LicenseInfo {
|
|
33
|
-
license: string;
|
|
34
|
-
licenseType: 'permissive' | 'copyleft' | 'proprietary' | 'unknown';
|
|
35
|
-
requiresAttribution: boolean;
|
|
36
|
-
requiresShareAlike: boolean;
|
|
37
|
-
allowsCommercialUse: boolean;
|
|
38
|
-
}
|
|
39
|
-
export interface LicenseCheckResult {
|
|
40
|
-
packageName: string;
|
|
41
|
-
version: string;
|
|
42
|
-
license?: LicenseInfo;
|
|
43
|
-
error?: string;
|
|
44
|
-
}
|
|
45
|
-
export interface DependencyCheckProgress {
|
|
46
|
-
phase: 'idle' | 'counting' | 'checking-versions' | 'checking-vulnerabilities' | 'checking-licenses' | 'complete';
|
|
47
|
-
current: number;
|
|
48
|
-
total: number;
|
|
49
|
-
message?: string;
|
|
50
|
-
}
|
|
51
|
-
export interface BatchCheckOptions {
|
|
52
|
-
batchSize?: number;
|
|
53
|
-
maxConcurrent?: number;
|
|
54
|
-
skipCache?: boolean;
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* Abstract provider for package manager API operations
|
|
58
|
-
* Implementations can use direct API calls, server proxies, or mock data
|
|
59
|
-
*/
|
|
60
|
-
export declare abstract class PackageManagerApiProvider {
|
|
61
|
-
/**
|
|
62
|
-
* Check versions for multiple packages, yielding results as they complete
|
|
63
|
-
*/
|
|
64
|
-
abstract checkVersions(packages: PackageVersionInfo[], packageManager: PackageManager, options?: BatchCheckOptions): AsyncGenerator<VersionCheckResult, void, unknown>;
|
|
65
|
-
/**
|
|
66
|
-
* Check vulnerabilities for multiple packages, yielding results as they complete
|
|
67
|
-
*/
|
|
68
|
-
abstract checkVulnerabilities(packages: PackageVersionInfo[], packageManager: PackageManager, options?: BatchCheckOptions): AsyncGenerator<VulnerabilityCheckResult, void, unknown>;
|
|
69
|
-
/**
|
|
70
|
-
* Check licenses for multiple packages, yielding results as they complete
|
|
71
|
-
*/
|
|
72
|
-
abstract checkLicenses(packages: PackageVersionInfo[], packageManager: PackageManager, options?: BatchCheckOptions): AsyncGenerator<LicenseCheckResult, void, unknown>;
|
|
73
|
-
/**
|
|
74
|
-
* Get overall progress of the current check operation
|
|
75
|
-
*/
|
|
76
|
-
abstract getProgress(): DependencyCheckProgress;
|
|
77
|
-
}
|
|
78
|
-
//# sourceMappingURL=PackageManagerApiProvider.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PackageManagerApiProvider.d.ts","sourceRoot":"","sources":["../../src/providers/PackageManagerApiProvider.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;AAErD,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,CAAC;IAClD,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,KAAK,GAAG,UAAU,GAAG,MAAM,GAAG,UAAU,CAAC;IACnD,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,wBAAwB;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,iBAAiB,EAAE,CAAC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,YAAY,GAAG,UAAU,GAAG,aAAa,GAAG,SAAS,CAAC;IACnE,mBAAmB,EAAE,OAAO,CAAC;IAC7B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,mBAAmB,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,uBAAuB;IACtC,KAAK,EACD,MAAM,GACN,UAAU,GACV,mBAAmB,GACnB,0BAA0B,GAC1B,mBAAmB,GACnB,UAAU,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;GAGG;AACH,8BAAsB,yBAAyB;IAC7C;;OAEG;IACH,QAAQ,CAAC,aAAa,CACpB,QAAQ,EAAE,kBAAkB,EAAE,EAC9B,cAAc,EAAE,cAAc,EAC9B,OAAO,CAAC,EAAE,iBAAiB,GAC1B,cAAc,CAAC,kBAAkB,EAAE,IAAI,EAAE,OAAO,CAAC;IAEpD;;OAEG;IACH,QAAQ,CAAC,oBAAoB,CAC3B,QAAQ,EAAE,kBAAkB,EAAE,EAC9B,cAAc,EAAE,cAAc,EAC9B,OAAO,CAAC,EAAE,iBAAiB,GAC1B,cAAc,CAAC,wBAAwB,EAAE,IAAI,EAAE,OAAO,CAAC;IAE1D;;OAEG;IACH,QAAQ,CAAC,aAAa,CACpB,QAAQ,EAAE,kBAAkB,EAAE,EAC9B,cAAc,EAAE,cAAc,EAC9B,OAAO,CAAC,EAAE,iBAAiB,GAC1B,cAAc,CAAC,kBAAkB,EAAE,IAAI,EAAE,OAAO,CAAC;IAEpD;;OAEG;IACH,QAAQ,CAAC,WAAW,IAAI,uBAAuB;CAChD"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Package management API provider for checking versions, vulnerabilities, and licenses
|
|
3
|
-
*/
|
|
4
|
-
/**
|
|
5
|
-
* Abstract provider for package manager API operations
|
|
6
|
-
* Implementations can use direct API calls, server proxies, or mock data
|
|
7
|
-
*/
|
|
8
|
-
export class PackageManagerApiProvider {
|
|
9
|
-
}
|
|
10
|
-
//# sourceMappingURL=PackageManagerApiProvider.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PackageManagerApiProvider.js","sourceRoot":"","sources":["../../src/providers/PackageManagerApiProvider.ts"],"names":[],"mappings":"AAAA;;GAEG;AAqEH;;;GAGG;AACH,MAAM,OAAgB,yBAAyB;CAgC9C"}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
export { GitVersionControlProvider } from './GitVersionControlProvider';
|
|
2
|
-
export type { FileSystemAdapter, GitAdapter, ShellAdapter } from './GitVersionControlProvider';
|
|
3
|
-
export { PackageManagerApiProvider, type PackageManager, type PackageVersionInfo, type VersionCheckResult, type VulnerabilityInfo, type VulnerabilityCheckResult, type LicenseInfo, type LicenseCheckResult, type DependencyCheckProgress, type BatchCheckOptions, } from './PackageManagerApiProvider';
|
|
4
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,YAAY,EAAE,iBAAiB,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAG/F,OAAO,EACL,yBAAyB,EACzB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,wBAAwB,EAC7B,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,iBAAiB,GACvB,MAAM,6BAA6B,CAAC"}
|
package/dist/providers/index.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAGxE,+BAA+B;AAC/B,OAAO,EACL,yBAAyB,GAU1B,MAAM,6BAA6B,CAAC"}
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import { FileTree } from '@principal-ai/repository-abstraction';
|
|
2
|
-
import { FileSystemAdapter } from '../providers';
|
|
3
|
-
import { FileSystemFilterLayer } from '../types';
|
|
4
|
-
interface FilterStats {
|
|
5
|
-
totalFiltered: number;
|
|
6
|
-
filteredByLayer: Record<string, number>;
|
|
7
|
-
examples: Array<{
|
|
8
|
-
path: string;
|
|
9
|
-
filteredBy: string;
|
|
10
|
-
}>;
|
|
11
|
-
filteredByDirectory: Record<string, {
|
|
12
|
-
count: number;
|
|
13
|
-
reasons: Set<string>;
|
|
14
|
-
}>;
|
|
15
|
-
}
|
|
16
|
-
export declare class FilesystemService {
|
|
17
|
-
private adapter?;
|
|
18
|
-
private filterStats;
|
|
19
|
-
constructor(adapter?: FileSystemAdapter | undefined);
|
|
20
|
-
/**
|
|
21
|
-
* Build file tree using the provided adapter with efficient filtering
|
|
22
|
-
*/
|
|
23
|
-
buildFileSystemTreeFromPath(directoryPath: string, filters?: FileSystemFilterLayer[], options?: {
|
|
24
|
-
enableInverseFiltering?: boolean;
|
|
25
|
-
} | object): Promise<FileTree & {
|
|
26
|
-
filterStats?: FilterStats;
|
|
27
|
-
appliedFilters?: FileSystemFilterLayer[];
|
|
28
|
-
inverseMatches?: Array<{
|
|
29
|
-
path: string;
|
|
30
|
-
matchedFilters: string[];
|
|
31
|
-
}>;
|
|
32
|
-
}>;
|
|
33
|
-
/**
|
|
34
|
-
* Create optimized ignore instances from filter layers
|
|
35
|
-
*/
|
|
36
|
-
private createIgnoreInstances;
|
|
37
|
-
/**
|
|
38
|
-
* Fast filtering using node-ignore during fdir crawl
|
|
39
|
-
*/
|
|
40
|
-
private shouldIncludeFile;
|
|
41
|
-
/**
|
|
42
|
-
* Convert array of paths to FileTree structure
|
|
43
|
-
*/
|
|
44
|
-
private convertPathsToTree;
|
|
45
|
-
/**
|
|
46
|
-
* Find files that would match specific filters - for power user investigation
|
|
47
|
-
*/
|
|
48
|
-
private findInverseMatches;
|
|
49
|
-
/**
|
|
50
|
-
* Get the filter statistics from the last build
|
|
51
|
-
*/
|
|
52
|
-
getFilterStats(): FilterStats;
|
|
53
|
-
/**
|
|
54
|
-
* Create an empty tree structure - matches original FilesystemService API
|
|
55
|
-
*/
|
|
56
|
-
private getEmptyTree;
|
|
57
|
-
}
|
|
58
|
-
export {};
|
|
59
|
-
//# sourceMappingURL=FilesystemService.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FilesystemService.d.ts","sourceRoot":"","sources":["../../src/services/FilesystemService.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAA2B,MAAM,sCAAsC,CAAC;AACzF,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AA+BjD,UAAU,WAAW;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,QAAQ,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACtD,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;KAAE,CAAC,CAAC;CAC9E;AAED,qBAAa,iBAAiB;IAQhB,OAAO,CAAC,OAAO,CAAC;IAP5B,OAAO,CAAC,WAAW,CAKjB;gBAEkB,OAAO,CAAC,EAAE,iBAAiB,YAAA;IAE/C;;OAEG;IACG,2BAA2B,CAC/B,aAAa,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE,qBAAqB,EAAE,EACjC,OAAO,CAAC,EAAE;QAAE,sBAAsB,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,MAAM,GACtD,OAAO,CACR,QAAQ,GAAG;QACT,WAAW,CAAC,EAAE,WAAW,CAAC;QAC1B,cAAc,CAAC,EAAE,qBAAqB,EAAE,CAAC;QACzC,cAAc,CAAC,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,cAAc,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC,CAAC;KACpE,CACF;IA6JD;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAwC7B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAsDzB;;OAEG;YACW,kBAAkB;IA6FhC;;OAEG;YACW,kBAAkB;IAsEhC;;OAEG;IACH,cAAc,IAAI,WAAW;IAI7B;;OAEG;IACH,OAAO,CAAC,YAAY;CAqCrB"}
|