@codemap-ai/code-index
Advanced tools
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"file-discovery.d.ts","sourceRoot":"","sources":["../src/file-discovery.ts"],"names":[],"mappings":"AAWA,MAAM,MAAM,mBAAmB,GAC3B,QAAQ,GACR,SAAS,GACT,WAAW,GACX,QAAQ,GACR,aAAa,GACb,OAAO,CAAC;AAEZ,eAAO,MAAM,aAAa,aA+BxB,CAAC;AAEH,kDAAkD;AAClD,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGnD;AAED,eAAO,MAAM,eAAe,QAAkB,CAAC;AAC/C,eAAO,MAAM,2BAA2B,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAEvE,CAAC;AAEF,eAAO,MAAM,eAAe,yBAAyB,CAAC;AACtD,eAAO,MAAM,kBAAkB,UAAU,CAAC;AAE1C,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,mBAAmB,CAAC;IACjC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,MAAM,UASxD;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAiFxC;AAED,wBAAsB,qBAAqB,CACzC,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAiGnC"} | ||
| {"version":3,"file":"file-discovery.d.ts","sourceRoot":"","sources":["../src/file-discovery.ts"],"names":[],"mappings":"AAYA,MAAM,MAAM,mBAAmB,GAC3B,QAAQ,GACR,SAAS,GACT,WAAW,GACX,QAAQ,GACR,aAAa,GACb,OAAO,CAAC;AAEZ,eAAO,MAAM,aAAa,aA4BxB,CAAC;AA4CH,kDAAkD;AAClD,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGnD;AAED,eAAO,MAAM,eAAe,QAAkB,CAAC;AAC/C,eAAO,MAAM,2BAA2B,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAEvE,CAAC;AAEF,eAAO,MAAM,eAAe,yBAAyB,CAAC;AACtD,eAAO,MAAM,kBAAkB,UAAU,CAAC;AAE1C,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,mBAAmB,CAAC;IACjC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,MAAM,UASxD;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAiFxC;AAED,wBAAsB,qBAAqB,CACzC,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAkFnC"} |
+51
-26
@@ -13,2 +13,3 @@ "use strict"; | ||
| const node_path_1 = __importDefault(require("node:path")); | ||
| const ignore_1 = __importDefault(require("ignore")); | ||
| const language_utils_js_1 = require("./language-utils.js"); | ||
@@ -21,4 +22,2 @@ exports.IGNORED_NAMES = new Set([ | ||
| ".pnpm-store", | ||
| ".dist", | ||
| "build", | ||
| ".next", | ||
@@ -34,3 +33,2 @@ "coverage", | ||
| "temp", | ||
| "lib", | ||
| ".continue", | ||
@@ -49,2 +47,41 @@ ".github", | ||
| ]); | ||
| // ponytail: removed lib/, dist/, build/ — these are gitignore's domain (lib/ is source in Ruby/Dart/Elixir) | ||
| async function loadGitignoreMatcher(workspacePath) { | ||
| const matcher = (0, ignore_1.default)(); | ||
| try { | ||
| matcher.add(await (0, promises_1.readFile)(node_path_1.default.join(workspacePath, ".gitignore"), "utf8")); | ||
| } | ||
| catch { | ||
| // no root .gitignore | ||
| } | ||
| return matcher; | ||
| } | ||
| async function walkDir(dirPath, workspacePath, gitignoreMatcher, onFile) { | ||
| let entries; | ||
| try { | ||
| entries = await (0, promises_1.readdir)(dirPath, { withFileTypes: true }); | ||
| } | ||
| catch { | ||
| return; | ||
| } | ||
| for (const entry of entries) { | ||
| const abs = node_path_1.default.join(dirPath, entry.name); | ||
| const rel = node_path_1.default.relative(workspacePath, abs).split(node_path_1.default.sep).join("/"); | ||
| const relForMatcher = entry.isDirectory() ? `${rel}/` : rel; | ||
| if (entry.isDirectory()) { | ||
| if (exports.IGNORED_NAMES.has(entry.name)) | ||
| continue; | ||
| if (gitignoreMatcher.ignores(relForMatcher)) | ||
| continue; | ||
| await walkDir(abs, workspacePath, gitignoreMatcher, onFile); | ||
| } | ||
| else if (entry.isFile()) { | ||
| if (exports.IGNORED_NAMES.has(entry.name)) | ||
| continue; | ||
| if (gitignoreMatcher.ignores(relForMatcher)) | ||
| continue; | ||
| await onFile(rel, abs); | ||
| } | ||
| } | ||
| } | ||
| /** Helper to check if a path should be ignored */ | ||
@@ -152,21 +189,7 @@ function isPathIgnored(path) { | ||
| async function collectWorkspaceFiles(workspacePath) { | ||
| const gitignoreMatcher = await loadGitignoreMatcher(workspacePath); | ||
| const candidates = []; | ||
| async function visit(absolutePath) { | ||
| async function onFile(relativePath, absolutePath) { | ||
| const entryStats = await (0, promises_1.lstat)(absolutePath); | ||
| // Skip symlinks | ||
| if (entryStats.isSymbolicLink()) | ||
| return; | ||
| const name = node_path_1.default.basename(absolutePath); | ||
| if (entryStats.isDirectory()) { | ||
| if (exports.IGNORED_NAMES.has(name)) | ||
| return; | ||
| const entries = await (0, promises_1.readdir)(absolutePath, { withFileTypes: true }); | ||
| for (const entry of entries) { | ||
| await visit(node_path_1.default.join(absolutePath, entry.name)); | ||
| } | ||
| return; | ||
| } | ||
| if (!entryStats.isFile()) | ||
| return; | ||
| const relativePath = normalizeRepositoryFilePath(node_path_1.default.relative(workspacePath, absolutePath).split(node_path_1.default.sep).join("/")); | ||
| const extension = (0, language_utils_js_1.extensionFromFilename)(name); | ||
@@ -178,10 +201,12 @@ const language = (0, language_utils_js_1.inferLanguage)(extension); | ||
| const isText = !isBinary; | ||
| const maxParseBytes = (language ? exports.MAX_PARSE_BYTES_BY_LANGUAGE[language] : undefined) ?? exports.MAX_PARSE_BYTES; | ||
| const maxParseBytes = (language ? exports.MAX_PARSE_BYTES_BY_LANGUAGE[language] : undefined) ?? | ||
| exports.MAX_PARSE_BYTES; | ||
| const isParseable = Boolean(language) && isText && entryStats.size <= maxParseBytes; | ||
| const dirPath = node_path_1.default.posix.dirname(relativePath) === "." | ||
| const normalizedPath = normalizeRepositoryFilePath(relativePath); | ||
| const dirPath = node_path_1.default.posix.dirname(normalizedPath) === "." | ||
| ? "" | ||
| : node_path_1.default.posix.dirname(relativePath); | ||
| : node_path_1.default.posix.dirname(normalizedPath); | ||
| if (!isParseable) { | ||
| candidates.push({ | ||
| path: relativePath, | ||
| path: normalizedPath, | ||
| absolutePath, | ||
@@ -215,3 +240,3 @@ dirPath, | ||
| candidates.push({ | ||
| path: relativePath, | ||
| path: normalizedPath, | ||
| absolutePath, | ||
@@ -238,4 +263,4 @@ dirPath, | ||
| } | ||
| await visit(workspacePath); | ||
| return candidates.sort((left, right) => left.path.localeCompare(right.path)); | ||
| await walkDir(workspacePath, workspacePath, gitignoreMatcher, onFile); | ||
| return candidates.sort((l, r) => l.path.localeCompare(r.path)); | ||
| } |
+1
-1
| export { collectSingleFile, collectWorkspaceFiles, IGNORED_NAMES, isPathIgnored, MAX_PARSE_BYTES, MAX_PARSE_BYTES_BY_LANGUAGE, normalizeRepositoryFilePath, PARSE_TOOL_NAME, PARSE_TOOL_VERSION, type WorkspaceFileCandidate, } from "./file-discovery.js"; | ||
| export { BINARY_SAMPLE_BYTES, SOURCE_LANGUAGE_BY_EXTENSION, MIME_TYPE_BY_EXTENSION, buildFileSha256, extensionFromFilename, inferLanguage, inferMimeType, isBinaryBuffer, normalizeExtension, readSampleBuffer, } from "./language-utils.js"; | ||
| export { loadTypeScriptResolverConfigs, normalizeWorkspaceRelativePath, type TypeScriptPathAliasPattern, type TypeScriptResolverConfig, } from "./ts-resolver.js"; | ||
| export { loadTypeScriptResolverConfigs, loadWorkspacePackageMap, normalizeWorkspaceRelativePath, type TypeScriptPathAliasPattern, type TypeScriptResolverConfig, type WorkspacePackageMap, } from "./ts-resolver.js"; | ||
| export { parseWorkspaceFileSemantics, type ParsedWorkspaceSemantics, } from "./parsers/index.js"; | ||
@@ -5,0 +5,0 @@ export { JS_TS_EXTENSIONS, DART_EXTENSIONS, PHP_EXTENSIONS, PYTHON_EXTENSIONS, JAVA_EXTENSIONS, KOTLIN_EXTENSIONS, } from "./parsers/shared.js"; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,aAAa,EACb,aAAa,EACb,eAAe,EACf,2BAA2B,EAC3B,2BAA2B,EAC3B,eAAe,EACf,kBAAkB,EAClB,KAAK,sBAAsB,GAC5B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,mBAAmB,EACnB,4BAA4B,EAC5B,sBAAsB,EACtB,eAAe,EACf,qBAAqB,EACrB,aAAa,EACb,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,6BAA6B,EAC7B,8BAA8B,EAC9B,KAAK,0BAA0B,EAC/B,KAAK,wBAAwB,GAC9B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,2BAA2B,EAC3B,KAAK,wBAAwB,GAC9B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,eAAe,EACf,iBAAiB,EACjB,yBAAyB,EACzB,iBAAiB,EACjB,qBAAqB,EACrB,uBAAuB,EACvB,iBAAiB,EACjB,cAAc,EACd,mBAAmB,EACnB,cAAc,EACd,wBAAwB,EACxB,sBAAsB,EACtB,cAAc,EACd,0BAA0B,GAC3B,MAAM,oBAAoB,CAAC"} | ||
| {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,aAAa,EACb,aAAa,EACb,eAAe,EACf,2BAA2B,EAC3B,2BAA2B,EAC3B,eAAe,EACf,kBAAkB,EAClB,KAAK,sBAAsB,GAC5B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,mBAAmB,EACnB,4BAA4B,EAC5B,sBAAsB,EACtB,eAAe,EACf,qBAAqB,EACrB,aAAa,EACb,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,6BAA6B,EAC7B,uBAAuB,EACvB,8BAA8B,EAC9B,KAAK,0BAA0B,EAC/B,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,GACzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,2BAA2B,EAC3B,KAAK,wBAAwB,GAC9B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,eAAe,EACf,iBAAiB,EACjB,yBAAyB,EACzB,iBAAiB,EACjB,qBAAqB,EACrB,uBAAuB,EACvB,iBAAiB,EACjB,cAAc,EACd,mBAAmB,EACnB,cAAc,EACd,wBAAwB,EACxB,sBAAsB,EACtB,cAAc,EACd,0BAA0B,GAC3B,MAAM,oBAAoB,CAAC"} |
+2
-1
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.KOTLIN_EXTENSIONS = exports.JAVA_EXTENSIONS = exports.PYTHON_EXTENSIONS = exports.PHP_EXTENSIONS = exports.DART_EXTENSIONS = exports.JS_TS_EXTENSIONS = exports.parseWorkspaceFileSemantics = exports.normalizeWorkspaceRelativePath = exports.loadTypeScriptResolverConfigs = exports.readSampleBuffer = exports.normalizeExtension = exports.isBinaryBuffer = exports.inferMimeType = exports.inferLanguage = exports.extensionFromFilename = exports.buildFileSha256 = exports.MIME_TYPE_BY_EXTENSION = exports.SOURCE_LANGUAGE_BY_EXTENSION = exports.BINARY_SAMPLE_BYTES = exports.PARSE_TOOL_VERSION = exports.PARSE_TOOL_NAME = exports.normalizeRepositoryFilePath = exports.MAX_PARSE_BYTES_BY_LANGUAGE = exports.MAX_PARSE_BYTES = exports.isPathIgnored = exports.IGNORED_NAMES = exports.collectWorkspaceFiles = exports.collectSingleFile = void 0; | ||
| exports.KOTLIN_EXTENSIONS = exports.JAVA_EXTENSIONS = exports.PYTHON_EXTENSIONS = exports.PHP_EXTENSIONS = exports.DART_EXTENSIONS = exports.JS_TS_EXTENSIONS = exports.parseWorkspaceFileSemantics = exports.normalizeWorkspaceRelativePath = exports.loadWorkspacePackageMap = exports.loadTypeScriptResolverConfigs = exports.readSampleBuffer = exports.normalizeExtension = exports.isBinaryBuffer = exports.inferMimeType = exports.inferLanguage = exports.extensionFromFilename = exports.buildFileSha256 = exports.MIME_TYPE_BY_EXTENSION = exports.SOURCE_LANGUAGE_BY_EXTENSION = exports.BINARY_SAMPLE_BYTES = exports.PARSE_TOOL_VERSION = exports.PARSE_TOOL_NAME = exports.normalizeRepositoryFilePath = exports.MAX_PARSE_BYTES_BY_LANGUAGE = exports.MAX_PARSE_BYTES = exports.isPathIgnored = exports.IGNORED_NAMES = exports.collectWorkspaceFiles = exports.collectSingleFile = void 0; | ||
| var file_discovery_js_1 = require("./file-discovery.js"); | ||
@@ -27,2 +27,3 @@ Object.defineProperty(exports, "collectSingleFile", { enumerable: true, get: function () { return file_discovery_js_1.collectSingleFile; } }); | ||
| Object.defineProperty(exports, "loadTypeScriptResolverConfigs", { enumerable: true, get: function () { return ts_resolver_js_1.loadTypeScriptResolverConfigs; } }); | ||
| Object.defineProperty(exports, "loadWorkspacePackageMap", { enumerable: true, get: function () { return ts_resolver_js_1.loadWorkspacePackageMap; } }); | ||
| Object.defineProperty(exports, "normalizeWorkspaceRelativePath", { enumerable: true, get: function () { return ts_resolver_js_1.normalizeWorkspaceRelativePath; } }); | ||
@@ -29,0 +30,0 @@ var index_js_1 = require("./parsers/index.js"); |
| import type { WorkspaceFileCandidate } from "../file-discovery.js"; | ||
| import type { TypeScriptResolverConfig } from "../ts-resolver.js"; | ||
| import type { TypeScriptResolverConfig, WorkspacePackageMap } from "../ts-resolver.js"; | ||
| export type { ParsedWorkspaceSemantics } from "./types.js"; | ||
@@ -10,3 +10,4 @@ export declare function parseWorkspaceFileSemantics(input: { | ||
| resolverConfigs?: TypeScriptResolverConfig[]; | ||
| workspacePackageMap?: WorkspacePackageMap; | ||
| }): Promise<import("./types.js").ParsedWorkspaceSemantics>; | ||
| //# sourceMappingURL=index.d.ts.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/parsers/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AASlE,YAAY,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAE3D,wBAAsB,2BAA2B,CAAC,KAAK,EAAE;IACvD,IAAI,EAAE,sBAAsB,CAAC;IAC7B,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,wBAAwB,EAAE,CAAC;CAC9C,0DA4BA"} | ||
| {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/parsers/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,KAAK,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AASvF,YAAY,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAE3D,wBAAsB,2BAA2B,CAAC,KAAK,EAAE;IACvD,IAAI,EAAE,sBAAsB,CAAC;IAC7B,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,wBAAwB,EAAE,CAAC;IAC7C,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;CAC3C,0DA6BA"} |
@@ -18,3 +18,3 @@ "use strict"; | ||
| case "JavaScript": | ||
| return (0, typescript_js_1.parseTypeScriptOrJavaScriptFile)(input.file, input.filePathSet, input.projectImportId, input.workspacePath, input.resolverConfigs ?? []); | ||
| return (0, typescript_js_1.parseTypeScriptOrJavaScriptFile)(input.file, input.filePathSet, input.projectImportId, input.workspacePath, input.resolverConfigs ?? [], input.workspacePackageMap ?? {}); | ||
| case "Dart": | ||
@@ -21,0 +21,0 @@ return (0, dart_js_1.parseDartFile)(input.file, input.filePathSet, input.projectImportId); |
@@ -1,2 +0,2 @@ | ||
| import type { TypeScriptResolverConfig } from "../ts-resolver.js"; | ||
| import type { TypeScriptResolverConfig, WorkspacePackageMap } from "../ts-resolver.js"; | ||
| import type { ParsedExternalSymbolDraft } from "./types.js"; | ||
@@ -26,2 +26,13 @@ export declare const JS_TS_EXTENSIONS: string[]; | ||
| } | null; | ||
| /** | ||
| * Resolve workspace package imports (e.g. `@codemap-ai/core/lib/foo`) | ||
| * to workspace-relative file paths (e.g. `packages/core/src/lib/foo.ts`). | ||
| */ | ||
| export declare function resolveWorkspacePackageTargetPath(workspacePath: string, moduleSpecifier: string, language: string, filePathSet: Set<string>, workspacePackageMap: WorkspacePackageMap): { | ||
| resolvedPath: string; | ||
| attemptedPath: string; | ||
| } | { | ||
| resolvedPath: null; | ||
| attemptedPath: string; | ||
| } | null; | ||
| export declare function maskCommentsAndTemplateLiterals(content: string, options?: { | ||
@@ -28,0 +39,0 @@ hashLineComments?: boolean; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/parsers/shared.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAE5D,eAAO,MAAM,gBAAgB,UAA6B,CAAC;AAC3D,eAAO,MAAM,eAAe,UAAW,CAAC;AACxC,eAAO,MAAM,cAAc,UAAU,CAAC;AACtC,eAAO,MAAM,iBAAiB,UAAS,CAAC;AACxC,eAAO,MAAM,eAAe,UAAW,CAAC;AACxC,eAAO,MAAM,iBAAiB,UAAgB,CAAC;AAE/C,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,UAEtF;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,UAErG;AAED,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,eAAe,EAAE,MAAM,EACvB,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,UAGZ;AAED,wBAAgB,yBAAyB,CACvC,cAAc,EAAE,MAAM,EACtB,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC;;;EA0BzB;AAED,wBAAgB,sBAAsB,CACpC,cAAc,EAAE,MAAM,EACtB,eAAe,EAAE,wBAAwB,EAAE,mCAY5C;AAED,wBAAgB,8BAA8B,CAC5C,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,MAAM,EACtB,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,EACxB,eAAe,EAAE,wBAAwB,EAAE;;;;;;;;SAoD5C;AAED,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;IAAE,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAAO,UAyD7C;AAED,wBAAgB,yBAAyB,CACvC,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,MAAM,EAChB,eAAe,EAAE,MAAM,GACtB,yBAAyB,CAa3B"} | ||
| {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/parsers/shared.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACvF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAE5D,eAAO,MAAM,gBAAgB,UAA6B,CAAC;AAC3D,eAAO,MAAM,eAAe,UAAW,CAAC;AACxC,eAAO,MAAM,cAAc,UAAU,CAAC;AACtC,eAAO,MAAM,iBAAiB,UAAS,CAAC;AACxC,eAAO,MAAM,eAAe,UAAW,CAAC;AACxC,eAAO,MAAM,iBAAiB,UAAgB,CAAC;AAE/C,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,UAEtF;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,UAErG;AAED,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,eAAe,EAAE,MAAM,EACvB,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,UAGZ;AAED,wBAAgB,yBAAyB,CACvC,cAAc,EAAE,MAAM,EACtB,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC;;;EA0BzB;AAED,wBAAgB,sBAAsB,CACpC,cAAc,EAAE,MAAM,EACtB,eAAe,EAAE,wBAAwB,EAAE,mCAY5C;AAED,wBAAgB,8BAA8B,CAC5C,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,MAAM,EACtB,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,EACxB,eAAe,EAAE,wBAAwB,EAAE;;;;;;;;SAoD5C;AAID;;;GAGG;AACH,wBAAgB,iCAAiC,CAC/C,aAAa,EAAE,MAAM,EACrB,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,EACxB,mBAAmB,EAAE,mBAAmB;;;;;;SA+CzC;AAED,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;IAAE,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAAO,UAyD7C;AAED,wBAAgB,yBAAyB,CACvC,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,MAAM,EAChB,eAAe,EAAE,MAAM,GACtB,yBAAyB,CAa3B"} |
@@ -13,2 +13,3 @@ "use strict"; | ||
| exports.resolveTsconfigAliasTargetPath = resolveTsconfigAliasTargetPath; | ||
| exports.resolveWorkspacePackageTargetPath = resolveWorkspacePackageTargetPath; | ||
| exports.maskCommentsAndTemplateLiterals = maskCommentsAndTemplateLiterals; | ||
@@ -107,2 +108,51 @@ exports.createExternalSymbolDraft = createExternalSymbolDraft; | ||
| } | ||
| const WORKSPACE_PACKAGE_PREFIX_RE = /^@[^/]+\/[^/]+/; | ||
| /** | ||
| * Resolve workspace package imports (e.g. `@codemap-ai/core/lib/foo`) | ||
| * to workspace-relative file paths (e.g. `packages/core/src/lib/foo.ts`). | ||
| */ | ||
| function resolveWorkspacePackageTargetPath(workspacePath, moduleSpecifier, language, filePathSet, workspacePackageMap) { | ||
| if (!WORKSPACE_PACKAGE_PREFIX_RE.test(moduleSpecifier)) | ||
| return null; | ||
| // e.g. moduleSpecifier = "@codemap-ai/core/lib/foo" | ||
| // parts[0] = "@codemap-ai/core", parts[1] = "lib/foo" | ||
| const slashIdx = moduleSpecifier.indexOf("/"); | ||
| const secondSlash = moduleSpecifier.indexOf("/", slashIdx + 1); | ||
| let packageName; | ||
| let subpath; | ||
| if (secondSlash >= 0) { | ||
| // e.g. @scope/pkg/sub/path — packageName is @scope/pkg | ||
| packageName = moduleSpecifier.slice(0, secondSlash); | ||
| subpath = moduleSpecifier.slice(secondSlash + 1); | ||
| } | ||
| else { | ||
| // e.g. @scope/pkg — no subpath, resolve to package entry | ||
| packageName = moduleSpecifier; | ||
| subpath = ""; | ||
| } | ||
| const sourceDir = workspacePackageMap[packageName]; | ||
| if (!sourceDir) | ||
| return null; | ||
| const extensions = language === "TypeScript" || language === "JavaScript" ? exports.JS_TS_EXTENSIONS | ||
| : language === "Dart" ? exports.DART_EXTENSIONS | ||
| : language === "Python" ? exports.PYTHON_EXTENSIONS | ||
| : language === "Java" ? exports.JAVA_EXTENSIONS | ||
| : language === "Kotlin" ? exports.KOTLIN_EXTENSIONS | ||
| : exports.PHP_EXTENSIONS; | ||
| // base path e.g. "packages/core/src/lib/foo" or "packages/core/src" | ||
| const basePath = subpath ? `${sourceDir}/${subpath}` : sourceDir; | ||
| const candidates = [basePath]; | ||
| if (!node_path_1.default.posix.extname(basePath)) { | ||
| for (const ext of extensions) { | ||
| candidates.push(`${basePath}.${ext}`, `${basePath}/index.${ext}`); | ||
| } | ||
| } | ||
| else if (node_path_1.default.posix.extname(basePath) === ".js") { | ||
| candidates.push(basePath.replace(/\.js$/, ".ts"), basePath.replace(/\.js$/, ".tsx")); | ||
| } | ||
| const resolvedPath = candidates.find((c) => filePathSet.has(c)); | ||
| if (resolvedPath) | ||
| return { resolvedPath, attemptedPath: basePath }; | ||
| return { resolvedPath: null, attemptedPath: basePath }; | ||
| } | ||
| function maskCommentsAndTemplateLiterals(content, options = {}) { | ||
@@ -109,0 +159,0 @@ const chars = content.split(""); |
@@ -5,3 +5,3 @@ export type RepoFileParseStatus = "parsed" | "skipped" | "too_large" | "binary" | "unsupported" | "error"; | ||
| export type RepoImportKind = "import" | "require" | "dynamic_import" | "export_from" | "include" | "use"; | ||
| export type RepoImportResolutionKind = "relative_path" | "tsconfig_alias" | "package" | "unresolved" | "builtin"; | ||
| export type RepoImportResolutionKind = "relative_path" | "tsconfig_alias" | "workspace_package" | "package" | "unresolved" | "builtin"; | ||
| export type RepoExportKind = "named" | "default" | "wildcard" | "re_export"; | ||
@@ -8,0 +8,0 @@ export type RepoParseIssueSeverity = "info" | "warning" | "error"; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/parsers/types.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/parsers/types.ts"],"names":[],"mappings":"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"} |
| import type { WorkspaceFileCandidate } from "../file-discovery.js"; | ||
| import type { TypeScriptResolverConfig } from "../ts-resolver.js"; | ||
| import type { TypeScriptResolverConfig, WorkspacePackageMap } from "../ts-resolver.js"; | ||
| import type { ParsedWorkspaceSemantics } from "./types.js"; | ||
| export declare function parseTypeScriptOrJavaScriptFile(file: WorkspaceFileCandidate, filePathSet: Set<string>, projectImportId: string, workspacePath: string, resolverConfigs: TypeScriptResolverConfig[]): ParsedWorkspaceSemantics; | ||
| export declare function parseTypeScriptOrJavaScriptFile(file: WorkspaceFileCandidate, filePathSet: Set<string>, projectImportId: string, workspacePath: string, resolverConfigs: TypeScriptResolverConfig[], workspacePackageMap?: WorkspacePackageMap): ParsedWorkspaceSemantics; | ||
| //# sourceMappingURL=typescript.d.ts.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"typescript.d.ts","sourceRoot":"","sources":["../../src/parsers/typescript.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AASnE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,KAAK,EAKV,wBAAwB,EACzB,MAAM,YAAY,CAAC;AAumBpB,wBAAgB,+BAA+B,CAC7C,IAAI,EAAE,sBAAsB,EAC5B,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,EACxB,eAAe,EAAE,MAAM,EACvB,aAAa,EAAE,MAAM,EACrB,eAAe,EAAE,wBAAwB,EAAE,GAC1C,wBAAwB,CA+B1B"} | ||
| {"version":3,"file":"typescript.d.ts","sourceRoot":"","sources":["../../src/parsers/typescript.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,KAAK,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAUvF,OAAO,KAAK,EAKV,wBAAwB,EACzB,MAAM,YAAY,CAAC;AA4mBpB,wBAAgB,+BAA+B,CAC7C,IAAI,EAAE,sBAAsB,EAC5B,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,EACxB,eAAe,EAAE,MAAM,EACvB,aAAa,EAAE,MAAM,EACrB,eAAe,EAAE,wBAAwB,EAAE,EAC3C,mBAAmB,GAAE,mBAAwB,GAC5C,wBAAwB,CA+B1B"} |
@@ -19,3 +19,3 @@ "use strict"; | ||
| // ─── Import/export extraction ───────────────────────────────────────────────── | ||
| function extractImportsWithAst(file, sourceFile, filePathSet, projectImportId, workspacePath, resolverConfigs) { | ||
| function extractImportsWithAst(file, sourceFile, filePathSet, projectImportId, workspacePath, resolverConfigs, workspacePackageMap) { | ||
| const imports = []; | ||
@@ -41,5 +41,8 @@ const exports = []; | ||
| : null; | ||
| const workspaceResolution = !isRelative && !aliasResolution?.matched | ||
| ? (0, shared_js_1.resolveWorkspacePackageTargetPath)(workspacePath, moduleSpecifier, file.language, filePathSet, workspacePackageMap) | ||
| : null; | ||
| const resolution = isRelative | ||
| ? (0, shared_js_1.resolveRelativeTargetPath)(file.path, moduleSpecifier, file.language, filePathSet) | ||
| : (aliasResolution ?? { resolvedPath: null, attemptedPath: null }); | ||
| : (aliasResolution ?? workspaceResolution ?? { resolvedPath: null, attemptedPath: null }); | ||
| const importLocalKey = (0, shared_js_1.buildImportLocalKey)(file.path, importKind, moduleSpecifier, line, col); | ||
@@ -59,9 +62,10 @@ imports.push({ | ||
| : aliasResolution?.resolvedPath ? "tsconfig_alias" | ||
| : aliasResolution?.matched ? "unresolved" : "package", | ||
| : workspaceResolution?.resolvedPath ? "workspace_package" | ||
| : aliasResolution?.matched || workspaceResolution ? "unresolved" : "package", | ||
| targetPathText: resolution.resolvedPath ?? resolution.attemptedPath, | ||
| targetExternalSymbolKey: isRelative || aliasResolution?.matched | ||
| targetExternalSymbolKey: isRelative || aliasResolution?.matched || workspaceResolution | ||
| ? null | ||
| : `${file.language?.toLowerCase()}:${moduleSpecifier}`, | ||
| }); | ||
| if (!isRelative && !aliasResolution?.matched) { | ||
| if (!isRelative && !aliasResolution?.matched && !workspaceResolution) { | ||
| externalSymbols.push((0, shared_js_1.createExternalSymbolDraft)(projectImportId, file.language, moduleSpecifier)); | ||
@@ -527,5 +531,5 @@ } | ||
| // ─── Entry point ────────────────────────────────────────────────────────────── | ||
| function parseTypeScriptOrJavaScriptFile(file, filePathSet, projectImportId, workspacePath, resolverConfigs) { | ||
| function parseTypeScriptOrJavaScriptFile(file, filePathSet, projectImportId, workspacePath, resolverConfigs, workspacePackageMap = {}) { | ||
| const sourceFile = createSourceFile(file); | ||
| const { imports, exports, issues, externalSymbols } = extractImportsWithAst(file, sourceFile, filePathSet, projectImportId, workspacePath, resolverConfigs); | ||
| const { imports, exports, issues, externalSymbols } = extractImportsWithAst(file, sourceFile, filePathSet, projectImportId, workspacePath, resolverConfigs, workspacePackageMap); | ||
| const { symbols: astSymbols, relationships } = extractSymbolsWithAst(file, sourceFile); | ||
@@ -532,0 +536,0 @@ const calls = extractCallsWithAst(file, sourceFile); |
@@ -17,2 +17,16 @@ export interface TypeScriptPathAliasPattern { | ||
| export declare function loadTypeScriptResolverConfigs(workspacePath: string): Promise<TypeScriptResolverConfig[]>; | ||
| /** | ||
| * Workspace package name → source directory mapping. | ||
| * e.g. { "@codemap-ai/core": "packages/core/src" } | ||
| */ | ||
| export interface WorkspacePackageMap { | ||
| [packageName: string]: string; | ||
| } | ||
| /** | ||
| * Scan workspace for package.json files and build a map of | ||
| * package name → workspace-relative source directory. | ||
| * Checks for src/ dir first, falls back to package root. | ||
| * ponytail: no exports field parsing — add when subpath imports needed | ||
| */ | ||
| export declare function loadWorkspacePackageMap(workspacePath: string): Promise<WorkspacePackageMap>; | ||
| //# sourceMappingURL=ts-resolver.d.ts.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"ts-resolver.d.ts","sourceRoot":"","sources":["../src/ts-resolver.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,wBAAwB;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,0BAA0B,EAAE,CAAC;CAC3C;AAOD,wBAAgB,8BAA8B,CAC5C,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,UAKnB;AA2CD,wBAAsB,6BAA6B,CACjD,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,wBAAwB,EAAE,CAAC,CAwErC"} | ||
| {"version":3,"file":"ts-resolver.d.ts","sourceRoot":"","sources":["../src/ts-resolver.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,wBAAwB;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,0BAA0B,EAAE,CAAC;CAC3C;AAOD,wBAAgB,8BAA8B,CAC5C,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,UAKnB;AA2CD,wBAAsB,6BAA6B,CACjD,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,wBAAwB,EAAE,CAAC,CAwErC;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC;CAC/B;AAED;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAC3C,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,mBAAmB,CAAC,CA6D9B"} |
+72
-0
@@ -8,2 +8,3 @@ "use strict"; | ||
| exports.loadTypeScriptResolverConfigs = loadTypeScriptResolverConfigs; | ||
| exports.loadWorkspacePackageMap = loadWorkspacePackageMap; | ||
| const promises_1 = require("node:fs/promises"); | ||
@@ -112,1 +113,72 @@ const node_path_1 = __importDefault(require("node:path")); | ||
| } | ||
| /** | ||
| * Scan workspace for package.json files and build a map of | ||
| * package name → workspace-relative source directory. | ||
| * Checks for src/ dir first, falls back to package root. | ||
| * ponytail: no exports field parsing — add when subpath imports needed | ||
| */ | ||
| async function loadWorkspacePackageMap(workspacePath) { | ||
| const map = {}; | ||
| const pkgDirs = []; | ||
| // Read pnpm-workspace.yaml or package.json workspaces | ||
| try { | ||
| const rootPkg = JSON.parse(await (0, promises_1.readFile)(node_path_1.default.join(workspacePath, "package.json"), "utf8")); | ||
| if (Array.isArray(rootPkg.workspaces)) { | ||
| pkgDirs.push(...rootPkg.workspaces); | ||
| } | ||
| } | ||
| catch { /* no root package.json */ } | ||
| if (pkgDirs.length === 0) { | ||
| try { | ||
| const yamlContent = await (0, promises_1.readFile)(node_path_1.default.join(workspacePath, "pnpm-workspace.yaml"), "utf8"); | ||
| // Simple YAML array parse — covers "- 'packages/*'" pattern | ||
| for (const line of yamlContent.split("\n")) { | ||
| const m = line.match(/^\s*-\s+['"]?([^'"]+)['"]?\s*$/); | ||
| if (m) | ||
| pkgDirs.push(m[1]); | ||
| } | ||
| } | ||
| catch { /* no pnpm-workspace.yaml */ } | ||
| } | ||
| if (pkgDirs.length === 0) | ||
| return map; | ||
| // Expand glob patterns like "packages/*" | ||
| const expandedDirs = []; | ||
| for (const pattern of pkgDirs) { | ||
| if (pattern.endsWith("/*")) { | ||
| const parentDir = node_path_1.default.join(workspacePath, pattern.slice(0, -2)); | ||
| try { | ||
| const entries = await (0, promises_1.readdir)(parentDir, { withFileTypes: true }); | ||
| for (const entry of entries) { | ||
| if (entry.isDirectory() && !entry.name.startsWith(".")) { | ||
| expandedDirs.push(node_path_1.default.join(parentDir, entry.name)); | ||
| } | ||
| } | ||
| } | ||
| catch { /* dir doesn't exist */ } | ||
| } | ||
| else { | ||
| expandedDirs.push(node_path_1.default.join(workspacePath, pattern)); | ||
| } | ||
| } | ||
| for (const dir of expandedDirs) { | ||
| try { | ||
| const pkg = JSON.parse(await (0, promises_1.readFile)(node_path_1.default.join(dir, "package.json"), "utf8")); | ||
| if (!pkg.name) | ||
| continue; | ||
| const relDir = node_path_1.default.relative(workspacePath, dir).split(node_path_1.default.sep).join("/"); | ||
| // Prefer src/ subdir if it exists | ||
| try { | ||
| const srcStat = await (0, promises_1.lstat)(node_path_1.default.join(dir, "src")); | ||
| if (srcStat.isDirectory()) { | ||
| map[pkg.name] = relDir + "/src"; | ||
| continue; | ||
| } | ||
| } | ||
| catch { /* no src/ dir */ } | ||
| map[pkg.name] = relDir; | ||
| } | ||
| catch { /* no package.json in this dir */ } | ||
| } | ||
| return map; | ||
| } |
+2
-1
| { | ||
| "name": "@codemap-ai/code-index", | ||
| "version": "3.1.2", | ||
| "version": "3.2.0", | ||
| "main": "dist/index.js", | ||
@@ -10,2 +10,3 @@ "types": "dist/index.d.ts", | ||
| "dependencies": { | ||
| "ignore": "^7.0.5", | ||
| "tree-sitter-python": "^0.25.0", | ||
@@ -12,0 +13,0 @@ "tree-sitter-wasms": "^0.1.13", |
149079
6.29%3012
6.32%5
25%+ Added
+ Added