@liendev/parser 0.39.0
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/dist/ast/chunker.d.ts +30 -0
- package/dist/ast/chunker.d.ts.map +1 -0
- package/dist/ast/chunker.js +310 -0
- package/dist/ast/chunker.js.map +1 -0
- package/dist/ast/complexity/cognitive.d.ts +16 -0
- package/dist/ast/complexity/cognitive.d.ts.map +1 -0
- package/dist/ast/complexity/cognitive.js +137 -0
- package/dist/ast/complexity/cognitive.js.map +1 -0
- package/dist/ast/complexity/cyclomatic.d.ts +12 -0
- package/dist/ast/complexity/cyclomatic.d.ts.map +1 -0
- package/dist/ast/complexity/cyclomatic.js +54 -0
- package/dist/ast/complexity/cyclomatic.js.map +1 -0
- package/dist/ast/complexity/halstead.d.ts +56 -0
- package/dist/ast/complexity/halstead.d.ts.map +1 -0
- package/dist/ast/complexity/halstead.js +196 -0
- package/dist/ast/complexity/halstead.js.map +1 -0
- package/dist/ast/complexity/index.d.ts +13 -0
- package/dist/ast/complexity/index.d.ts.map +1 -0
- package/dist/ast/complexity/index.js +12 -0
- package/dist/ast/complexity/index.js.map +1 -0
- package/dist/ast/extractors/index.d.ts +35 -0
- package/dist/ast/extractors/index.d.ts.map +1 -0
- package/dist/ast/extractors/index.js +41 -0
- package/dist/ast/extractors/index.js.map +1 -0
- package/dist/ast/extractors/symbol-helpers.d.ts +20 -0
- package/dist/ast/extractors/symbol-helpers.d.ts.map +1 -0
- package/dist/ast/extractors/symbol-helpers.js +58 -0
- package/dist/ast/extractors/symbol-helpers.js.map +1 -0
- package/dist/ast/extractors/types.d.ts +108 -0
- package/dist/ast/extractors/types.d.ts.map +1 -0
- package/dist/ast/extractors/types.js +2 -0
- package/dist/ast/extractors/types.js.map +1 -0
- package/dist/ast/languages/javascript.d.ts +134 -0
- package/dist/ast/languages/javascript.d.ts.map +1 -0
- package/dist/ast/languages/javascript.js +787 -0
- package/dist/ast/languages/javascript.js.map +1 -0
- package/dist/ast/languages/php.d.ts +84 -0
- package/dist/ast/languages/php.d.ts.map +1 -0
- package/dist/ast/languages/php.js +452 -0
- package/dist/ast/languages/php.js.map +1 -0
- package/dist/ast/languages/python.d.ts +96 -0
- package/dist/ast/languages/python.d.ts.map +1 -0
- package/dist/ast/languages/python.js +448 -0
- package/dist/ast/languages/python.js.map +1 -0
- package/dist/ast/languages/registry.d.ts +30 -0
- package/dist/ast/languages/registry.d.ts.map +1 -0
- package/dist/ast/languages/registry.js +95 -0
- package/dist/ast/languages/registry.js.map +1 -0
- package/dist/ast/languages/rust.d.ts +113 -0
- package/dist/ast/languages/rust.d.ts.map +1 -0
- package/dist/ast/languages/rust.js +614 -0
- package/dist/ast/languages/rust.js.map +1 -0
- package/dist/ast/languages/types.d.ts +52 -0
- package/dist/ast/languages/types.d.ts.map +1 -0
- package/dist/ast/languages/types.js +2 -0
- package/dist/ast/languages/types.js.map +1 -0
- package/dist/ast/languages/typescript.d.ts +3 -0
- package/dist/ast/languages/typescript.d.ts.map +1 -0
- package/dist/ast/languages/typescript.js +134 -0
- package/dist/ast/languages/typescript.js.map +1 -0
- package/dist/ast/parser.d.ts +29 -0
- package/dist/ast/parser.d.ts.map +1 -0
- package/dist/ast/parser.js +67 -0
- package/dist/ast/parser.js.map +1 -0
- package/dist/ast/symbols.d.ts +74 -0
- package/dist/ast/symbols.d.ts.map +1 -0
- package/dist/ast/symbols.js +171 -0
- package/dist/ast/symbols.js.map +1 -0
- package/dist/ast/traversers/index.d.ts +19 -0
- package/dist/ast/traversers/index.d.ts.map +1 -0
- package/dist/ast/traversers/index.js +21 -0
- package/dist/ast/traversers/index.js.map +1 -0
- package/dist/ast/traversers/types.d.ts +98 -0
- package/dist/ast/traversers/types.d.ts.map +1 -0
- package/dist/ast/traversers/types.js +2 -0
- package/dist/ast/traversers/types.js.map +1 -0
- package/dist/ast/types.d.ts +54 -0
- package/dist/ast/types.d.ts.map +1 -0
- package/dist/ast/types.js +2 -0
- package/dist/ast/types.js.map +1 -0
- package/dist/chunk-only-index.d.ts +25 -0
- package/dist/chunk-only-index.d.ts.map +1 -0
- package/dist/chunk-only-index.js +107 -0
- package/dist/chunk-only-index.js.map +1 -0
- package/dist/chunker.d.ts +12 -0
- package/dist/chunker.d.ts.map +1 -0
- package/dist/chunker.js +98 -0
- package/dist/chunker.js.map +1 -0
- package/dist/constants.d.ts +8 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +11 -0
- package/dist/constants.js.map +1 -0
- package/dist/content-hash.d.ts +20 -0
- package/dist/content-hash.d.ts.map +1 -0
- package/dist/content-hash.js +91 -0
- package/dist/content-hash.js.map +1 -0
- package/dist/dependency-analyzer.d.ts +79 -0
- package/dist/dependency-analyzer.d.ts.map +1 -0
- package/dist/dependency-analyzer.js +408 -0
- package/dist/dependency-analyzer.js.map +1 -0
- package/dist/ecosystem-presets.d.ts +32 -0
- package/dist/ecosystem-presets.d.ts.map +1 -0
- package/dist/ecosystem-presets.js +325 -0
- package/dist/ecosystem-presets.js.map +1 -0
- package/dist/gitignore.d.ts +22 -0
- package/dist/gitignore.d.ts.map +1 -0
- package/dist/gitignore.js +128 -0
- package/dist/gitignore.js.map +1 -0
- package/dist/index.d.ts +32 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +68 -0
- package/dist/index.js.map +1 -0
- package/dist/insights/chunk-complexity.d.ts +89 -0
- package/dist/insights/chunk-complexity.d.ts.map +1 -0
- package/dist/insights/chunk-complexity.js +332 -0
- package/dist/insights/chunk-complexity.js.map +1 -0
- package/dist/insights/types.d.ts +73 -0
- package/dist/insights/types.d.ts.map +1 -0
- package/dist/insights/types.js +9 -0
- package/dist/insights/types.js.map +1 -0
- package/dist/json-template-chunker.d.ts +12 -0
- package/dist/json-template-chunker.d.ts.map +1 -0
- package/dist/json-template-chunker.js +87 -0
- package/dist/json-template-chunker.js.map +1 -0
- package/dist/liquid-chunker.d.ts +16 -0
- package/dist/liquid-chunker.d.ts.map +1 -0
- package/dist/liquid-chunker.js +274 -0
- package/dist/liquid-chunker.js.map +1 -0
- package/dist/scanner.d.ts +16 -0
- package/dist/scanner.d.ts.map +1 -0
- package/dist/scanner.js +95 -0
- package/dist/scanner.js.map +1 -0
- package/dist/symbol-extractor.d.ts +18 -0
- package/dist/symbol-extractor.d.ts.map +1 -0
- package/dist/symbol-extractor.js +343 -0
- package/dist/symbol-extractor.js.map +1 -0
- package/dist/test-associations.d.ts +16 -0
- package/dist/test-associations.d.ts.map +1 -0
- package/dist/test-associations.js +43 -0
- package/dist/test-associations.js.map +1 -0
- package/dist/types.d.ts +75 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/path-matching.d.ts +71 -0
- package/dist/utils/path-matching.d.ts.map +1 -0
- package/dist/utils/path-matching.js +258 -0
- package/dist/utils/path-matching.js.map +1 -0
- package/dist/utils/repo-id.d.ts +6 -0
- package/dist/utils/repo-id.d.ts.map +1 -0
- package/dist/utils/repo-id.js +12 -0
- package/dist/utils/repo-id.js.map +1 -0
- package/package.json +66 -0
|
@@ -0,0 +1,343 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Symbol extraction utilities for different programming languages.
|
|
3
|
+
* Extracts function, class, and interface names from code chunks for better indexing.
|
|
4
|
+
*/
|
|
5
|
+
const LANGUAGE_EXTRACTORS = {
|
|
6
|
+
typescript: {
|
|
7
|
+
functions: extractTSFunctions,
|
|
8
|
+
classes: extractTSClasses,
|
|
9
|
+
interfaces: extractTSInterfaces,
|
|
10
|
+
},
|
|
11
|
+
tsx: {
|
|
12
|
+
functions: extractTSFunctions,
|
|
13
|
+
classes: extractTSClasses,
|
|
14
|
+
interfaces: extractTSInterfaces,
|
|
15
|
+
},
|
|
16
|
+
javascript: { functions: extractJSFunctions, classes: extractJSClasses },
|
|
17
|
+
jsx: { functions: extractJSFunctions, classes: extractJSClasses },
|
|
18
|
+
python: { functions: extractPythonFunctions, classes: extractPythonClasses },
|
|
19
|
+
py: { functions: extractPythonFunctions, classes: extractPythonClasses },
|
|
20
|
+
php: {
|
|
21
|
+
functions: extractPHPFunctions,
|
|
22
|
+
classes: extractPHPClasses,
|
|
23
|
+
interfaces: extractPHPInterfaces,
|
|
24
|
+
},
|
|
25
|
+
vue: { functions: extractVueFunctions, classes: extractVueComponents },
|
|
26
|
+
go: { functions: extractGoFunctions, interfaces: extractGoInterfaces },
|
|
27
|
+
java: {
|
|
28
|
+
functions: extractJavaFunctions,
|
|
29
|
+
classes: extractJavaClasses,
|
|
30
|
+
interfaces: extractJavaInterfaces,
|
|
31
|
+
},
|
|
32
|
+
csharp: {
|
|
33
|
+
functions: extractCSharpFunctions,
|
|
34
|
+
classes: extractCSharpClasses,
|
|
35
|
+
interfaces: extractCSharpInterfaces,
|
|
36
|
+
},
|
|
37
|
+
cs: {
|
|
38
|
+
functions: extractCSharpFunctions,
|
|
39
|
+
classes: extractCSharpClasses,
|
|
40
|
+
interfaces: extractCSharpInterfaces,
|
|
41
|
+
},
|
|
42
|
+
ruby: { functions: extractRubyFunctions, classes: extractRubyClasses },
|
|
43
|
+
rb: { functions: extractRubyFunctions, classes: extractRubyClasses },
|
|
44
|
+
rust: { functions: extractRustFunctions },
|
|
45
|
+
rs: { functions: extractRustFunctions },
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* Extract symbols (functions, classes, interfaces) from code content.
|
|
49
|
+
*
|
|
50
|
+
* @param content - The code content to extract symbols from
|
|
51
|
+
* @param language - The programming language of the content
|
|
52
|
+
* @returns Extracted symbols organized by type
|
|
53
|
+
*/
|
|
54
|
+
export function extractSymbols(content, language) {
|
|
55
|
+
const extractors = LANGUAGE_EXTRACTORS[language.toLowerCase()];
|
|
56
|
+
if (!extractors) {
|
|
57
|
+
return { functions: [], classes: [], interfaces: [] };
|
|
58
|
+
}
|
|
59
|
+
return {
|
|
60
|
+
functions: extractors.functions(content),
|
|
61
|
+
classes: extractors.classes?.(content) ?? [],
|
|
62
|
+
interfaces: extractors.interfaces?.(content) ?? [],
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
// TypeScript / JavaScript Functions
|
|
66
|
+
function extractTSFunctions(content) {
|
|
67
|
+
const names = new Set();
|
|
68
|
+
// Regular functions: function name(...) or async function name(...)
|
|
69
|
+
const functionMatches = content.matchAll(/(?:async\s+)?function\s+(\w+)\s*\(/g);
|
|
70
|
+
for (const match of functionMatches) {
|
|
71
|
+
names.add(match[1]);
|
|
72
|
+
}
|
|
73
|
+
// Arrow functions: const/let/var name = (...) =>
|
|
74
|
+
const arrowMatches = content.matchAll(/(?:const|let|var)\s+(\w+)\s*=\s*(?:async\s*)?\([^)]*\)\s*=>/g);
|
|
75
|
+
for (const match of arrowMatches) {
|
|
76
|
+
names.add(match[1]);
|
|
77
|
+
}
|
|
78
|
+
// Method definitions: name(...) { or async name(...) {
|
|
79
|
+
const methodMatches = content.matchAll(/(?:async\s+)?(\w+)\s*\([^)]*\)\s*[:{]/g);
|
|
80
|
+
for (const match of methodMatches) {
|
|
81
|
+
// Exclude common keywords
|
|
82
|
+
if (!['if', 'for', 'while', 'switch', 'catch'].includes(match[1])) {
|
|
83
|
+
names.add(match[1]);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
// Export function
|
|
87
|
+
const exportMatches = content.matchAll(/export\s+(?:async\s+)?function\s+(\w+)\s*\(/g);
|
|
88
|
+
for (const match of exportMatches) {
|
|
89
|
+
names.add(match[1]);
|
|
90
|
+
}
|
|
91
|
+
return Array.from(names);
|
|
92
|
+
}
|
|
93
|
+
function extractJSFunctions(content) {
|
|
94
|
+
return extractTSFunctions(content); // Same patterns
|
|
95
|
+
}
|
|
96
|
+
function extractTSClasses(content) {
|
|
97
|
+
const names = new Set();
|
|
98
|
+
// Class declarations: class Name or export class Name
|
|
99
|
+
const classMatches = content.matchAll(/(?:export\s+)?(?:abstract\s+)?class\s+(\w+)/g);
|
|
100
|
+
for (const match of classMatches) {
|
|
101
|
+
names.add(match[1]);
|
|
102
|
+
}
|
|
103
|
+
return Array.from(names);
|
|
104
|
+
}
|
|
105
|
+
function extractJSClasses(content) {
|
|
106
|
+
return extractTSClasses(content); // Same patterns
|
|
107
|
+
}
|
|
108
|
+
function extractTSInterfaces(content) {
|
|
109
|
+
const names = new Set();
|
|
110
|
+
// Interface declarations: interface Name or export interface Name
|
|
111
|
+
const interfaceMatches = content.matchAll(/(?:export\s+)?interface\s+(\w+)/g);
|
|
112
|
+
for (const match of interfaceMatches) {
|
|
113
|
+
names.add(match[1]);
|
|
114
|
+
}
|
|
115
|
+
// Type aliases: type Name = or export type Name =
|
|
116
|
+
const typeMatches = content.matchAll(/(?:export\s+)?type\s+(\w+)\s*=/g);
|
|
117
|
+
for (const match of typeMatches) {
|
|
118
|
+
names.add(match[1]);
|
|
119
|
+
}
|
|
120
|
+
return Array.from(names);
|
|
121
|
+
}
|
|
122
|
+
// Python Functions
|
|
123
|
+
function extractPythonFunctions(content) {
|
|
124
|
+
const names = new Set();
|
|
125
|
+
// Function definitions: def name(...):
|
|
126
|
+
const functionMatches = content.matchAll(/def\s+(\w+)\s*\(/g);
|
|
127
|
+
for (const match of functionMatches) {
|
|
128
|
+
names.add(match[1]);
|
|
129
|
+
}
|
|
130
|
+
// Async functions: async def name(...):
|
|
131
|
+
const asyncMatches = content.matchAll(/async\s+def\s+(\w+)\s*\(/g);
|
|
132
|
+
for (const match of asyncMatches) {
|
|
133
|
+
names.add(match[1]);
|
|
134
|
+
}
|
|
135
|
+
return Array.from(names);
|
|
136
|
+
}
|
|
137
|
+
function extractPythonClasses(content) {
|
|
138
|
+
const names = new Set();
|
|
139
|
+
// Class definitions: class Name or class Name(Base):
|
|
140
|
+
const classMatches = content.matchAll(/class\s+(\w+)(?:\s*\(|:)/g);
|
|
141
|
+
for (const match of classMatches) {
|
|
142
|
+
names.add(match[1]);
|
|
143
|
+
}
|
|
144
|
+
return Array.from(names);
|
|
145
|
+
}
|
|
146
|
+
// PHP Functions
|
|
147
|
+
function extractPHPFunctions(content) {
|
|
148
|
+
const names = new Set();
|
|
149
|
+
// Function definitions: function name(...) or public function name(...)
|
|
150
|
+
const functionMatches = content.matchAll(/(?:public|private|protected)?\s*function\s+(\w+)\s*\(/g);
|
|
151
|
+
for (const match of functionMatches) {
|
|
152
|
+
names.add(match[1]);
|
|
153
|
+
}
|
|
154
|
+
return Array.from(names);
|
|
155
|
+
}
|
|
156
|
+
function extractPHPClasses(content) {
|
|
157
|
+
const names = new Set();
|
|
158
|
+
// Class definitions: class Name or abstract class Name
|
|
159
|
+
const classMatches = content.matchAll(/(?:abstract\s+)?class\s+(\w+)/g);
|
|
160
|
+
for (const match of classMatches) {
|
|
161
|
+
names.add(match[1]);
|
|
162
|
+
}
|
|
163
|
+
return Array.from(names);
|
|
164
|
+
}
|
|
165
|
+
function extractPHPInterfaces(content) {
|
|
166
|
+
const names = new Set();
|
|
167
|
+
// Interface definitions: interface Name
|
|
168
|
+
const interfaceMatches = content.matchAll(/interface\s+(\w+)/g);
|
|
169
|
+
for (const match of interfaceMatches) {
|
|
170
|
+
names.add(match[1]);
|
|
171
|
+
}
|
|
172
|
+
// Trait definitions: trait Name
|
|
173
|
+
const traitMatches = content.matchAll(/trait\s+(\w+)/g);
|
|
174
|
+
for (const match of traitMatches) {
|
|
175
|
+
names.add(match[1]);
|
|
176
|
+
}
|
|
177
|
+
return Array.from(names);
|
|
178
|
+
}
|
|
179
|
+
// Go Functions
|
|
180
|
+
function extractGoFunctions(content) {
|
|
181
|
+
const names = new Set();
|
|
182
|
+
// Function definitions: func Name(...) or func (r *Receiver) Name(...)
|
|
183
|
+
const functionMatches = content.matchAll(/func\s+(?:\(\w+\s+\*?\w+\)\s+)?(\w+)\s*\(/g);
|
|
184
|
+
for (const match of functionMatches) {
|
|
185
|
+
names.add(match[1]);
|
|
186
|
+
}
|
|
187
|
+
return Array.from(names);
|
|
188
|
+
}
|
|
189
|
+
function extractGoInterfaces(content) {
|
|
190
|
+
const names = new Set();
|
|
191
|
+
// Interface definitions: type Name interface {
|
|
192
|
+
const interfaceMatches = content.matchAll(/type\s+(\w+)\s+interface\s*\{/g);
|
|
193
|
+
for (const match of interfaceMatches) {
|
|
194
|
+
names.add(match[1]);
|
|
195
|
+
}
|
|
196
|
+
// Struct definitions: type Name struct {
|
|
197
|
+
const structMatches = content.matchAll(/type\s+(\w+)\s+struct\s*\{/g);
|
|
198
|
+
for (const match of structMatches) {
|
|
199
|
+
names.add(match[1]);
|
|
200
|
+
}
|
|
201
|
+
return Array.from(names);
|
|
202
|
+
}
|
|
203
|
+
// Java Functions
|
|
204
|
+
function extractJavaFunctions(content) {
|
|
205
|
+
const names = new Set();
|
|
206
|
+
// Method definitions: public/private/protected return_type name(...)
|
|
207
|
+
const methodMatches = content.matchAll(/(?:public|private|protected)\s+(?:static\s+)?(?:\w+(?:<[^>]+>)?)\s+(\w+)\s*\(/g);
|
|
208
|
+
for (const match of methodMatches) {
|
|
209
|
+
names.add(match[1]);
|
|
210
|
+
}
|
|
211
|
+
return Array.from(names);
|
|
212
|
+
}
|
|
213
|
+
function extractJavaClasses(content) {
|
|
214
|
+
const names = new Set();
|
|
215
|
+
// Class definitions: public class Name or abstract class Name
|
|
216
|
+
const classMatches = content.matchAll(/(?:public\s+)?(?:abstract\s+)?class\s+(\w+)/g);
|
|
217
|
+
for (const match of classMatches) {
|
|
218
|
+
names.add(match[1]);
|
|
219
|
+
}
|
|
220
|
+
return Array.from(names);
|
|
221
|
+
}
|
|
222
|
+
function extractJavaInterfaces(content) {
|
|
223
|
+
const names = new Set();
|
|
224
|
+
// Interface definitions: public interface Name
|
|
225
|
+
const interfaceMatches = content.matchAll(/(?:public\s+)?interface\s+(\w+)/g);
|
|
226
|
+
for (const match of interfaceMatches) {
|
|
227
|
+
names.add(match[1]);
|
|
228
|
+
}
|
|
229
|
+
return Array.from(names);
|
|
230
|
+
}
|
|
231
|
+
// C# Functions
|
|
232
|
+
function extractCSharpFunctions(content) {
|
|
233
|
+
const names = new Set();
|
|
234
|
+
// Method definitions: public/private/protected return_type Name(...)
|
|
235
|
+
const methodMatches = content.matchAll(/(?:public|private|protected|internal)\s+(?:static\s+)?(?:async\s+)?(?:\w+(?:<[^>]+>)?)\s+(\w+)\s*\(/g);
|
|
236
|
+
for (const match of methodMatches) {
|
|
237
|
+
names.add(match[1]);
|
|
238
|
+
}
|
|
239
|
+
return Array.from(names);
|
|
240
|
+
}
|
|
241
|
+
function extractCSharpClasses(content) {
|
|
242
|
+
const names = new Set();
|
|
243
|
+
// Class definitions: public class Name or abstract class Name
|
|
244
|
+
const classMatches = content.matchAll(/(?:public|internal)?\s*(?:abstract\s+)?class\s+(\w+)/g);
|
|
245
|
+
for (const match of classMatches) {
|
|
246
|
+
names.add(match[1]);
|
|
247
|
+
}
|
|
248
|
+
return Array.from(names);
|
|
249
|
+
}
|
|
250
|
+
function extractCSharpInterfaces(content) {
|
|
251
|
+
const names = new Set();
|
|
252
|
+
// Interface definitions: public interface Name
|
|
253
|
+
const interfaceMatches = content.matchAll(/(?:public|internal)?\s*interface\s+(\w+)/g);
|
|
254
|
+
for (const match of interfaceMatches) {
|
|
255
|
+
names.add(match[1]);
|
|
256
|
+
}
|
|
257
|
+
return Array.from(names);
|
|
258
|
+
}
|
|
259
|
+
// Ruby Functions
|
|
260
|
+
function extractRubyFunctions(content) {
|
|
261
|
+
const names = new Set();
|
|
262
|
+
// Method definitions: def name or def self.name
|
|
263
|
+
const methodMatches = content.matchAll(/def\s+(?:self\.)?(\w+)/g);
|
|
264
|
+
for (const match of methodMatches) {
|
|
265
|
+
names.add(match[1]);
|
|
266
|
+
}
|
|
267
|
+
return Array.from(names);
|
|
268
|
+
}
|
|
269
|
+
function extractRubyClasses(content) {
|
|
270
|
+
const names = new Set();
|
|
271
|
+
// Class definitions: class Name or class Name < Base
|
|
272
|
+
const classMatches = content.matchAll(/class\s+(\w+)/g);
|
|
273
|
+
for (const match of classMatches) {
|
|
274
|
+
names.add(match[1]);
|
|
275
|
+
}
|
|
276
|
+
// Module definitions: module Name
|
|
277
|
+
const moduleMatches = content.matchAll(/module\s+(\w+)/g);
|
|
278
|
+
for (const match of moduleMatches) {
|
|
279
|
+
names.add(match[1]);
|
|
280
|
+
}
|
|
281
|
+
return Array.from(names);
|
|
282
|
+
}
|
|
283
|
+
// Rust Functions
|
|
284
|
+
function extractRustFunctions(content) {
|
|
285
|
+
const names = new Set();
|
|
286
|
+
// Function definitions: fn name(...) or pub fn name(...)
|
|
287
|
+
const functionMatches = content.matchAll(/(?:pub\s+)?fn\s+(\w+)\s*\(/g);
|
|
288
|
+
for (const match of functionMatches) {
|
|
289
|
+
names.add(match[1]);
|
|
290
|
+
}
|
|
291
|
+
// Struct definitions: struct Name {
|
|
292
|
+
const structMatches = content.matchAll(/(?:pub\s+)?struct\s+(\w+)/g);
|
|
293
|
+
for (const match of structMatches) {
|
|
294
|
+
names.add(match[1]);
|
|
295
|
+
}
|
|
296
|
+
// Trait definitions: trait Name {
|
|
297
|
+
const traitMatches = content.matchAll(/(?:pub\s+)?trait\s+(\w+)/g);
|
|
298
|
+
for (const match of traitMatches) {
|
|
299
|
+
names.add(match[1]);
|
|
300
|
+
}
|
|
301
|
+
return Array.from(names);
|
|
302
|
+
}
|
|
303
|
+
// Vue Functions
|
|
304
|
+
function extractVueFunctions(content) {
|
|
305
|
+
const names = new Set();
|
|
306
|
+
// Extract script content from Vue SFC
|
|
307
|
+
const scriptMatch = content.match(/<script[^>]*>([\s\S]*?)<\/script>/);
|
|
308
|
+
if (!scriptMatch)
|
|
309
|
+
return [];
|
|
310
|
+
const scriptContent = scriptMatch[1];
|
|
311
|
+
// Composition API: const/function name = ...
|
|
312
|
+
const compositionMatches = scriptContent.matchAll(/(?:const|function)\s+(\w+)\s*=/g);
|
|
313
|
+
for (const match of compositionMatches) {
|
|
314
|
+
names.add(match[1]);
|
|
315
|
+
}
|
|
316
|
+
// Options API methods
|
|
317
|
+
const methodMatches = scriptContent.matchAll(/(\w+)\s*\([^)]*\)\s*{/g);
|
|
318
|
+
for (const match of methodMatches) {
|
|
319
|
+
names.add(match[1]);
|
|
320
|
+
}
|
|
321
|
+
return Array.from(names);
|
|
322
|
+
}
|
|
323
|
+
// Vue Components
|
|
324
|
+
function extractVueComponents(content) {
|
|
325
|
+
const names = new Set();
|
|
326
|
+
// Extract component name from filename convention or export
|
|
327
|
+
const scriptMatch = content.match(/<script[^>]*>([\s\S]*?)<\/script>/);
|
|
328
|
+
if (!scriptMatch)
|
|
329
|
+
return [];
|
|
330
|
+
const scriptContent = scriptMatch[1];
|
|
331
|
+
// export default { name: 'ComponentName' }
|
|
332
|
+
const nameMatch = scriptContent.match(/name:\s*['"](\w+)['"]/);
|
|
333
|
+
if (nameMatch) {
|
|
334
|
+
names.add(nameMatch[1]);
|
|
335
|
+
}
|
|
336
|
+
// defineComponent or <script setup> components
|
|
337
|
+
const defineComponentMatch = scriptContent.match(/defineComponent\s*\(/);
|
|
338
|
+
if (defineComponentMatch) {
|
|
339
|
+
names.add('VueComponent');
|
|
340
|
+
}
|
|
341
|
+
return Array.from(names);
|
|
342
|
+
}
|
|
343
|
+
//# sourceMappingURL=symbol-extractor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"symbol-extractor.js","sourceRoot":"","sources":["../src/symbol-extractor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Portable test association discovery from in-memory chunks.
|
|
3
|
+
* Finds test files that import given source files by analyzing chunk metadata.
|
|
4
|
+
*/
|
|
5
|
+
import type { CodeChunk } from './types.js';
|
|
6
|
+
/**
|
|
7
|
+
* Find test files that import the given source files.
|
|
8
|
+
* Works entirely from in-memory chunks — no VectorDB or filesystem needed.
|
|
9
|
+
*
|
|
10
|
+
* @param filepaths - Source file paths to find tests for
|
|
11
|
+
* @param chunks - All indexed chunks (test + source files)
|
|
12
|
+
* @param workspaceRoot - Workspace root for path normalization (defaults to cwd)
|
|
13
|
+
* @returns Map of source filepath → array of test file paths that import it
|
|
14
|
+
*/
|
|
15
|
+
export declare function findTestAssociationsFromChunks(filepaths: string[], chunks: CodeChunk[], workspaceRoot?: string): Map<string, string[]>;
|
|
16
|
+
//# sourceMappingURL=test-associations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-associations.d.ts","sourceRoot":"","sources":["../src/test-associations.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C;;;;;;;;GAQG;AACH,wBAAgB,8BAA8B,CAC5C,SAAS,EAAE,MAAM,EAAE,EACnB,MAAM,EAAE,SAAS,EAAE,EACnB,aAAa,GAAE,MAAsB,GACpC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAgCvB"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Portable test association discovery from in-memory chunks.
|
|
3
|
+
* Finds test files that import given source files by analyzing chunk metadata.
|
|
4
|
+
*/
|
|
5
|
+
import { isTestFile, normalizePath, matchesFile } from './utils/path-matching.js';
|
|
6
|
+
/**
|
|
7
|
+
* Find test files that import the given source files.
|
|
8
|
+
* Works entirely from in-memory chunks — no VectorDB or filesystem needed.
|
|
9
|
+
*
|
|
10
|
+
* @param filepaths - Source file paths to find tests for
|
|
11
|
+
* @param chunks - All indexed chunks (test + source files)
|
|
12
|
+
* @param workspaceRoot - Workspace root for path normalization (defaults to cwd)
|
|
13
|
+
* @returns Map of source filepath → array of test file paths that import it
|
|
14
|
+
*/
|
|
15
|
+
export function findTestAssociationsFromChunks(filepaths, chunks, workspaceRoot = process.cwd()) {
|
|
16
|
+
const result = new Map();
|
|
17
|
+
// Build a path normalization cache for performance
|
|
18
|
+
const cache = new Map();
|
|
19
|
+
const normalize = (p) => {
|
|
20
|
+
if (cache.has(p))
|
|
21
|
+
return cache.get(p);
|
|
22
|
+
const normalized = normalizePath(p, workspaceRoot);
|
|
23
|
+
cache.set(p, normalized);
|
|
24
|
+
return normalized;
|
|
25
|
+
};
|
|
26
|
+
// Pre-filter to only test chunks for performance
|
|
27
|
+
const testChunks = chunks.filter(chunk => isTestFile(chunk.metadata.file));
|
|
28
|
+
for (const filepath of filepaths) {
|
|
29
|
+
const normalizedTarget = normalize(filepath);
|
|
30
|
+
const testFiles = new Set();
|
|
31
|
+
for (const chunk of testChunks) {
|
|
32
|
+
const imports = chunk.metadata.imports || [];
|
|
33
|
+
if (imports.some(imp => matchesFile(normalize(imp), normalizedTarget))) {
|
|
34
|
+
testFiles.add(chunk.metadata.file);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
if (testFiles.size > 0) {
|
|
38
|
+
result.set(filepath, Array.from(testFiles));
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return result;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=test-associations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-associations.js","sourceRoot":"","sources":["../src/test-associations.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGlF;;;;;;;;GAQG;AACH,MAAM,UAAU,8BAA8B,CAC5C,SAAmB,EACnB,MAAmB,EACnB,gBAAwB,OAAO,CAAC,GAAG,EAAE;IAErC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAoB,CAAC;IAE3C,mDAAmD;IACnD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;IACxC,MAAM,SAAS,GAAG,CAAC,CAAS,EAAU,EAAE;QACtC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC;QACvC,MAAM,UAAU,GAAG,aAAa,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;QACnD,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;QACzB,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;IAEF,iDAAiD;IACjD,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IAE3E,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,MAAM,gBAAgB,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC7C,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;QAEpC,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,IAAI,EAAE,CAAC;YAC7C,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,gBAAgB,CAAC,CAAC,EAAE,CAAC;gBACvE,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;QAED,IAAI,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
export interface CodeChunk {
|
|
2
|
+
content: string;
|
|
3
|
+
metadata: ChunkMetadata;
|
|
4
|
+
}
|
|
5
|
+
export interface ChunkMetadata {
|
|
6
|
+
file: string;
|
|
7
|
+
startLine: number;
|
|
8
|
+
endLine: number;
|
|
9
|
+
type: 'function' | 'class' | 'block' | 'template';
|
|
10
|
+
language: string;
|
|
11
|
+
symbols?: {
|
|
12
|
+
functions: string[];
|
|
13
|
+
classes: string[];
|
|
14
|
+
interfaces: string[];
|
|
15
|
+
};
|
|
16
|
+
symbolName?: string;
|
|
17
|
+
symbolType?: 'function' | 'method' | 'class' | 'interface' | 'schema' | 'style' | 'javascript' | 'template';
|
|
18
|
+
parentClass?: string;
|
|
19
|
+
complexity?: number;
|
|
20
|
+
cognitiveComplexity?: number;
|
|
21
|
+
parameters?: string[];
|
|
22
|
+
signature?: string;
|
|
23
|
+
returnType?: string;
|
|
24
|
+
imports?: string[];
|
|
25
|
+
/**
|
|
26
|
+
* Symbols exported by this file. Extracted from export statements.
|
|
27
|
+
* Example: ['validateEmail', 'validatePhone', 'ValidationError']
|
|
28
|
+
*/
|
|
29
|
+
exports?: string[];
|
|
30
|
+
/**
|
|
31
|
+
* Map of import paths to the symbols imported from them.
|
|
32
|
+
* Example: { './validate': ['validateEmail', 'validatePhone'] }
|
|
33
|
+
*/
|
|
34
|
+
importedSymbols?: Record<string, string[]>;
|
|
35
|
+
/**
|
|
36
|
+
* Call sites within this chunk - symbols called and their locations.
|
|
37
|
+
* Tracked for chunks whose symbolType supports complexity analysis (e.g. functions and methods).
|
|
38
|
+
*/
|
|
39
|
+
callSites?: Array<{
|
|
40
|
+
symbol: string;
|
|
41
|
+
line: number;
|
|
42
|
+
}>;
|
|
43
|
+
halsteadVolume?: number;
|
|
44
|
+
halsteadDifficulty?: number;
|
|
45
|
+
halsteadEffort?: number;
|
|
46
|
+
halsteadBugs?: number;
|
|
47
|
+
/**
|
|
48
|
+
* Unique repository identifier for multi-tenant scenarios.
|
|
49
|
+
* Used for cross-repo search and tenant isolation in Qdrant backend.
|
|
50
|
+
* Typically derived from project root path or GitHub repository identifier.
|
|
51
|
+
*/
|
|
52
|
+
repoId?: string;
|
|
53
|
+
/**
|
|
54
|
+
* Organization identifier for multi-tenant scenarios.
|
|
55
|
+
* Used for tenant isolation in Qdrant backend.
|
|
56
|
+
* Set from config.storage.qdrant.orgId when using Qdrant backend.
|
|
57
|
+
*/
|
|
58
|
+
orgId?: string;
|
|
59
|
+
/**
|
|
60
|
+
* Git branch name for branch/commit tracking in Qdrant backend.
|
|
61
|
+
* Used to isolate indexes by branch (e.g., main vs PR branches).
|
|
62
|
+
*/
|
|
63
|
+
branch?: string;
|
|
64
|
+
/**
|
|
65
|
+
* Git commit SHA for branch/commit tracking in Qdrant backend.
|
|
66
|
+
* Used to isolate indexes by commit (e.g., for PR analysis).
|
|
67
|
+
*/
|
|
68
|
+
commitSha?: string;
|
|
69
|
+
}
|
|
70
|
+
export interface ScanOptions {
|
|
71
|
+
rootDir: string;
|
|
72
|
+
includePatterns?: string[];
|
|
73
|
+
excludePatterns?: string[];
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,aAAa,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,UAAU,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,CAAC;IAClD,QAAQ,EAAE,MAAM,CAAC;IAEjB,OAAO,CAAC,EAAE;QACR,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,UAAU,EAAE,MAAM,EAAE,CAAC;KACtB,CAAC;IAGF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EACP,UAAU,GACV,QAAQ,GACR,OAAO,GACP,WAAW,GACX,QAAQ,GACR,OAAO,GACP,YAAY,GACZ,UAAU,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAGnB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAE3C;;;OAGG;IACH,SAAS,CAAC,EAAE,KAAK,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;KACd,CAAC,CAAC;IAGH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared path matching utilities for dependency analysis.
|
|
3
|
+
*
|
|
4
|
+
* These functions handle path normalization and matching logic used by
|
|
5
|
+
* the get_dependents tool to find reverse dependencies.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Normalizes a file path for comparison.
|
|
9
|
+
*
|
|
10
|
+
* - Removes quotes and trims whitespace
|
|
11
|
+
* - Converts backslashes to forward slashes
|
|
12
|
+
* - Strips file extensions for all AST-supported languages
|
|
13
|
+
* - Converts absolute paths to relative (if within workspace root)
|
|
14
|
+
*
|
|
15
|
+
* @param path - The path to normalize
|
|
16
|
+
* @param workspaceRoot - The workspace root directory (normalized with forward slashes)
|
|
17
|
+
* @returns Normalized path
|
|
18
|
+
*/
|
|
19
|
+
export declare function normalizePath(path: string, workspaceRoot: string): string;
|
|
20
|
+
/**
|
|
21
|
+
* Checks if a pattern matches at path component boundaries.
|
|
22
|
+
*
|
|
23
|
+
* Ensures matches occur at proper path boundaries (/) to avoid false positives like:
|
|
24
|
+
* - "logger" matching "logger-utils" ❌
|
|
25
|
+
* - "src/logger" matching "src/logger-service" ❌
|
|
26
|
+
*
|
|
27
|
+
* @param str - The string to search in
|
|
28
|
+
* @param pattern - The pattern to search for
|
|
29
|
+
* @returns True if pattern matches at a boundary
|
|
30
|
+
*/
|
|
31
|
+
export declare function matchesAtBoundary(str: string, pattern: string): boolean;
|
|
32
|
+
/**
|
|
33
|
+
* Determines if an import path matches a target file path.
|
|
34
|
+
*
|
|
35
|
+
* Handles various matching strategies:
|
|
36
|
+
* 1. Exact match
|
|
37
|
+
* 2. Target path appears in import (at boundaries)
|
|
38
|
+
* 3. Import path appears in target (at boundaries)
|
|
39
|
+
* 4. Relative imports (./logger vs src/utils/logger)
|
|
40
|
+
* 5. PHP namespace imports (App\Models\User vs app/Models/User.php)
|
|
41
|
+
* 6. Python module imports (django.http → django/http/__init__.py or django/http/*.py)
|
|
42
|
+
*
|
|
43
|
+
* @param normalizedImport - Normalized import path
|
|
44
|
+
* @param normalizedTarget - Normalized target file path
|
|
45
|
+
* @returns True if the import matches the target file
|
|
46
|
+
*/
|
|
47
|
+
export declare function matchesFile(normalizedImport: string, normalizedTarget: string): boolean;
|
|
48
|
+
/**
|
|
49
|
+
* Gets a canonical path representation (relative to workspace, with extension).
|
|
50
|
+
*
|
|
51
|
+
* @param filepath - The file path to canonicalize
|
|
52
|
+
* @param workspaceRoot - The workspace root directory (normalized with forward slashes)
|
|
53
|
+
* @returns Canonical path
|
|
54
|
+
*/
|
|
55
|
+
export declare function getCanonicalPath(filepath: string, workspaceRoot: string): string;
|
|
56
|
+
/**
|
|
57
|
+
* Determines if a file is a test file based on naming conventions.
|
|
58
|
+
*
|
|
59
|
+
* Uses precise regex patterns to avoid false positives:
|
|
60
|
+
* - Files with .test. or .spec. extensions (e.g., foo.test.ts, bar.spec.js)
|
|
61
|
+
* - Files in test/, tests/, or __tests__/ directories
|
|
62
|
+
*
|
|
63
|
+
* Avoids false positives like:
|
|
64
|
+
* - contest.ts (contains ".test." but isn't a test)
|
|
65
|
+
* - latest/config.ts (contains "/test/" but isn't a test)
|
|
66
|
+
*
|
|
67
|
+
* @param filepath - The file path to check
|
|
68
|
+
* @returns True if the file is a test file
|
|
69
|
+
*/
|
|
70
|
+
export declare function isTestFile(filepath: string): boolean;
|
|
71
|
+
//# sourceMappingURL=path-matching.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"path-matching.d.ts","sourceRoot":"","sources":["../../src/utils/path-matching.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA0BH;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,CAezE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAcvE;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,WAAW,CAAC,gBAAgB,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAqCvF;AA2HD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,CAMhF;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAIpD"}
|