@cesarandreslopez/occ 0.8.10 → 0.8.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/README.md +7 -4
  2. package/dist/src/code/build.d.ts +49 -1
  3. package/dist/src/code/build.js +127 -33
  4. package/dist/src/code/build.js.map +1 -1
  5. package/dist/src/code/chunk.d.ts +10 -0
  6. package/dist/src/code/chunk.js +14 -1
  7. package/dist/src/code/chunk.js.map +1 -1
  8. package/dist/src/code/discover.d.ts +13 -0
  9. package/dist/src/code/discover.js +49 -2
  10. package/dist/src/code/discover.js.map +1 -1
  11. package/dist/src/code/incremental.d.ts +75 -0
  12. package/dist/src/code/incremental.js +257 -0
  13. package/dist/src/code/incremental.js.map +1 -0
  14. package/dist/src/code/map.d.ts +8 -1
  15. package/dist/src/code/map.js +13 -3
  16. package/dist/src/code/map.js.map +1 -1
  17. package/dist/src/code/parsers.d.ts +1 -0
  18. package/dist/src/code/parsers.js +1 -1
  19. package/dist/src/code/parsers.js.map +1 -1
  20. package/dist/src/code/rank.d.ts +14 -0
  21. package/dist/src/code/rank.js +58 -0
  22. package/dist/src/code/rank.js.map +1 -1
  23. package/dist/src/code/store.d.ts +20 -0
  24. package/dist/src/code/store.js +262 -109
  25. package/dist/src/code/store.js.map +1 -1
  26. package/dist/src/doc/chunk.d.ts +17 -0
  27. package/dist/src/doc/chunk.js +47 -18
  28. package/dist/src/doc/chunk.js.map +1 -1
  29. package/dist/src/doc/inspect-docx.js +13 -3
  30. package/dist/src/doc/inspect-docx.js.map +1 -1
  31. package/dist/src/doc/inspect-pdf.js +12 -17
  32. package/dist/src/doc/inspect-pdf.js.map +1 -1
  33. package/dist/src/index.d.ts +13 -8
  34. package/dist/src/index.js +9 -5
  35. package/dist/src/index.js.map +1 -1
  36. package/dist/src/inspect/xlsx-cells.d.ts +8 -0
  37. package/dist/src/inspect/xlsx-cells.js +17 -2
  38. package/dist/src/inspect/xlsx-cells.js.map +1 -1
  39. package/dist/src/markdown/convert.js +45 -27
  40. package/dist/src/markdown/convert.js.map +1 -1
  41. package/dist/src/parsers/docx.js +10 -2
  42. package/dist/src/parsers/docx.js.map +1 -1
  43. package/dist/src/parsers/index.js +5 -0
  44. package/dist/src/parsers/index.js.map +1 -1
  45. package/dist/src/parsers/pdf.js +12 -32
  46. package/dist/src/parsers/pdf.js.map +1 -1
  47. package/dist/src/parsers/xlsx.js +11 -1
  48. package/dist/src/parsers/xlsx.js.map +1 -1
  49. package/dist/src/progress-event.d.ts +3 -1
  50. package/dist/src/progress-event.js +32 -1
  51. package/dist/src/progress-event.js.map +1 -1
  52. package/dist/src/sheet/inspect.js +20 -10
  53. package/dist/src/sheet/inspect.js.map +1 -1
  54. package/dist/src/table/inspect-docx.js +10 -1
  55. package/dist/src/table/inspect-docx.js.map +1 -1
  56. package/dist/src/table/inspect-xlsx.js +15 -5
  57. package/dist/src/table/inspect-xlsx.js.map +1 -1
  58. package/dist/src/utils.d.ts +24 -0
  59. package/dist/src/utils.js +91 -2
  60. package/dist/src/utils.js.map +1 -1
  61. package/dist/src/workspace/bundle.d.ts +51 -0
  62. package/dist/src/workspace/bundle.js +405 -93
  63. package/dist/src/workspace/bundle.js.map +1 -1
  64. package/dist/src/workspace/documents.d.ts +4 -0
  65. package/dist/src/workspace/documents.js +15 -2
  66. package/dist/src/workspace/documents.js.map +1 -1
  67. package/dist/src/workspace/prepare-types.d.ts +15 -0
  68. package/dist/src/workspace/prepare-types.js +18 -1
  69. package/dist/src/workspace/prepare-types.js.map +1 -1
  70. package/dist/src/workspace/prepare.js +10 -2
  71. package/dist/src/workspace/prepare.js.map +1 -1
  72. package/package.json +9 -2
@@ -1 +1 @@
1
- {"version":3,"file":"discover.js","sourceRoot":"","sources":["../../../src/code/discover.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,WAAW,CAAC;AAC3B,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEvF,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC1C,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACnC,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC9C,qBAAqB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CACtD,CAAC,CAAC;AAOH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,QAAgB,EAAE,UAAsC,EAAE;IAChG,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC5C,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,CAAC,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;IACnH,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9B,MAAM,aAAa,GAAG,MAAM,mBAAmB,CAAC,YAAY,EAAE;QAC5D,UAAU;QACV,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,qBAAqB,EAAE,OAAO,CAAC,qBAAqB;KACrD,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,eAAe,CAAC,MAAM,KAAK,CAAC;QAC1C,CAAC,CAAC,QAAQ,eAAe,CAAC,CAAC,CAAC,EAAE;QAC9B,CAAC,CAAC,SAAS,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;IAE1C,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC,OAAO,EAAE;QACnC,GAAG,EAAE,YAAY;QACjB,QAAQ,EAAE,IAAI;QACd,SAAS,EAAE,IAAI;QACf,GAAG,EAAE,KAAK;QACV,mBAAmB,EAAE,KAAK;QAC1B,MAAM,EAAE,oBAAoB,CAAC,UAAU,CAAC;KACzC,CAAC,CAAC;IACH,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAE9B,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,KAAK,MAAM,QAAQ,IAAI,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC;QACzC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC;YACtC,MAAM,YAAY,GAAG,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC;YAC1E,IAAI,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC;gBAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzF,CAAC;QAAC,MAAM,CAAC;YACP,gDAAgD;QAClD,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"discover.js","sourceRoot":"","sources":["../../../src/code/discover.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,75 @@
1
+ import type { ParseCodeFilesResult } from './build.js';
2
+ import { type DiscoverCodeOptions } from './discover.js';
3
+ import type { CodeSkippedFile, ParsedFile } from './types.js';
4
+ /**
5
+ * One indexed file as recorded in the cache manifest. The manifest covers
6
+ * every file the index saw — parsed and guardrail-skipped alike — so a
7
+ * freshness check never mistakes a skipped file for a new one.
8
+ */
9
+ export interface ManifestEntry {
10
+ relativePath: string;
11
+ size: number;
12
+ mtimeMs: number;
13
+ }
14
+ export interface ChangedFileStat {
15
+ path: string;
16
+ relativePath: string;
17
+ size: number;
18
+ mtimeMs: number;
19
+ }
20
+ export interface ManifestDiff {
21
+ added: ChangedFileStat[];
22
+ modified: ChangedFileStat[];
23
+ deleted: Array<{
24
+ path: string;
25
+ relativePath: string;
26
+ }>;
27
+ hasChanges: boolean;
28
+ }
29
+ /**
30
+ * Diff the manifest against a full discovery pass: files on disk that are
31
+ * missing from the manifest are added, size/mtime mismatches are modified,
32
+ * and manifest entries absent from discovery are deleted.
33
+ */
34
+ export declare function computeManifestDiff(manifest: readonly ManifestEntry[], repoRoot: string, discoverOptions?: DiscoverCodeOptions, signal?: AbortSignal): Promise<ManifestDiff>;
35
+ /**
36
+ * Watcher fast path: classify an explicit changed-file list without a
37
+ * discovery pass. Entries outside the repo, without a language spec,
38
+ * rejected by the same ignore matcher discovery uses, or that discovery
39
+ * would never yield (dot-segments, excluded directories, symlinks — see
40
+ * wouldDiscoverPath) are dropped — required so the result is equivalent to
41
+ * what a full rebuild would have seen. On case-insensitive filesystems a
42
+ * stat can succeed for a stale casing after a case-only rename; such entries
43
+ * are redirected to the on-disk casing (stale casing deleted if indexed,
44
+ * real casing classified normally).
45
+ */
46
+ export declare function classifyChangedFiles(changedFiles: readonly string[], manifest: readonly ManifestEntry[], repoRoot: string, discoverOptions?: DiscoverCodeOptions, signal?: AbortSignal): Promise<ManifestDiff>;
47
+ /**
48
+ * `ParsedFile.imports[].resolvedPath` is parse-time state: adding or deleting
49
+ * files can change how an *unchanged* importer resolves. Returns the absolute
50
+ * paths of cached files whose imports would resolve differently today, so the
51
+ * caller can re-parse them (imports are never patched in place).
52
+ *
53
+ * Only imports that could plausibly be affected are re-checked: those whose
54
+ * specifier stem matches an added file's basename or parent directory (covers
55
+ * both `./x` → `x.ts` and `./x` → `x/index.ts`, plus extension-priority
56
+ * shadowing of an existing resolution), bare-directory specifiers (`.`/`..`)
57
+ * when an `index.*`/`__init__.py` was added, still-unresolved non-relative
58
+ * specifiers when anything was added (tsconfig `paths` exact aliases like
59
+ * `@api` never stem-match the mapped file's basename), and those whose
60
+ * resolved target was deleted. A flagged import is re-resolved via the same
61
+ * resolveImportPath the parsers use; any difference from the cached
62
+ * annotation flags the file.
63
+ */
64
+ export declare function findResolutionImpactedFiles(cachedFiles: readonly ParsedFile[], diff: ManifestDiff, repoRoot: string): string[];
65
+ /**
66
+ * Merge cached parse results with fresh ones: drop `removals` (deleted files
67
+ * plus everything re-parsed), insert the fresh entries, and sort both outputs
68
+ * by absolute path with the default string comparator — reproducing the
69
+ * `discovered.sort()` order a full build would produce, which is what makes
70
+ * incremental output deep-equal a fresh full build.
71
+ */
72
+ export declare function spliceIndexInputs(cachedFiles: readonly ParsedFile[], cachedSkipped: readonly CodeSkippedFile[], removals: ReadonlySet<string>, fresh: ParseCodeFilesResult): {
73
+ parsedFiles: ParsedFile[];
74
+ skippedFiles: CodeSkippedFile[];
75
+ };
@@ -0,0 +1,257 @@
1
+ import { realpath, stat } from 'node:fs/promises';
2
+ import path from 'node:path';
3
+ import { DEFAULT_EXCLUDE_DIRS, discoverCodeFiles, wouldDiscoverPath } from './discover.js';
4
+ import { getLanguageSpec, normalizePath, stripImportSuffix } from './languages.js';
5
+ import { resolveImportPath } from './parsers.js';
6
+ import { abortIfNeeded, createIgnoreMatcher, mapWithConcurrency } from '../utils.js';
7
+ function buildDiff(added, modified, deleted) {
8
+ return {
9
+ added,
10
+ modified,
11
+ deleted,
12
+ hasChanges: added.length > 0 || modified.length > 0 || deleted.length > 0,
13
+ };
14
+ }
15
+ /**
16
+ * Diff the manifest against a full discovery pass: files on disk that are
17
+ * missing from the manifest are added, size/mtime mismatches are modified,
18
+ * and manifest entries absent from discovery are deleted.
19
+ */
20
+ export async function computeManifestDiff(manifest, repoRoot, discoverOptions = {}, signal) {
21
+ const resolvedRoot = path.resolve(repoRoot);
22
+ abortIfNeeded(signal);
23
+ const discovered = await discoverCodeFiles(resolvedRoot, { ...discoverOptions, signal });
24
+ const statted = await mapWithConcurrency(discovered, 32, async (filePath) => {
25
+ try {
26
+ const fileStat = await stat(filePath);
27
+ if (!fileStat.isFile())
28
+ return null;
29
+ return {
30
+ path: filePath,
31
+ relativePath: normalizePath(path.relative(resolvedRoot, filePath)),
32
+ size: fileStat.size,
33
+ mtimeMs: fileStat.mtimeMs,
34
+ };
35
+ }
36
+ catch {
37
+ // Disappeared between discovery and stat — treated as absent.
38
+ return null;
39
+ }
40
+ }, signal);
41
+ const manifestByRel = new Map();
42
+ for (const entry of manifest)
43
+ manifestByRel.set(entry.relativePath, entry);
44
+ const added = [];
45
+ const modified = [];
46
+ const seen = new Set();
47
+ for (const current of statted) {
48
+ if (!current)
49
+ continue;
50
+ seen.add(current.relativePath);
51
+ const previous = manifestByRel.get(current.relativePath);
52
+ if (!previous) {
53
+ added.push(current);
54
+ }
55
+ else if (previous.size !== current.size || previous.mtimeMs !== current.mtimeMs) {
56
+ modified.push(current);
57
+ }
58
+ }
59
+ const deleted = [];
60
+ for (const entry of manifest) {
61
+ if (!seen.has(entry.relativePath)) {
62
+ deleted.push({ path: path.resolve(resolvedRoot, entry.relativePath), relativePath: entry.relativePath });
63
+ }
64
+ }
65
+ return buildDiff(added, modified, deleted);
66
+ }
67
+ /**
68
+ * Watcher fast path: classify an explicit changed-file list without a
69
+ * discovery pass. Entries outside the repo, without a language spec,
70
+ * rejected by the same ignore matcher discovery uses, or that discovery
71
+ * would never yield (dot-segments, excluded directories, symlinks — see
72
+ * wouldDiscoverPath) are dropped — required so the result is equivalent to
73
+ * what a full rebuild would have seen. On case-insensitive filesystems a
74
+ * stat can succeed for a stale casing after a case-only rename; such entries
75
+ * are redirected to the on-disk casing (stale casing deleted if indexed,
76
+ * real casing classified normally).
77
+ */
78
+ export async function classifyChangedFiles(changedFiles, manifest, repoRoot, discoverOptions = {}, signal) {
79
+ const resolvedRoot = path.resolve(repoRoot);
80
+ abortIfNeeded(signal);
81
+ const excludeDir = discoverOptions.excludeDir ?? DEFAULT_EXCLUDE_DIRS;
82
+ const ignoreMatcher = await createIgnoreMatcher(resolvedRoot, {
83
+ excludeDir,
84
+ noGitignore: discoverOptions.noGitignore,
85
+ ignorePatterns: discoverOptions.ignorePatterns,
86
+ overlayIgnorePatterns: discoverOptions.overlayIgnorePatterns,
87
+ });
88
+ const manifestByRel = new Map();
89
+ for (const entry of manifest)
90
+ manifestByRel.set(entry.relativePath, entry);
91
+ const added = [];
92
+ const modified = [];
93
+ const deleted = [];
94
+ const seen = new Set();
95
+ let realRoot;
96
+ // Case-rename redirects append the on-disk casing for another pass.
97
+ const queue = [...changedFiles];
98
+ for (let cursor = 0; cursor < queue.length; cursor++) {
99
+ abortIfNeeded(signal);
100
+ const changed = queue[cursor];
101
+ const absolutePath = path.isAbsolute(changed) ? path.resolve(changed) : path.resolve(resolvedRoot, changed);
102
+ const relativePath = normalizePath(path.relative(resolvedRoot, absolutePath));
103
+ if (relativePath.startsWith('..'))
104
+ continue;
105
+ if (!getLanguageSpec(absolutePath))
106
+ continue;
107
+ if (ignoreMatcher.ignores(relativePath))
108
+ continue;
109
+ if (seen.has(relativePath))
110
+ continue;
111
+ seen.add(relativePath);
112
+ if (!await wouldDiscoverPath(resolvedRoot, absolutePath, excludeDir))
113
+ continue;
114
+ try {
115
+ const fileStat = await stat(absolutePath);
116
+ if (!fileStat.isFile())
117
+ continue;
118
+ // Case-insensitive filesystems (macOS APFS default) stat a stale
119
+ // casing successfully after a case-only rename; indexing it would
120
+ // duplicate the file. Compare against the on-disk casing (realpath
121
+ // is symlink-safe here — wouldDiscoverPath already rejected symlinks)
122
+ // and redirect to the real path.
123
+ realRoot ??= await realpath(resolvedRoot);
124
+ const realRelativePath = normalizePath(path.relative(realRoot, await realpath(absolutePath)));
125
+ if (realRelativePath !== relativePath) {
126
+ if (manifestByRel.has(relativePath))
127
+ deleted.push({ path: absolutePath, relativePath });
128
+ queue.push(path.resolve(resolvedRoot, realRelativePath));
129
+ continue;
130
+ }
131
+ const entry = { path: absolutePath, relativePath, size: fileStat.size, mtimeMs: fileStat.mtimeMs };
132
+ if (manifestByRel.has(relativePath))
133
+ modified.push(entry);
134
+ else
135
+ added.push(entry);
136
+ }
137
+ catch {
138
+ // Absent on disk: a deletion if indexed before, otherwise nothing to do.
139
+ if (manifestByRel.has(relativePath))
140
+ deleted.push({ path: absolutePath, relativePath });
141
+ }
142
+ }
143
+ return buildDiff(added, modified, deleted);
144
+ }
145
+ /**
146
+ * Candidate stems for an import specifier: the last path segment, the same
147
+ * segment without its extension, and the last dotted segment (Python-style
148
+ * `pkg.mod` specifiers). Used only as a conservative prefilter — a match
149
+ * triggers re-resolution, never a direct edit of the cached parse.
150
+ */
151
+ function specifierStems(specifier) {
152
+ const stripped = stripImportSuffix(specifier);
153
+ const lastSegment = stripped.split('/').pop() ?? stripped;
154
+ const stems = new Set([lastSegment]);
155
+ const withoutExtension = lastSegment.replace(/\.[^.]+$/, '');
156
+ if (withoutExtension)
157
+ stems.add(withoutExtension);
158
+ const lastDotted = stripped.split('.').filter(Boolean).pop();
159
+ if (lastDotted)
160
+ stems.add(lastDotted);
161
+ return [...stems];
162
+ }
163
+ /**
164
+ * `ParsedFile.imports[].resolvedPath` is parse-time state: adding or deleting
165
+ * files can change how an *unchanged* importer resolves. Returns the absolute
166
+ * paths of cached files whose imports would resolve differently today, so the
167
+ * caller can re-parse them (imports are never patched in place).
168
+ *
169
+ * Only imports that could plausibly be affected are re-checked: those whose
170
+ * specifier stem matches an added file's basename or parent directory (covers
171
+ * both `./x` → `x.ts` and `./x` → `x/index.ts`, plus extension-priority
172
+ * shadowing of an existing resolution), bare-directory specifiers (`.`/`..`)
173
+ * when an `index.*`/`__init__.py` was added, still-unresolved non-relative
174
+ * specifiers when anything was added (tsconfig `paths` exact aliases like
175
+ * `@api` never stem-match the mapped file's basename), and those whose
176
+ * resolved target was deleted. A flagged import is re-resolved via the same
177
+ * resolveImportPath the parsers use; any difference from the cached
178
+ * annotation flags the file.
179
+ */
180
+ export function findResolutionImpactedFiles(cachedFiles, diff, repoRoot) {
181
+ if (diff.added.length === 0 && diff.deleted.length === 0)
182
+ return [];
183
+ const addedStems = new Set();
184
+ let addedIndexLike = false;
185
+ for (const added of diff.added) {
186
+ const baseName = path.basename(added.path, path.extname(added.path));
187
+ addedStems.add(baseName);
188
+ addedStems.add(path.basename(path.dirname(added.path)));
189
+ if (baseName === 'index' || baseName === '__init__')
190
+ addedIndexLike = true;
191
+ }
192
+ const deletedSet = new Set(diff.deleted.map((entry) => entry.path));
193
+ const hasAdded = diff.added.length > 0;
194
+ const impacted = new Set();
195
+ for (const file of cachedFiles) {
196
+ if (deletedSet.has(file.path))
197
+ continue; // Deleted files are removed, never re-parsed.
198
+ const language = getLanguageSpec(file.path)?.name ?? file.language;
199
+ for (const fileImport of file.imports) {
200
+ const stems = specifierStems(fileImport.specifier);
201
+ const stemMatch = stems.some((stem) => addedStems.has(stem));
202
+ // `.`/`./`/`..`-style specifiers carry no usable stem; a new index.*
203
+ // (or __init__.py) anywhere can change how they resolve.
204
+ const directoryMatch = addedIndexLike
205
+ && stems.every((stem) => stem === '.' || stem === '..' || stem === '');
206
+ // Exact tsconfig `paths` aliases resolve to files whose basenames never
207
+ // intersect the alias stem, so every still-unresolved non-relative
208
+ // specifier is re-checked whenever files appear. Cheap: tsconfig
209
+ // parsing is memoized per repoRoot and misses stay undefined.
210
+ const unresolvedBare = hasAdded
211
+ && fileImport.resolvedPath == null
212
+ && !fileImport.specifier.startsWith('.');
213
+ const targetDeleted = fileImport.resolvedPath != null && deletedSet.has(fileImport.resolvedPath);
214
+ if (!stemMatch && !directoryMatch && !unresolvedBare && !targetDeleted)
215
+ continue;
216
+ const outcome = resolveImportPath(language, { repoRoot }, file.path, fileImport.specifier);
217
+ if (outcome !== fileImport.resolvedPath) {
218
+ impacted.add(file.path);
219
+ break;
220
+ }
221
+ }
222
+ }
223
+ return [...impacted].sort();
224
+ }
225
+ /**
226
+ * Merge cached parse results with fresh ones: drop `removals` (deleted files
227
+ * plus everything re-parsed), insert the fresh entries, and sort both outputs
228
+ * by absolute path with the default string comparator — reproducing the
229
+ * `discovered.sort()` order a full build would produce, which is what makes
230
+ * incremental output deep-equal a fresh full build.
231
+ */
232
+ export function spliceIndexInputs(cachedFiles, cachedSkipped, removals, fresh) {
233
+ const parsedByPath = new Map();
234
+ for (const file of cachedFiles)
235
+ parsedByPath.set(file.path, file);
236
+ const skippedByPath = new Map();
237
+ for (const skipped of cachedSkipped)
238
+ skippedByPath.set(skipped.path, skipped);
239
+ for (const removal of removals) {
240
+ parsedByPath.delete(removal);
241
+ skippedByPath.delete(removal);
242
+ }
243
+ for (const file of fresh.parsedFiles) {
244
+ parsedByPath.set(file.path, file);
245
+ skippedByPath.delete(file.path);
246
+ }
247
+ for (const skipped of fresh.skippedFiles) {
248
+ skippedByPath.set(skipped.path, skipped);
249
+ parsedByPath.delete(skipped.path);
250
+ }
251
+ const byPath = (left, right) => left.path < right.path ? -1 : left.path > right.path ? 1 : 0;
252
+ return {
253
+ parsedFiles: [...parsedByPath.values()].sort(byPath),
254
+ skippedFiles: [...skippedByPath.values()].sort(byPath),
255
+ };
256
+ }
257
+ //# sourceMappingURL=incremental.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"incremental.js","sourceRoot":"","sources":["../../../src/code/incremental.ts"],"names":[],"mappings":"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"}
@@ -168,6 +168,13 @@ export declare function repoMapSignatureLine(symbol: RepoMapSymbol): string;
168
168
  * matches the emitted document exactly.
169
169
  */
170
170
  export declare function repoMapEntryToMarkdown(entry: RepoMapEntry, mode: RepoMapMode): string;
171
- /** Build a token-budgeted, importance-ranked repo map (or pack) from an index. */
171
+ /**
172
+ * Build a token-budgeted, importance-ranked repo map (or pack) from an index.
173
+ *
174
+ * The index should be treated as immutable after construction: the underlying
175
+ * ranking is memoized per index object (see `rankNodesCached`) with only a
176
+ * `files`/`nodes`/`edges` length fingerprint, so in-place mutations that keep
177
+ * those lengths constant are not detected and reuse the cached ranking.
178
+ */
172
179
  export declare function buildRepoMap(index: CodebaseIndex, options: RepoMapOptions): RepoMapResult;
173
180
  export {};
@@ -16,7 +16,7 @@ import { z } from 'zod';
16
16
  import { estimateTokenCount } from '../tokens.js';
17
17
  import { extractKeySection } from './query.js';
18
18
  import { toNormalizedSymbolKind } from './types.js';
19
- import { rankNodes, RankOptionsSchema } from './rank.js';
19
+ import { rankNodesCached, RankOptionsSchema } from './rank.js';
20
20
  import { computeFocusScores } from './focus.js';
21
21
  export const RepoMapFormatSchema = z.enum(['markdown', 'xml', 'json', 'plain']);
22
22
  export const RepoMapModeSchema = z.enum(['map', 'pack']);
@@ -178,14 +178,24 @@ function buildContentEntry(file, charBudget) {
178
178
  return null;
179
179
  }
180
180
  }
181
- /** Build a token-budgeted, importance-ranked repo map (or pack) from an index. */
181
+ /**
182
+ * Build a token-budgeted, importance-ranked repo map (or pack) from an index.
183
+ *
184
+ * The index should be treated as immutable after construction: the underlying
185
+ * ranking is memoized per index object (see `rankNodesCached`) with only a
186
+ * `files`/`nodes`/`edges` length fingerprint, so in-place mutations that keep
187
+ * those lengths constant are not detected and reuse the cached ranking.
188
+ */
182
189
  export function buildRepoMap(index, options) {
183
190
  const mode = options.mode ?? 'map';
184
191
  const format = options.format ?? 'markdown';
185
192
  const compress = options.compress ?? false;
186
193
  const countTokens = options.countTokens ?? estimateTokenCount;
187
194
  const budget = options.tokenBudget;
188
- const ranking = rankNodes(index, options.rank);
195
+ // Cached per index object: repeated map calls (e.g. focused maps) skip
196
+ // PageRank. The shared RankResult is read-only here — fileScores is copied
197
+ // before any sort and nodes are only iterated.
198
+ const ranking = rankNodesCached(index, options.rank);
189
199
  const fileByPath = new Map();
190
200
  for (const file of index.files)
191
201
  fileByPath.set(file.path, file);
@@ -1 +1 @@
1
- {"version":3,"file":"map.js","sourceRoot":"","sources":["../../../src/code/map.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"map.js","sourceRoot":"","sources":["../../../src/code/map.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEpD,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAqD,MAAM,WAAW,CAAC;AAClH,OAAO,EAAE,kBAAkB,EAAkB,MAAM,YAAY,CAAC;AAEhE,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAGhF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;AAGzD,mGAAmG;AACnG,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACrC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;CACtD,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IACxC,IAAI,EAAE,iBAAiB,CAAC,QAAQ,EAAE;IAClC,MAAM,EAAE,mBAAmB,CAAC,QAAQ,EAAE;IACtC,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAChC,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACzD,IAAI,EAAE,iBAAiB,CAAC,QAAQ,EAAE;IAClC,KAAK,EAAE,kBAAkB,CAAC,QAAQ,EAAE;CACrC,CAAC,CAAC;AAQH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE;IACrB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC7B,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE;IAC3B,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC;IACrC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;IAC1B,mEAAmE;IACnE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,0DAA0D;IAC1D,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CAC7C,CAAC,CAAC;AAGH,mEAAmE;AACnE,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC1B,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;CACzB,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,IAAI,EAAE,iBAAiB;IACvB,MAAM,EAAE,mBAAmB;IAC3B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC;IACpC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;IAC1B,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE;IACtB,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;IAC1B,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE;IAC1B,KAAK,EAAE,wBAAwB,CAAC,QAAQ,EAAE;CAC3C,CAAC,CAAC;AAGH,MAAM,sBAAsB,GAAG,CAAC,CAAC;AACjC,MAAM,sBAAsB,GAAG,KAAK,CAAC;AAErC,6EAA6E;AAC7E,8EAA8E;AAC9E,+DAA+D;AAC/D,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAC5B,MAAM,mBAAmB,GAAG,IAAI,CAAC;AACjC,MAAM,sBAAsB,GAAG,IAAI,CAAC;AAEpC,SAAS,MAAM,CAAC,KAAa;IAC3B,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;AACrC,CAAC;AAED,2EAA2E;AAC3E,SAAS,aAAa,CAAC,KAA+B;IACpD,IAAI,KAAK,IAAI,IAAI;QAAE,OAAO,KAAK,CAAC;IAChC,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACvD,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACtE,CAAC;AAED,SAAS,SAAS,CAAC,KAA4E;IAC7F,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE,EAAE,KAAK,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzF,CAAC;AAED,+EAA+E;AAC/E,SAAS,qBAAqB,CAAC,IAAgB,EAAE,YAA0B;IACzE,MAAM,KAAK,GAAG,IAAI,GAAG,EAAwB,CAAC;IAC9C,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QAClC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM,CAAC,aAAa,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;IACjI,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,KAAK,GAAoB,EAAE,CAAC;IAClC,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;QAChC,MAAM,GAAG,GAAG,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QAChH,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QACvC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,IAAI,EAAE,sBAAsB,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,aAAa,CAAC;YAC/D,SAAS,EAAE,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,IAAI;YAClE,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,KAAK;YAClC,KAAK,EAAE,MAAM,CAAC,KAAK;SACpB,CAAC,CAAC;IACL,CAAC;IAED,iFAAiF;IACjF,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC3D,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACxD,OAAO,CAAC,GAAG,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAC;AAChC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAqB;IACxD,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IAChD,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC;IAE7B,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC3D,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC;QAC5D,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC;QACpH,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,EAAE,CAAC;IACtC,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;IAC/D,IAAI,GAAG,IAAI,GAAG,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACvD,OAAO,GAAG,MAAM,GAAG,QAAQ,IAAI,MAAM,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC;IACtD,CAAC;IACD,OAAO,GAAG,MAAM,GAAG,QAAQ,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;AAC/C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAAmB,EAAE,IAAiB;IAC3E,MAAM,KAAK,GAAa,CAAC,MAAM,KAAK,CAAC,YAAY,YAAY,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAClG,IAAI,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,OAAO,IAAI,IAAI,EAAE,CAAC;QAC7C,IAAI,KAAK,CAAC,aAAa;YAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,KAAK,CAAC,aAAa,MAAM,CAAC,CAAC;QACvE,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;QACnC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC1B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC;SAAM,CAAC;QACN,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO;YAAE,KAAK,CAAC,IAAI,CAAC,KAAK,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACtF,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAgB,EAAE,UAAkB;IAC7D,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC;QACnE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;IAC9D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY,CAAC,KAAoB,EAAE,OAAuB;IACxE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,KAAK,CAAC;IACnC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,UAAU,CAAC;IAC5C,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,KAAK,CAAC;IAC3C,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,kBAAkB,CAAC;IAC9D,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAEnC,uEAAuE;IACvE,2EAA2E;IAC3E,+CAA+C;IAC/C,MAAM,OAAO,GAAe,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjE,MAAM,UAAU,GAAG,IAAI,GAAG,EAAsB,CAAC;IACjD,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK;QAAE,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAEhE,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAwB,CAAC;IAC5D,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QACjC,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ;YAAE,SAAS;QAC7D,MAAM,IAAI,GAAG,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,IAAI;YAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;YACrB,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAClD,CAAC;IAED,+EAA+E;IAC/E,+EAA+E;IAC/E,2EAA2E;IAC3E,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAC5B,IAAI,iBAAiB,GAAiB,OAAO,CAAC,UAAU,CAAC;IACzD,IAAI,WAA+C,CAAC;IACpD,IAAI,WAA2C,CAAC;IAChD,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,WAAW,GAAG,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC/C,MAAM,WAAW,GAAG,WAAW,CAAC;QAChC,iBAAiB,GAAG,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;aACxC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE;YACjB,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC;YACtG,MAAM,gBAAgB,GAAG,SAAS,CAAC,eAAe,GAAG,GAAG,CAAC;YACzD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,gBAAgB,GAAG,mBAAmB,GAAG,eAAe,GAAG,sBAAsB,EAAE,CAAC;QACpH,CAAC,CAAC;aACD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;aACvC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACjC,WAAW,GAAG;YACZ,KAAK,EAAE,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,SAAS;YAC9C,KAAK,EAAE,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;YACvE,YAAY,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,MAAM;SAClF,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAmB,EAAE,CAAC;IACnC,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,cAAc,GAAG,CAAC,CAAC;IAEvB,KAAK,MAAM,SAAS,IAAI,iBAAiB,EAAE,CAAC;QAC1C,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,IAAI;YAAE,SAAS;QAEpB,MAAM,SAAS,GAAG,MAAM,GAAG,UAAU,CAAC;QACtC,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;YACnB,YAAY,EAAE,CAAC;YACf,SAAS;QACX,CAAC;QAED,IAAI,OAAO,GAAG,qBAAqB,CAAC,IAAI,EAAE,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACpF,IAAI,OAAO,CAAC,iBAAiB,IAAI,IAAI,IAAI,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;YACpF,cAAc,IAAI,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;YAC7D,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;QACxD,CAAC;QAED,IAAI,OAA2B,CAAC;QAChC,IAAI,aAAiC,CAAC;QACtC,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YACpB,MAAM,UAAU,GAAG,QAAQ;gBACzB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,sBAAsB,EAAE,SAAS,GAAG,sBAAsB,CAAC;gBACtE,CAAC,CAAC,SAAS,GAAG,sBAAsB,CAAC;YACvC,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YAClD,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;gBACxB,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC;YAC/B,CAAC;QACH,CAAC;QAED,6DAA6D;QAC7D,IAAI,IAAI,KAAK,KAAK,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QACrD,IAAI,IAAI,KAAK,MAAM,IAAI,OAAO,IAAI,IAAI,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAEzE,MAAM,SAAS,GAAG,CAAC,YAA6B,EAAE,YAAqB,EAAgB,EAAE;YACvF,MAAM,KAAK,GAAiB;gBAC1B,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,KAAK,EAAE,SAAS,CAAC,KAAK;gBACtB,eAAe,EAAE,SAAS,CAAC,eAAe;gBAC1C,OAAO,EAAE,YAAY;gBACrB,OAAO,EAAE,YAAY;gBACrB,aAAa,EAAE,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;gBAC/D,MAAM,EAAE,CAAC;gBACT,cAAc,EAAE,CAAC;aAClB,CAAC;YACF,2EAA2E;YAC3E,iDAAiD;YACjD,IAAI,WAAW,EAAE,CAAC;gBAChB,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC7C,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,IAAI,CAAC,CAAC,GAAG,gBAAgB,CAAC,GAAG,GAAG,CAAC,CAAC;gBACzF,IAAI,SAAS,IAAI,SAAS,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;oBAAE,KAAK,CAAC,YAAY,GAAG,SAAS,CAAC,OAAO,CAAC;YACxF,CAAC;YACD,KAAK,CAAC,MAAM,GAAG,WAAW,CAAC,sBAAsB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;YAChE,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;QAEF,IAAI,KAAK,GAAG,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAExC,IAAI,UAAU,GAAG,KAAK,CAAC,MAAM,IAAI,MAAM,EAAE,CAAC;YACxC,UAAU,IAAI,KAAK,CAAC,MAAM,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACpB,SAAS;QACX,CAAC;QAED,wEAAwE;QACxE,IAAI,IAAI,KAAK,MAAM,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;YACvC,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,UAAU,CAAC,GAAG,sBAAsB,GAAG,GAAG,CAAC,CAAC,CAAC;YACrG,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;YACrD,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;gBACzB,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC;gBAC9B,KAAK,GAAG,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,oEAAoE;YACpE,IAAI,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC;YAC1B,OAAO,IAAI,GAAG,CAAC,EAAE,CAAC;gBAChB,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;gBAChD,IAAI,UAAU,GAAG,KAAK,CAAC,MAAM,IAAI,MAAM,EAAE,CAAC;oBACxC,KAAK,GAAG,KAAK,CAAC;oBACd,MAAM;gBACR,CAAC;gBACD,IAAI,EAAE,CAAC;YACT,CAAC;YACD,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBACf,YAAY,EAAE,CAAC;gBACf,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;gBACjC,SAAS;YACX,CAAC;YACD,cAAc,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;YACxC,KAAK,CAAC,cAAc,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;QAC/C,CAAC;QAED,IAAI,UAAU,GAAG,KAAK,CAAC,MAAM,IAAI,MAAM,EAAE,CAAC;YACxC,UAAU,IAAI,KAAK,CAAC,MAAM,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;aAAM,CAAC;YACN,YAAY,EAAE,CAAC;YACf,cAAc,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QACzC,CAAC;IACH,CAAC;IAED,OAAO;QACL,IAAI;QACJ,MAAM;QACN,WAAW,EAAE,MAAM;QACnB,UAAU;QACV,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,MAAM;QACrC,OAAO;QACP,YAAY;QACZ,cAAc;QACd,SAAS,EAAE,YAAY,GAAG,CAAC,IAAI,cAAc,GAAG,CAAC;QACjD,cAAc,EAAE,OAAO,CAAC,UAAU;QAClC,aAAa,EAAE,OAAO,CAAC,SAAS;QAChC,KAAK,EAAE,WAAW;KACnB,CAAC;AACJ,CAAC"}
@@ -16,5 +16,6 @@ export interface ParsedCodeFileSkipped {
16
16
  reason: string;
17
17
  }
18
18
  export type ParseCodeFileResult = ParsedCodeFileSuccess | ParsedCodeFileSkipped | null;
19
+ export declare function resolveImportPath(language: string, context: ParserContext, filePath: string, specifier: string): string | undefined;
19
20
  export declare function parseCodeFile(filePath: string, context: ParserContext, guardrails?: CodeFileGuardrails): Promise<ParseCodeFileResult>;
20
21
  export {};
@@ -98,7 +98,7 @@ function pushUniqueSymbol(symbols, next) {
98
98
  symbols.push(next);
99
99
  }
100
100
  }
101
- function resolveImportPath(language, context, filePath, specifier) {
101
+ export function resolveImportPath(language, context, filePath, specifier) {
102
102
  if (language === 'python') {
103
103
  return resolvePythonImport(context.repoRoot, filePath, specifier);
104
104
  }