codebuff 1.0.292 → 1.0.293
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/code-map/tsconfig.tsbuildinfo +1 -1
- package/dist/common/constants.d.ts +2 -0
- package/dist/common/constants.js +1 -0
- package/dist/common/constants.js.map +1 -1
- package/dist/common/credit-delegation.d.ts +19 -0
- package/dist/common/credit-delegation.js +97 -0
- package/dist/common/credit-delegation.js.map +1 -0
- package/dist/common/db/schema.d.ts +1 -1
- package/dist/common/types/agent-state.d.ts +8 -8
- package/dist/common/types/message.d.ts +6 -6
- package/dist/common/types/organization.d.ts +102 -0
- package/dist/{cli-modules/types.js → common/types/organization.js} +1 -1
- package/dist/common/types/organization.js.map +1 -0
- package/dist/common/types/usage.d.ts +2 -2
- package/dist/common/util/credentials.d.ts +2 -2
- package/dist/index.js +20 -2
- package/dist/menu.js +1 -1
- package/dist/menu.js.map +1 -1
- package/dist/organization-context.d.ts +47 -0
- package/dist/organization-context.js +170 -0
- package/dist/organization-context.js.map +1 -0
- package/dist/project-files.d.ts +1 -0
- package/dist/project-files.js +13 -0
- package/dist/project-files.js.map +1 -1
- package/dist/slash-commands.d.ts +7 -0
- package/dist/slash-commands.js +21 -0
- package/dist/slash-commands.js.map +1 -0
- package/dist/utils/terminal.js +1 -3
- package/dist/utils/terminal.js.map +1 -1
- package/package.json +1 -1
- package/dist/cli-handlers/initialization-flow.d.ts +0 -1
- package/dist/cli-handlers/initialization-flow.js +0 -24
- package/dist/cli-handlers/initialization-flow.js.map +0 -1
- package/dist/cli-modules/command-processor.d.ts +0 -2
- package/dist/cli-modules/command-processor.js +0 -112
- package/dist/cli-modules/command-processor.js.map +0 -1
- package/dist/cli-modules/input-handler.d.ts +0 -4
- package/dist/cli-modules/input-handler.js +0 -75
- package/dist/cli-modules/input-handler.js.map +0 -1
- package/dist/cli-modules/readline-handler.d.ts +0 -11
- package/dist/cli-modules/readline-handler.js +0 -158
- package/dist/cli-modules/readline-handler.js.map +0 -1
- package/dist/cli-modules/signal-handler.d.ts +0 -7
- package/dist/cli-modules/signal-handler.js +0 -128
- package/dist/cli-modules/signal-handler.js.map +0 -1
- package/dist/cli-modules/types.d.ts +0 -51
- package/dist/cli-modules/types.js.map +0 -1
- package/dist/cli-modules/websocket-handler.d.ts +0 -16
- package/dist/cli-modules/websocket-handler.js +0 -53
- package/dist/cli-modules/websocket-handler.js.map +0 -1
- package/dist/code-map/__mocks__/tree-sitter-typescript.d.ts +0 -12
- package/dist/code-map/__mocks__/tree-sitter-typescript.d.ts.map +0 -1
- package/dist/code-map/__mocks__/tree-sitter-typescript.js +0 -14
- package/dist/code-map/__mocks__/tree-sitter-typescript.js.map +0 -1
- package/dist/code-map/__mocks__/wasm-mock.d.ts +0 -2
- package/dist/code-map/__mocks__/wasm-mock.d.ts.map +0 -1
- package/dist/code-map/__mocks__/wasm-mock.js +0 -3
- package/dist/code-map/__mocks__/wasm-mock.js.map +0 -1
- package/dist/code-map/__tests__/parse.test.d.ts +0 -2
- package/dist/code-map/__tests__/parse.test.d.ts.map +0 -1
- package/dist/code-map/__tests__/parse.test.js +0 -231
- package/dist/code-map/__tests__/parse.test.js.map +0 -1
- package/dist/code-map/__tests__/test-langs/consumer.d.ts +0 -2
- package/dist/code-map/__tests__/test-langs/consumer.d.ts.map +0 -1
- package/dist/code-map/__tests__/test-langs/consumer.js +0 -6
- package/dist/code-map/__tests__/test-langs/consumer.js.map +0 -1
- package/dist/code-map/__tests__/test-langs/empty.d.ts +0 -1
- package/dist/code-map/__tests__/test-langs/empty.d.ts.map +0 -1
- package/dist/code-map/__tests__/test-langs/empty.js +0 -2
- package/dist/code-map/__tests__/test-langs/empty.js.map +0 -1
- package/dist/code-map/__tests__/test-langs/test.d.ts +0 -12
- package/dist/code-map/__tests__/test-langs/test.d.ts.map +0 -1
- package/dist/code-map/__tests__/test-langs/test.js +0 -23
- package/dist/code-map/__tests__/test-langs/test.js.map +0 -1
- package/dist/code-map/__tests__/test-langs/unused.d.ts +0 -2
- package/dist/code-map/__tests__/test-langs/unused.d.ts.map +0 -1
- package/dist/code-map/__tests__/test-langs/unused.js +0 -7
- package/dist/code-map/__tests__/test-langs/unused.js.map +0 -1
- package/dist/code-map/__tests__/test-langs/utils1.d.ts +0 -2
- package/dist/code-map/__tests__/test-langs/utils1.d.ts.map +0 -1
- package/dist/code-map/__tests__/test-langs/utils1.js +0 -7
- package/dist/code-map/__tests__/test-langs/utils1.js.map +0 -1
- package/dist/code-map/__tests__/test-langs/utils2.d.ts +0 -2
- package/dist/code-map/__tests__/test-langs/utils2.d.ts.map +0 -1
- package/dist/code-map/__tests__/test-langs/utils2.js +0 -8
- package/dist/code-map/__tests__/test-langs/utils2.js.map +0 -1
- package/dist/code-map/__tests__/tree-sitter-minimal.test.d.ts +0 -2
- package/dist/code-map/__tests__/tree-sitter-minimal.test.d.ts.map +0 -1
- package/dist/code-map/__tests__/tree-sitter-minimal.test.js +0 -79
- package/dist/code-map/__tests__/tree-sitter-minimal.test.js.map +0 -1
- package/dist/code-map/jest.config.d.ts +0 -4
- package/dist/code-map/jest.config.d.ts.map +0 -1
- package/dist/code-map/jest.config.js +0 -18
- package/dist/code-map/jest.config.js.map +0 -1
- package/dist/code-map/parse.test.d.ts +0 -2
- package/dist/code-map/parse.test.d.ts.map +0 -1
- package/dist/code-map/parse.test.js +0 -218
- package/dist/code-map/parse.test.js.map +0 -1
- package/dist/code-map/scripts/tree-sitter-test.cjs +0 -27
- package/dist/code-map/scripts/tree-sitter-test.cjs.map +0 -1
- package/dist/code-map/scripts/tree-sitter-test.d.cts +0 -2
- package/dist/code-map/scripts/tree-sitter-test.d.cts.map +0 -1
- package/dist/code-map/scripts/tree-sitter-test.d.ts +0 -2
- package/dist/code-map/scripts/tree-sitter-test.d.ts.map +0 -1
- package/dist/code-map/scripts/tree-sitter-test.js +0 -54
- package/dist/code-map/scripts/tree-sitter-test.js.map +0 -1
- package/dist/code-map/test-parser.d.ts +0 -2
- package/dist/code-map/test-parser.d.ts.map +0 -1
- package/dist/code-map/test-parser.js +0 -42
- package/dist/code-map/test-parser.js.map +0 -1
- package/dist/common/bigquery/client.d.ts +0 -15
- package/dist/common/bigquery/client.js +0 -265
- package/dist/common/bigquery/client.js.map +0 -1
- package/dist/common/bigquery/schema.d.ts +0 -55
- package/dist/common/bigquery/schema.js +0 -24
- package/dist/common/bigquery/schema.js.map +0 -1
- package/dist/common/util/file-metadata.d.ts +0 -9
- package/dist/common/util/file-metadata.js +0 -24
- package/dist/common/util/file-metadata.js.map +0 -1
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.handleStopResponse = handleStopResponse;
|
|
4
|
-
exports.handleExit = handleExit;
|
|
5
|
-
exports.handleSigint = handleSigint;
|
|
6
|
-
exports.handleEscKey = handleEscKey;
|
|
7
|
-
exports.setupSignalHandlers = setupSignalHandlers;
|
|
8
|
-
exports.attachCliBehaviorEventHandlers = attachCliBehaviorEventHandlers;
|
|
9
|
-
const picocolors_1 = require("picocolors");
|
|
10
|
-
const string_1 = require("../common/util/string");
|
|
11
|
-
const background_process_manager_1 = require("../background-process-manager");
|
|
12
|
-
const analytics_1 = require("../utils/analytics");
|
|
13
|
-
const spinner_1 = require("../utils/spinner");
|
|
14
|
-
const terminal_1 = require("../utils/terminal");
|
|
15
|
-
const project_files_1 = require("../project-files");
|
|
16
|
-
// Helper function to access CLI properties safely
|
|
17
|
-
function getCliProperties(cli) {
|
|
18
|
-
return {
|
|
19
|
-
rl: cli.rl,
|
|
20
|
-
isReceivingResponse: cli.isReceivingResponse,
|
|
21
|
-
stopResponse: cli.stopResponse,
|
|
22
|
-
client: cli.client,
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
let lastSigintTime = 0;
|
|
26
|
-
function handleStopResponse(cli) {
|
|
27
|
-
console.log((0, picocolors_1.yellow)('\n[Response stopped by user]'));
|
|
28
|
-
cli.isReceivingResponse = false;
|
|
29
|
-
if (cli.stopResponse) {
|
|
30
|
-
cli.stopResponse();
|
|
31
|
-
cli.stopResponse = null;
|
|
32
|
-
}
|
|
33
|
-
spinner_1.Spinner.get().stop();
|
|
34
|
-
}
|
|
35
|
-
async function handleExit(cli) {
|
|
36
|
-
spinner_1.Spinner.get().restoreCursor();
|
|
37
|
-
process.removeAllListeners('unhandledRejection');
|
|
38
|
-
process.removeAllListeners('uncaughtException');
|
|
39
|
-
console.log('\n');
|
|
40
|
-
(0, terminal_1.killAndResetPersistentProcess)();
|
|
41
|
-
await (0, background_process_manager_1.killAllBackgroundProcesses)();
|
|
42
|
-
const logMessages = [];
|
|
43
|
-
const { client } = getCliProperties(cli);
|
|
44
|
-
if (client && client.creditsByPromptId && client.usageData) {
|
|
45
|
-
const totalCreditsUsedThisSession = Object.values(client.creditsByPromptId)
|
|
46
|
-
.flat()
|
|
47
|
-
.reduce((sum, credits) => sum + credits, 0);
|
|
48
|
-
logMessages.push(`${(0, string_1.pluralize)(totalCreditsUsedThisSession, 'credit')} used this session${client.usageData.remainingBalance !== null
|
|
49
|
-
? `, ${client.usageData.remainingBalance.toLocaleString()} credits left.`
|
|
50
|
-
: '.'}`);
|
|
51
|
-
if (client.usageData.next_quota_reset) {
|
|
52
|
-
const daysUntilReset = Math.ceil((new Date(client.usageData.next_quota_reset).getTime() - Date.now()) /
|
|
53
|
-
(1000 * 60 * 60 * 24));
|
|
54
|
-
logMessages.push(`Your free credits will reset in ${(0, string_1.pluralize)(daysUntilReset, 'day')}.`);
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
else {
|
|
58
|
-
logMessages.push("Exiting Codebuff.");
|
|
59
|
-
}
|
|
60
|
-
console.log(logMessages.join(' '));
|
|
61
|
-
await (0, analytics_1.flushAnalytics)();
|
|
62
|
-
process.exit(0);
|
|
63
|
-
}
|
|
64
|
-
async function handleSigint(cli) {
|
|
65
|
-
const { rl, isReceivingResponse } = getCliProperties(cli);
|
|
66
|
-
if ((0, terminal_1.isCommandRunning)()) {
|
|
67
|
-
(0, terminal_1.resetShell)((0, project_files_1.getProjectRoot)());
|
|
68
|
-
}
|
|
69
|
-
if ('line' in rl) {
|
|
70
|
-
rl.line = '';
|
|
71
|
-
}
|
|
72
|
-
if (isReceivingResponse) {
|
|
73
|
-
handleStopResponse(cli);
|
|
74
|
-
cli.freshPrompt();
|
|
75
|
-
}
|
|
76
|
-
else {
|
|
77
|
-
const now = Date.now();
|
|
78
|
-
if (now - lastSigintTime < 5000) {
|
|
79
|
-
await handleExit(cli);
|
|
80
|
-
}
|
|
81
|
-
else {
|
|
82
|
-
lastSigintTime = now;
|
|
83
|
-
console.log('\nPress Ctrl-C again to exit');
|
|
84
|
-
cli.freshPrompt();
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
function handleEscKey(cli) {
|
|
89
|
-
const { isReceivingResponse } = getCliProperties(cli);
|
|
90
|
-
if (isReceivingResponse) {
|
|
91
|
-
handleStopResponse(cli);
|
|
92
|
-
cli.freshPrompt();
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
function setupSignalHandlers(cli) {
|
|
96
|
-
process.on('exit', () => {
|
|
97
|
-
spinner_1.Spinner.get().restoreCursor();
|
|
98
|
-
if (terminal_1.persistentProcess?.type === 'pty') {
|
|
99
|
-
terminal_1.persistentProcess.pty.kill();
|
|
100
|
-
}
|
|
101
|
-
(0, background_process_manager_1.sendKillSignalToAllBackgroundProcesses)();
|
|
102
|
-
});
|
|
103
|
-
for (const signal of ['SIGTERM', 'SIGHUP']) {
|
|
104
|
-
process.on(signal, async () => {
|
|
105
|
-
spinner_1.Spinner.get().restoreCursor();
|
|
106
|
-
await (0, background_process_manager_1.killAllBackgroundProcesses)();
|
|
107
|
-
await (0, analytics_1.flushAnalytics)();
|
|
108
|
-
process.exit(0);
|
|
109
|
-
});
|
|
110
|
-
}
|
|
111
|
-
process.on('SIGTSTP', async () => await handleExit(cli));
|
|
112
|
-
}
|
|
113
|
-
function attachCliBehaviorEventHandlers(cli) {
|
|
114
|
-
cli.rl.on('SIGINT', async () => await handleSigint(cli));
|
|
115
|
-
cli.rl.on('close', async () => await handleExit(cli));
|
|
116
|
-
process.stdin.on('keypress', (str, key) => {
|
|
117
|
-
if (key.name === 'escape') {
|
|
118
|
-
handleEscKey(cli);
|
|
119
|
-
}
|
|
120
|
-
else {
|
|
121
|
-
// Dispatch other key presses to the CLI's central key press handler
|
|
122
|
-
if (cli.dispatchKeyPress) { // Check if method exists
|
|
123
|
-
cli.dispatchKeyPress(str, key);
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
});
|
|
127
|
-
}
|
|
128
|
-
//# sourceMappingURL=signal-handler.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"signal-handler.js","sourceRoot":"","sources":["../../src/cli-modules/signal-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { Interface as ReadlineInterface } from 'readline';
|
|
2
|
-
import { Client } from '../client';
|
|
3
|
-
import { CostMode } from '../common/constants';
|
|
4
|
-
import { GitCommand } from '../types';
|
|
5
|
-
/**
|
|
6
|
-
* Base options interface that contains properties shared across multiple handlers
|
|
7
|
-
*/
|
|
8
|
-
export interface BaseHandlerOptions {
|
|
9
|
-
client: Client;
|
|
10
|
-
rl: ReadlineInterface;
|
|
11
|
-
freshPrompt: (userInput?: string) => void;
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Options for ReadlineHandler initialization
|
|
15
|
-
*/
|
|
16
|
-
export interface ReadlineHandlerOptions extends BaseHandlerOptions {
|
|
17
|
-
historyPath: string;
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Options for InputHandler initialization
|
|
21
|
-
*/
|
|
22
|
-
export interface InputHandlerOptions extends BaseHandlerOptions {
|
|
23
|
-
isReceivingResponse: boolean;
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Options for CommandProcessor initialization
|
|
27
|
-
*/
|
|
28
|
-
export interface CommandProcessorOptions extends BaseHandlerOptions {
|
|
29
|
-
readyPromise: Promise<any>;
|
|
30
|
-
costMode: CostMode;
|
|
31
|
-
git: GitCommand;
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Options for SignalHandler initialization
|
|
35
|
-
*/
|
|
36
|
-
export interface SignalHandlerOptions extends BaseHandlerOptions {
|
|
37
|
-
onExit: () => Promise<void>;
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Options for WebSocketHandler initialization
|
|
41
|
-
*/
|
|
42
|
-
export interface WebSocketHandlerOptions extends BaseHandlerOptions {
|
|
43
|
-
isReceivingResponse: boolean;
|
|
44
|
-
shouldReconnectWhenIdle: boolean;
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Common interface for all handlers
|
|
48
|
-
*/
|
|
49
|
-
export interface Handler {
|
|
50
|
-
cleanup?: () => Promise<void>;
|
|
51
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/cli-modules/types.ts"],"names":[],"mappings":""}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { WebSocketHandlerOptions, Handler } from './types';
|
|
2
|
-
export declare class WebSocketHandler implements Handler {
|
|
3
|
-
private client;
|
|
4
|
-
private freshPrompt;
|
|
5
|
-
private isReceivingResponse;
|
|
6
|
-
private shouldReconnectWhenIdle;
|
|
7
|
-
private stopResponse;
|
|
8
|
-
constructor(options: WebSocketHandlerOptions);
|
|
9
|
-
onError(): void;
|
|
10
|
-
onReconnect(): void;
|
|
11
|
-
reconnectWhenNextIdle(): void;
|
|
12
|
-
setStopResponse(stopResponse: (() => void) | null): void;
|
|
13
|
-
setIsReceivingResponse(value: boolean): void;
|
|
14
|
-
setShouldReconnectWhenIdle(value: boolean): void;
|
|
15
|
-
cleanup(): Promise<void>;
|
|
16
|
-
}
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.WebSocketHandler = void 0;
|
|
4
|
-
const picocolors_1 = require("picocolors");
|
|
5
|
-
const spinner_1 = require("../utils/spinner");
|
|
6
|
-
class WebSocketHandler {
|
|
7
|
-
client;
|
|
8
|
-
freshPrompt;
|
|
9
|
-
isReceivingResponse;
|
|
10
|
-
shouldReconnectWhenIdle;
|
|
11
|
-
stopResponse = null;
|
|
12
|
-
constructor(options) {
|
|
13
|
-
this.client = options.client;
|
|
14
|
-
this.freshPrompt = options.freshPrompt;
|
|
15
|
-
this.isReceivingResponse = options.isReceivingResponse;
|
|
16
|
-
this.shouldReconnectWhenIdle = options.shouldReconnectWhenIdle;
|
|
17
|
-
}
|
|
18
|
-
onError() {
|
|
19
|
-
spinner_1.Spinner.get().stop();
|
|
20
|
-
this.isReceivingResponse = false;
|
|
21
|
-
if (this.stopResponse) {
|
|
22
|
-
this.stopResponse();
|
|
23
|
-
this.stopResponse = null;
|
|
24
|
-
}
|
|
25
|
-
console.error('\n' + (0, picocolors_1.yellow)('Could not connect. Retrying...'));
|
|
26
|
-
}
|
|
27
|
-
onReconnect() {
|
|
28
|
-
console.log('\n' + (0, picocolors_1.green)('Reconnected!'));
|
|
29
|
-
this.freshPrompt();
|
|
30
|
-
}
|
|
31
|
-
reconnectWhenNextIdle() {
|
|
32
|
-
if (!this.isReceivingResponse) {
|
|
33
|
-
this.client.reconnect();
|
|
34
|
-
}
|
|
35
|
-
else {
|
|
36
|
-
this.shouldReconnectWhenIdle = true;
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
setStopResponse(stopResponse) {
|
|
40
|
-
this.stopResponse = stopResponse;
|
|
41
|
-
}
|
|
42
|
-
setIsReceivingResponse(value) {
|
|
43
|
-
this.isReceivingResponse = value;
|
|
44
|
-
}
|
|
45
|
-
setShouldReconnectWhenIdle(value) {
|
|
46
|
-
this.shouldReconnectWhenIdle = value;
|
|
47
|
-
}
|
|
48
|
-
async cleanup() {
|
|
49
|
-
// Nothing to clean up for now
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
exports.WebSocketHandler = WebSocketHandler;
|
|
53
|
-
//# sourceMappingURL=websocket-handler.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"websocket-handler.js","sourceRoot":"","sources":["../../src/cli-modules/websocket-handler.ts"],"names":[],"mappings":";;;AAAA,2CAA0C;AAC1C,8CAA0C;AAG1C,MAAa,gBAAgB;IACnB,MAAM,CAAmC;IACzC,WAAW,CAAwC;IACnD,mBAAmB,CAAS;IAC5B,uBAAuB,CAAS;IAChC,YAAY,GAAwB,IAAI,CAAA;IAEhD,YAAY,OAAgC;QAC1C,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;QAC5B,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAA;QACtC,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAA;QACtD,IAAI,CAAC,uBAAuB,GAAG,OAAO,CAAC,uBAAuB,CAAA;IAChE,CAAC;IAEM,OAAO;QACZ,iBAAO,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,CAAA;QACpB,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAA;QAChC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,IAAI,CAAC,YAAY,EAAE,CAAA;YACnB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAA;QAC1B,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,IAAA,mBAAM,EAAC,gCAAgC,CAAC,CAAC,CAAA;IAChE,CAAC;IAEM,WAAW;QAChB,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,IAAA,kBAAK,EAAC,cAAc,CAAC,CAAC,CAAA;QACzC,IAAI,CAAC,WAAW,EAAE,CAAA;IACpB,CAAC;IAEM,qBAAqB;QAC1B,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC9B,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAA;QACzB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAA;QACrC,CAAC;IACH,CAAC;IAEM,eAAe,CAAC,YAAiC;QACtD,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;IAClC,CAAC;IAEM,sBAAsB,CAAC,KAAc;QAC1C,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAA;IAClC,CAAC;IAEM,0BAA0B,CAAC,KAAc;QAC9C,IAAI,CAAC,uBAAuB,GAAG,KAAK,CAAA;IACtC,CAAC;IAEM,KAAK,CAAC,OAAO;QAClB,8BAA8B;IAChC,CAAC;CACF;AApDD,4CAoDC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tree-sitter-typescript.d.ts","sourceRoot":"","sources":["../../__mocks__/tree-sitter-typescript.js"],"names":[],"mappings":";;;QAGW;;;;;UAKL"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
const typescript = {
|
|
3
|
-
name: 'typescript',
|
|
4
|
-
language: {
|
|
5
|
-
parse: () => ({
|
|
6
|
-
rootNode: {
|
|
7
|
-
toString: () => '(program (interface_declaration name: (type_identifier) body: (interface_body)))',
|
|
8
|
-
text: 'Greeter'
|
|
9
|
-
}
|
|
10
|
-
})
|
|
11
|
-
}
|
|
12
|
-
};
|
|
13
|
-
module.exports = { typescript };
|
|
14
|
-
//# sourceMappingURL=tree-sitter-typescript.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tree-sitter-typescript.js","sourceRoot":"","sources":["../../__mocks__/tree-sitter-typescript.js"],"names":[],"mappings":";AAAA,MAAM,UAAU,GAAG;IACjB,IAAI,EAAE,YAAY;IAClB,QAAQ,EAAE;QACR,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;YACZ,QAAQ,EAAE;gBACR,QAAQ,EAAE,GAAG,EAAE,CAAC,kFAAkF;gBAClG,IAAI,EAAE,SAAS;aAChB;SACF,CAAC;KACH;CACF,CAAC;AAEF,MAAM,CAAC,OAAO,GAAG,EAAE,UAAU,EAAE,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"wasm-mock.d.ts","sourceRoot":"","sources":["../../__mocks__/wasm-mock.js"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"wasm-mock.js","sourceRoot":"","sources":["../../__mocks__/wasm-mock.js"],"names":[],"mappings":";AAAA,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parse.test.d.ts","sourceRoot":"","sources":["../../__tests__/parse.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,231 +0,0 @@
|
|
|
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 path = __importStar(require("path"));
|
|
27
|
-
const fs = __importStar(require("fs"));
|
|
28
|
-
const parse_1 = require("../parse");
|
|
29
|
-
const globals_1 = require("@jest/globals");
|
|
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
|
-
let tsQueryFile;
|
|
105
|
-
let pyQueryFile;
|
|
106
|
-
(0, globals_1.beforeAll)(async () => {
|
|
107
|
-
// Read the actual query files
|
|
108
|
-
tsQueryFile = await fs.promises.readFile(path.join(__dirname, '../tree-sitter-queries/tree-sitter-typescript-tags.scm'), 'utf8');
|
|
109
|
-
pyQueryFile = await fs.promises.readFile(path.join(__dirname, '../tree-sitter-queries/tree-sitter-python-tags.scm'), 'utf8');
|
|
110
|
-
});
|
|
111
|
-
(0, globals_1.describe)('getFileTokenScores', () => {
|
|
112
|
-
(0, globals_1.it)('should correctly identify tokens and calls in TypeScript', async () => {
|
|
113
|
-
// Write test file to disk temporarily
|
|
114
|
-
const testFilePath = path.join(__dirname, 'test.ts');
|
|
115
|
-
await fs.promises.writeFile(testFilePath, tsFile);
|
|
116
|
-
try {
|
|
117
|
-
const result = await (0, parse_1.getFileTokenScores)('/root', ['test.ts']);
|
|
118
|
-
// Check token identification
|
|
119
|
-
(0, globals_1.expect)(result.tokenScores['test.ts']).toHaveProperty('Greeter');
|
|
120
|
-
(0, globals_1.expect)(result.tokenScores['test.ts']).toHaveProperty('Greeting');
|
|
121
|
-
(0, globals_1.expect)(result.tokenScores['test.ts']).toHaveProperty('createGreeter');
|
|
122
|
-
(0, globals_1.expect)(result.tokenScores['test.ts']).toHaveProperty('greet');
|
|
123
|
-
(0, globals_1.expect)(result.tokenScores['test.ts']).toHaveProperty('printGreeting');
|
|
124
|
-
// Check calls
|
|
125
|
-
(0, globals_1.expect)(result.tokenCallers['test.ts']['Greeting']).toContain('test.ts');
|
|
126
|
-
(0, globals_1.expect)(result.tokenCallers['test.ts']['createGreeter']).toContain('test.ts');
|
|
127
|
-
(0, globals_1.expect)(result.tokenCallers['test.ts']['printGreeting']).toContain('test.ts');
|
|
128
|
-
(0, globals_1.expect)(result.tokenCallers['test.ts']['greet']).toContain('test.ts');
|
|
129
|
-
}
|
|
130
|
-
finally {
|
|
131
|
-
// Clean up test file
|
|
132
|
-
await fs.promises.unlink(testFilePath);
|
|
133
|
-
}
|
|
134
|
-
});
|
|
135
|
-
globals_1.it.skip('should correctly identify tokens and calls in Python', async () => {
|
|
136
|
-
// Write test file to disk temporarily
|
|
137
|
-
const testFilePath = path.join(__dirname, 'test.py');
|
|
138
|
-
await fs.promises.writeFile(testFilePath, pyFile);
|
|
139
|
-
try {
|
|
140
|
-
const result = await (0, parse_1.getFileTokenScores)('/root', ['test.py']);
|
|
141
|
-
// Check token identification
|
|
142
|
-
(0, globals_1.expect)(result.tokenScores['test.py']).toHaveProperty('Greeter');
|
|
143
|
-
(0, globals_1.expect)(result.tokenScores['test.py']).toHaveProperty('Greeting');
|
|
144
|
-
(0, globals_1.expect)(result.tokenScores['test.py']).toHaveProperty('print_greeting');
|
|
145
|
-
(0, globals_1.expect)(result.tokenScores['test.py']).toHaveProperty('greet');
|
|
146
|
-
// Check calls
|
|
147
|
-
(0, globals_1.expect)(result.tokenCallers['test.py']['Greeting']).toContain('test.py');
|
|
148
|
-
(0, globals_1.expect)(result.tokenCallers['test.py']['print_greeting']).toContain('test.py');
|
|
149
|
-
(0, globals_1.expect)(result.tokenCallers['test.py']['greet']).toContain('test.py');
|
|
150
|
-
}
|
|
151
|
-
finally {
|
|
152
|
-
// Clean up test file
|
|
153
|
-
await fs.promises.unlink(testFilePath);
|
|
154
|
-
}
|
|
155
|
-
});
|
|
156
|
-
(0, globals_1.it)('should use highest scoring definition when token is defined in multiple files', async () => {
|
|
157
|
-
// Write test files to disk temporarily
|
|
158
|
-
const utils1Path = path.join(__dirname, 'utils1.ts');
|
|
159
|
-
const utils2Path = path.join(__dirname, 'deep/utils2.ts');
|
|
160
|
-
const consumerPath = path.join(__dirname, 'consumer.ts');
|
|
161
|
-
await fs.promises.mkdir(path.join(__dirname, 'deep'), { recursive: true });
|
|
162
|
-
await fs.promises.writeFile(utils1Path, multiDefFile1);
|
|
163
|
-
await fs.promises.writeFile(utils2Path, multiDefFile2);
|
|
164
|
-
await fs.promises.writeFile(consumerPath, noDefsOnlyCallsFile);
|
|
165
|
-
try {
|
|
166
|
-
const result = await (0, parse_1.getFileTokenScores)('/root', [
|
|
167
|
-
'utils1.ts',
|
|
168
|
-
'deep/utils2.ts',
|
|
169
|
-
'consumer.ts',
|
|
170
|
-
]);
|
|
171
|
-
// utils1.ts has a higher score (shallower path)
|
|
172
|
-
(0, globals_1.expect)(result.tokenCallers['utils1.ts']['utils']).toContain('consumer.ts');
|
|
173
|
-
// utils2.ts should not be chosen as the defining file
|
|
174
|
-
(0, globals_1.expect)(result.tokenCallers['deep/utils2.ts']['utils']).toBeUndefined();
|
|
175
|
-
}
|
|
176
|
-
finally {
|
|
177
|
-
// Clean up test files
|
|
178
|
-
await fs.promises.unlink(utils1Path);
|
|
179
|
-
await fs.promises.unlink(utils2Path);
|
|
180
|
-
await fs.promises.unlink(consumerPath);
|
|
181
|
-
await fs.promises.rmdir(path.join(__dirname, 'deep'));
|
|
182
|
-
}
|
|
183
|
-
});
|
|
184
|
-
(0, globals_1.it)('should handle files with no definitions', async () => {
|
|
185
|
-
// Write test file to disk temporarily
|
|
186
|
-
const testFilePath = path.join(__dirname, 'consumer.ts');
|
|
187
|
-
await fs.promises.writeFile(testFilePath, noDefsOnlyCallsFile);
|
|
188
|
-
try {
|
|
189
|
-
const result = await (0, parse_1.getFileTokenScores)('/root', ['consumer.ts']);
|
|
190
|
-
// No definitions, only calls
|
|
191
|
-
(0, globals_1.expect)(Object.keys(result.tokenScores['consumer.ts'])).toHaveLength(0);
|
|
192
|
-
// External calls are tracked but not mapped to callers since definition is unknown
|
|
193
|
-
(0, globals_1.expect)(Object.keys(result.tokenCallers)).toHaveLength(0);
|
|
194
|
-
}
|
|
195
|
-
finally {
|
|
196
|
-
// Clean up test file
|
|
197
|
-
await fs.promises.unlink(testFilePath);
|
|
198
|
-
}
|
|
199
|
-
});
|
|
200
|
-
(0, globals_1.it)('should handle files with no calls', async () => {
|
|
201
|
-
// Write test file to disk temporarily
|
|
202
|
-
const testFilePath = path.join(__dirname, 'unused.ts');
|
|
203
|
-
await fs.promises.writeFile(testFilePath, noCallsOnlyDefsFile);
|
|
204
|
-
try {
|
|
205
|
-
const result = await (0, parse_1.getFileTokenScores)('/root', ['unused.ts']);
|
|
206
|
-
// Has definition but no calls
|
|
207
|
-
(0, globals_1.expect)(result.tokenScores['unused.ts']).toHaveProperty('unusedFunction');
|
|
208
|
-
(0, globals_1.expect)(result.tokenCallers['unused.ts']['unusedFunction']).toEqual([]);
|
|
209
|
-
}
|
|
210
|
-
finally {
|
|
211
|
-
// Clean up test file
|
|
212
|
-
await fs.promises.unlink(testFilePath);
|
|
213
|
-
}
|
|
214
|
-
});
|
|
215
|
-
(0, globals_1.it)('should handle empty files', async () => {
|
|
216
|
-
// Write test file to disk temporarily
|
|
217
|
-
const testFilePath = path.join(__dirname, 'empty.ts');
|
|
218
|
-
await fs.promises.writeFile(testFilePath, emptyFile);
|
|
219
|
-
try {
|
|
220
|
-
const result = await (0, parse_1.getFileTokenScores)('/root', ['empty.ts']);
|
|
221
|
-
// No definitions or calls
|
|
222
|
-
(0, globals_1.expect)(Object.keys(result.tokenScores['empty.ts'] || {})).toHaveLength(0);
|
|
223
|
-
(0, globals_1.expect)(Object.keys(result.tokenCallers)).toHaveLength(0);
|
|
224
|
-
}
|
|
225
|
-
finally {
|
|
226
|
-
// Clean up test file
|
|
227
|
-
await fs.promises.unlink(testFilePath);
|
|
228
|
-
}
|
|
229
|
-
});
|
|
230
|
-
});
|
|
231
|
-
//# sourceMappingURL=parse.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parse.test.js","sourceRoot":"","sources":["../../__tests__/parse.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"consumer.d.ts","sourceRoot":"","sources":["../../../__tests__/test-langs/consumer.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"consumer.js","sourceRoot":"","sources":["../../../__tests__/test-langs/consumer.ts"],"names":[],"mappings":";;AAAA,qCAAiC;AACjC,IAAA,cAAK,GAAE,CAAC;AACR,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=empty.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"empty.d.ts","sourceRoot":"","sources":["../../../__tests__/test-langs/empty.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"empty.js","sourceRoot":"","sources":["../../../__tests__/test-langs/empty.ts"],"names":[],"mappings":""}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
interface Greeter {
|
|
2
|
-
greet(name: string): string;
|
|
3
|
-
}
|
|
4
|
-
declare class Greeting implements Greeter {
|
|
5
|
-
private prefix;
|
|
6
|
-
constructor(prefix: string);
|
|
7
|
-
greet(name: string): string;
|
|
8
|
-
static printGreeting(greeter: Greeter, name: string): void;
|
|
9
|
-
}
|
|
10
|
-
declare function createGreeter(prefix: string): Greeter;
|
|
11
|
-
declare const greeting: Greeter;
|
|
12
|
-
//# sourceMappingURL=test.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../../../__tests__/test-langs/test.ts"],"names":[],"mappings":"AACA,UAAU,OAAO;IACb,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;CAC/B;AAGD,cAAM,QAAS,YAAW,OAAO;IAC7B,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,EAAE,MAAM;IAI1B,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAK3B,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;CAG7D;AAGD,iBAAS,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAE9C;AAGD,QAAA,MAAM,QAAQ,SAAyB,CAAC"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
// Class implementation
|
|
3
|
-
class Greeting {
|
|
4
|
-
prefix;
|
|
5
|
-
constructor(prefix) {
|
|
6
|
-
this.prefix = prefix;
|
|
7
|
-
}
|
|
8
|
-
greet(name) {
|
|
9
|
-
return `${this.prefix}, ${name}!`;
|
|
10
|
-
}
|
|
11
|
-
// Static method
|
|
12
|
-
static printGreeting(greeter, name) {
|
|
13
|
-
console.log(greeter.greet(name));
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
// Function
|
|
17
|
-
function createGreeter(prefix) {
|
|
18
|
-
return new Greeting(prefix);
|
|
19
|
-
}
|
|
20
|
-
// Main execution
|
|
21
|
-
const greeting = createGreeter('Hello');
|
|
22
|
-
Greeting.printGreeting(greeting, 'World');
|
|
23
|
-
//# sourceMappingURL=test.js.map
|