@nithin554/code-crawler 0.1.39 → 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
@@ -23,6 +23,15 @@ export interface CallerInfo {
23
23
  /** Which edge kind connected the caller: CALLS | DYNAMIC_DISPATCH | ADVISES. */
24
24
  edgeKind?: EdgeKind;
25
25
  }
26
+ /** Syntactic control-flow context recorded on a call/route edge. */
27
+ export interface FlowEdgeInfo {
28
+ /** True when the call only runs inside a branch, loop or handler. */
29
+ conditional?: boolean;
30
+ /** Enclosing control-flow categories: branch, loop, exception, predicate. */
31
+ controlFlow?: string[];
32
+ /** Compact source text of the enclosing conditions. */
33
+ guards?: string[];
34
+ }
26
35
  /** Options controlling which dynamic edges a traversal follows. */
27
36
  export interface DynamicEdgeOptions {
28
37
  /** Follow DYNAMIC_DISPATCH edges (virtual/interface call targets). */
@@ -46,12 +55,12 @@ export interface CallerQueryOptions extends DynamicEdgeOptions {
46
55
  */
47
56
  export declare function getCallers(store: GraphStore, symbol: string, opts?: CallerQueryOptions): {
48
57
  target: SymbolRef;
49
- callers: {
58
+ callers: ({
50
59
  caller: SymbolRef;
51
60
  depth: number;
52
61
  callSiteLine?: number;
53
62
  edgeKind: EdgeKind;
54
- }[];
63
+ } & FlowEdgeInfo)[];
55
64
  } | null;
56
65
  export interface CalleeQueryOptions extends DynamicEdgeOptions {
57
66
  /** Include transitive callees (whole call graph below). Default true. */
@@ -64,12 +73,12 @@ export interface CalleeQueryOptions extends DynamicEdgeOptions {
64
73
  */
65
74
  export declare function getCallees(store: GraphStore, symbol: string, opts?: CalleeQueryOptions): {
66
75
  source: SymbolRef;
67
- callees: {
76
+ callees: ({
68
77
  callee: SymbolRef;
69
78
  depth: number;
70
79
  callSiteLine?: number;
71
80
  edgeKind: EdgeKind;
72
- }[];
81
+ } & FlowEdgeInfo)[];
73
82
  } | null;
74
83
  export interface PathEntry {
75
84
  /** Ordered list of symbol ids from source to target (inclusive). */
@@ -239,3 +248,60 @@ export declare function deadCode(store: GraphStore, opts?: {
239
248
  includeTests?: boolean;
240
249
  includeDynamic?: boolean;
241
250
  }): DeadSymbol[];
251
+ /** A framework-invoked root: nothing in source needs to call it. */
252
+ export interface EntryPointRef {
253
+ symbol: SymbolRef;
254
+ entryPointKind: string;
255
+ detail?: string;
256
+ }
257
+ /**
258
+ * List framework-invoked roots (HTTP routes, listeners, schedulers, events,
259
+ * CLI entry points, tests). These are the seeds a runtime trace starts from.
260
+ */
261
+ export declare function findEntryPoints(store: GraphStore, opts?: {
262
+ kind?: string;
263
+ limit?: number;
264
+ }): EntryPointRef[];
265
+ /** An edge representing framework wiring rather than a source-level call. */
266
+ export interface WiringEdge {
267
+ source: SymbolRef;
268
+ target: SymbolRef;
269
+ line?: number;
270
+ framework?: string;
271
+ external?: boolean;
272
+ /** INJECTS: injected field/parameter name. */
273
+ injectedName?: string;
274
+ /** REFLECTS: the run-time lookup mechanism. */
275
+ mechanism?: string;
276
+ /** ROUTES: HTTP verb and path. */
277
+ httpMethod?: string;
278
+ path?: string;
279
+ }
280
+ /** Dependencies supplied by a DI container (Spring, NestJS, FastAPI, ...). */
281
+ export declare function findInjections(store: GraphStore, opts?: {
282
+ symbol?: string;
283
+ limit?: number;
284
+ }): WiringEdge[];
285
+ /** Run-time lookups: reflection, `getattr`, dynamic `import()`, `require`. */
286
+ export declare function findReflections(store: GraphStore, opts?: {
287
+ symbol?: string;
288
+ limit?: number;
289
+ }): WiringEdge[];
290
+ /** Route registrations mapped to the handler they invoke. */
291
+ export declare function findRoutes(store: GraphStore, opts?: {
292
+ symbol?: string;
293
+ limit?: number;
294
+ }): WiringEdge[];
295
+ export interface ExternalDependency {
296
+ package: string;
297
+ /** Number of edges pointing at the external package. */
298
+ references: number;
299
+ /** Number of distinct project files using it. */
300
+ files: number;
301
+ /** Edge kinds that reference it. */
302
+ kinds: string[];
303
+ }
304
+ /** Third-party packages the crawled source depends on. */
305
+ export declare function externalDependencies(store: GraphStore, opts?: {
306
+ limit?: number;
307
+ }): ExternalDependency[];
@@ -51,6 +51,7 @@ export function getCallers(store, symbol, opts = {}) {
51
51
  depth: 1,
52
52
  callSiteLine: edgeLine(r.edge_props),
53
53
  edgeKind: r.edge_kind,
54
+ ...edgeFlow(r.edge_props),
54
55
  })),
55
56
  };
56
57
  }
@@ -79,6 +80,7 @@ export function getCallers(store, symbol, opts = {}) {
79
80
  depth: r.depth,
80
81
  callSiteLine: edgeLine(r.edge_props),
81
82
  edgeKind: r.edge_kind,
83
+ ...edgeFlow(r.edge_props),
82
84
  })),
83
85
  };
84
86
  }
@@ -108,6 +110,7 @@ export function getCallees(store, symbol, opts = {}) {
108
110
  depth: 1,
109
111
  callSiteLine: edgeLine(r.edge_props),
110
112
  edgeKind: r.edge_kind,
113
+ ...edgeFlow(r.edge_props),
111
114
  })),
112
115
  };
113
116
  }
@@ -136,6 +139,7 @@ export function getCallees(store, symbol, opts = {}) {
136
139
  depth: r.depth,
137
140
  callSiteLine: edgeLine(r.edge_props),
138
141
  edgeKind: r.edge_kind,
142
+ ...edgeFlow(r.edge_props),
139
143
  })),
140
144
  };
141
145
  }
@@ -279,6 +283,9 @@ export function getSubgraph(store, symbol, opts = {}) {
279
283
  "ANNOTATED_WITH",
280
284
  "REFERENCES",
281
285
  "IMPORTS",
286
+ "REFLECTS",
287
+ "INJECTS",
288
+ "ROUTES",
282
289
  ];
283
290
  const limit = opts.limit ?? 500;
284
291
  const kinds = edgeKinds.map((k) => `'${k}'`).join(",");
@@ -577,11 +584,13 @@ export function deadCode(store, opts = {}) {
577
584
  WHERE e.target = n.id AND e.kind IN (${kinds}, 'ADVISES')
578
585
  )`,
579
586
  "COALESCE(json_extract(n.properties, '$.name'), '') <> 'main'",
587
+ // Framework-invoked roots are not dead even without an incoming edge.
588
+ "COALESCE(json_extract(n.properties, '$.entryPoint'), 0) <> 1",
580
589
  ];
581
590
  if (!opts.includeConstructors)
582
591
  conditions.push("n.kind <> 'constructor'");
583
592
  if (!opts.includeTests) {
584
- conditions.push("REPLACE(n.file_path, '\\', '/') NOT LIKE '%/test/%'", "REPLACE(n.file_path, '\\', '/') NOT LIKE '%/tests/%'", "n.qualified_name NOT LIKE '%Test#%'", "n.qualified_name NOT LIKE '%Tests#%'", "n.qualified_name NOT LIKE '%IT#%'");
593
+ conditions.push("REPLACE(n.file_path, '\\', '/') NOT LIKE '%/test/%'", "REPLACE(n.file_path, '\\', '/') NOT LIKE '%/tests/%'", "REPLACE(n.file_path, '\\', '/') NOT LIKE '%/__tests__/%'", "n.file_path NOT LIKE '%test\\_%.py' ESCAPE '\\'", "n.file_path NOT LIKE '%\\_test.py' ESCAPE '\\'", "n.file_path NOT LIKE '%conftest.py'", "n.file_path NOT LIKE '%.test.ts'", "n.file_path NOT LIKE '%.spec.ts'", "n.file_path NOT LIKE '%.test.tsx'", "n.file_path NOT LIKE '%.spec.tsx'", "n.file_path NOT LIKE '%.test.js'", "n.file_path NOT LIKE '%.spec.js'", "n.qualified_name NOT LIKE '%Test#%'", "n.qualified_name NOT LIKE '%Tests#%'", "n.qualified_name NOT LIKE '%IT#%'");
585
594
  }
586
595
  const rows = store.raw(`SELECT n.id, n.qualified_name, n.kind, n.file_path, n.properties
587
596
  FROM nodes n
@@ -593,6 +602,106 @@ export function deadCode(store, opts = {}) {
593
602
  reason: "no incoming call, dynamic-dispatch or advice edge",
594
603
  }));
595
604
  }
605
+ /**
606
+ * List framework-invoked roots (HTTP routes, listeners, schedulers, events,
607
+ * CLI entry points, tests). These are the seeds a runtime trace starts from.
608
+ */
609
+ export function findEntryPoints(store, opts = {}) {
610
+ const limit = opts.limit ?? store.defaultLimit ?? 50;
611
+ const conditions = ["json_extract(n.properties, '$.entryPoint') = 1"];
612
+ const params = [];
613
+ if (opts.kind) {
614
+ conditions.push("json_extract(n.properties, '$.entryPointKind') = ?");
615
+ params.push(opts.kind);
616
+ }
617
+ const rows = store.raw(`SELECT n.id, n.qualified_name, n.kind, n.file_path, n.properties
618
+ FROM nodes n
619
+ WHERE ${conditions.join(" AND ")}
620
+ ORDER BY json_extract(n.properties, '$.entryPointKind'), n.qualified_name
621
+ LIMIT ?`, ...params, limit);
622
+ return rows.map((r) => {
623
+ const props = JSON.parse(r.properties);
624
+ return {
625
+ symbol: rowToRef(r),
626
+ entryPointKind: props.entryPointKind ?? "unknown",
627
+ ...(props.entryPointDetail ? { detail: props.entryPointDetail } : {}),
628
+ };
629
+ });
630
+ }
631
+ function wiringEdges(store, kind, symbol, limit) {
632
+ const anchor = symbol ? resolveNode(store, symbol) : null;
633
+ if (symbol && !anchor)
634
+ return [];
635
+ const rows = store.raw(`SELECT e.properties AS edge_props, e.source AS source_id, e.target AS target_id,
636
+ s.id AS s_id, s.qualified_name AS s_qn, s.kind AS s_kind, s.file_path AS s_file, s.properties AS s_props,
637
+ t.id AS t_id, t.qualified_name AS t_qn, t.kind AS t_kind, t.file_path AS t_file, t.properties AS t_props
638
+ FROM edges e
639
+ JOIN nodes s ON s.id = e.source
640
+ JOIN nodes t ON t.id = e.target
641
+ WHERE e.kind = ?
642
+ ${anchor ? "AND (e.source = ? OR e.target = ?)" : ""}
643
+ ORDER BY s.qualified_name, t.qualified_name
644
+ LIMIT ?`, ...(anchor ? [kind, anchor.id, anchor.id, limit] : [kind, limit]));
645
+ return rows.map((r) => {
646
+ const props = JSON.parse(r.edge_props ?? "{}");
647
+ return {
648
+ source: rowToRef({
649
+ id: r.s_id,
650
+ qualified_name: r.s_qn,
651
+ kind: r.s_kind,
652
+ file_path: r.s_file,
653
+ properties: r.s_props,
654
+ }),
655
+ target: rowToRef({
656
+ id: r.t_id,
657
+ qualified_name: r.t_qn,
658
+ kind: r.t_kind,
659
+ file_path: r.t_file,
660
+ properties: r.t_props,
661
+ }),
662
+ ...(typeof props.line === "number" ? { line: props.line } : {}),
663
+ ...(props.framework ? { framework: props.framework } : {}),
664
+ ...(props.external ? { external: props.external } : {}),
665
+ ...(props.injectedName ? { injectedName: props.injectedName } : {}),
666
+ ...(props.mechanism ? { mechanism: props.mechanism } : {}),
667
+ ...(props.httpMethod ? { httpMethod: props.httpMethod } : {}),
668
+ ...(props.path ? { path: props.path } : {}),
669
+ };
670
+ });
671
+ }
672
+ /** Dependencies supplied by a DI container (Spring, NestJS, FastAPI, ...). */
673
+ export function findInjections(store, opts = {}) {
674
+ return wiringEdges(store, "INJECTS", opts.symbol, opts.limit ?? store.defaultLimit ?? 50);
675
+ }
676
+ /** Run-time lookups: reflection, `getattr`, dynamic `import()`, `require`. */
677
+ export function findReflections(store, opts = {}) {
678
+ return wiringEdges(store, "REFLECTS", opts.symbol, opts.limit ?? store.defaultLimit ?? 50);
679
+ }
680
+ /** Route registrations mapped to the handler they invoke. */
681
+ export function findRoutes(store, opts = {}) {
682
+ return wiringEdges(store, "ROUTES", opts.symbol, opts.limit ?? store.defaultLimit ?? 50);
683
+ }
684
+ /** Third-party packages the crawled source depends on. */
685
+ export function externalDependencies(store, opts = {}) {
686
+ const limit = opts.limit ?? store.defaultLimit ?? 50;
687
+ const rows = store.raw(`SELECT t.qualified_name AS package,
688
+ COUNT(*) AS "references",
689
+ COUNT(DISTINCT s.file_path) AS "files",
690
+ GROUP_CONCAT(DISTINCT e.kind) AS kinds
691
+ FROM edges e
692
+ JOIN nodes s ON s.id = e.source
693
+ JOIN nodes t ON t.id = e.target
694
+ WHERE t.kind = 'external_symbol'
695
+ GROUP BY t.id
696
+ ORDER BY "references" DESC, package
697
+ LIMIT ?`, limit);
698
+ return rows.map((r) => ({
699
+ package: r.package.replace(/^ext:/, ""),
700
+ references: r.references,
701
+ files: r.files,
702
+ kinds: (r.kinds ?? "").split(",").filter((k) => k.length > 0),
703
+ }));
704
+ }
596
705
  function rowToRef(r) {
597
706
  return {
598
707
  id: r.id,
@@ -608,4 +717,19 @@ function edgeLine(props) {
608
717
  const line = JSON.parse(props).line;
609
718
  return typeof line === "number" ? line : undefined;
610
719
  }
720
+ /** Extract the control-flow context recorded on an edge, if any. */
721
+ function edgeFlow(props) {
722
+ if (!props)
723
+ return {};
724
+ const parsed = JSON.parse(props);
725
+ const out = {};
726
+ if (typeof parsed.conditional === "boolean")
727
+ out.conditional = parsed.conditional;
728
+ if (Array.isArray(parsed.controlFlow) && parsed.controlFlow.length > 0) {
729
+ out.controlFlow = parsed.controlFlow;
730
+ }
731
+ if (Array.isArray(parsed.guards) && parsed.guards.length > 0)
732
+ out.guards = parsed.guards;
733
+ return out;
734
+ }
611
735
  //# sourceMappingURL=queries.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"queries.js","sourceRoot":"","sources":["../../src/graph/queries.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"queries.js","sourceRoot":"","sources":["../../src/graph/queries.ts"],"names":[],"mappings":"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"}
@@ -9,9 +9,9 @@
9
9
  * can attach extra metadata (signatures, modifiers, confidence scores) without
10
10
  * schema migrations.
11
11
  */
12
- export declare const NODE_KINDS: readonly ["file", "package", "class", "interface", "enum", "annotation_type", "annotation", "aspect", "method", "constructor", "field", "import", "unknown_symbol"];
12
+ export declare const NODE_KINDS: readonly ["file", "package", "module", "class", "interface", "enum", "annotation_type", "annotation", "aspect", "method", "constructor", "field", "import", "external_symbol", "unknown_symbol"];
13
13
  export type NodeKind = (typeof NODE_KINDS)[number];
14
- export declare const EDGE_KINDS: readonly ["CALLS", "DYNAMIC_DISPATCH", "ADVISES", "DECLARED_IN", "CONTAINS", "IMPLEMENTS", "EXTENDS", "IMPORTS", "ANNOTATED_WITH", "REFERENCES"];
14
+ export declare const EDGE_KINDS: readonly ["CALLS", "DYNAMIC_DISPATCH", "ADVISES", "DECLARED_IN", "CONTAINS", "IMPLEMENTS", "EXTENDS", "IMPORTS", "ANNOTATED_WITH", "REFERENCES", "REFLECTS", "INJECTS", "ROUTES"];
15
15
  export type EdgeKind = (typeof EDGE_KINDS)[number];
16
16
  /** Kinds that may appear as call *targets* (nodes at the arrow end of CALLS). */
17
17
  export declare const CALLABLE_KINDS: readonly NodeKind[];
@@ -61,6 +61,26 @@ export interface EdgeProperties {
61
61
  pointcut?: string;
62
62
  /** For ANNOTATED_WITH: raw annotation arguments as written in source. */
63
63
  arguments?: string[];
64
+ /** For CALLS: true when the call is nested inside a branch/loop/handler. */
65
+ conditional?: boolean;
66
+ /** For CALLS: enclosing control-flow categories (branch/loop/exception/predicate). */
67
+ controlFlow?: string[];
68
+ /** For CALLS: compact source text of the enclosing conditions. */
69
+ guards?: string[];
70
+ /** For CALLS/IMPORTS: the target is outside the crawled source tree. */
71
+ external?: boolean;
72
+ /** For INJECTS: framework that performs the injection. */
73
+ framework?: string;
74
+ /** For REFLECTS: the run-time lookup mechanism (`Class.forName`, `getattr`). */
75
+ mechanism?: string;
76
+ /** For entry-point metadata: the framework-invoked root category. */
77
+ entryPointKind?: string;
78
+ /** For entry-point metadata: human-readable route/schedule detail. */
79
+ entryPointDetail?: string;
80
+ /** For INJECTS: injected field/parameter name. */
81
+ injectedName?: string;
82
+ /** For IMPORTS/REFERENCES: imported member name. */
83
+ member?: string;
64
84
  /** Free-form language-specific metadata. */
65
85
  [key: string]: string | number | boolean | (string | number)[] | undefined;
66
86
  }
@@ -79,6 +99,8 @@ export declare function fieldNodeId(qualifiedType: string, fieldName: string): s
79
99
  export declare function importNodeId(fqn: string): string;
80
100
  /** Fallback id for calls that could not be statically resolved. */
81
101
  export declare function unknownNodeId(qualifiedName: string): string;
102
+ /** External dependency nodes are grouped per package/specifier. */
103
+ export declare function externalNodeId(specifier: string): string;
82
104
  /**
83
105
  * Annotation/decorator ids share one node per annotation name so that
84
106
  * `find_annotated` and `get_decorators` can pivot across the whole project.
@@ -12,6 +12,7 @@
12
12
  export const NODE_KINDS = [
13
13
  "file",
14
14
  "package",
15
+ "module",
15
16
  "class",
16
17
  "interface",
17
18
  "enum",
@@ -22,6 +23,7 @@ export const NODE_KINDS = [
22
23
  "constructor",
23
24
  "field",
24
25
  "import",
26
+ "external_symbol",
25
27
  "unknown_symbol",
26
28
  ];
27
29
  export const EDGE_KINDS = [
@@ -35,6 +37,9 @@ export const EDGE_KINDS = [
35
37
  "IMPORTS",
36
38
  "ANNOTATED_WITH",
37
39
  "REFERENCES",
40
+ "REFLECTS",
41
+ "INJECTS",
42
+ "ROUTES",
38
43
  ];
39
44
  /** Kinds that may appear as call *targets* (nodes at the arrow end of CALLS). */
40
45
  export const CALLABLE_KINDS = ["method", "constructor"];
@@ -68,6 +73,10 @@ export function importNodeId(fqn) {
68
73
  export function unknownNodeId(qualifiedName) {
69
74
  return `__unknown__:${qualifiedName}`;
70
75
  }
76
+ /** External dependency nodes are grouped per package/specifier. */
77
+ export function externalNodeId(specifier) {
78
+ return `ext:${specifier}`;
79
+ }
71
80
  /**
72
81
  * Annotation/decorator ids share one node per annotation name so that
73
82
  * `find_annotated` and `get_decorators` can pivot across the whole project.
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/graph/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,MAAM;IACN,SAAS;IACT,OAAO;IACP,WAAW;IACX,MAAM;IACN,iBAAiB;IACjB,YAAY;IACZ,QAAQ;IACR,QAAQ;IACR,aAAa;IACb,OAAO;IACP,QAAQ;IACR,gBAAgB;CACR,CAAC;AAGX,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,OAAO;IACP,kBAAkB;IAClB,SAAS;IACT,aAAa;IACb,UAAU;IACV,YAAY;IACZ,SAAS;IACT,SAAS;IACT,gBAAgB;IAChB,YAAY;CACJ,CAAC;AAGX,iFAAiF;AACjF,MAAM,CAAC,MAAM,cAAc,GAAwB,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;AAE7E,6CAA6C;AAC7C,MAAM,CAAC,MAAM,iBAAiB,GAAwB;IACpD,OAAO;IACP,WAAW;IACX,MAAM;IACN,iBAAiB;IACjB,QAAQ;IACR,QAAQ;IACR,aAAa;IACb,OAAO;CACR,CAAC;AA2DF,4EAA4E;AAC5E,MAAM,UAAU,YAAY,CAAC,aAAqB,EAAE,UAAkB;IACpE,OAAO,GAAG,aAAa,IAAI,UAAU,EAAE,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,aAAqB;IACrD,OAAO,GAAG,aAAa,SAAS,CAAC;AACnC,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,WAAW,CAAC,aAAqB,EAAE,SAAiB;IAClE,OAAO,GAAG,aAAa,IAAI,SAAS,EAAE,CAAC;AACzC,CAAC;AAED,mEAAmE;AACnE,MAAM,UAAU,YAAY,CAAC,GAAW;IACtC,OAAO,cAAc,GAAG,EAAE,CAAC;AAC7B,CAAC;AAED,mEAAmE;AACnE,MAAM,UAAU,aAAa,CAAC,aAAqB;IACjD,OAAO,eAAe,aAAa,EAAE,CAAC;AACxC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,OAAO,IAAI,IAAI,EAAE,CAAC;AACpB,CAAC"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/graph/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,MAAM;IACN,SAAS;IACT,QAAQ;IACR,OAAO;IACP,WAAW;IACX,MAAM;IACN,iBAAiB;IACjB,YAAY;IACZ,QAAQ;IACR,QAAQ;IACR,aAAa;IACb,OAAO;IACP,QAAQ;IACR,iBAAiB;IACjB,gBAAgB;CACR,CAAC;AAGX,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,OAAO;IACP,kBAAkB;IAClB,SAAS;IACT,aAAa;IACb,UAAU;IACV,YAAY;IACZ,SAAS;IACT,SAAS;IACT,gBAAgB;IAChB,YAAY;IACZ,UAAU;IACV,SAAS;IACT,QAAQ;CACA,CAAC;AAGX,iFAAiF;AACjF,MAAM,CAAC,MAAM,cAAc,GAAwB,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;AAE7E,6CAA6C;AAC7C,MAAM,CAAC,MAAM,iBAAiB,GAAwB;IACpD,OAAO;IACP,WAAW;IACX,MAAM;IACN,iBAAiB;IACjB,QAAQ;IACR,QAAQ;IACR,aAAa;IACb,OAAO;CACR,CAAC;AA+EF,4EAA4E;AAC5E,MAAM,UAAU,YAAY,CAAC,aAAqB,EAAE,UAAkB;IACpE,OAAO,GAAG,aAAa,IAAI,UAAU,EAAE,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,aAAqB;IACrD,OAAO,GAAG,aAAa,SAAS,CAAC;AACnC,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,WAAW,CAAC,aAAqB,EAAE,SAAiB;IAClE,OAAO,GAAG,aAAa,IAAI,SAAS,EAAE,CAAC;AACzC,CAAC;AAED,mEAAmE;AACnE,MAAM,UAAU,YAAY,CAAC,GAAW;IACtC,OAAO,cAAc,GAAG,EAAE,CAAC;AAC7B,CAAC;AAED,mEAAmE;AACnE,MAAM,UAAU,aAAa,CAAC,aAAqB;IACjD,OAAO,eAAe,aAAa,EAAE,CAAC;AACxC,CAAC;AAED,mEAAmE;AACnE,MAAM,UAAU,cAAc,CAAC,SAAiB;IAC9C,OAAO,OAAO,SAAS,EAAE,CAAC;AAC5B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,OAAO,IAAI,IAAI,EAAE,CAAC;AACpB,CAAC"}
@@ -0,0 +1,27 @@
1
+ import type { ControlFlowInfo, ControlFlowKind } from "./language.js";
2
+ import type { TSNode } from "./treeSitter.js";
3
+ /**
4
+ * Control-flow context for a call site.
5
+ *
6
+ * Static call graphs say "A calls B"; they do not say whether B is reached
7
+ * unconditionally, only inside a branch, in a loop, or in an exception handler.
8
+ * The parsers walk ancestors of every call site and record that context, which
9
+ * is attached to the CALLS edge. This is still not path-sensitive: it describes
10
+ * the syntactic guards directly enclosing the call, not the full predicate.
11
+ */
12
+ export interface FlowSpec {
13
+ /** Grammar node type to match. */
14
+ type: string;
15
+ /** Control-flow category contributed by the node. */
16
+ kind: ControlFlowKind;
17
+ /** Field holding the guard expression text (`condition`, `value`, ...). */
18
+ guardField?: string;
19
+ /** Static guard label used when the node has no expression (e.g. `else`). */
20
+ guard?: string;
21
+ /** For operator nodes: only count when the operator is one of these. */
22
+ operatorIn?: string[];
23
+ }
24
+ /** Walk ancestors of `node` collecting the control-flow context. */
25
+ export declare function controlFlowOf(node: TSNode, specs: FlowSpec[]): ControlFlowInfo | undefined;
26
+ /** True when `node` is nested inside any of the given node types. */
27
+ export declare function insideAny(node: TSNode, types: ReadonlySet<string>, limit?: number): boolean;
@@ -0,0 +1,82 @@
1
+ const MAX_GUARDS = 3;
2
+ const MAX_GUARD_LENGTH = 160;
3
+ /** Nearest enclosing callable body; stops the ancestor walk. */
4
+ const BODY_BOUNDARY = new Set([
5
+ "function_definition",
6
+ "function_declaration",
7
+ "method_definition",
8
+ "method_declaration",
9
+ "constructor_declaration",
10
+ "constructor",
11
+ "arrow_function",
12
+ "function_expression",
13
+ "generator_function",
14
+ "generator_function_declaration",
15
+ "lambda",
16
+ ]);
17
+ /** Walk ancestors of `node` collecting the control-flow context. */
18
+ export function controlFlowOf(node, specs) {
19
+ const kinds = [];
20
+ const guards = [];
21
+ let current = node.parent;
22
+ let hops = 0;
23
+ while (current && hops < 60) {
24
+ const type = current.type;
25
+ if (BODY_BOUNDARY.has(type))
26
+ break;
27
+ const spec = specs.find((s) => s.type === type);
28
+ if (spec) {
29
+ if (spec.operatorIn && !spec.operatorIn.includes(operatorOf(current))) {
30
+ current = current.parent;
31
+ hops++;
32
+ continue;
33
+ }
34
+ if (!kinds.includes(spec.kind))
35
+ kinds.push(spec.kind);
36
+ const guard = spec.guard ?? guardText(current, spec.guardField);
37
+ if (guard && !guards.includes(guard) && guards.length < MAX_GUARDS)
38
+ guards.push(guard);
39
+ }
40
+ current = current.parent;
41
+ hops++;
42
+ }
43
+ if (kinds.length === 0)
44
+ return undefined;
45
+ return { kinds, guards };
46
+ }
47
+ /** True when `node` is nested inside any of the given node types. */
48
+ export function insideAny(node, types, limit = 60) {
49
+ let current = node.parent;
50
+ let hops = 0;
51
+ while (current && hops < limit) {
52
+ if (types.has(current.type))
53
+ return true;
54
+ current = current.parent;
55
+ hops++;
56
+ }
57
+ return false;
58
+ }
59
+ function operatorOf(node) {
60
+ const operator = node.childForFieldName("operator");
61
+ if (operator)
62
+ return operator.text;
63
+ for (const child of node.children) {
64
+ if (child.type === "&&" || child.type === "||" || child.type === "??")
65
+ return child.type;
66
+ }
67
+ return "";
68
+ }
69
+ function guardText(node, field) {
70
+ if (!field)
71
+ return "";
72
+ const child = node.childForFieldName(field);
73
+ if (!child)
74
+ return "";
75
+ const compact = child.text.replace(/\s+/g, " ").trim();
76
+ if (!compact)
77
+ return "";
78
+ return compact.length > MAX_GUARD_LENGTH
79
+ ? `${compact.slice(0, MAX_GUARD_LENGTH - 1)}…`
80
+ : compact;
81
+ }
82
+ //# sourceMappingURL=controlFlow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"controlFlow.js","sourceRoot":"","sources":["../../src/parser/controlFlow.ts"],"names":[],"mappings":"AA0BA,MAAM,UAAU,GAAG,CAAC,CAAC;AACrB,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAE7B,gEAAgE;AAChE,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC;IAC5B,qBAAqB;IACrB,sBAAsB;IACtB,mBAAmB;IACnB,oBAAoB;IACpB,yBAAyB;IACzB,aAAa;IACb,gBAAgB;IAChB,qBAAqB;IACrB,oBAAoB;IACpB,gCAAgC;IAChC,QAAQ;CACT,CAAC,CAAC;AAEH,oEAAoE;AACpE,MAAM,UAAU,aAAa,CAAC,IAAY,EAAE,KAAiB;IAC3D,MAAM,KAAK,GAAsB,EAAE,CAAC;IACpC,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC;IAC1B,IAAI,IAAI,GAAG,CAAC,CAAC;IAEb,OAAO,OAAO,IAAI,IAAI,GAAG,EAAE,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QAC1B,IAAI,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,MAAM;QACnC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QAChD,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;gBACtE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;gBACzB,IAAI,EAAE,CAAC;gBACP,SAAS;YACX,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YAChE,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,UAAU;gBAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzF,CAAC;QACD,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;QACzB,IAAI,EAAE,CAAC;IACT,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACzC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAC3B,CAAC;AAED,qEAAqE;AACrE,MAAM,UAAU,SAAS,CAAC,IAAY,EAAE,KAA0B,EAAE,KAAK,GAAG,EAAE;IAC5E,IAAI,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC;IAC1B,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,OAAO,OAAO,IAAI,IAAI,GAAG,KAAK,EAAE,CAAC;QAC/B,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QACzC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;QACzB,IAAI,EAAE,CAAC;IACT,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,UAAU,CAAC,IAAY;IAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;IACpD,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC,IAAI,CAAC;IACnC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClC,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI;YAAE,OAAO,KAAK,CAAC,IAAI,CAAC;IAC3F,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,SAAS,CAAC,IAAY,EAAE,KAAc;IAC7C,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IACtB,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC5C,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IACtB,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACvD,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IACxB,OAAO,OAAO,CAAC,MAAM,GAAG,gBAAgB;QACtC,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,gBAAgB,GAAG,CAAC,CAAC,GAAG;QAC9C,CAAC,CAAC,OAAO,CAAC;AACd,CAAC"}