@nithin554/code-crawler 0.1.38 → 0.1.40

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 (44) hide show
  1. package/README.md +206 -33
  2. package/dist/crawler.d.ts +27 -1
  3. package/dist/crawler.js +360 -11
  4. package/dist/crawler.js.map +1 -1
  5. package/dist/graph/queries.d.ts +70 -4
  6. package/dist/graph/queries.js +125 -1
  7. package/dist/graph/queries.js.map +1 -1
  8. package/dist/graph/schema.d.ts +24 -2
  9. package/dist/graph/schema.js +9 -0
  10. package/dist/graph/schema.js.map +1 -1
  11. package/dist/parser/controlFlow.d.ts +27 -0
  12. package/dist/parser/controlFlow.js +82 -0
  13. package/dist/parser/controlFlow.js.map +1 -0
  14. package/dist/parser/language.d.ts +101 -2
  15. package/dist/parser/languages/index.js +4 -0
  16. package/dist/parser/languages/index.js.map +1 -1
  17. package/dist/parser/languages/java.js +160 -6
  18. package/dist/parser/languages/java.js.map +1 -1
  19. package/dist/parser/languages/python.d.ts +2 -0
  20. package/dist/parser/languages/python.js +956 -0
  21. package/dist/parser/languages/python.js.map +1 -0
  22. package/dist/parser/languages/typescript.d.ts +2 -0
  23. package/dist/parser/languages/typescript.js +1111 -0
  24. package/dist/parser/languages/typescript.js.map +1 -0
  25. package/dist/parser/moduleId.d.ts +35 -0
  26. package/dist/parser/moduleId.js +93 -0
  27. package/dist/parser/moduleId.js.map +1 -0
  28. package/dist/parser/treeSitter.d.ts +6 -0
  29. package/dist/parser/treeSitter.js +13 -2
  30. package/dist/parser/treeSitter.js.map +1 -1
  31. package/dist/resolver/common.d.ts +52 -0
  32. package/dist/resolver/common.js +624 -0
  33. package/dist/resolver/common.js.map +1 -0
  34. package/dist/resolver/dynamic.js +66 -1
  35. package/dist/resolver/dynamic.js.map +1 -1
  36. package/dist/resolver/genericResolver.d.ts +45 -0
  37. package/dist/resolver/genericResolver.js +235 -0
  38. package/dist/resolver/genericResolver.js.map +1 -0
  39. package/dist/resolver/types.d.ts +24 -1
  40. package/dist/resolver/types.js +50 -0
  41. package/dist/resolver/types.js.map +1 -1
  42. package/dist/server.js +108 -5
  43. package/dist/server.js.map +1 -1
  44. package/package.json +2 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typescript.js","sourceRoot":"","sources":["../../../src/parser/languages/typescript.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Module identity for languages without packages (Python, TypeScript).
3
+ *
4
+ * A module is the language's file-level namespace:
5
+ * - Python: `app/services/order.py` -> `app.services.order`
6
+ * `app/services/__init__.py` -> `app.services`
7
+ * - TypeScript: `src/services/order.ts` -> `src.services.order`
8
+ * `src/services/index.ts` -> `src.services`
9
+ *
10
+ * Module nodes use a `module:` id prefix so they can never collide with a
11
+ * Java package node (which uses the bare dotted package name).
12
+ */
13
+ export declare const MODULE_ID_PREFIX = "module:";
14
+ /** Scope value suffix marking "this binding is the module's default export". */
15
+ export declare const DEFAULT_EXPORT_SUFFIX = ".#default";
16
+ export declare function moduleNodeId(moduleId: string): string;
17
+ export declare function isModuleNodeId(id: string): boolean;
18
+ /** Strip a module-node prefix, if present. */
19
+ export declare function unwrapModuleNodeId(id: string): string;
20
+ export declare function toPosix(filePath: string): string;
21
+ /** Path relative to the project root, falling back to the basename. */
22
+ export declare function relativeModulePath(filePath: string, projectRoot?: string): string;
23
+ export declare function pythonModuleId(filePath: string, projectRoot?: string): string;
24
+ export declare function tsModuleId(filePath: string, projectRoot?: string): string;
25
+ /**
26
+ * Resolve a relative TS/JS specifier against the importing module.
27
+ * `currentModuleId` is the importing file's module id (including its own
28
+ * segment), so the file segment is dropped before walking `..`.
29
+ */
30
+ export declare function resolveRelativeModule(currentModuleId: string, specifier: string): string | null;
31
+ /**
32
+ * Resolve a Python relative import (`from ..services import order`).
33
+ * `currentModuleId` excludes the file segment for `__init__.py` files.
34
+ */
35
+ export declare function resolvePythonRelative(currentModuleId: string, isPackageFile: boolean, level: number, moduleText: string): string;
@@ -0,0 +1,93 @@
1
+ import path from "node:path";
2
+ /**
3
+ * Module identity for languages without packages (Python, TypeScript).
4
+ *
5
+ * A module is the language's file-level namespace:
6
+ * - Python: `app/services/order.py` -> `app.services.order`
7
+ * `app/services/__init__.py` -> `app.services`
8
+ * - TypeScript: `src/services/order.ts` -> `src.services.order`
9
+ * `src/services/index.ts` -> `src.services`
10
+ *
11
+ * Module nodes use a `module:` id prefix so they can never collide with a
12
+ * Java package node (which uses the bare dotted package name).
13
+ */
14
+ export const MODULE_ID_PREFIX = "module:";
15
+ /** Scope value suffix marking "this binding is the module's default export". */
16
+ export const DEFAULT_EXPORT_SUFFIX = ".#default";
17
+ export function moduleNodeId(moduleId) {
18
+ return `${MODULE_ID_PREFIX}${moduleId}`;
19
+ }
20
+ export function isModuleNodeId(id) {
21
+ return id.startsWith(MODULE_ID_PREFIX);
22
+ }
23
+ /** Strip a module-node prefix, if present. */
24
+ export function unwrapModuleNodeId(id) {
25
+ return isModuleNodeId(id) ? id.slice(MODULE_ID_PREFIX.length) : id;
26
+ }
27
+ export function toPosix(filePath) {
28
+ return filePath.replace(/\\/g, "/");
29
+ }
30
+ /** Path relative to the project root, falling back to the basename. */
31
+ export function relativeModulePath(filePath, projectRoot) {
32
+ if (!projectRoot)
33
+ return toPosix(path.basename(filePath));
34
+ const rel = toPosix(path.relative(projectRoot, filePath));
35
+ return rel.startsWith("../") || rel === ".." ? toPosix(path.basename(filePath)) : rel;
36
+ }
37
+ function stripExtension(rel) {
38
+ const dot = rel.lastIndexOf(".");
39
+ const slash = rel.lastIndexOf("/");
40
+ return dot > slash ? rel.slice(0, dot) : rel;
41
+ }
42
+ export function pythonModuleId(filePath, projectRoot) {
43
+ const relative = stripExtension(relativeModulePath(filePath, projectRoot));
44
+ const parts = relative.split("/").filter(Boolean);
45
+ if (parts.length > 0 && parts[parts.length - 1] === "__init__")
46
+ parts.pop();
47
+ return parts.join(".") || "__root__";
48
+ }
49
+ export function tsModuleId(filePath, projectRoot) {
50
+ const relative = stripExtension(relativeModulePath(filePath, projectRoot)).replace(/\.d$/, "");
51
+ const parts = relative.split("/").filter(Boolean);
52
+ if (parts.length > 1 && (parts[parts.length - 1] === "index" || parts[parts.length - 1] === "mod")) {
53
+ parts.pop();
54
+ }
55
+ return parts.join(".") || "__root__";
56
+ }
57
+ /**
58
+ * Resolve a relative TS/JS specifier against the importing module.
59
+ * `currentModuleId` is the importing file's module id (including its own
60
+ * segment), so the file segment is dropped before walking `..`.
61
+ */
62
+ export function resolveRelativeModule(currentModuleId, specifier) {
63
+ if (!specifier.startsWith("."))
64
+ return null;
65
+ const base = currentModuleId.split(".").filter(Boolean);
66
+ base.pop();
67
+ for (const segment of specifier.split("/")) {
68
+ if (segment === "" || segment === ".")
69
+ continue;
70
+ if (segment === "..") {
71
+ base.pop();
72
+ continue;
73
+ }
74
+ base.push(segment);
75
+ }
76
+ return base.join(".");
77
+ }
78
+ /**
79
+ * Resolve a Python relative import (`from ..services import order`).
80
+ * `currentModuleId` excludes the file segment for `__init__.py` files.
81
+ */
82
+ export function resolvePythonRelative(currentModuleId, isPackageFile, level, moduleText) {
83
+ const base = currentModuleId.split(".").filter(Boolean);
84
+ if (!isPackageFile)
85
+ base.pop();
86
+ const climb = Math.max(0, level - 1);
87
+ for (let i = 0; i < climb; i++)
88
+ base.pop();
89
+ if (moduleText)
90
+ base.push(...moduleText.split(".").filter(Boolean));
91
+ return base.join(".");
92
+ }
93
+ //# sourceMappingURL=moduleId.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"moduleId.js","sourceRoot":"","sources":["../../src/parser/moduleId.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,12 @@ export declare function childOfType(node: TSNode, type: string): TSNode | null;
15
15
  export declare function childrenOfType(node: TSNode, type: string): TSNode[];
16
16
  /** Field child, or null. */
17
17
  export declare function fieldChild(node: TSNode, field: string): TSNode | null;
18
+ /**
19
+ * Structural node equality. Node wrappers handed out by separate
20
+ * `namedChildren` accesses are distinct JS objects for the same CST node, so
21
+ * `===` cannot be used to compare them.
22
+ */
23
+ export declare function sameNode(a: TSNode | null | undefined, b: TSNode | null | undefined): boolean;
18
24
  /** Walk the tree depth-first, invoking `visit` on every named node. */
19
25
  export declare function walk(node: TSNode, visit: (n: TSNode) => void): void;
20
26
  /**
@@ -47,7 +47,8 @@ function packageRoot(packageName) {
47
47
  * Language. Cached across calls.
48
48
  */
49
49
  export function loadGrammar(packageName, wasmFileName) {
50
- const cached = grammarCache.get(packageName);
50
+ const cacheKey = `${packageName}/${wasmFileName}`;
51
+ const cached = grammarCache.get(cacheKey);
51
52
  if (cached)
52
53
  return cached;
53
54
  const promise = (async () => {
@@ -55,7 +56,7 @@ export function loadGrammar(packageName, wasmFileName) {
55
56
  const wasmPath = path.join(packageRoot(packageName), wasmFileName);
56
57
  return Language.load(fs.readFileSync(wasmPath));
57
58
  })();
58
- grammarCache.set(packageName, promise);
59
+ grammarCache.set(cacheKey, promise);
59
60
  return promise;
60
61
  }
61
62
  /** Create a parser bound to the given language. */
@@ -80,6 +81,16 @@ export function childrenOfType(node, type) {
80
81
  export function fieldChild(node, field) {
81
82
  return node.childForFieldName(field);
82
83
  }
84
+ /**
85
+ * Structural node equality. Node wrappers handed out by separate
86
+ * `namedChildren` accesses are distinct JS objects for the same CST node, so
87
+ * `===` cannot be used to compare them.
88
+ */
89
+ export function sameNode(a, b) {
90
+ if (!a || !b)
91
+ return false;
92
+ return a.startIndex === b.startIndex && a.endIndex === b.endIndex && a.type === b.type;
93
+ }
83
94
  /** Walk the tree depth-first, invoking `visit` on every named node. */
84
95
  export function walk(node, visit) {
85
96
  visit(node);
@@ -1 +1 @@
1
- {"version":3,"file":"treeSitter.js","sourceRoot":"","sources":["../../src/parser/treeSitter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"treeSitter.js","sourceRoot":"","sources":["../../src/parser/treeSitter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ import type { FieldInfo, MethodInfo, ParsedFile } from "../parser/language.js";
2
+ import type { TypeIndex } from "./types.js";
3
+ /** Split `text` on top-level occurrences of `separator`. */
4
+ export declare function splitTopLevel(text: string, separator: string): string[];
5
+ /** Strip TS/Python type syntax down to a dispatchable type name. */
6
+ export declare function normalizeTypeText(raw: string): string;
7
+ /** The enclosing type id plus all resolvable ancestors (breadth-first). */
8
+ export declare function enclosingChain(index: TypeIndex, typeId: string): string[];
9
+ /** Owning module id of a type or module-level function id, if any. */
10
+ export declare function moduleIdOf(typeId: string): string | null;
11
+ /** Resolve an imported binding (scope value) to type or module node ids. */
12
+ export declare function resolveScopeValue(file: ParsedFile, index: TypeIndex, value: string, depth?: number): string[];
13
+ /** True when the dotted path names a module declared in the project. */
14
+ export declare function belongsToProject(index: TypeIndex, dotted: string): boolean;
15
+ /** External package for an unresolved dotted reference (`fastapi.Depends` -> `fastapi`). */
16
+ export declare function externalPackageOf(file: ParsedFile, index: TypeIndex, dotted: string): string | null;
17
+ /** Resolve a raw type name to candidate type ids declared in the project. */
18
+ export declare function resolveTypeCandidates(file: ParsedFile, index: TypeIndex, raw: string, depth?: number): string[];
19
+ /** Find a field declared on `typeId` or any resolvable ancestor. */
20
+ export declare function findField(index: TypeIndex, typeId: string, name: string): FieldInfo | undefined;
21
+ /** Methods declared directly on a type (or module) with the given name. */
22
+ export declare function findMethodsNamed(index: TypeIndex, typeId: string, name: string): MethodInfo[];
23
+ /** Methods named `name` on `typeId` or its ancestors, nearest declaration first. */
24
+ export declare function findInherited(index: TypeIndex, typeId: string, name: string): MethodInfo[];
25
+ /** Pick the overload whose arity best matches the call site. */
26
+ export declare function pickOverload(methods: MethodInfo[], argCount: number): MethodInfo | undefined;
27
+ /** True when a bare name is a Python builtin (external code). */
28
+ export declare function isPythonBuiltin(name: string): boolean;
29
+ /** True when a type name is a language primitive or container, not a project type. */
30
+ export declare function isBuiltinTypeName(raw: string): boolean;
31
+ /** True when a bare name is a JS/Node/browser global (external code). */
32
+ export declare function isGlobalObject(name: string): boolean;
33
+ export interface ReceiverResolution {
34
+ /** Candidate types, nearest first (the enclosing chain for `this`). */
35
+ types: string[];
36
+ /** Candidate modules (dotted module ids) the receiver points at. */
37
+ moduleIds: string[];
38
+ /** External package when the receiver escapes the crawled tree. */
39
+ external?: string;
40
+ /** Why the receiver resolved the way it did. */
41
+ reason: string;
42
+ }
43
+ /**
44
+ * Infer what a call receiver refers to: a chain of types, one or more modules,
45
+ * or external code. This is the heart of cross-language receiver inference.
46
+ */
47
+ export declare function resolveReceiver(file: ParsedFile, index: TypeIndex, receiver: string | null, enclosingTypeId: string, enclosingMethodId: string): ReceiverResolution;
48
+ /**
49
+ * Resolve a method node id inside a module: a module-level function first, then
50
+ * a single matching method anywhere in the module (for `from x import f`).
51
+ */
52
+ export declare function resolveModuleMember(index: TypeIndex, moduleId: string, name: string): string | null;