@lzehrung/codegraph-core 2.2.2 → 2.2.3
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/indexer/build-cache/location.d.ts +4 -2
- package/dist/indexer/build-cache/location.d.ts.map +1 -1
- package/dist/indexer/build-cache/location.js +63 -15
- package/dist/indexer/build-cache/location.js.map +1 -1
- package/dist/util/git.d.ts +66 -1
- package/dist/util/git.d.ts.map +1 -1
- package/dist/util/git.js +173 -1
- package/dist/util/git.js.map +1 -1
- package/dist/util/projectFiles.d.ts +7 -6
- package/dist/util/projectFiles.d.ts.map +1 -1
- package/dist/util/projectFiles.js +268 -59
- package/dist/util/projectFiles.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import type { BuildOptions } from "../types.js";
|
|
2
|
+
export declare const PROJECT_CACHE_DIRECTORY = ".codegraph";
|
|
3
|
+
export declare const PROJECT_CACHE_RELATIVE_PATH: string;
|
|
2
4
|
export type CacheAnchorResolution = {
|
|
3
5
|
anchor: string;
|
|
4
6
|
layer: "explicit" | "environment" | "manifest" | "git" | "project" | "user";
|
|
@@ -11,8 +13,8 @@ export type CacheLocationResolution = CacheAnchorResolution & {
|
|
|
11
13
|
/**
|
|
12
14
|
* Resolves the effective on-disk cache path along with the anchor/layer that actually
|
|
13
15
|
* produced it. This can differ from `resolveCacheAnchor`'s intended anchor when that
|
|
14
|
-
* anchor is not writable (falls back to the project root)
|
|
15
|
-
*
|
|
16
|
+
* anchor is not writable (falls back to the project root). Project-local legacy caches
|
|
17
|
+
* are migrated to the consolidated cache directory when possible.
|
|
16
18
|
*/
|
|
17
19
|
export declare function resolveCacheLocation(projectRoot: string, opts?: BuildOptions): CacheLocationResolution;
|
|
18
20
|
export declare function cacheRoot(projectRoot: string, opts?: BuildOptions): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"location.d.ts","sourceRoot":"","sources":["../../../src/indexer/build-cache/location.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,MAAM,MAAM,qBAAqB,GAAG;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,UAAU,GAAG,aAAa,GAAG,UAAU,GAAG,KAAK,GAAG,SAAS,GAAG,MAAM,CAAC;CAC7E,CAAC;AA8CF,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAKlF;AAED,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,qBAAqB,CAelG;AAED,MAAM,MAAM,uBAAuB,GAAG,qBAAqB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"location.d.ts","sourceRoot":"","sources":["../../../src/indexer/build-cache/location.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,eAAO,MAAM,uBAAuB,eAAe,CAAC;AACpD,eAAO,MAAM,2BAA2B,QAA0D,CAAC;AAGnG,MAAM,MAAM,qBAAqB,GAAG;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,UAAU,GAAG,aAAa,GAAG,UAAU,GAAG,KAAK,GAAG,SAAS,GAAG,MAAM,CAAC;CAC7E,CAAC;AA8CF,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAKlF;AAED,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,qBAAqB,CAelG;AAED,MAAM,MAAM,uBAAuB,GAAG,qBAAqB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAuD/E;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,uBAAuB,CAwDtG;AACD,wBAAgB,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,MAAM,CAE1E"}
|
|
@@ -3,6 +3,9 @@ import fs from "node:fs";
|
|
|
3
3
|
import os from "node:os";
|
|
4
4
|
import path from "node:path";
|
|
5
5
|
import { fileIdentityKey } from "../../util/paths.js";
|
|
6
|
+
export const PROJECT_CACHE_DIRECTORY = ".codegraph";
|
|
7
|
+
export const PROJECT_CACHE_RELATIVE_PATH = path.join(PROJECT_CACHE_DIRECTORY, "cache", "index-v1");
|
|
8
|
+
const LEGACY_PROJECT_CACHE_RELATIVE_PATH = path.join(".codegraph-cache", "index-v1");
|
|
6
9
|
function isWritableDirectory(candidate) {
|
|
7
10
|
try {
|
|
8
11
|
return fs.statSync(candidate).isDirectory() && fs.accessSync(candidate, fs.constants.W_OK) === undefined;
|
|
@@ -86,13 +89,41 @@ function assertAnchorNotForbidden(resolution) {
|
|
|
86
89
|
return;
|
|
87
90
|
throw new Error(`Cache anchor "${resolution.anchor}" (from ${CONFIGURED_ANCHOR_LAYER_LABELS[resolution.layer]}) is the ` +
|
|
88
91
|
`home directory or a filesystem root. codegraph refuses to use it as a cache root. Use a subdirectory ` +
|
|
89
|
-
`instead, e.g. "${path.join(resolution.anchor,
|
|
92
|
+
`instead, e.g. "${path.join(resolution.anchor, PROJECT_CACHE_DIRECTORY)}".`);
|
|
93
|
+
}
|
|
94
|
+
function migrateLegacyProjectCache(candidate, legacyCandidates, logLevel) {
|
|
95
|
+
if (fs.existsSync(candidate))
|
|
96
|
+
return;
|
|
97
|
+
const legacy = legacyCandidates.find(({ path: legacyPath }) => fs.existsSync(legacyPath));
|
|
98
|
+
if (!legacy)
|
|
99
|
+
return;
|
|
100
|
+
try {
|
|
101
|
+
fs.mkdirSync(path.dirname(candidate), { recursive: true });
|
|
102
|
+
fs.renameSync(legacy.path, candidate);
|
|
103
|
+
}
|
|
104
|
+
catch (error) {
|
|
105
|
+
if (logLevel === "debug")
|
|
106
|
+
console.debug(`Unable to migrate legacy cache from ${legacy.path}:`, error);
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
let current = path.dirname(legacy.path);
|
|
110
|
+
for (;;) {
|
|
111
|
+
try {
|
|
112
|
+
fs.rmdirSync(current);
|
|
113
|
+
}
|
|
114
|
+
catch {
|
|
115
|
+
break;
|
|
116
|
+
}
|
|
117
|
+
if (fileIdentityKey(current) === fileIdentityKey(legacy.cleanupBoundary))
|
|
118
|
+
break;
|
|
119
|
+
current = path.dirname(current);
|
|
120
|
+
}
|
|
90
121
|
}
|
|
91
122
|
/**
|
|
92
123
|
* Resolves the effective on-disk cache path along with the anchor/layer that actually
|
|
93
124
|
* produced it. This can differ from `resolveCacheAnchor`'s intended anchor when that
|
|
94
|
-
* anchor is not writable (falls back to the project root)
|
|
95
|
-
*
|
|
125
|
+
* anchor is not writable (falls back to the project root). Project-local legacy caches
|
|
126
|
+
* are migrated to the consolidated cache directory when possible.
|
|
96
127
|
*/
|
|
97
128
|
export function resolveCacheLocation(projectRoot, opts) {
|
|
98
129
|
const root = path.resolve(projectRoot);
|
|
@@ -103,27 +134,44 @@ export function resolveCacheLocation(projectRoot, opts) {
|
|
|
103
134
|
const anchor = anchorWritable ? resolution.anchor : root;
|
|
104
135
|
const effectiveLayer = anchorWritable ? resolution.layer : "project";
|
|
105
136
|
const sameRoot = fileIdentityKey(anchor) === fileIdentityKey(root);
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
(
|
|
110
|
-
|
|
137
|
+
const explicitBase = opts?.cacheDir?.trim() || process.env.CODEGRAPH_CACHE_DIR?.trim();
|
|
138
|
+
if (sameRoot && !explicitBase && (!opts?.cacheLocation || opts.cacheLocation === "project")) {
|
|
139
|
+
const candidate = path.join(root, PROJECT_CACHE_RELATIVE_PATH);
|
|
140
|
+
migrateLegacyProjectCache(candidate, [
|
|
141
|
+
{
|
|
142
|
+
path: path.join(root, LEGACY_PROJECT_CACHE_RELATIVE_PATH),
|
|
143
|
+
cleanupBoundary: path.join(root, ".codegraph-cache"),
|
|
144
|
+
},
|
|
145
|
+
], opts?.logLevel);
|
|
146
|
+
return { path: candidate, anchor, layer: effectiveLayer };
|
|
111
147
|
}
|
|
112
148
|
const namespace = projectCacheNamespace(root, effectiveLayer === "git" || effectiveLayer === "manifest" ? anchor : undefined);
|
|
113
|
-
const explicitBase = opts?.cacheDir?.trim() || process.env.CODEGRAPH_CACHE_DIR?.trim();
|
|
114
149
|
if (explicitBase) {
|
|
115
150
|
const configured = path.resolve(explicitBase);
|
|
116
151
|
const configuredPath = path.basename(configured) === namespace ? configured : path.join(configured, namespace);
|
|
117
152
|
return { path: configuredPath, anchor, layer: effectiveLayer };
|
|
118
153
|
}
|
|
119
|
-
|
|
120
|
-
|
|
154
|
+
if (opts?.cacheLocation === "user") {
|
|
155
|
+
return {
|
|
156
|
+
path: path.join(resolveCodegraphUserCacheRoot(), "index-v1", namespace),
|
|
157
|
+
anchor,
|
|
158
|
+
layer: effectiveLayer,
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
const candidate = path.join(anchor, PROJECT_CACHE_RELATIVE_PATH, namespace);
|
|
162
|
+
const legacyCandidates = [
|
|
163
|
+
{
|
|
164
|
+
path: path.join(anchor, LEGACY_PROJECT_CACHE_RELATIVE_PATH, namespace),
|
|
165
|
+
cleanupBoundary: path.join(anchor, ".codegraph-cache"),
|
|
166
|
+
},
|
|
167
|
+
];
|
|
121
168
|
if (!sameRoot && !opts?.cacheLocation) {
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
}
|
|
169
|
+
legacyCandidates.push({
|
|
170
|
+
path: path.join(root, LEGACY_PROJECT_CACHE_RELATIVE_PATH),
|
|
171
|
+
cleanupBoundary: path.join(root, ".codegraph-cache"),
|
|
172
|
+
});
|
|
126
173
|
}
|
|
174
|
+
migrateLegacyProjectCache(candidate, legacyCandidates, opts?.logLevel);
|
|
127
175
|
return { path: candidate, anchor, layer: effectiveLayer };
|
|
128
176
|
}
|
|
129
177
|
export function cacheRoot(projectRoot, opts) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"location.js","sourceRoot":"","sources":["../../../src/indexer/build-cache/location.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"location.js","sourceRoot":"","sources":["../../../src/indexer/build-cache/location.ts"],"names":[],"mappings":"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"}
|
package/dist/util/git.d.ts
CHANGED
|
@@ -5,6 +5,10 @@ import { type LogLevel } from "../logging.js";
|
|
|
5
5
|
* hung credential helper cannot pin an MCP request indefinitely.
|
|
6
6
|
*/
|
|
7
7
|
export declare const DEFAULT_GIT_TIMEOUT_MS = 30000;
|
|
8
|
+
type GitExcludeFile = {
|
|
9
|
+
file: string;
|
|
10
|
+
baseDir: string;
|
|
11
|
+
};
|
|
8
12
|
/** Decodes Git's optional C-style quoted pathname representation without trimming legal path bytes. */
|
|
9
13
|
export declare function decodeGitPath(rawPath: string): string;
|
|
10
14
|
/** Test-only override of the Git executable path. Pass null to restore. */
|
|
@@ -19,8 +23,10 @@ export type RunGitOptions = {
|
|
|
19
23
|
pid?: number;
|
|
20
24
|
}) => void) | undefined;
|
|
21
25
|
};
|
|
22
|
-
/** Test-only: drop memoized
|
|
26
|
+
/** Test-only: drop memoized Git repository checks. */
|
|
23
27
|
export declare function clearGitRepositoryCheckCacheForTests(): void;
|
|
28
|
+
/** Test-only: drop memoized Git discovery facts. */
|
|
29
|
+
export declare function clearGitDiscoveryCacheForTests(): void;
|
|
24
30
|
/**
|
|
25
31
|
* Central bounded Git execution: timeout + optional AbortSignal, always kills the child.
|
|
26
32
|
* Preserves stderr/stdout in rejection messages for diagnosis.
|
|
@@ -37,6 +43,11 @@ export declare function getGitHead(projectRoot: string): Promise<string | null>;
|
|
|
37
43
|
export declare function isGitRepo(projectRoot: string): Promise<boolean>;
|
|
38
44
|
export declare function isGitPathTracked(projectRoot: string, file: string): Promise<boolean>;
|
|
39
45
|
export declare function isGitPathIgnored(projectRoot: string, file: string): Promise<boolean>;
|
|
46
|
+
/**
|
|
47
|
+
* Whether Git ignores the requested project root. This value is static for a root during
|
|
48
|
+
* process lifetime and lets repeated discovery avoid spawning `git check-ignore`.
|
|
49
|
+
*/
|
|
50
|
+
export declare function isGitProjectRootIgnored(projectRoot: string): Promise<boolean>;
|
|
40
51
|
export declare function getGitBlobHashes(projectRoot: string, files: string[], opts?: {
|
|
41
52
|
gitAvailable?: boolean;
|
|
42
53
|
logLevel?: LogLevel;
|
|
@@ -52,6 +63,59 @@ export declare function listChangedFiles(projectRoot: string, opts: {
|
|
|
52
63
|
base?: string | undefined;
|
|
53
64
|
head?: string | undefined;
|
|
54
65
|
}): Promise<string[]>;
|
|
66
|
+
/**
|
|
67
|
+
* List files Git tracks under `projectRoot`, as absolute normalized paths.
|
|
68
|
+
*
|
|
69
|
+
* Paired with `listUntrackedFiles` this enumerates exactly the working-tree files
|
|
70
|
+
* Git considers part of the project, which is the indexable candidate set: Git
|
|
71
|
+
* applies ignore rules while walking, so ignored trees are never descended into.
|
|
72
|
+
* A recursive directory scan instead costs O(files on disk), which on trees full
|
|
73
|
+
* of generated artifacts is orders of magnitude larger than the project itself.
|
|
74
|
+
* `recurseSubmodules` also lists files tracked inside initialized submodules, whose
|
|
75
|
+
* contents are otherwise invisible here: a submodule is a separate repository, so the
|
|
76
|
+
* superproject records only a gitlink and reports nothing under it. Paths stay relative
|
|
77
|
+
* to `projectRoot`, so they resolve the same way as the non-recursive listing.
|
|
78
|
+
*
|
|
79
|
+
* Deliberately no pathspec arguments: one argv entry per file hits Windows'
|
|
80
|
+
* ~32,767-character command-line limit past roughly 1,100 files. Full-repo NUL
|
|
81
|
+
* listings can also exceed Node's default 1 MiB stdout buffer on large trees, so
|
|
82
|
+
* this raises `maxBuffer` for the same reason `getGitBlobHashes` does.
|
|
83
|
+
*/
|
|
84
|
+
export declare function listTrackedFiles(projectRoot: string, opts?: {
|
|
85
|
+
gitAvailable?: boolean;
|
|
86
|
+
logLevel?: LogLevel;
|
|
87
|
+
recurseSubmodules?: boolean;
|
|
88
|
+
}): Promise<string[]>;
|
|
89
|
+
/**
|
|
90
|
+
* Directories of initialized submodules under `projectRoot`, as absolute paths.
|
|
91
|
+
*
|
|
92
|
+
* Read from the index rather than `.gitmodules` so the result reflects what Git
|
|
93
|
+
* actually tracks: a gitlink entry carries mode 160000. Callers enumerating untracked
|
|
94
|
+
* files need this because `--recurse-submodules` cannot combine with `--others`, so
|
|
95
|
+
* untracked files inside a submodule require a separate listing rooted there.
|
|
96
|
+
*
|
|
97
|
+
* `recurse` descends into each submodule to find gitlinks it records in turn. A
|
|
98
|
+
* superproject's index lists only its own direct submodules, so without this a new
|
|
99
|
+
* file inside a submodule of a submodule is invisible to untracked enumeration even
|
|
100
|
+
* though the tracked listing recurses all the way down.
|
|
101
|
+
*/
|
|
102
|
+
export declare function listGitSubmoduleDirectories(projectRoot: string, opts?: {
|
|
103
|
+
gitAvailable?: boolean;
|
|
104
|
+
recurse?: boolean;
|
|
105
|
+
}): Promise<string[]>;
|
|
106
|
+
/**
|
|
107
|
+
* Git's non-`.gitignore` ignore sources for `projectRoot`, paired with the directory
|
|
108
|
+
* their patterns resolve against.
|
|
109
|
+
*
|
|
110
|
+
* Git consults the per-repository exclude file and the user's `core.excludesFile` in
|
|
111
|
+
* addition to `.gitignore`, and matches both as if declared at the repository root.
|
|
112
|
+
* Callers that filter paths Git never listed need these or they apply a strictly
|
|
113
|
+
* narrower rule set than Git did. Missing or unset sources are omitted rather than
|
|
114
|
+
* treated as an error, since neither is required to exist.
|
|
115
|
+
*/
|
|
116
|
+
export declare function listGitExcludeFiles(projectRoot: string, opts?: {
|
|
117
|
+
gitAvailable?: boolean;
|
|
118
|
+
}): Promise<GitExcludeFile[]>;
|
|
55
119
|
/**
|
|
56
120
|
* List files in the working tree that Git does not track (new, uncommitted files).
|
|
57
121
|
*
|
|
@@ -78,4 +142,5 @@ export declare function getUnifiedDiff(projectRoot: string, opts: {
|
|
|
78
142
|
base?: string | undefined;
|
|
79
143
|
head?: string | undefined;
|
|
80
144
|
}): Promise<string>;
|
|
145
|
+
export {};
|
|
81
146
|
//# sourceMappingURL=git.d.ts.map
|
package/dist/util/git.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/util/git.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/util/git.ts"],"names":[],"mappings":"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"}
|
package/dist/util/git.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { spawn } from "node:child_process";
|
|
2
2
|
import { StringDecoder } from "node:string_decoder";
|
|
3
|
+
import fsp from "node:fs/promises";
|
|
4
|
+
import os from "node:os";
|
|
3
5
|
import path from "node:path";
|
|
4
6
|
import { stringifyUnknown } from "./ast.js";
|
|
5
7
|
import { normalizePath } from "./paths.js";
|
|
@@ -11,6 +13,8 @@ import { logWithLevel } from "../logging.js";
|
|
|
11
13
|
*/
|
|
12
14
|
export const DEFAULT_GIT_TIMEOUT_MS = 30_000;
|
|
13
15
|
const gitRepositoryChecks = new Map();
|
|
16
|
+
const gitDiscoveryRootIgnoredChecks = new Map();
|
|
17
|
+
const gitExcludeFileChecks = new Map();
|
|
14
18
|
const MAX_GIT_HASH_OBJECT_ARGUMENT_BYTES = 24 * 1024;
|
|
15
19
|
let gitExecutableForTests = null;
|
|
16
20
|
/** Git's C-style path quoting single-character escapes for otherwise-unrepresentable control bytes. */
|
|
@@ -65,10 +69,15 @@ export function decodeGitPath(rawPath) {
|
|
|
65
69
|
export function setGitExecutableForTests(executable) {
|
|
66
70
|
gitExecutableForTests = executable;
|
|
67
71
|
}
|
|
68
|
-
/** Test-only: drop memoized
|
|
72
|
+
/** Test-only: drop memoized Git repository checks. */
|
|
69
73
|
export function clearGitRepositoryCheckCacheForTests() {
|
|
70
74
|
gitRepositoryChecks.clear();
|
|
71
75
|
}
|
|
76
|
+
/** Test-only: drop memoized Git discovery facts. */
|
|
77
|
+
export function clearGitDiscoveryCacheForTests() {
|
|
78
|
+
gitDiscoveryRootIgnoredChecks.clear();
|
|
79
|
+
gitExcludeFileChecks.clear();
|
|
80
|
+
}
|
|
72
81
|
function resolveGitTimeoutMs(timeoutMs) {
|
|
73
82
|
if (typeof timeoutMs === "number" && Number.isFinite(timeoutMs) && timeoutMs > 0) {
|
|
74
83
|
return Math.floor(timeoutMs);
|
|
@@ -322,6 +331,19 @@ export async function isGitPathTracked(projectRoot, file) {
|
|
|
322
331
|
export async function isGitPathIgnored(projectRoot, file) {
|
|
323
332
|
return await runGitPathPredicate(projectRoot, ["check-ignore", "--quiet", "--no-index", "--", normalizePath(file)]);
|
|
324
333
|
}
|
|
334
|
+
/**
|
|
335
|
+
* Whether Git ignores the requested project root. This value is static for a root during
|
|
336
|
+
* process lifetime and lets repeated discovery avoid spawning `git check-ignore`.
|
|
337
|
+
*/
|
|
338
|
+
export async function isGitProjectRootIgnored(projectRoot) {
|
|
339
|
+
const resolvedRoot = path.resolve(projectRoot);
|
|
340
|
+
const cached = gitDiscoveryRootIgnoredChecks.get(resolvedRoot);
|
|
341
|
+
if (cached)
|
|
342
|
+
return await cached;
|
|
343
|
+
const check = isGitPathIgnored(resolvedRoot, resolvedRoot);
|
|
344
|
+
gitDiscoveryRootIgnoredChecks.set(resolvedRoot, check);
|
|
345
|
+
return await check;
|
|
346
|
+
}
|
|
325
347
|
async function runGitPathPredicate(projectRoot, args) {
|
|
326
348
|
try {
|
|
327
349
|
await runGit(projectRoot, args);
|
|
@@ -464,6 +486,156 @@ export async function listChangedFiles(projectRoot, opts) {
|
|
|
464
486
|
throw createGitError(projectRoot, args, error);
|
|
465
487
|
}
|
|
466
488
|
}
|
|
489
|
+
/**
|
|
490
|
+
* List files Git tracks under `projectRoot`, as absolute normalized paths.
|
|
491
|
+
*
|
|
492
|
+
* Paired with `listUntrackedFiles` this enumerates exactly the working-tree files
|
|
493
|
+
* Git considers part of the project, which is the indexable candidate set: Git
|
|
494
|
+
* applies ignore rules while walking, so ignored trees are never descended into.
|
|
495
|
+
* A recursive directory scan instead costs O(files on disk), which on trees full
|
|
496
|
+
* of generated artifacts is orders of magnitude larger than the project itself.
|
|
497
|
+
* `recurseSubmodules` also lists files tracked inside initialized submodules, whose
|
|
498
|
+
* contents are otherwise invisible here: a submodule is a separate repository, so the
|
|
499
|
+
* superproject records only a gitlink and reports nothing under it. Paths stay relative
|
|
500
|
+
* to `projectRoot`, so they resolve the same way as the non-recursive listing.
|
|
501
|
+
*
|
|
502
|
+
* Deliberately no pathspec arguments: one argv entry per file hits Windows'
|
|
503
|
+
* ~32,767-character command-line limit past roughly 1,100 files. Full-repo NUL
|
|
504
|
+
* listings can also exceed Node's default 1 MiB stdout buffer on large trees, so
|
|
505
|
+
* this raises `maxBuffer` for the same reason `getGitBlobHashes` does.
|
|
506
|
+
*/
|
|
507
|
+
export async function listTrackedFiles(projectRoot, opts) {
|
|
508
|
+
if (!(opts?.gitAvailable ?? true))
|
|
509
|
+
return [];
|
|
510
|
+
const args = ["ls-files", "-z"];
|
|
511
|
+
if (opts?.recurseSubmodules)
|
|
512
|
+
args.push("--recurse-submodules");
|
|
513
|
+
try {
|
|
514
|
+
const { stdout } = await runGit(projectRoot, args, { maxBuffer: 64 * 1024 * 1024 });
|
|
515
|
+
// `git ls-files -z` NUL-delimits entries; the trailing split segment is always an
|
|
516
|
+
// empty string rather than a filename, so drop empties without trimming (leading
|
|
517
|
+
// and trailing whitespace can be a legitimate part of a real filename).
|
|
518
|
+
const out = [];
|
|
519
|
+
for (const rel of stdout.split("\0").filter(Boolean)) {
|
|
520
|
+
const abs = normalizePath(path.resolve(projectRoot, rel));
|
|
521
|
+
if (abs)
|
|
522
|
+
out.push(abs);
|
|
523
|
+
}
|
|
524
|
+
return Array.from(new Set(out));
|
|
525
|
+
}
|
|
526
|
+
catch (error) {
|
|
527
|
+
throw createGitError(projectRoot, args, error);
|
|
528
|
+
}
|
|
529
|
+
}
|
|
530
|
+
/**
|
|
531
|
+
* Directories of initialized submodules under `projectRoot`, as absolute paths.
|
|
532
|
+
*
|
|
533
|
+
* Read from the index rather than `.gitmodules` so the result reflects what Git
|
|
534
|
+
* actually tracks: a gitlink entry carries mode 160000. Callers enumerating untracked
|
|
535
|
+
* files need this because `--recurse-submodules` cannot combine with `--others`, so
|
|
536
|
+
* untracked files inside a submodule require a separate listing rooted there.
|
|
537
|
+
*
|
|
538
|
+
* `recurse` descends into each submodule to find gitlinks it records in turn. A
|
|
539
|
+
* superproject's index lists only its own direct submodules, so without this a new
|
|
540
|
+
* file inside a submodule of a submodule is invisible to untracked enumeration even
|
|
541
|
+
* though the tracked listing recurses all the way down.
|
|
542
|
+
*/
|
|
543
|
+
export async function listGitSubmoduleDirectories(projectRoot, opts) {
|
|
544
|
+
if (!(opts?.gitAvailable ?? true))
|
|
545
|
+
return [];
|
|
546
|
+
const args = ["ls-files", "--stage", "-z"];
|
|
547
|
+
try {
|
|
548
|
+
const { stdout } = await runGit(projectRoot, args, { maxBuffer: 64 * 1024 * 1024 });
|
|
549
|
+
const direct = [];
|
|
550
|
+
for (const record of stdout.split("\0").filter(Boolean)) {
|
|
551
|
+
// Each record is `<mode> <object> <stage>\t<path>`; 160000 marks a gitlink.
|
|
552
|
+
if (!record.startsWith("160000 "))
|
|
553
|
+
continue;
|
|
554
|
+
const tabIndex = record.indexOf("\t");
|
|
555
|
+
if (tabIndex < 0)
|
|
556
|
+
continue;
|
|
557
|
+
const rel = record.slice(tabIndex + 1);
|
|
558
|
+
if (rel)
|
|
559
|
+
direct.push(normalizePath(path.resolve(projectRoot, rel)));
|
|
560
|
+
}
|
|
561
|
+
if (!opts?.recurse || !direct.length)
|
|
562
|
+
return Array.from(new Set(direct));
|
|
563
|
+
const nested = await Promise.all(direct.map(async (directory) => await listGitSubmoduleDirectories(directory, opts)));
|
|
564
|
+
return Array.from(new Set([...direct, ...nested.flat()]));
|
|
565
|
+
}
|
|
566
|
+
catch (error) {
|
|
567
|
+
throw createGitError(projectRoot, args, error);
|
|
568
|
+
}
|
|
569
|
+
}
|
|
570
|
+
/**
|
|
571
|
+
* Git's non-`.gitignore` ignore sources for `projectRoot`, paired with the directory
|
|
572
|
+
* their patterns resolve against.
|
|
573
|
+
*
|
|
574
|
+
* Git consults the per-repository exclude file and the user's `core.excludesFile` in
|
|
575
|
+
* addition to `.gitignore`, and matches both as if declared at the repository root.
|
|
576
|
+
* Callers that filter paths Git never listed need these or they apply a strictly
|
|
577
|
+
* narrower rule set than Git did. Missing or unset sources are omitted rather than
|
|
578
|
+
* treated as an error, since neither is required to exist.
|
|
579
|
+
*/
|
|
580
|
+
export async function listGitExcludeFiles(projectRoot, opts) {
|
|
581
|
+
if (!(opts?.gitAvailable ?? true))
|
|
582
|
+
return [];
|
|
583
|
+
const resolvedRoot = path.resolve(projectRoot);
|
|
584
|
+
const cached = gitExcludeFileChecks.get(resolvedRoot);
|
|
585
|
+
if (cached)
|
|
586
|
+
return await cached;
|
|
587
|
+
const check = listGitExcludeFilesUncached(resolvedRoot);
|
|
588
|
+
gitExcludeFileChecks.set(resolvedRoot, check);
|
|
589
|
+
return await check;
|
|
590
|
+
}
|
|
591
|
+
async function listGitExcludeFilesUncached(projectRoot) {
|
|
592
|
+
let baseDir;
|
|
593
|
+
try {
|
|
594
|
+
const { stdout } = await runGit(projectRoot, ["rev-parse", "--show-toplevel"]);
|
|
595
|
+
baseDir = normalizePath(stdout.trim());
|
|
596
|
+
}
|
|
597
|
+
catch {
|
|
598
|
+
return [];
|
|
599
|
+
}
|
|
600
|
+
if (!baseDir)
|
|
601
|
+
return [];
|
|
602
|
+
const candidates = [];
|
|
603
|
+
try {
|
|
604
|
+
// `--git-path` resolves `info/exclude` correctly when `.git` is a file, as it is in
|
|
605
|
+
// linked worktrees and submodules, where guessing `<root>/.git/info` would miss it.
|
|
606
|
+
const { stdout } = await runGit(projectRoot, ["rev-parse", "--git-path", "info/exclude"]);
|
|
607
|
+
const resolved = stdout.trim();
|
|
608
|
+
if (resolved)
|
|
609
|
+
candidates.push(normalizePath(path.resolve(projectRoot, resolved)));
|
|
610
|
+
}
|
|
611
|
+
catch {
|
|
612
|
+
// No exclude file for this repository layout.
|
|
613
|
+
}
|
|
614
|
+
try {
|
|
615
|
+
const { stdout } = await runGit(projectRoot, ["config", "--get", "core.excludesFile"]);
|
|
616
|
+
const configured = stdout.trim();
|
|
617
|
+
if (configured) {
|
|
618
|
+
const expanded = configured.startsWith("~")
|
|
619
|
+
? path.join(os.homedir(), configured.slice(1))
|
|
620
|
+
: path.resolve(projectRoot, configured);
|
|
621
|
+
candidates.push(normalizePath(expanded));
|
|
622
|
+
}
|
|
623
|
+
}
|
|
624
|
+
catch {
|
|
625
|
+
// `git config --get` exits non-zero when the key is unset.
|
|
626
|
+
}
|
|
627
|
+
const sources = [];
|
|
628
|
+
for (const file of Array.from(new Set(candidates))) {
|
|
629
|
+
try {
|
|
630
|
+
if ((await fsp.stat(file)).isFile())
|
|
631
|
+
sources.push({ file, baseDir });
|
|
632
|
+
}
|
|
633
|
+
catch {
|
|
634
|
+
// Configured but absent; Git ignores it too.
|
|
635
|
+
}
|
|
636
|
+
}
|
|
637
|
+
return sources;
|
|
638
|
+
}
|
|
467
639
|
/**
|
|
468
640
|
* List files in the working tree that Git does not track (new, uncommitted files).
|
|
469
641
|
*
|
package/dist/util/git.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/util/git.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/util/git.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@ export type { ProjectFileDefinition, ProjectFileInfo, ProjectFileKind, ProjectFi
|
|
|
5
5
|
export declare const DEFAULT_PROJECT_FILE_IGNORES: string[];
|
|
6
6
|
export declare const DEFAULT_PROJECT_MANIFESTS: string[];
|
|
7
7
|
export declare const DEFAULT_PROJECT_PATTERNS: string[];
|
|
8
|
+
export type SymlinkProbeMode = "known" | "git-candidates" | "filesystem";
|
|
8
9
|
export type ProjectFileDiscoveryOptions = {
|
|
9
10
|
includeGlobs?: string[];
|
|
10
11
|
ignoreGlobs?: string[];
|
|
@@ -14,13 +15,13 @@ export type ProjectFileDiscoveryOptions = {
|
|
|
14
15
|
logLevel?: LogLevel;
|
|
15
16
|
/**
|
|
16
17
|
* Previously discovered symlinked directories under the project root. When provided
|
|
17
|
-
* (including an empty array), discovery
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
18
|
+
* (including an empty array), discovery re-verifies each entry directly and skips the
|
|
19
|
+
* probe on warm runs. Omit it to probe once and report the result through
|
|
20
|
+
* `onSymlinkDirectoriesDiscovered`. The callback mode distinguishes persisted hints,
|
|
21
|
+
* Git candidate screening, and the non-Git filesystem fallback.
|
|
21
22
|
*/
|
|
22
23
|
knownSymlinkDirectories?: readonly string[];
|
|
23
|
-
onSymlinkDirectoriesDiscovered?: (directories: readonly string[]) => void;
|
|
24
|
+
onSymlinkDirectoriesDiscovered?: (directories: readonly string[], mode: SymlinkProbeMode) => void;
|
|
24
25
|
};
|
|
25
26
|
export declare function translateGlobRootIgnoreGlobsForScanRoot(scanRoot: string, globRoot: string, ignoreGlobs: readonly string[]): string[];
|
|
26
27
|
export declare function listProjectFiles(projectRoot: string, patterns?: string[], options?: ProjectFileDiscoveryOptions): Promise<string[]>;
|
|
@@ -38,6 +39,6 @@ export declare function filterRealPathsWithinRoot(paths: string[], realRoot: str
|
|
|
38
39
|
export declare function discoverProjectFiles(projectRoot: string, options?: {
|
|
39
40
|
logLevel?: LogLevel;
|
|
40
41
|
knownSymlinkDirectories?: readonly string[];
|
|
41
|
-
onSymlinkDirectoriesDiscovered?: (directories: readonly string[]) => void;
|
|
42
|
+
onSymlinkDirectoriesDiscovered?: (directories: readonly string[], mode: SymlinkProbeMode) => void;
|
|
42
43
|
}): Promise<ProjectFileInfo[]>;
|
|
43
44
|
//# sourceMappingURL=projectFiles.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projectFiles.d.ts","sourceRoot":"","sources":["../../src/util/projectFiles.ts"],"names":[],"mappings":"AAKA,OAAO,EAAgB,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AAK5D,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAChF,OAAO,EAGL,KAAK,eAAe,EACrB,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"projectFiles.d.ts","sourceRoot":"","sources":["../../src/util/projectFiles.ts"],"names":[],"mappings":"AAKA,OAAO,EAAgB,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AAK5D,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAChF,OAAO,EAGL,KAAK,eAAe,EACrB,MAAM,+BAA+B,CAAC;AAYvC,YAAY,EACV,qBAAqB,EACrB,eAAe,EACf,eAAe,EACf,eAAe,EACf,eAAe,GAChB,MAAM,+BAA+B,CAAC;AAEvC,eAAO,MAAM,4BAA4B,UAkBxC,CAAC;AAEF,eAAO,MAAM,yBAAyB,UA8DrC,CAAC;AAEF,eAAO,MAAM,wBAAwB,UAGpC,CAAC;AAIF,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,gBAAgB,GAAG,YAAY,CAAC;AAEzE,MAAM,MAAM,2BAA2B,GAAG;IACxC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB;;;;;;OAMG;IACH,uBAAuB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C,8BAA8B,CAAC,EAAE,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,EAAE,IAAI,EAAE,gBAAgB,KAAK,IAAI,CAAC;CACnG,CAAC;AA0DF,wBAAgB,uCAAuC,CACrD,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,SAAS,MAAM,EAAE,GAC7B,MAAM,EAAE,CAkBV;AA4SD,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,MAAM,EACnB,QAAQ,WAA2B,EACnC,OAAO,CAAC,EAAE,2BAA2B,GACpC,OAAO,CAAC,MAAM,EAAE,CAAC,CA+InB;AAED;;;;;;;;GAQG;AACH,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,SAAS,MAAM,EAAE,EAC3B,OAAO,CAAC,EAAE,2BAA2B,GACpC,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CA4BnC;AA8ID,wBAAsB,yBAAyB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAGpG;AAmCD,wBAAsB,oBAAoB,CACxC,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE;IACR,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,uBAAuB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C,8BAA8B,CAAC,EAAE,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,EAAE,IAAI,EAAE,gBAAgB,KAAK,IAAI,CAAC;CACnG,GACA,OAAO,CAAC,eAAe,EAAE,CAAC,CAkF5B"}
|
|
@@ -5,19 +5,19 @@ import fg from "fast-glob";
|
|
|
5
5
|
import picomatch from "picomatch";
|
|
6
6
|
import { logWithLevel } from "../logging.js";
|
|
7
7
|
import { stringifyUnknown } from "./ast.js";
|
|
8
|
-
import { isFilePathWithinRoot, normalizePath } from "./paths.js";
|
|
8
|
+
import { fileIdentityKey, isFilePathWithinRoot, normalizePath } from "./paths.js";
|
|
9
9
|
import { isRelativePathInside, matchesDiscoveryGlob } from "./discoveryPath.js";
|
|
10
10
|
export { isRelativePathInside, matchesDiscoveryGlob } from "./discoveryPath.js";
|
|
11
11
|
import { PROJECT_FILE_DEFINITIONS, } from "./projectFiles/definitions.js";
|
|
12
12
|
import { trimToNull } from "./projectFiles/parsers.js";
|
|
13
13
|
import { mapLimitSemaphore } from "./concurrency.js";
|
|
14
|
+
import { isGitProjectRootIgnored, isGitRepo, listGitExcludeFiles, listGitSubmoduleDirectories, listTrackedFiles, listUntrackedFiles, } from "./git.js";
|
|
14
15
|
export const DEFAULT_PROJECT_FILE_IGNORES = [
|
|
15
16
|
"**/node_modules/**",
|
|
16
17
|
"**/.git/**",
|
|
17
|
-
// Never treat Codegraph's own on-disk state as project input. `.codegraph/`
|
|
18
|
-
// lifecycle
|
|
19
|
-
//
|
|
20
|
-
// patterns and create perpetual "new untracked file" / reindex churn.
|
|
18
|
+
// Never treat Codegraph's own on-disk state as project input. `.codegraph/` contains
|
|
19
|
+
// lifecycle metadata and the indexer disk cache. Keep the legacy cache ignore so
|
|
20
|
+
// pre-migration checkouts stay excluded from discovery.
|
|
21
21
|
"**/.codegraph/**",
|
|
22
22
|
"**/.codegraph-cache/**",
|
|
23
23
|
"**/dist/**",
|
|
@@ -188,59 +188,125 @@ function parseGitignoreRule(baseDir, rawLine) {
|
|
|
188
188
|
matches,
|
|
189
189
|
};
|
|
190
190
|
}
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
191
|
+
const EMPTY_GITIGNORE_INDEX = { hasRules: false, byBaseDir: new Map() };
|
|
192
|
+
/**
|
|
193
|
+
* Parse `.gitignore` rules from an already-discovered set of `.gitignore` files.
|
|
194
|
+
*
|
|
195
|
+
* Ordered by path depth, not lexically: a directory segment collating before `.` (for
|
|
196
|
+
* example `-vendor` or `!keep`) would otherwise place a child's rule file ahead of its
|
|
197
|
+
* parent's, so a parent could no longer suppress a child whose rules it ignores, and a
|
|
198
|
+
* child negation could re-include files. Depth-first ordering also keeps the "last match
|
|
199
|
+
* wins" order deeper files depend on, and drops the locale sensitivity of `localeCompare`.
|
|
200
|
+
*/
|
|
201
|
+
async function buildGitignoreIndex(sources) {
|
|
202
|
+
const sorted = [...sources]
|
|
203
|
+
.map(({ file, baseDir }) => ({ file: normalizePath(file), baseDir: normalizePath(baseDir) }))
|
|
204
|
+
.sort((left, right) => {
|
|
205
|
+
const leftFile = left.file;
|
|
206
|
+
const rightFile = right.file;
|
|
207
|
+
const depthDelta = leftFile.split("/").length - rightFile.split("/").length;
|
|
208
|
+
if (depthDelta !== 0)
|
|
209
|
+
return depthDelta;
|
|
210
|
+
if (leftFile < rightFile)
|
|
211
|
+
return -1;
|
|
212
|
+
return leftFile > rightFile ? 1 : 0;
|
|
198
213
|
});
|
|
199
|
-
|
|
200
|
-
const
|
|
201
|
-
|
|
202
|
-
if (isIgnoredByGitignore(gitignoreFile, rules)) {
|
|
214
|
+
const gitignoreIndex = { hasRules: false, byBaseDir: new Map() };
|
|
215
|
+
for (const { file, baseDir } of sorted) {
|
|
216
|
+
if (isIgnoredByGitignore(file, gitignoreIndex)) {
|
|
203
217
|
continue;
|
|
204
218
|
}
|
|
219
|
+
let raw;
|
|
205
220
|
try {
|
|
206
|
-
|
|
207
|
-
const raw = await fsp.readFile(gitignoreFile, "utf8");
|
|
208
|
-
rules.push(...raw
|
|
209
|
-
.split(/\r?\n/)
|
|
210
|
-
.map((line) => parseGitignoreRule(baseDir, line))
|
|
211
|
-
.filter((rule) => !!rule));
|
|
221
|
+
raw = await fsp.readFile(file, "utf8");
|
|
212
222
|
}
|
|
213
223
|
catch {
|
|
214
224
|
continue;
|
|
215
225
|
}
|
|
226
|
+
const baseKey = fileIdentityKey(baseDir);
|
|
227
|
+
for (const line of raw.split(/\r?\n/)) {
|
|
228
|
+
const rule = parseGitignoreRule(baseDir, line);
|
|
229
|
+
if (!rule)
|
|
230
|
+
continue;
|
|
231
|
+
const existing = gitignoreIndex.byBaseDir.get(baseKey);
|
|
232
|
+
if (existing)
|
|
233
|
+
existing.rules.push(rule);
|
|
234
|
+
else
|
|
235
|
+
gitignoreIndex.byBaseDir.set(baseKey, { baseDir, rules: [rule] });
|
|
236
|
+
gitignoreIndex.hasRules = true;
|
|
237
|
+
}
|
|
216
238
|
}
|
|
217
|
-
return
|
|
239
|
+
return gitignoreIndex;
|
|
240
|
+
}
|
|
241
|
+
async function findGitignoreFiles(projectRoot) {
|
|
242
|
+
return await fg(["**/.gitignore"], {
|
|
243
|
+
cwd: projectRoot,
|
|
244
|
+
absolute: true,
|
|
245
|
+
dot: true,
|
|
246
|
+
followSymbolicLinks: false,
|
|
247
|
+
ignore: DEFAULT_PROJECT_FILE_IGNORES,
|
|
248
|
+
});
|
|
218
249
|
}
|
|
219
|
-
async function
|
|
250
|
+
async function loadGitignoreIndexForRootAliases(projectRoot) {
|
|
220
251
|
const roots = [projectRoot];
|
|
221
252
|
const realRoot = await fsp.realpath(projectRoot);
|
|
222
253
|
if (normalizePath(realRoot) !== normalizePath(projectRoot)) {
|
|
223
254
|
roots.push(realRoot);
|
|
224
255
|
}
|
|
225
|
-
const
|
|
256
|
+
const sources = [];
|
|
226
257
|
for (const root of roots) {
|
|
227
|
-
|
|
258
|
+
for (const file of await findGitignoreFiles(root)) {
|
|
259
|
+
sources.push({ file, baseDir: path.dirname(file) });
|
|
260
|
+
}
|
|
228
261
|
}
|
|
229
|
-
return
|
|
262
|
+
return await buildGitignoreIndex(sources);
|
|
230
263
|
}
|
|
231
|
-
|
|
264
|
+
/**
|
|
265
|
+
* Whether `.gitignore` rules ignore `absolutePath`.
|
|
266
|
+
*
|
|
267
|
+
* Only a `.gitignore` on the path's own ancestor chain can match it, so this walks that
|
|
268
|
+
* chain rather than testing every rule in the project. The skipped rules are exactly the
|
|
269
|
+
* ones whose relative-path check would have rejected them, and applying the chain
|
|
270
|
+
* shallowest-first reproduces the flat list's ordering, so the answer is unchanged.
|
|
271
|
+
* Testing every rule cost O(files x rules): on an Unreal project that meant 55,983
|
|
272
|
+
* candidates against 2,266 rules from 173 `.gitignore` files, or 253.7M evaluations and
|
|
273
|
+
* roughly 21.7s of a 26.1s discovery.
|
|
274
|
+
*
|
|
275
|
+
* The relative path is computed once per declaring directory rather than once per rule.
|
|
276
|
+
* Every rule in a group shares that directory, so the per-rule form repeated identical
|
|
277
|
+
* `path.relative` and normalization work; on the same project that repetition was the
|
|
278
|
+
* dominant remaining cost, at 2.6s of a 3.8s discovery.
|
|
279
|
+
*/
|
|
280
|
+
function isIgnoredByGitignore(absolutePath, gitignoreIndex) {
|
|
281
|
+
if (!gitignoreIndex.hasRules)
|
|
282
|
+
return false;
|
|
283
|
+
const chain = [];
|
|
284
|
+
let current = normalizePath(path.dirname(absolutePath));
|
|
285
|
+
for (;;) {
|
|
286
|
+
const group = gitignoreIndex.byBaseDir.get(fileIdentityKey(current));
|
|
287
|
+
if (group)
|
|
288
|
+
chain.push(group);
|
|
289
|
+
const parent = normalizePath(path.dirname(current));
|
|
290
|
+
if (parent === current)
|
|
291
|
+
break;
|
|
292
|
+
current = parent;
|
|
293
|
+
}
|
|
232
294
|
let ignored = false;
|
|
233
|
-
for (
|
|
234
|
-
const
|
|
295
|
+
for (let depth = chain.length - 1; depth >= 0; depth -= 1) {
|
|
296
|
+
const group = chain[depth];
|
|
297
|
+
const relativePath = path.relative(group.baseDir, absolutePath);
|
|
235
298
|
if (!isRelativePathInside(relativePath)) {
|
|
236
299
|
continue;
|
|
237
300
|
}
|
|
238
301
|
const normalizedRelativePath = normalizePath(relativePath);
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
302
|
+
const hasSeparator = normalizedRelativePath.includes("/");
|
|
303
|
+
for (const rule of group.rules) {
|
|
304
|
+
if (rule.dirOnly && !hasSeparator) {
|
|
305
|
+
continue;
|
|
306
|
+
}
|
|
307
|
+
if (rule.matches(normalizedRelativePath)) {
|
|
308
|
+
ignored = !rule.negated;
|
|
309
|
+
}
|
|
244
310
|
}
|
|
245
311
|
}
|
|
246
312
|
return ignored;
|
|
@@ -259,6 +325,96 @@ async function ensureDirectoryReadable(directoryPath, label) {
|
|
|
259
325
|
}
|
|
260
326
|
return resolvedPath;
|
|
261
327
|
}
|
|
328
|
+
/**
|
|
329
|
+
* Every directory on the ancestor chain of `files`, up to and including `root`.
|
|
330
|
+
*
|
|
331
|
+
* The ignore matcher only consults rules declared at a path's own ancestors, so this is
|
|
332
|
+
* exactly the set of directories whose `.gitignore` can affect a candidate.
|
|
333
|
+
*/
|
|
334
|
+
function collectCandidateAncestorDirectories(root, files) {
|
|
335
|
+
const rootKey = fileIdentityKey(root);
|
|
336
|
+
const seen = new Set([rootKey]);
|
|
337
|
+
const directories = [normalizePath(root)];
|
|
338
|
+
for (const file of files) {
|
|
339
|
+
let current = normalizePath(path.dirname(file));
|
|
340
|
+
while (fileIdentityKey(current) !== rootKey) {
|
|
341
|
+
if (seen.has(fileIdentityKey(current)))
|
|
342
|
+
break;
|
|
343
|
+
seen.add(fileIdentityKey(current));
|
|
344
|
+
directories.push(current);
|
|
345
|
+
const parent = normalizePath(path.dirname(current));
|
|
346
|
+
if (parent === current)
|
|
347
|
+
break;
|
|
348
|
+
current = parent;
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
return directories;
|
|
352
|
+
}
|
|
353
|
+
/**
|
|
354
|
+
* Locate the `.gitignore` files that can affect `files`, plus Git's other ignore sources.
|
|
355
|
+
*
|
|
356
|
+
* Filtering the candidate listing for `.gitignore` would miss a `.gitignore` that is
|
|
357
|
+
* itself ignored; Git still reads those, and tracked files matching their rules must
|
|
358
|
+
* still be excluded. Probing the candidates' ancestor directories finds them without
|
|
359
|
+
* reintroducing a full-tree walk. `.git/info/exclude` and `core.excludesFile` are
|
|
360
|
+
* included so the index is authoritative for every source Git consults: paths that do
|
|
361
|
+
* not come from Git, such as entries behind a directory symlink, are then filtered by
|
|
362
|
+
* the same rules Git applied to the candidate listing.
|
|
363
|
+
*/
|
|
364
|
+
async function findGitIgnoreSources(root, files) {
|
|
365
|
+
const directories = collectCandidateAncestorDirectories(root, files);
|
|
366
|
+
const present = await mapLimitSemaphore(directories, REALPATH_FILTER_CONCURRENCY, async (directory) => {
|
|
367
|
+
const candidate = normalizePath(path.join(directory, ".gitignore"));
|
|
368
|
+
try {
|
|
369
|
+
return (await fsp.stat(candidate)).isFile() ? { file: candidate, baseDir: directory } : null;
|
|
370
|
+
}
|
|
371
|
+
catch {
|
|
372
|
+
return null;
|
|
373
|
+
}
|
|
374
|
+
});
|
|
375
|
+
const sources = present.filter((entry) => entry !== null);
|
|
376
|
+
sources.push(...(await listGitExcludeFiles(root)));
|
|
377
|
+
return sources;
|
|
378
|
+
}
|
|
379
|
+
/**
|
|
380
|
+
* Enumerate candidate project files through Git, or `null` when Git cannot answer.
|
|
381
|
+
*
|
|
382
|
+
* Tracked plus untracked-but-not-ignored files are exactly the working-tree files Git
|
|
383
|
+
* treats as part of the project. Any Git failure returns `null` and discovery falls back
|
|
384
|
+
* to scanning the filesystem.
|
|
385
|
+
*
|
|
386
|
+
* Submodules need explicit handling or their contents vanish from the index: the
|
|
387
|
+
* superproject records only a gitlink. Tracked files come from `--recurse-submodules`,
|
|
388
|
+
* which cannot combine with `--others`, so untracked files are listed per submodule
|
|
389
|
+
* directory, including submodules nested inside submodules.
|
|
390
|
+
*
|
|
391
|
+
* A root that Git itself ignores falls back to scanning. Enumerating it through Git
|
|
392
|
+
* would return only tracked files and silently drop the rest, which would make a
|
|
393
|
+
* directory the caller named explicitly look nearly empty.
|
|
394
|
+
*/
|
|
395
|
+
async function listGitCandidateFiles(root, logLevel) {
|
|
396
|
+
try {
|
|
397
|
+
if (!(await isGitRepo(root)))
|
|
398
|
+
return null;
|
|
399
|
+
if (await isGitProjectRootIgnored(root))
|
|
400
|
+
return null;
|
|
401
|
+
const [tracked, untracked, submoduleDirectories] = await Promise.all([
|
|
402
|
+
listTrackedFiles(root, { recurseSubmodules: true, ...(logLevel === undefined ? {} : { logLevel }) }),
|
|
403
|
+
listUntrackedFiles(root, { respectGitignore: true }),
|
|
404
|
+
listGitSubmoduleDirectories(root, { recurse: true }),
|
|
405
|
+
]);
|
|
406
|
+
const submoduleUntracked = await Promise.all(submoduleDirectories.map(async (directory) => await listUntrackedFiles(directory, { respectGitignore: true })));
|
|
407
|
+
// Sorted so discovery order is reproducible rather than an artifact of how three
|
|
408
|
+
// separate Git listings happened to be concatenated. Callers that surface results
|
|
409
|
+
// in discovery order then behave the same way on every machine.
|
|
410
|
+
const files = Array.from(new Set([...tracked, ...untracked, ...submoduleUntracked.flat()])).sort();
|
|
411
|
+
return { files, gitignoreFiles: await findGitIgnoreSources(root, files) };
|
|
412
|
+
}
|
|
413
|
+
catch (error) {
|
|
414
|
+
logWithLevel(logLevel, "debug", `Git discovery unavailable for ${root}: ${stringifyUnknown(error)}`);
|
|
415
|
+
return null;
|
|
416
|
+
}
|
|
417
|
+
}
|
|
262
418
|
export async function listProjectFiles(projectRoot, patterns = DEFAULT_PROJECT_PATTERNS, options) {
|
|
263
419
|
const root = await ensureDirectoryReadable(projectRoot, "Project root");
|
|
264
420
|
const globRoot = options?.globRoot ? await ensureDirectoryReadable(options.globRoot, "Glob root") : root;
|
|
@@ -284,20 +440,47 @@ export async function listProjectFiles(projectRoot, patterns = DEFAULT_PROJECT_P
|
|
|
284
440
|
try {
|
|
285
441
|
const useGitignore = options?.useGitignore ?? true;
|
|
286
442
|
const realRoot = await fsp.realpath(root);
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
443
|
+
// Enumerate through Git when Git's ignore rules are the ones this call wants anyway.
|
|
444
|
+
// Git applies them while walking, so ignored trees are never descended into and never
|
|
445
|
+
// reach the realpath and gitignore checks below. Scanning instead costs O(files on
|
|
446
|
+
// disk): on an Unreal project holding 100,168 files (818 tracked) the scan produced
|
|
447
|
+
// 55,983 pattern-matching candidates, nearly all generated sources under a gitignored
|
|
448
|
+
// `Intermediate/` tree, and discovery took 26.1s. Git lists 4,010 in about 111ms.
|
|
449
|
+
// An aliased root or a gitignore-root override means Git's notion of the project is
|
|
450
|
+
// not this call's, so those fall back to the scan.
|
|
451
|
+
const gitCandidates = useGitignore && options?.gitignoreRoot === undefined && normalizePath(realRoot) === normalizePath(root)
|
|
452
|
+
? await listGitCandidateFiles(root, options?.logLevel)
|
|
453
|
+
: null;
|
|
454
|
+
let gitignoreIndex = EMPTY_GITIGNORE_INDEX;
|
|
455
|
+
if (useGitignore && gitCandidates) {
|
|
456
|
+
gitignoreIndex = await buildGitignoreIndex(gitCandidates.gitignoreFiles);
|
|
457
|
+
}
|
|
458
|
+
else if (useGitignore) {
|
|
459
|
+
const gitignoreRoot = options?.gitignoreRoot
|
|
460
|
+
? await ensureDirectoryReadable(options.gitignoreRoot, "Gitignore root")
|
|
461
|
+
: root;
|
|
462
|
+
gitignoreIndex = await loadGitignoreIndexForRootAliases(gitignoreRoot);
|
|
463
|
+
}
|
|
464
|
+
// Git returns a candidate set, not a filtered result: the pattern, include,
|
|
465
|
+
// default-ignore, and gitignore checks below still decide what is indexable.
|
|
466
|
+
const files = gitCandidates
|
|
467
|
+
? gitCandidates.files
|
|
468
|
+
: await fg(patterns, {
|
|
469
|
+
cwd: root,
|
|
470
|
+
absolute: true,
|
|
471
|
+
dot: true,
|
|
472
|
+
followSymbolicLinks: false,
|
|
473
|
+
ignore: fastGlobIgnoreGlobs,
|
|
474
|
+
});
|
|
297
475
|
// Explicit includeGlobs may re-open default-ignored trees (for example vendored
|
|
298
476
|
// dependency dirs). Scan those include patterns without default ignores, then keep
|
|
299
477
|
// only paths that still match the project patterns and include globs below.
|
|
300
|
-
|
|
478
|
+
//
|
|
479
|
+
// Only needed on the scan path. Git never applied this project's default ignores, so
|
|
480
|
+
// its listing already contains those files and the include globs below re-open them.
|
|
481
|
+
// Running the scan anyway would also re-add paths Git excluded through its own
|
|
482
|
+
// exclude files, contradicting the rule that Git's ignores still win here.
|
|
483
|
+
const includedOverrideFiles = includeGlobs.length && !gitCandidates
|
|
301
484
|
? await fg(translateGlobRootIgnoreGlobsForScanRoot(root, globRoot, includeGlobs), {
|
|
302
485
|
cwd: root,
|
|
303
486
|
absolute: true,
|
|
@@ -308,6 +491,7 @@ export async function listProjectFiles(projectRoot, patterns = DEFAULT_PROJECT_P
|
|
|
308
491
|
: [];
|
|
309
492
|
const symlinkOptions = {
|
|
310
493
|
globRoot,
|
|
494
|
+
...(gitCandidates ? { candidatePaths: gitCandidates.files } : {}),
|
|
311
495
|
...(options?.knownSymlinkDirectories !== undefined
|
|
312
496
|
? { knownSymlinkDirectories: options.knownSymlinkDirectories }
|
|
313
497
|
: {}),
|
|
@@ -352,7 +536,11 @@ export async function listProjectFiles(projectRoot, patterns = DEFAULT_PROJECT_P
|
|
|
352
536
|
if (ignoredByDefault && !(includeMatchers.length > 0 && matchesInclude)) {
|
|
353
537
|
return false;
|
|
354
538
|
}
|
|
355
|
-
|
|
539
|
+
if (isIgnoredByGitignore(filePath, gitignoreIndex))
|
|
540
|
+
return false;
|
|
541
|
+
// The real path only differs when the entry was reached through a symlink, so
|
|
542
|
+
// testing it again for every ordinary file doubled the matcher work for nothing.
|
|
543
|
+
return normalizePath(realPath) === filePath || !isIgnoredByGitignore(realPath, gitignoreIndex);
|
|
356
544
|
})
|
|
357
545
|
.map(({ filePath }) => filePath);
|
|
358
546
|
}
|
|
@@ -399,17 +587,21 @@ export function createDiscoveredFileMatcher(root, globRoot, patterns, options) {
|
|
|
399
587
|
return !userIgnoreMatchers.some((matcher) => matchesDiscoveryGlob(absolutePath, globRoot, matcher));
|
|
400
588
|
};
|
|
401
589
|
}
|
|
590
|
+
/**
|
|
591
|
+
* Whether `linkPath` is a directory symlink that is safe to crawl for project files.
|
|
592
|
+
*
|
|
593
|
+
* `lstat` runs before `realpath` and `stat` so a candidate that is not a symlink costs
|
|
594
|
+
* one syscall rather than three. That matters for callers screening a broad candidate
|
|
595
|
+
* list, where nearly every entry is an ordinary file, and costs nothing for callers
|
|
596
|
+
* passing entries a walk already identified as links.
|
|
597
|
+
*/
|
|
402
598
|
async function isSafeSymlinkDirectory(root, linkPath, realRoot) {
|
|
403
599
|
try {
|
|
404
600
|
if (!isRelativePathInside(path.relative(root, linkPath)))
|
|
405
601
|
return false;
|
|
406
|
-
|
|
407
|
-
fsp.lstat(linkPath),
|
|
408
|
-
fsp.realpath(linkPath),
|
|
409
|
-
fsp.stat(linkPath),
|
|
410
|
-
]);
|
|
411
|
-
if (!linkStats.isSymbolicLink())
|
|
602
|
+
if (!(await fsp.lstat(linkPath)).isSymbolicLink())
|
|
412
603
|
return false;
|
|
604
|
+
const [realPath, targetStats] = await Promise.all([fsp.realpath(linkPath), fsp.stat(linkPath)]);
|
|
413
605
|
if (!targetStats.isDirectory())
|
|
414
606
|
return false;
|
|
415
607
|
if (!isFilePathWithinRoot(realRoot, realPath))
|
|
@@ -424,18 +616,35 @@ async function isSafeSymlinkDirectory(root, linkPath, realRoot) {
|
|
|
424
616
|
* Resolve the symlinked directories under `root` that are safe to crawl.
|
|
425
617
|
*
|
|
426
618
|
* When `knownSymlinkDirectories` is provided, this re-verifies each previously
|
|
427
|
-
* discovered path directly
|
|
428
|
-
*
|
|
429
|
-
*
|
|
430
|
-
*
|
|
619
|
+
* discovered path directly. Otherwise a Git-derived `candidatePaths` list avoids a
|
|
620
|
+
* separate full-tree scan: Git already enumerated every tracked and non-ignored
|
|
621
|
+
* untracked entry, including symlinks. Non-Git discovery retains the existing
|
|
622
|
+
* `fg(["**\/*"])` fallback. Every path still passes the same lstat, target-directory,
|
|
623
|
+
* and realpath-confinement checks before it can be crawled.
|
|
431
624
|
*/
|
|
432
625
|
async function resolveSafeSymlinkDirectories(root, realRoot, ignore, options) {
|
|
433
626
|
if (options.knownSymlinkDirectories !== undefined) {
|
|
434
627
|
const verified = await mapLimitSemaphore(Array.from(new Set(options.knownSymlinkDirectories)), REALPATH_FILTER_CONCURRENCY, async (linkPath) => ((await isSafeSymlinkDirectory(root, linkPath, realRoot)) ? linkPath : null));
|
|
435
628
|
const resolved = verified.filter((entry) => entry !== null);
|
|
436
|
-
options.onSymlinkDirectoriesDiscovered?.(resolved);
|
|
629
|
+
options.onSymlinkDirectoriesDiscovered?.(resolved, "known");
|
|
437
630
|
return resolved;
|
|
438
631
|
}
|
|
632
|
+
if (options.candidatePaths !== undefined) {
|
|
633
|
+
const ignoreMatchers = ignore
|
|
634
|
+
.map(normalizeGlobPattern)
|
|
635
|
+
.filter(Boolean)
|
|
636
|
+
.map((pattern) => picomatch(pattern, { dot: true }));
|
|
637
|
+
const candidatePaths = Array.from(new Set(options.candidatePaths)).filter((candidatePath) => {
|
|
638
|
+
const relativePath = normalizePath(path.relative(root, candidatePath));
|
|
639
|
+
if (!isRelativePathInside(relativePath))
|
|
640
|
+
return false;
|
|
641
|
+
return !ignoreMatchers.some((matcher) => matcher(relativePath));
|
|
642
|
+
});
|
|
643
|
+
const verified = await mapLimitSemaphore(candidatePaths, REALPATH_FILTER_CONCURRENCY, async (linkPath) => (await isSafeSymlinkDirectory(root, linkPath, realRoot)) ? linkPath : null);
|
|
644
|
+
const discovered = verified.filter((entry) => entry !== null);
|
|
645
|
+
options.onSymlinkDirectoriesDiscovered?.(discovered, "git-candidates");
|
|
646
|
+
return discovered;
|
|
647
|
+
}
|
|
439
648
|
const entries = (await fg(["**/*"], {
|
|
440
649
|
cwd: root,
|
|
441
650
|
absolute: true,
|
|
@@ -447,7 +656,7 @@ async function resolveSafeSymlinkDirectories(root, realRoot, ignore, options) {
|
|
|
447
656
|
}));
|
|
448
657
|
const candidates = await mapLimitSemaphore(entries.filter((entry) => entry.dirent.isSymbolicLink()).map((entry) => entry.path), REALPATH_FILTER_CONCURRENCY, async (linkPath) => ((await isSafeSymlinkDirectory(root, linkPath, realRoot)) ? linkPath : null));
|
|
449
658
|
const discovered = candidates.filter((entry) => entry !== null);
|
|
450
|
-
options.onSymlinkDirectoriesDiscovered?.(discovered);
|
|
659
|
+
options.onSymlinkDirectoriesDiscovered?.(discovered, "filesystem");
|
|
451
660
|
return discovered;
|
|
452
661
|
}
|
|
453
662
|
async function listEntriesFromSafeSymlinkDirectories(root, realRoot, patterns, ignore, options = {}) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projectFiles.js","sourceRoot":"","sources":["../../src/util/projectFiles.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"projectFiles.js","sourceRoot":"","sources":["../../src/util/projectFiles.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lzehrung/codegraph-core",
|
|
3
|
-
"version": "2.2.
|
|
3
|
+
"version": "2.2.3",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -63,6 +63,6 @@
|
|
|
63
63
|
"zod": "^4.4.3"
|
|
64
64
|
},
|
|
65
65
|
"optionalDependencies": {
|
|
66
|
-
"@lzehrung/codegraph-native": "^1.11.
|
|
66
|
+
"@lzehrung/codegraph-native": "^1.11.3"
|
|
67
67
|
}
|
|
68
68
|
}
|