codebuff 1.0.298 → 1.0.300

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 (119) hide show
  1. package/dist/cli-handlers/initialization-flow.d.ts +1 -0
  2. package/dist/cli-handlers/initialization-flow.js +24 -0
  3. package/dist/cli-handlers/initialization-flow.js.map +1 -0
  4. package/dist/cli-modules/command-processor.d.ts +2 -0
  5. package/dist/cli-modules/command-processor.js +112 -0
  6. package/dist/cli-modules/command-processor.js.map +1 -0
  7. package/dist/cli-modules/input-handler.d.ts +4 -0
  8. package/dist/cli-modules/input-handler.js +75 -0
  9. package/dist/cli-modules/input-handler.js.map +1 -0
  10. package/dist/cli-modules/readline-handler.d.ts +11 -0
  11. package/dist/cli-modules/readline-handler.js +158 -0
  12. package/dist/cli-modules/readline-handler.js.map +1 -0
  13. package/dist/cli-modules/signal-handler.d.ts +7 -0
  14. package/dist/cli-modules/signal-handler.js +128 -0
  15. package/dist/cli-modules/signal-handler.js.map +1 -0
  16. package/dist/cli-modules/types.d.ts +51 -0
  17. package/dist/{common/types/organization.js → cli-modules/types.js} +1 -1
  18. package/dist/cli-modules/types.js.map +1 -0
  19. package/dist/cli-modules/websocket-handler.d.ts +16 -0
  20. package/dist/cli-modules/websocket-handler.js +53 -0
  21. package/dist/cli-modules/websocket-handler.js.map +1 -0
  22. package/dist/cli.js +4 -1
  23. package/dist/cli.js.map +1 -1
  24. package/dist/code-map/__mocks__/tree-sitter-typescript.d.ts +12 -0
  25. package/dist/code-map/__mocks__/tree-sitter-typescript.d.ts.map +1 -0
  26. package/dist/code-map/__mocks__/tree-sitter-typescript.js +14 -0
  27. package/dist/code-map/__mocks__/tree-sitter-typescript.js.map +1 -0
  28. package/dist/code-map/__mocks__/wasm-mock.d.ts +2 -0
  29. package/dist/code-map/__mocks__/wasm-mock.d.ts.map +1 -0
  30. package/dist/code-map/__mocks__/wasm-mock.js +3 -0
  31. package/dist/code-map/__mocks__/wasm-mock.js.map +1 -0
  32. package/dist/code-map/__tests__/parse.test.d.ts +2 -0
  33. package/dist/code-map/__tests__/parse.test.d.ts.map +1 -0
  34. package/dist/code-map/__tests__/parse.test.js +231 -0
  35. package/dist/code-map/__tests__/parse.test.js.map +1 -0
  36. package/dist/code-map/__tests__/test-langs/consumer.d.ts +2 -0
  37. package/dist/code-map/__tests__/test-langs/consumer.d.ts.map +1 -0
  38. package/dist/code-map/__tests__/test-langs/consumer.js +6 -0
  39. package/dist/code-map/__tests__/test-langs/consumer.js.map +1 -0
  40. package/dist/code-map/__tests__/test-langs/empty.d.ts +1 -0
  41. package/dist/code-map/__tests__/test-langs/empty.d.ts.map +1 -0
  42. package/dist/code-map/__tests__/test-langs/empty.js +2 -0
  43. package/dist/code-map/__tests__/test-langs/empty.js.map +1 -0
  44. package/dist/code-map/__tests__/test-langs/test.d.ts +12 -0
  45. package/dist/code-map/__tests__/test-langs/test.d.ts.map +1 -0
  46. package/dist/code-map/__tests__/test-langs/test.js +23 -0
  47. package/dist/code-map/__tests__/test-langs/test.js.map +1 -0
  48. package/dist/code-map/__tests__/test-langs/unused.d.ts +2 -0
  49. package/dist/code-map/__tests__/test-langs/unused.d.ts.map +1 -0
  50. package/dist/code-map/__tests__/test-langs/unused.js +7 -0
  51. package/dist/code-map/__tests__/test-langs/unused.js.map +1 -0
  52. package/dist/code-map/__tests__/test-langs/utils1.d.ts +2 -0
  53. package/dist/code-map/__tests__/test-langs/utils1.d.ts.map +1 -0
  54. package/dist/code-map/__tests__/test-langs/utils1.js +7 -0
  55. package/dist/code-map/__tests__/test-langs/utils1.js.map +1 -0
  56. package/dist/code-map/__tests__/test-langs/utils2.d.ts +2 -0
  57. package/dist/code-map/__tests__/test-langs/utils2.d.ts.map +1 -0
  58. package/dist/code-map/__tests__/test-langs/utils2.js +8 -0
  59. package/dist/code-map/__tests__/test-langs/utils2.js.map +1 -0
  60. package/dist/code-map/__tests__/tree-sitter-minimal.test.d.ts +2 -0
  61. package/dist/code-map/__tests__/tree-sitter-minimal.test.d.ts.map +1 -0
  62. package/dist/code-map/__tests__/tree-sitter-minimal.test.js +79 -0
  63. package/dist/code-map/__tests__/tree-sitter-minimal.test.js.map +1 -0
  64. package/dist/code-map/jest.config.d.ts +4 -0
  65. package/dist/code-map/jest.config.d.ts.map +1 -0
  66. package/dist/code-map/jest.config.js +18 -0
  67. package/dist/code-map/jest.config.js.map +1 -0
  68. package/dist/code-map/parse.test.d.ts +2 -0
  69. package/dist/code-map/parse.test.d.ts.map +1 -0
  70. package/dist/code-map/parse.test.js +218 -0
  71. package/dist/code-map/parse.test.js.map +1 -0
  72. package/dist/code-map/scripts/tree-sitter-test.cjs +27 -0
  73. package/dist/code-map/scripts/tree-sitter-test.cjs.map +1 -0
  74. package/dist/code-map/scripts/tree-sitter-test.d.cts +2 -0
  75. package/dist/code-map/scripts/tree-sitter-test.d.cts.map +1 -0
  76. package/dist/code-map/scripts/tree-sitter-test.d.ts +2 -0
  77. package/dist/code-map/scripts/tree-sitter-test.d.ts.map +1 -0
  78. package/dist/code-map/scripts/tree-sitter-test.js +54 -0
  79. package/dist/code-map/scripts/tree-sitter-test.js.map +1 -0
  80. package/dist/code-map/test-parser.d.ts +2 -0
  81. package/dist/code-map/test-parser.d.ts.map +1 -0
  82. package/dist/code-map/test-parser.js +42 -0
  83. package/dist/code-map/test-parser.js.map +1 -0
  84. package/dist/code-map/tsconfig.tsbuildinfo +1 -1
  85. package/dist/common/actions.d.ts +3 -3
  86. package/dist/common/bigquery/client.d.ts +15 -0
  87. package/dist/common/bigquery/client.js +265 -0
  88. package/dist/common/bigquery/client.js.map +1 -0
  89. package/dist/common/bigquery/schema.d.ts +55 -0
  90. package/dist/common/bigquery/schema.js +24 -0
  91. package/dist/common/bigquery/schema.js.map +1 -0
  92. package/dist/common/constants.d.ts +1 -1
  93. package/dist/common/constants.js +4 -1
  94. package/dist/common/constants.js.map +1 -1
  95. package/dist/common/types/message.d.ts +8 -0
  96. package/dist/common/types/message.js +9 -1
  97. package/dist/common/types/message.js.map +1 -1
  98. package/dist/common/util/file-metadata.d.ts +9 -0
  99. package/dist/common/util/file-metadata.js +24 -0
  100. package/dist/common/util/file-metadata.js.map +1 -0
  101. package/dist/common/websockets/websocket-schema.d.ts +10 -10
  102. package/dist/index.js +14 -2
  103. package/dist/menu.js +7 -0
  104. package/dist/menu.js.map +1 -1
  105. package/package.json +1 -1
  106. package/dist/common/credit-delegation.d.ts +0 -19
  107. package/dist/common/credit-delegation.js +0 -97
  108. package/dist/common/credit-delegation.js.map +0 -1
  109. package/dist/common/types/organization.d.ts +0 -102
  110. package/dist/common/types/organization.js.map +0 -1
  111. package/dist/organization-context.d.ts +0 -47
  112. package/dist/organization-context.js +0 -171
  113. package/dist/organization-context.js.map +0 -1
  114. package/dist/slash-commands.d.ts +0 -7
  115. package/dist/slash-commands.js +0 -21
  116. package/dist/slash-commands.js.map +0 -1
  117. package/dist/utils/image.d.ts +0 -4
  118. package/dist/utils/image.js +0 -67
  119. package/dist/utils/image.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils2.d.ts","sourceRoot":"","sources":["../../../__tests__/test-langs/utils2.ts"],"names":[],"mappings":"AACA,wBAAgB,KAAK,SAEpB"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.utils = utils;
4
+ // This file is deeper in the directory structure, so it will have a lower base score
5
+ function utils() {
6
+ console.log('utils from file 2');
7
+ }
8
+ //# sourceMappingURL=utils2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils2.js","sourceRoot":"","sources":["../../../__tests__/test-langs/utils2.ts"],"names":[],"mappings":";;AACA,sBAEC;AAHD,qFAAqF;AACrF,SAAgB,KAAK;IACjB,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;AACrC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=tree-sitter-minimal.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tree-sitter-minimal.test.d.ts","sourceRoot":"","sources":["../../__tests__/tree-sitter-minimal.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,79 @@
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
+ const globals_1 = require("@jest/globals");
32
+ (0, globals_1.describe)('tree-sitter minimal test', () => {
33
+ (0, globals_1.it)('should parse and query TypeScript code', async () => {
34
+ // Initialize parser and language inside the test
35
+ const parser = new tree_sitter_1.default();
36
+ const languageModule = await Promise.resolve().then(() => __importStar(require('tree-sitter-typescript')));
37
+ const language = languageModule.typescript;
38
+ console.log('Language module:', languageModule);
39
+ console.log('Language:', language);
40
+ try {
41
+ parser.setLanguage(language);
42
+ console.log('Language set successfully');
43
+ }
44
+ catch (err) {
45
+ console.error('Error setting language:', err);
46
+ throw err;
47
+ }
48
+ // Simple TypeScript code
49
+ const sourceCode = `
50
+ interface Greeter {
51
+ greet(): string;
52
+ }
53
+ `;
54
+ console.log('Source code:', sourceCode);
55
+ try {
56
+ const tree = parser.parse(sourceCode);
57
+ console.log('Parse tree:', tree);
58
+ if (!tree) {
59
+ throw new Error('Parser returned undefined tree');
60
+ }
61
+ // Simple query to find interface name
62
+ const queryString = '(interface_declaration name: (type_identifier) @interface_name)';
63
+ const query = new tree_sitter_2.Query(parser.getLanguage(), queryString);
64
+ const captures = query.captures(tree.rootNode);
65
+ // Log for debugging
66
+ console.log('Tree:', tree.rootNode.toString());
67
+ console.log('Captures:', captures);
68
+ console.log('First capture text:', captures[0]?.node.text);
69
+ // Should find "Greeter"
70
+ (0, globals_1.expect)(captures.length).toBe(1);
71
+ (0, globals_1.expect)(captures[0].node.text).toBe('Greeter');
72
+ }
73
+ catch (err) {
74
+ console.error('Error during parsing or querying:', err);
75
+ throw err;
76
+ }
77
+ });
78
+ });
79
+ //# sourceMappingURL=tree-sitter-minimal.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tree-sitter-minimal.test.js","sourceRoot":"","sources":["../../__tests__/tree-sitter-minimal.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8DAAgC;AAChC,6CAAmC;AACnC,2CAAoD;AAGpD,IAAA,kBAAQ,EAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,IAAA,YAAE,EAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACtD,iDAAiD;QACjD,MAAM,MAAM,GAAG,IAAI,qBAAM,EAAE,CAAA;QAC3B,MAAM,cAAc,GAAG,wDAAa,wBAAwB,GAAC,CAAA;QAC7D,MAAM,QAAQ,GAAG,cAAc,CAAC,UAAiC,CAAA;QAEjE,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,cAAc,CAAC,CAAA;QAC/C,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA;QAElC,IAAI,CAAC;YACH,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;YAC5B,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAA;QAC1C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,GAAG,CAAC,CAAA;YAC7C,MAAM,GAAG,CAAA;QACX,CAAC;QAED,yBAAyB;QACzB,MAAM,UAAU,GAAG;;;;CAItB,CAAA;QACG,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,UAAU,CAAC,CAAA;QAEvC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;YACrC,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,CAAA;YAEhC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;YACnD,CAAC;YAED,sCAAsC;YACtC,MAAM,WAAW,GAAG,iEAAiE,CAAA;YACrF,MAAM,KAAK,GAAG,IAAI,mBAAK,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,WAAW,CAAC,CAAA;YAC1D,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YAE9C,oBAAoB;YACpB,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAA;YAC9C,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA;YAClC,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;YAE1D,wBAAwB;YACxB,IAAA,gBAAM,EAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YAC/B,IAAA,gBAAM,EAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAC/C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,GAAG,CAAC,CAAA;YACvD,MAAM,GAAG,CAAA;QACX,CAAC;IACH,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -0,0 +1,4 @@
1
+ export = config;
2
+ /** @type {import('jest').Config} */
3
+ declare const config: import("jest").Config;
4
+ //# sourceMappingURL=jest.config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jest.config.d.ts","sourceRoot":"","sources":["../jest.config.js"],"names":[],"mappings":";AAAA,oCAAoC;AACpC,sBADW,OAAO,MAAM,EAAE,MAAM,CAc9B"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ /** @type {import('jest').Config} */
3
+ const config = {
4
+ preset: 'ts-jest',
5
+ testEnvironment: 'node',
6
+ testMatch: ['**/__tests__/**/*.test.ts'],
7
+ moduleFileExtensions: ['js', 'jsx', 'ts', 'tsx', 'json', 'node', 'wasm'],
8
+ transform: {
9
+ '^.+\\.tsx?$': ['ts-jest', {
10
+ tsconfig: './tsconfig.json'
11
+ }]
12
+ },
13
+ transformIgnorePatterns: [
14
+ 'node_modules/(?!(tree-sitter|tree-sitter-typescript)/)'
15
+ ]
16
+ };
17
+ module.exports = config;
18
+ //# sourceMappingURL=jest.config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jest.config.js","sourceRoot":"","sources":["../jest.config.js"],"names":[],"mappings":";AAAA,oCAAoC;AACpC,MAAM,MAAM,GAAG;IACb,MAAM,EAAE,SAAS;IACjB,eAAe,EAAE,MAAM;IACvB,SAAS,EAAE,CAAC,2BAA2B,CAAC;IACxC,oBAAoB,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;IACxE,SAAS,EAAE;QACT,aAAa,EAAE,CAAC,SAAS,EAAE;gBACzB,QAAQ,EAAE,iBAAiB;aAC5B,CAAC;KACH;IACD,uBAAuB,EAAE;QACvB,wDAAwD;KACzD;CACF,CAAC;AAEF,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=parse.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse.test.d.ts","sourceRoot":"","sources":["../parse.test.ts"],"names":[],"mappings":""}
@@ -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"}