@principal-ai/codebase-composition 0.2.10 → 0.2.12

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 (109) hide show
  1. package/dist/adapters/NodeFileSystemAdapter.d.ts +28 -0
  2. package/dist/adapters/NodeFileSystemAdapter.d.ts.map +1 -0
  3. package/dist/adapters/NodeFileSystemAdapter.js +128 -0
  4. package/dist/adapters/NodeFileSystemAdapter.js.map +1 -0
  5. package/dist/helpers/QualityMetricsCalculator.d.ts +51 -0
  6. package/dist/helpers/QualityMetricsCalculator.d.ts.map +1 -0
  7. package/dist/helpers/QualityMetricsCalculator.js +200 -0
  8. package/dist/helpers/QualityMetricsCalculator.js.map +1 -0
  9. package/dist/helpers/packageLayerHelpers.d.ts +30 -0
  10. package/dist/helpers/packageLayerHelpers.d.ts.map +1 -0
  11. package/dist/helpers/packageLayerHelpers.js +88 -0
  12. package/dist/helpers/packageLayerHelpers.js.map +1 -0
  13. package/dist/index.d.ts +11 -0
  14. package/dist/index.d.ts.map +1 -0
  15. package/dist/index.js +14 -0
  16. package/dist/index.js.map +1 -0
  17. package/dist/modules/DependencyLayerModule.d.ts +44 -0
  18. package/dist/modules/DependencyLayerModule.d.ts.map +1 -0
  19. package/dist/modules/DependencyLayerModule.js +282 -0
  20. package/dist/modules/DependencyLayerModule.js.map +1 -0
  21. package/dist/modules/FileSystemModule.d.ts +30 -0
  22. package/dist/modules/FileSystemModule.d.ts.map +1 -0
  23. package/dist/modules/FileSystemModule.js +43 -0
  24. package/dist/modules/FileSystemModule.js.map +1 -0
  25. package/dist/modules/FileTypeLayerModule.d.ts +34 -0
  26. package/dist/modules/FileTypeLayerModule.d.ts.map +1 -0
  27. package/dist/modules/FileTypeLayerModule.js +165 -0
  28. package/dist/modules/FileTypeLayerModule.js.map +1 -0
  29. package/dist/modules/FrameworkLayerModule.d.ts +22 -0
  30. package/dist/modules/FrameworkLayerModule.d.ts.map +1 -0
  31. package/dist/modules/FrameworkLayerModule.js +384 -0
  32. package/dist/modules/FrameworkLayerModule.js.map +1 -0
  33. package/dist/modules/PackageLayerModule.d.ts +23 -0
  34. package/dist/modules/PackageLayerModule.d.ts.map +1 -0
  35. package/dist/modules/PackageLayerModule.js +866 -0
  36. package/dist/modules/PackageLayerModule.js.map +1 -0
  37. package/dist/modules/TypeExtractionModule.d.ts +37 -0
  38. package/dist/modules/TypeExtractionModule.d.ts.map +1 -0
  39. package/dist/modules/TypeExtractionModule.js +141 -0
  40. package/dist/modules/TypeExtractionModule.js.map +1 -0
  41. package/dist/modules/VersionControlLayerModule.d.ts +10 -0
  42. package/dist/modules/VersionControlLayerModule.d.ts.map +1 -0
  43. package/dist/modules/VersionControlLayerModule.js +26 -0
  44. package/dist/modules/VersionControlLayerModule.js.map +1 -0
  45. package/dist/modules/__fixtures__/typescript-packages/complex-types/src/index.d.ts +4 -0
  46. package/dist/modules/__fixtures__/typescript-packages/complex-types/src/index.d.ts.map +1 -0
  47. package/dist/modules/__fixtures__/typescript-packages/complex-types/src/index.js +3 -0
  48. package/dist/modules/__fixtures__/typescript-packages/complex-types/src/index.js.map +1 -0
  49. package/dist/modules/__fixtures__/typescript-packages/complex-types/src/models/category.d.ts +15 -0
  50. package/dist/modules/__fixtures__/typescript-packages/complex-types/src/models/category.d.ts.map +1 -0
  51. package/dist/modules/__fixtures__/typescript-packages/complex-types/src/models/category.js +2 -0
  52. package/dist/modules/__fixtures__/typescript-packages/complex-types/src/models/category.js.map +1 -0
  53. package/dist/modules/__fixtures__/typescript-packages/complex-types/src/models/product.d.ts +34 -0
  54. package/dist/modules/__fixtures__/typescript-packages/complex-types/src/models/product.d.ts.map +1 -0
  55. package/dist/modules/__fixtures__/typescript-packages/complex-types/src/models/product.js +19 -0
  56. package/dist/modules/__fixtures__/typescript-packages/complex-types/src/models/product.js.map +1 -0
  57. package/dist/modules/__fixtures__/typescript-packages/simple-types/index.d.ts +39 -0
  58. package/dist/modules/__fixtures__/typescript-packages/simple-types/index.d.ts.map +1 -0
  59. package/dist/modules/__fixtures__/typescript-packages/simple-types/index.js +36 -0
  60. package/dist/modules/__fixtures__/typescript-packages/simple-types/index.js.map +1 -0
  61. package/dist/modules/extractors/TypeScriptExtractor.d.ts +18 -0
  62. package/dist/modules/extractors/TypeScriptExtractor.d.ts.map +1 -0
  63. package/dist/modules/extractors/TypeScriptExtractor.js +322 -0
  64. package/dist/modules/extractors/TypeScriptExtractor.js.map +1 -0
  65. package/dist/modules/index.d.ts +13 -0
  66. package/dist/modules/index.d.ts.map +1 -0
  67. package/dist/modules/index.js +10 -0
  68. package/dist/modules/index.js.map +1 -0
  69. package/dist/providers/GitVersionControlProvider.d.ts +108 -0
  70. package/dist/providers/GitVersionControlProvider.d.ts.map +1 -0
  71. package/dist/providers/GitVersionControlProvider.js +375 -0
  72. package/dist/providers/GitVersionControlProvider.js.map +1 -0
  73. package/dist/providers/PackageManagerApiProvider.d.ts +78 -0
  74. package/dist/providers/PackageManagerApiProvider.d.ts.map +1 -0
  75. package/dist/providers/PackageManagerApiProvider.js +10 -0
  76. package/dist/providers/PackageManagerApiProvider.js.map +1 -0
  77. package/dist/providers/index.d.ts +4 -0
  78. package/dist/providers/index.d.ts.map +1 -0
  79. package/dist/providers/index.js +5 -0
  80. package/dist/providers/index.js.map +1 -0
  81. package/dist/services/FilesystemService.d.ts +59 -0
  82. package/dist/services/FilesystemService.d.ts.map +1 -0
  83. package/dist/services/FilesystemService.js +394 -0
  84. package/dist/services/FilesystemService.js.map +1 -0
  85. package/dist/services/index.d.ts +2 -0
  86. package/dist/services/index.d.ts.map +1 -0
  87. package/dist/services/index.js +3 -0
  88. package/dist/services/index.js.map +1 -0
  89. package/dist/types/file-system.d.ts +6 -0
  90. package/dist/types/file-system.d.ts.map +1 -0
  91. package/dist/types/file-system.js +6 -0
  92. package/dist/types/file-system.js.map +1 -0
  93. package/dist/types/index.d.ts +4 -0
  94. package/dist/types/index.d.ts.map +1 -0
  95. package/dist/types/index.js +2 -0
  96. package/dist/types/index.js.map +1 -0
  97. package/dist/types/layer-types.d.ts +212 -0
  98. package/dist/types/layer-types.d.ts.map +1 -0
  99. package/dist/types/layer-types.js +6 -0
  100. package/dist/types/layer-types.js.map +1 -0
  101. package/dist/types/version-control-layer.d.ts +53 -0
  102. package/dist/types/version-control-layer.d.ts.map +1 -0
  103. package/dist/types/version-control-layer.js +2 -0
  104. package/dist/types/version-control-layer.js.map +1 -0
  105. package/dist/types/workspace-boundaries.d.ts +17 -0
  106. package/dist/types/workspace-boundaries.d.ts.map +1 -0
  107. package/dist/types/workspace-boundaries.js +6 -0
  108. package/dist/types/workspace-boundaries.js.map +1 -0
  109. package/package.json +1 -1
@@ -0,0 +1,322 @@
1
+ import * as fs from 'fs';
2
+ import * as path from 'path';
3
+ import * as ts from 'typescript';
4
+ export class TypeScriptExtractor {
5
+ name = 'TypeScript';
6
+ canHandle(packagePath, fileExtensions) {
7
+ // Check if package contains TypeScript files
8
+ return fileExtensions.some(ext => ['.ts', '.tsx'].includes(ext));
9
+ }
10
+ async extractTypes(packagePath, options = {}) {
11
+ console.log(`[TypeScriptExtractor] Extracting types from package path: ${packagePath}`);
12
+ // Verify package path exists
13
+ if (!fs.existsSync(packagePath)) {
14
+ throw new Error(`Package path does not exist: ${packagePath}`);
15
+ }
16
+ // Read package.json to get package name
17
+ const packageJsonPath = path.join(packagePath, 'package.json');
18
+ let packageName = path.basename(packagePath);
19
+ try {
20
+ const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
21
+ packageName = packageJson.name || packageName;
22
+ }
23
+ catch (error) {
24
+ console.log(`[TypeScriptExtractor] Could not read package.json: ${error}`);
25
+ }
26
+ // Find all TypeScript files in the package
27
+ const tsFiles = this.findTypeScriptFiles(packagePath, options);
28
+ if (tsFiles.length === 0) {
29
+ return {
30
+ packagePath,
31
+ packageName,
32
+ types: [],
33
+ exports: { named: [] },
34
+ };
35
+ }
36
+ // Create a TypeScript program
37
+ const compilerOptions = {
38
+ target: ts.ScriptTarget.ES2020,
39
+ module: ts.ModuleKind.CommonJS,
40
+ lib: ['es2020'],
41
+ declaration: true,
42
+ emitDeclarationOnly: true,
43
+ skipLibCheck: true,
44
+ allowJs: false,
45
+ resolveJsonModule: true,
46
+ esModuleInterop: true,
47
+ strict: true,
48
+ };
49
+ const program = ts.createProgram(tsFiles, compilerOptions);
50
+ const checker = program.getTypeChecker();
51
+ const extractedTypes = [];
52
+ const exportedNames = new Set();
53
+ const defaultExport = {};
54
+ // Process each source file
55
+ for (const sourceFile of program.getSourceFiles()) {
56
+ if (sourceFile.isDeclarationFile)
57
+ continue;
58
+ if (!sourceFile.fileName.startsWith(packagePath))
59
+ continue;
60
+ // Visit each node in the source file
61
+ ts.forEachChild(sourceFile, node => {
62
+ this.visitNode(node, sourceFile, checker, extractedTypes, exportedNames, defaultExport, packagePath);
63
+ });
64
+ }
65
+ // Sort types by kind and name
66
+ extractedTypes.sort((a, b) => {
67
+ const kindOrder = ['interface', 'type', 'class', 'enum', 'function'];
68
+ const aOrder = kindOrder.indexOf(a.kind);
69
+ const bOrder = kindOrder.indexOf(b.kind);
70
+ if (aOrder !== bOrder)
71
+ return aOrder - bOrder;
72
+ return a.name.localeCompare(b.name);
73
+ });
74
+ return {
75
+ packagePath,
76
+ packageName,
77
+ types: extractedTypes,
78
+ exports: {
79
+ named: Array.from(exportedNames),
80
+ default: defaultExport.value,
81
+ },
82
+ };
83
+ }
84
+ async generateDefinitionFile(packageTypes) {
85
+ const lines = [];
86
+ // Add header
87
+ lines.push(`// Type definitions for ${packageTypes.packageName}`);
88
+ lines.push(`// Generated from: ${packageTypes.packagePath}`);
89
+ lines.push(`// Generated on: ${new Date().toISOString()}`);
90
+ lines.push('');
91
+ // Group types by kind
92
+ const typesByKind = packageTypes.types.reduce((acc, type) => {
93
+ if (!acc[type.kind])
94
+ acc[type.kind] = [];
95
+ acc[type.kind].push(type);
96
+ return acc;
97
+ }, {});
98
+ // Add types in order
99
+ const kinds = ['interface', 'type', 'class', 'enum', 'function'];
100
+ for (const kind of kinds) {
101
+ const types = typesByKind[kind];
102
+ if (!types || types.length === 0)
103
+ continue;
104
+ lines.push(`// ${kind.charAt(0).toUpperCase() + kind.slice(1)}s`);
105
+ lines.push('');
106
+ for (const type of types) {
107
+ if (type.jsDoc) {
108
+ lines.push(`/** ${type.jsDoc} */`);
109
+ }
110
+ if (type.isExported) {
111
+ // Remove existing 'export' keyword if present to avoid duplication
112
+ const cleanText = type.text.replace(/^export\s+/, '');
113
+ lines.push(`export ${cleanText}`);
114
+ }
115
+ else {
116
+ lines.push(type.text);
117
+ }
118
+ lines.push('');
119
+ }
120
+ }
121
+ return lines.join('\n');
122
+ }
123
+ findTypeScriptFiles(dir, options = {}) {
124
+ const files = [];
125
+ const walk = (currentDir) => {
126
+ try {
127
+ const entries = fs.readdirSync(currentDir, { withFileTypes: true });
128
+ for (const entry of entries) {
129
+ const fullPath = path.join(currentDir, entry.name);
130
+ if (entry.isDirectory()) {
131
+ // Skip node_modules and hidden directories
132
+ if (entry.name !== 'node_modules' && !entry.name.startsWith('.')) {
133
+ walk(fullPath);
134
+ }
135
+ }
136
+ else if (entry.isFile()) {
137
+ if (entry.name.endsWith('.ts') || entry.name.endsWith('.tsx')) {
138
+ // Skip declaration files
139
+ if (entry.name.endsWith('.d.ts')) {
140
+ continue;
141
+ }
142
+ // Skip test files unless explicitly included
143
+ if (!options.includeTests) {
144
+ if (entry.name.includes('.test.') || entry.name.includes('.spec.')) {
145
+ continue;
146
+ }
147
+ }
148
+ files.push(fullPath);
149
+ }
150
+ }
151
+ }
152
+ }
153
+ catch (error) {
154
+ console.error(`[TypeScriptExtractor] Error reading directory ${currentDir}:`, error);
155
+ }
156
+ };
157
+ walk(dir);
158
+ return files;
159
+ }
160
+ visitNode(node, sourceFile, checker, extractedTypes, exportedNames, defaultExport, packagePath) {
161
+ const modifiers = ts.canHaveModifiers(node) ? ts.getModifiers(node) : undefined;
162
+ const isExported = modifiers?.some(m => m.kind === ts.SyntaxKind.ExportKeyword) || false;
163
+ const isDefaultExport = modifiers?.some(m => m.kind === ts.SyntaxKind.DefaultKeyword) || false;
164
+ // Extract JSDoc comments
165
+ const jsDoc = this.getJSDocComment(node, sourceFile);
166
+ // Get relative file path from package root
167
+ const getRelativeFileName = () => {
168
+ const relativePath = path.relative(packagePath, sourceFile.fileName);
169
+ return relativePath.startsWith('.') ? relativePath : `./${relativePath}`;
170
+ };
171
+ if (ts.isInterfaceDeclaration(node)) {
172
+ const name = node.name?.text || 'Anonymous';
173
+ const text = this.getNodeText(node, sourceFile);
174
+ // Only extract exported types
175
+ if (isExported) {
176
+ extractedTypes.push({
177
+ name,
178
+ kind: 'interface',
179
+ text,
180
+ fileName: getRelativeFileName(),
181
+ isExported,
182
+ jsDoc,
183
+ });
184
+ exportedNames.add(name);
185
+ }
186
+ if (isDefaultExport) {
187
+ defaultExport.value = name;
188
+ }
189
+ }
190
+ else if (ts.isTypeAliasDeclaration(node)) {
191
+ const name = node.name?.text || 'Anonymous';
192
+ const text = this.getNodeText(node, sourceFile);
193
+ if (isExported) {
194
+ extractedTypes.push({
195
+ name,
196
+ kind: 'type',
197
+ text,
198
+ fileName: getRelativeFileName(),
199
+ isExported,
200
+ jsDoc,
201
+ });
202
+ exportedNames.add(name);
203
+ }
204
+ if (isDefaultExport) {
205
+ defaultExport.value = name;
206
+ }
207
+ }
208
+ else if (ts.isClassDeclaration(node)) {
209
+ const name = node.name?.text || 'Anonymous';
210
+ const text = this.getClassSignature(node, sourceFile, checker);
211
+ if (isExported) {
212
+ extractedTypes.push({
213
+ name,
214
+ kind: 'class',
215
+ text,
216
+ fileName: getRelativeFileName(),
217
+ isExported,
218
+ jsDoc,
219
+ });
220
+ exportedNames.add(name);
221
+ }
222
+ if (isDefaultExport) {
223
+ defaultExport.value = name;
224
+ }
225
+ }
226
+ else if (ts.isEnumDeclaration(node)) {
227
+ const name = node.name?.text || 'Anonymous';
228
+ const text = this.getNodeText(node, sourceFile);
229
+ if (isExported) {
230
+ extractedTypes.push({
231
+ name,
232
+ kind: 'enum',
233
+ text,
234
+ fileName: getRelativeFileName(),
235
+ isExported,
236
+ jsDoc,
237
+ });
238
+ exportedNames.add(name);
239
+ }
240
+ if (isDefaultExport) {
241
+ defaultExport.value = name;
242
+ }
243
+ }
244
+ else if (ts.isFunctionDeclaration(node) && node.name) {
245
+ const name = node.name.text;
246
+ const text = this.getFunctionSignature(node, sourceFile, checker);
247
+ if (isExported) {
248
+ extractedTypes.push({
249
+ name,
250
+ kind: 'function',
251
+ text,
252
+ fileName: getRelativeFileName(),
253
+ isExported,
254
+ jsDoc,
255
+ });
256
+ exportedNames.add(name);
257
+ }
258
+ if (isDefaultExport) {
259
+ defaultExport.value = name;
260
+ }
261
+ }
262
+ // Handle export default statements separately
263
+ if (ts.isExportAssignment(node) && !node.isExportEquals) {
264
+ // This is an "export default" statement
265
+ if (ts.isIdentifier(node.expression)) {
266
+ defaultExport.value = node.expression.text;
267
+ }
268
+ }
269
+ // Continue visiting child nodes
270
+ ts.forEachChild(node, child => {
271
+ this.visitNode(child, sourceFile, checker, extractedTypes, exportedNames, defaultExport, packagePath);
272
+ });
273
+ }
274
+ getNodeText(node, sourceFile) {
275
+ return node.getText(sourceFile);
276
+ }
277
+ getJSDocComment(node, _sourceFile) {
278
+ // Get the full JSDoc comments including the main comment and tags
279
+ const jsDocComments = ts.getJSDocCommentsAndTags(node);
280
+ if (jsDocComments.length === 0)
281
+ return undefined;
282
+ const comments = [];
283
+ jsDocComments.forEach(comment => {
284
+ if (ts.isJSDoc(comment)) {
285
+ // Get the main comment text
286
+ if (comment.comment) {
287
+ if (typeof comment.comment === 'string') {
288
+ comments.push(comment.comment);
289
+ }
290
+ else if (Array.isArray(comment.comment)) {
291
+ comments.push(comment.comment.map(c => c.text).join(''));
292
+ }
293
+ }
294
+ // Get text from tags (like @description)
295
+ comment.tags?.forEach(tag => {
296
+ if (tag.comment) {
297
+ if (typeof tag.comment === 'string') {
298
+ comments.push(tag.comment);
299
+ }
300
+ else if (Array.isArray(tag.comment)) {
301
+ comments.push(tag.comment.map(c => c.text).join(''));
302
+ }
303
+ }
304
+ });
305
+ }
306
+ });
307
+ return comments.length > 0 ? comments.join('\n') : undefined;
308
+ }
309
+ getClassSignature(node, sourceFile, _checker) {
310
+ // For now, return the full class declaration
311
+ // In the future, we could extract just the public API
312
+ return this.getNodeText(node, sourceFile);
313
+ }
314
+ getFunctionSignature(node, sourceFile, _checker) {
315
+ // Get just the function signature without the body
316
+ const signature = node.name?.text || 'anonymous';
317
+ const params = node.parameters.map(p => p.getText(sourceFile)).join(', ');
318
+ const returnType = node.type ? `: ${node.type.getText(sourceFile)}` : '';
319
+ return `function ${signature}(${params})${returnType}`;
320
+ }
321
+ }
322
+ //# sourceMappingURL=TypeScriptExtractor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TypeScriptExtractor.js","sourceRoot":"","sources":["../../../src/modules/extractors/TypeScriptExtractor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ export { FileTypeLayerModule } from './FileTypeLayerModule';
2
+ export type { FileTypeInfo } from './FileTypeLayerModule';
3
+ export { PackageLayerModule } from './PackageLayerModule';
4
+ export { VersionControlLayerFactory } from './VersionControlLayerModule';
5
+ export { DependencyLayerModule } from './DependencyLayerModule';
6
+ export { FrameworkLayerModule } from './FrameworkLayerModule';
7
+ export { FileSystemModule } from './FileSystemModule';
8
+ export type { FileSystemModuleConfig, FileSystemLoadResult } from './FileSystemModule';
9
+ export { TypeExtractionModule } from './TypeExtractionModule';
10
+ export type { TypeExtractionOptions } from './TypeExtractionModule';
11
+ export { TypeScriptExtractor } from './extractors/TypeScriptExtractor';
12
+ export type { TypeScriptExtractionOptions } from './extractors/TypeScriptExtractor';
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/modules/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,YAAY,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AACvF,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,YAAY,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,YAAY,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC"}
@@ -0,0 +1,10 @@
1
+ // Export layer modules
2
+ export { FileTypeLayerModule } from './FileTypeLayerModule.js';
3
+ export { PackageLayerModule } from './PackageLayerModule.js';
4
+ export { VersionControlLayerFactory } from './VersionControlLayerModule.js';
5
+ export { DependencyLayerModule } from './DependencyLayerModule.js';
6
+ export { FrameworkLayerModule } from './FrameworkLayerModule.js';
7
+ export { FileSystemModule } from './FileSystemModule.js';
8
+ export { TypeExtractionModule } from './TypeExtractionModule.js';
9
+ export { TypeScriptExtractor } from './extractors/TypeScriptExtractor.js';
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/modules/index.ts"],"names":[],"mappings":"AAAA,uBAAuB;AACvB,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC"}
@@ -0,0 +1,108 @@
1
+ import type { Ignore } from 'ignore';
2
+ import { VersionControlProvider, VersionControlLayer, VersionControlIgnorePattern } from '../types/version-control-layer';
3
+ export interface FileSystemAdapter {
4
+ readFile(path: string): Promise<{
5
+ content: string;
6
+ } | null>;
7
+ fileExists?(path: string): Promise<boolean>;
8
+ isDirectory?(path: string): Promise<boolean>;
9
+ readDirectory?(path: string): Promise<string[]>;
10
+ getFileStats?(path: string): Promise<{
11
+ size: number;
12
+ isDirectory: boolean;
13
+ lastModified: Date;
14
+ } | null>;
15
+ /**
16
+ * Fast filtered file tree building - adapters must implement this efficiently
17
+ * for their environment (e.g., using fdir in Node.js, batch APIs for remote, etc.)
18
+ * @returns paths: Array of relative paths from directoryPath (directories end with '/')
19
+ * @returns stats: Optional map of path to file stats for performance
20
+ */
21
+ buildFilteredFileTree(directoryPath: string, patterns?: string[], // Array of gitignore-style patterns to exclude
22
+ sourceDirectory?: string): Promise<{
23
+ paths: string[];
24
+ stats?: Map<string, {
25
+ size: number;
26
+ isDirectory: boolean;
27
+ lastModified: Date;
28
+ }>;
29
+ }>;
30
+ }
31
+ export interface GitAdapter {
32
+ getCurrentBranch?(repoPath: string): Promise<string | null>;
33
+ getCurrentCommit?(repoPath: string): Promise<string | null>;
34
+ getRemotes?(repoPath: string): Promise<Array<{
35
+ name: string;
36
+ url: string;
37
+ type?: 'push' | 'fetch' | 'both';
38
+ }>>;
39
+ getStatus?(repoPath: string): Promise<{
40
+ modified: string[];
41
+ untracked: string[];
42
+ staged: string[];
43
+ }>;
44
+ detectRepository?(path: string): Promise<{
45
+ isGitRepository: boolean;
46
+ currentBranch?: string;
47
+ owner?: string;
48
+ repo?: string;
49
+ } | null>;
50
+ watchGitRepository?(path: string): Promise<boolean>;
51
+ stopWatchingGit?(): Promise<void>;
52
+ onGitStatusChange?(callback: (data: {
53
+ changedFiles: Array<{
54
+ path: string;
55
+ status: 'added' | 'modified' | 'deleted' | 'renamed';
56
+ lastModified?: Date;
57
+ }>;
58
+ }) => void): () => void;
59
+ }
60
+ export interface ShellAdapter {
61
+ openExternal(url: string): Promise<void>;
62
+ }
63
+ /**
64
+ * Git implementation of VersionControlProvider for core library
65
+ * Handles .gitignore parsing and Git-specific operations
66
+ */
67
+ export declare class GitVersionControlProvider implements VersionControlProvider {
68
+ private fileSystemAdapter;
69
+ private gitAdapter?;
70
+ constructor(fileSystemAdapter: FileSystemAdapter, gitAdapter?: GitAdapter | undefined);
71
+ detect(directoryPath: string): Promise<boolean>;
72
+ getRepositoryRoot(directoryPath: string): Promise<string | null>;
73
+ createLayer(repositoryRoot: string): Promise<VersionControlLayer>;
74
+ /**
75
+ * Extract all .gitignore patterns from the repository
76
+ */
77
+ extractIgnorePatterns(repositoryRoot: string): Promise<VersionControlIgnorePattern[]>;
78
+ /**
79
+ * Recursively find and parse .gitignore files
80
+ */
81
+ private findAndParseGitignoreFiles;
82
+ /**
83
+ * Parse a .gitignore file and return patterns using the ignore library
84
+ */
85
+ private parseGitignoreFile;
86
+ /**
87
+ * Create an ignore instance from patterns for efficient filtering
88
+ * This can be used by FilesystemService or other components
89
+ */
90
+ createIgnoreFromPatterns(patterns: VersionControlIgnorePattern[]): Ignore | null;
91
+ /**
92
+ * Get current branch name
93
+ */
94
+ getCurrentBranch(repositoryRoot: string): Promise<string | null>;
95
+ /**
96
+ * Get current commit SHA
97
+ */
98
+ getCurrentRevision(repositoryRoot: string): Promise<string | null>;
99
+ /**
100
+ * Get remote repositories
101
+ */
102
+ getRemotes(repositoryRoot: string): Promise<Array<{
103
+ name: string;
104
+ url: string;
105
+ type: 'push' | 'fetch' | 'both';
106
+ }>>;
107
+ }
108
+ //# sourceMappingURL=GitVersionControlProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GitVersionControlProvider.d.ts","sourceRoot":"","sources":["../../src/providers/GitVersionControlProvider.ts"],"names":[],"mappings":"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"}