@rangerchaz/aimem 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +380 -0
- package/dist/cli/commands/git.d.ts +6 -0
- package/dist/cli/commands/git.d.ts.map +1 -0
- package/dist/cli/commands/git.js +298 -0
- package/dist/cli/commands/git.js.map +1 -0
- package/dist/cli/commands/hook-session-end.d.ts +7 -0
- package/dist/cli/commands/hook-session-end.d.ts.map +1 -0
- package/dist/cli/commands/hook-session-end.js +109 -0
- package/dist/cli/commands/hook-session-end.js.map +1 -0
- package/dist/cli/commands/hook-session-start.d.ts +7 -0
- package/dist/cli/commands/hook-session-start.d.ts.map +1 -0
- package/dist/cli/commands/hook-session-start.js +116 -0
- package/dist/cli/commands/hook-session-start.js.map +1 -0
- package/dist/cli/commands/import.d.ts +14 -0
- package/dist/cli/commands/import.d.ts.map +1 -0
- package/dist/cli/commands/import.js +527 -0
- package/dist/cli/commands/import.js.map +1 -0
- package/dist/cli/commands/init.d.ts +2 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +32 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/mcp-serve.d.ts +2 -0
- package/dist/cli/commands/mcp-serve.d.ts.map +1 -0
- package/dist/cli/commands/mcp-serve.js +5 -0
- package/dist/cli/commands/mcp-serve.js.map +1 -0
- package/dist/cli/commands/query.d.ts +8 -0
- package/dist/cli/commands/query.d.ts.map +1 -0
- package/dist/cli/commands/query.js +83 -0
- package/dist/cli/commands/query.js.map +1 -0
- package/dist/cli/commands/setup.d.ts +10 -0
- package/dist/cli/commands/setup.d.ts.map +1 -0
- package/dist/cli/commands/setup.js +504 -0
- package/dist/cli/commands/setup.js.map +1 -0
- package/dist/cli/commands/start.d.ts +8 -0
- package/dist/cli/commands/start.d.ts.map +1 -0
- package/dist/cli/commands/start.js +90 -0
- package/dist/cli/commands/start.js.map +1 -0
- package/dist/cli/commands/status.d.ts +2 -0
- package/dist/cli/commands/status.d.ts.map +1 -0
- package/dist/cli/commands/status.js +85 -0
- package/dist/cli/commands/status.js.map +1 -0
- package/dist/cli/commands/stop.d.ts +7 -0
- package/dist/cli/commands/stop.d.ts.map +1 -0
- package/dist/cli/commands/stop.js +46 -0
- package/dist/cli/commands/stop.js.map +1 -0
- package/dist/cli/commands/visualize.d.ts +8 -0
- package/dist/cli/commands/visualize.d.ts.map +1 -0
- package/dist/cli/commands/visualize.js +96 -0
- package/dist/cli/commands/visualize.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +114 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/db/index.d.ts +55 -0
- package/dist/db/index.d.ts.map +1 -0
- package/dist/db/index.js +464 -0
- package/dist/db/index.js.map +1 -0
- package/dist/db/schema.d.ts +4 -0
- package/dist/db/schema.d.ts.map +1 -0
- package/dist/db/schema.js +200 -0
- package/dist/db/schema.js.map +1 -0
- package/dist/extractor/index.d.ts +27 -0
- package/dist/extractor/index.d.ts.map +1 -0
- package/dist/extractor/index.js +227 -0
- package/dist/extractor/index.js.map +1 -0
- package/dist/git/extractor.d.ts +30 -0
- package/dist/git/extractor.d.ts.map +1 -0
- package/dist/git/extractor.js +126 -0
- package/dist/git/extractor.js.map +1 -0
- package/dist/git/hooks.d.ts +36 -0
- package/dist/git/hooks.d.ts.map +1 -0
- package/dist/git/hooks.js +142 -0
- package/dist/git/hooks.js.map +1 -0
- package/dist/git/index.d.ts +69 -0
- package/dist/git/index.d.ts.map +1 -0
- package/dist/git/index.js +250 -0
- package/dist/git/index.js.map +1 -0
- package/dist/indexer/index.d.ts +20 -0
- package/dist/indexer/index.d.ts.map +1 -0
- package/dist/indexer/index.js +173 -0
- package/dist/indexer/index.js.map +1 -0
- package/dist/indexer/parsers/base.d.ts +19 -0
- package/dist/indexer/parsers/base.d.ts.map +1 -0
- package/dist/indexer/parsers/base.js +46 -0
- package/dist/indexer/parsers/base.js.map +1 -0
- package/dist/indexer/parsers/cpp.d.ts +3 -0
- package/dist/indexer/parsers/cpp.d.ts.map +1 -0
- package/dist/indexer/parsers/cpp.js +180 -0
- package/dist/indexer/parsers/cpp.js.map +1 -0
- package/dist/indexer/parsers/go.d.ts +3 -0
- package/dist/indexer/parsers/go.d.ts.map +1 -0
- package/dist/indexer/parsers/go.js +98 -0
- package/dist/indexer/parsers/go.js.map +1 -0
- package/dist/indexer/parsers/java.d.ts +3 -0
- package/dist/indexer/parsers/java.d.ts.map +1 -0
- package/dist/indexer/parsers/java.js +204 -0
- package/dist/indexer/parsers/java.js.map +1 -0
- package/dist/indexer/parsers/javascript.d.ts +3 -0
- package/dist/indexer/parsers/javascript.d.ts.map +1 -0
- package/dist/indexer/parsers/javascript.js +157 -0
- package/dist/indexer/parsers/javascript.js.map +1 -0
- package/dist/indexer/parsers/kotlin.d.ts +3 -0
- package/dist/indexer/parsers/kotlin.d.ts.map +1 -0
- package/dist/indexer/parsers/kotlin.js +182 -0
- package/dist/indexer/parsers/kotlin.js.map +1 -0
- package/dist/indexer/parsers/php.d.ts +3 -0
- package/dist/indexer/parsers/php.d.ts.map +1 -0
- package/dist/indexer/parsers/php.js +190 -0
- package/dist/indexer/parsers/php.js.map +1 -0
- package/dist/indexer/parsers/python.d.ts +3 -0
- package/dist/indexer/parsers/python.d.ts.map +1 -0
- package/dist/indexer/parsers/python.js +101 -0
- package/dist/indexer/parsers/python.js.map +1 -0
- package/dist/indexer/parsers/ruby.d.ts +3 -0
- package/dist/indexer/parsers/ruby.d.ts.map +1 -0
- package/dist/indexer/parsers/ruby.js +92 -0
- package/dist/indexer/parsers/ruby.js.map +1 -0
- package/dist/indexer/parsers/rust.d.ts +3 -0
- package/dist/indexer/parsers/rust.d.ts.map +1 -0
- package/dist/indexer/parsers/rust.js +190 -0
- package/dist/indexer/parsers/rust.js.map +1 -0
- package/dist/indexer/watcher-daemon.d.ts +2 -0
- package/dist/indexer/watcher-daemon.d.ts.map +1 -0
- package/dist/indexer/watcher-daemon.js +27 -0
- package/dist/indexer/watcher-daemon.js.map +1 -0
- package/dist/indexer/watcher.d.ts +7 -0
- package/dist/indexer/watcher.d.ts.map +1 -0
- package/dist/indexer/watcher.js +77 -0
- package/dist/indexer/watcher.js.map +1 -0
- package/dist/mcp/server.d.ts +2 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +241 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/proxy/interceptor-mockttp.d.ts +27 -0
- package/dist/proxy/interceptor-mockttp.d.ts.map +1 -0
- package/dist/proxy/interceptor-mockttp.js +274 -0
- package/dist/proxy/interceptor-mockttp.js.map +1 -0
- package/dist/proxy/proxy-daemon.d.ts +5 -0
- package/dist/proxy/proxy-daemon.d.ts.map +1 -0
- package/dist/proxy/proxy-daemon.js +26 -0
- package/dist/proxy/proxy-daemon.js.map +1 -0
- package/dist/query/index.d.ts +32 -0
- package/dist/query/index.d.ts.map +1 -0
- package/dist/query/index.js +135 -0
- package/dist/query/index.js.map +1 -0
- package/dist/types/index.d.ts +89 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +3 -0
- package/dist/types/index.js.map +1 -0
- package/dist/visualize/index.d.ts +144 -0
- package/dist/visualize/index.d.ts.map +1 -0
- package/dist/visualize/index.js +707 -0
- package/dist/visualize/index.js.map +1 -0
- package/dist/visualize/server.d.ts +7 -0
- package/dist/visualize/server.d.ts.map +1 -0
- package/dist/visualize/server.js +77 -0
- package/dist/visualize/server.js.map +1 -0
- package/dist/visualize/template.d.ts +3 -0
- package/dist/visualize/template.d.ts.map +1 -0
- package/dist/visualize/template.js +3465 -0
- package/dist/visualize/template.js.map +1 -0
- package/package.json +56 -0
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Git hooks for aimem integration
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Generate post-commit hook content
|
|
6
|
+
*/
|
|
7
|
+
export declare function generatePostCommitHook(): string;
|
|
8
|
+
/**
|
|
9
|
+
* Generate pre-push hook content
|
|
10
|
+
*/
|
|
11
|
+
export declare function generatePrePushHook(): string;
|
|
12
|
+
/**
|
|
13
|
+
* Check if a hook is installed by aimem
|
|
14
|
+
*/
|
|
15
|
+
export declare function isAimemHook(hookPath: string): boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Install a git hook
|
|
18
|
+
*/
|
|
19
|
+
export declare function installHook(projectPath: string, hookName: 'post-commit' | 'pre-push', options?: {
|
|
20
|
+
force?: boolean;
|
|
21
|
+
}): {
|
|
22
|
+
success: boolean;
|
|
23
|
+
message: string;
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Remove a git hook installed by aimem
|
|
27
|
+
*/
|
|
28
|
+
export declare function removeHook(projectPath: string, hookName: 'post-commit' | 'pre-push'): {
|
|
29
|
+
success: boolean;
|
|
30
|
+
message: string;
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* Get status of installed hooks
|
|
34
|
+
*/
|
|
35
|
+
export declare function getHooksStatus(projectPath: string): Record<string, 'installed' | 'not-installed' | 'other'>;
|
|
36
|
+
//# sourceMappingURL=hooks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/git/hooks.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CAU/C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAU5C;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAQrD;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,aAAa,GAAG,UAAU,EACpC,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,GAChC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CA6CvC;AAED;;GAEG;AACH,wBAAgB,UAAU,CACxB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,aAAa,GAAG,UAAU,GACnC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAsBvC;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,eAAe,GAAG,OAAO,CAAC,CAqB3G"}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Git hooks for aimem integration
|
|
3
|
+
*/
|
|
4
|
+
import { existsSync, writeFileSync, readFileSync, chmodSync, unlinkSync, mkdirSync } from 'fs';
|
|
5
|
+
import { join } from 'path';
|
|
6
|
+
import { getGitRoot } from './index.js';
|
|
7
|
+
const HOOK_MARKER = '# aimem hook';
|
|
8
|
+
/**
|
|
9
|
+
* Generate post-commit hook content
|
|
10
|
+
*/
|
|
11
|
+
export function generatePostCommitHook() {
|
|
12
|
+
return `#!/bin/sh
|
|
13
|
+
${HOOK_MARKER}
|
|
14
|
+
# Auto-link decisions to commits after each commit
|
|
15
|
+
|
|
16
|
+
# Only run if aimem is available
|
|
17
|
+
if command -v aimem >/dev/null 2>&1; then
|
|
18
|
+
aimem git link --auto 2>/dev/null || true
|
|
19
|
+
fi
|
|
20
|
+
`;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Generate pre-push hook content
|
|
24
|
+
*/
|
|
25
|
+
export function generatePrePushHook() {
|
|
26
|
+
return `#!/bin/sh
|
|
27
|
+
${HOOK_MARKER}
|
|
28
|
+
# Import commits before push
|
|
29
|
+
|
|
30
|
+
# Only run if aimem is available
|
|
31
|
+
if command -v aimem >/dev/null 2>&1; then
|
|
32
|
+
aimem git import --limit 50 2>/dev/null || true
|
|
33
|
+
fi
|
|
34
|
+
`;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Check if a hook is installed by aimem
|
|
38
|
+
*/
|
|
39
|
+
export function isAimemHook(hookPath) {
|
|
40
|
+
if (!existsSync(hookPath))
|
|
41
|
+
return false;
|
|
42
|
+
try {
|
|
43
|
+
const content = readFileSync(hookPath, 'utf-8');
|
|
44
|
+
return content.includes(HOOK_MARKER);
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
return false;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Install a git hook
|
|
52
|
+
*/
|
|
53
|
+
export function installHook(projectPath, hookName, options = {}) {
|
|
54
|
+
const gitRoot = getGitRoot(projectPath);
|
|
55
|
+
if (!gitRoot) {
|
|
56
|
+
return { success: false, message: 'Not a git repository' };
|
|
57
|
+
}
|
|
58
|
+
const hooksDir = join(gitRoot, '.git', 'hooks');
|
|
59
|
+
const hookPath = join(hooksDir, hookName);
|
|
60
|
+
// Check if hook already exists
|
|
61
|
+
if (existsSync(hookPath)) {
|
|
62
|
+
if (isAimemHook(hookPath)) {
|
|
63
|
+
return { success: true, message: `Hook ${hookName} already installed` };
|
|
64
|
+
}
|
|
65
|
+
if (!options.force) {
|
|
66
|
+
return { success: false, message: `Hook ${hookName} already exists (use --force to overwrite)` };
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
// Ensure hooks directory exists
|
|
70
|
+
if (!existsSync(hooksDir)) {
|
|
71
|
+
mkdirSync(hooksDir, { recursive: true });
|
|
72
|
+
}
|
|
73
|
+
// Generate hook content
|
|
74
|
+
let content;
|
|
75
|
+
switch (hookName) {
|
|
76
|
+
case 'post-commit':
|
|
77
|
+
content = generatePostCommitHook();
|
|
78
|
+
break;
|
|
79
|
+
case 'pre-push':
|
|
80
|
+
content = generatePrePushHook();
|
|
81
|
+
break;
|
|
82
|
+
default:
|
|
83
|
+
return { success: false, message: `Unknown hook: ${hookName}` };
|
|
84
|
+
}
|
|
85
|
+
// Write hook
|
|
86
|
+
try {
|
|
87
|
+
writeFileSync(hookPath, content);
|
|
88
|
+
chmodSync(hookPath, 0o755);
|
|
89
|
+
return { success: true, message: `Installed ${hookName} hook` };
|
|
90
|
+
}
|
|
91
|
+
catch (err) {
|
|
92
|
+
return { success: false, message: `Failed to write hook: ${err.message}` };
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Remove a git hook installed by aimem
|
|
97
|
+
*/
|
|
98
|
+
export function removeHook(projectPath, hookName) {
|
|
99
|
+
const gitRoot = getGitRoot(projectPath);
|
|
100
|
+
if (!gitRoot) {
|
|
101
|
+
return { success: false, message: 'Not a git repository' };
|
|
102
|
+
}
|
|
103
|
+
const hookPath = join(gitRoot, '.git', 'hooks', hookName);
|
|
104
|
+
if (!existsSync(hookPath)) {
|
|
105
|
+
return { success: true, message: `Hook ${hookName} not installed` };
|
|
106
|
+
}
|
|
107
|
+
if (!isAimemHook(hookPath)) {
|
|
108
|
+
return { success: false, message: `Hook ${hookName} was not installed by aimem` };
|
|
109
|
+
}
|
|
110
|
+
try {
|
|
111
|
+
unlinkSync(hookPath);
|
|
112
|
+
return { success: true, message: `Removed ${hookName} hook` };
|
|
113
|
+
}
|
|
114
|
+
catch (err) {
|
|
115
|
+
return { success: false, message: `Failed to remove hook: ${err.message}` };
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Get status of installed hooks
|
|
120
|
+
*/
|
|
121
|
+
export function getHooksStatus(projectPath) {
|
|
122
|
+
const gitRoot = getGitRoot(projectPath);
|
|
123
|
+
if (!gitRoot) {
|
|
124
|
+
return {};
|
|
125
|
+
}
|
|
126
|
+
const hooks = ['post-commit', 'pre-push'];
|
|
127
|
+
const status = {};
|
|
128
|
+
for (const hook of hooks) {
|
|
129
|
+
const hookPath = join(gitRoot, '.git', 'hooks', hook);
|
|
130
|
+
if (!existsSync(hookPath)) {
|
|
131
|
+
status[hook] = 'not-installed';
|
|
132
|
+
}
|
|
133
|
+
else if (isAimemHook(hookPath)) {
|
|
134
|
+
status[hook] = 'installed';
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
status[hook] = 'other';
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
return status;
|
|
141
|
+
}
|
|
142
|
+
//# sourceMappingURL=hooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/git/hooks.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Git operations using shell commands (no dependencies)
|
|
3
|
+
*/
|
|
4
|
+
export interface GitCommit {
|
|
5
|
+
hash: string;
|
|
6
|
+
shortHash: string;
|
|
7
|
+
authorName: string;
|
|
8
|
+
authorEmail: string;
|
|
9
|
+
timestamp: string;
|
|
10
|
+
subject: string;
|
|
11
|
+
body: string;
|
|
12
|
+
parentHashes: string[];
|
|
13
|
+
}
|
|
14
|
+
export interface GitBlame {
|
|
15
|
+
lineNumber: number;
|
|
16
|
+
hash: string;
|
|
17
|
+
author: string;
|
|
18
|
+
authorEmail: string;
|
|
19
|
+
timestamp: string;
|
|
20
|
+
}
|
|
21
|
+
export interface ChangedFile {
|
|
22
|
+
path: string;
|
|
23
|
+
status: 'A' | 'M' | 'D' | 'R' | 'C' | string;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Check if a path is a git repository
|
|
27
|
+
*/
|
|
28
|
+
export declare function isGitRepo(path: string): boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Get the current branch name
|
|
31
|
+
*/
|
|
32
|
+
export declare function getCurrentBranch(path: string): string | null;
|
|
33
|
+
/**
|
|
34
|
+
* Get the HEAD commit hash
|
|
35
|
+
*/
|
|
36
|
+
export declare function getHeadCommit(path: string): string | null;
|
|
37
|
+
/**
|
|
38
|
+
* Get commits from git log
|
|
39
|
+
*/
|
|
40
|
+
export declare function getCommits(path: string, options?: {
|
|
41
|
+
limit?: number;
|
|
42
|
+
since?: string;
|
|
43
|
+
until?: string;
|
|
44
|
+
}): Promise<GitCommit[]>;
|
|
45
|
+
/**
|
|
46
|
+
* Get a single commit by hash
|
|
47
|
+
*/
|
|
48
|
+
export declare function getCommit(path: string, hash: string): Promise<GitCommit | null>;
|
|
49
|
+
/**
|
|
50
|
+
* Get files changed in a commit
|
|
51
|
+
*/
|
|
52
|
+
export declare function getChangedFiles(path: string, hash: string): Promise<ChangedFile[]>;
|
|
53
|
+
/**
|
|
54
|
+
* Get git blame for a file
|
|
55
|
+
*/
|
|
56
|
+
export declare function getBlame(path: string, filePath: string): Promise<GitBlame[]>;
|
|
57
|
+
/**
|
|
58
|
+
* Get blame for a specific line range
|
|
59
|
+
*/
|
|
60
|
+
export declare function getBlameForLines(path: string, filePath: string, startLine: number, endLine: number): Promise<GitBlame[]>;
|
|
61
|
+
/**
|
|
62
|
+
* Get the root directory of the git repository
|
|
63
|
+
*/
|
|
64
|
+
export declare function getGitRoot(path: string): string | null;
|
|
65
|
+
/**
|
|
66
|
+
* Check if there are uncommitted changes
|
|
67
|
+
*/
|
|
68
|
+
export declare function hasUncommittedChanges(path: string): boolean;
|
|
69
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/git/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,QAAQ;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,MAAM,CAAC;CAC9C;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAO/C;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAM5D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAMzD;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO,GAC/D,OAAO,CAAC,SAAS,EAAE,CAAC,CAyCtB;AAED;;GAEG;AACH,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAwBrF;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAoBxF;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CA0ClF;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,QAAQ,EAAE,CAAC,CA2CrB;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAMtD;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAO3D"}
|
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Git operations using shell commands (no dependencies)
|
|
3
|
+
*/
|
|
4
|
+
import { execSync, exec } from 'child_process';
|
|
5
|
+
import { promisify } from 'util';
|
|
6
|
+
const execAsync = promisify(exec);
|
|
7
|
+
/**
|
|
8
|
+
* Check if a path is a git repository
|
|
9
|
+
*/
|
|
10
|
+
export function isGitRepo(path) {
|
|
11
|
+
try {
|
|
12
|
+
execSync('git rev-parse --git-dir', { cwd: path, stdio: 'pipe' });
|
|
13
|
+
return true;
|
|
14
|
+
}
|
|
15
|
+
catch {
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Get the current branch name
|
|
21
|
+
*/
|
|
22
|
+
export function getCurrentBranch(path) {
|
|
23
|
+
try {
|
|
24
|
+
return execSync('git rev-parse --abbrev-ref HEAD', { cwd: path, encoding: 'utf-8' }).trim();
|
|
25
|
+
}
|
|
26
|
+
catch {
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Get the HEAD commit hash
|
|
32
|
+
*/
|
|
33
|
+
export function getHeadCommit(path) {
|
|
34
|
+
try {
|
|
35
|
+
return execSync('git rev-parse HEAD', { cwd: path, encoding: 'utf-8' }).trim();
|
|
36
|
+
}
|
|
37
|
+
catch {
|
|
38
|
+
return null;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Get commits from git log
|
|
43
|
+
*/
|
|
44
|
+
export async function getCommits(path, options = {}) {
|
|
45
|
+
const { limit = 100, since, until } = options;
|
|
46
|
+
// Use a unique separator that won't appear in commit messages
|
|
47
|
+
const SEP = '<<<AIMEM_SEP>>>';
|
|
48
|
+
const END = '<<<AIMEM_END>>>';
|
|
49
|
+
// Format: hash, short hash, author name, author email, timestamp, parent hashes, subject, body
|
|
50
|
+
const format = `%H${SEP}%h${SEP}%an${SEP}%ae${SEP}%aI${SEP}%P${SEP}%s${SEP}%b${END}`;
|
|
51
|
+
let cmd = `git log --format="${format}" -n ${limit}`;
|
|
52
|
+
if (since)
|
|
53
|
+
cmd += ` --since="${since}"`;
|
|
54
|
+
if (until)
|
|
55
|
+
cmd += ` --until="${until}"`;
|
|
56
|
+
try {
|
|
57
|
+
const { stdout } = await execAsync(cmd, { cwd: path, maxBuffer: 10 * 1024 * 1024 });
|
|
58
|
+
const commits = [];
|
|
59
|
+
for (const entry of stdout.split(END)) {
|
|
60
|
+
const trimmed = entry.trim();
|
|
61
|
+
if (!trimmed)
|
|
62
|
+
continue;
|
|
63
|
+
const parts = trimmed.split(SEP);
|
|
64
|
+
if (parts.length < 7)
|
|
65
|
+
continue;
|
|
66
|
+
commits.push({
|
|
67
|
+
hash: parts[0],
|
|
68
|
+
shortHash: parts[1],
|
|
69
|
+
authorName: parts[2],
|
|
70
|
+
authorEmail: parts[3],
|
|
71
|
+
timestamp: parts[4],
|
|
72
|
+
parentHashes: parts[5] ? parts[5].split(' ') : [],
|
|
73
|
+
subject: parts[6],
|
|
74
|
+
body: parts[7] || '',
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
return commits;
|
|
78
|
+
}
|
|
79
|
+
catch {
|
|
80
|
+
return [];
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Get a single commit by hash
|
|
85
|
+
*/
|
|
86
|
+
export async function getCommit(path, hash) {
|
|
87
|
+
const commits = await getCommits(path, { limit: 1 });
|
|
88
|
+
// Actually need to get specific commit
|
|
89
|
+
const SEP = '<<<AIMEM_SEP>>>';
|
|
90
|
+
const format = `%H${SEP}%h${SEP}%an${SEP}%ae${SEP}%aI${SEP}%P${SEP}%s${SEP}%b`;
|
|
91
|
+
try {
|
|
92
|
+
const { stdout } = await execAsync(`git show -s --format="${format}" ${hash}`, { cwd: path });
|
|
93
|
+
const parts = stdout.trim().split(SEP);
|
|
94
|
+
if (parts.length < 7)
|
|
95
|
+
return null;
|
|
96
|
+
return {
|
|
97
|
+
hash: parts[0],
|
|
98
|
+
shortHash: parts[1],
|
|
99
|
+
authorName: parts[2],
|
|
100
|
+
authorEmail: parts[3],
|
|
101
|
+
timestamp: parts[4],
|
|
102
|
+
parentHashes: parts[5] ? parts[5].split(' ') : [],
|
|
103
|
+
subject: parts[6],
|
|
104
|
+
body: parts[7] || '',
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
catch {
|
|
108
|
+
return null;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Get files changed in a commit
|
|
113
|
+
*/
|
|
114
|
+
export async function getChangedFiles(path, hash) {
|
|
115
|
+
try {
|
|
116
|
+
const { stdout } = await execAsync(`git diff-tree --no-commit-id --name-status -r ${hash}`, { cwd: path });
|
|
117
|
+
const files = [];
|
|
118
|
+
for (const line of stdout.split('\n')) {
|
|
119
|
+
const trimmed = line.trim();
|
|
120
|
+
if (!trimmed)
|
|
121
|
+
continue;
|
|
122
|
+
const [status, ...pathParts] = trimmed.split('\t');
|
|
123
|
+
files.push({
|
|
124
|
+
status: status,
|
|
125
|
+
path: pathParts.join('\t'), // Handle paths with tabs (rare)
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
return files;
|
|
129
|
+
}
|
|
130
|
+
catch {
|
|
131
|
+
return [];
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Get git blame for a file
|
|
136
|
+
*/
|
|
137
|
+
export async function getBlame(path, filePath) {
|
|
138
|
+
try {
|
|
139
|
+
// Use porcelain format for easier parsing
|
|
140
|
+
const { stdout } = await execAsync(`git blame --porcelain "${filePath}"`, { cwd: path, maxBuffer: 10 * 1024 * 1024 });
|
|
141
|
+
const lines = stdout.split('\n');
|
|
142
|
+
const blames = [];
|
|
143
|
+
let currentHash = '';
|
|
144
|
+
let currentAuthor = '';
|
|
145
|
+
let currentEmail = '';
|
|
146
|
+
let currentTimestamp = '';
|
|
147
|
+
let lineNumber = 0;
|
|
148
|
+
for (const line of lines) {
|
|
149
|
+
if (line.match(/^[0-9a-f]{40}/)) {
|
|
150
|
+
// New blame entry: hash origLine finalLine [numLines]
|
|
151
|
+
const parts = line.split(' ');
|
|
152
|
+
currentHash = parts[0];
|
|
153
|
+
lineNumber = parseInt(parts[2], 10);
|
|
154
|
+
}
|
|
155
|
+
else if (line.startsWith('author ')) {
|
|
156
|
+
currentAuthor = line.slice(7);
|
|
157
|
+
}
|
|
158
|
+
else if (line.startsWith('author-mail ')) {
|
|
159
|
+
currentEmail = line.slice(12).replace(/[<>]/g, '');
|
|
160
|
+
}
|
|
161
|
+
else if (line.startsWith('author-time ')) {
|
|
162
|
+
const timestamp = parseInt(line.slice(12), 10);
|
|
163
|
+
currentTimestamp = new Date(timestamp * 1000).toISOString();
|
|
164
|
+
}
|
|
165
|
+
else if (line.startsWith('\t')) {
|
|
166
|
+
// This is the actual line content - entry is complete
|
|
167
|
+
blames.push({
|
|
168
|
+
lineNumber,
|
|
169
|
+
hash: currentHash,
|
|
170
|
+
author: currentAuthor,
|
|
171
|
+
authorEmail: currentEmail,
|
|
172
|
+
timestamp: currentTimestamp,
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
return blames;
|
|
177
|
+
}
|
|
178
|
+
catch {
|
|
179
|
+
return [];
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Get blame for a specific line range
|
|
184
|
+
*/
|
|
185
|
+
export async function getBlameForLines(path, filePath, startLine, endLine) {
|
|
186
|
+
try {
|
|
187
|
+
const { stdout } = await execAsync(`git blame --porcelain -L ${startLine},${endLine} "${filePath}"`, { cwd: path, maxBuffer: 10 * 1024 * 1024 });
|
|
188
|
+
const lines = stdout.split('\n');
|
|
189
|
+
const blames = [];
|
|
190
|
+
let currentHash = '';
|
|
191
|
+
let currentAuthor = '';
|
|
192
|
+
let currentEmail = '';
|
|
193
|
+
let currentTimestamp = '';
|
|
194
|
+
let lineNumber = 0;
|
|
195
|
+
for (const line of lines) {
|
|
196
|
+
if (line.match(/^[0-9a-f]{40}/)) {
|
|
197
|
+
const parts = line.split(' ');
|
|
198
|
+
currentHash = parts[0];
|
|
199
|
+
lineNumber = parseInt(parts[2], 10);
|
|
200
|
+
}
|
|
201
|
+
else if (line.startsWith('author ')) {
|
|
202
|
+
currentAuthor = line.slice(7);
|
|
203
|
+
}
|
|
204
|
+
else if (line.startsWith('author-mail ')) {
|
|
205
|
+
currentEmail = line.slice(12).replace(/[<>]/g, '');
|
|
206
|
+
}
|
|
207
|
+
else if (line.startsWith('author-time ')) {
|
|
208
|
+
const timestamp = parseInt(line.slice(12), 10);
|
|
209
|
+
currentTimestamp = new Date(timestamp * 1000).toISOString();
|
|
210
|
+
}
|
|
211
|
+
else if (line.startsWith('\t')) {
|
|
212
|
+
blames.push({
|
|
213
|
+
lineNumber,
|
|
214
|
+
hash: currentHash,
|
|
215
|
+
author: currentAuthor,
|
|
216
|
+
authorEmail: currentEmail,
|
|
217
|
+
timestamp: currentTimestamp,
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
return blames;
|
|
222
|
+
}
|
|
223
|
+
catch {
|
|
224
|
+
return [];
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Get the root directory of the git repository
|
|
229
|
+
*/
|
|
230
|
+
export function getGitRoot(path) {
|
|
231
|
+
try {
|
|
232
|
+
return execSync('git rev-parse --show-toplevel', { cwd: path, encoding: 'utf-8' }).trim();
|
|
233
|
+
}
|
|
234
|
+
catch {
|
|
235
|
+
return null;
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* Check if there are uncommitted changes
|
|
240
|
+
*/
|
|
241
|
+
export function hasUncommittedChanges(path) {
|
|
242
|
+
try {
|
|
243
|
+
const status = execSync('git status --porcelain', { cwd: path, encoding: 'utf-8' });
|
|
244
|
+
return status.trim().length > 0;
|
|
245
|
+
}
|
|
246
|
+
catch {
|
|
247
|
+
return false;
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/git/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAEjC,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AA0BlC;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,IAAI,CAAC;QACH,QAAQ,CAAC,yBAAyB,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAClE,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,IAAI,CAAC;QACH,OAAO,QAAQ,CAAC,iCAAiC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9F,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,IAAI,CAAC;QACH,OAAO,QAAQ,CAAC,oBAAoB,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACjF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,IAAY,EACZ,UAA8D,EAAE;IAEhE,MAAM,EAAE,KAAK,GAAG,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;IAE9C,8DAA8D;IAC9D,MAAM,GAAG,GAAG,iBAAiB,CAAC;IAC9B,MAAM,GAAG,GAAG,iBAAiB,CAAC;IAE9B,+FAA+F;IAC/F,MAAM,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,EAAE,CAAC;IAErF,IAAI,GAAG,GAAG,qBAAqB,MAAM,QAAQ,KAAK,EAAE,CAAC;IACrD,IAAI,KAAK;QAAE,GAAG,IAAI,aAAa,KAAK,GAAG,CAAC;IACxC,IAAI,KAAK;QAAE,GAAG,IAAI,aAAa,KAAK,GAAG,CAAC;IAExC,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,CAAC;QACpF,MAAM,OAAO,GAAgB,EAAE,CAAC;QAEhC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YACtC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;YAC7B,IAAI,CAAC,OAAO;gBAAE,SAAS;YAEvB,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACjC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAAE,SAAS;YAE/B,OAAO,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;gBACd,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;gBACnB,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;gBACpB,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;gBACrB,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;gBACnB,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;gBACjD,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;gBACjB,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE;aACrB,CAAC,CAAC;QACL,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,IAAY,EAAE,IAAY;IACxD,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IACrD,uCAAuC;IACvC,MAAM,GAAG,GAAG,iBAAiB,CAAC;IAC9B,MAAM,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC;IAE/E,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,yBAAyB,MAAM,KAAK,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9F,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACvC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QAElC,OAAO;YACL,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;YACd,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;YACnB,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;YACpB,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;YACrB,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;YACnB,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;YACjD,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;YACjB,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE;SACrB,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,IAAY,EAAE,IAAY;IAC9D,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,iDAAiD,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3G,MAAM,KAAK,GAAkB,EAAE,CAAC;QAEhC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACtC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YAC5B,IAAI,CAAC,OAAO;gBAAE,SAAS;YAEvB,MAAM,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACnD,KAAK,CAAC,IAAI,CAAC;gBACT,MAAM,EAAE,MAA+B;gBACvC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,gCAAgC;aAC7D,CAAC,CAAC;QACL,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,IAAY,EAAE,QAAgB;IAC3D,IAAI,CAAC;QACH,0CAA0C;QAC1C,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,0BAA0B,QAAQ,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,CAAC;QACtH,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,MAAM,GAAe,EAAE,CAAC;QAE9B,IAAI,WAAW,GAAG,EAAE,CAAC;QACrB,IAAI,aAAa,GAAG,EAAE,CAAC;QACvB,IAAI,YAAY,GAAG,EAAE,CAAC;QACtB,IAAI,gBAAgB,GAAG,EAAE,CAAC;QAC1B,IAAI,UAAU,GAAG,CAAC,CAAC;QAEnB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE,CAAC;gBAChC,sDAAsD;gBACtD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC9B,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACvB,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACtC,CAAC;iBAAM,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBACtC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAChC,CAAC;iBAAM,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;gBAC3C,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACrD,CAAC;iBAAM,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;gBAC3C,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC/C,gBAAgB,GAAG,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;YAC9D,CAAC;iBAAM,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjC,sDAAsD;gBACtD,MAAM,CAAC,IAAI,CAAC;oBACV,UAAU;oBACV,IAAI,EAAE,WAAW;oBACjB,MAAM,EAAE,aAAa;oBACrB,WAAW,EAAE,YAAY;oBACzB,SAAS,EAAE,gBAAgB;iBAC5B,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,IAAY,EACZ,QAAgB,EAChB,SAAiB,EACjB,OAAe;IAEf,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAChC,4BAA4B,SAAS,IAAI,OAAO,KAAK,QAAQ,GAAG,EAChE,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,CAC3C,CAAC;QAEF,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,MAAM,GAAe,EAAE,CAAC;QAE9B,IAAI,WAAW,GAAG,EAAE,CAAC;QACrB,IAAI,aAAa,GAAG,EAAE,CAAC;QACvB,IAAI,YAAY,GAAG,EAAE,CAAC;QACtB,IAAI,gBAAgB,GAAG,EAAE,CAAC;QAC1B,IAAI,UAAU,GAAG,CAAC,CAAC;QAEnB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE,CAAC;gBAChC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC9B,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACvB,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACtC,CAAC;iBAAM,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBACtC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAChC,CAAC;iBAAM,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;gBAC3C,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACrD,CAAC;iBAAM,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;gBAC3C,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC/C,gBAAgB,GAAG,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;YAC9D,CAAC;iBAAM,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjC,MAAM,CAAC,IAAI,CAAC;oBACV,UAAU;oBACV,IAAI,EAAE,WAAW;oBACjB,MAAM,EAAE,aAAa;oBACrB,WAAW,EAAE,YAAY;oBACzB,SAAS,EAAE,gBAAgB;iBAC5B,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,IAAI,CAAC;QACH,OAAO,QAAQ,CAAC,+BAA+B,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5F,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAY;IAChD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,QAAQ,CAAC,wBAAwB,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;QACpF,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
interface PendingCall {
|
|
2
|
+
callerId: number;
|
|
3
|
+
calledName: string;
|
|
4
|
+
}
|
|
5
|
+
interface IndexFileOptions {
|
|
6
|
+
pendingCalls?: PendingCall[];
|
|
7
|
+
trackBlame?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export declare function indexFile(projectId: number, projectPath: string, relativePath: string, options?: IndexFileOptions): Promise<number>;
|
|
10
|
+
interface IndexProjectOptions {
|
|
11
|
+
trackBlame?: boolean;
|
|
12
|
+
}
|
|
13
|
+
export declare function indexProject(projectId: number, projectPath: string, options?: IndexProjectOptions): Promise<{
|
|
14
|
+
files: number;
|
|
15
|
+
structures: number;
|
|
16
|
+
links: number;
|
|
17
|
+
}>;
|
|
18
|
+
export declare function getSupportedExtensions(): string[];
|
|
19
|
+
export {};
|
|
20
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/indexer/index.ts"],"names":[],"mappings":"AAkBA,UAAU,WAAW;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AA+DD,UAAU,gBAAgB;IACxB,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAC7B,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,wBAAsB,SAAS,CAC7B,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,MAAM,CAAC,CAqEjB;AAED,UAAU,mBAAmB;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,wBAAsB,YAAY,CAChC,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAsD/D;AAED,wBAAgB,sBAAsB,IAAI,MAAM,EAAE,CAEjD"}
|