mcp-code-context 3.6.3 → 3.7.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/CHANGELOG.md +140 -278
- package/INSTRUCTIONS.md +23 -9
- package/README.md +217 -97
- package/SECURITY.md +55 -21
- package/dist/src/core/cacheManager.d.ts +4 -5
- package/dist/src/core/cacheManager.js +49 -33
- package/dist/src/core/cacheManager.js.map +1 -1
- package/dist/src/core/engine.d.ts +1 -1
- package/dist/src/core/engine.js +3 -3
- package/dist/src/core/engine.js.map +1 -1
- package/dist/src/core/indexManager.d.ts +58 -0
- package/dist/src/core/indexManager.js +252 -0
- package/dist/src/core/indexManager.js.map +1 -0
- package/dist/src/core/indexManagerQueries.d.ts +14 -0
- package/dist/src/core/indexManagerQueries.js +95 -0
- package/dist/src/core/indexManagerQueries.js.map +1 -0
- package/dist/src/core/sessionManager.d.ts +117 -0
- package/dist/src/core/sessionManager.js +231 -0
- package/dist/src/core/sessionManager.js.map +1 -0
- package/dist/src/core/validator.d.ts +1 -1
- package/dist/src/core/validator.js +18 -10
- package/dist/src/core/validator.js.map +1 -1
- package/dist/src/index.d.ts +1 -13
- package/dist/src/index.js +25 -999
- package/dist/src/index.js.map +1 -1
- package/dist/src/operations/astTransform.d.ts +38 -0
- package/dist/src/operations/astTransform.js +239 -0
- package/dist/src/operations/astTransform.js.map +1 -0
- package/dist/src/operations/compress.d.ts +5 -3
- package/dist/src/operations/compress.js +73 -7
- package/dist/src/operations/compress.js.map +1 -1
- package/dist/src/operations/confirmationStore.d.ts +35 -8
- package/dist/src/operations/confirmationStore.js +112 -14
- package/dist/src/operations/confirmationStore.js.map +1 -1
- package/dist/src/operations/impactAnalysis.d.ts +9 -0
- package/dist/src/operations/impactAnalysis.js +61 -0
- package/dist/src/operations/impactAnalysis.js.map +1 -0
- package/dist/src/operations/pendingStore.d.ts +51 -0
- package/dist/src/operations/pendingStore.js +201 -0
- package/dist/src/operations/pendingStore.js.map +1 -0
- package/dist/src/operations/pendingStoreInit.d.ts +6 -0
- package/dist/src/operations/pendingStoreInit.js +42 -0
- package/dist/src/operations/pendingStoreInit.js.map +1 -0
- package/dist/src/operations/read.d.ts +6 -92
- package/dist/src/operations/read.js +4 -449
- package/dist/src/operations/read.js.map +1 -1
- package/dist/src/operations/readCore.d.ts +33 -0
- package/dist/src/operations/readCore.js +142 -0
- package/dist/src/operations/readCore.js.map +1 -0
- package/dist/src/operations/rename.d.ts +13 -0
- package/dist/src/operations/rename.js +130 -0
- package/dist/src/operations/rename.js.map +1 -0
- package/dist/src/operations/searchOperation.d.ts +16 -0
- package/dist/src/operations/searchOperation.js +113 -0
- package/dist/src/operations/searchOperation.js.map +1 -0
- package/dist/src/operations/symbolQuery.d.ts +38 -0
- package/dist/src/operations/symbolQuery.js +194 -0
- package/dist/src/operations/symbolQuery.js.map +1 -0
- package/dist/src/operations/write.d.ts +11 -14
- package/dist/src/operations/write.js +6 -125
- package/dist/src/operations/write.js.map +1 -1
- package/dist/src/parsers/base.d.ts +1 -1
- package/dist/src/parsers/base.js +1 -1
- package/dist/src/parsers/csharp.d.ts +12 -0
- package/dist/src/parsers/csharp.js +67 -0
- package/dist/src/parsers/csharp.js.map +1 -0
- package/dist/src/parsers/dartTreeSitter.d.ts +1 -1
- package/dist/src/parsers/dartTreeSitter.js +1 -1
- package/dist/src/parsers/go.d.ts +11 -0
- package/dist/src/parsers/go.js +74 -0
- package/dist/src/parsers/go.js.map +1 -0
- package/dist/src/parsers/java.d.ts +12 -0
- package/dist/src/parsers/java.js +62 -0
- package/dist/src/parsers/java.js.map +1 -0
- package/dist/src/parsers/kotlin.d.ts +12 -0
- package/dist/src/parsers/kotlin.js +75 -0
- package/dist/src/parsers/kotlin.js.map +1 -0
- package/dist/src/parsers/php.d.ts +1 -1
- package/dist/src/parsers/php.js +1 -1
- package/dist/src/parsers/python.d.ts +1 -1
- package/dist/src/parsers/python.js +1 -1
- package/dist/src/parsers/registry.d.ts +1 -1
- package/dist/src/parsers/registry.js +63 -2
- package/dist/src/parsers/registry.js.map +1 -1
- package/dist/src/parsers/ruby.d.ts +12 -0
- package/dist/src/parsers/ruby.js +73 -0
- package/dist/src/parsers/ruby.js.map +1 -0
- package/dist/src/parsers/rust.d.ts +12 -0
- package/dist/src/parsers/rust.js +66 -0
- package/dist/src/parsers/rust.js.map +1 -0
- package/dist/src/parsers/typescript.d.ts +1 -1
- package/dist/src/parsers/typescript.js +28 -38
- package/dist/src/parsers/typescript.js.map +1 -1
- package/dist/src/tools/adminHandlers.d.ts +67 -0
- package/dist/src/tools/adminHandlers.js +129 -0
- package/dist/src/tools/adminHandlers.js.map +1 -0
- package/dist/src/tools/context.d.ts +9 -0
- package/dist/src/tools/context.js +21 -0
- package/dist/src/tools/context.js.map +1 -0
- package/dist/src/tools/handlers.d.ts +4 -0
- package/dist/src/tools/handlers.js +5 -0
- package/dist/src/tools/handlers.js.map +1 -0
- package/dist/src/tools/pipeline.d.ts +6 -0
- package/dist/src/tools/pipeline.js +100 -0
- package/dist/src/tools/pipeline.js.map +1 -0
- package/dist/src/tools/readHandlers.d.ts +55 -0
- package/dist/src/tools/readHandlers.js +220 -0
- package/dist/src/tools/readHandlers.js.map +1 -0
- package/dist/src/tools/toolDefinitions.d.ts +1037 -0
- package/dist/src/tools/toolDefinitions.js +13 -0
- package/dist/src/tools/toolDefinitions.js.map +1 -0
- package/dist/src/tools/toolDefinitionsAdmin.d.ts +89 -0
- package/dist/src/tools/toolDefinitionsAdmin.js +99 -0
- package/dist/src/tools/toolDefinitionsAdmin.js.map +1 -0
- package/dist/src/tools/toolDefinitionsCore.d.ts +949 -0
- package/dist/src/tools/toolDefinitionsCore.js +267 -0
- package/dist/src/tools/toolDefinitionsCore.js.map +1 -0
- package/dist/src/tools/writeHandlers.d.ts +37 -0
- package/dist/src/tools/writeHandlers.js +199 -0
- package/dist/src/tools/writeHandlers.js.map +1 -0
- package/dist/src/utils/appDir.d.ts +19 -0
- package/dist/src/utils/appDir.js +50 -0
- package/dist/src/utils/appDir.js.map +1 -0
- package/dist/src/utils/auditLogWriter.d.ts +9 -0
- package/dist/src/utils/auditLogWriter.js +49 -0
- package/dist/src/utils/auditLogWriter.js.map +1 -0
- package/dist/src/utils/auditLogger.d.ts +1 -10
- package/dist/src/utils/auditLogger.js +14 -109
- package/dist/src/utils/auditLogger.js.map +1 -1
- package/dist/src/utils/auditQuery.d.ts +23 -0
- package/dist/src/utils/auditQuery.js +67 -0
- package/dist/src/utils/auditQuery.js.map +1 -0
- package/dist/src/utils/backupManager.d.ts +2 -2
- package/dist/src/utils/backupManager.js +29 -12
- package/dist/src/utils/backupManager.js.map +1 -1
- package/dist/src/utils/constants.d.ts +1 -1
- package/dist/src/utils/constants.js +8 -1
- package/dist/src/utils/constants.js.map +1 -1
- package/dist/src/utils/diff.d.ts +12 -1
- package/dist/src/utils/diff.js +41 -1
- package/dist/src/utils/diff.js.map +1 -1
- package/dist/src/utils/fileLock.d.ts +7 -2
- package/dist/src/utils/fileLock.js +14 -11
- package/dist/src/utils/fileLock.js.map +1 -1
- package/dist/src/utils/fileWalker.d.ts +1 -1
- package/dist/src/utils/fileWalker.js +1 -1
- package/dist/src/utils/fileWatcher.d.ts +1 -1
- package/dist/src/utils/fileWatcher.js +1 -1
- package/dist/src/utils/fuzzySearch.d.ts +1 -1
- package/dist/src/utils/fuzzySearch.js +1 -1
- package/dist/src/utils/logger.d.ts +1 -1
- package/dist/src/utils/logger.js +2 -2
- package/dist/src/utils/logger.js.map +1 -1
- package/dist/src/utils/rateLimiter.d.ts +9 -1
- package/dist/src/utils/rateLimiter.js +12 -1
- package/dist/src/utils/rateLimiter.js.map +1 -1
- package/dist/src/utils/regexValidator.d.ts +12 -0
- package/dist/src/utils/regexValidator.js +48 -0
- package/dist/src/utils/regexValidator.js.map +1 -0
- package/dist/src/utils/safeRegex.d.ts +2 -92
- package/dist/src/utils/safeRegex.js +41 -222
- package/dist/src/utils/safeRegex.js.map +1 -1
- package/dist/src/utils/safeRegexApi.d.ts +56 -0
- package/dist/src/utils/safeRegexApi.js +99 -0
- package/dist/src/utils/safeRegexApi.js.map +1 -0
- package/dist/src/utils/safeRegexPool.d.ts +7 -0
- package/dist/src/utils/safeRegexPool.js +102 -0
- package/dist/src/utils/safeRegexPool.js.map +1 -0
- package/dist/src/utils/searchTools.js +6 -6
- package/dist/src/utils/searchTools.js.map +1 -1
- package/dist/src/utils/streaming.d.ts +4 -3
- package/dist/src/utils/streaming.js +1 -1
- package/dist/src/utils/streaming.js.map +1 -1
- package/dist/src/utils/telemetry.d.ts +1 -1
- package/dist/src/utils/telemetry.js +1 -1
- package/dist/src/utils/toctou.d.ts +7 -0
- package/dist/src/utils/toctou.js +24 -0
- package/dist/src/utils/toctou.js.map +1 -0
- package/llms.txt +173 -21
- package/package.json +2 -2
- package/scripts/replace-version.js +0 -59
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Go Parser - v3.7.0
|
|
3
|
+
* Tree-sitter based Go parser
|
|
4
|
+
*/
|
|
5
|
+
import { BaseParser } from "./base.js";
|
|
6
|
+
export class GoParser extends BaseParser {
|
|
7
|
+
constructor() {
|
|
8
|
+
super("go");
|
|
9
|
+
}
|
|
10
|
+
extractSymbol(tree, symbolName, className) {
|
|
11
|
+
const src = tree.rootNode.text;
|
|
12
|
+
const symbols = this.findSymbols(tree);
|
|
13
|
+
const target = symbols.find(s => s.name === symbolName && (!className || s.className === className));
|
|
14
|
+
return target ? src.substring(target.startIndex, target.endIndex) : null;
|
|
15
|
+
}
|
|
16
|
+
findSymbols(tree) {
|
|
17
|
+
const symbols = [];
|
|
18
|
+
const cursor = tree.walk();
|
|
19
|
+
const src = tree.rootNode.text;
|
|
20
|
+
const offsetToLine = (offset) => src.substring(0, offset).split("\n").length;
|
|
21
|
+
const visit = () => {
|
|
22
|
+
const node = cursor.currentNode;
|
|
23
|
+
// func Name() / func (r Receiver) Name()
|
|
24
|
+
if (node.type === "function_declaration" || node.type === "method_declaration") {
|
|
25
|
+
const nameNode = node.childForFieldName("name");
|
|
26
|
+
if (nameNode) {
|
|
27
|
+
// For methods, extract receiver type as className
|
|
28
|
+
let className;
|
|
29
|
+
if (node.type === "method_declaration") {
|
|
30
|
+
const receiver = node.childForFieldName("receiver");
|
|
31
|
+
const paramDecl = receiver?.namedChild(0);
|
|
32
|
+
const typeNode = paramDecl?.childForFieldName("type");
|
|
33
|
+
className = typeNode?.text?.replace(/^\*/, ""); // strip pointer *
|
|
34
|
+
}
|
|
35
|
+
symbols.push({
|
|
36
|
+
name: nameNode.text,
|
|
37
|
+
type: node.type,
|
|
38
|
+
startIndex: node.startIndex,
|
|
39
|
+
endIndex: node.endIndex,
|
|
40
|
+
startLine: offsetToLine(node.startIndex),
|
|
41
|
+
endLine: offsetToLine(node.endIndex),
|
|
42
|
+
className,
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
// type Name struct/interface
|
|
47
|
+
if (node.type === "type_declaration") {
|
|
48
|
+
const spec = node.namedChild(0);
|
|
49
|
+
if (spec?.type === "type_spec") {
|
|
50
|
+
const nameNode = spec.childForFieldName("name");
|
|
51
|
+
if (nameNode) {
|
|
52
|
+
symbols.push({
|
|
53
|
+
name: nameNode.text,
|
|
54
|
+
type: spec.childForFieldName("type")?.type ?? "type_spec",
|
|
55
|
+
startIndex: node.startIndex,
|
|
56
|
+
endIndex: node.endIndex,
|
|
57
|
+
startLine: offsetToLine(node.startIndex),
|
|
58
|
+
endLine: offsetToLine(node.endIndex),
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
if (cursor.gotoFirstChild()) {
|
|
64
|
+
do {
|
|
65
|
+
visit();
|
|
66
|
+
} while (cursor.gotoNextSibling());
|
|
67
|
+
cursor.gotoParent();
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
visit();
|
|
71
|
+
return symbols;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=go.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"go.js","sourceRoot":"","sources":["../../../src/parsers/go.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Java Parser - v3.7.0
|
|
3
|
+
* Tree-sitter based Java parser
|
|
4
|
+
*/
|
|
5
|
+
import { Tree } from "web-tree-sitter";
|
|
6
|
+
import { BaseParser, SymbolInfo } from "./base.js";
|
|
7
|
+
export declare class JavaParser extends BaseParser {
|
|
8
|
+
constructor();
|
|
9
|
+
extractSymbol(tree: Tree, symbolName: string, className?: string): string | null;
|
|
10
|
+
findSymbols(tree: Tree): SymbolInfo[];
|
|
11
|
+
private findParentClass;
|
|
12
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Java Parser - v3.7.0
|
|
3
|
+
* Tree-sitter based Java parser
|
|
4
|
+
*/
|
|
5
|
+
import { BaseParser } from "./base.js";
|
|
6
|
+
export class JavaParser extends BaseParser {
|
|
7
|
+
constructor() {
|
|
8
|
+
super("java");
|
|
9
|
+
}
|
|
10
|
+
extractSymbol(tree, symbolName, className) {
|
|
11
|
+
const src = tree.rootNode.text;
|
|
12
|
+
const symbols = this.findSymbols(tree);
|
|
13
|
+
const target = symbols.find(s => s.name === symbolName && (!className || s.className === className));
|
|
14
|
+
return target ? src.substring(target.startIndex, target.endIndex) : null;
|
|
15
|
+
}
|
|
16
|
+
findSymbols(tree) {
|
|
17
|
+
const symbols = [];
|
|
18
|
+
const cursor = tree.walk();
|
|
19
|
+
const src = tree.rootNode.text;
|
|
20
|
+
const offsetToLine = (offset) => src.substring(0, offset).split("\n").length;
|
|
21
|
+
const visit = () => {
|
|
22
|
+
const node = cursor.currentNode;
|
|
23
|
+
if (node.type === "class_declaration" ||
|
|
24
|
+
node.type === "interface_declaration" ||
|
|
25
|
+
node.type === "enum_declaration" ||
|
|
26
|
+
node.type === "method_declaration" ||
|
|
27
|
+
node.type === "constructor_declaration") {
|
|
28
|
+
const nameNode = node.childForFieldName("name");
|
|
29
|
+
if (nameNode) {
|
|
30
|
+
const parentClass = this.findParentClass(node);
|
|
31
|
+
symbols.push({
|
|
32
|
+
name: nameNode.text,
|
|
33
|
+
type: node.type,
|
|
34
|
+
startIndex: node.startIndex,
|
|
35
|
+
endIndex: node.endIndex,
|
|
36
|
+
startLine: offsetToLine(node.startIndex),
|
|
37
|
+
endLine: offsetToLine(node.endIndex),
|
|
38
|
+
className: parentClass?.childForFieldName("name")?.text,
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
if (cursor.gotoFirstChild()) {
|
|
43
|
+
do {
|
|
44
|
+
visit();
|
|
45
|
+
} while (cursor.gotoNextSibling());
|
|
46
|
+
cursor.gotoParent();
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
visit();
|
|
50
|
+
return symbols;
|
|
51
|
+
}
|
|
52
|
+
findParentClass(node) {
|
|
53
|
+
let current = node.parent;
|
|
54
|
+
while (current) {
|
|
55
|
+
if (current.type === "class_declaration")
|
|
56
|
+
return current;
|
|
57
|
+
current = current.parent;
|
|
58
|
+
}
|
|
59
|
+
return null;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=java.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"java.js","sourceRoot":"","sources":["../../../src/parsers/java.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Kotlin Parser - v3.7.0
|
|
3
|
+
* Tree-sitter based Kotlin parser
|
|
4
|
+
*/
|
|
5
|
+
import { Tree } from "web-tree-sitter";
|
|
6
|
+
import { BaseParser, SymbolInfo } from "./base.js";
|
|
7
|
+
export declare class KotlinParser extends BaseParser {
|
|
8
|
+
constructor();
|
|
9
|
+
extractSymbol(tree: Tree, symbolName: string, className?: string): string | null;
|
|
10
|
+
findSymbols(tree: Tree): SymbolInfo[];
|
|
11
|
+
private findParentClass;
|
|
12
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Kotlin Parser - v3.7.0
|
|
3
|
+
* Tree-sitter based Kotlin parser
|
|
4
|
+
*/
|
|
5
|
+
import { BaseParser } from "./base.js";
|
|
6
|
+
export class KotlinParser extends BaseParser {
|
|
7
|
+
constructor() {
|
|
8
|
+
super("kotlin");
|
|
9
|
+
}
|
|
10
|
+
extractSymbol(tree, symbolName, className) {
|
|
11
|
+
const src = tree.rootNode.text;
|
|
12
|
+
const symbols = this.findSymbols(tree);
|
|
13
|
+
const target = symbols.find(s => s.name === symbolName && (!className || s.className === className));
|
|
14
|
+
return target ? src.substring(target.startIndex, target.endIndex) : null;
|
|
15
|
+
}
|
|
16
|
+
findSymbols(tree) {
|
|
17
|
+
const symbols = [];
|
|
18
|
+
const cursor = tree.walk();
|
|
19
|
+
const src = tree.rootNode.text;
|
|
20
|
+
const offsetToLine = (offset) => src.substring(0, offset).split("\n").length;
|
|
21
|
+
const visit = () => {
|
|
22
|
+
const node = cursor.currentNode;
|
|
23
|
+
if (node.type === "class_declaration" ||
|
|
24
|
+
node.type === "object_declaration" ||
|
|
25
|
+
node.type === "interface_declaration") {
|
|
26
|
+
const nameNode = node.children.find(c => c !== null && c.type === "type_identifier");
|
|
27
|
+
if (nameNode) {
|
|
28
|
+
symbols.push({
|
|
29
|
+
name: nameNode.text,
|
|
30
|
+
type: node.type,
|
|
31
|
+
startIndex: node.startIndex,
|
|
32
|
+
endIndex: node.endIndex,
|
|
33
|
+
startLine: offsetToLine(node.startIndex),
|
|
34
|
+
endLine: offsetToLine(node.endIndex),
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
if (node.type === "function_declaration") {
|
|
39
|
+
const nameNode = node.children.find(c => c !== null && c.type === "simple_identifier");
|
|
40
|
+
if (nameNode) {
|
|
41
|
+
const parentClass = this.findParentClass(node);
|
|
42
|
+
const classNameNode = parentClass?.children.find(c => c !== null && c.type === "type_identifier");
|
|
43
|
+
symbols.push({
|
|
44
|
+
name: nameNode.text,
|
|
45
|
+
type: node.type,
|
|
46
|
+
startIndex: node.startIndex,
|
|
47
|
+
endIndex: node.endIndex,
|
|
48
|
+
startLine: offsetToLine(node.startIndex),
|
|
49
|
+
endLine: offsetToLine(node.endIndex),
|
|
50
|
+
className: classNameNode?.text,
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
if (cursor.gotoFirstChild()) {
|
|
55
|
+
do {
|
|
56
|
+
visit();
|
|
57
|
+
} while (cursor.gotoNextSibling());
|
|
58
|
+
cursor.gotoParent();
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
visit();
|
|
62
|
+
return symbols;
|
|
63
|
+
}
|
|
64
|
+
findParentClass(node) {
|
|
65
|
+
let current = node.parent;
|
|
66
|
+
while (current) {
|
|
67
|
+
if (current.type === "class_declaration" ||
|
|
68
|
+
current.type === "object_declaration")
|
|
69
|
+
return current;
|
|
70
|
+
current = current.parent;
|
|
71
|
+
}
|
|
72
|
+
return null;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=kotlin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kotlin.js","sourceRoot":"","sources":["../../../src/parsers/kotlin.ts"],"names":[],"mappings":"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"}
|
package/dist/src/parsers/php.js
CHANGED
|
@@ -1,11 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Parser Registry - v3.
|
|
2
|
+
* Parser Registry - v3.7.0
|
|
3
3
|
* Manages all language parsers
|
|
4
4
|
*/
|
|
5
5
|
import { TypeScriptParser } from "./typescript.js";
|
|
6
6
|
import { PythonParser } from "./python.js";
|
|
7
7
|
import { PHPParser } from "./php.js";
|
|
8
8
|
import { DartTreeSitterParser } from "./dartTreeSitter.js";
|
|
9
|
+
import { JavaParser } from "./java.js";
|
|
10
|
+
import { GoParser } from "./go.js";
|
|
11
|
+
import { CSharpParser } from "./csharp.js";
|
|
12
|
+
import { RubyParser } from "./ruby.js";
|
|
13
|
+
import { RustParser } from "./rust.js";
|
|
14
|
+
import { KotlinParser } from "./kotlin.js";
|
|
9
15
|
export class ParserRegistry {
|
|
10
16
|
parsers = new Map();
|
|
11
17
|
engine;
|
|
@@ -20,6 +26,13 @@ export class ParserRegistry {
|
|
|
20
26
|
[".pyi", "python"],
|
|
21
27
|
[".php", "php"],
|
|
22
28
|
[".dart", "dart"],
|
|
29
|
+
[".java", "java"],
|
|
30
|
+
[".go", "go"],
|
|
31
|
+
[".cs", "c_sharp"],
|
|
32
|
+
[".rb", "ruby"],
|
|
33
|
+
[".rs", "rust"],
|
|
34
|
+
[".kt", "kotlin"],
|
|
35
|
+
[".kts", "kotlin"],
|
|
23
36
|
]);
|
|
24
37
|
constructor(engine) {
|
|
25
38
|
this.engine = engine;
|
|
@@ -57,7 +70,55 @@ export class ParserRegistry {
|
|
|
57
70
|
const dartParser = new DartTreeSitterParser();
|
|
58
71
|
await dartParser.init(this.engine.createParser(), dartLang);
|
|
59
72
|
this.parsers.set("dart", dartParser);
|
|
60
|
-
|
|
73
|
+
// Load Java
|
|
74
|
+
await this.engine.loadLanguage("java");
|
|
75
|
+
const javaLang = this.engine.getLanguage("java");
|
|
76
|
+
if (!javaLang)
|
|
77
|
+
throw new Error("Failed to load Java language");
|
|
78
|
+
const javaParser = new JavaParser();
|
|
79
|
+
await javaParser.init(this.engine.createParser(), javaLang);
|
|
80
|
+
this.parsers.set("java", javaParser);
|
|
81
|
+
// Load Go
|
|
82
|
+
await this.engine.loadLanguage("go");
|
|
83
|
+
const goLang = this.engine.getLanguage("go");
|
|
84
|
+
if (!goLang)
|
|
85
|
+
throw new Error("Failed to load Go language");
|
|
86
|
+
const goParser = new GoParser();
|
|
87
|
+
await goParser.init(this.engine.createParser(), goLang);
|
|
88
|
+
this.parsers.set("go", goParser);
|
|
89
|
+
// Load C#
|
|
90
|
+
await this.engine.loadLanguage("c_sharp");
|
|
91
|
+
const csharpLang = this.engine.getLanguage("c_sharp");
|
|
92
|
+
if (!csharpLang)
|
|
93
|
+
throw new Error("Failed to load C# language");
|
|
94
|
+
const csharpParser = new CSharpParser();
|
|
95
|
+
await csharpParser.init(this.engine.createParser(), csharpLang);
|
|
96
|
+
this.parsers.set("c_sharp", csharpParser);
|
|
97
|
+
// Load Ruby
|
|
98
|
+
await this.engine.loadLanguage("ruby");
|
|
99
|
+
const rubyLang = this.engine.getLanguage("ruby");
|
|
100
|
+
if (!rubyLang)
|
|
101
|
+
throw new Error("Failed to load Ruby language");
|
|
102
|
+
const rubyParser = new RubyParser();
|
|
103
|
+
await rubyParser.init(this.engine.createParser(), rubyLang);
|
|
104
|
+
this.parsers.set("ruby", rubyParser);
|
|
105
|
+
// Load Rust
|
|
106
|
+
await this.engine.loadLanguage("rust");
|
|
107
|
+
const rustLang = this.engine.getLanguage("rust");
|
|
108
|
+
if (!rustLang)
|
|
109
|
+
throw new Error("Failed to load Rust language");
|
|
110
|
+
const rustParser = new RustParser();
|
|
111
|
+
await rustParser.init(this.engine.createParser(), rustLang);
|
|
112
|
+
this.parsers.set("rust", rustParser);
|
|
113
|
+
// Load Kotlin
|
|
114
|
+
await this.engine.loadLanguage("kotlin");
|
|
115
|
+
const kotlinLang = this.engine.getLanguage("kotlin");
|
|
116
|
+
if (!kotlinLang)
|
|
117
|
+
throw new Error("Failed to load Kotlin language");
|
|
118
|
+
const kotlinParser = new KotlinParser();
|
|
119
|
+
await kotlinParser.init(this.engine.createParser(), kotlinLang);
|
|
120
|
+
this.parsers.set("kotlin", kotlinParser);
|
|
121
|
+
console.error("✅ Parsers loaded: TS/Python/PHP/Dart/Java/Go/C#/Ruby/Rust/Kotlin (WASM)");
|
|
61
122
|
}
|
|
62
123
|
getParser(fileExtension) {
|
|
63
124
|
const language = this.extensionMap.get(fileExtension);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/parsers/registry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/parsers/registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ruby Parser - v3.7.0
|
|
3
|
+
* Tree-sitter based Ruby parser
|
|
4
|
+
*/
|
|
5
|
+
import { Tree } from "web-tree-sitter";
|
|
6
|
+
import { BaseParser, SymbolInfo } from "./base.js";
|
|
7
|
+
export declare class RubyParser extends BaseParser {
|
|
8
|
+
constructor();
|
|
9
|
+
extractSymbol(tree: Tree, symbolName: string, className?: string): string | null;
|
|
10
|
+
findSymbols(tree: Tree): SymbolInfo[];
|
|
11
|
+
private findParentClass;
|
|
12
|
+
}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ruby Parser - v3.7.0
|
|
3
|
+
* Tree-sitter based Ruby parser
|
|
4
|
+
*/
|
|
5
|
+
import { BaseParser } from "./base.js";
|
|
6
|
+
export class RubyParser extends BaseParser {
|
|
7
|
+
constructor() {
|
|
8
|
+
super("ruby");
|
|
9
|
+
}
|
|
10
|
+
extractSymbol(tree, symbolName, className) {
|
|
11
|
+
const src = tree.rootNode.text;
|
|
12
|
+
const symbols = this.findSymbols(tree);
|
|
13
|
+
const target = symbols.find(s => s.name === symbolName && (!className || s.className === className));
|
|
14
|
+
return target ? src.substring(target.startIndex, target.endIndex) : null;
|
|
15
|
+
}
|
|
16
|
+
findSymbols(tree) {
|
|
17
|
+
const symbols = [];
|
|
18
|
+
const cursor = tree.walk();
|
|
19
|
+
const src = tree.rootNode.text;
|
|
20
|
+
const offsetToLine = (offset) => src.substring(0, offset).split("\n").length;
|
|
21
|
+
const visit = () => {
|
|
22
|
+
const node = cursor.currentNode;
|
|
23
|
+
// class Foo / module Foo
|
|
24
|
+
if (node.type === "class" || node.type === "module") {
|
|
25
|
+
const nameNode = node.childForFieldName("name");
|
|
26
|
+
if (nameNode) {
|
|
27
|
+
symbols.push({
|
|
28
|
+
name: nameNode.text,
|
|
29
|
+
type: node.type,
|
|
30
|
+
startIndex: node.startIndex,
|
|
31
|
+
endIndex: node.endIndex,
|
|
32
|
+
startLine: offsetToLine(node.startIndex),
|
|
33
|
+
endLine: offsetToLine(node.endIndex),
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
// def method_name / def self.method_name
|
|
38
|
+
if (node.type === "method" || node.type === "singleton_method") {
|
|
39
|
+
const nameNode = node.childForFieldName("name");
|
|
40
|
+
if (nameNode) {
|
|
41
|
+
const parentClass = this.findParentClass(node);
|
|
42
|
+
symbols.push({
|
|
43
|
+
name: nameNode.text,
|
|
44
|
+
type: node.type,
|
|
45
|
+
startIndex: node.startIndex,
|
|
46
|
+
endIndex: node.endIndex,
|
|
47
|
+
startLine: offsetToLine(node.startIndex),
|
|
48
|
+
endLine: offsetToLine(node.endIndex),
|
|
49
|
+
className: parentClass?.childForFieldName("name")?.text,
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
if (cursor.gotoFirstChild()) {
|
|
54
|
+
do {
|
|
55
|
+
visit();
|
|
56
|
+
} while (cursor.gotoNextSibling());
|
|
57
|
+
cursor.gotoParent();
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
visit();
|
|
61
|
+
return symbols;
|
|
62
|
+
}
|
|
63
|
+
findParentClass(node) {
|
|
64
|
+
let current = node.parent;
|
|
65
|
+
while (current) {
|
|
66
|
+
if (current.type === "class" || current.type === "module")
|
|
67
|
+
return current;
|
|
68
|
+
current = current.parent;
|
|
69
|
+
}
|
|
70
|
+
return null;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=ruby.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ruby.js","sourceRoot":"","sources":["../../../src/parsers/ruby.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rust Parser - v3.7.0
|
|
3
|
+
* Tree-sitter based Rust parser
|
|
4
|
+
*/
|
|
5
|
+
import { Tree } from "web-tree-sitter";
|
|
6
|
+
import { BaseParser, SymbolInfo } from "./base.js";
|
|
7
|
+
export declare class RustParser extends BaseParser {
|
|
8
|
+
constructor();
|
|
9
|
+
extractSymbol(tree: Tree, symbolName: string, className?: string): string | null;
|
|
10
|
+
findSymbols(tree: Tree): SymbolInfo[];
|
|
11
|
+
private findParentImpl;
|
|
12
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rust Parser - v3.7.0
|
|
3
|
+
* Tree-sitter based Rust parser
|
|
4
|
+
*/
|
|
5
|
+
import { BaseParser } from "./base.js";
|
|
6
|
+
export class RustParser extends BaseParser {
|
|
7
|
+
constructor() {
|
|
8
|
+
super("rust");
|
|
9
|
+
}
|
|
10
|
+
extractSymbol(tree, symbolName, className) {
|
|
11
|
+
const src = tree.rootNode.text;
|
|
12
|
+
const symbols = this.findSymbols(tree);
|
|
13
|
+
const target = symbols.find(s => s.name === symbolName && (!className || s.className === className));
|
|
14
|
+
return target ? src.substring(target.startIndex, target.endIndex) : null;
|
|
15
|
+
}
|
|
16
|
+
findSymbols(tree) {
|
|
17
|
+
const symbols = [];
|
|
18
|
+
const cursor = tree.walk();
|
|
19
|
+
const src = tree.rootNode.text;
|
|
20
|
+
const offsetToLine = (offset) => src.substring(0, offset).split("\n").length;
|
|
21
|
+
const visit = () => {
|
|
22
|
+
const node = cursor.currentNode;
|
|
23
|
+
if (node.type === "function_item" ||
|
|
24
|
+
node.type === "struct_item" ||
|
|
25
|
+
node.type === "enum_item" ||
|
|
26
|
+
node.type === "trait_item" ||
|
|
27
|
+
node.type === "impl_item" ||
|
|
28
|
+
node.type === "type_item") {
|
|
29
|
+
const nameNode = node.childForFieldName("name");
|
|
30
|
+
if (nameNode) {
|
|
31
|
+
const parentImpl = this.findParentImpl(node);
|
|
32
|
+
symbols.push({
|
|
33
|
+
name: nameNode.text,
|
|
34
|
+
type: node.type,
|
|
35
|
+
startIndex: node.startIndex,
|
|
36
|
+
endIndex: node.endIndex,
|
|
37
|
+
startLine: offsetToLine(node.startIndex),
|
|
38
|
+
endLine: offsetToLine(node.endIndex),
|
|
39
|
+
className: parentImpl,
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
if (cursor.gotoFirstChild()) {
|
|
44
|
+
do {
|
|
45
|
+
visit();
|
|
46
|
+
} while (cursor.gotoNextSibling());
|
|
47
|
+
cursor.gotoParent();
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
visit();
|
|
51
|
+
return symbols;
|
|
52
|
+
}
|
|
53
|
+
// Returns the type name of the parent impl block (e.g. impl MyStruct)
|
|
54
|
+
findParentImpl(node) {
|
|
55
|
+
let current = node.parent;
|
|
56
|
+
while (current) {
|
|
57
|
+
if (current.type === "impl_item") {
|
|
58
|
+
const typeNode = current.childForFieldName("type");
|
|
59
|
+
return typeNode?.text;
|
|
60
|
+
}
|
|
61
|
+
current = current.parent;
|
|
62
|
+
}
|
|
63
|
+
return undefined;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=rust.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rust.js","sourceRoot":"","sources":["../../../src/parsers/rust.ts"],"names":[],"mappings":"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"}
|