codebuff 1.0.265 → 1.0.266

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 (128) hide show
  1. package/dist/cli.d.ts +2 -0
  2. package/dist/cli.js +47 -7
  3. package/dist/cli.js.map +1 -1
  4. package/dist/client.d.ts +1 -0
  5. package/dist/client.js +4 -1
  6. package/dist/client.js.map +1 -1
  7. package/dist/code-map/__mocks__/tree-sitter-typescript.d.ts +12 -0
  8. package/dist/code-map/__mocks__/tree-sitter-typescript.d.ts.map +1 -0
  9. package/dist/code-map/__mocks__/tree-sitter-typescript.js +14 -0
  10. package/dist/code-map/__mocks__/tree-sitter-typescript.js.map +1 -0
  11. package/dist/code-map/__mocks__/wasm-mock.d.ts +2 -0
  12. package/dist/code-map/__mocks__/wasm-mock.d.ts.map +1 -0
  13. package/dist/code-map/__mocks__/wasm-mock.js +3 -0
  14. package/dist/code-map/__mocks__/wasm-mock.js.map +1 -0
  15. package/dist/code-map/__tests__/parse.test.d.ts +2 -0
  16. package/dist/code-map/__tests__/parse.test.d.ts.map +1 -0
  17. package/dist/code-map/__tests__/parse.test.js +231 -0
  18. package/dist/code-map/__tests__/parse.test.js.map +1 -0
  19. package/dist/code-map/__tests__/test-langs/consumer.d.ts +2 -0
  20. package/dist/code-map/__tests__/test-langs/consumer.d.ts.map +1 -0
  21. package/dist/code-map/__tests__/test-langs/consumer.js +6 -0
  22. package/dist/code-map/__tests__/test-langs/consumer.js.map +1 -0
  23. package/dist/code-map/__tests__/test-langs/empty.d.ts +1 -0
  24. package/dist/code-map/__tests__/test-langs/empty.d.ts.map +1 -0
  25. package/dist/code-map/__tests__/test-langs/empty.js +2 -0
  26. package/dist/code-map/__tests__/test-langs/empty.js.map +1 -0
  27. package/dist/code-map/__tests__/test-langs/test.d.ts +12 -0
  28. package/dist/code-map/__tests__/test-langs/test.d.ts.map +1 -0
  29. package/dist/code-map/__tests__/test-langs/test.js +23 -0
  30. package/dist/code-map/__tests__/test-langs/test.js.map +1 -0
  31. package/dist/code-map/__tests__/test-langs/unused.d.ts +2 -0
  32. package/dist/code-map/__tests__/test-langs/unused.d.ts.map +1 -0
  33. package/dist/code-map/__tests__/test-langs/unused.js +7 -0
  34. package/dist/code-map/__tests__/test-langs/unused.js.map +1 -0
  35. package/dist/code-map/__tests__/test-langs/utils1.d.ts +2 -0
  36. package/dist/code-map/__tests__/test-langs/utils1.d.ts.map +1 -0
  37. package/dist/code-map/__tests__/test-langs/utils1.js +7 -0
  38. package/dist/code-map/__tests__/test-langs/utils1.js.map +1 -0
  39. package/dist/code-map/__tests__/test-langs/utils2.d.ts +2 -0
  40. package/dist/code-map/__tests__/test-langs/utils2.d.ts.map +1 -0
  41. package/dist/code-map/__tests__/test-langs/utils2.js +8 -0
  42. package/dist/code-map/__tests__/test-langs/utils2.js.map +1 -0
  43. package/dist/code-map/__tests__/tree-sitter-minimal.test.d.ts +2 -0
  44. package/dist/code-map/__tests__/tree-sitter-minimal.test.d.ts.map +1 -0
  45. package/dist/code-map/__tests__/tree-sitter-minimal.test.js +79 -0
  46. package/dist/code-map/__tests__/tree-sitter-minimal.test.js.map +1 -0
  47. package/dist/code-map/jest.config.d.ts +4 -0
  48. package/dist/code-map/jest.config.d.ts.map +1 -0
  49. package/dist/code-map/jest.config.js +18 -0
  50. package/dist/code-map/jest.config.js.map +1 -0
  51. package/dist/code-map/languages.d.ts +1 -2
  52. package/dist/code-map/languages.d.ts.map +1 -1
  53. package/dist/code-map/languages.js +2 -1
  54. package/dist/code-map/languages.js.map +1 -1
  55. package/dist/code-map/parse.d.ts +14 -4
  56. package/dist/code-map/parse.d.ts.map +1 -1
  57. package/dist/code-map/parse.js +87 -38
  58. package/dist/code-map/parse.js.map +1 -1
  59. package/dist/code-map/parse.test.d.ts +2 -0
  60. package/dist/code-map/parse.test.d.ts.map +1 -0
  61. package/dist/code-map/parse.test.js +218 -0
  62. package/dist/code-map/parse.test.js.map +1 -0
  63. package/dist/code-map/scripts/tree-sitter-test.cjs +27 -0
  64. package/dist/code-map/scripts/tree-sitter-test.cjs.map +1 -0
  65. package/dist/code-map/scripts/tree-sitter-test.d.cts +2 -0
  66. package/dist/code-map/scripts/tree-sitter-test.d.cts.map +1 -0
  67. package/dist/code-map/scripts/tree-sitter-test.d.ts +2 -0
  68. package/dist/code-map/scripts/tree-sitter-test.d.ts.map +1 -0
  69. package/dist/code-map/scripts/tree-sitter-test.js +54 -0
  70. package/dist/code-map/scripts/tree-sitter-test.js.map +1 -0
  71. package/dist/code-map/test-parser.d.ts +2 -0
  72. package/dist/code-map/test-parser.d.ts.map +1 -0
  73. package/dist/code-map/test-parser.js +42 -0
  74. package/dist/code-map/test-parser.js.map +1 -0
  75. package/dist/code-map/tree-sitter-queries/tree-sitter-c-tags.scm +6 -1
  76. package/dist/code-map/tree-sitter-queries/tree-sitter-c_sharp-tags.scm +11 -1
  77. package/dist/code-map/tree-sitter-queries/tree-sitter-cpp-tags.scm +13 -1
  78. package/dist/code-map/tree-sitter-queries/tree-sitter-javascript-tags.scm +1 -0
  79. package/dist/code-map/tree-sitter-queries/tree-sitter-php-tags.scm +5 -8
  80. package/dist/code-map/tree-sitter-queries/tree-sitter-python-tags.scm +5 -2
  81. package/dist/code-map/tree-sitter-queries/tree-sitter-typescript-tags.scm +7 -0
  82. package/dist/code-map/tsconfig.tsbuildinfo +1 -1
  83. package/dist/common/actions.d.ts +26 -0
  84. package/dist/common/bigquery/client.d.ts +15 -0
  85. package/dist/common/bigquery/client.js +265 -0
  86. package/dist/common/bigquery/client.js.map +1 -0
  87. package/dist/common/bigquery/schema.d.ts +55 -0
  88. package/dist/common/bigquery/schema.js +24 -0
  89. package/dist/common/bigquery/schema.js.map +1 -0
  90. package/dist/common/constants/tools.js +2 -2
  91. package/dist/common/constants/tools.js.map +1 -1
  92. package/dist/common/types/agent-state.d.ts +5 -0
  93. package/dist/common/util/file-metadata.d.ts +9 -0
  94. package/dist/common/util/file-metadata.js +24 -0
  95. package/dist/common/util/file-metadata.js.map +1 -0
  96. package/dist/common/util/file.d.ts +3 -0
  97. package/dist/common/util/file.js +3 -0
  98. package/dist/common/util/file.js.map +1 -1
  99. package/dist/common/util/saxy.js +6 -0
  100. package/dist/common/util/saxy.js.map +1 -1
  101. package/dist/common/websockets/websocket-schema.d.ts +50 -0
  102. package/dist/index.js +2 -8
  103. package/dist/menu.js +1 -0
  104. package/dist/menu.js.map +1 -1
  105. package/dist/project-files.d.ts +2 -0
  106. package/dist/project-files.js +3 -2
  107. package/dist/project-files.js.map +1 -1
  108. package/dist/utils/__tests__/tool-renderers.test.js +27 -1
  109. package/dist/utils/__tests__/tool-renderers.test.js.map +1 -1
  110. package/dist/utils/tool-renderers.js +22 -5
  111. package/dist/utils/tool-renderers.js.map +1 -1
  112. package/dist/workers/project-context.js +3 -0
  113. package/dist/workers/project-context.js.map +1 -1
  114. package/package.json +2 -1
  115. package/dist/common/json-config/__tests__/__snapshots__/stringify-schema.test.js.snap +0 -119
  116. package/dist/utils/__tests__/__snapshots__/background-process-manager.test.js.snap +0 -137
  117. package/dist/utils/__tests__/file-paths.test.d.ts +0 -1
  118. package/dist/utils/__tests__/file-paths.test.js +0 -37
  119. package/dist/utils/__tests__/file-paths.test.js.map +0 -1
  120. package/dist/utils/__tests__/path.test.d.ts +0 -1
  121. package/dist/utils/__tests__/path.test.js +0 -37
  122. package/dist/utils/__tests__/path.test.js.map +0 -1
  123. package/dist/utils/file-paths.d.ts +0 -9
  124. package/dist/utils/file-paths.js +0 -24
  125. package/dist/utils/file-paths.js.map +0 -1
  126. package/dist/utils/path.d.ts +0 -9
  127. package/dist/utils/path.js +0 -27
  128. package/dist/utils/path.js.map +0 -1
@@ -0,0 +1,218 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ const fs = __importStar(require("fs"));
27
+ const path = __importStar(require("path"));
28
+ const bun_test_1 = require("bun:test");
29
+ const parse_1 = require("./parse");
30
+ // Test data
31
+ const tsFile = `
32
+ interface Greeter {
33
+ greet(name: string): string;
34
+ }
35
+
36
+ class Greeting implements Greeter {
37
+ private prefix: string;
38
+
39
+ constructor(prefix: string) {
40
+ this.prefix = prefix;
41
+ }
42
+
43
+ greet(name: string): string {
44
+ return \`\${this.prefix}, \${name}!\`;
45
+ }
46
+
47
+ static printGreeting(greeter: Greeter, name: string): void {
48
+ console.log(greeter.greet(name));
49
+ }
50
+ }
51
+
52
+ function createGreeter(prefix: string): Greeter {
53
+ return new Greeting(prefix);
54
+ }
55
+
56
+ const greeting = createGreeter('Hello');
57
+ Greeting.printGreeting(greeting, 'World');
58
+ `;
59
+ const pyFile = `
60
+ from abc import ABC, abstractmethod
61
+
62
+ class Greeter(ABC):
63
+ @abstractmethod
64
+ def greet(self, name: str) -> str:
65
+ pass
66
+
67
+ class Greeting(Greeter):
68
+ def __init__(self, prefix: str):
69
+ self.prefix = prefix
70
+
71
+ def greet(self, name: str) -> str:
72
+ return f'{self.prefix}, {name}!'
73
+
74
+ def print_greeting(greeter: Greeter, name: str):
75
+ print(greeter.greet(name))
76
+
77
+ if __name__ == "__main__":
78
+ greeting = Greeting("Hello")
79
+ print_greeting(greeting, "World")
80
+ `;
81
+ const multiDefFile1 = `
82
+ export function utils() {
83
+ console.log('utils from file 1');
84
+ }
85
+ `;
86
+ const multiDefFile2 = `
87
+ // This file is deeper in the directory structure, so it will have a lower base score
88
+ export function utils() {
89
+ console.log('utils from file 2');
90
+ }
91
+ `;
92
+ const noDefsOnlyCallsFile = `
93
+ import { utils } from './utils';
94
+ utils();
95
+ console.log('no definitions here');
96
+ `;
97
+ const noCallsOnlyDefsFile = `
98
+ export function unusedFunction() {
99
+ console.log('never called');
100
+ }
101
+ `;
102
+ const emptyFile = '';
103
+ // Pre-read query files
104
+ const tsQueryFile = fs.readFileSync(path.join(__dirname, 'tree-sitter-queries/tree-sitter-typescript-tags.scm'), 'utf8');
105
+ const pyQueryFile = fs.readFileSync(path.join(__dirname, 'tree-sitter-queries/tree-sitter-python-tags.scm'), 'utf8');
106
+ (0, bun_test_1.describe)('getFileTokenScores', () => {
107
+ const fsReadFileSyncSpy = (0, bun_test_1.spyOn)(fs, 'readFileSync');
108
+ (0, bun_test_1.beforeEach)(() => {
109
+ // Mock file system
110
+ fsReadFileSyncSpy.mockImplementation(((filePath, options) => {
111
+ const filePathStr = filePath.toString();
112
+ // Handle query files first
113
+ if (filePathStr.includes('tree-sitter-typescript-tags.scm')) {
114
+ return tsQueryFile;
115
+ }
116
+ if (filePathStr.includes('tree-sitter-python-tags.scm')) {
117
+ return pyQueryFile;
118
+ }
119
+ const fileName = path.basename(filePathStr);
120
+ let content;
121
+ switch (fileName) {
122
+ case 'test.ts':
123
+ content = tsFile;
124
+ break;
125
+ case 'test.py':
126
+ content = pyFile;
127
+ break;
128
+ case 'utils1.ts':
129
+ content = multiDefFile1;
130
+ break;
131
+ case 'utils2.ts':
132
+ content = multiDefFile2;
133
+ break;
134
+ case 'consumer.ts':
135
+ content = noDefsOnlyCallsFile;
136
+ break;
137
+ case 'unused.ts':
138
+ content = noCallsOnlyDefsFile;
139
+ break;
140
+ case 'empty.ts':
141
+ content = emptyFile;
142
+ break;
143
+ default:
144
+ throw new Error(`Unexpected file: ${filePath}`);
145
+ }
146
+ // Match fs.readFileSync's behavior:
147
+ // - Return string if encoding is specified
148
+ // - Return Buffer if no encoding or encoding is null
149
+ if (typeof options === 'string') {
150
+ return content;
151
+ }
152
+ if (options && typeof options === 'object' && options.encoding) {
153
+ return content;
154
+ }
155
+ return Buffer.from(content);
156
+ }));
157
+ });
158
+ (0, bun_test_1.afterEach)(() => {
159
+ fsReadFileSyncSpy.mockReset();
160
+ });
161
+ bun_test_1.it.skip('should correctly identify tokens and calls in TypeScript', async () => {
162
+ const result = await (0, parse_1.getFileTokenScores)('/root', ['test.ts']);
163
+ // Check token identification
164
+ (0, bun_test_1.expect)(result.tokenScores['test.ts']).toHaveProperty('Greeter');
165
+ (0, bun_test_1.expect)(result.tokenScores['test.ts']).toHaveProperty('Greeting');
166
+ (0, bun_test_1.expect)(result.tokenScores['test.ts']).toHaveProperty('createGreeter');
167
+ (0, bun_test_1.expect)(result.tokenScores['test.ts']).toHaveProperty('greet');
168
+ (0, bun_test_1.expect)(result.tokenScores['test.ts']).toHaveProperty('printGreeting');
169
+ // Check calls
170
+ (0, bun_test_1.expect)(result.tokenCallers['test.ts']['Greeting']).toContain('test.ts');
171
+ (0, bun_test_1.expect)(result.tokenCallers['test.ts']['createGreeter']).toContain('test.ts');
172
+ (0, bun_test_1.expect)(result.tokenCallers['test.ts']['printGreeting']).toContain('test.ts');
173
+ (0, bun_test_1.expect)(result.tokenCallers['test.ts']['greet']).toContain('test.ts');
174
+ });
175
+ bun_test_1.it.skip('should correctly identify tokens and calls in Python', async () => {
176
+ const result = await (0, parse_1.getFileTokenScores)('/root', ['test.py']);
177
+ // Check token identification
178
+ (0, bun_test_1.expect)(result.tokenScores['test.py']).toHaveProperty('Greeter');
179
+ (0, bun_test_1.expect)(result.tokenScores['test.py']).toHaveProperty('Greeting');
180
+ (0, bun_test_1.expect)(result.tokenScores['test.py']).toHaveProperty('print_greeting');
181
+ (0, bun_test_1.expect)(result.tokenScores['test.py']).toHaveProperty('greet');
182
+ // Check calls
183
+ (0, bun_test_1.expect)(result.tokenCallers['test.py']['Greeting']).toContain('test.py');
184
+ (0, bun_test_1.expect)(result.tokenCallers['test.py']['print_greeting']).toContain('test.py');
185
+ (0, bun_test_1.expect)(result.tokenCallers['test.py']['greet']).toContain('test.py');
186
+ });
187
+ bun_test_1.it.skip('should use highest scoring definition when token is defined in multiple files', async () => {
188
+ const result = await (0, parse_1.getFileTokenScores)('/root', [
189
+ 'utils1.ts',
190
+ 'deep/utils2.ts',
191
+ 'consumer.ts',
192
+ ]);
193
+ // utils1.ts has a higher score (shallower path)
194
+ (0, bun_test_1.expect)(result.tokenCallers['utils1.ts']['utils']).toContain('consumer.ts');
195
+ // utils2.ts should not be chosen as the defining file
196
+ (0, bun_test_1.expect)(result.tokenCallers['deep/utils2.ts']['utils']).toBeUndefined();
197
+ });
198
+ (0, bun_test_1.it)('should handle files with no definitions', async () => {
199
+ const result = await (0, parse_1.getFileTokenScores)('/root', ['consumer.ts']);
200
+ // No definitions, only calls
201
+ (0, bun_test_1.expect)(Object.keys(result.tokenScores['consumer.ts'])).toHaveLength(0);
202
+ // External calls are tracked but not mapped to callers since definition is unknown
203
+ (0, bun_test_1.expect)(Object.keys(result.tokenCallers)).toHaveLength(0);
204
+ });
205
+ bun_test_1.it.skip('should handle files with no calls', async () => {
206
+ const result = await (0, parse_1.getFileTokenScores)('/root', ['unused.ts']);
207
+ // Has definition but no calls
208
+ (0, bun_test_1.expect)(result.tokenScores['unused.ts']).toHaveProperty('unusedFunction');
209
+ (0, bun_test_1.expect)(result.tokenCallers['unused.ts']['unusedFunction']).toEqual([]);
210
+ });
211
+ (0, bun_test_1.it)('should handle empty files', async () => {
212
+ const result = await (0, parse_1.getFileTokenScores)('/root', ['empty.ts']);
213
+ // No definitions or calls
214
+ (0, bun_test_1.expect)(Object.keys(result.tokenScores['empty.ts'] || {})).toHaveLength(0);
215
+ (0, bun_test_1.expect)(Object.keys(result.tokenCallers)).toHaveLength(0);
216
+ });
217
+ });
218
+ //# sourceMappingURL=parse.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse.test.js","sourceRoot":"","sources":["../parse.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ // CommonJS version to avoid module system issues
3
+ const Parser = require('tree-sitter');
4
+ const { Query } = require('tree-sitter');
5
+ const treeSitterTypescript = require('tree-sitter-typescript');
6
+ async function main() {
7
+ const parser = new Parser();
8
+ const language = treeSitterTypescript.typescript;
9
+ parser.setLanguage(language);
10
+ // Simple TypeScript code
11
+ const sourceCode = `
12
+ interface Greeter {
13
+ greet(): string;
14
+ }
15
+ `;
16
+ const tree = parser.parse(sourceCode);
17
+ // Simple query to find interface name
18
+ const queryString = '(interface_declaration name: (type_identifier) @interface_name)';
19
+ const query = new Query(parser.getLanguage(), queryString);
20
+ const captures = query.captures(tree.rootNode);
21
+ // Log for debugging
22
+ console.log('Tree:', tree.rootNode.toString());
23
+ console.log('Captures:', captures);
24
+ console.log('First capture text:', captures[0]?.node.text);
25
+ }
26
+ main().catch(console.error);
27
+ //# sourceMappingURL=tree-sitter-test.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tree-sitter-test.cjs","sourceRoot":"","sources":["../../scripts/tree-sitter-test.cjs"],"names":[],"mappings":";AAAA,iDAAiD;AACjD,MAAM,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAA;AACrC,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC,CAAA;AACxC,MAAM,oBAAoB,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAA;AAE9D,KAAK,UAAU,IAAI;IACjB,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE,CAAA;IAC3B,MAAM,QAAQ,GAAG,oBAAoB,CAAC,UAAU,CAAA;IAEhD,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;IAE5B,yBAAyB;IACzB,MAAM,UAAU,GAAG;;;;CAIpB,CAAA;IACC,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;IAErC,sCAAsC;IACtC,MAAM,WAAW,GAAG,iEAAiE,CAAA;IACrF,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,WAAW,CAAC,CAAA;IAC1D,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAE9C,oBAAoB;IACpB,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAA;IAC9C,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA;IAClC,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;AAC5D,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=tree-sitter-test.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tree-sitter-test.d.cts","sourceRoot":"","sources":["../../scripts/tree-sitter-test.cjs"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=tree-sitter-test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tree-sitter-test.d.ts","sourceRoot":"","sources":["../../scripts/tree-sitter-test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ const tree_sitter_1 = __importDefault(require("tree-sitter"));
30
+ const tree_sitter_2 = require("tree-sitter");
31
+ async function main() {
32
+ const parser = new tree_sitter_1.default();
33
+ const languageModule = await Promise.resolve().then(() => __importStar(require('tree-sitter-typescript')));
34
+ // Cast to any to avoid type mismatch between tree-sitter and tree-sitter-typescript
35
+ const language = languageModule.typescript;
36
+ parser.setLanguage(language);
37
+ // Simple TypeScript code
38
+ const sourceCode = `
39
+ interface Greeter {
40
+ greet(): string;
41
+ }
42
+ `;
43
+ const tree = parser.parse(sourceCode);
44
+ // Simple query to find interface name
45
+ const queryString = '(interface_declaration name: (type_identifier) @interface_name)';
46
+ const query = new tree_sitter_2.Query(parser.getLanguage(), queryString);
47
+ const captures = query.captures(tree.rootNode);
48
+ // Log for debugging
49
+ console.log('Tree:', tree.rootNode.toString());
50
+ console.log('Captures:', captures);
51
+ console.log('First capture text:', captures[0]?.node.text);
52
+ }
53
+ main().catch(console.error);
54
+ //# sourceMappingURL=tree-sitter-test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tree-sitter-test.js","sourceRoot":"","sources":["../../scripts/tree-sitter-test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8DAAgC;AAChC,6CAAmC;AAEnC,KAAK,UAAU,IAAI;IACjB,MAAM,MAAM,GAAG,IAAI,qBAAM,EAAE,CAAA;IAC3B,MAAM,cAAc,GAAG,wDAAa,wBAAwB,GAAC,CAAA;IAC7D,oFAAoF;IACpF,MAAM,QAAQ,GAAG,cAAc,CAAC,UAAiB,CAAA;IAEjD,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;IAE5B,yBAAyB;IACzB,MAAM,UAAU,GAAG;;;;CAIpB,CAAA;IACC,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;IAErC,sCAAsC;IACtC,MAAM,WAAW,GAAG,iEAAiE,CAAA;IACrF,MAAM,KAAK,GAAG,IAAI,mBAAK,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,WAAW,CAAC,CAAA;IAC1D,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAE9C,oBAAoB;IACpB,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAA;IAC9C,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA;IAClC,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;AAC5D,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=test-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-parser.d.ts","sourceRoot":"","sources":["../test-parser.js"],"names":[],"mappings":""}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ const Parser = require('tree-sitter');
3
+ const { typescript } = require('tree-sitter-typescript');
4
+ const { Query } = require('tree-sitter');
5
+ async function testParser() {
6
+ try {
7
+ const parser = new Parser();
8
+ console.log('Parser created');
9
+ parser.setLanguage(typescript);
10
+ console.log('Language set');
11
+ const sourceCode = `
12
+ interface Greeter {
13
+ greet(): string;
14
+ }
15
+ `;
16
+ console.log('Source code:', sourceCode);
17
+ const tree = parser.parse(sourceCode);
18
+ console.log('Parse tree:', tree);
19
+ if (!tree) {
20
+ throw new Error('Parser returned undefined tree');
21
+ }
22
+ const queryString = '(interface_declaration name: (type_identifier) @interface_name)';
23
+ const query = new Query(parser.getLanguage(), queryString);
24
+ const captures = query.captures(tree.rootNode);
25
+ console.log('Tree:', tree.rootNode.toString());
26
+ console.log('Captures:', captures);
27
+ console.log('First capture text:', captures[0]?.node.text);
28
+ if (captures.length !== 1 || captures[0].node.text !== 'Greeter') {
29
+ throw new Error('Expected to find "Greeter" interface name');
30
+ }
31
+ console.log('Test passed!');
32
+ }
33
+ catch (err) {
34
+ console.error('Error:', err);
35
+ process.exit(1);
36
+ }
37
+ }
38
+ testParser().catch(err => {
39
+ console.error('Unhandled error:', err);
40
+ process.exit(1);
41
+ });
42
+ //# sourceMappingURL=test-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-parser.js","sourceRoot":"","sources":["../test-parser.js"],"names":[],"mappings":";AAAA,MAAM,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;AACtC,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;AACzD,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;AAEzC,KAAK,UAAU,UAAU;IACvB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAE9B,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAE5B,MAAM,UAAU,GAAG;;;;CAItB,CAAC;QACE,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;QAExC,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QAEjC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,CAAC;QAED,MAAM,WAAW,GAAG,iEAAiE,CAAC;QACtF,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,WAAW,CAAC,CAAC;QAC3D,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE/C,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC/C,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAE3D,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACjE,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC/D,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC9B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAC7B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,UAAU,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;IACvB,OAAO,CAAC,KAAK,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC;IACvC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -8,4 +8,9 @@
8
8
 
9
9
  (enum_specifier name: (type_identifier) @identifier)
10
10
 
11
- ; TODO add calls
11
+ ; Function calls
12
+ (call_expression
13
+ function: (identifier) @call.identifier)
14
+
15
+ (call_expression
16
+ function: (field_expression field: (field_identifier) @call.identifier))
@@ -10,4 +10,14 @@
10
10
  name: (identifier) @identifier
11
11
  )
12
12
 
13
- ; TODO add calls
13
+ ; Method calls
14
+ (invocation_expression
15
+ function: (identifier) @call.identifier)
16
+
17
+ (invocation_expression
18
+ function: (member_access_expression
19
+ name: (identifier) @call.identifier))
20
+
21
+ ; Constructor calls
22
+ (object_creation_expression
23
+ type: (identifier) @call.identifier)
@@ -14,4 +14,16 @@
14
14
 
15
15
  (class_specifier name: (type_identifier) @identifier)
16
16
 
17
- ; TODO add calls
17
+ ; Function calls
18
+ (call_expression
19
+ function: (identifier) @call.identifier)
20
+
21
+ (call_expression
22
+ function: (field_expression field: (field_identifier) @call.identifier))
23
+
24
+ ; Constructor calls
25
+ (class_specifier
26
+ name: (type_identifier) @call.identifier)
27
+
28
+ (new_expression
29
+ type: (type_identifier) @call.identifier)
@@ -12,4 +12,5 @@
12
12
  name: (identifier) @identifier)))
13
13
 
14
14
  (call_expression function: (identifier) @call.identifier)
15
+ (call_expression function: (member_expression property: (property_identifier) @call.identifier))
15
16
  (new_expression constructor: (identifier) @call.identifier)
@@ -1,3 +1,6 @@
1
+ (interface_declaration
2
+ name: (name) @identifier)
3
+
1
4
  (class_declaration
2
5
  name: (name) @identifier)
3
6
 
@@ -8,16 +11,10 @@
8
11
  name: (name) @identifier)
9
12
 
10
13
  (object_creation_expression
11
- [
12
- (qualified_name (name) @call.identifier)
13
- (variable_name (name) @call.identifier)
14
- ])
14
+ type: (qualified_name) @call.identifier)
15
15
 
16
16
  (function_call_expression
17
- function: [
18
- (qualified_name (name) @call.identifier)
19
- (variable_name (name)) @call.identifier
20
- ])
17
+ function: (name) @call.identifier)
21
18
 
22
19
  (scoped_call_expression
23
20
  name: (name) @call.identifier)
@@ -1,4 +1,4 @@
1
- (class_definition "class"
1
+ (class_definition
2
2
  name: (identifier) @identifier)
3
3
 
4
4
  (function_definition
@@ -6,4 +6,7 @@
6
6
 
7
7
  (call
8
8
  function: (identifier) @call.identifier)
9
-
9
+
10
+ (call
11
+ function: (attribute
12
+ attribute: (identifier) @call.identifier))
@@ -1,15 +1,22 @@
1
1
  (function_declaration name: (identifier) @identifier)
2
2
  (class_declaration name: (type_identifier) @identifier)
3
+ (interface_declaration name: (type_identifier) @identifier)
3
4
  (method_definition name: (property_identifier) @identifier)
4
5
 
6
+ (export_statement
7
+ declaration: (function_declaration
8
+ name: (identifier) @identifier))
9
+
5
10
  (export_statement
6
11
  declaration: (lexical_declaration
7
12
  (variable_declarator
8
13
  name: (identifier) @identifier)))
14
+
9
15
  (export_statement
10
16
  declaration: (variable_declaration
11
17
  (variable_declarator
12
18
  name: (identifier) @identifier)))
13
19
 
14
20
  (call_expression function: (identifier) @call.identifier)
21
+ (call_expression function: (member_expression property: (property_identifier) @call.identifier))
15
22
  (new_expression constructor: (identifier) @call.identifier)