@optave/codegraph 3.3.1 → 3.4.1
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 +31 -28
- package/dist/ast-analysis/engine.d.ts +15 -13
- package/dist/ast-analysis/engine.d.ts.map +1 -1
- package/dist/ast-analysis/engine.js +33 -25
- package/dist/ast-analysis/engine.js.map +1 -1
- package/dist/ast-analysis/metrics.d.ts +4 -18
- package/dist/ast-analysis/metrics.d.ts.map +1 -1
- package/dist/ast-analysis/metrics.js.map +1 -1
- package/dist/ast-analysis/rules/csharp.d.ts +6 -23
- package/dist/ast-analysis/rules/csharp.d.ts.map +1 -1
- package/dist/ast-analysis/rules/csharp.js +0 -3
- package/dist/ast-analysis/rules/csharp.js.map +1 -1
- package/dist/ast-analysis/rules/go.d.ts +6 -23
- package/dist/ast-analysis/rules/go.d.ts.map +1 -1
- package/dist/ast-analysis/rules/go.js +0 -3
- package/dist/ast-analysis/rules/go.js.map +1 -1
- package/dist/ast-analysis/rules/index.d.ts +6 -30
- package/dist/ast-analysis/rules/index.d.ts.map +1 -1
- package/dist/ast-analysis/rules/index.js +0 -5
- package/dist/ast-analysis/rules/index.js.map +1 -1
- package/dist/ast-analysis/rules/java.d.ts +6 -23
- package/dist/ast-analysis/rules/java.d.ts.map +1 -1
- package/dist/ast-analysis/rules/java.js +0 -3
- package/dist/ast-analysis/rules/java.js.map +1 -1
- package/dist/ast-analysis/rules/javascript.d.ts +6 -30
- package/dist/ast-analysis/rules/javascript.d.ts.map +1 -1
- package/dist/ast-analysis/rules/javascript.js +0 -5
- package/dist/ast-analysis/rules/javascript.js.map +1 -1
- package/dist/ast-analysis/rules/php.d.ts +6 -23
- package/dist/ast-analysis/rules/php.d.ts.map +1 -1
- package/dist/ast-analysis/rules/php.js +0 -3
- package/dist/ast-analysis/rules/php.js.map +1 -1
- package/dist/ast-analysis/rules/python.d.ts +6 -23
- package/dist/ast-analysis/rules/python.d.ts.map +1 -1
- package/dist/ast-analysis/rules/python.js +0 -3
- package/dist/ast-analysis/rules/python.js.map +1 -1
- package/dist/ast-analysis/rules/ruby.d.ts +6 -23
- package/dist/ast-analysis/rules/ruby.d.ts.map +1 -1
- package/dist/ast-analysis/rules/ruby.js +0 -3
- package/dist/ast-analysis/rules/ruby.js.map +1 -1
- package/dist/ast-analysis/rules/rust.d.ts +6 -23
- package/dist/ast-analysis/rules/rust.d.ts.map +1 -1
- package/dist/ast-analysis/rules/rust.js +0 -3
- package/dist/ast-analysis/rules/rust.js.map +1 -1
- package/dist/ast-analysis/shared.d.ts +11 -105
- package/dist/ast-analysis/shared.d.ts.map +1 -1
- package/dist/ast-analysis/shared.js +0 -27
- package/dist/ast-analysis/shared.js.map +1 -1
- package/dist/ast-analysis/visitor-utils.d.ts +36 -11
- package/dist/ast-analysis/visitor-utils.d.ts.map +1 -1
- package/dist/ast-analysis/visitor-utils.js.map +1 -1
- package/dist/ast-analysis/visitor.d.ts +2 -94
- package/dist/ast-analysis/visitor.d.ts.map +1 -1
- package/dist/ast-analysis/visitor.js +0 -16
- package/dist/ast-analysis/visitor.js.map +1 -1
- package/dist/ast-analysis/visitors/ast-store-visitor.d.ts +2 -10
- package/dist/ast-analysis/visitors/ast-store-visitor.d.ts.map +1 -1
- package/dist/ast-analysis/visitors/ast-store-visitor.js +10 -20
- package/dist/ast-analysis/visitors/ast-store-visitor.js.map +1 -1
- package/dist/ast-analysis/visitors/cfg-conditionals.d.ts +5 -0
- package/dist/ast-analysis/visitors/cfg-conditionals.d.ts.map +1 -0
- package/dist/ast-analysis/visitors/cfg-conditionals.js +166 -0
- package/dist/ast-analysis/visitors/cfg-conditionals.js.map +1 -0
- package/dist/ast-analysis/visitors/cfg-loops.d.ts +7 -0
- package/dist/ast-analysis/visitors/cfg-loops.d.ts.map +1 -0
- package/dist/ast-analysis/visitors/cfg-loops.js +73 -0
- package/dist/ast-analysis/visitors/cfg-loops.js.map +1 -0
- package/dist/ast-analysis/visitors/cfg-shared.d.ts +56 -0
- package/dist/ast-analysis/visitors/cfg-shared.d.ts.map +1 -0
- package/dist/ast-analysis/visitors/cfg-shared.js +107 -0
- package/dist/ast-analysis/visitors/cfg-shared.js.map +1 -0
- package/dist/ast-analysis/visitors/cfg-try-catch.d.ts +4 -0
- package/dist/ast-analysis/visitors/cfg-try-catch.d.ts.map +1 -0
- package/dist/ast-analysis/visitors/cfg-try-catch.js +100 -0
- package/dist/ast-analysis/visitors/cfg-try-catch.js.map +1 -0
- package/dist/ast-analysis/visitors/cfg-visitor.d.ts +4 -7
- package/dist/ast-analysis/visitors/cfg-visitor.d.ts.map +1 -1
- package/dist/ast-analysis/visitors/cfg-visitor.js +12 -491
- package/dist/ast-analysis/visitors/cfg-visitor.js.map +1 -1
- package/dist/ast-analysis/visitors/complexity-visitor.d.ts +6 -15
- package/dist/ast-analysis/visitors/complexity-visitor.d.ts.map +1 -1
- package/dist/ast-analysis/visitors/complexity-visitor.js +6 -41
- package/dist/ast-analysis/visitors/complexity-visitor.js.map +1 -1
- package/dist/ast-analysis/visitors/dataflow-visitor.d.ts +4 -7
- package/dist/ast-analysis/visitors/dataflow-visitor.d.ts.map +1 -1
- package/dist/ast-analysis/visitors/dataflow-visitor.js +19 -33
- package/dist/ast-analysis/visitors/dataflow-visitor.js.map +1 -1
- package/dist/cli/commands/ast.d.ts +2 -8
- package/dist/cli/commands/ast.d.ts.map +1 -1
- package/dist/cli/commands/ast.js.map +1 -1
- package/dist/cli/commands/audit.d.ts +2 -8
- package/dist/cli/commands/audit.d.ts.map +1 -1
- package/dist/cli/commands/audit.js.map +1 -1
- package/dist/cli/commands/batch.d.ts +2 -8
- package/dist/cli/commands/batch.d.ts.map +1 -1
- package/dist/cli/commands/batch.js +11 -4
- package/dist/cli/commands/batch.js.map +1 -1
- package/dist/cli/commands/branch-compare.d.ts +2 -6
- package/dist/cli/commands/branch-compare.d.ts.map +1 -1
- package/dist/cli/commands/branch-compare.js.map +1 -1
- package/dist/cli/commands/brief.d.ts +2 -6
- package/dist/cli/commands/brief.d.ts.map +1 -1
- package/dist/cli/commands/brief.js.map +1 -1
- package/dist/cli/commands/build.d.ts +2 -6
- package/dist/cli/commands/build.d.ts.map +1 -1
- package/dist/cli/commands/build.js +1 -1
- package/dist/cli/commands/build.js.map +1 -1
- package/dist/cli/commands/cfg.d.ts +2 -9
- package/dist/cli/commands/cfg.d.ts.map +1 -1
- package/dist/cli/commands/cfg.js.map +1 -1
- package/dist/cli/commands/check.d.ts +2 -7
- package/dist/cli/commands/check.d.ts.map +1 -1
- package/dist/cli/commands/check.js.map +1 -1
- package/dist/cli/commands/children.d.ts +2 -8
- package/dist/cli/commands/children.d.ts.map +1 -1
- package/dist/cli/commands/children.js.map +1 -1
- package/dist/cli/commands/co-change.d.ts +2 -6
- package/dist/cli/commands/co-change.d.ts.map +1 -1
- package/dist/cli/commands/co-change.js +9 -5
- package/dist/cli/commands/co-change.js.map +1 -1
- package/dist/cli/commands/communities.d.ts +2 -7
- package/dist/cli/commands/communities.d.ts.map +1 -1
- package/dist/cli/commands/communities.js.map +1 -1
- package/dist/cli/commands/complexity.d.ts +2 -8
- package/dist/cli/commands/complexity.d.ts.map +1 -1
- package/dist/cli/commands/complexity.js.map +1 -1
- package/dist/cli/commands/context.d.ts +2 -9
- package/dist/cli/commands/context.d.ts.map +1 -1
- package/dist/cli/commands/context.js.map +1 -1
- package/dist/cli/commands/cycles.d.ts +2 -6
- package/dist/cli/commands/cycles.d.ts.map +1 -1
- package/dist/cli/commands/cycles.js.map +1 -1
- package/dist/cli/commands/dataflow.d.ts +2 -9
- package/dist/cli/commands/dataflow.d.ts.map +1 -1
- package/dist/cli/commands/dataflow.js.map +1 -1
- package/dist/cli/commands/deps.d.ts +2 -7
- package/dist/cli/commands/deps.d.ts.map +1 -1
- package/dist/cli/commands/deps.js.map +1 -1
- package/dist/cli/commands/diff-impact.d.ts +2 -6
- package/dist/cli/commands/diff-impact.d.ts.map +1 -1
- package/dist/cli/commands/diff-impact.js.map +1 -1
- package/dist/cli/commands/embed.d.ts +2 -7
- package/dist/cli/commands/embed.d.ts.map +1 -1
- package/dist/cli/commands/embed.js +2 -1
- package/dist/cli/commands/embed.js.map +1 -1
- package/dist/cli/commands/export.d.ts +2 -6
- package/dist/cli/commands/export.d.ts.map +1 -1
- package/dist/cli/commands/export.js.map +1 -1
- package/dist/cli/commands/exports.d.ts +2 -7
- package/dist/cli/commands/exports.d.ts.map +1 -1
- package/dist/cli/commands/exports.js.map +1 -1
- package/dist/cli/commands/flow.d.ts +2 -9
- package/dist/cli/commands/flow.d.ts.map +1 -1
- package/dist/cli/commands/flow.js.map +1 -1
- package/dist/cli/commands/fn-impact.d.ts +2 -9
- package/dist/cli/commands/fn-impact.d.ts.map +1 -1
- package/dist/cli/commands/fn-impact.js.map +1 -1
- package/dist/cli/commands/impact.d.ts +2 -6
- package/dist/cli/commands/impact.d.ts.map +1 -1
- package/dist/cli/commands/impact.js.map +1 -1
- package/dist/cli/commands/implementations.d.ts +2 -9
- package/dist/cli/commands/implementations.d.ts.map +1 -1
- package/dist/cli/commands/implementations.js.map +1 -1
- package/dist/cli/commands/info.d.ts +2 -5
- package/dist/cli/commands/info.d.ts.map +1 -1
- package/dist/cli/commands/info.js.map +1 -1
- package/dist/cli/commands/interfaces.d.ts +2 -9
- package/dist/cli/commands/interfaces.d.ts.map +1 -1
- package/dist/cli/commands/interfaces.js.map +1 -1
- package/dist/cli/commands/map.d.ts +2 -6
- package/dist/cli/commands/map.d.ts.map +1 -1
- package/dist/cli/commands/map.js.map +1 -1
- package/dist/cli/commands/mcp.d.ts +2 -6
- package/dist/cli/commands/mcp.d.ts.map +1 -1
- package/dist/cli/commands/mcp.js +4 -5
- package/dist/cli/commands/mcp.js.map +1 -1
- package/dist/cli/commands/models.d.ts +2 -5
- package/dist/cli/commands/models.d.ts.map +1 -1
- package/dist/cli/commands/models.js +5 -3
- package/dist/cli/commands/models.js.map +1 -1
- package/dist/cli/commands/owners.d.ts +2 -7
- package/dist/cli/commands/owners.d.ts.map +1 -1
- package/dist/cli/commands/owners.js.map +1 -1
- package/dist/cli/commands/path.d.ts +2 -7
- package/dist/cli/commands/path.d.ts.map +1 -1
- package/dist/cli/commands/path.js +7 -2
- package/dist/cli/commands/path.js.map +1 -1
- package/dist/cli/commands/plot.d.ts +2 -6
- package/dist/cli/commands/plot.d.ts.map +1 -1
- package/dist/cli/commands/plot.js +3 -1
- package/dist/cli/commands/plot.js.map +1 -1
- package/dist/cli/commands/query.d.ts +2 -9
- package/dist/cli/commands/query.d.ts.map +1 -1
- package/dist/cli/commands/query.js.map +1 -1
- package/dist/cli/commands/registry.d.ts +2 -15
- package/dist/cli/commands/registry.d.ts.map +1 -1
- package/dist/cli/commands/registry.js.map +1 -1
- package/dist/cli/commands/roles.d.ts +2 -8
- package/dist/cli/commands/roles.d.ts.map +1 -1
- package/dist/cli/commands/roles.js.map +1 -1
- package/dist/cli/commands/search.d.ts +2 -8
- package/dist/cli/commands/search.d.ts.map +1 -1
- package/dist/cli/commands/search.js +1 -5
- package/dist/cli/commands/search.js.map +1 -1
- package/dist/cli/commands/sequence.d.ts +2 -9
- package/dist/cli/commands/sequence.d.ts.map +1 -1
- package/dist/cli/commands/sequence.js.map +1 -1
- package/dist/cli/commands/snapshot.d.ts +2 -10
- package/dist/cli/commands/snapshot.d.ts.map +1 -1
- package/dist/cli/commands/snapshot.js.map +1 -1
- package/dist/cli/commands/stats.d.ts +2 -6
- package/dist/cli/commands/stats.d.ts.map +1 -1
- package/dist/cli/commands/stats.js.map +1 -1
- package/dist/cli/commands/structure.d.ts +2 -6
- package/dist/cli/commands/structure.d.ts.map +1 -1
- package/dist/cli/commands/structure.js.map +1 -1
- package/dist/cli/commands/triage.d.ts +2 -7
- package/dist/cli/commands/triage.d.ts.map +1 -1
- package/dist/cli/commands/triage.js.map +1 -1
- package/dist/cli/commands/watch.d.ts +2 -5
- package/dist/cli/commands/watch.d.ts.map +1 -1
- package/dist/cli/commands/watch.js.map +1 -1
- package/dist/cli/commands/where.d.ts +2 -8
- package/dist/cli/commands/where.d.ts.map +1 -1
- package/dist/cli/commands/where.js +1 -1
- package/dist/cli/commands/where.js.map +1 -1
- package/dist/cli/index.d.ts +8 -17
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +25 -5
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/shared/open-graph.d.ts +4 -7
- package/dist/cli/shared/open-graph.d.ts.map +1 -1
- package/dist/cli/shared/open-graph.js +0 -4
- package/dist/cli/shared/open-graph.js.map +1 -1
- package/dist/cli/shared/options.d.ts +8 -15
- package/dist/cli/shared/options.d.ts.map +1 -1
- package/dist/cli/shared/options.js +0 -2
- package/dist/cli/shared/options.js.map +1 -1
- package/dist/cli/shared/output.d.ts +1 -1
- package/dist/cli/shared/output.d.ts.map +1 -1
- package/dist/cli/shared/output.js.map +1 -1
- package/dist/cli/types.d.ts +30 -0
- package/dist/cli/types.d.ts.map +1 -0
- package/dist/cli/types.js +2 -0
- package/dist/cli/types.js.map +1 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +2 -2
- package/dist/cli.js.map +1 -1
- package/dist/db/connection.d.ts +30 -17
- package/dist/db/connection.d.ts.map +1 -1
- package/dist/db/connection.js +92 -11
- package/dist/db/connection.js.map +1 -1
- package/dist/db/index.d.ts +5 -4
- package/dist/db/index.d.ts.map +1 -1
- package/dist/db/index.js +2 -2
- package/dist/db/index.js.map +1 -1
- package/dist/db/migrations.d.ts +8 -5
- package/dist/db/migrations.d.ts.map +1 -1
- package/dist/db/migrations.js +13 -3
- package/dist/db/migrations.js.map +1 -1
- package/dist/db/query-builder.d.ts +28 -46
- package/dist/db/query-builder.d.ts.map +1 -1
- package/dist/db/query-builder.js +2 -21
- package/dist/db/query-builder.js.map +1 -1
- package/dist/db/repository/base.d.ts +38 -101
- package/dist/db/repository/base.d.ts.map +1 -1
- package/dist/db/repository/base.js +6 -38
- package/dist/db/repository/base.js.map +1 -1
- package/dist/db/repository/build-stmts.d.ts +7 -16
- package/dist/db/repository/build-stmts.d.ts.map +1 -1
- package/dist/db/repository/build-stmts.js +0 -17
- package/dist/db/repository/build-stmts.js.map +1 -1
- package/dist/db/repository/cached-stmt.d.ts +2 -6
- package/dist/db/repository/cached-stmt.d.ts.map +1 -1
- package/dist/db/repository/cached-stmt.js +0 -5
- package/dist/db/repository/cached-stmt.js.map +1 -1
- package/dist/db/repository/cfg.d.ts +21 -14
- package/dist/db/repository/cfg.d.ts.map +1 -1
- package/dist/db/repository/cfg.js +0 -11
- package/dist/db/repository/cfg.js.map +1 -1
- package/dist/db/repository/cochange.d.ts +4 -10
- package/dist/db/repository/cochange.d.ts.map +1 -1
- package/dist/db/repository/cochange.js +0 -7
- package/dist/db/repository/cochange.js.map +1 -1
- package/dist/db/repository/complexity.d.ts +2 -10
- package/dist/db/repository/complexity.d.ts.map +1 -1
- package/dist/db/repository/complexity.js +0 -3
- package/dist/db/repository/complexity.js.map +1 -1
- package/dist/db/repository/dataflow.d.ts +2 -3
- package/dist/db/repository/dataflow.d.ts.map +1 -1
- package/dist/db/repository/dataflow.js +2 -3
- package/dist/db/repository/dataflow.js.map +1 -1
- package/dist/db/repository/edges.d.ts +25 -132
- package/dist/db/repository/edges.d.ts.map +1 -1
- package/dist/db/repository/edges.js +2 -58
- package/dist/db/repository/edges.js.map +1 -1
- package/dist/db/repository/embeddings.d.ts +4 -10
- package/dist/db/repository/embeddings.d.ts.map +1 -1
- package/dist/db/repository/embeddings.js +1 -8
- package/dist/db/repository/embeddings.js.map +1 -1
- package/dist/db/repository/graph-read.d.ts +5 -28
- package/dist/db/repository/graph-read.d.ts.map +1 -1
- package/dist/db/repository/graph-read.js +0 -8
- package/dist/db/repository/graph-read.js.map +1 -1
- package/dist/db/repository/in-memory-repository.d.ts +73 -141
- package/dist/db/repository/in-memory-repository.d.ts.map +1 -1
- package/dist/db/repository/in-memory-repository.js +28 -20
- package/dist/db/repository/in-memory-repository.js.map +1 -1
- package/dist/db/repository/index.d.ts +13 -13
- package/dist/db/repository/index.d.ts.map +1 -1
- package/dist/db/repository/index.js +1 -1
- package/dist/db/repository/index.js.map +1 -1
- package/dist/db/repository/nodes.d.ts +40 -105
- package/dist/db/repository/nodes.d.ts.map +1 -1
- package/dist/db/repository/nodes.js +29 -74
- package/dist/db/repository/nodes.js.map +1 -1
- package/dist/db/repository/sqlite-repository.d.ts +48 -93
- package/dist/db/repository/sqlite-repository.d.ts.map +1 -1
- package/dist/db/repository/sqlite-repository.js +7 -2
- package/dist/db/repository/sqlite-repository.js.map +1 -1
- package/dist/domain/analysis/brief.d.ts +16 -7
- package/dist/domain/analysis/brief.d.ts.map +1 -1
- package/dist/domain/analysis/brief.js +0 -7
- package/dist/domain/analysis/brief.js.map +1 -1
- package/dist/domain/analysis/context.d.ts +240 -2
- package/dist/domain/analysis/context.d.ts.map +1 -1
- package/dist/domain/analysis/context.js +37 -32
- package/dist/domain/analysis/context.js.map +1 -1
- package/dist/domain/analysis/dependencies.d.ts +161 -36
- package/dist/domain/analysis/dependencies.d.ts.map +1 -1
- package/dist/domain/analysis/dependencies.js +165 -27
- package/dist/domain/analysis/dependencies.js.map +1 -1
- package/dist/domain/analysis/diff-impact.d.ts +76 -0
- package/dist/domain/analysis/diff-impact.d.ts.map +1 -0
- package/dist/domain/analysis/diff-impact.js +282 -0
- package/dist/domain/analysis/diff-impact.js.map +1 -0
- package/dist/domain/analysis/exports.d.ts +7 -1
- package/dist/domain/analysis/exports.d.ts.map +1 -1
- package/dist/domain/analysis/exports.js +47 -33
- package/dist/domain/analysis/exports.js.map +1 -1
- package/dist/domain/analysis/fn-impact.d.ts +66 -0
- package/dist/domain/analysis/fn-impact.d.ts.map +1 -0
- package/dist/domain/analysis/fn-impact.js +189 -0
- package/dist/domain/analysis/fn-impact.js.map +1 -0
- package/dist/domain/analysis/impact.d.ts +7 -35
- package/dist/domain/analysis/impact.d.ts.map +1 -1
- package/dist/domain/analysis/impact.js +7 -607
- package/dist/domain/analysis/impact.js.map +1 -1
- package/dist/domain/analysis/implementations.d.ts +28 -28
- package/dist/domain/analysis/implementations.d.ts.map +1 -1
- package/dist/domain/analysis/implementations.js +0 -10
- package/dist/domain/analysis/implementations.js.map +1 -1
- package/dist/domain/analysis/module-map.d.ts +44 -24
- package/dist/domain/analysis/module-map.d.ts.map +1 -1
- package/dist/domain/analysis/module-map.js +16 -6
- package/dist/domain/analysis/module-map.js.map +1 -1
- package/dist/domain/analysis/roles.d.ts +13 -1
- package/dist/domain/analysis/roles.d.ts.map +1 -1
- package/dist/domain/analysis/roles.js +10 -2
- package/dist/domain/analysis/roles.js.map +1 -1
- package/dist/domain/analysis/symbol-lookup.d.ts +120 -7
- package/dist/domain/analysis/symbol-lookup.d.ts.map +1 -1
- package/dist/domain/analysis/symbol-lookup.js +11 -7
- package/dist/domain/analysis/symbol-lookup.js.map +1 -1
- package/dist/domain/graph/builder/context.d.ts +31 -67
- package/dist/domain/graph/builder/context.d.ts.map +1 -1
- package/dist/domain/graph/builder/context.js +0 -36
- package/dist/domain/graph/builder/context.js.map +1 -1
- package/dist/domain/graph/builder/helpers.d.ts +13 -14
- package/dist/domain/graph/builder/helpers.d.ts.map +1 -1
- package/dist/domain/graph/builder/helpers.js +63 -25
- package/dist/domain/graph/builder/helpers.js.map +1 -1
- package/dist/domain/graph/builder/incremental.d.ts +49 -13
- package/dist/domain/graph/builder/incremental.d.ts.map +1 -1
- package/dist/domain/graph/builder/incremental.js +10 -19
- package/dist/domain/graph/builder/incremental.js.map +1 -1
- package/dist/domain/graph/builder/pipeline.d.ts +2 -7
- package/dist/domain/graph/builder/pipeline.d.ts.map +1 -1
- package/dist/domain/graph/builder/pipeline.js +27 -19
- package/dist/domain/graph/builder/pipeline.js.map +1 -1
- package/dist/domain/graph/builder/stages/build-edges.d.ts +2 -4
- package/dist/domain/graph/builder/stages/build-edges.d.ts.map +1 -1
- package/dist/domain/graph/builder/stages/build-edges.js +18 -14
- package/dist/domain/graph/builder/stages/build-edges.js.map +1 -1
- package/dist/domain/graph/builder/stages/build-structure.d.ts +2 -4
- package/dist/domain/graph/builder/stages/build-structure.d.ts.map +1 -1
- package/dist/domain/graph/builder/stages/build-structure.js +159 -63
- package/dist/domain/graph/builder/stages/build-structure.js.map +1 -1
- package/dist/domain/graph/builder/stages/collect-files.d.ts +2 -4
- package/dist/domain/graph/builder/stages/collect-files.d.ts.map +1 -1
- package/dist/domain/graph/builder/stages/collect-files.js +0 -3
- package/dist/domain/graph/builder/stages/collect-files.js.map +1 -1
- package/dist/domain/graph/builder/stages/detect-changes.d.ts +2 -4
- package/dist/domain/graph/builder/stages/detect-changes.d.ts.map +1 -1
- package/dist/domain/graph/builder/stages/detect-changes.js +32 -39
- package/dist/domain/graph/builder/stages/detect-changes.js.map +1 -1
- package/dist/domain/graph/builder/stages/finalize.d.ts +2 -4
- package/dist/domain/graph/builder/stages/finalize.d.ts.map +1 -1
- package/dist/domain/graph/builder/stages/finalize.js +102 -59
- package/dist/domain/graph/builder/stages/finalize.js.map +1 -1
- package/dist/domain/graph/builder/stages/insert-nodes.d.ts +2 -4
- package/dist/domain/graph/builder/stages/insert-nodes.d.ts.map +1 -1
- package/dist/domain/graph/builder/stages/insert-nodes.js +57 -33
- package/dist/domain/graph/builder/stages/insert-nodes.js.map +1 -1
- package/dist/domain/graph/builder/stages/parse-files.d.ts +2 -4
- package/dist/domain/graph/builder/stages/parse-files.d.ts.map +1 -1
- package/dist/domain/graph/builder/stages/parse-files.js +0 -3
- package/dist/domain/graph/builder/stages/parse-files.js.map +1 -1
- package/dist/domain/graph/builder/stages/resolve-imports.d.ts +5 -17
- package/dist/domain/graph/builder/stages/resolve-imports.d.ts.map +1 -1
- package/dist/domain/graph/builder/stages/resolve-imports.js +58 -33
- package/dist/domain/graph/builder/stages/resolve-imports.js.map +1 -1
- package/dist/domain/graph/builder/stages/run-analyses.d.ts +2 -4
- package/dist/domain/graph/builder/stages/run-analyses.d.ts.map +1 -1
- package/dist/domain/graph/builder/stages/run-analyses.js +3 -4
- package/dist/domain/graph/builder/stages/run-analyses.js.map +1 -1
- package/dist/domain/graph/builder.d.ts +3 -3
- package/dist/domain/graph/builder.d.ts.map +1 -1
- package/dist/domain/graph/builder.js.map +1 -1
- package/dist/domain/graph/change-journal.d.ts +39 -46
- package/dist/domain/graph/change-journal.d.ts.map +1 -1
- package/dist/domain/graph/change-journal.js +1 -24
- package/dist/domain/graph/change-journal.js.map +1 -1
- package/dist/domain/graph/cycles.d.ts +10 -17
- package/dist/domain/graph/cycles.d.ts.map +1 -1
- package/dist/domain/graph/cycles.js +2 -22
- package/dist/domain/graph/cycles.js.map +1 -1
- package/dist/domain/graph/journal.d.ts +13 -25
- package/dist/domain/graph/journal.d.ts.map +1 -1
- package/dist/domain/graph/journal.js +0 -14
- package/dist/domain/graph/journal.js.map +1 -1
- package/dist/domain/graph/resolve.d.ts +20 -25
- package/dist/domain/graph/resolve.d.ts.map +1 -1
- package/dist/domain/graph/resolve.js +70 -15
- package/dist/domain/graph/resolve.js.map +1 -1
- package/dist/domain/graph/watcher.d.ts +3 -1
- package/dist/domain/graph/watcher.d.ts.map +1 -1
- package/dist/domain/graph/watcher.js +11 -5
- package/dist/domain/graph/watcher.js.map +1 -1
- package/dist/domain/parser.d.ts +26 -72
- package/dist/domain/parser.d.ts.map +1 -1
- package/dist/domain/parser.js +42 -51
- package/dist/domain/parser.js.map +1 -1
- package/dist/domain/queries.d.ts +21 -13
- package/dist/domain/queries.d.ts.map +1 -1
- package/dist/domain/queries.js +4 -3
- package/dist/domain/queries.js.map +1 -1
- package/dist/domain/search/generator.d.ts +5 -9
- package/dist/domain/search/generator.d.ts.map +1 -1
- package/dist/domain/search/generator.js +4 -8
- package/dist/domain/search/generator.js.map +1 -1
- package/dist/domain/search/index.d.ts +14 -7
- package/dist/domain/search/index.d.ts.map +1 -1
- package/dist/domain/search/index.js.map +1 -1
- package/dist/domain/search/models.d.ts +17 -60
- package/dist/domain/search/models.d.ts.map +1 -1
- package/dist/domain/search/models.js +13 -9
- package/dist/domain/search/models.js.map +1 -1
- package/dist/domain/search/search/cli-formatter.d.ts +9 -5
- package/dist/domain/search/search/cli-formatter.d.ts.map +1 -1
- package/dist/domain/search/search/cli-formatter.js +4 -10
- package/dist/domain/search/search/cli-formatter.js.map +1 -1
- package/dist/domain/search/search/filters.d.ts +8 -18
- package/dist/domain/search/search/filters.d.ts.map +1 -1
- package/dist/domain/search/search/filters.js +0 -17
- package/dist/domain/search/search/filters.js.map +1 -1
- package/dist/domain/search/search/hybrid.d.ts +20 -21
- package/dist/domain/search/search/hybrid.d.ts.map +1 -1
- package/dist/domain/search/search/hybrid.js +2 -13
- package/dist/domain/search/search/hybrid.js.map +1 -1
- package/dist/domain/search/search/keyword.d.ts +13 -12
- package/dist/domain/search/search/keyword.d.ts.map +1 -1
- package/dist/domain/search/search/keyword.js +2 -10
- package/dist/domain/search/search/keyword.js.map +1 -1
- package/dist/domain/search/search/prepare.d.ts +23 -11
- package/dist/domain/search/search/prepare.d.ts.map +1 -1
- package/dist/domain/search/search/prepare.js +0 -7
- package/dist/domain/search/search/prepare.js.map +1 -1
- package/dist/domain/search/search/semantic.d.ts +36 -29
- package/dist/domain/search/search/semantic.d.ts.map +1 -1
- package/dist/domain/search/search/semantic.js +3 -17
- package/dist/domain/search/search/semantic.js.map +1 -1
- package/dist/domain/search/stores/fts5.d.ts +3 -4
- package/dist/domain/search/stores/fts5.d.ts.map +1 -1
- package/dist/domain/search/stores/fts5.js +1 -5
- package/dist/domain/search/stores/fts5.js.map +1 -1
- package/dist/domain/search/stores/sqlite-blob.d.ts +1 -23
- package/dist/domain/search/stores/sqlite-blob.d.ts.map +1 -1
- package/dist/domain/search/stores/sqlite-blob.js +3 -9
- package/dist/domain/search/stores/sqlite-blob.js.map +1 -1
- package/dist/domain/search/strategies/source.d.ts +2 -1
- package/dist/domain/search/strategies/source.d.ts.map +1 -1
- package/dist/domain/search/strategies/source.js.map +1 -1
- package/dist/domain/search/strategies/structured.d.ts +6 -2
- package/dist/domain/search/strategies/structured.d.ts.map +1 -1
- package/dist/domain/search/strategies/structured.js +0 -5
- package/dist/domain/search/strategies/structured.js.map +1 -1
- package/dist/domain/search/strategies/text-utils.d.ts +3 -5
- package/dist/domain/search/strategies/text-utils.d.ts.map +1 -1
- package/dist/domain/search/strategies/text-utils.js +5 -7
- package/dist/domain/search/strategies/text-utils.js.map +1 -1
- package/dist/extractors/csharp.d.ts +2 -8
- package/dist/extractors/csharp.d.ts.map +1 -1
- package/dist/extractors/csharp.js +32 -21
- package/dist/extractors/csharp.js.map +1 -1
- package/dist/extractors/go.d.ts +2 -8
- package/dist/extractors/go.d.ts.map +1 -1
- package/dist/extractors/go.js +74 -12
- package/dist/extractors/go.js.map +1 -1
- package/dist/extractors/hcl.d.ts +2 -7
- package/dist/extractors/hcl.d.ts.map +1 -1
- package/dist/extractors/hcl.js +25 -16
- package/dist/extractors/hcl.js.map +1 -1
- package/dist/extractors/helpers.d.ts +12 -6
- package/dist/extractors/helpers.d.ts.map +1 -1
- package/dist/extractors/helpers.js +11 -5
- package/dist/extractors/helpers.js.map +1 -1
- package/dist/extractors/index.d.ts +9 -9
- package/dist/extractors/index.d.ts.map +1 -1
- package/dist/extractors/index.js.map +1 -1
- package/dist/extractors/java.d.ts +2 -8
- package/dist/extractors/java.d.ts.map +1 -1
- package/dist/extractors/java.js +7 -4
- package/dist/extractors/java.js.map +1 -1
- package/dist/extractors/javascript.d.ts +2 -75
- package/dist/extractors/javascript.d.ts.map +1 -1
- package/dist/extractors/javascript.js +6 -5
- package/dist/extractors/javascript.js.map +1 -1
- package/dist/extractors/php.d.ts +2 -8
- package/dist/extractors/php.d.ts.map +1 -1
- package/dist/extractors/php.js +15 -9
- package/dist/extractors/php.js.map +1 -1
- package/dist/extractors/python.d.ts +2 -8
- package/dist/extractors/python.d.ts.map +1 -1
- package/dist/extractors/python.js +25 -13
- package/dist/extractors/python.js.map +1 -1
- package/dist/extractors/ruby.d.ts +2 -7
- package/dist/extractors/ruby.d.ts.map +1 -1
- package/dist/extractors/ruby.js +8 -4
- package/dist/extractors/ruby.js.map +1 -1
- package/dist/extractors/rust.d.ts +2 -8
- package/dist/extractors/rust.d.ts.map +1 -1
- package/dist/extractors/rust.js +10 -7
- package/dist/extractors/rust.js.map +1 -1
- package/dist/features/ast.d.ts +59 -28
- package/dist/features/ast.d.ts.map +1 -1
- package/dist/features/ast.js +14 -53
- package/dist/features/ast.js.map +1 -1
- package/dist/features/audit.d.ts +13 -4
- package/dist/features/audit.d.ts.map +1 -1
- package/dist/features/audit.js +10 -20
- package/dist/features/audit.js.map +1 -1
- package/dist/features/batch.d.ts +44 -100
- package/dist/features/batch.d.ts.map +1 -1
- package/dist/features/batch.js +0 -41
- package/dist/features/batch.js.map +1 -1
- package/dist/features/boundaries.d.ts +42 -60
- package/dist/features/boundaries.d.ts.map +1 -1
- package/dist/features/boundaries.js +9 -87
- package/dist/features/boundaries.js.map +1 -1
- package/dist/features/branch-compare.d.ts +69 -50
- package/dist/features/branch-compare.d.ts.map +1 -1
- package/dist/features/branch-compare.js +24 -49
- package/dist/features/branch-compare.js.map +1 -1
- package/dist/features/cfg.d.ts +70 -48
- package/dist/features/cfg.d.ts.map +1 -1
- package/dist/features/cfg.js +79 -59
- package/dist/features/cfg.js.map +1 -1
- package/dist/features/check.d.ts +75 -90
- package/dist/features/check.d.ts.map +1 -1
- package/dist/features/check.js +2 -47
- package/dist/features/check.js.map +1 -1
- package/dist/features/cochange.d.ts +47 -98
- package/dist/features/cochange.d.ts.map +1 -1
- package/dist/features/cochange.js +6 -59
- package/dist/features/cochange.js.map +1 -1
- package/dist/features/communities.d.ts +18 -34
- package/dist/features/communities.d.ts.map +1 -1
- package/dist/features/communities.js +9 -37
- package/dist/features/communities.js.map +1 -1
- package/dist/features/complexity-query.d.ts +37 -0
- package/dist/features/complexity-query.d.ts.map +1 -0
- package/dist/features/complexity-query.js +263 -0
- package/dist/features/complexity-query.js.map +1 -0
- package/dist/features/complexity.d.ts +37 -118
- package/dist/features/complexity.d.ts.map +1 -1
- package/dist/features/complexity.js +46 -352
- package/dist/features/complexity.js.map +1 -1
- package/dist/features/dataflow.d.ts +56 -65
- package/dist/features/dataflow.d.ts.map +1 -1
- package/dist/features/dataflow.js +0 -47
- package/dist/features/dataflow.js.map +1 -1
- package/dist/features/export.d.ts +15 -9
- package/dist/features/export.d.ts.map +1 -1
- package/dist/features/export.js +20 -16
- package/dist/features/export.js.map +1 -1
- package/dist/features/flow.d.ts +17 -45
- package/dist/features/flow.d.ts.map +1 -1
- package/dist/features/flow.js +4 -27
- package/dist/features/flow.js.map +1 -1
- package/dist/features/graph-enrichment.d.ts +43 -53
- package/dist/features/graph-enrichment.d.ts.map +1 -1
- package/dist/features/graph-enrichment.js +13 -18
- package/dist/features/graph-enrichment.js.map +1 -1
- package/dist/features/manifesto.d.ts +18 -41
- package/dist/features/manifesto.d.ts.map +1 -1
- package/dist/features/manifesto.js +20 -37
- package/dist/features/manifesto.js.map +1 -1
- package/dist/features/owners.d.ts +44 -98
- package/dist/features/owners.d.ts.map +1 -1
- package/dist/features/owners.js +2 -54
- package/dist/features/owners.js.map +1 -1
- package/dist/features/sequence.d.ts +41 -32
- package/dist/features/sequence.d.ts.map +1 -1
- package/dist/features/sequence.js +7 -36
- package/dist/features/sequence.js.map +1 -1
- package/dist/features/shared/find-nodes.d.ts +6 -10
- package/dist/features/shared/find-nodes.d.ts.map +1 -1
- package/dist/features/shared/find-nodes.js +1 -10
- package/dist/features/shared/find-nodes.js.map +1 -1
- package/dist/features/snapshot.d.ts +16 -55
- package/dist/features/snapshot.d.ts.map +1 -1
- package/dist/features/snapshot.js +1 -40
- package/dist/features/snapshot.js.map +1 -1
- package/dist/features/structure-query.d.ts +76 -0
- package/dist/features/structure-query.d.ts.map +1 -0
- package/dist/features/structure-query.js +245 -0
- package/dist/features/structure-query.js.map +1 -0
- package/dist/features/structure.d.ts +25 -28
- package/dist/features/structure.d.ts.map +1 -1
- package/dist/features/structure.js +224 -292
- package/dist/features/structure.js.map +1 -1
- package/dist/features/triage.d.ts +45 -11
- package/dist/features/triage.d.ts.map +1 -1
- package/dist/features/triage.js +9 -26
- package/dist/features/triage.js.map +1 -1
- package/dist/graph/algorithms/bfs.d.ts +7 -8
- package/dist/graph/algorithms/bfs.d.ts.map +1 -1
- package/dist/graph/algorithms/bfs.js +1 -4
- package/dist/graph/algorithms/bfs.js.map +1 -1
- package/dist/graph/algorithms/centrality.d.ts +6 -7
- package/dist/graph/algorithms/centrality.d.ts.map +1 -1
- package/dist/graph/algorithms/centrality.js +0 -3
- package/dist/graph/algorithms/centrality.js.map +1 -1
- package/dist/graph/algorithms/index.d.ts +6 -5
- package/dist/graph/algorithms/index.d.ts.map +1 -1
- package/dist/graph/algorithms/index.js +1 -0
- package/dist/graph/algorithms/index.js.map +1 -1
- package/dist/graph/algorithms/leiden/adapter.d.ts +37 -0
- package/dist/graph/algorithms/leiden/adapter.d.ts.map +1 -0
- package/dist/graph/algorithms/leiden/adapter.js +158 -0
- package/dist/graph/algorithms/leiden/adapter.js.map +1 -0
- package/dist/graph/algorithms/leiden/cpm.d.ts +28 -0
- package/dist/graph/algorithms/leiden/cpm.d.ts.map +1 -0
- package/dist/graph/algorithms/leiden/cpm.js +48 -0
- package/dist/graph/algorithms/leiden/cpm.js.map +1 -0
- package/dist/graph/algorithms/leiden/index.d.ts +37 -0
- package/dist/graph/algorithms/leiden/index.d.ts.map +1 -0
- package/dist/graph/algorithms/leiden/index.js +142 -0
- package/dist/graph/algorithms/leiden/index.js.map +1 -0
- package/dist/graph/algorithms/leiden/modularity.d.ts +33 -0
- package/dist/graph/algorithms/leiden/modularity.d.ts.map +1 -0
- package/dist/graph/algorithms/leiden/modularity.js +80 -0
- package/dist/graph/algorithms/leiden/modularity.js.map +1 -0
- package/dist/graph/algorithms/leiden/optimiser.d.ts +62 -0
- package/dist/graph/algorithms/leiden/optimiser.d.ts.map +1 -0
- package/dist/graph/algorithms/leiden/optimiser.js +498 -0
- package/dist/graph/algorithms/leiden/optimiser.js.map +1 -0
- package/dist/graph/algorithms/leiden/partition.d.ts +44 -0
- package/dist/graph/algorithms/leiden/partition.d.ts.map +1 -0
- package/dist/graph/algorithms/leiden/partition.js +433 -0
- package/dist/graph/algorithms/leiden/partition.js.map +1 -0
- package/dist/graph/algorithms/leiden/rng.d.ts +9 -0
- package/dist/graph/algorithms/leiden/rng.d.ts.map +1 -0
- package/dist/graph/algorithms/leiden/rng.js +17 -0
- package/dist/graph/algorithms/leiden/rng.js.map +1 -0
- package/dist/graph/algorithms/louvain.d.ts +20 -4
- package/dist/graph/algorithms/louvain.d.ts.map +1 -1
- package/dist/graph/algorithms/louvain.js +15 -14
- package/dist/graph/algorithms/louvain.js.map +1 -1
- package/dist/graph/algorithms/shortest-path.d.ts +3 -5
- package/dist/graph/algorithms/shortest-path.d.ts.map +1 -1
- package/dist/graph/algorithms/shortest-path.js +2 -5
- package/dist/graph/algorithms/shortest-path.js.map +1 -1
- package/dist/graph/algorithms/tarjan.d.ts +3 -3
- package/dist/graph/algorithms/tarjan.d.ts.map +1 -1
- package/dist/graph/algorithms/tarjan.js +1 -2
- package/dist/graph/algorithms/tarjan.js.map +1 -1
- package/dist/graph/builders/dependency.d.ts +14 -11
- package/dist/graph/builders/dependency.d.ts.map +1 -1
- package/dist/graph/builders/dependency.js +2 -6
- package/dist/graph/builders/dependency.js.map +1 -1
- package/dist/graph/builders/index.d.ts +3 -3
- package/dist/graph/builders/index.d.ts.map +1 -1
- package/dist/graph/builders/index.js.map +1 -1
- package/dist/graph/builders/structure.d.ts +6 -3
- package/dist/graph/builders/structure.d.ts.map +1 -1
- package/dist/graph/builders/structure.js +5 -4
- package/dist/graph/builders/structure.js.map +1 -1
- package/dist/graph/builders/temporal.d.ts +9 -6
- package/dist/graph/builders/temporal.d.ts.map +1 -1
- package/dist/graph/builders/temporal.js +1 -3
- package/dist/graph/builders/temporal.js.map +1 -1
- package/dist/graph/classifiers/index.d.ts +2 -2
- package/dist/graph/classifiers/index.d.ts.map +1 -1
- package/dist/graph/classifiers/index.js.map +1 -1
- package/dist/graph/classifiers/risk.d.ts +25 -35
- package/dist/graph/classifiers/risk.d.ts.map +1 -1
- package/dist/graph/classifiers/risk.js +10 -16
- package/dist/graph/classifiers/risk.js.map +1 -1
- package/dist/graph/classifiers/roles.d.ts +23 -15
- package/dist/graph/classifiers/roles.d.ts.map +1 -1
- package/dist/graph/classifiers/roles.js +24 -19
- package/dist/graph/classifiers/roles.js.map +1 -1
- package/dist/graph/index.d.ts +4 -4
- package/dist/graph/index.d.ts.map +1 -1
- package/dist/graph/index.js.map +1 -1
- package/dist/graph/model.d.ts +39 -37
- package/dist/graph/model.d.ts.map +1 -1
- package/dist/graph/model.js +4 -25
- package/dist/graph/model.js.map +1 -1
- package/dist/index.cjs +0 -2
- package/dist/index.d.ts +36 -25
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/infrastructure/config.d.ts +177 -210
- package/dist/infrastructure/config.d.ts.map +1 -1
- package/dist/infrastructure/config.js +28 -15
- package/dist/infrastructure/config.js.map +1 -1
- package/dist/infrastructure/logger.d.ts +6 -6
- package/dist/infrastructure/logger.d.ts.map +1 -1
- package/dist/infrastructure/logger.js.map +1 -1
- package/dist/infrastructure/native.d.ts +12 -4
- package/dist/infrastructure/native.d.ts.map +1 -1
- package/dist/infrastructure/native.js +9 -5
- package/dist/infrastructure/native.js.map +1 -1
- package/dist/infrastructure/registry.d.ts +34 -22
- package/dist/infrastructure/registry.d.ts.map +1 -1
- package/dist/infrastructure/registry.js.map +1 -1
- package/dist/infrastructure/result-formatter.d.ts +1 -1
- package/dist/infrastructure/result-formatter.d.ts.map +1 -1
- package/dist/infrastructure/result-formatter.js.map +1 -1
- package/dist/infrastructure/test-filter.d.ts +3 -3
- package/dist/infrastructure/test-filter.d.ts.map +1 -1
- package/dist/infrastructure/test-filter.js.map +1 -1
- package/dist/infrastructure/update-check.d.ts +12 -10
- package/dist/infrastructure/update-check.d.ts.map +1 -1
- package/dist/infrastructure/update-check.js +0 -4
- package/dist/infrastructure/update-check.js.map +1 -1
- package/dist/mcp/index.d.ts +2 -2
- package/dist/mcp/index.d.ts.map +1 -1
- package/dist/mcp/index.js.map +1 -1
- package/dist/mcp/middleware.d.ts +13 -13
- package/dist/mcp/middleware.d.ts.map +1 -1
- package/dist/mcp/middleware.js +0 -6
- package/dist/mcp/middleware.js.map +1 -1
- package/dist/mcp/server.d.ts +21 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +73 -13
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tool-registry.d.ts +17 -4
- package/dist/mcp/tool-registry.d.ts.map +1 -1
- package/dist/mcp/tool-registry.js +9 -7
- package/dist/mcp/tool-registry.js.map +1 -1
- package/dist/mcp/tools/ast-query.d.ts +13 -8
- package/dist/mcp/tools/ast-query.d.ts.map +1 -1
- package/dist/mcp/tools/ast-query.js.map +1 -1
- package/dist/mcp/tools/audit.d.ts +14 -2
- package/dist/mcp/tools/audit.d.ts.map +1 -1
- package/dist/mcp/tools/audit.js +1 -1
- package/dist/mcp/tools/audit.js.map +1 -1
- package/dist/mcp/tools/batch-query.d.ts +11 -7
- package/dist/mcp/tools/batch-query.d.ts.map +1 -1
- package/dist/mcp/tools/batch-query.js.map +1 -1
- package/dist/mcp/tools/branch-compare.d.ts +11 -2
- package/dist/mcp/tools/branch-compare.d.ts.map +1 -1
- package/dist/mcp/tools/branch-compare.js.map +1 -1
- package/dist/mcp/tools/brief.d.ts +8 -2
- package/dist/mcp/tools/brief.d.ts.map +1 -1
- package/dist/mcp/tools/brief.js.map +1 -1
- package/dist/mcp/tools/cfg.d.ts +13 -9
- package/dist/mcp/tools/cfg.d.ts.map +1 -1
- package/dist/mcp/tools/cfg.js +1 -1
- package/dist/mcp/tools/cfg.js.map +1 -1
- package/dist/mcp/tools/check.d.ts +19 -23
- package/dist/mcp/tools/check.d.ts.map +1 -1
- package/dist/mcp/tools/check.js +2 -2
- package/dist/mcp/tools/check.js.map +1 -1
- package/dist/mcp/tools/co-changes.d.ts +11 -9
- package/dist/mcp/tools/co-changes.d.ts.map +1 -1
- package/dist/mcp/tools/co-changes.js.map +1 -1
- package/dist/mcp/tools/code-owners.d.ts +11 -47
- package/dist/mcp/tools/code-owners.d.ts.map +1 -1
- package/dist/mcp/tools/code-owners.js.map +1 -1
- package/dist/mcp/tools/communities.d.ts +12 -7
- package/dist/mcp/tools/communities.d.ts.map +1 -1
- package/dist/mcp/tools/communities.js.map +1 -1
- package/dist/mcp/tools/complexity.d.ts +15 -6
- package/dist/mcp/tools/complexity.d.ts.map +1 -1
- package/dist/mcp/tools/complexity.js +0 -1
- package/dist/mcp/tools/complexity.js.map +1 -1
- package/dist/mcp/tools/context.d.ts +15 -2
- package/dist/mcp/tools/context.d.ts.map +1 -1
- package/dist/mcp/tools/context.js.map +1 -1
- package/dist/mcp/tools/dataflow.d.ts +14 -5
- package/dist/mcp/tools/dataflow.d.ts.map +1 -1
- package/dist/mcp/tools/dataflow.js +2 -2
- package/dist/mcp/tools/dataflow.js.map +1 -1
- package/dist/mcp/tools/diff-impact.d.ts +13 -2
- package/dist/mcp/tools/diff-impact.d.ts.map +1 -1
- package/dist/mcp/tools/diff-impact.js.map +1 -1
- package/dist/mcp/tools/execution-flow.d.ts +14 -16
- package/dist/mcp/tools/execution-flow.d.ts.map +1 -1
- package/dist/mcp/tools/execution-flow.js.map +1 -1
- package/dist/mcp/tools/export-graph.d.ts +10 -2
- package/dist/mcp/tools/export-graph.d.ts.map +1 -1
- package/dist/mcp/tools/export-graph.js +3 -1
- package/dist/mcp/tools/export-graph.js.map +1 -1
- package/dist/mcp/tools/file-deps.d.ts +10 -2
- package/dist/mcp/tools/file-deps.d.ts.map +1 -1
- package/dist/mcp/tools/file-deps.js.map +1 -1
- package/dist/mcp/tools/file-exports.d.ts +11 -2
- package/dist/mcp/tools/file-exports.d.ts.map +1 -1
- package/dist/mcp/tools/file-exports.js.map +1 -1
- package/dist/mcp/tools/find-cycles.d.ts +3 -2
- package/dist/mcp/tools/find-cycles.d.ts.map +1 -1
- package/dist/mcp/tools/find-cycles.js.map +1 -1
- package/dist/mcp/tools/fn-impact.d.ts +13 -2
- package/dist/mcp/tools/fn-impact.d.ts.map +1 -1
- package/dist/mcp/tools/fn-impact.js.map +1 -1
- package/dist/mcp/tools/impact-analysis.d.ts +8 -2
- package/dist/mcp/tools/impact-analysis.d.ts.map +1 -1
- package/dist/mcp/tools/impact-analysis.js +0 -3
- package/dist/mcp/tools/impact-analysis.js.map +1 -1
- package/dist/mcp/tools/implementations.d.ts +12 -2
- package/dist/mcp/tools/implementations.d.ts.map +1 -1
- package/dist/mcp/tools/implementations.js.map +1 -1
- package/dist/mcp/tools/index.d.ts +9 -2
- package/dist/mcp/tools/index.d.ts.map +1 -1
- package/dist/mcp/tools/index.js +2 -2
- package/dist/mcp/tools/index.js.map +1 -1
- package/dist/mcp/tools/interfaces.d.ts +12 -2
- package/dist/mcp/tools/interfaces.d.ts.map +1 -1
- package/dist/mcp/tools/interfaces.js.map +1 -1
- package/dist/mcp/tools/list-functions.d.ts +11 -2
- package/dist/mcp/tools/list-functions.d.ts.map +1 -1
- package/dist/mcp/tools/list-functions.js.map +1 -1
- package/dist/mcp/tools/list-repos.d.ts +7 -10
- package/dist/mcp/tools/list-repos.d.ts.map +1 -1
- package/dist/mcp/tools/list-repos.js.map +1 -1
- package/dist/mcp/tools/module-map.d.ts +8 -2
- package/dist/mcp/tools/module-map.d.ts.map +1 -1
- package/dist/mcp/tools/module-map.js.map +1 -1
- package/dist/mcp/tools/node-roles.d.ts +11 -2
- package/dist/mcp/tools/node-roles.d.ts.map +1 -1
- package/dist/mcp/tools/node-roles.js.map +1 -1
- package/dist/mcp/tools/path.d.ts +14 -2
- package/dist/mcp/tools/path.d.ts.map +1 -1
- package/dist/mcp/tools/path.js +9 -0
- package/dist/mcp/tools/path.js.map +1 -1
- package/dist/mcp/tools/query.d.ts +19 -2
- package/dist/mcp/tools/query.d.ts.map +1 -1
- package/dist/mcp/tools/query.js +1 -1
- package/dist/mcp/tools/query.js.map +1 -1
- package/dist/mcp/tools/semantic-search.d.ts +11 -45
- package/dist/mcp/tools/semantic-search.d.ts.map +1 -1
- package/dist/mcp/tools/semantic-search.js +2 -2
- package/dist/mcp/tools/semantic-search.js.map +1 -1
- package/dist/mcp/tools/sequence.d.ts +15 -17
- package/dist/mcp/tools/sequence.d.ts.map +1 -1
- package/dist/mcp/tools/sequence.js +1 -1
- package/dist/mcp/tools/sequence.js.map +1 -1
- package/dist/mcp/tools/structure.d.ts +12 -2
- package/dist/mcp/tools/structure.d.ts.map +1 -1
- package/dist/mcp/tools/structure.js.map +1 -1
- package/dist/mcp/tools/symbol-children.d.ts +12 -2
- package/dist/mcp/tools/symbol-children.d.ts.map +1 -1
- package/dist/mcp/tools/symbol-children.js +1 -1
- package/dist/mcp/tools/symbol-children.js.map +1 -1
- package/dist/mcp/tools/triage.d.ts +16 -2
- package/dist/mcp/tools/triage.d.ts.map +1 -1
- package/dist/mcp/tools/triage.js +1 -1
- package/dist/mcp/tools/triage.js.map +1 -1
- package/dist/mcp/tools/where.d.ts +11 -2
- package/dist/mcp/tools/where.d.ts.map +1 -1
- package/dist/mcp/tools/where.js.map +1 -1
- package/dist/presentation/audit.d.ts +14 -4
- package/dist/presentation/audit.d.ts.map +1 -1
- package/dist/presentation/audit.js +0 -3
- package/dist/presentation/audit.js.map +1 -1
- package/dist/presentation/batch.d.ts +19 -9
- package/dist/presentation/batch.d.ts.map +1 -1
- package/dist/presentation/batch.js +3 -8
- package/dist/presentation/batch.js.map +1 -1
- package/dist/presentation/branch-compare.d.ts +12 -1
- package/dist/presentation/branch-compare.d.ts.map +1 -1
- package/dist/presentation/branch-compare.js +7 -9
- package/dist/presentation/branch-compare.js.map +1 -1
- package/dist/presentation/brief.d.ts +8 -11
- package/dist/presentation/brief.d.ts.map +1 -1
- package/dist/presentation/brief.js +0 -10
- package/dist/presentation/brief.js.map +1 -1
- package/dist/presentation/cfg.d.ts +12 -4
- package/dist/presentation/cfg.d.ts.map +1 -1
- package/dist/presentation/cfg.js +0 -3
- package/dist/presentation/cfg.js.map +1 -1
- package/dist/presentation/check.d.ts +18 -4
- package/dist/presentation/check.d.ts.map +1 -1
- package/dist/presentation/check.js +10 -4
- package/dist/presentation/check.js.map +1 -1
- package/dist/presentation/cochange.d.ts +31 -8
- package/dist/presentation/cochange.d.ts.map +1 -1
- package/dist/presentation/cochange.js +0 -6
- package/dist/presentation/cochange.js.map +1 -1
- package/dist/presentation/colors.d.ts +11 -25
- package/dist/presentation/colors.d.ts.map +1 -1
- package/dist/presentation/colors.js +3 -0
- package/dist/presentation/colors.js.map +1 -1
- package/dist/presentation/communities.d.ts +10 -4
- package/dist/presentation/communities.d.ts.map +1 -1
- package/dist/presentation/communities.js +0 -3
- package/dist/presentation/communities.js.map +1 -1
- package/dist/presentation/complexity.d.ts +16 -4
- package/dist/presentation/complexity.d.ts.map +1 -1
- package/dist/presentation/complexity.js +0 -3
- package/dist/presentation/complexity.js.map +1 -1
- package/dist/presentation/dataflow.d.ts +13 -4
- package/dist/presentation/dataflow.d.ts.map +1 -1
- package/dist/presentation/dataflow.js +12 -17
- package/dist/presentation/dataflow.js.map +1 -1
- package/dist/presentation/diff-impact-mermaid.d.ts +11 -0
- package/dist/presentation/diff-impact-mermaid.d.ts.map +1 -0
- package/dist/presentation/diff-impact-mermaid.js +105 -0
- package/dist/presentation/diff-impact-mermaid.js.map +1 -0
- package/dist/presentation/export.d.ts +82 -89
- package/dist/presentation/export.d.ts.map +1 -1
- package/dist/presentation/export.js +0 -63
- package/dist/presentation/export.js.map +1 -1
- package/dist/presentation/flow.d.ts +15 -4
- package/dist/presentation/flow.d.ts.map +1 -1
- package/dist/presentation/flow.js +4 -3
- package/dist/presentation/flow.js.map +1 -1
- package/dist/presentation/manifesto.d.ts +12 -4
- package/dist/presentation/manifesto.d.ts.map +1 -1
- package/dist/presentation/manifesto.js +0 -3
- package/dist/presentation/manifesto.js.map +1 -1
- package/dist/presentation/owners.d.ts +15 -4
- package/dist/presentation/owners.d.ts.map +1 -1
- package/dist/presentation/owners.js +0 -3
- package/dist/presentation/owners.js.map +1 -1
- package/dist/presentation/queries-cli/exports.d.ts +11 -1
- package/dist/presentation/queries-cli/exports.d.ts.map +1 -1
- package/dist/presentation/queries-cli/exports.js.map +1 -1
- package/dist/presentation/queries-cli/impact.d.ts +22 -5
- package/dist/presentation/queries-cli/impact.d.ts.map +1 -1
- package/dist/presentation/queries-cli/impact.js +2 -2
- package/dist/presentation/queries-cli/impact.js.map +1 -1
- package/dist/presentation/queries-cli/index.d.ts +5 -5
- package/dist/presentation/queries-cli/index.d.ts.map +1 -1
- package/dist/presentation/queries-cli/index.js.map +1 -1
- package/dist/presentation/queries-cli/inspect.d.ts +22 -7
- package/dist/presentation/queries-cli/inspect.d.ts.map +1 -1
- package/dist/presentation/queries-cli/inspect.js.map +1 -1
- package/dist/presentation/queries-cli/overview.d.ts +17 -3
- package/dist/presentation/queries-cli/overview.d.ts.map +1 -1
- package/dist/presentation/queries-cli/overview.js +1 -1
- package/dist/presentation/queries-cli/overview.js.map +1 -1
- package/dist/presentation/queries-cli/path.d.ts +14 -1
- package/dist/presentation/queries-cli/path.d.ts.map +1 -1
- package/dist/presentation/queries-cli/path.js +45 -1
- package/dist/presentation/queries-cli/path.js.map +1 -1
- package/dist/presentation/queries-cli.d.ts +11 -1
- package/dist/presentation/queries-cli.d.ts.map +1 -1
- package/dist/presentation/queries-cli.js.map +1 -1
- package/dist/presentation/query.d.ts +1 -1
- package/dist/presentation/query.d.ts.map +1 -1
- package/dist/presentation/query.js +0 -4
- package/dist/presentation/query.js.map +1 -1
- package/dist/presentation/result-formatter.d.ts +12 -9
- package/dist/presentation/result-formatter.d.ts.map +1 -1
- package/dist/presentation/result-formatter.js +7 -34
- package/dist/presentation/result-formatter.js.map +1 -1
- package/dist/presentation/sequence-renderer.d.ts +18 -11
- package/dist/presentation/sequence-renderer.d.ts.map +1 -1
- package/dist/presentation/sequence-renderer.js +2 -15
- package/dist/presentation/sequence-renderer.js.map +1 -1
- package/dist/presentation/sequence.d.ts +14 -4
- package/dist/presentation/sequence.d.ts.map +1 -1
- package/dist/presentation/sequence.js +0 -3
- package/dist/presentation/sequence.js.map +1 -1
- package/dist/presentation/structure.d.ts +44 -6
- package/dist/presentation/structure.d.ts.map +1 -1
- package/dist/presentation/structure.js +1 -1
- package/dist/presentation/structure.js.map +1 -1
- package/dist/presentation/table.d.ts +12 -16
- package/dist/presentation/table.d.ts.map +1 -1
- package/dist/presentation/table.js +0 -6
- package/dist/presentation/table.js.map +1 -1
- package/dist/presentation/triage.d.ts +18 -4
- package/dist/presentation/triage.d.ts.map +1 -1
- package/dist/presentation/triage.js +2 -5
- package/dist/presentation/triage.js.map +1 -1
- package/dist/presentation/viewer.d.ts +79 -62
- package/dist/presentation/viewer.d.ts.map +1 -1
- package/dist/presentation/viewer.js +25 -47
- package/dist/presentation/viewer.js.map +1 -1
- package/dist/shared/constants.d.ts +12 -6
- package/dist/shared/constants.d.ts.map +1 -1
- package/dist/shared/constants.js +6 -3
- package/dist/shared/constants.js.map +1 -1
- package/dist/shared/errors.d.ts +23 -29
- package/dist/shared/errors.d.ts.map +1 -1
- package/dist/shared/errors.js +4 -9
- package/dist/shared/errors.js.map +1 -1
- package/dist/shared/file-utils.d.ts +22 -9
- package/dist/shared/file-utils.d.ts.map +1 -1
- package/dist/shared/file-utils.js +2 -3
- package/dist/shared/file-utils.js.map +1 -1
- package/dist/shared/generators.d.ts +47 -52
- package/dist/shared/generators.d.ts.map +1 -1
- package/dist/shared/generators.js +5 -19
- package/dist/shared/generators.js.map +1 -1
- package/dist/shared/hierarchy.d.ts +2 -1
- package/dist/shared/hierarchy.d.ts.map +1 -1
- package/dist/shared/hierarchy.js.map +1 -1
- package/dist/shared/kinds.d.ts +11 -10
- package/dist/shared/kinds.d.ts.map +1 -1
- package/dist/shared/kinds.js +14 -3
- package/dist/shared/kinds.js.map +1 -1
- package/dist/shared/normalize.d.ts +24 -11
- package/dist/shared/normalize.d.ts.map +1 -1
- package/dist/shared/normalize.js +1 -5
- package/dist/shared/normalize.js.map +1 -1
- package/dist/shared/paginate.d.ts +33 -59
- package/dist/shared/paginate.d.ts.map +1 -1
- package/dist/shared/paginate.js +0 -14
- package/dist/shared/paginate.js.map +1 -1
- package/dist/shared/version.d.ts +2 -0
- package/dist/shared/version.d.ts.map +1 -0
- package/dist/shared/version.js +5 -0
- package/dist/shared/version.js.map +1 -0
- package/dist/types.d.ts +234 -15
- package/dist/types.d.ts.map +1 -1
- package/package.json +15 -15
- package/src/ast-analysis/{engine.js → engine.ts} +145 -64
- package/src/ast-analysis/{metrics.js → metrics.ts} +14 -4
- package/src/ast-analysis/rules/{csharp.js → csharp.ts} +11 -9
- package/src/ast-analysis/rules/{go.js → go.ts} +12 -10
- package/src/ast-analysis/rules/{index.js → index.ts} +14 -14
- package/src/ast-analysis/rules/{java.js → java.ts} +11 -9
- package/src/ast-analysis/rules/{javascript.js → javascript.ts} +11 -11
- package/src/ast-analysis/rules/{php.js → php.ts} +11 -9
- package/src/ast-analysis/rules/{python.js → python.ts} +11 -9
- package/src/ast-analysis/rules/{ruby.js → ruby.ts} +11 -9
- package/src/ast-analysis/rules/{rust.js → rust.ts} +11 -9
- package/src/ast-analysis/{shared.js → shared.ts} +43 -43
- package/src/ast-analysis/{visitor-utils.js → visitor-utils.ts} +49 -12
- package/src/ast-analysis/{visitor.js → visitor.ts} +29 -31
- package/src/ast-analysis/visitors/{ast-store-visitor.js → ast-store-visitor.ts} +44 -36
- package/src/ast-analysis/visitors/cfg-conditionals.ts +227 -0
- package/src/ast-analysis/visitors/cfg-loops.ts +136 -0
- package/src/ast-analysis/visitors/cfg-shared.ts +196 -0
- package/src/ast-analysis/visitors/cfg-try-catch.ts +142 -0
- package/src/ast-analysis/visitors/cfg-visitor.ts +253 -0
- package/src/ast-analysis/visitors/{complexity-visitor.js → complexity-visitor.ts} +73 -61
- package/src/ast-analysis/visitors/{dataflow-visitor.js → dataflow-visitor.ts} +148 -63
- package/src/cli/commands/{ast.js → ast.ts} +3 -2
- package/src/cli/commands/{audit.js → audit.ts} +7 -6
- package/src/cli/commands/{batch.js → batch.ts} +32 -15
- package/src/cli/commands/{branch-compare.js → branch-compare.ts} +5 -3
- package/src/cli/commands/{brief.js → brief.ts} +3 -2
- package/src/cli/commands/{build.js → build.ts} +9 -7
- package/src/cli/commands/{cfg.js → cfg.ts} +4 -3
- package/src/cli/commands/{check.js → check.ts} +7 -6
- package/src/cli/commands/{children.js → children.ts} +4 -3
- package/src/cli/commands/{co-change.js → co-change.ts} +17 -12
- package/src/cli/commands/{communities.js → communities.ts} +4 -2
- package/src/cli/commands/{complexity.js → complexity.ts} +5 -4
- package/src/cli/commands/{context.js → context.ts} +5 -4
- package/src/cli/commands/{cycles.js → cycles.ts} +4 -3
- package/src/cli/commands/{dataflow.js → dataflow.ts} +5 -4
- package/src/cli/commands/{deps.js → deps.ts} +4 -3
- package/src/cli/commands/{diff-impact.js → diff-impact.ts} +3 -2
- package/src/cli/commands/{embed.js → embed.ts} +6 -4
- package/src/cli/commands/{export.js → export.ts} +8 -7
- package/src/cli/commands/{exports.js → exports.ts} +3 -2
- package/src/cli/commands/{flow.js → flow.ts} +4 -3
- package/src/cli/commands/{fn-impact.js → fn-impact.ts} +5 -4
- package/src/cli/commands/{impact.js → impact.ts} +3 -2
- package/src/cli/commands/{implementations.js → implementations.ts} +4 -3
- package/src/cli/commands/{info.js → info.ts} +4 -2
- package/src/cli/commands/{interfaces.js → interfaces.ts} +4 -3
- package/src/cli/commands/{map.js → map.ts} +3 -2
- package/src/cli/commands/{mcp.js → mcp.ts} +8 -7
- package/src/cli/commands/models.ts +29 -0
- package/src/cli/commands/{owners.js → owners.ts} +3 -2
- package/src/cli/commands/{path.js → path.ts} +13 -7
- package/src/cli/commands/{plot.js → plot.ts} +35 -14
- package/src/cli/commands/{query.js → query.ts} +8 -7
- package/src/cli/commands/{registry.js → registry.ts} +12 -6
- package/src/cli/commands/{roles.js → roles.ts} +3 -2
- package/src/cli/commands/{search.js → search.ts} +12 -15
- package/src/cli/commands/{sequence.js → sequence.ts} +5 -4
- package/src/cli/commands/{snapshot.js → snapshot.ts} +5 -4
- package/src/cli/commands/{stats.js → stats.ts} +2 -1
- package/src/cli/commands/{structure.js → structure.ts} +4 -2
- package/src/cli/commands/{triage.js → triage.ts} +14 -13
- package/src/cli/commands/{watch.js → watch.ts} +2 -1
- package/src/cli/commands/{where.js → where.ts} +3 -2
- package/src/cli/{index.js → index.ts} +38 -13
- package/src/cli/shared/{open-graph.js → open-graph.ts} +5 -5
- package/src/cli/shared/{options.js → options.ts} +6 -6
- package/src/cli/types.ts +33 -0
- package/src/{cli.js → cli.ts} +3 -3
- package/src/db/{connection.js → connection.ts} +130 -37
- package/src/db/{index.js → index.ts} +6 -0
- package/src/db/{migrations.js → migrations.ts} +40 -11
- package/src/db/{query-builder.js → query-builder.ts} +50 -65
- package/src/db/repository/base.ts +192 -0
- package/src/db/repository/{build-stmts.js → build-stmts.ts} +28 -22
- package/src/db/repository/{cached-stmt.js → cached-stmt.ts} +8 -7
- package/src/db/repository/{cfg.js → cfg.ts} +27 -18
- package/src/db/repository/{cochange.js → cochange.ts} +8 -14
- package/src/db/repository/{complexity.js → complexity.ts} +6 -5
- package/src/db/repository/dataflow.ts +19 -0
- package/src/db/repository/{edges.js → edges.ts} +57 -95
- package/src/db/repository/{embeddings.js → embeddings.ts} +10 -14
- package/src/db/repository/{graph-read.js → graph-read.ts} +17 -17
- package/src/db/repository/{in-memory-repository.js → in-memory-repository.ts} +155 -93
- package/src/db/repository/{index.js → index.ts} +2 -0
- package/src/db/repository/{nodes.js → nodes.ts} +120 -106
- package/src/db/repository/{sqlite-repository.js → sqlite-repository.ts} +71 -42
- package/src/domain/analysis/{brief.js → brief.ts} +33 -19
- package/src/domain/analysis/{context.js → context.ts} +175 -79
- package/src/domain/analysis/dependencies.ts +648 -0
- package/src/domain/analysis/diff-impact.ts +354 -0
- package/src/domain/analysis/{exports.js → exports.ts} +99 -54
- package/src/domain/analysis/fn-impact.ts +241 -0
- package/src/domain/analysis/impact.ts +11 -0
- package/src/domain/analysis/{implementations.js → implementations.ts} +13 -14
- package/src/domain/analysis/{module-map.js → module-map.ts} +124 -61
- package/src/domain/analysis/{roles.js → roles.ts} +24 -6
- package/src/domain/analysis/{symbol-lookup.js → symbol-lookup.ts} +78 -34
- package/src/domain/graph/builder/context.ts +81 -0
- package/src/domain/graph/builder/helpers.ts +292 -0
- package/src/domain/graph/builder/{incremental.js → incremental.ts} +184 -76
- package/src/domain/graph/builder/{pipeline.js → pipeline.ts} +41 -27
- package/src/domain/graph/builder/stages/{build-edges.js → build-edges.ts} +188 -57
- package/src/domain/graph/builder/stages/build-structure.ts +259 -0
- package/src/domain/graph/builder/stages/{collect-files.js → collect-files.ts} +6 -8
- package/src/domain/graph/builder/stages/{detect-changes.js → detect-changes.ts} +155 -123
- package/src/domain/graph/builder/stages/finalize.ts +196 -0
- package/src/domain/graph/builder/stages/{insert-nodes.js → insert-nodes.ts} +106 -47
- package/src/domain/graph/builder/stages/{parse-files.js → parse-files.ts} +2 -4
- package/src/domain/graph/builder/stages/resolve-imports.ts +195 -0
- package/src/domain/graph/builder/stages/{run-analyses.js → run-analyses.ts} +10 -7
- package/src/domain/graph/{change-journal.js → change-journal.ts} +48 -37
- package/src/domain/graph/{cycles.js → cycles.ts} +14 -30
- package/src/domain/graph/{journal.js → journal.ts} +22 -26
- package/src/domain/graph/{resolve.js → resolve.ts} +137 -41
- package/src/domain/graph/{watcher.js → watcher.ts} +41 -17
- package/src/domain/{parser.js → parser.ts} +154 -110
- package/src/domain/{queries.js → queries.ts} +3 -3
- package/src/domain/search/{generator.js → generator.ts} +27 -21
- package/src/domain/search/{index.js → index.ts} +2 -0
- package/src/domain/search/{models.js → models.ts} +62 -38
- package/src/domain/search/search/{cli-formatter.js → cli-formatter.ts} +22 -21
- package/src/domain/search/search/{filters.js → filters.ts} +7 -19
- package/src/domain/search/search/{hybrid.js → hybrid.ts} +69 -25
- package/src/domain/search/search/{keyword.js → keyword.ts} +42 -16
- package/src/domain/search/search/{prepare.js → prepare.ts} +34 -13
- package/src/domain/search/search/{semantic.js → semantic.ts} +73 -37
- package/src/domain/search/stores/{fts5.js → fts5.ts} +8 -8
- package/src/domain/search/stores/sqlite-blob.ts +15 -0
- package/src/domain/search/strategies/{source.js → source.ts} +6 -1
- package/src/domain/search/strategies/{structured.js → structured.ts} +12 -7
- package/src/domain/search/strategies/{text-utils.js → text-utils.ts} +9 -11
- package/src/extractors/{csharp.js → csharp.ts} +73 -44
- package/src/extractors/{go.js → go.ts} +107 -32
- package/src/extractors/{hcl.js → hcl.ts} +52 -27
- package/src/extractors/{helpers.js → helpers.ts} +26 -15
- package/src/extractors/{java.js → java.ts} +43 -24
- package/src/extractors/{javascript.js → javascript.ts} +120 -91
- package/src/extractors/{php.js → php.ts} +47 -34
- package/src/extractors/{python.js → python.ts} +65 -38
- package/src/extractors/{ruby.js → ruby.ts} +40 -25
- package/src/extractors/{rust.js → rust.ts} +43 -33
- package/src/features/{ast.js → ast.ts} +117 -72
- package/src/features/{audit.js → audit.ts} +172 -54
- package/src/features/batch.ts +182 -0
- package/src/features/{boundaries.js → boundaries.ts} +101 -116
- package/src/features/{branch-compare.js → branch-compare.ts} +145 -79
- package/src/features/{cfg.js → cfg.ts} +228 -88
- package/src/features/{check.js → check.ts} +143 -70
- package/src/features/{cochange.js → cochange.ts} +113 -93
- package/src/features/{communities.js → communities.ts} +85 -57
- package/src/features/complexity-query.ts +370 -0
- package/src/features/complexity.ts +555 -0
- package/src/features/{dataflow.js → dataflow.ts} +179 -102
- package/src/features/{export.js → export.ts} +160 -52
- package/src/features/{flow.js → flow.ts} +62 -45
- package/src/features/{graph-enrichment.js → graph-enrichment.ts} +136 -49
- package/src/features/{manifesto.js → manifesto.ts} +138 -77
- package/src/features/{owners.js → owners.ts} +88 -73
- package/src/features/{sequence.js → sequence.ts} +114 -65
- package/src/features/shared/{find-nodes.js → find-nodes.ts} +10 -13
- package/src/features/{snapshot.js → snapshot.ts} +26 -46
- package/src/features/structure-query.ts +387 -0
- package/src/features/structure.ts +734 -0
- package/src/features/{triage.js → triage.ts} +80 -42
- package/src/graph/algorithms/{bfs.js → bfs.ts} +18 -10
- package/src/graph/algorithms/{centrality.js → centrality.ts} +9 -5
- package/src/graph/algorithms/{index.js → index.ts} +1 -0
- package/src/graph/algorithms/leiden/LICENSE +24 -0
- package/src/graph/algorithms/leiden/adapter.ts +197 -0
- package/src/graph/algorithms/leiden/cpm.ts +77 -0
- package/src/graph/algorithms/leiden/index.ts +185 -0
- package/src/graph/algorithms/leiden/modularity.ts +122 -0
- package/src/graph/algorithms/leiden/optimiser.ts +598 -0
- package/src/graph/algorithms/leiden/partition.ts +479 -0
- package/src/graph/algorithms/leiden/rng.ts +20 -0
- package/src/graph/algorithms/louvain.ts +47 -0
- package/src/graph/algorithms/{shortest-path.js → shortest-path.ts} +9 -10
- package/src/graph/algorithms/{tarjan.js → tarjan.ts} +15 -14
- package/src/graph/builders/{dependency.js → dependency.ts} +43 -17
- package/src/graph/builders/structure.ts +58 -0
- package/src/graph/builders/temporal.ts +51 -0
- package/src/graph/classifiers/{risk.js → risk.ts} +52 -22
- package/src/graph/classifiers/{roles.js → roles.ts} +52 -27
- package/src/graph/{model.js → model.ts} +49 -58
- package/src/index.cjs +1 -1
- package/src/{index.js → index.ts} +1 -0
- package/src/infrastructure/{config.js → config.ts} +88 -61
- package/src/infrastructure/{logger.js → logger.ts} +6 -6
- package/src/infrastructure/{native.js → native.ts} +23 -18
- package/src/infrastructure/{registry.js → registry.ts} +47 -15
- package/src/infrastructure/{test-filter.js → test-filter.ts} +1 -1
- package/src/infrastructure/{update-check.js → update-check.ts} +27 -13
- package/src/mcp/{middleware.js → middleware.ts} +6 -12
- package/src/mcp/server.ts +241 -0
- package/src/mcp/{tool-registry.js → tool-registry.ts} +27 -13
- package/src/mcp/tools/{ast-query.js → ast-query.ts} +12 -1
- package/src/mcp/tools/{audit.js → audit.ts} +14 -2
- package/src/mcp/tools/batch-query.ts +22 -0
- package/src/mcp/tools/{branch-compare.js → branch-compare.ts} +11 -1
- package/src/mcp/tools/brief.ts +15 -0
- package/src/mcp/tools/{cfg.js → cfg.ts} +13 -2
- package/src/mcp/tools/{check.js → check.ts} +20 -3
- package/src/mcp/tools/{co-changes.js → co-changes.ts} +10 -1
- package/src/mcp/tools/code-owners.ts +22 -0
- package/src/mcp/tools/{communities.js → communities.ts} +11 -1
- package/src/mcp/tools/{complexity.js → complexity.ts} +14 -2
- package/src/mcp/tools/{context.js → context.ts} +14 -1
- package/src/mcp/tools/{dataflow.js → dataflow.ts} +15 -3
- package/src/mcp/tools/{diff-impact.js → diff-impact.ts} +12 -1
- package/src/mcp/tools/{execution-flow.js → execution-flow.ts} +13 -1
- package/src/mcp/tools/{export-graph.js → export-graph.ts} +13 -3
- package/src/mcp/tools/{file-deps.js → file-deps.ts} +9 -1
- package/src/mcp/tools/{file-exports.js → file-exports.ts} +10 -1
- package/src/mcp/tools/{find-cycles.js → find-cycles.ts} +5 -1
- package/src/mcp/tools/{fn-impact.js → fn-impact.ts} +12 -1
- package/src/mcp/tools/impact-analysis.ts +15 -0
- package/src/mcp/tools/{implementations.js → implementations.ts} +11 -1
- package/src/mcp/tools/{index.js → index.ts} +10 -3
- package/src/mcp/tools/{interfaces.js → interfaces.ts} +11 -1
- package/src/mcp/tools/{list-functions.js → list-functions.ts} +10 -1
- package/src/mcp/tools/list-repos.ts +17 -0
- package/src/mcp/tools/module-map.ts +13 -0
- package/src/mcp/tools/{node-roles.js → node-roles.ts} +10 -1
- package/src/mcp/tools/path.ts +34 -0
- package/src/mcp/tools/{query.js → query.ts} +19 -2
- package/src/mcp/tools/{semantic-search.js → semantic-search.ts} +13 -4
- package/src/mcp/tools/{sequence.js → sequence.ts} +15 -2
- package/src/mcp/tools/{structure.js → structure.ts} +11 -1
- package/src/mcp/tools/symbol-children.ts +24 -0
- package/src/mcp/tools/{triage.js → triage.ts} +20 -5
- package/src/mcp/tools/{where.js → where.ts} +10 -1
- package/src/presentation/{audit.js → audit.ts} +22 -6
- package/src/presentation/batch.ts +49 -0
- package/src/presentation/{branch-compare.js → branch-compare.ts} +59 -12
- package/src/presentation/{brief.js → brief.ts} +26 -14
- package/src/presentation/{cfg.js → cfg.ts} +37 -5
- package/src/presentation/{check.js → check.ts} +61 -5
- package/src/presentation/{cochange.js → cochange.ts} +30 -10
- package/src/presentation/{colors.js → colors.ts} +8 -3
- package/src/presentation/{communities.js → communities.ts} +45 -5
- package/src/presentation/{complexity.js → complexity.ts} +49 -5
- package/src/presentation/dataflow.ts +173 -0
- package/src/presentation/diff-impact-mermaid.ts +127 -0
- package/src/presentation/{export.js → export.ts} +160 -95
- package/src/presentation/{flow.js → flow.ts} +37 -8
- package/src/presentation/{manifesto.js → manifesto.ts} +25 -7
- package/src/presentation/{owners.js → owners.ts} +43 -6
- package/src/presentation/queries-cli/{exports.js → exports.ts} +49 -8
- package/src/presentation/queries-cli/{impact.js → impact.ts} +139 -23
- package/src/presentation/queries-cli/{inspect.js → inspect.ts} +208 -28
- package/src/presentation/queries-cli/{overview.js → overview.ts} +151 -30
- package/src/presentation/queries-cli/path.ts +179 -0
- package/src/presentation/{query.js → query.ts} +0 -4
- package/src/presentation/{result-formatter.js → result-formatter.ts} +43 -48
- package/src/presentation/sequence-renderer.ts +46 -0
- package/src/presentation/{sequence.js → sequence.ts} +15 -5
- package/src/presentation/{structure.js → structure.ts} +50 -5
- package/src/presentation/{table.js → table.ts} +14 -8
- package/src/presentation/{triage.js → triage.ts} +43 -8
- package/src/presentation/{viewer.js → viewer.ts} +96 -54
- package/src/shared/constants.ts +53 -0
- package/src/shared/{errors.js → errors.ts} +21 -20
- package/src/shared/{file-utils.js → file-utils.ts} +55 -23
- package/src/shared/{generators.js → generators.ts} +78 -31
- package/src/shared/{hierarchy.js → hierarchy.ts} +12 -6
- package/src/shared/{kinds.js → kinds.ts} +34 -12
- package/src/shared/{normalize.js → normalize.ts} +37 -10
- package/src/shared/{paginate.js → paginate.ts} +30 -19
- package/src/shared/version.ts +10 -0
- package/src/types.ts +252 -17
- package/dist/index.cjs.map +0 -1
- package/dist/index.d.cts +0 -3
- package/dist/index.d.cts.map +0 -1
- package/src/ast-analysis/visitors/cfg-visitor.js +0 -778
- package/src/cli/commands/models.js +0 -19
- package/src/db/repository/base.js +0 -201
- package/src/db/repository/dataflow.js +0 -17
- package/src/domain/analysis/dependencies.js +0 -395
- package/src/domain/analysis/impact.js +0 -675
- package/src/domain/graph/builder/context.js +0 -85
- package/src/domain/graph/builder/helpers.js +0 -218
- package/src/domain/graph/builder/stages/build-structure.js +0 -113
- package/src/domain/graph/builder/stages/finalize.js +0 -139
- package/src/domain/graph/builder/stages/resolve-imports.js +0 -143
- package/src/domain/search/stores/sqlite-blob.js +0 -24
- package/src/features/batch.js +0 -156
- package/src/features/complexity.js +0 -814
- package/src/features/structure.js +0 -700
- package/src/graph/algorithms/louvain.js +0 -26
- package/src/graph/builders/structure.js +0 -40
- package/src/graph/builders/temporal.js +0 -33
- package/src/mcp/server.js +0 -143
- package/src/mcp/tools/batch-query.js +0 -11
- package/src/mcp/tools/brief.js +0 -8
- package/src/mcp/tools/code-owners.js +0 -12
- package/src/mcp/tools/impact-analysis.js +0 -12
- package/src/mcp/tools/list-repos.js +0 -11
- package/src/mcp/tools/module-map.js +0 -6
- package/src/mcp/tools/path.js +0 -12
- package/src/mcp/tools/symbol-children.js +0 -14
- package/src/presentation/batch.js +0 -26
- package/src/presentation/dataflow.js +0 -110
- package/src/presentation/queries-cli/path.js +0 -65
- package/src/presentation/sequence-renderer.js +0 -43
- package/src/shared/constants.js +0 -39
- /package/src/cli/shared/{output.js → output.ts} +0 -0
- /package/src/domain/graph/{builder.js → builder.ts} +0 -0
- /package/src/extractors/{index.js → index.ts} +0 -0
- /package/src/graph/builders/{index.js → index.ts} +0 -0
- /package/src/graph/classifiers/{index.js → index.ts} +0 -0
- /package/src/graph/{index.js → index.ts} +0 -0
- /package/src/infrastructure/{result-formatter.js → result-formatter.ts} +0 -0
- /package/src/mcp/{index.js → index.ts} +0 -0
- /package/src/presentation/queries-cli/{index.js → index.ts} +0 -0
- /package/src/presentation/{queries-cli.js → queries-cli.ts} +0 -0
|
@@ -1,8 +1,21 @@
|
|
|
1
1
|
import { debug } from '../infrastructure/logger.js';
|
|
2
|
-
import {
|
|
2
|
+
import type {
|
|
3
|
+
Call,
|
|
4
|
+
ClassRelation,
|
|
5
|
+
Definition,
|
|
6
|
+
Export,
|
|
7
|
+
ExtractorOutput,
|
|
8
|
+
Import,
|
|
9
|
+
SubDeclaration,
|
|
10
|
+
TreeSitterNode,
|
|
11
|
+
TreeSitterQuery,
|
|
12
|
+
TreeSitterTree,
|
|
13
|
+
TypeMapEntry,
|
|
14
|
+
} from '../types.js';
|
|
15
|
+
import { findChild, MAX_WALK_DEPTH, nodeEndLine } from './helpers.js';
|
|
3
16
|
|
|
4
17
|
/** Built-in globals that start with uppercase but are not user-defined types. */
|
|
5
|
-
const BUILTIN_GLOBALS = new Set([
|
|
18
|
+
const BUILTIN_GLOBALS: Set<string> = new Set([
|
|
6
19
|
'Math',
|
|
7
20
|
'JSON',
|
|
8
21
|
'Promise',
|
|
@@ -63,33 +76,37 @@ const BUILTIN_GLOBALS = new Set([
|
|
|
63
76
|
* When a compiled tree-sitter Query is provided (from parser.js),
|
|
64
77
|
* uses the fast query-based path. Falls back to manual tree walk otherwise.
|
|
65
78
|
*/
|
|
66
|
-
export function extractSymbols(
|
|
79
|
+
export function extractSymbols(
|
|
80
|
+
tree: TreeSitterTree,
|
|
81
|
+
_filePath: string,
|
|
82
|
+
query?: TreeSitterQuery,
|
|
83
|
+
): ExtractorOutput {
|
|
67
84
|
if (query) return extractSymbolsQuery(tree, query);
|
|
68
85
|
return extractSymbolsWalk(tree);
|
|
69
86
|
}
|
|
70
87
|
|
|
71
88
|
// ── Query-based extraction (fast path) ──────────────────────────────────────
|
|
72
89
|
|
|
73
|
-
function extractSymbolsQuery(tree, query) {
|
|
74
|
-
const definitions = [];
|
|
75
|
-
const calls = [];
|
|
76
|
-
const imports = [];
|
|
77
|
-
const classes = [];
|
|
78
|
-
const exps = [];
|
|
79
|
-
const typeMap = new Map();
|
|
90
|
+
function extractSymbolsQuery(tree: TreeSitterTree, query: TreeSitterQuery): ExtractorOutput {
|
|
91
|
+
const definitions: Definition[] = [];
|
|
92
|
+
const calls: Call[] = [];
|
|
93
|
+
const imports: Import[] = [];
|
|
94
|
+
const classes: ClassRelation[] = [];
|
|
95
|
+
const exps: Export[] = [];
|
|
96
|
+
const typeMap: Map<string, TypeMapEntry> = new Map();
|
|
80
97
|
|
|
81
98
|
const matches = query.matches(tree.rootNode);
|
|
82
99
|
|
|
83
100
|
for (const match of matches) {
|
|
84
101
|
// Build capture lookup for this match (1-3 captures each, very fast)
|
|
85
|
-
const c = Object.create(null);
|
|
102
|
+
const c: Record<string, TreeSitterNode> = Object.create(null);
|
|
86
103
|
for (const cap of match.captures) c[cap.name] = cap.node;
|
|
87
104
|
|
|
88
105
|
if (c.fn_node) {
|
|
89
106
|
// function_declaration
|
|
90
107
|
const fnChildren = extractParameters(c.fn_node);
|
|
91
108
|
definitions.push({
|
|
92
|
-
name: c.fn_name
|
|
109
|
+
name: c.fn_name!.text,
|
|
93
110
|
kind: 'function',
|
|
94
111
|
line: c.fn_node.startPosition.row + 1,
|
|
95
112
|
endLine: nodeEndLine(c.fn_node),
|
|
@@ -99,17 +116,17 @@ function extractSymbolsQuery(tree, query) {
|
|
|
99
116
|
// variable_declarator with arrow_function / function_expression
|
|
100
117
|
const declNode = c.varfn_name.parent?.parent;
|
|
101
118
|
const line = declNode ? declNode.startPosition.row + 1 : c.varfn_name.startPosition.row + 1;
|
|
102
|
-
const varFnChildren = extractParameters(c.varfn_value);
|
|
119
|
+
const varFnChildren = extractParameters(c.varfn_value!);
|
|
103
120
|
definitions.push({
|
|
104
121
|
name: c.varfn_name.text,
|
|
105
122
|
kind: 'function',
|
|
106
123
|
line,
|
|
107
|
-
endLine: nodeEndLine(c.varfn_value),
|
|
124
|
+
endLine: nodeEndLine(c.varfn_value!),
|
|
108
125
|
children: varFnChildren.length > 0 ? varFnChildren : undefined,
|
|
109
126
|
});
|
|
110
127
|
} else if (c.cls_node) {
|
|
111
128
|
// class_declaration
|
|
112
|
-
const className = c.cls_name
|
|
129
|
+
const className = c.cls_name!.text;
|
|
113
130
|
const startLine = c.cls_node.startPosition.row + 1;
|
|
114
131
|
const clsChildren = extractClassProperties(c.cls_node);
|
|
115
132
|
definitions.push({
|
|
@@ -131,7 +148,7 @@ function extractSymbolsQuery(tree, query) {
|
|
|
131
148
|
}
|
|
132
149
|
} else if (c.meth_node) {
|
|
133
150
|
// method_definition
|
|
134
|
-
const methName = c.meth_name
|
|
151
|
+
const methName = c.meth_name!.text;
|
|
135
152
|
const parentClass = findParentClass(c.meth_node);
|
|
136
153
|
const fullName = parentClass ? `${parentClass}.${methName}` : methName;
|
|
137
154
|
const methChildren = extractParameters(c.meth_node);
|
|
@@ -146,7 +163,7 @@ function extractSymbolsQuery(tree, query) {
|
|
|
146
163
|
});
|
|
147
164
|
} else if (c.iface_node) {
|
|
148
165
|
// interface_declaration (TS/TSX only)
|
|
149
|
-
const ifaceName = c.iface_name
|
|
166
|
+
const ifaceName = c.iface_name!.text;
|
|
150
167
|
definitions.push({
|
|
151
168
|
name: ifaceName,
|
|
152
169
|
kind: 'interface',
|
|
@@ -161,7 +178,7 @@ function extractSymbolsQuery(tree, query) {
|
|
|
161
178
|
} else if (c.type_node) {
|
|
162
179
|
// type_alias_declaration (TS/TSX only)
|
|
163
180
|
definitions.push({
|
|
164
|
-
name: c.type_name
|
|
181
|
+
name: c.type_name!.text,
|
|
165
182
|
kind: 'type',
|
|
166
183
|
line: c.type_node.startPosition.row + 1,
|
|
167
184
|
endLine: nodeEndLine(c.type_node),
|
|
@@ -169,7 +186,7 @@ function extractSymbolsQuery(tree, query) {
|
|
|
169
186
|
} else if (c.imp_node) {
|
|
170
187
|
// import_statement
|
|
171
188
|
const isTypeOnly = c.imp_node.text.startsWith('import type');
|
|
172
|
-
const modPath = c.imp_source
|
|
189
|
+
const modPath = c.imp_source!.text.replace(/['"]/g, '');
|
|
173
190
|
const names = extractImportNames(c.imp_node);
|
|
174
191
|
imports.push({
|
|
175
192
|
source: modPath,
|
|
@@ -183,7 +200,7 @@ function extractSymbolsQuery(tree, query) {
|
|
|
183
200
|
const decl = c.exp_node.childForFieldName('declaration');
|
|
184
201
|
if (decl) {
|
|
185
202
|
const declType = decl.type;
|
|
186
|
-
const kindMap = {
|
|
203
|
+
const kindMap: Record<string, string> = {
|
|
187
204
|
function_declaration: 'function',
|
|
188
205
|
class_declaration: 'class',
|
|
189
206
|
interface_declaration: 'interface',
|
|
@@ -192,7 +209,7 @@ function extractSymbolsQuery(tree, query) {
|
|
|
192
209
|
const kind = kindMap[declType];
|
|
193
210
|
if (kind) {
|
|
194
211
|
const n = decl.childForFieldName('name');
|
|
195
|
-
if (n) exps.push({ name: n.text, kind, line: exportLine });
|
|
212
|
+
if (n) exps.push({ name: n.text, kind: kind as Export['kind'], line: exportLine });
|
|
196
213
|
}
|
|
197
214
|
}
|
|
198
215
|
const source = c.exp_node.childForFieldName('source') || findChild(c.exp_node, 'string');
|
|
@@ -212,22 +229,22 @@ function extractSymbolsQuery(tree, query) {
|
|
|
212
229
|
} else if (c.callfn_node) {
|
|
213
230
|
// call_expression with identifier function
|
|
214
231
|
calls.push({
|
|
215
|
-
name: c.callfn_name
|
|
232
|
+
name: c.callfn_name!.text,
|
|
216
233
|
line: c.callfn_node.startPosition.row + 1,
|
|
217
234
|
});
|
|
218
235
|
} else if (c.callmem_node) {
|
|
219
236
|
// call_expression with member_expression function
|
|
220
|
-
const callInfo = extractCallInfo(c.callmem_fn
|
|
237
|
+
const callInfo = extractCallInfo(c.callmem_fn!, c.callmem_node);
|
|
221
238
|
if (callInfo) calls.push(callInfo);
|
|
222
239
|
const cbDef = extractCallbackDefinition(c.callmem_node, c.callmem_fn);
|
|
223
240
|
if (cbDef) definitions.push(cbDef);
|
|
224
241
|
} else if (c.callsub_node) {
|
|
225
242
|
// call_expression with subscript_expression function
|
|
226
|
-
const callInfo = extractCallInfo(c.callsub_fn
|
|
243
|
+
const callInfo = extractCallInfo(c.callsub_fn!, c.callsub_node);
|
|
227
244
|
if (callInfo) calls.push(callInfo);
|
|
228
245
|
} else if (c.assign_node) {
|
|
229
246
|
// CommonJS: module.exports = require(...) / module.exports = { ...require(...) }
|
|
230
|
-
handleCommonJSAssignment(c.assign_left
|
|
247
|
+
handleCommonJSAssignment(c.assign_left!, c.assign_right!, c.assign_node, imports);
|
|
231
248
|
}
|
|
232
249
|
}
|
|
233
250
|
|
|
@@ -248,7 +265,7 @@ function extractSymbolsQuery(tree, query) {
|
|
|
248
265
|
* The query-based fast path has no pattern for lexical_declaration/variable_declaration,
|
|
249
266
|
* so constants are missed. This targeted walk fills that gap without a full tree traversal.
|
|
250
267
|
*/
|
|
251
|
-
function extractConstantsWalk(rootNode, definitions) {
|
|
268
|
+
function extractConstantsWalk(rootNode: TreeSitterNode, definitions: Definition[]): void {
|
|
252
269
|
for (let i = 0; i < rootNode.childCount; i++) {
|
|
253
270
|
const node = rootNode.child(i);
|
|
254
271
|
if (!node) continue;
|
|
@@ -296,7 +313,7 @@ function extractConstantsWalk(rootNode, definitions) {
|
|
|
296
313
|
* Query patterns match call_expression with identifier/member_expression/subscript_expression
|
|
297
314
|
* functions, but import() has function type `import` which none of those patterns cover.
|
|
298
315
|
*/
|
|
299
|
-
function extractDynamicImportsWalk(node, imports) {
|
|
316
|
+
function extractDynamicImportsWalk(node: TreeSitterNode, imports: Import[]): void {
|
|
300
317
|
if (node.type === 'call_expression') {
|
|
301
318
|
const fn = node.childForFieldName('function');
|
|
302
319
|
if (fn && fn.type === 'import') {
|
|
@@ -322,11 +339,16 @@ function extractDynamicImportsWalk(node, imports) {
|
|
|
322
339
|
}
|
|
323
340
|
}
|
|
324
341
|
for (let i = 0; i < node.childCount; i++) {
|
|
325
|
-
extractDynamicImportsWalk(node.child(i)
|
|
342
|
+
extractDynamicImportsWalk(node.child(i)!, imports);
|
|
326
343
|
}
|
|
327
344
|
}
|
|
328
345
|
|
|
329
|
-
function handleCommonJSAssignment(
|
|
346
|
+
function handleCommonJSAssignment(
|
|
347
|
+
left: TreeSitterNode,
|
|
348
|
+
right: TreeSitterNode,
|
|
349
|
+
node: TreeSitterNode,
|
|
350
|
+
imports: Import[],
|
|
351
|
+
): void {
|
|
330
352
|
if (!left || !right) return;
|
|
331
353
|
const leftText = left.text;
|
|
332
354
|
if (!leftText.startsWith('module.exports') && leftText !== 'exports') return;
|
|
@@ -380,8 +402,8 @@ function handleCommonJSAssignment(left, right, node, imports) {
|
|
|
380
402
|
|
|
381
403
|
// ── Manual tree walk (fallback when Query not available) ────────────────────
|
|
382
404
|
|
|
383
|
-
function extractSymbolsWalk(tree) {
|
|
384
|
-
const ctx = {
|
|
405
|
+
function extractSymbolsWalk(tree: TreeSitterTree): ExtractorOutput {
|
|
406
|
+
const ctx: ExtractorOutput = {
|
|
385
407
|
definitions: [],
|
|
386
408
|
calls: [],
|
|
387
409
|
imports: [],
|
|
@@ -392,11 +414,11 @@ function extractSymbolsWalk(tree) {
|
|
|
392
414
|
|
|
393
415
|
walkJavaScriptNode(tree.rootNode, ctx);
|
|
394
416
|
// Populate typeMap for variables and parameter type annotations
|
|
395
|
-
extractTypeMapWalk(tree.rootNode, ctx.typeMap);
|
|
417
|
+
extractTypeMapWalk(tree.rootNode, ctx.typeMap!);
|
|
396
418
|
return ctx;
|
|
397
419
|
}
|
|
398
420
|
|
|
399
|
-
function walkJavaScriptNode(node, ctx) {
|
|
421
|
+
function walkJavaScriptNode(node: TreeSitterNode, ctx: ExtractorOutput): void {
|
|
400
422
|
switch (node.type) {
|
|
401
423
|
case 'function_declaration':
|
|
402
424
|
handleFunctionDecl(node, ctx);
|
|
@@ -435,13 +457,13 @@ function walkJavaScriptNode(node, ctx) {
|
|
|
435
457
|
}
|
|
436
458
|
|
|
437
459
|
for (let i = 0; i < node.childCount; i++) {
|
|
438
|
-
walkJavaScriptNode(node.child(i)
|
|
460
|
+
walkJavaScriptNode(node.child(i)!, ctx);
|
|
439
461
|
}
|
|
440
462
|
}
|
|
441
463
|
|
|
442
464
|
// ── Walk-path per-node-type handlers ────────────────────────────────────────
|
|
443
465
|
|
|
444
|
-
function handleFunctionDecl(node, ctx) {
|
|
466
|
+
function handleFunctionDecl(node: TreeSitterNode, ctx: ExtractorOutput): void {
|
|
445
467
|
const nameNode = node.childForFieldName('name');
|
|
446
468
|
if (nameNode) {
|
|
447
469
|
const fnChildren = extractParameters(node);
|
|
@@ -455,7 +477,7 @@ function handleFunctionDecl(node, ctx) {
|
|
|
455
477
|
}
|
|
456
478
|
}
|
|
457
479
|
|
|
458
|
-
function handleClassDecl(node, ctx) {
|
|
480
|
+
function handleClassDecl(node: TreeSitterNode, ctx: ExtractorOutput): void {
|
|
459
481
|
const nameNode = node.childForFieldName('name');
|
|
460
482
|
if (!nameNode) return;
|
|
461
483
|
const className = nameNode.text;
|
|
@@ -481,7 +503,7 @@ function handleClassDecl(node, ctx) {
|
|
|
481
503
|
}
|
|
482
504
|
}
|
|
483
505
|
|
|
484
|
-
function handleMethodDef(node, ctx) {
|
|
506
|
+
function handleMethodDef(node: TreeSitterNode, ctx: ExtractorOutput): void {
|
|
485
507
|
const nameNode = node.childForFieldName('name');
|
|
486
508
|
if (nameNode) {
|
|
487
509
|
const parentClass = findParentClass(node);
|
|
@@ -499,7 +521,7 @@ function handleMethodDef(node, ctx) {
|
|
|
499
521
|
}
|
|
500
522
|
}
|
|
501
523
|
|
|
502
|
-
function handleInterfaceDecl(node, ctx) {
|
|
524
|
+
function handleInterfaceDecl(node: TreeSitterNode, ctx: ExtractorOutput): void {
|
|
503
525
|
const nameNode = node.childForFieldName('name');
|
|
504
526
|
if (!nameNode) return;
|
|
505
527
|
ctx.definitions.push({
|
|
@@ -517,7 +539,7 @@ function handleInterfaceDecl(node, ctx) {
|
|
|
517
539
|
}
|
|
518
540
|
}
|
|
519
541
|
|
|
520
|
-
function handleTypeAliasDecl(node, ctx) {
|
|
542
|
+
function handleTypeAliasDecl(node: TreeSitterNode, ctx: ExtractorOutput): void {
|
|
521
543
|
const nameNode = node.childForFieldName('name');
|
|
522
544
|
if (nameNode) {
|
|
523
545
|
ctx.definitions.push({
|
|
@@ -529,7 +551,7 @@ function handleTypeAliasDecl(node, ctx) {
|
|
|
529
551
|
}
|
|
530
552
|
}
|
|
531
553
|
|
|
532
|
-
function handleVariableDecl(node, ctx) {
|
|
554
|
+
function handleVariableDecl(node: TreeSitterNode, ctx: ExtractorOutput): void {
|
|
533
555
|
const isConst = node.text.startsWith('const ');
|
|
534
556
|
for (let i = 0; i < node.childCount; i++) {
|
|
535
557
|
const declarator = node.child(i);
|
|
@@ -565,10 +587,10 @@ function handleVariableDecl(node, ctx) {
|
|
|
565
587
|
}
|
|
566
588
|
}
|
|
567
589
|
|
|
568
|
-
function handleEnumDecl(node, ctx) {
|
|
590
|
+
function handleEnumDecl(node: TreeSitterNode, ctx: ExtractorOutput): void {
|
|
569
591
|
const nameNode = node.childForFieldName('name');
|
|
570
592
|
if (!nameNode) return;
|
|
571
|
-
const enumChildren = [];
|
|
593
|
+
const enumChildren: SubDeclaration[] = [];
|
|
572
594
|
const body = node.childForFieldName('body') || findChild(node, 'enum_body');
|
|
573
595
|
if (body) {
|
|
574
596
|
for (let i = 0; i < body.childCount; i++) {
|
|
@@ -595,7 +617,7 @@ function handleEnumDecl(node, ctx) {
|
|
|
595
617
|
});
|
|
596
618
|
}
|
|
597
619
|
|
|
598
|
-
function handleCallExpr(node, ctx) {
|
|
620
|
+
function handleCallExpr(node: TreeSitterNode, ctx: ExtractorOutput): void {
|
|
599
621
|
const fn = node.childForFieldName('function');
|
|
600
622
|
if (!fn) return;
|
|
601
623
|
if (fn.type === 'import') {
|
|
@@ -627,7 +649,7 @@ function handleCallExpr(node, ctx) {
|
|
|
627
649
|
}
|
|
628
650
|
}
|
|
629
651
|
|
|
630
|
-
function handleImportStmt(node, ctx) {
|
|
652
|
+
function handleImportStmt(node: TreeSitterNode, ctx: ExtractorOutput): void {
|
|
631
653
|
const isTypeOnly = node.text.startsWith('import type');
|
|
632
654
|
const source = node.childForFieldName('source') || findChild(node, 'string');
|
|
633
655
|
if (source) {
|
|
@@ -642,12 +664,12 @@ function handleImportStmt(node, ctx) {
|
|
|
642
664
|
}
|
|
643
665
|
}
|
|
644
666
|
|
|
645
|
-
function handleExportStmt(node, ctx) {
|
|
667
|
+
function handleExportStmt(node: TreeSitterNode, ctx: ExtractorOutput): void {
|
|
646
668
|
const exportLine = node.startPosition.row + 1;
|
|
647
669
|
const decl = node.childForFieldName('declaration');
|
|
648
670
|
if (decl) {
|
|
649
671
|
const declType = decl.type;
|
|
650
|
-
const kindMap = {
|
|
672
|
+
const kindMap: Record<string, string> = {
|
|
651
673
|
function_declaration: 'function',
|
|
652
674
|
class_declaration: 'class',
|
|
653
675
|
interface_declaration: 'interface',
|
|
@@ -656,7 +678,7 @@ function handleExportStmt(node, ctx) {
|
|
|
656
678
|
const kind = kindMap[declType];
|
|
657
679
|
if (kind) {
|
|
658
680
|
const n = decl.childForFieldName('name');
|
|
659
|
-
if (n) ctx.exports.push({ name: n.text, kind, line: exportLine });
|
|
681
|
+
if (n) ctx.exports.push({ name: n.text, kind: kind as Export['kind'], line: exportLine });
|
|
660
682
|
}
|
|
661
683
|
}
|
|
662
684
|
const source = node.childForFieldName('source') || findChild(node, 'string');
|
|
@@ -675,19 +697,19 @@ function handleExportStmt(node, ctx) {
|
|
|
675
697
|
}
|
|
676
698
|
}
|
|
677
699
|
|
|
678
|
-
function handleExpressionStmt(node, ctx) {
|
|
700
|
+
function handleExpressionStmt(node: TreeSitterNode, ctx: ExtractorOutput): void {
|
|
679
701
|
const expr = node.child(0);
|
|
680
702
|
if (expr && expr.type === 'assignment_expression') {
|
|
681
703
|
const left = expr.childForFieldName('left');
|
|
682
704
|
const right = expr.childForFieldName('right');
|
|
683
|
-
handleCommonJSAssignment(left, right, node, ctx.imports);
|
|
705
|
+
if (left && right) handleCommonJSAssignment(left, right, node, ctx.imports);
|
|
684
706
|
}
|
|
685
707
|
}
|
|
686
708
|
|
|
687
709
|
// ── Child extraction helpers ────────────────────────────────────────────────
|
|
688
710
|
|
|
689
|
-
function extractParameters(node) {
|
|
690
|
-
const params = [];
|
|
711
|
+
function extractParameters(node: TreeSitterNode): SubDeclaration[] {
|
|
712
|
+
const params: SubDeclaration[] = [];
|
|
691
713
|
const paramsNode = node.childForFieldName('parameters') || findChild(node, 'formal_parameters');
|
|
692
714
|
if (!paramsNode) return params;
|
|
693
715
|
for (let i = 0; i < paramsNode.childCount; i++) {
|
|
@@ -720,8 +742,8 @@ function extractParameters(node) {
|
|
|
720
742
|
return params;
|
|
721
743
|
}
|
|
722
744
|
|
|
723
|
-
function extractClassProperties(classNode) {
|
|
724
|
-
const props = [];
|
|
745
|
+
function extractClassProperties(classNode: TreeSitterNode): SubDeclaration[] {
|
|
746
|
+
const props: SubDeclaration[] = [];
|
|
725
747
|
const body = classNode.childForFieldName('body') || findChild(classNode, 'class_body');
|
|
726
748
|
if (!body) return props;
|
|
727
749
|
for (let i = 0; i < body.childCount; i++) {
|
|
@@ -761,7 +783,7 @@ function extractClassProperties(classNode) {
|
|
|
761
783
|
* Checks for TS access modifiers (public/private/protected) and JS private (#) fields.
|
|
762
784
|
* Returns 'public' | 'private' | 'protected' | undefined.
|
|
763
785
|
*/
|
|
764
|
-
function extractVisibility(node) {
|
|
786
|
+
function extractVisibility(node: TreeSitterNode): 'public' | 'private' | 'protected' | undefined {
|
|
765
787
|
// Check for TS accessibility modifiers (accessibility_modifier child)
|
|
766
788
|
for (let i = 0; i < node.childCount; i++) {
|
|
767
789
|
const child = node.child(i);
|
|
@@ -780,7 +802,7 @@ function extractVisibility(node) {
|
|
|
780
802
|
return undefined;
|
|
781
803
|
}
|
|
782
804
|
|
|
783
|
-
function isConstantValue(valueNode) {
|
|
805
|
+
function isConstantValue(valueNode: TreeSitterNode): boolean {
|
|
784
806
|
if (!valueNode) return false;
|
|
785
807
|
const t = valueNode.type;
|
|
786
808
|
return (
|
|
@@ -802,7 +824,11 @@ function isConstantValue(valueNode) {
|
|
|
802
824
|
|
|
803
825
|
// ── Shared helpers ──────────────────────────────────────────────────────────
|
|
804
826
|
|
|
805
|
-
function extractInterfaceMethods(
|
|
827
|
+
function extractInterfaceMethods(
|
|
828
|
+
bodyNode: TreeSitterNode,
|
|
829
|
+
interfaceName: string,
|
|
830
|
+
definitions: Definition[],
|
|
831
|
+
): void {
|
|
806
832
|
for (let i = 0; i < bodyNode.childCount; i++) {
|
|
807
833
|
const child = bodyNode.child(i);
|
|
808
834
|
if (!child) continue;
|
|
@@ -820,8 +846,8 @@ function extractInterfaceMethods(bodyNode, interfaceName, definitions) {
|
|
|
820
846
|
}
|
|
821
847
|
}
|
|
822
848
|
|
|
823
|
-
function extractImplements(heritage) {
|
|
824
|
-
const interfaces = [];
|
|
849
|
+
function extractImplements(heritage: TreeSitterNode): string[] {
|
|
850
|
+
const interfaces: string[] = [];
|
|
825
851
|
for (let i = 0; i < heritage.childCount; i++) {
|
|
826
852
|
const child = heritage.child(i);
|
|
827
853
|
if (!child) continue;
|
|
@@ -842,8 +868,8 @@ function extractImplements(heritage) {
|
|
|
842
868
|
return interfaces;
|
|
843
869
|
}
|
|
844
870
|
|
|
845
|
-
function extractImplementsFromNode(node) {
|
|
846
|
-
const result = [];
|
|
871
|
+
function extractImplementsFromNode(node: TreeSitterNode): string[] {
|
|
872
|
+
const result: string[] = [];
|
|
847
873
|
for (let i = 0; i < node.childCount; i++) {
|
|
848
874
|
const child = node.child(i);
|
|
849
875
|
if (!child) continue;
|
|
@@ -855,7 +881,7 @@ function extractImplementsFromNode(node) {
|
|
|
855
881
|
|
|
856
882
|
// ── Type inference helpers ───────────────────────────────────────────────
|
|
857
883
|
|
|
858
|
-
function extractSimpleTypeName(typeAnnotationNode) {
|
|
884
|
+
function extractSimpleTypeName(typeAnnotationNode: TreeSitterNode): string | null {
|
|
859
885
|
if (!typeAnnotationNode) return null;
|
|
860
886
|
for (let i = 0; i < typeAnnotationNode.childCount; i++) {
|
|
861
887
|
const child = typeAnnotationNode.child(i);
|
|
@@ -869,7 +895,7 @@ function extractSimpleTypeName(typeAnnotationNode) {
|
|
|
869
895
|
return null;
|
|
870
896
|
}
|
|
871
897
|
|
|
872
|
-
function extractNewExprTypeName(newExprNode) {
|
|
898
|
+
function extractNewExprTypeName(newExprNode: TreeSitterNode): string | null {
|
|
873
899
|
if (!newExprNode || newExprNode.type !== 'new_expression') return null;
|
|
874
900
|
const ctor = newExprNode.childForFieldName('constructor') || newExprNode.child(1);
|
|
875
901
|
if (!ctor) return null;
|
|
@@ -891,16 +917,16 @@ function extractNewExprTypeName(newExprNode) {
|
|
|
891
917
|
*
|
|
892
918
|
* Higher-confidence entries take priority when the same variable is seen twice.
|
|
893
919
|
*/
|
|
894
|
-
function extractTypeMapWalk(rootNode, typeMap) {
|
|
895
|
-
function setIfHigher(name, type, confidence) {
|
|
920
|
+
function extractTypeMapWalk(rootNode: TreeSitterNode, typeMap: Map<string, TypeMapEntry>): void {
|
|
921
|
+
function setIfHigher(name: string, type: string, confidence: number): void {
|
|
896
922
|
const existing = typeMap.get(name);
|
|
897
923
|
if (!existing || confidence > existing.confidence) {
|
|
898
924
|
typeMap.set(name, { type, confidence });
|
|
899
925
|
}
|
|
900
926
|
}
|
|
901
927
|
|
|
902
|
-
function walk(node, depth) {
|
|
903
|
-
if (depth >=
|
|
928
|
+
function walk(node: TreeSitterNode, depth: number): void {
|
|
929
|
+
if (depth >= MAX_WALK_DEPTH) return;
|
|
904
930
|
const t = node.type;
|
|
905
931
|
if (t === 'variable_declarator') {
|
|
906
932
|
const nameN = node.childForFieldName('name');
|
|
@@ -924,7 +950,7 @@ function extractTypeMapWalk(rootNode, typeMap) {
|
|
|
924
950
|
const obj = fn.childForFieldName('object');
|
|
925
951
|
if (obj && obj.type === 'identifier') {
|
|
926
952
|
const objName = obj.text;
|
|
927
|
-
if (objName[0] !== objName[0]
|
|
953
|
+
if (objName[0]! !== objName[0]!.toLowerCase() && !BUILTIN_GLOBALS.has(objName)) {
|
|
928
954
|
setIfHigher(nameN.text, objName, 0.7);
|
|
929
955
|
}
|
|
930
956
|
}
|
|
@@ -944,20 +970,20 @@ function extractTypeMapWalk(rootNode, typeMap) {
|
|
|
944
970
|
}
|
|
945
971
|
}
|
|
946
972
|
for (let i = 0; i < node.childCount; i++) {
|
|
947
|
-
walk(node.child(i)
|
|
973
|
+
walk(node.child(i)!, depth + 1);
|
|
948
974
|
}
|
|
949
975
|
}
|
|
950
976
|
walk(rootNode, 0);
|
|
951
977
|
}
|
|
952
978
|
|
|
953
|
-
function extractReceiverName(objNode) {
|
|
979
|
+
function extractReceiverName(objNode: TreeSitterNode | null): string | undefined {
|
|
954
980
|
if (!objNode) return undefined;
|
|
955
981
|
const t = objNode.type;
|
|
956
982
|
if (t === 'identifier' || t === 'this' || t === 'super') return objNode.text;
|
|
957
983
|
return objNode.text;
|
|
958
984
|
}
|
|
959
985
|
|
|
960
|
-
function extractCallInfo(fn, callNode) {
|
|
986
|
+
function extractCallInfo(fn: TreeSitterNode, callNode: TreeSitterNode): Call | null {
|
|
961
987
|
const fnType = fn.type;
|
|
962
988
|
if (fnType === 'identifier') {
|
|
963
989
|
return { name: fn.text, line: callNode.startPosition.row + 1 };
|
|
@@ -1016,7 +1042,7 @@ function extractCallInfo(fn, callNode) {
|
|
|
1016
1042
|
return null;
|
|
1017
1043
|
}
|
|
1018
1044
|
|
|
1019
|
-
function findAnonymousCallback(argsNode) {
|
|
1045
|
+
function findAnonymousCallback(argsNode: TreeSitterNode): TreeSitterNode | null {
|
|
1020
1046
|
for (let i = 0; i < argsNode.childCount; i++) {
|
|
1021
1047
|
const child = argsNode.child(i);
|
|
1022
1048
|
if (child && (child.type === 'arrow_function' || child.type === 'function_expression')) {
|
|
@@ -1026,7 +1052,7 @@ function findAnonymousCallback(argsNode) {
|
|
|
1026
1052
|
return null;
|
|
1027
1053
|
}
|
|
1028
1054
|
|
|
1029
|
-
function findFirstStringArg(argsNode) {
|
|
1055
|
+
function findFirstStringArg(argsNode: TreeSitterNode): string | null {
|
|
1030
1056
|
for (let i = 0; i < argsNode.childCount; i++) {
|
|
1031
1057
|
const child = argsNode.child(i);
|
|
1032
1058
|
if (child && child.type === 'string') {
|
|
@@ -1036,8 +1062,8 @@ function findFirstStringArg(argsNode) {
|
|
|
1036
1062
|
return null;
|
|
1037
1063
|
}
|
|
1038
1064
|
|
|
1039
|
-
function walkCallChain(startNode, methodName) {
|
|
1040
|
-
let current = startNode;
|
|
1065
|
+
function walkCallChain(startNode: TreeSitterNode, methodName: string): TreeSitterNode | null {
|
|
1066
|
+
let current: TreeSitterNode | null = startNode;
|
|
1041
1067
|
while (current) {
|
|
1042
1068
|
const curType = current.type;
|
|
1043
1069
|
if (curType === 'call_expression') {
|
|
@@ -1058,7 +1084,7 @@ function walkCallChain(startNode, methodName) {
|
|
|
1058
1084
|
return null;
|
|
1059
1085
|
}
|
|
1060
1086
|
|
|
1061
|
-
const EXPRESS_METHODS = new Set([
|
|
1087
|
+
const EXPRESS_METHODS: Set<string> = new Set([
|
|
1062
1088
|
'get',
|
|
1063
1089
|
'post',
|
|
1064
1090
|
'put',
|
|
@@ -1069,9 +1095,12 @@ const EXPRESS_METHODS = new Set([
|
|
|
1069
1095
|
'all',
|
|
1070
1096
|
'use',
|
|
1071
1097
|
]);
|
|
1072
|
-
const EVENT_METHODS = new Set(['on', 'once', 'addEventListener', 'addListener']);
|
|
1098
|
+
const EVENT_METHODS: Set<string> = new Set(['on', 'once', 'addEventListener', 'addListener']);
|
|
1073
1099
|
|
|
1074
|
-
function extractCallbackDefinition(
|
|
1100
|
+
function extractCallbackDefinition(
|
|
1101
|
+
callNode: TreeSitterNode,
|
|
1102
|
+
fn?: TreeSitterNode | null,
|
|
1103
|
+
): Definition | null {
|
|
1075
1104
|
if (!fn) fn = callNode.childForFieldName('function');
|
|
1076
1105
|
if (!fn || fn.type !== 'member_expression') return null;
|
|
1077
1106
|
|
|
@@ -1086,14 +1115,14 @@ function extractCallbackDefinition(callNode, fn) {
|
|
|
1086
1115
|
if (method === 'action') {
|
|
1087
1116
|
const cb = findAnonymousCallback(args);
|
|
1088
1117
|
if (!cb) return null;
|
|
1089
|
-
const commandCall = walkCallChain(fn.childForFieldName('object')
|
|
1118
|
+
const commandCall = walkCallChain(fn.childForFieldName('object')!, 'command');
|
|
1090
1119
|
if (!commandCall) return null;
|
|
1091
1120
|
const cmdArgs =
|
|
1092
1121
|
commandCall.childForFieldName('arguments') || findChild(commandCall, 'arguments');
|
|
1093
1122
|
if (!cmdArgs) return null;
|
|
1094
1123
|
const cmdName = findFirstStringArg(cmdArgs);
|
|
1095
1124
|
if (!cmdName) return null;
|
|
1096
|
-
const firstWord = cmdName.split(/\s/)[0]
|
|
1125
|
+
const firstWord = cmdName.split(/\s/)[0]!;
|
|
1097
1126
|
return {
|
|
1098
1127
|
name: `command:${firstWord}`,
|
|
1099
1128
|
kind: 'function',
|
|
@@ -1133,9 +1162,9 @@ function extractCallbackDefinition(callNode, fn) {
|
|
|
1133
1162
|
return null;
|
|
1134
1163
|
}
|
|
1135
1164
|
|
|
1136
|
-
function extractSuperclass(heritage) {
|
|
1165
|
+
function extractSuperclass(heritage: TreeSitterNode): string | null {
|
|
1137
1166
|
for (let i = 0; i < heritage.childCount; i++) {
|
|
1138
|
-
const child = heritage.child(i)
|
|
1167
|
+
const child = heritage.child(i)!;
|
|
1139
1168
|
if (child.type === 'identifier') return child.text;
|
|
1140
1169
|
if (child.type === 'member_expression') return child.text;
|
|
1141
1170
|
const found = extractSuperclass(child);
|
|
@@ -1144,7 +1173,7 @@ function extractSuperclass(heritage) {
|
|
|
1144
1173
|
return null;
|
|
1145
1174
|
}
|
|
1146
1175
|
|
|
1147
|
-
function findParentClass(node) {
|
|
1176
|
+
function findParentClass(node: TreeSitterNode): string | null {
|
|
1148
1177
|
let current = node.parent;
|
|
1149
1178
|
while (current) {
|
|
1150
1179
|
const t = current.type;
|
|
@@ -1157,9 +1186,9 @@ function findParentClass(node) {
|
|
|
1157
1186
|
return null;
|
|
1158
1187
|
}
|
|
1159
1188
|
|
|
1160
|
-
function extractImportNames(node) {
|
|
1161
|
-
const names = [];
|
|
1162
|
-
function scan(n) {
|
|
1189
|
+
function extractImportNames(node: TreeSitterNode): string[] {
|
|
1190
|
+
const names: string[] = [];
|
|
1191
|
+
function scan(n: TreeSitterNode): void {
|
|
1163
1192
|
if (n.type === 'import_specifier' || n.type === 'export_specifier') {
|
|
1164
1193
|
const nameNode = n.childForFieldName('name') || n.childForFieldName('alias');
|
|
1165
1194
|
if (nameNode) names.push(nameNode.text);
|
|
@@ -1169,7 +1198,7 @@ function extractImportNames(node) {
|
|
|
1169
1198
|
} else if (n.type === 'namespace_import') {
|
|
1170
1199
|
names.push(n.text);
|
|
1171
1200
|
}
|
|
1172
|
-
for (let i = 0; i < n.childCount; i++) scan(n.child(i));
|
|
1201
|
+
for (let i = 0; i < n.childCount; i++) scan(n.child(i)!);
|
|
1173
1202
|
}
|
|
1174
1203
|
scan(node);
|
|
1175
1204
|
return names;
|
|
@@ -1186,7 +1215,7 @@ function extractImportNames(node) {
|
|
|
1186
1215
|
* Walks up the AST from the call_expression to find the enclosing
|
|
1187
1216
|
* variable_declarator and reads the name/object_pattern.
|
|
1188
1217
|
*/
|
|
1189
|
-
function extractDynamicImportNames(callNode) {
|
|
1218
|
+
function extractDynamicImportNames(callNode: TreeSitterNode): string[] {
|
|
1190
1219
|
// Walk up: call_expression → await_expression → variable_declarator
|
|
1191
1220
|
let current = callNode.parent;
|
|
1192
1221
|
// Skip await_expression wrapper if present
|
|
@@ -1199,9 +1228,9 @@ function extractDynamicImportNames(callNode) {
|
|
|
1199
1228
|
|
|
1200
1229
|
// const { a, b } = await import(...) → object_pattern
|
|
1201
1230
|
if (nameNode.type === 'object_pattern') {
|
|
1202
|
-
const names = [];
|
|
1231
|
+
const names: string[] = [];
|
|
1203
1232
|
for (let i = 0; i < nameNode.childCount; i++) {
|
|
1204
|
-
const child = nameNode.child(i)
|
|
1233
|
+
const child = nameNode.child(i)!;
|
|
1205
1234
|
if (child.type === 'shorthand_property_identifier_pattern') {
|
|
1206
1235
|
names.push(child.text);
|
|
1207
1236
|
} else if (child.type === 'pair_pattern') {
|
|
@@ -1221,9 +1250,9 @@ function extractDynamicImportNames(callNode) {
|
|
|
1221
1250
|
|
|
1222
1251
|
// const [a, b] = await import(...) → array_pattern (rare but possible)
|
|
1223
1252
|
if (nameNode.type === 'array_pattern') {
|
|
1224
|
-
const names = [];
|
|
1253
|
+
const names: string[] = [];
|
|
1225
1254
|
for (let i = 0; i < nameNode.childCount; i++) {
|
|
1226
|
-
const child = nameNode.child(i)
|
|
1255
|
+
const child = nameNode.child(i)!;
|
|
1227
1256
|
if (child.type === 'identifier') names.push(child.text);
|
|
1228
1257
|
else if (child.type === 'rest_pattern') {
|
|
1229
1258
|
const inner = child.child(0) || child.childForFieldName('name');
|