edhindex 1.0.2 → 1.1.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.
Files changed (136) hide show
  1. package/README.md +43 -9
  2. package/dist/cli/commands/index_cmd.d.ts.map +1 -1
  3. package/dist/cli/commands/index_cmd.js +2 -0
  4. package/dist/cli/commands/index_cmd.js.map +1 -1
  5. package/dist/cli/commands/start.d.ts.map +1 -1
  6. package/dist/cli/commands/start.js +3 -1
  7. package/dist/cli/commands/start.js.map +1 -1
  8. package/dist/config/index.js +1 -1
  9. package/dist/config/index.js.map +1 -1
  10. package/dist/graph/builder.d.ts.map +1 -1
  11. package/dist/graph/builder.js +5 -0
  12. package/dist/graph/builder.js.map +1 -1
  13. package/dist/indexer/chunker.d.ts +2 -2
  14. package/dist/indexer/chunker.d.ts.map +1 -1
  15. package/dist/indexer/chunker.js +7 -5
  16. package/dist/indexer/chunker.js.map +1 -1
  17. package/dist/indexer/file-utils.d.ts +2 -3
  18. package/dist/indexer/file-utils.d.ts.map +1 -1
  19. package/dist/indexer/file-utils.js +4 -33
  20. package/dist/indexer/file-utils.js.map +1 -1
  21. package/dist/indexer/fixture.test.d.ts +2 -0
  22. package/dist/indexer/fixture.test.d.ts.map +1 -0
  23. package/dist/indexer/fixture.test.js +104 -0
  24. package/dist/indexer/fixture.test.js.map +1 -0
  25. package/dist/indexer/indexer.d.ts +3 -1
  26. package/dist/indexer/indexer.d.ts.map +1 -1
  27. package/dist/indexer/indexer.js +8 -32
  28. package/dist/indexer/indexer.js.map +1 -1
  29. package/dist/indexer/parser.d.ts.map +1 -1
  30. package/dist/indexer/parser.js +196 -14
  31. package/dist/indexer/parser.js.map +1 -1
  32. package/dist/indexer/parser.test.d.ts +2 -0
  33. package/dist/indexer/parser.test.d.ts.map +1 -0
  34. package/dist/indexer/parser.test.js +120 -0
  35. package/dist/indexer/parser.test.js.map +1 -0
  36. package/dist/language/adapters/c.d.ts +7 -0
  37. package/dist/language/adapters/c.d.ts.map +1 -0
  38. package/dist/language/adapters/c.js +25 -0
  39. package/dist/language/adapters/c.js.map +1 -0
  40. package/dist/language/adapters/cpp.d.ts +7 -0
  41. package/dist/language/adapters/cpp.d.ts.map +1 -0
  42. package/dist/language/adapters/cpp.js +29 -0
  43. package/dist/language/adapters/cpp.js.map +1 -0
  44. package/dist/language/adapters/csharp.d.ts +7 -0
  45. package/dist/language/adapters/csharp.d.ts.map +1 -0
  46. package/dist/language/adapters/csharp.js +32 -0
  47. package/dist/language/adapters/csharp.js.map +1 -0
  48. package/dist/language/adapters/css.d.ts +10 -0
  49. package/dist/language/adapters/css.d.ts.map +1 -0
  50. package/dist/language/adapters/css.js +54 -0
  51. package/dist/language/adapters/css.js.map +1 -0
  52. package/dist/language/adapters/go.d.ts +7 -0
  53. package/dist/language/adapters/go.d.ts.map +1 -0
  54. package/dist/language/adapters/go.js +26 -0
  55. package/dist/language/adapters/go.js.map +1 -0
  56. package/dist/language/adapters/html.d.ts +11 -0
  57. package/dist/language/adapters/html.d.ts.map +1 -0
  58. package/dist/language/adapters/html.js +67 -0
  59. package/dist/language/adapters/html.js.map +1 -0
  60. package/dist/language/adapters/java.d.ts +7 -0
  61. package/dist/language/adapters/java.d.ts.map +1 -0
  62. package/dist/language/adapters/java.js +30 -0
  63. package/dist/language/adapters/java.js.map +1 -0
  64. package/dist/language/adapters/javascript.d.ts +7 -0
  65. package/dist/language/adapters/javascript.d.ts.map +1 -0
  66. package/dist/language/adapters/javascript.js +31 -0
  67. package/dist/language/adapters/javascript.js.map +1 -0
  68. package/dist/language/adapters/json.d.ts +11 -0
  69. package/dist/language/adapters/json.d.ts.map +1 -0
  70. package/dist/language/adapters/json.js +57 -0
  71. package/dist/language/adapters/json.js.map +1 -0
  72. package/dist/language/adapters/php.d.ts +7 -0
  73. package/dist/language/adapters/php.d.ts.map +1 -0
  74. package/dist/language/adapters/php.js +29 -0
  75. package/dist/language/adapters/php.js.map +1 -0
  76. package/dist/language/adapters/python.d.ts +7 -0
  77. package/dist/language/adapters/python.d.ts.map +1 -0
  78. package/dist/language/adapters/python.js +27 -0
  79. package/dist/language/adapters/python.js.map +1 -0
  80. package/dist/language/adapters/ruby.d.ts +7 -0
  81. package/dist/language/adapters/ruby.d.ts.map +1 -0
  82. package/dist/language/adapters/ruby.js +29 -0
  83. package/dist/language/adapters/ruby.js.map +1 -0
  84. package/dist/language/adapters/rust.d.ts +7 -0
  85. package/dist/language/adapters/rust.d.ts.map +1 -0
  86. package/dist/language/adapters/rust.js +31 -0
  87. package/dist/language/adapters/rust.js.map +1 -0
  88. package/dist/language/adapters/typescript.d.ts +7 -0
  89. package/dist/language/adapters/typescript.d.ts.map +1 -0
  90. package/dist/language/adapters/typescript.js +35 -0
  91. package/dist/language/adapters/typescript.js.map +1 -0
  92. package/dist/language/base.d.ts +34 -0
  93. package/dist/language/base.d.ts.map +1 -0
  94. package/dist/language/base.js +144 -0
  95. package/dist/language/base.js.map +1 -0
  96. package/dist/language/generic.d.ts +11 -0
  97. package/dist/language/generic.d.ts.map +1 -0
  98. package/dist/language/generic.js +51 -0
  99. package/dist/language/generic.js.map +1 -0
  100. package/dist/language/registry.d.ts +29 -0
  101. package/dist/language/registry.d.ts.map +1 -0
  102. package/dist/language/registry.js +111 -0
  103. package/dist/language/registry.js.map +1 -0
  104. package/dist/language/types.d.ts +55 -0
  105. package/dist/language/types.d.ts.map +1 -0
  106. package/dist/language/types.js +23 -0
  107. package/dist/language/types.js.map +1 -0
  108. package/package.json +19 -3
  109. package/src/cli/commands/index_cmd.ts +2 -0
  110. package/src/cli/commands/start.ts +3 -1
  111. package/src/config/index.ts +1 -1
  112. package/src/graph/builder.ts +5 -0
  113. package/src/indexer/chunker.ts +9 -7
  114. package/src/indexer/file-utils.ts +6 -38
  115. package/src/indexer/fixture.test.ts +121 -0
  116. package/src/indexer/indexer.ts +17 -41
  117. package/src/indexer/parser.test.ts +127 -0
  118. package/src/indexer/parser.ts +194 -13
  119. package/src/language/adapters/c.ts +27 -0
  120. package/src/language/adapters/cpp.ts +31 -0
  121. package/src/language/adapters/csharp.ts +34 -0
  122. package/src/language/adapters/css.ts +57 -0
  123. package/src/language/adapters/go.ts +28 -0
  124. package/src/language/adapters/html.ts +68 -0
  125. package/src/language/adapters/java.ts +32 -0
  126. package/src/language/adapters/javascript.ts +33 -0
  127. package/src/language/adapters/json.ts +60 -0
  128. package/src/language/adapters/php.ts +31 -0
  129. package/src/language/adapters/python.ts +29 -0
  130. package/src/language/adapters/ruby.ts +31 -0
  131. package/src/language/adapters/rust.ts +33 -0
  132. package/src/language/adapters/typescript.ts +37 -0
  133. package/src/language/base.ts +167 -0
  134. package/src/language/generic.ts +58 -0
  135. package/src/language/registry.ts +126 -0
  136. package/src/language/types.ts +58 -0
@@ -0,0 +1,120 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import { LanguageRegistry } from '../language/registry.js';
3
+ const registry = new LanguageRegistry();
4
+ const adapters = registry.getInfoList().filter(a => a.key !== 'generic');
5
+ describe('Language Adapter Registry', () => {
6
+ it('registers all adapters', () => {
7
+ expect(adapters.length).toBeGreaterThan(0);
8
+ expect(adapters.find(a => a.key === 'ts')).toBeTruthy();
9
+ expect(adapters.find(a => a.key === 'py')).toBeTruthy();
10
+ expect(adapters.find(a => a.key === 'go')).toBeTruthy();
11
+ expect(adapters.find(a => a.key === 'rs')).toBeTruthy();
12
+ expect(adapters.find(a => a.key === 'java')).toBeTruthy();
13
+ expect(adapters.find(a => a.key === 'html')).toBeTruthy();
14
+ expect(adapters.find(a => a.key === 'css')).toBeTruthy();
15
+ expect(adapters.find(a => a.key === 'json')).toBeTruthy();
16
+ });
17
+ it('maps file extensions to correct adapters', () => {
18
+ expect(registry.getAdapter('file.ts').key).toBe('ts');
19
+ expect(registry.getAdapter('file.js').key).toBe('js');
20
+ expect(registry.getAdapter('file.py').key).toBe('py');
21
+ expect(registry.getAdapter('file.go').key).toBe('go');
22
+ expect(registry.getAdapter('file.rs').key).toBe('rs');
23
+ expect(registry.getAdapter('file.java').key).toBe('java');
24
+ expect(registry.getAdapter('file.rb').key).toBe('rb');
25
+ expect(registry.getAdapter('file.c').key).toBe('c');
26
+ expect(registry.getAdapter('file.cpp').key).toBe('cpp');
27
+ expect(registry.getAdapter('file.cs').key).toBe('csharp');
28
+ expect(registry.getAdapter('file.php').key).toBe('php');
29
+ expect(registry.getAdapter('file.html').key).toBe('html');
30
+ expect(registry.getAdapter('file.css').key).toBe('css');
31
+ expect(registry.getAdapter('file.json').key).toBe('json');
32
+ });
33
+ it('returns generic for unknown extensions', () => {
34
+ const { adapter, key } = registry.getAdapter('file.xyz');
35
+ expect(key).toBe('generic');
36
+ expect(adapter.languageName()).toBe('Generic');
37
+ });
38
+ });
39
+ const SAMPLES = {
40
+ ts: `import { readFileSync } from 'node:fs';
41
+ export interface Config { name: string }
42
+ export class App { start() {} }
43
+ function helper() {}`,
44
+ js: `const { join } = require('node:path');
45
+ class App { constructor() { this.name = 'app'; } }
46
+ function helper() {}`,
47
+ py: `import os
48
+ def hello(name):
49
+ pass
50
+ class App:
51
+ def start(self):
52
+ pass`,
53
+ go: `package main
54
+ import "fmt"
55
+ func hello() {}
56
+ func (a App) Start() {}`,
57
+ rs: `use std::fs;
58
+ pub struct User { name: String }
59
+ pub trait Runner { fn run(&self); }
60
+ pub fn hello() -> String { "hi".into() }
61
+ enum Color { Red, Green }`,
62
+ java: `import java.util.List;
63
+ public class App {
64
+ public void start() {}
65
+ public interface Handler { void handle(); }
66
+ }`,
67
+ rb: `require 'json'
68
+ module App
69
+ class User
70
+ def login; end
71
+ end
72
+ end`,
73
+ c: `#include <stdio.h>
74
+ struct Point { int x; int y; };
75
+ void hello() { printf("hi"); }`,
76
+ cpp: `#include <vector>
77
+ class App { void start() {} };
78
+ struct Point { int x; };
79
+ void hello() {}`,
80
+ csharp: `using System;
81
+ class App { void Start() {} }
82
+ interface IHandler { void Handle(); }`,
83
+ php: `<?php
84
+ function hello() {}
85
+ class App {
86
+ public function start() {}
87
+ }`,
88
+ json: `{ "name": "test", "version": "1.0.0" }`,
89
+ css: `.btn { color: red; }
90
+ #header { font-size: 16px; }`,
91
+ html: `<!DOCTYPE html><html><body><p>Hello</p></body></html>`,
92
+ };
93
+ for (const info of adapters) {
94
+ const sample = SAMPLES[info.key];
95
+ if (!sample)
96
+ continue;
97
+ describe(`${info.name} (${info.key})`, () => {
98
+ const { adapter } = registry.getAdapter(`file.${info.extensions[0]?.replace('.', '') || 'txt'}`);
99
+ it('parses content', async () => {
100
+ const result = await adapter.parse(sample, `file${info.extensions[0] || ''}`);
101
+ expect(result).toBeTruthy();
102
+ expect(Array.isArray(result.symbols)).toBe(true);
103
+ expect(Array.isArray(result.imports)).toBe(true);
104
+ expect(Array.isArray(result.exports)).toBe(true);
105
+ }, 30000);
106
+ if (info.supportsSymbols) {
107
+ it('extracts symbols', async () => {
108
+ const result = await adapter.parse(sample, `file${info.extensions[0] || ''}`);
109
+ expect(result.symbols.length).toBeGreaterThan(0);
110
+ for (const sym of result.symbols) {
111
+ expect(sym.name).toBeTruthy();
112
+ expect(sym.type).toBeTruthy();
113
+ expect(sym.startLine).toBeGreaterThan(0);
114
+ expect(sym.endLine).toBeGreaterThanOrEqual(sym.startLine);
115
+ }
116
+ }, 30000);
117
+ }
118
+ });
119
+ }
120
+ //# sourceMappingURL=parser.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.test.js","sourceRoot":"","sources":["../../src/indexer/parser.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { BaseTreeSitterAdapter, GrammarConfig } from '../base.js';
2
+ export declare class CAdapter extends BaseTreeSitterAdapter {
3
+ protected grammar: GrammarConfig;
4
+ languageName(): string;
5
+ fileExtensions(): string[];
6
+ }
7
+ //# sourceMappingURL=c.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"c.d.ts","sourceRoot":"","sources":["../../../src/language/adapters/c.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAqBlE,qBAAa,QAAS,SAAQ,qBAAqB;IACjD,SAAS,CAAC,OAAO,gBAAW;IAC5B,YAAY,IAAI,MAAM;IACtB,cAAc,IAAI,MAAM,EAAE;CAC3B"}
@@ -0,0 +1,25 @@
1
+ import { createRequire } from 'node:module';
2
+ import { BaseTreeSitterAdapter } from '../base.js';
3
+ import { SymbolType } from '../types.js';
4
+ const require = createRequire(import.meta.url);
5
+ const GRAMMAR = {
6
+ language: 'c',
7
+ wasmPath: require.resolve('tree-sitter-c/tree-sitter-c.wasm'),
8
+ queryPatterns: {
9
+ function_definition: '(function_definition declarator: (function_declarator declarator: (identifier) @name))',
10
+ struct_specifier: '(struct_specifier name: (type_identifier) @name)',
11
+ },
12
+ typeMap: {
13
+ function_definition: SymbolType.Function,
14
+ struct_specifier: SymbolType.Struct,
15
+ },
16
+ nameNodeTypes: ['identifier', 'type_identifier', 'field_identifier'],
17
+ importNodeTypes: ['preproc_include'],
18
+ exportNodeTypes: [],
19
+ };
20
+ export class CAdapter extends BaseTreeSitterAdapter {
21
+ grammar = GRAMMAR;
22
+ languageName() { return 'C'; }
23
+ fileExtensions() { return ['.c', '.h']; }
24
+ }
25
+ //# sourceMappingURL=c.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"c.js","sourceRoot":"","sources":["../../../src/language/adapters/c.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAiB,MAAM,YAAY,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE/C,MAAM,OAAO,GAAkB;IAC7B,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,kCAAkC,CAAC;IAC7D,aAAa,EAAE;QACb,mBAAmB,EAAE,wFAAwF;QAC7G,gBAAgB,EAAE,kDAAkD;KACrE;IACD,OAAO,EAAE;QACP,mBAAmB,EAAE,UAAU,CAAC,QAAQ;QACxC,gBAAgB,EAAE,UAAU,CAAC,MAAM;KACpC;IACD,aAAa,EAAE,CAAC,YAAY,EAAE,iBAAiB,EAAE,kBAAkB,CAAC;IACpE,eAAe,EAAE,CAAC,iBAAiB,CAAC;IACpC,eAAe,EAAE,EAAE;CACpB,CAAC;AAEF,MAAM,OAAO,QAAS,SAAQ,qBAAqB;IACvC,OAAO,GAAG,OAAO,CAAC;IAC5B,YAAY,KAAa,OAAO,GAAG,CAAC,CAAC,CAAC;IACtC,cAAc,KAAe,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;CACpD"}
@@ -0,0 +1,7 @@
1
+ import { BaseTreeSitterAdapter, GrammarConfig } from '../base.js';
2
+ export declare class CppAdapter extends BaseTreeSitterAdapter {
3
+ protected grammar: GrammarConfig;
4
+ languageName(): string;
5
+ fileExtensions(): string[];
6
+ }
7
+ //# sourceMappingURL=cpp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cpp.d.ts","sourceRoot":"","sources":["../../../src/language/adapters/cpp.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAyBlE,qBAAa,UAAW,SAAQ,qBAAqB;IACnD,SAAS,CAAC,OAAO,gBAAW;IAC5B,YAAY,IAAI,MAAM;IACtB,cAAc,IAAI,MAAM,EAAE;CAC3B"}
@@ -0,0 +1,29 @@
1
+ import { createRequire } from 'node:module';
2
+ import { BaseTreeSitterAdapter } from '../base.js';
3
+ import { SymbolType } from '../types.js';
4
+ const require = createRequire(import.meta.url);
5
+ const GRAMMAR = {
6
+ language: 'cpp',
7
+ wasmPath: require.resolve('tree-sitter-cpp/tree-sitter-cpp.wasm'),
8
+ queryPatterns: {
9
+ function_definition: '(function_definition declarator: (function_declarator declarator: (identifier) @name))',
10
+ class_specifier: '(class_specifier name: (type_identifier) @name)',
11
+ struct_specifier: '(struct_specifier name: (type_identifier) @name)',
12
+ enum_specifier: '(enum_specifier name: (type_identifier) @name)',
13
+ },
14
+ typeMap: {
15
+ function_definition: SymbolType.Function,
16
+ class_specifier: SymbolType.Class,
17
+ struct_specifier: SymbolType.Struct,
18
+ enum_specifier: SymbolType.Enum,
19
+ },
20
+ nameNodeTypes: ['identifier', 'type_identifier', 'field_identifier'],
21
+ importNodeTypes: ['preproc_include', 'using_declaration'],
22
+ exportNodeTypes: [],
23
+ };
24
+ export class CppAdapter extends BaseTreeSitterAdapter {
25
+ grammar = GRAMMAR;
26
+ languageName() { return 'C++'; }
27
+ fileExtensions() { return ['.cpp', '.cxx', '.cc', '.c++', '.hpp', '.hxx', '.hh']; }
28
+ }
29
+ //# sourceMappingURL=cpp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cpp.js","sourceRoot":"","sources":["../../../src/language/adapters/cpp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAiB,MAAM,YAAY,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE/C,MAAM,OAAO,GAAkB;IAC7B,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,sCAAsC,CAAC;IACjE,aAAa,EAAE;QACb,mBAAmB,EAAE,wFAAwF;QAC7G,eAAe,EAAE,iDAAiD;QAClE,gBAAgB,EAAE,kDAAkD;QACpE,cAAc,EAAE,gDAAgD;KACjE;IACD,OAAO,EAAE;QACP,mBAAmB,EAAE,UAAU,CAAC,QAAQ;QACxC,eAAe,EAAE,UAAU,CAAC,KAAK;QACjC,gBAAgB,EAAE,UAAU,CAAC,MAAM;QACnC,cAAc,EAAE,UAAU,CAAC,IAAI;KAChC;IACD,aAAa,EAAE,CAAC,YAAY,EAAE,iBAAiB,EAAE,kBAAkB,CAAC;IACpE,eAAe,EAAE,CAAC,iBAAiB,EAAE,mBAAmB,CAAC;IACzD,eAAe,EAAE,EAAE;CACpB,CAAC;AAEF,MAAM,OAAO,UAAW,SAAQ,qBAAqB;IACzC,OAAO,GAAG,OAAO,CAAC;IAC5B,YAAY,KAAa,OAAO,KAAK,CAAC,CAAC,CAAC;IACxC,cAAc,KAAe,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;CAC9F"}
@@ -0,0 +1,7 @@
1
+ import { BaseTreeSitterAdapter, GrammarConfig } from '../base.js';
2
+ export declare class CSharpAdapter extends BaseTreeSitterAdapter {
3
+ protected grammar: GrammarConfig;
4
+ languageName(): string;
5
+ fileExtensions(): string[];
6
+ }
7
+ //# sourceMappingURL=csharp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"csharp.d.ts","sourceRoot":"","sources":["../../../src/language/adapters/csharp.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AA4BlE,qBAAa,aAAc,SAAQ,qBAAqB;IACtD,SAAS,CAAC,OAAO,gBAAW;IAC5B,YAAY,IAAI,MAAM;IACtB,cAAc,IAAI,MAAM,EAAE;CAC3B"}
@@ -0,0 +1,32 @@
1
+ import { createRequire } from 'node:module';
2
+ import { BaseTreeSitterAdapter } from '../base.js';
3
+ import { SymbolType } from '../types.js';
4
+ const require = createRequire(import.meta.url);
5
+ const GRAMMAR = {
6
+ language: 'csharp',
7
+ wasmPath: require.resolve('tree-sitter-c-sharp/tree-sitter-c_sharp.wasm'),
8
+ queryPatterns: {
9
+ method_declaration: '(method_declaration name: (identifier) @name)',
10
+ class_declaration: '(class_declaration name: (identifier) @name)',
11
+ interface_declaration: '(interface_declaration name: (identifier) @name)',
12
+ struct_declaration: '(struct_declaration name: (identifier) @name)',
13
+ enum_declaration: '(enum_declaration name: (identifier) @name)',
14
+ },
15
+ typeMap: {
16
+ method_declaration: SymbolType.Method,
17
+ class_declaration: SymbolType.Class,
18
+ interface_declaration: SymbolType.Interface,
19
+ struct_declaration: SymbolType.Struct,
20
+ enum_declaration: SymbolType.Enum,
21
+ using_directive: SymbolType.Import,
22
+ },
23
+ nameNodeTypes: ['identifier'],
24
+ importNodeTypes: ['using_directive'],
25
+ exportNodeTypes: [],
26
+ };
27
+ export class CSharpAdapter extends BaseTreeSitterAdapter {
28
+ grammar = GRAMMAR;
29
+ languageName() { return 'C#'; }
30
+ fileExtensions() { return ['.cs']; }
31
+ }
32
+ //# sourceMappingURL=csharp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"csharp.js","sourceRoot":"","sources":["../../../src/language/adapters/csharp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAiB,MAAM,YAAY,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE/C,MAAM,OAAO,GAAkB;IAC7B,QAAQ,EAAE,QAAQ;IAClB,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,8CAA8C,CAAC;IACzE,aAAa,EAAE;QACb,kBAAkB,EAAE,+CAA+C;QACnE,iBAAiB,EAAE,8CAA8C;QACjE,qBAAqB,EAAE,kDAAkD;QACzE,kBAAkB,EAAE,+CAA+C;QACnE,gBAAgB,EAAE,6CAA6C;KAChE;IACD,OAAO,EAAE;QACP,kBAAkB,EAAE,UAAU,CAAC,MAAM;QACrC,iBAAiB,EAAE,UAAU,CAAC,KAAK;QACnC,qBAAqB,EAAE,UAAU,CAAC,SAAS;QAC3C,kBAAkB,EAAE,UAAU,CAAC,MAAM;QACrC,gBAAgB,EAAE,UAAU,CAAC,IAAI;QACjC,eAAe,EAAE,UAAU,CAAC,MAAM;KACnC;IACD,aAAa,EAAE,CAAC,YAAY,CAAC;IAC7B,eAAe,EAAE,CAAC,iBAAiB,CAAC;IACpC,eAAe,EAAE,EAAE;CACpB,CAAC;AAEF,MAAM,OAAO,aAAc,SAAQ,qBAAqB;IAC5C,OAAO,GAAG,OAAO,CAAC;IAC5B,YAAY,KAAa,OAAO,IAAI,CAAC,CAAC,CAAC;IACvC,cAAc,KAAe,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;CAC/C"}
@@ -0,0 +1,10 @@
1
+ import { BaseTreeSitterAdapter, GrammarConfig } from '../base.js';
2
+ import { CodeSymbol } from '../types.js';
3
+ export declare class CssAdapter extends BaseTreeSitterAdapter {
4
+ protected grammar: GrammarConfig;
5
+ languageName(): string;
6
+ fileExtensions(): string[];
7
+ protected extractSymbolsFromTree(tree: any, filePath: string, content: string): Promise<CodeSymbol[]>;
8
+ private collectRules;
9
+ }
10
+ //# sourceMappingURL=css.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"css.d.ts","sourceRoot":"","sources":["../../../src/language/adapters/css.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAClE,OAAO,EAAc,UAAU,EAAE,MAAM,aAAa,CAAC;AAcrD,qBAAa,UAAW,SAAQ,qBAAqB;IACnD,SAAS,CAAC,OAAO,gBAAW;IAC5B,YAAY,IAAI,MAAM;IACtB,cAAc,IAAI,MAAM,EAAE;cAEV,sBAAsB,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAM3G,OAAO,CAAC,YAAY;CA6BrB"}
@@ -0,0 +1,54 @@
1
+ import { createRequire } from 'node:module';
2
+ import { BaseTreeSitterAdapter } from '../base.js';
3
+ import { SymbolType } from '../types.js';
4
+ const require = createRequire(import.meta.url);
5
+ const GRAMMAR = {
6
+ language: 'css',
7
+ wasmPath: require.resolve('tree-sitter-css/tree-sitter-css.wasm'),
8
+ queryPatterns: {},
9
+ typeMap: {},
10
+ nameNodeTypes: [],
11
+ importNodeTypes: [],
12
+ exportNodeTypes: [],
13
+ };
14
+ export class CssAdapter extends BaseTreeSitterAdapter {
15
+ grammar = GRAMMAR;
16
+ languageName() { return 'CSS'; }
17
+ fileExtensions() { return ['.css', '.scss', '.less']; }
18
+ async extractSymbolsFromTree(tree, filePath, content) {
19
+ const symbols = [];
20
+ this.collectRules(tree.rootNode, symbols, filePath);
21
+ return symbols;
22
+ }
23
+ collectRules(node, symbols, filePath) {
24
+ if (node.type === 'rule_set') {
25
+ let selectorText = '';
26
+ for (let i = 0; i < node.childCount; i++) {
27
+ const child = node.child(i);
28
+ if (child && child.type === 'selectors') {
29
+ selectorText = child.text || '';
30
+ break;
31
+ }
32
+ }
33
+ if (selectorText) {
34
+ const first = selectorText.split(',')[0].trim();
35
+ symbols.push({
36
+ id: `${filePath}:${node.startPosition.row + 1}`,
37
+ name: first,
38
+ type: SymbolType.Module,
39
+ language: 'css',
40
+ file: filePath,
41
+ startLine: node.startPosition.row + 1,
42
+ endLine: node.endPosition.row + 1,
43
+ parent: null, children: [], metadata: { selector: selectorText },
44
+ });
45
+ }
46
+ }
47
+ for (let i = 0; i < node.childCount; i++) {
48
+ const child = node.child(i);
49
+ if (child)
50
+ this.collectRules(child, symbols, filePath);
51
+ }
52
+ }
53
+ }
54
+ //# sourceMappingURL=css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"css.js","sourceRoot":"","sources":["../../../src/language/adapters/css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAiB,MAAM,YAAY,CAAC;AAClE,OAAO,EAAE,UAAU,EAAc,MAAM,aAAa,CAAC;AAErD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE/C,MAAM,OAAO,GAAkB;IAC7B,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,sCAAsC,CAAC;IACjE,aAAa,EAAE,EAAE;IACjB,OAAO,EAAE,EAAE;IACX,aAAa,EAAE,EAAE;IACjB,eAAe,EAAE,EAAE;IACnB,eAAe,EAAE,EAAE;CACpB,CAAC;AAEF,MAAM,OAAO,UAAW,SAAQ,qBAAqB;IACzC,OAAO,GAAG,OAAO,CAAC;IAC5B,YAAY,KAAa,OAAO,KAAK,CAAC,CAAC,CAAC;IACxC,cAAc,KAAe,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAEvD,KAAK,CAAC,sBAAsB,CAAC,IAAS,EAAE,QAAgB,EAAE,OAAe;QACjF,MAAM,OAAO,GAAiB,EAAE,CAAC;QACjC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;QACpD,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,YAAY,CAAC,IAAS,EAAE,OAAqB,EAAE,QAAgB;QACrE,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC7B,IAAI,YAAY,GAAG,EAAE,CAAC;YACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;gBACzC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC5B,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;oBACxC,YAAY,GAAG,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;oBAChC,MAAM;gBACR,CAAC;YACH,CAAC;YACD,IAAI,YAAY,EAAE,CAAC;gBACjB,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBAChD,OAAO,CAAC,IAAI,CAAC;oBACX,EAAE,EAAE,GAAG,QAAQ,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,GAAG,CAAC,EAAE;oBAC/C,IAAI,EAAE,KAAK;oBACX,IAAI,EAAE,UAAU,CAAC,MAAM;oBACvB,QAAQ,EAAE,KAAK;oBACf,IAAI,EAAE,QAAQ;oBACd,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,GAAG,CAAC;oBACrC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC;oBACjC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE;iBACjE,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAI,KAAK;gBAAE,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,7 @@
1
+ import { BaseTreeSitterAdapter, GrammarConfig } from '../base.js';
2
+ export declare class GoAdapter extends BaseTreeSitterAdapter {
3
+ protected grammar: GrammarConfig;
4
+ languageName(): string;
5
+ fileExtensions(): string[];
6
+ }
7
+ //# sourceMappingURL=go.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"go.d.ts","sourceRoot":"","sources":["../../../src/language/adapters/go.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAsBlE,qBAAa,SAAU,SAAQ,qBAAqB;IAClD,SAAS,CAAC,OAAO,gBAAW;IAC5B,YAAY,IAAI,MAAM;IACtB,cAAc,IAAI,MAAM,EAAE;CAC3B"}
@@ -0,0 +1,26 @@
1
+ import { createRequire } from 'node:module';
2
+ import { BaseTreeSitterAdapter } from '../base.js';
3
+ import { SymbolType } from '../types.js';
4
+ const require = createRequire(import.meta.url);
5
+ const GRAMMAR = {
6
+ language: 'go',
7
+ wasmPath: require.resolve('tree-sitter-go/tree-sitter-go.wasm'),
8
+ queryPatterns: {
9
+ function_declaration: '(function_declaration name: (identifier) @name)',
10
+ method_declaration: '(method_declaration name: (field_identifier) @name)',
11
+ },
12
+ typeMap: {
13
+ function_declaration: SymbolType.Function,
14
+ method_declaration: SymbolType.Method,
15
+ import_declaration: SymbolType.Import,
16
+ },
17
+ nameNodeTypes: ['identifier', 'field_identifier'],
18
+ importNodeTypes: ['import_declaration', 'import_spec'],
19
+ exportNodeTypes: [],
20
+ };
21
+ export class GoAdapter extends BaseTreeSitterAdapter {
22
+ grammar = GRAMMAR;
23
+ languageName() { return 'Go'; }
24
+ fileExtensions() { return ['.go']; }
25
+ }
26
+ //# sourceMappingURL=go.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"go.js","sourceRoot":"","sources":["../../../src/language/adapters/go.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAiB,MAAM,YAAY,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE/C,MAAM,OAAO,GAAkB;IAC7B,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,oCAAoC,CAAC;IAC/D,aAAa,EAAE;QACb,oBAAoB,EAAE,iDAAiD;QACvE,kBAAkB,EAAE,qDAAqD;KAC1E;IACD,OAAO,EAAE;QACP,oBAAoB,EAAE,UAAU,CAAC,QAAQ;QACzC,kBAAkB,EAAE,UAAU,CAAC,MAAM;QACrC,kBAAkB,EAAE,UAAU,CAAC,MAAM;KACtC;IACD,aAAa,EAAE,CAAC,YAAY,EAAE,kBAAkB,CAAC;IACjD,eAAe,EAAE,CAAC,oBAAoB,EAAE,aAAa,CAAC;IACtD,eAAe,EAAE,EAAE;CACpB,CAAC;AAEF,MAAM,OAAO,SAAU,SAAQ,qBAAqB;IACxC,OAAO,GAAG,OAAO,CAAC;IAC5B,YAAY,KAAa,OAAO,IAAI,CAAC,CAAC,CAAC;IACvC,cAAc,KAAe,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;CAC/C"}
@@ -0,0 +1,11 @@
1
+ import { BaseTreeSitterAdapter, GrammarConfig } from '../base.js';
2
+ import { CodeSymbol } from '../types.js';
3
+ export declare class HtmlAdapter extends BaseTreeSitterAdapter {
4
+ protected grammar: GrammarConfig;
5
+ languageName(): string;
6
+ fileExtensions(): string[];
7
+ protected extractSymbolsFromTree(tree: any, filePath: string, content: string): Promise<CodeSymbol[]>;
8
+ private collectElements;
9
+ private extractTagName;
10
+ }
11
+ //# sourceMappingURL=html.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"html.d.ts","sourceRoot":"","sources":["../../../src/language/adapters/html.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAClE,OAAO,EAAc,UAAU,EAAE,MAAM,aAAa,CAAC;AAcrD,qBAAa,WAAY,SAAQ,qBAAqB;IACpD,SAAS,CAAC,OAAO,gBAAW;IAC5B,YAAY,IAAI,MAAM;IACtB,cAAc,IAAI,MAAM,EAAE;cAEV,sBAAsB,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAM3G,OAAO,CAAC,eAAe;IA0BvB,OAAO,CAAC,cAAc;CAcvB"}
@@ -0,0 +1,67 @@
1
+ import { createRequire } from 'node:module';
2
+ import { BaseTreeSitterAdapter } from '../base.js';
3
+ import { SymbolType } from '../types.js';
4
+ const require = createRequire(import.meta.url);
5
+ const GRAMMAR = {
6
+ language: 'html',
7
+ wasmPath: require.resolve('tree-sitter-html/tree-sitter-html.wasm'),
8
+ queryPatterns: {},
9
+ typeMap: {},
10
+ nameNodeTypes: ['tag_name', 'attribute_name'],
11
+ importNodeTypes: [],
12
+ exportNodeTypes: [],
13
+ };
14
+ export class HtmlAdapter extends BaseTreeSitterAdapter {
15
+ grammar = GRAMMAR;
16
+ languageName() { return 'HTML'; }
17
+ fileExtensions() { return ['.html', '.htm']; }
18
+ async extractSymbolsFromTree(tree, filePath, content) {
19
+ const symbols = [];
20
+ this.collectElements(tree.rootNode, symbols, filePath);
21
+ return symbols;
22
+ }
23
+ collectElements(node, symbols, filePath) {
24
+ if (node.type === 'element') {
25
+ const tagName = this.extractTagName(node);
26
+ const significant = ['script', 'style', 'template', 'main', 'nav', 'header', 'footer',
27
+ 'section', 'article', 'form', 'aside', 'dialog', 'details'];
28
+ if (significant.includes(tagName) || tagName.includes('-')) {
29
+ symbols.push({
30
+ id: `${filePath}:${node.startPosition.row + 1}`,
31
+ name: tagName,
32
+ type: SymbolType.Module,
33
+ language: 'html',
34
+ file: filePath,
35
+ startLine: node.startPosition.row + 1,
36
+ endLine: node.endPosition.row + 1,
37
+ parent: null,
38
+ children: [],
39
+ metadata: { tag: tagName },
40
+ });
41
+ }
42
+ }
43
+ for (let i = 0; i < node.childCount; i++) {
44
+ const child = node.child(i);
45
+ if (child)
46
+ this.collectElements(child, symbols, filePath);
47
+ }
48
+ }
49
+ extractTagName(node) {
50
+ for (let i = 0; i < node.childCount; i++) {
51
+ const child = node.child(i);
52
+ if (!child)
53
+ continue;
54
+ if (child.type === 'tag_name')
55
+ return child.text;
56
+ if (child.type === 'start_tag' || child.type === 'end_tag') {
57
+ for (let j = 0; j < child.childCount; j++) {
58
+ const grandchild = child.child(j);
59
+ if (grandchild && grandchild.type === 'tag_name')
60
+ return grandchild.text;
61
+ }
62
+ }
63
+ }
64
+ return 'unknown';
65
+ }
66
+ }
67
+ //# sourceMappingURL=html.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"html.js","sourceRoot":"","sources":["../../../src/language/adapters/html.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { BaseTreeSitterAdapter, GrammarConfig } from '../base.js';
2
+ export declare class JavaAdapter extends BaseTreeSitterAdapter {
3
+ protected grammar: GrammarConfig;
4
+ languageName(): string;
5
+ fileExtensions(): string[];
6
+ }
7
+ //# sourceMappingURL=java.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"java.d.ts","sourceRoot":"","sources":["../../../src/language/adapters/java.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AA0BlE,qBAAa,WAAY,SAAQ,qBAAqB;IACpD,SAAS,CAAC,OAAO,gBAAW;IAC5B,YAAY,IAAI,MAAM;IACtB,cAAc,IAAI,MAAM,EAAE;CAC3B"}
@@ -0,0 +1,30 @@
1
+ import { createRequire } from 'node:module';
2
+ import { BaseTreeSitterAdapter } from '../base.js';
3
+ import { SymbolType } from '../types.js';
4
+ const require = createRequire(import.meta.url);
5
+ const GRAMMAR = {
6
+ language: 'java',
7
+ wasmPath: require.resolve('tree-sitter-java/tree-sitter-java.wasm'),
8
+ queryPatterns: {
9
+ method_declaration: '(method_declaration name: (identifier) @name)',
10
+ class_declaration: '(class_declaration name: (identifier) @name)',
11
+ interface_declaration: '(interface_declaration name: (identifier) @name)',
12
+ enum_declaration: '(enum_declaration name: (identifier) @name)',
13
+ },
14
+ typeMap: {
15
+ method_declaration: SymbolType.Method,
16
+ class_declaration: SymbolType.Class,
17
+ interface_declaration: SymbolType.Interface,
18
+ enum_declaration: SymbolType.Enum,
19
+ import_declaration: SymbolType.Import,
20
+ },
21
+ nameNodeTypes: ['identifier'],
22
+ importNodeTypes: ['import_declaration'],
23
+ exportNodeTypes: [],
24
+ };
25
+ export class JavaAdapter extends BaseTreeSitterAdapter {
26
+ grammar = GRAMMAR;
27
+ languageName() { return 'Java'; }
28
+ fileExtensions() { return ['.java']; }
29
+ }
30
+ //# sourceMappingURL=java.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"java.js","sourceRoot":"","sources":["../../../src/language/adapters/java.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAiB,MAAM,YAAY,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE/C,MAAM,OAAO,GAAkB;IAC7B,QAAQ,EAAE,MAAM;IAChB,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,wCAAwC,CAAC;IACnE,aAAa,EAAE;QACb,kBAAkB,EAAE,+CAA+C;QACnE,iBAAiB,EAAE,8CAA8C;QACjE,qBAAqB,EAAE,kDAAkD;QACzE,gBAAgB,EAAE,6CAA6C;KAChE;IACD,OAAO,EAAE;QACP,kBAAkB,EAAE,UAAU,CAAC,MAAM;QACrC,iBAAiB,EAAE,UAAU,CAAC,KAAK;QACnC,qBAAqB,EAAE,UAAU,CAAC,SAAS;QAC3C,gBAAgB,EAAE,UAAU,CAAC,IAAI;QACjC,kBAAkB,EAAE,UAAU,CAAC,MAAM;KACtC;IACD,aAAa,EAAE,CAAC,YAAY,CAAC;IAC7B,eAAe,EAAE,CAAC,oBAAoB,CAAC;IACvC,eAAe,EAAE,EAAE;CACpB,CAAC;AAEF,MAAM,OAAO,WAAY,SAAQ,qBAAqB;IAC1C,OAAO,GAAG,OAAO,CAAC;IAC5B,YAAY,KAAa,OAAO,MAAM,CAAC,CAAC,CAAC;IACzC,cAAc,KAAe,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;CACjD"}
@@ -0,0 +1,7 @@
1
+ import { BaseTreeSitterAdapter, GrammarConfig } from '../base.js';
2
+ export declare class JavaScriptAdapter extends BaseTreeSitterAdapter {
3
+ protected grammar: GrammarConfig;
4
+ languageName(): string;
5
+ fileExtensions(): string[];
6
+ }
7
+ //# sourceMappingURL=javascript.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"javascript.d.ts","sourceRoot":"","sources":["../../../src/language/adapters/javascript.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AA2BlE,qBAAa,iBAAkB,SAAQ,qBAAqB;IAC1D,SAAS,CAAC,OAAO,gBAAW;IAC5B,YAAY,IAAI,MAAM;IACtB,cAAc,IAAI,MAAM,EAAE;CAC3B"}
@@ -0,0 +1,31 @@
1
+ import { createRequire } from 'node:module';
2
+ import { BaseTreeSitterAdapter } from '../base.js';
3
+ import { SymbolType } from '../types.js';
4
+ const require = createRequire(import.meta.url);
5
+ const GRAMMAR = {
6
+ language: 'js',
7
+ wasmPath: require.resolve('tree-sitter-typescript/tree-sitter-typescript.wasm'),
8
+ queryPatterns: {
9
+ function_declaration: '(function_declaration name: (identifier) @name)',
10
+ method_definition: '(method_definition name: (property_identifier) @name)',
11
+ class_declaration: '(class_declaration name: (identifier) @name)',
12
+ },
13
+ typeMap: {
14
+ function_declaration: SymbolType.Function,
15
+ arrow_function: SymbolType.Function,
16
+ method_definition: SymbolType.Method,
17
+ class_declaration: SymbolType.Class,
18
+ import_statement: SymbolType.Import,
19
+ import_declaration: SymbolType.Import,
20
+ export_statement: SymbolType.Export,
21
+ },
22
+ nameNodeTypes: ['identifier', 'property_identifier'],
23
+ importNodeTypes: ['import_statement', 'import_declaration'],
24
+ exportNodeTypes: ['export_statement'],
25
+ };
26
+ export class JavaScriptAdapter extends BaseTreeSitterAdapter {
27
+ grammar = GRAMMAR;
28
+ languageName() { return 'JavaScript'; }
29
+ fileExtensions() { return ['.js', '.jsx', '.mjs', '.cjs']; }
30
+ }
31
+ //# sourceMappingURL=javascript.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"javascript.js","sourceRoot":"","sources":["../../../src/language/adapters/javascript.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAiB,MAAM,YAAY,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE/C,MAAM,OAAO,GAAkB;IAC7B,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,oDAAoD,CAAC;IAC/E,aAAa,EAAE;QACb,oBAAoB,EAAE,iDAAiD;QACvE,iBAAiB,EAAE,uDAAuD;QAC1E,iBAAiB,EAAE,8CAA8C;KAClE;IACD,OAAO,EAAE;QACP,oBAAoB,EAAE,UAAU,CAAC,QAAQ;QACzC,cAAc,EAAE,UAAU,CAAC,QAAQ;QACnC,iBAAiB,EAAE,UAAU,CAAC,MAAM;QACpC,iBAAiB,EAAE,UAAU,CAAC,KAAK;QACnC,gBAAgB,EAAE,UAAU,CAAC,MAAM;QACnC,kBAAkB,EAAE,UAAU,CAAC,MAAM;QACrC,gBAAgB,EAAE,UAAU,CAAC,MAAM;KACpC;IACD,aAAa,EAAE,CAAC,YAAY,EAAE,qBAAqB,CAAC;IACpD,eAAe,EAAE,CAAC,kBAAkB,EAAE,oBAAoB,CAAC;IAC3D,eAAe,EAAE,CAAC,kBAAkB,CAAC;CACtC,CAAC;AAEF,MAAM,OAAO,iBAAkB,SAAQ,qBAAqB;IAChD,OAAO,GAAG,OAAO,CAAC;IAC5B,YAAY,KAAa,OAAO,YAAY,CAAC,CAAC,CAAC;IAC/C,cAAc,KAAe,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;CACvE"}
@@ -0,0 +1,11 @@
1
+ import { BaseTreeSitterAdapter, GrammarConfig } from '../base.js';
2
+ import { CodeSymbol } from '../types.js';
3
+ export declare class JsonAdapter extends BaseTreeSitterAdapter {
4
+ protected grammar: GrammarConfig;
5
+ languageName(): string;
6
+ fileExtensions(): string[];
7
+ fileNames(): string[];
8
+ protected extractSymbolsFromTree(tree: any, filePath: string, content: string): Promise<CodeSymbol[]>;
9
+ private walkPairs;
10
+ }
11
+ //# sourceMappingURL=json.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../../src/language/adapters/json.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAClE,OAAO,EAAc,UAAU,EAAE,MAAM,aAAa,CAAC;AAcrD,qBAAa,WAAY,SAAQ,qBAAqB;IACpD,SAAS,CAAC,OAAO,gBAAW;IAC5B,YAAY,IAAI,MAAM;IACtB,cAAc,IAAI,MAAM,EAAE;IAC1B,SAAS,IAAI,MAAM,EAAE;cAEL,sBAAsB,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAM3G,OAAO,CAAC,SAAS;CA+BlB"}