@optave/codegraph 3.11.1 → 3.12.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.
- package/README.md +8 -8
- package/dist/db/migrations.d.ts.map +1 -1
- package/dist/db/migrations.js +7 -0
- package/dist/db/migrations.js.map +1 -1
- package/dist/domain/analysis/module-map.d.ts +2 -0
- package/dist/domain/analysis/module-map.d.ts.map +1 -1
- package/dist/domain/analysis/module-map.js +24 -2
- package/dist/domain/analysis/module-map.js.map +1 -1
- package/dist/domain/graph/builder/call-resolver.d.ts +73 -0
- package/dist/domain/graph/builder/call-resolver.d.ts.map +1 -0
- package/dist/domain/graph/builder/call-resolver.js +292 -0
- package/dist/domain/graph/builder/call-resolver.js.map +1 -0
- package/dist/domain/graph/builder/cha.d.ts +61 -0
- package/dist/domain/graph/builder/cha.d.ts.map +1 -0
- package/dist/domain/graph/builder/cha.js +143 -0
- package/dist/domain/graph/builder/cha.js.map +1 -0
- package/dist/domain/graph/builder/context.d.ts +3 -0
- package/dist/domain/graph/builder/context.d.ts.map +1 -1
- package/dist/domain/graph/builder/context.js +2 -0
- package/dist/domain/graph/builder/context.js.map +1 -1
- package/dist/domain/graph/builder/helpers.d.ts +17 -1
- package/dist/domain/graph/builder/helpers.d.ts.map +1 -1
- package/dist/domain/graph/builder/helpers.js +159 -5
- package/dist/domain/graph/builder/helpers.js.map +1 -1
- package/dist/domain/graph/builder/incremental.d.ts.map +1 -1
- package/dist/domain/graph/builder/incremental.js +147 -54
- package/dist/domain/graph/builder/incremental.js.map +1 -1
- package/dist/domain/graph/builder/stages/build-edges.d.ts +2 -0
- package/dist/domain/graph/builder/stages/build-edges.d.ts.map +1 -1
- package/dist/domain/graph/builder/stages/build-edges.js +932 -110
- package/dist/domain/graph/builder/stages/build-edges.js.map +1 -1
- package/dist/domain/graph/builder/stages/detect-changes.d.ts.map +1 -1
- package/dist/domain/graph/builder/stages/detect-changes.js +2 -1
- package/dist/domain/graph/builder/stages/detect-changes.js.map +1 -1
- package/dist/domain/graph/builder/stages/native-orchestrator.d.ts.map +1 -1
- package/dist/domain/graph/builder/stages/native-orchestrator.js +501 -14
- package/dist/domain/graph/builder/stages/native-orchestrator.js.map +1 -1
- package/dist/domain/graph/builder/stages/resolve-imports.d.ts +1 -0
- package/dist/domain/graph/builder/stages/resolve-imports.d.ts.map +1 -1
- package/dist/domain/graph/builder/stages/resolve-imports.js +9 -0
- package/dist/domain/graph/builder/stages/resolve-imports.js.map +1 -1
- package/dist/domain/graph/journal.js +1 -1
- package/dist/domain/graph/journal.js.map +1 -1
- package/dist/domain/graph/resolver/points-to.d.ts +53 -0
- package/dist/domain/graph/resolver/points-to.d.ts.map +1 -0
- package/dist/domain/graph/resolver/points-to.js +213 -0
- package/dist/domain/graph/resolver/points-to.js.map +1 -0
- package/dist/domain/graph/resolver/ts-resolver.d.ts +9 -0
- package/dist/domain/graph/resolver/ts-resolver.d.ts.map +1 -0
- package/dist/domain/graph/resolver/ts-resolver.js +476 -0
- package/dist/domain/graph/resolver/ts-resolver.js.map +1 -0
- package/dist/domain/graph/watcher.d.ts.map +1 -1
- package/dist/domain/graph/watcher.js +5 -2
- package/dist/domain/graph/watcher.js.map +1 -1
- package/dist/domain/parser.d.ts +10 -1
- package/dist/domain/parser.d.ts.map +1 -1
- package/dist/domain/parser.js +39 -7
- package/dist/domain/parser.js.map +1 -1
- package/dist/domain/wasm-worker-entry.js +25 -0
- package/dist/domain/wasm-worker-entry.js.map +1 -1
- package/dist/domain/wasm-worker-pool.d.ts.map +1 -1
- package/dist/domain/wasm-worker-pool.js +32 -0
- package/dist/domain/wasm-worker-pool.js.map +1 -1
- package/dist/domain/wasm-worker-protocol.d.ts +14 -1
- package/dist/domain/wasm-worker-protocol.d.ts.map +1 -1
- package/dist/extractors/c.js +3 -3
- package/dist/extractors/c.js.map +1 -1
- package/dist/extractors/clojure.js +1 -1
- package/dist/extractors/clojure.js.map +1 -1
- package/dist/extractors/cpp.js +3 -3
- package/dist/extractors/cpp.js.map +1 -1
- package/dist/extractors/csharp.d.ts.map +1 -1
- package/dist/extractors/csharp.js +37 -8
- package/dist/extractors/csharp.js.map +1 -1
- package/dist/extractors/cuda.js +3 -3
- package/dist/extractors/cuda.js.map +1 -1
- package/dist/extractors/elixir.js +6 -6
- package/dist/extractors/elixir.js.map +1 -1
- package/dist/extractors/fsharp.js +1 -1
- package/dist/extractors/fsharp.js.map +1 -1
- package/dist/extractors/go.js +5 -5
- package/dist/extractors/go.js.map +1 -1
- package/dist/extractors/haskell.js +1 -1
- package/dist/extractors/haskell.js.map +1 -1
- package/dist/extractors/java.js +2 -2
- package/dist/extractors/java.js.map +1 -1
- package/dist/extractors/javascript.d.ts +2 -0
- package/dist/extractors/javascript.d.ts.map +1 -1
- package/dist/extractors/javascript.js +1674 -64
- package/dist/extractors/javascript.js.map +1 -1
- package/dist/extractors/kotlin.js +5 -5
- package/dist/extractors/kotlin.js.map +1 -1
- package/dist/extractors/lua.js +1 -1
- package/dist/extractors/lua.js.map +1 -1
- package/dist/extractors/objc.js +3 -3
- package/dist/extractors/objc.js.map +1 -1
- package/dist/extractors/ocaml.js +1 -1
- package/dist/extractors/ocaml.js.map +1 -1
- package/dist/extractors/php.js +2 -2
- package/dist/extractors/php.js.map +1 -1
- package/dist/extractors/python.js +7 -7
- package/dist/extractors/python.js.map +1 -1
- package/dist/extractors/ruby.js +2 -2
- package/dist/extractors/ruby.js.map +1 -1
- package/dist/extractors/scala.js +1 -1
- package/dist/extractors/scala.js.map +1 -1
- package/dist/extractors/solidity.js +1 -1
- package/dist/extractors/solidity.js.map +1 -1
- package/dist/extractors/swift.js +4 -4
- package/dist/extractors/swift.js.map +1 -1
- package/dist/extractors/zig.js +4 -4
- package/dist/extractors/zig.js.map +1 -1
- package/dist/features/structure.d.ts.map +1 -1
- package/dist/features/structure.js +121 -16
- package/dist/features/structure.js.map +1 -1
- package/dist/infrastructure/config.d.ts +10 -0
- package/dist/infrastructure/config.d.ts.map +1 -1
- package/dist/infrastructure/config.js +15 -0
- package/dist/infrastructure/config.js.map +1 -1
- package/dist/infrastructure/native.d.ts +11 -0
- package/dist/infrastructure/native.d.ts.map +1 -1
- package/dist/infrastructure/native.js +78 -5
- package/dist/infrastructure/native.js.map +1 -1
- package/dist/presentation/queries-cli/overview.d.ts.map +1 -1
- package/dist/presentation/queries-cli/overview.js +5 -0
- package/dist/presentation/queries-cli/overview.js.map +1 -1
- package/dist/types.d.ts +184 -0
- package/dist/types.d.ts.map +1 -1
- package/grammars/tree-sitter-erlang.wasm +0 -0
- package/package.json +9 -9
- package/src/db/migrations.ts +7 -0
- package/src/domain/analysis/module-map.ts +29 -1
- package/src/domain/graph/builder/call-resolver.ts +351 -0
- package/src/domain/graph/builder/cha.ts +175 -0
- package/src/domain/graph/builder/context.ts +3 -0
- package/src/domain/graph/builder/helpers.ts +175 -5
- package/src/domain/graph/builder/incremental.ts +186 -66
- package/src/domain/graph/builder/stages/build-edges.ts +1146 -146
- package/src/domain/graph/builder/stages/detect-changes.ts +3 -1
- package/src/domain/graph/builder/stages/native-orchestrator.ts +583 -20
- package/src/domain/graph/builder/stages/resolve-imports.ts +14 -0
- package/src/domain/graph/journal.ts +1 -1
- package/src/domain/graph/resolver/points-to.ts +254 -0
- package/src/domain/graph/resolver/ts-resolver.ts +536 -0
- package/src/domain/graph/watcher.ts +4 -2
- package/src/domain/parser.ts +43 -5
- package/src/domain/wasm-worker-entry.ts +25 -0
- package/src/domain/wasm-worker-pool.ts +21 -0
- package/src/domain/wasm-worker-protocol.ts +14 -0
- package/src/extractors/c.ts +3 -3
- package/src/extractors/clojure.ts +1 -1
- package/src/extractors/cpp.ts +3 -3
- package/src/extractors/csharp.ts +33 -9
- package/src/extractors/cuda.ts +3 -3
- package/src/extractors/elixir.ts +6 -6
- package/src/extractors/fsharp.ts +1 -1
- package/src/extractors/go.ts +5 -5
- package/src/extractors/haskell.ts +1 -1
- package/src/extractors/java.ts +2 -2
- package/src/extractors/javascript.ts +1802 -66
- package/src/extractors/kotlin.ts +5 -5
- package/src/extractors/lua.ts +1 -1
- package/src/extractors/objc.ts +3 -3
- package/src/extractors/ocaml.ts +1 -1
- package/src/extractors/php.ts +2 -2
- package/src/extractors/python.ts +7 -7
- package/src/extractors/ruby.ts +2 -2
- package/src/extractors/scala.ts +1 -1
- package/src/extractors/solidity.ts +1 -1
- package/src/extractors/swift.ts +4 -4
- package/src/extractors/zig.ts +4 -4
- package/src/features/structure.ts +143 -23
- package/src/infrastructure/config.ts +15 -0
- package/src/infrastructure/native.ts +87 -5
- package/src/presentation/queries-cli/overview.ts +15 -1
- package/src/types.ts +194 -0
|
@@ -54,7 +54,13 @@ interface EmbeddingsInfo {
|
|
|
54
54
|
|
|
55
55
|
interface QualityInfo {
|
|
56
56
|
score: number;
|
|
57
|
-
callerCoverage: {
|
|
57
|
+
callerCoverage: {
|
|
58
|
+
ratio: number;
|
|
59
|
+
percentage: number;
|
|
60
|
+
covered: number;
|
|
61
|
+
total: number;
|
|
62
|
+
byTechnique?: Record<string, number>;
|
|
63
|
+
};
|
|
58
64
|
callConfidence: { ratio: number; highConf: number; total: number };
|
|
59
65
|
falsePositiveWarnings: { name: string; callerCount: number; file: string; line: number }[];
|
|
60
66
|
}
|
|
@@ -189,6 +195,14 @@ function printQuality(data: StatsData): void {
|
|
|
189
195
|
console.log(
|
|
190
196
|
` Caller coverage: ${(cc.ratio * 100).toFixed(1)}% (${cc.covered}/${cc.total} functions have >=1 caller)`,
|
|
191
197
|
);
|
|
198
|
+
if (cc.byTechnique && Object.keys(cc.byTechnique).length > 0) {
|
|
199
|
+
const entries = Object.entries(cc.byTechnique).sort((a, b) => b[1] - a[1]) as [
|
|
200
|
+
string,
|
|
201
|
+
number,
|
|
202
|
+
][];
|
|
203
|
+
const parts = entries.map(([k, v]) => `${k} ${v}`).join(' ');
|
|
204
|
+
console.log(` by technique: ${parts}`);
|
|
205
|
+
}
|
|
192
206
|
console.log(
|
|
193
207
|
` Call confidence: ${(cf.ratio * 100).toFixed(1)}% (${cf.highConf}/${cf.total} call edges are high-confidence)`,
|
|
194
208
|
);
|
package/src/types.ts
CHANGED
|
@@ -523,6 +523,125 @@ export interface TypeMapEntry {
|
|
|
523
523
|
confidence: number;
|
|
524
524
|
}
|
|
525
525
|
|
|
526
|
+
/**
|
|
527
|
+
* A variable assignment from a call expression, recorded during extraction for
|
|
528
|
+
* cross-file return-type propagation (Phase 8.2).
|
|
529
|
+
*/
|
|
530
|
+
export interface CallAssignment {
|
|
531
|
+
/** Variable being assigned to. */
|
|
532
|
+
varName: string;
|
|
533
|
+
/** Name of the function or method being called. */
|
|
534
|
+
calleeName: string;
|
|
535
|
+
/** Resolved receiver type, if the call is a method call (e.g. service.getRepo()). */
|
|
536
|
+
receiverTypeName?: string;
|
|
537
|
+
}
|
|
538
|
+
|
|
539
|
+
/**
|
|
540
|
+
* A function-reference binding recorded during extraction for points-to analysis (Phase 8.3).
|
|
541
|
+
* Captures `const fn = handler` or `const fn = obj.method` patterns where the right-hand
|
|
542
|
+
* side is a named function reference (not a call expression or literal).
|
|
543
|
+
*/
|
|
544
|
+
export interface FnRefBinding {
|
|
545
|
+
/** Variable being assigned (the left-hand side identifier). */
|
|
546
|
+
lhs: string;
|
|
547
|
+
/** Named function/property on the right-hand side. */
|
|
548
|
+
rhs: string;
|
|
549
|
+
/** If rhs is a member expression (obj.method), the receiver object name. */
|
|
550
|
+
rhsReceiver?: string;
|
|
551
|
+
}
|
|
552
|
+
|
|
553
|
+
/**
|
|
554
|
+
* An argument-to-parameter binding at a call site, recorded for parameter-flow
|
|
555
|
+
* points-to analysis (Phase 8.3c). Captures `f(x)` where `x` is an identifier
|
|
556
|
+
* that may carry a function reference into `f`'s parameter.
|
|
557
|
+
*/
|
|
558
|
+
export interface ParamBinding {
|
|
559
|
+
/** The function being called at the call site. */
|
|
560
|
+
callee: string;
|
|
561
|
+
/** Zero-based index of the argument. */
|
|
562
|
+
argIndex: number;
|
|
563
|
+
/** Identifier name of the argument being passed. */
|
|
564
|
+
argName: string;
|
|
565
|
+
}
|
|
566
|
+
|
|
567
|
+
/**
|
|
568
|
+
* A this-context binding recorded when `fn.call(namedCtx, ...)` or
|
|
569
|
+
* `fn.apply(namedCtx, ...)` is seen. Seeds `fn::this → namedCtx` in the
|
|
570
|
+
* points-to map so that `this()` calls inside `fn` resolve to `namedCtx`.
|
|
571
|
+
*/
|
|
572
|
+
export interface ThisCallBinding {
|
|
573
|
+
/** The function being invoked via .call() or .apply(). */
|
|
574
|
+
callee: string;
|
|
575
|
+
/** The identifier passed as the `this` context (first argument). */
|
|
576
|
+
thisArg: string;
|
|
577
|
+
}
|
|
578
|
+
|
|
579
|
+
/**
|
|
580
|
+
* An array-element binding: `const arr = [fn1, fn2]` records each named function
|
|
581
|
+
* stored at a specific index. Phase 8.3e: array-element pts tracking.
|
|
582
|
+
*/
|
|
583
|
+
export interface ArrayElemBinding {
|
|
584
|
+
arrayName: string;
|
|
585
|
+
index: number;
|
|
586
|
+
elemName: string;
|
|
587
|
+
}
|
|
588
|
+
|
|
589
|
+
/**
|
|
590
|
+
* A spread-argument binding: `f(...arr)` records that `arr` is spread into `f`'s
|
|
591
|
+
* parameter list starting at `startIndex`. Phase 8.3e.
|
|
592
|
+
*/
|
|
593
|
+
export interface SpreadArgBinding {
|
|
594
|
+
callee: string;
|
|
595
|
+
arrayName: string;
|
|
596
|
+
startIndex: number;
|
|
597
|
+
}
|
|
598
|
+
|
|
599
|
+
/**
|
|
600
|
+
* A for-of iteration binding: `for (const x of arr)` records that `x` receives
|
|
601
|
+
* each element of `arr` within `enclosingFunc`. Phase 8.3e.
|
|
602
|
+
*/
|
|
603
|
+
export interface ForOfBinding {
|
|
604
|
+
varName: string;
|
|
605
|
+
sourceName: string;
|
|
606
|
+
enclosingFunc: string;
|
|
607
|
+
}
|
|
608
|
+
|
|
609
|
+
/**
|
|
610
|
+
* An array-callback binding: `Array.from(arr, cb)` records that `cb`'s first
|
|
611
|
+
* parameter receives each element of `arr`. Phase 8.3e.
|
|
612
|
+
*/
|
|
613
|
+
export interface ArrayCallbackBinding {
|
|
614
|
+
sourceName: string;
|
|
615
|
+
calleeName: string;
|
|
616
|
+
}
|
|
617
|
+
|
|
618
|
+
/**
|
|
619
|
+
* An object-rest parameter binding: `function f({ a, ...rest })` records that
|
|
620
|
+
* `rest` is the rest of the object passed as argument `argIndex` to `f`.
|
|
621
|
+
* Phase 8.3f: object destructuring rest dispatch.
|
|
622
|
+
*/
|
|
623
|
+
export interface ObjectRestParamBinding {
|
|
624
|
+
/** Function that owns this rest parameter, e.g. "f3" */
|
|
625
|
+
callee: string;
|
|
626
|
+
/** Name of the rest binding, e.g. "eerest" */
|
|
627
|
+
restName: string;
|
|
628
|
+
/** Zero-based index of the argument whose rest is bound, e.g. 0 */
|
|
629
|
+
argIndex: number;
|
|
630
|
+
}
|
|
631
|
+
|
|
632
|
+
/**
|
|
633
|
+
* An object-property binding: `const obj = { e4 }` or `const obj = { e4: fn }` records
|
|
634
|
+
* that `obj.e4` points to the named function `fn`. Phase 8.3f.
|
|
635
|
+
*/
|
|
636
|
+
export interface ObjectPropBinding {
|
|
637
|
+
/** Variable holding the object, e.g. "obj" */
|
|
638
|
+
objectName: string;
|
|
639
|
+
/** Property name, e.g. "e4" */
|
|
640
|
+
propName: string;
|
|
641
|
+
/** Named function value, e.g. "e4" or "fn" */
|
|
642
|
+
valueName: string;
|
|
643
|
+
}
|
|
644
|
+
|
|
526
645
|
/** The normalized output shape returned by every language extractor. */
|
|
527
646
|
export interface ExtractorOutput {
|
|
528
647
|
definitions: Definition[];
|
|
@@ -531,6 +650,63 @@ export interface ExtractorOutput {
|
|
|
531
650
|
classes: ClassRelation[];
|
|
532
651
|
exports: Export[];
|
|
533
652
|
typeMap: Map<string, TypeMapEntry>;
|
|
653
|
+
/**
|
|
654
|
+
* Maps function/method names to their declared or inferred return types.
|
|
655
|
+
* Keys: plain name (e.g. "createUser") or qualified name (e.g. "UserService.getUser").
|
|
656
|
+
* Populated by JS/TS extractor; used for inter-procedural type propagation (Phase 8.2).
|
|
657
|
+
*/
|
|
658
|
+
returnTypeMap?: Map<string, TypeMapEntry>;
|
|
659
|
+
/**
|
|
660
|
+
* Variable assignments from call expressions that could not be resolved from the
|
|
661
|
+
* per-file returnTypeMap. Consumed by build-edges.ts to propagate cross-file return types.
|
|
662
|
+
*/
|
|
663
|
+
callAssignments?: CallAssignment[];
|
|
664
|
+
/**
|
|
665
|
+
* Function-reference bindings for points-to analysis (Phase 8.3).
|
|
666
|
+
* Records `const fn = handler` and `const fn = obj.method` patterns so the
|
|
667
|
+
* edge builder can follow aliases when a call target has no direct definition.
|
|
668
|
+
*/
|
|
669
|
+
fnRefBindings?: FnRefBinding[];
|
|
670
|
+
/**
|
|
671
|
+
* Argument-to-parameter bindings for parameter-flow points-to analysis (Phase 8.3c).
|
|
672
|
+
* Records `f(x)` call sites where `x` is an identifier, enabling the pts solver
|
|
673
|
+
* to propagate function references through function parameters.
|
|
674
|
+
*/
|
|
675
|
+
paramBindings?: ParamBinding[];
|
|
676
|
+
/** Phase 8.3e: array-element bindings from `const arr = [fn1, fn2]` patterns. */
|
|
677
|
+
arrayElemBindings?: ArrayElemBinding[];
|
|
678
|
+
/** Phase 8.3e: spread-argument bindings from `f(...arr)` call sites. */
|
|
679
|
+
spreadArgBindings?: SpreadArgBinding[];
|
|
680
|
+
/** Phase 8.3e: for-of iteration variable bindings. */
|
|
681
|
+
forOfBindings?: ForOfBinding[];
|
|
682
|
+
/** Phase 8.3e: array callback bindings from Array.from/forEach/etc. */
|
|
683
|
+
arrayCallbackBindings?: ArrayCallbackBinding[];
|
|
684
|
+
/** Phase 8.3f: object-rest parameter bindings from `function f({ ...rest })` patterns. */
|
|
685
|
+
objectRestParamBindings?: ObjectRestParamBinding[];
|
|
686
|
+
/** Phase 8.3f: object-property bindings from `const obj = { fn }` patterns. */
|
|
687
|
+
objectPropBindings?: ObjectPropBinding[];
|
|
688
|
+
/**
|
|
689
|
+
* This-context bindings from `fn.call(namedCtx, ...)` / `fn.apply(namedCtx, ...)`.
|
|
690
|
+
* Seeds `fn::this → namedCtx` in the points-to map so that `this()` calls inside
|
|
691
|
+
* `fn` resolve to `namedCtx` when `fn` is invoked via `.call()`/`.apply()`.
|
|
692
|
+
*/
|
|
693
|
+
thisCallBindings?: ThisCallBinding[];
|
|
694
|
+
/**
|
|
695
|
+
* Phase 8.5 (RTA): constructor names from all `new X()` expressions in the file,
|
|
696
|
+
* including unassigned ones (e.g. `doSomething(new Foo())`). Used to build the
|
|
697
|
+
* project-wide instantiated-types set for Rapid Type Analysis filtering.
|
|
698
|
+
*/
|
|
699
|
+
newExpressions?: readonly string[];
|
|
700
|
+
/**
|
|
701
|
+
* Object.defineProperty receiver bindings: maps function name → target object name.
|
|
702
|
+
* Records `Object.defineProperty(obj, "bar", { get: getter })` so the edge builder
|
|
703
|
+
* can resolve `this.X()` calls inside `getter` as `obj.X()` (this === obj when the
|
|
704
|
+
* accessor is invoked through the property).
|
|
705
|
+
*
|
|
706
|
+
* Example: `Object.defineProperty(obj, "bar", { get: getter })` emits
|
|
707
|
+
* `definePropertyReceivers.set("getter", "obj")`.
|
|
708
|
+
*/
|
|
709
|
+
definePropertyReceivers?: Map<string, string>;
|
|
534
710
|
/** WASM tree retained for downstream analysis (complexity, CFG, dataflow). */
|
|
535
711
|
_tree?: TreeSitterTree;
|
|
536
712
|
/** Language identifier. */
|
|
@@ -1092,6 +1268,8 @@ export interface BuildResult {
|
|
|
1092
1268
|
edgesMs: number;
|
|
1093
1269
|
structureMs: number;
|
|
1094
1270
|
rolesMs: number;
|
|
1271
|
+
/** Wall-clock time for the this/super dispatch WASM post-pass (native path only). */
|
|
1272
|
+
thisDispatchMs?: number;
|
|
1095
1273
|
astMs: number;
|
|
1096
1274
|
complexityMs: number;
|
|
1097
1275
|
cfgMs: number;
|
|
@@ -1119,6 +1297,14 @@ export interface CodegraphConfig {
|
|
|
1119
1297
|
dbPath: string;
|
|
1120
1298
|
driftThreshold: number;
|
|
1121
1299
|
smallFilesThreshold: number;
|
|
1300
|
+
/**
|
|
1301
|
+
* Use the TypeScript compiler API to enrich typeMap for .ts/.tsx files.
|
|
1302
|
+
* Improves method-call edge accuracy for patterns like `const svc = container.get<MyService>()`.
|
|
1303
|
+
* Disabled by default because `ts.createProgram` adds ~1s overhead per build;
|
|
1304
|
+
* enable in `.codegraphrc.json` when you need accurate type-resolved call edges.
|
|
1305
|
+
* Default: false.
|
|
1306
|
+
*/
|
|
1307
|
+
typescriptResolver: boolean;
|
|
1122
1308
|
};
|
|
1123
1309
|
|
|
1124
1310
|
query: {
|
|
@@ -1189,6 +1375,14 @@ export interface CodegraphConfig {
|
|
|
1189
1375
|
briefImporterDepth: number;
|
|
1190
1376
|
briefHighRiskCallers: number;
|
|
1191
1377
|
briefMediumRiskCallers: number;
|
|
1378
|
+
/** Maximum chain depth for inter-procedural return-type propagation (Phase 8.2). */
|
|
1379
|
+
typePropagationDepth: number;
|
|
1380
|
+
/**
|
|
1381
|
+
* Maximum fixed-point iterations for the Phase 8.3 points-to solver.
|
|
1382
|
+
* @reserved — currently not wired to either solver; both use a hardcoded
|
|
1383
|
+
* constant of 50. See TODO in `src/infrastructure/config.ts`.
|
|
1384
|
+
*/
|
|
1385
|
+
pointsToMaxIterations: number;
|
|
1192
1386
|
};
|
|
1193
1387
|
|
|
1194
1388
|
community: {
|