@repo-map/core 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query.js","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { EntryMap } from "./entry-detector.js";
2
+ import type { ModuleIndex } from "./module-index.js";
3
+ export interface SummaryOptions {
4
+ repoRoot: string;
5
+ moduleIndex: ModuleIndex;
6
+ entryMap: EntryMap;
7
+ maxLines?: number;
8
+ maxModules?: number;
9
+ maxEntriesPerType?: number;
10
+ maxKeywordsPerModule?: number;
11
+ }
12
+ export declare const buildSummary: (options: SummaryOptions) => string;
@@ -0,0 +1,143 @@
1
+ import path from "node:path";
2
+ const DEFAULT_MAX_LINES = 300;
3
+ const DEFAULT_MAX_MODULES = 10;
4
+ const DEFAULT_MAX_ENTRIES_PER_TYPE = 8;
5
+ const DEFAULT_MAX_KEYWORDS = 5;
6
+ const ENTRY_TYPE_ORDER = [
7
+ "web-route",
8
+ "controller",
9
+ "service",
10
+ "cli-entry",
11
+ "worker",
12
+ "job",
13
+ "unknown-entry"
14
+ ];
15
+ const compareNames = (left, right) => {
16
+ if (left === right)
17
+ return 0;
18
+ return left < right ? -1 : 1;
19
+ };
20
+ const formatList = (items, maxItems) => {
21
+ if (items.length === 0)
22
+ return "(none)";
23
+ const list = items.slice(0, maxItems);
24
+ const suffix = items.length > maxItems ? ", ..." : "";
25
+ return `${list.join(", ")}${suffix}`;
26
+ };
27
+ const formatKeywords = (keywords, maxKeywords) => formatList(keywords, maxKeywords);
28
+ const formatLanguageSummary = (modules) => {
29
+ const counts = new Map();
30
+ for (const module of modules) {
31
+ const value = counts.get(module.language) ?? 0;
32
+ counts.set(module.language, value + 1);
33
+ }
34
+ const entries = Array.from(counts.entries()).sort((a, b) => b[1] - a[1] || compareNames(a[0], b[0]));
35
+ if (entries.length === 0)
36
+ return "(none)";
37
+ return entries.map(([lang, count]) => `${lang}(${count})`).join(", ");
38
+ };
39
+ const sumFiles = (modules) => modules.reduce((total, module) => total + module.fileCount, 0);
40
+ const formatModuleLine = (module, maxKeywords) => {
41
+ const keywordText = formatKeywords(module.keywords ?? [], maxKeywords);
42
+ return `- ${module.path} (${module.language}, ${module.fileCount} files) keywords: ${keywordText}`;
43
+ };
44
+ const collectEntryPaths = (entryMap, type) => {
45
+ const paths = [];
46
+ const unknownModules = [];
47
+ for (const module of entryMap.modules) {
48
+ for (const entry of module.entries) {
49
+ if (entry.type !== type)
50
+ continue;
51
+ if (entry.type === "unknown-entry") {
52
+ unknownModules.push(module.path);
53
+ }
54
+ else {
55
+ if (entry.path)
56
+ paths.push(entry.path);
57
+ }
58
+ }
59
+ }
60
+ paths.sort(compareNames);
61
+ unknownModules.sort(compareNames);
62
+ return { paths, unknownModules };
63
+ };
64
+ const buildEntrySection = (entryMap, maxEntriesPerType) => {
65
+ const lines = [];
66
+ for (const type of ENTRY_TYPE_ORDER) {
67
+ const { paths, unknownModules } = collectEntryPaths(entryMap, type);
68
+ if (type === "unknown-entry") {
69
+ const summary = unknownModules.length === 0
70
+ ? "(none)"
71
+ : formatList(unknownModules, maxEntriesPerType);
72
+ lines.push(`- ${type}: ${summary}`);
73
+ continue;
74
+ }
75
+ lines.push(`- ${type}: ${formatList(paths, maxEntriesPerType)}`);
76
+ }
77
+ return lines;
78
+ };
79
+ const buildReadingOrder = (entryMap, maxEntriesPerType) => {
80
+ const lines = [];
81
+ const order = [
82
+ "web-route",
83
+ "controller",
84
+ "service",
85
+ "cli-entry",
86
+ "worker",
87
+ "job"
88
+ ];
89
+ for (const type of order) {
90
+ const { paths } = collectEntryPaths(entryMap, type);
91
+ const list = formatList(paths, maxEntriesPerType);
92
+ if (list === "(none)")
93
+ continue;
94
+ lines.push(`- Start with ${type}: ${list}`);
95
+ }
96
+ if (lines.length === 0) {
97
+ lines.push("- No clear entry files detected; start from top modules.");
98
+ }
99
+ return lines;
100
+ };
101
+ export const buildSummary = (options) => {
102
+ const maxLines = options.maxLines ?? DEFAULT_MAX_LINES;
103
+ const maxModules = options.maxModules ?? DEFAULT_MAX_MODULES;
104
+ const maxEntriesPerType = options.maxEntriesPerType ?? DEFAULT_MAX_ENTRIES_PER_TYPE;
105
+ const maxKeywordsPerModule = options.maxKeywordsPerModule ?? DEFAULT_MAX_KEYWORDS;
106
+ const repoName = path.basename(path.resolve(options.repoRoot));
107
+ const modules = options.moduleIndex.modules.slice();
108
+ modules.sort((a, b) => compareNames(a.path, b.path));
109
+ const lines = [];
110
+ lines.push("# Repo Summary");
111
+ lines.push("");
112
+ lines.push("## Repository Overview");
113
+ lines.push(`- Name: ${repoName}`);
114
+ lines.push(`- Modules: ${modules.length}`);
115
+ lines.push(`- Files: ${sumFiles(modules)}`);
116
+ lines.push(`- Languages: ${formatLanguageSummary(modules)}`);
117
+ lines.push("");
118
+ lines.push("## Top Modules");
119
+ if (modules.length === 0) {
120
+ lines.push("- (none)");
121
+ }
122
+ else {
123
+ const topModules = modules
124
+ .slice()
125
+ .sort((a, b) => b.fileCount - a.fileCount || compareNames(a.path, b.path))
126
+ .slice(0, maxModules);
127
+ for (const module of topModules) {
128
+ lines.push(formatModuleLine(module, maxKeywordsPerModule));
129
+ }
130
+ }
131
+ lines.push("");
132
+ lines.push("## Common Entries");
133
+ lines.push(...buildEntrySection(options.entryMap, maxEntriesPerType));
134
+ lines.push("");
135
+ lines.push("## Suggested Reading Order");
136
+ lines.push(...buildReadingOrder(options.entryMap, maxEntriesPerType));
137
+ const trimmed = lines.slice(0, maxLines);
138
+ if (trimmed.length < lines.length) {
139
+ trimmed[trimmed.length - 1] = "- Output truncated to fit line limit.";
140
+ }
141
+ return `${trimmed.join("\n")}\n`;
142
+ };
143
+ //# sourceMappingURL=summary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"summary.js","sourceRoot":"","sources":["../src/summary.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ export type SymlinkPolicy = "skip" | "follow-file" | "follow-all";
2
+ export type PathStyle = "posix" | "native";
3
+ export interface WalkOptions {
4
+ root: string;
5
+ cwd?: string;
6
+ ignoreGlobs?: string[];
7
+ useGitignore?: boolean;
8
+ defaultIgnores?: string[];
9
+ symlinkPolicy?: SymlinkPolicy;
10
+ maxDepth?: number;
11
+ pathStyle?: PathStyle;
12
+ onError?: (err: NodeJS.ErrnoException, path: string) => void;
13
+ }
14
+ export declare const DEFAULT_IGNORES: string[];
15
+ export declare function walkFiles(options: WalkOptions): AsyncGenerator<string>;
16
+ export declare const collectFiles: (options: WalkOptions) => Promise<string[]>;
package/dist/walker.js ADDED
@@ -0,0 +1,321 @@
1
+ import path from "node:path";
2
+ import * as fs from "node:fs/promises";
3
+ import ignoreModule from "ignore";
4
+ const ignoreFactory = ignoreModule;
5
+ export const DEFAULT_IGNORES = [
6
+ ".git/",
7
+ ".hg/",
8
+ ".svn/",
9
+ ".repomap/",
10
+ "node_modules/",
11
+ "dist/",
12
+ "build/",
13
+ "out/",
14
+ ".next/",
15
+ ".nuxt/",
16
+ ".cache/",
17
+ ".turbo/",
18
+ ".yarn/",
19
+ ".pnpm/",
20
+ "coverage/"
21
+ ];
22
+ const isWindows = process.platform === "win32";
23
+ const EXTENDED_PATH_PREFIX = "\\\\?\\";
24
+ const normalizePathStyle = (pathStyle) => pathStyle ?? "posix";
25
+ const normalizePattern = (pattern) => pattern.replace(/\\/g, "/");
26
+ const normalizeIgnoreList = (patterns) => (patterns ?? []).map(normalizePattern);
27
+ const toPosixPath = (value) => value.replace(/\\/g, "/");
28
+ const compareNames = (left, right) => {
29
+ if (left === right)
30
+ return 0;
31
+ return left < right ? -1 : 1;
32
+ };
33
+ const normalizeCase = (value) => isWindows ? value.toLowerCase() : value;
34
+ const isPathInside = (base, target) => {
35
+ const normalizedBase = normalizeCase(path.resolve(base));
36
+ const normalizedTarget = normalizeCase(path.resolve(target));
37
+ if (normalizedBase === normalizedTarget)
38
+ return true;
39
+ const relativePath = path.relative(normalizedBase, normalizedTarget);
40
+ return (relativePath.length > 0 &&
41
+ !relativePath.startsWith("..") &&
42
+ !path.isAbsolute(relativePath));
43
+ };
44
+ const toExtendedPath = (value) => {
45
+ if (!isWindows)
46
+ return value;
47
+ if (!path.isAbsolute(value))
48
+ return value;
49
+ if (value.startsWith(EXTENDED_PATH_PREFIX))
50
+ return value;
51
+ if (value.length < 260)
52
+ return value;
53
+ if (value.startsWith("\\\\")) {
54
+ return `${EXTENDED_PATH_PREFIX}UNC\\${value.slice(2)}`;
55
+ }
56
+ return `${EXTENDED_PATH_PREFIX}${value}`;
57
+ };
58
+ const reportError = (err, targetPath, onError) => {
59
+ if (!onError)
60
+ return;
61
+ const error = err;
62
+ if (error?.code === "ENOENT")
63
+ return;
64
+ onError(error, targetPath);
65
+ };
66
+ const loadGitignore = async (dirPath, dirRel, onError) => {
67
+ const gitignorePath = path.join(dirPath, ".gitignore");
68
+ try {
69
+ let content = await fs.readFile(toExtendedPath(gitignorePath), "utf8");
70
+ if (content.startsWith("\uFEFF")) {
71
+ content = content.slice(1);
72
+ }
73
+ if (content.trim().length === 0)
74
+ return null;
75
+ const matcher = ignoreFactory().add(content);
76
+ return { baseRel: dirRel, matcher };
77
+ }
78
+ catch (err) {
79
+ const error = err;
80
+ if (error?.code === "ENOENT")
81
+ return null;
82
+ reportError(err, gitignorePath, onError);
83
+ return null;
84
+ }
85
+ };
86
+ const createMatcher = (patterns, baseRel) => {
87
+ if (patterns.length === 0)
88
+ return null;
89
+ const matcher = ignoreFactory().add(patterns);
90
+ return { baseRel, matcher };
91
+ };
92
+ const toMatchPath = (relativePath, isDir) => {
93
+ if (!relativePath)
94
+ return relativePath;
95
+ if (!isDir)
96
+ return relativePath;
97
+ return relativePath.endsWith("/") ? relativePath : `${relativePath}/`;
98
+ };
99
+ const relativeToBase = (relPosix, baseRel) => {
100
+ if (baseRel.length === 0)
101
+ return relPosix;
102
+ if (relPosix === baseRel)
103
+ return "";
104
+ const prefix = `${baseRel}/`;
105
+ if (!relPosix.startsWith(prefix))
106
+ return null;
107
+ return relPosix.slice(prefix.length);
108
+ };
109
+ const isIgnored = (relPosix, isDir, stack, overrideMatcher) => {
110
+ if (relPosix.length === 0)
111
+ return false;
112
+ let ignored = false;
113
+ for (const { baseRel, matcher } of stack) {
114
+ const relToBase = relativeToBase(relPosix, baseRel);
115
+ if (relToBase === null)
116
+ continue;
117
+ const result = matcher.test(toMatchPath(relToBase, isDir));
118
+ if (result.ignored)
119
+ ignored = true;
120
+ if (result.unignored)
121
+ ignored = false;
122
+ }
123
+ if (overrideMatcher) {
124
+ const relToBase = relativeToBase(relPosix, overrideMatcher.baseRel);
125
+ if (relToBase !== null) {
126
+ const result = overrideMatcher.matcher.test(toMatchPath(relToBase, isDir));
127
+ if (result.ignored)
128
+ ignored = true;
129
+ if (result.unignored)
130
+ ignored = false;
131
+ }
132
+ }
133
+ return ignored;
134
+ };
135
+ const readDirEntries = async (dirPath, onError) => {
136
+ let dir = null;
137
+ try {
138
+ dir = await fs.opendir(toExtendedPath(dirPath));
139
+ }
140
+ catch (err) {
141
+ reportError(err, dirPath, onError);
142
+ return [];
143
+ }
144
+ const entries = [];
145
+ try {
146
+ for await (const entry of dir) {
147
+ entries.push(entry);
148
+ }
149
+ }
150
+ catch (err) {
151
+ reportError(err, dirPath, onError);
152
+ }
153
+ finally {
154
+ try {
155
+ await dir.close();
156
+ }
157
+ catch {
158
+ // ignore close errors
159
+ }
160
+ }
161
+ entries.sort((left, right) => compareNames(left.name, right.name));
162
+ return entries;
163
+ };
164
+ const safeStat = async (targetPath, onError) => {
165
+ try {
166
+ return await fs.stat(toExtendedPath(targetPath));
167
+ }
168
+ catch (err) {
169
+ reportError(err, targetPath, onError);
170
+ return null;
171
+ }
172
+ };
173
+ const safeRealpath = async (targetPath, onError) => {
174
+ try {
175
+ return await fs.realpath(toExtendedPath(targetPath));
176
+ }
177
+ catch (err) {
178
+ reportError(err, targetPath, onError);
179
+ return null;
180
+ }
181
+ };
182
+ export async function* walkFiles(options) {
183
+ const cwd = options.cwd ?? process.cwd();
184
+ const root = path.resolve(cwd, options.root);
185
+ const pathStyle = normalizePathStyle(options.pathStyle);
186
+ const defaultIgnores = normalizeIgnoreList(options.defaultIgnores ?? DEFAULT_IGNORES);
187
+ const customIgnores = normalizeIgnoreList(options.ignoreGlobs);
188
+ const useGitignore = options.useGitignore ?? true;
189
+ const maxDepth = options.maxDepth ?? Number.POSITIVE_INFINITY;
190
+ const symlinkPolicy = options.symlinkPolicy ?? "skip";
191
+ const onError = options.onError;
192
+ const baseMatcher = createMatcher(defaultIgnores, "");
193
+ const overrideMatcher = createMatcher(customIgnores, "");
194
+ const rootIgnoreStack = baseMatcher ? [baseMatcher] : [];
195
+ const seenRealPaths = new Set();
196
+ let realRoot = null;
197
+ if (symlinkPolicy === "follow-all") {
198
+ realRoot = await safeRealpath(root, onError);
199
+ }
200
+ const stack = [
201
+ {
202
+ type: "enter",
203
+ dirPath: root,
204
+ dirRel: "",
205
+ depth: 0,
206
+ ignoreStack: rootIgnoreStack
207
+ }
208
+ ];
209
+ while (stack.length > 0) {
210
+ const frame = stack.pop();
211
+ if (!frame)
212
+ continue;
213
+ if (frame.type === "enter") {
214
+ if (frame.depth > maxDepth)
215
+ continue;
216
+ if (symlinkPolicy === "follow-all") {
217
+ const dirRealPath = frame.depth === 0 && realRoot
218
+ ? realRoot
219
+ : await safeRealpath(frame.dirPath, onError);
220
+ if (dirRealPath) {
221
+ if (realRoot && !isPathInside(realRoot, dirRealPath))
222
+ continue;
223
+ if (seenRealPaths.has(dirRealPath))
224
+ continue;
225
+ seenRealPaths.add(dirRealPath);
226
+ }
227
+ }
228
+ let ignoreStack = frame.ignoreStack;
229
+ if (useGitignore) {
230
+ const gitignoreMatcher = await loadGitignore(frame.dirPath, frame.dirRel, onError);
231
+ if (gitignoreMatcher) {
232
+ ignoreStack = ignoreStack.concat(gitignoreMatcher);
233
+ }
234
+ }
235
+ const entries = await readDirEntries(frame.dirPath, onError);
236
+ stack.push({
237
+ type: "iterate",
238
+ dirPath: frame.dirPath,
239
+ dirRel: frame.dirRel,
240
+ depth: frame.depth,
241
+ ignoreStack,
242
+ entries,
243
+ index: 0
244
+ });
245
+ continue;
246
+ }
247
+ if (frame.index >= frame.entries.length)
248
+ continue;
249
+ const entry = frame.entries[frame.index];
250
+ stack.push({
251
+ ...frame,
252
+ index: frame.index + 1
253
+ });
254
+ const fullPath = path.join(frame.dirPath, entry.name);
255
+ const relPath = path.relative(root, fullPath);
256
+ const relPosix = toPosixPath(relPath);
257
+ const isDir = entry.isDirectory();
258
+ const isFile = entry.isFile();
259
+ const isSymlink = entry.isSymbolicLink();
260
+ if (isDir) {
261
+ if (isIgnored(relPosix, true, frame.ignoreStack, overrideMatcher)) {
262
+ continue;
263
+ }
264
+ if (frame.depth + 1 > maxDepth)
265
+ continue;
266
+ stack.push({
267
+ type: "enter",
268
+ dirPath: fullPath,
269
+ dirRel: relPosix,
270
+ depth: frame.depth + 1,
271
+ ignoreStack: frame.ignoreStack
272
+ });
273
+ continue;
274
+ }
275
+ if (isFile) {
276
+ if (isIgnored(relPosix, false, frame.ignoreStack, overrideMatcher)) {
277
+ continue;
278
+ }
279
+ yield pathStyle === "native" ? relPath : relPosix;
280
+ continue;
281
+ }
282
+ if (isSymlink) {
283
+ if (symlinkPolicy === "skip")
284
+ continue;
285
+ const stats = await safeStat(fullPath, onError);
286
+ if (!stats)
287
+ continue;
288
+ if (stats.isDirectory()) {
289
+ if (symlinkPolicy !== "follow-all")
290
+ continue;
291
+ if (isIgnored(relPosix, true, frame.ignoreStack, overrideMatcher)) {
292
+ continue;
293
+ }
294
+ if (frame.depth + 1 > maxDepth)
295
+ continue;
296
+ stack.push({
297
+ type: "enter",
298
+ dirPath: fullPath,
299
+ dirRel: relPosix,
300
+ depth: frame.depth + 1,
301
+ ignoreStack: frame.ignoreStack
302
+ });
303
+ continue;
304
+ }
305
+ if (stats.isFile()) {
306
+ if (isIgnored(relPosix, false, frame.ignoreStack, overrideMatcher)) {
307
+ continue;
308
+ }
309
+ yield pathStyle === "native" ? relPath : relPosix;
310
+ }
311
+ }
312
+ }
313
+ }
314
+ export const collectFiles = async (options) => {
315
+ const files = [];
316
+ for await (const file of walkFiles(options)) {
317
+ files.push(file);
318
+ }
319
+ return files;
320
+ };
321
+ //# sourceMappingURL=walker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"walker.js","sourceRoot":"","sources":["../src/walker.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,29 @@
1
+ {
2
+ "name": "@repo-map/core",
3
+ "version": "0.1.0",
4
+ "type": "module",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "exports": {
8
+ ".": {
9
+ "types": "./dist/index.d.ts",
10
+ "default": "./dist/index.js"
11
+ }
12
+ },
13
+ "files": [
14
+ "dist"
15
+ ],
16
+ "publishConfig": {
17
+ "access": "public"
18
+ },
19
+ "scripts": {
20
+ "build": "tsc -p tsconfig.json"
21
+ },
22
+ "dependencies": {
23
+ "ignore": "^5.3.2"
24
+ },
25
+ "devDependencies": {
26
+ "@types/node": "^20.12.0",
27
+ "typescript": "^5.4.0"
28
+ }
29
+ }