@optave/codegraph 3.3.1 → 3.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +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 +40 -26
- 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 +1 -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-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 +20 -65
- 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 +9 -3
- 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 +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 +2 -2
- 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 +2 -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.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 +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 +27 -7
- 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 -1
- package/dist/cli.js.map +1 -1
- package/dist/db/connection.d.ts +15 -19
- package/dist/db/connection.d.ts.map +1 -1
- package/dist/db/connection.js +2 -10
- 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 +1 -1
- 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 +6 -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 +3 -8
- 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 +39 -32
- package/dist/domain/analysis/context.js.map +1 -1
- package/dist/domain/analysis/dependencies.d.ts +113 -37
- package/dist/domain/analysis/dependencies.d.ts.map +1 -1
- package/dist/domain/analysis/dependencies.js +20 -27
- package/dist/domain/analysis/dependencies.js.map +1 -1
- 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 +48 -33
- package/dist/domain/analysis/exports.js.map +1 -1
- package/dist/domain/analysis/impact.d.ts +128 -16
- package/dist/domain/analysis/impact.d.ts.map +1 -1
- package/dist/domain/analysis/impact.js +14 -54
- 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 +19 -7
- 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 +32 -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 +14 -14
- package/dist/domain/graph/builder/helpers.d.ts.map +1 -1
- package/dist/domain/graph/builder/helpers.js +62 -23
- package/dist/domain/graph/builder/helpers.js.map +1 -1
- package/dist/domain/graph/builder/incremental.d.ts +50 -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 +21 -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 +6 -12
- 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 +8 -8
- 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 +38 -45
- 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 +45 -26
- 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 +0 -22
- 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 +4 -24
- 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 +62 -9
- 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 +14 -6
- 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 +38 -46
- package/dist/domain/parser.js.map +1 -1
- package/dist/domain/queries.d.ts +20 -13
- package/dist/domain/queries.d.ts.map +1 -1
- package/dist/domain/queries.js +1 -1
- 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 +30 -19
- 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 +72 -10
- 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 +7 -6
- package/dist/extractors/helpers.d.ts.map +1 -1
- package/dist/extractors/helpers.js +6 -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 +62 -59
- 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 +13 -7
- 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 +23 -11
- 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 +8 -5
- 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 +12 -21
- 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 +27 -51
- 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 +81 -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 +10 -63
- 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 +13 -41
- package/dist/features/communities.js.map +1 -1
- package/dist/features/complexity.d.ts +64 -117
- package/dist/features/complexity.d.ts.map +1 -1
- package/dist/features/complexity.js +58 -110
- 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 +24 -55
- package/dist/features/dataflow.js.map +1 -1
- package/dist/features/export.d.ts +16 -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 +15 -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 +22 -39
- 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 +2 -40
- package/dist/features/snapshot.js.map +1 -1
- package/dist/features/structure.d.ts +80 -28
- package/dist/features/structure.d.ts.map +1 -1
- package/dist/features/structure.js +64 -76
- 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 +10 -27
- 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 +165 -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 +19 -15
- package/dist/graph/classifiers/roles.d.ts.map +1 -1
- package/dist/graph/classifiers/roles.js +4 -7
- 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 +35 -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 +22 -10
- 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 +2 -2
- 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 +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 +3 -7
- 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 +79 -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 +0 -3
- 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 +13 -2
- package/dist/mcp/tools/path.d.ts.map +1 -1
- 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 +1 -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/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 +6 -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 +1 -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.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 +10 -35
- 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 +1 -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 +3 -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 +6 -6
- package/dist/shared/constants.d.ts.map +1 -1
- package/dist/shared/constants.js.map +1 -1
- package/dist/shared/errors.d.ts +21 -29
- package/dist/shared/errors.d.ts.map +1 -1
- package/dist/shared/errors.js +0 -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/types.d.ts +234 -15
- package/dist/types.d.ts.map +1 -1
- package/package.json +14 -15
- package/src/ast-analysis/{engine.js → engine.ts} +151 -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} +44 -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-visitor.js → cfg-visitor.ts} +251 -155
- package/src/ast-analysis/visitors/{complexity-visitor.js → complexity-visitor.ts} +74 -61
- package/src/ast-analysis/visitors/{dataflow-visitor.js → dataflow-visitor.ts} +149 -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} +30 -14
- package/src/cli/commands/{branch-compare.js → branch-compare.ts} +6 -4
- package/src/cli/commands/{brief.js → brief.ts} +3 -2
- package/src/cli/commands/{build.js → build.ts} +10 -8
- 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} +6 -3
- 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} +6 -5
- 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} +3 -2
- package/src/cli/commands/{where.js → where.ts} +3 -2
- package/src/cli/{index.js → index.ts} +40 -15
- 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 -2
- package/src/db/{connection.js → connection.ts} +46 -37
- package/src/db/{index.js → index.ts} +4 -0
- package/src/db/{migrations.js → migrations.ts} +33 -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} +34 -19
- package/src/domain/analysis/{context.js → context.ts} +179 -79
- package/src/domain/analysis/{dependencies.js → dependencies.ts} +149 -61
- package/src/domain/analysis/{exports.js → exports.ts} +101 -54
- package/src/domain/analysis/{impact.js → impact.ts} +178 -132
- package/src/domain/analysis/{implementations.js → implementations.ts} +13 -14
- package/src/domain/analysis/{module-map.js → module-map.ts} +128 -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 +289 -0
- package/src/domain/graph/builder/{incremental.js → incremental.ts} +179 -76
- package/src/domain/graph/builder/{pipeline.js → pipeline.ts} +33 -27
- package/src/domain/graph/builder/stages/{build-edges.js → build-edges.ts} +174 -56
- package/src/domain/graph/builder/stages/{build-structure.js → build-structure.ts} +34 -17
- 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} +156 -123
- package/src/domain/graph/builder/stages/{finalize.js → finalize.ts} +79 -41
- package/src/domain/graph/builder/stages/{insert-nodes.js → insert-nodes.ts} +102 -47
- package/src/domain/graph/builder/stages/{parse-files.js → parse-files.ts} +2 -4
- package/src/domain/graph/builder/stages/{resolve-imports.js → resolve-imports.ts} +26 -39
- 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.ts +66 -0
- package/src/domain/graph/{journal.js → journal.ts} +22 -26
- package/src/domain/graph/{resolve.js → resolve.ts} +125 -35
- package/src/domain/graph/{watcher.js → watcher.ts} +45 -19
- package/src/domain/{parser.js → parser.ts} +151 -105
- package/src/domain/{queries.js → queries.ts} +1 -1
- package/src/domain/search/{generator.js → generator.ts} +28 -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} +71 -42
- package/src/extractors/{go.js → go.ts} +105 -30
- package/src/extractors/{hcl.js → hcl.ts} +52 -27
- package/src/extractors/{helpers.js → helpers.ts} +20 -15
- package/src/extractors/{java.js → java.ts} +43 -24
- package/src/extractors/{javascript.js → javascript.ts} +165 -133
- package/src/extractors/{php.js → php.ts} +45 -32
- package/src/extractors/{python.js → python.ts} +63 -36
- package/src/extractors/{ruby.js → ruby.ts} +40 -25
- package/src/extractors/{rust.js → rust.ts} +41 -31
- package/src/features/{ast.js → ast.ts} +117 -72
- package/src/features/{audit.js → audit.ts} +173 -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} +153 -81
- package/src/features/{cfg.js → cfg.ts} +230 -88
- package/src/features/{check.js → check.ts} +143 -70
- package/src/features/{cochange.js → cochange.ts} +117 -97
- package/src/features/{communities.js → communities.ts} +85 -57
- package/src/features/{complexity.js → complexity.ts} +256 -156
- package/src/features/{dataflow.js → dataflow.ts} +242 -143
- package/src/features/{export.js → export.ts} +164 -52
- package/src/features/{flow.js → flow.ts} +63 -45
- package/src/features/{graph-enrichment.js → graph-enrichment.ts} +138 -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} +28 -47
- package/src/features/{structure.js → structure.ts} +309 -130
- 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 +204 -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} +32 -16
- package/src/graph/{model.js → model.ts} +49 -58
- package/src/index.cjs +1 -1
- package/src/infrastructure/{config.js → config.ts} +82 -54
- package/src/infrastructure/{logger.js → logger.ts} +6 -6
- package/src/infrastructure/{native.js → native.ts} +16 -15
- package/src/infrastructure/{registry.js → registry.ts} +48 -16
- package/src/infrastructure/{test-filter.js → test-filter.ts} +1 -1
- package/src/infrastructure/{update-check.js → update-check.ts} +30 -16
- package/src/mcp/{middleware.js → middleware.ts} +6 -12
- package/src/mcp/server.ts +249 -0
- package/src/mcp/{tool-registry.js → tool-registry.ts} +16 -9
- 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} +11 -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 +24 -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} +23 -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/{export.js → export.ts} +160 -95
- package/src/presentation/{flow.js → flow.ts} +39 -8
- package/src/presentation/{manifesto.js → manifesto.ts} +26 -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} +209 -28
- package/src/presentation/queries-cli/{overview.js → overview.ts} +151 -30
- package/src/presentation/queries-cli/{path.js → path.ts} +53 -9
- package/src/presentation/{query.js → query.ts} +0 -4
- package/src/presentation/{result-formatter.js → result-formatter.ts} +44 -48
- package/src/presentation/sequence-renderer.ts +46 -0
- package/src/presentation/{sequence.js → sequence.ts} +16 -5
- package/src/presentation/{structure.js → structure.ts} +62 -5
- package/src/presentation/{table.js → table.ts} +14 -8
- package/src/presentation/{triage.js → triage.ts} +44 -8
- package/src/presentation/{viewer.js → viewer.ts} +96 -54
- package/src/shared/{constants.js → constants.ts} +4 -4
- package/src/shared/{errors.js → errors.ts} +16 -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/types.ts +258 -17
- package/src/vendor.d.ts +39 -0
- package/dist/index.cjs.map +0 -1
- package/dist/index.d.cts +0 -3
- package/dist/index.d.cts.map +0 -1
- 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/graph/builder/context.js +0 -85
- package/src/domain/graph/builder/helpers.js +0 -218
- package/src/domain/graph/cycles.js +0 -82
- package/src/domain/search/stores/sqlite-blob.js +0 -24
- package/src/features/batch.js +0 -156
- 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/sequence-renderer.js +0 -43
- /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/{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 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';
|
|
2
15
|
import { findChild, 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,64 +76,70 @@ 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
|
-
if (c
|
|
105
|
+
if (c['fn_node']) {
|
|
89
106
|
// function_declaration
|
|
90
|
-
const fnChildren = extractParameters(c
|
|
107
|
+
const fnChildren = extractParameters(c['fn_node']);
|
|
91
108
|
definitions.push({
|
|
92
|
-
name: c
|
|
109
|
+
name: c['fn_name']!.text,
|
|
93
110
|
kind: 'function',
|
|
94
|
-
line: c
|
|
95
|
-
endLine: nodeEndLine(c
|
|
111
|
+
line: c['fn_node'].startPosition.row + 1,
|
|
112
|
+
endLine: nodeEndLine(c['fn_node']),
|
|
96
113
|
children: fnChildren.length > 0 ? fnChildren : undefined,
|
|
97
114
|
});
|
|
98
|
-
} else if (c
|
|
115
|
+
} else if (c['varfn_name']) {
|
|
99
116
|
// variable_declarator with arrow_function / function_expression
|
|
100
|
-
const declNode = c
|
|
101
|
-
const line = declNode
|
|
102
|
-
|
|
117
|
+
const declNode = c['varfn_name'].parent?.parent;
|
|
118
|
+
const line = declNode
|
|
119
|
+
? declNode.startPosition.row + 1
|
|
120
|
+
: c['varfn_name'].startPosition.row + 1;
|
|
121
|
+
const varFnChildren = extractParameters(c['varfn_value']!);
|
|
103
122
|
definitions.push({
|
|
104
|
-
name: c
|
|
123
|
+
name: c['varfn_name'].text,
|
|
105
124
|
kind: 'function',
|
|
106
125
|
line,
|
|
107
|
-
endLine: nodeEndLine(c
|
|
126
|
+
endLine: nodeEndLine(c['varfn_value']!),
|
|
108
127
|
children: varFnChildren.length > 0 ? varFnChildren : undefined,
|
|
109
128
|
});
|
|
110
|
-
} else if (c
|
|
129
|
+
} else if (c['cls_node']) {
|
|
111
130
|
// class_declaration
|
|
112
|
-
const className = c
|
|
113
|
-
const startLine = c
|
|
114
|
-
const clsChildren = extractClassProperties(c
|
|
131
|
+
const className = c['cls_name']!.text;
|
|
132
|
+
const startLine = c['cls_node'].startPosition.row + 1;
|
|
133
|
+
const clsChildren = extractClassProperties(c['cls_node']);
|
|
115
134
|
definitions.push({
|
|
116
135
|
name: className,
|
|
117
136
|
kind: 'class',
|
|
118
137
|
line: startLine,
|
|
119
|
-
endLine: nodeEndLine(c
|
|
138
|
+
endLine: nodeEndLine(c['cls_node']),
|
|
120
139
|
children: clsChildren.length > 0 ? clsChildren : undefined,
|
|
121
140
|
});
|
|
122
141
|
const heritage =
|
|
123
|
-
c
|
|
142
|
+
c['cls_node'].childForFieldName('heritage') || findChild(c['cls_node'], 'class_heritage');
|
|
124
143
|
if (heritage) {
|
|
125
144
|
const superName = extractSuperclass(heritage);
|
|
126
145
|
if (superName) classes.push({ name: className, extends: superName, line: startLine });
|
|
@@ -129,61 +148,61 @@ function extractSymbolsQuery(tree, query) {
|
|
|
129
148
|
classes.push({ name: className, implements: iface, line: startLine });
|
|
130
149
|
}
|
|
131
150
|
}
|
|
132
|
-
} else if (c
|
|
151
|
+
} else if (c['meth_node']) {
|
|
133
152
|
// method_definition
|
|
134
|
-
const methName = c
|
|
135
|
-
const parentClass = findParentClass(c
|
|
153
|
+
const methName = c['meth_name']!.text;
|
|
154
|
+
const parentClass = findParentClass(c['meth_node']);
|
|
136
155
|
const fullName = parentClass ? `${parentClass}.${methName}` : methName;
|
|
137
|
-
const methChildren = extractParameters(c
|
|
138
|
-
const methVis = extractVisibility(c
|
|
156
|
+
const methChildren = extractParameters(c['meth_node']);
|
|
157
|
+
const methVis = extractVisibility(c['meth_node']);
|
|
139
158
|
definitions.push({
|
|
140
159
|
name: fullName,
|
|
141
160
|
kind: 'method',
|
|
142
|
-
line: c
|
|
143
|
-
endLine: nodeEndLine(c
|
|
161
|
+
line: c['meth_node'].startPosition.row + 1,
|
|
162
|
+
endLine: nodeEndLine(c['meth_node']),
|
|
144
163
|
children: methChildren.length > 0 ? methChildren : undefined,
|
|
145
164
|
visibility: methVis,
|
|
146
165
|
});
|
|
147
|
-
} else if (c
|
|
166
|
+
} else if (c['iface_node']) {
|
|
148
167
|
// interface_declaration (TS/TSX only)
|
|
149
|
-
const ifaceName = c
|
|
168
|
+
const ifaceName = c['iface_name']!.text;
|
|
150
169
|
definitions.push({
|
|
151
170
|
name: ifaceName,
|
|
152
171
|
kind: 'interface',
|
|
153
|
-
line: c
|
|
154
|
-
endLine: nodeEndLine(c
|
|
172
|
+
line: c['iface_node'].startPosition.row + 1,
|
|
173
|
+
endLine: nodeEndLine(c['iface_node']),
|
|
155
174
|
});
|
|
156
175
|
const body =
|
|
157
|
-
c
|
|
158
|
-
findChild(c
|
|
159
|
-
findChild(c
|
|
176
|
+
c['iface_node'].childForFieldName('body') ||
|
|
177
|
+
findChild(c['iface_node'], 'interface_body') ||
|
|
178
|
+
findChild(c['iface_node'], 'object_type');
|
|
160
179
|
if (body) extractInterfaceMethods(body, ifaceName, definitions);
|
|
161
|
-
} else if (c
|
|
180
|
+
} else if (c['type_node']) {
|
|
162
181
|
// type_alias_declaration (TS/TSX only)
|
|
163
182
|
definitions.push({
|
|
164
|
-
name: c
|
|
183
|
+
name: c['type_name']!.text,
|
|
165
184
|
kind: 'type',
|
|
166
|
-
line: c
|
|
167
|
-
endLine: nodeEndLine(c
|
|
185
|
+
line: c['type_node'].startPosition.row + 1,
|
|
186
|
+
endLine: nodeEndLine(c['type_node']),
|
|
168
187
|
});
|
|
169
|
-
} else if (c
|
|
188
|
+
} else if (c['imp_node']) {
|
|
170
189
|
// import_statement
|
|
171
|
-
const isTypeOnly = c
|
|
172
|
-
const modPath = c
|
|
173
|
-
const names = extractImportNames(c
|
|
190
|
+
const isTypeOnly = c['imp_node'].text.startsWith('import type');
|
|
191
|
+
const modPath = c['imp_source']!.text.replace(/['"]/g, '');
|
|
192
|
+
const names = extractImportNames(c['imp_node']);
|
|
174
193
|
imports.push({
|
|
175
194
|
source: modPath,
|
|
176
195
|
names,
|
|
177
|
-
line: c
|
|
196
|
+
line: c['imp_node'].startPosition.row + 1,
|
|
178
197
|
typeOnly: isTypeOnly,
|
|
179
198
|
});
|
|
180
|
-
} else if (c
|
|
199
|
+
} else if (c['exp_node']) {
|
|
181
200
|
// export_statement
|
|
182
|
-
const exportLine = c
|
|
183
|
-
const decl = c
|
|
201
|
+
const exportLine = c['exp_node'].startPosition.row + 1;
|
|
202
|
+
const decl = c['exp_node'].childForFieldName('declaration');
|
|
184
203
|
if (decl) {
|
|
185
204
|
const declType = decl.type;
|
|
186
|
-
const kindMap = {
|
|
205
|
+
const kindMap: Record<string, string> = {
|
|
187
206
|
function_declaration: 'function',
|
|
188
207
|
class_declaration: 'class',
|
|
189
208
|
interface_declaration: 'interface',
|
|
@@ -192,14 +211,15 @@ function extractSymbolsQuery(tree, query) {
|
|
|
192
211
|
const kind = kindMap[declType];
|
|
193
212
|
if (kind) {
|
|
194
213
|
const n = decl.childForFieldName('name');
|
|
195
|
-
if (n) exps.push({ name: n.text, kind, line: exportLine });
|
|
214
|
+
if (n) exps.push({ name: n.text, kind: kind as Export['kind'], line: exportLine });
|
|
196
215
|
}
|
|
197
216
|
}
|
|
198
|
-
const source =
|
|
217
|
+
const source =
|
|
218
|
+
c['exp_node'].childForFieldName('source') || findChild(c['exp_node'], 'string');
|
|
199
219
|
if (source && !decl) {
|
|
200
220
|
const modPath = source.text.replace(/['"]/g, '');
|
|
201
|
-
const reexportNames = extractImportNames(c
|
|
202
|
-
const nodeText = c
|
|
221
|
+
const reexportNames = extractImportNames(c['exp_node']);
|
|
222
|
+
const nodeText = c['exp_node'].text;
|
|
203
223
|
const isWildcard = nodeText.includes('export *') || nodeText.includes('export*');
|
|
204
224
|
imports.push({
|
|
205
225
|
source: modPath,
|
|
@@ -209,25 +229,25 @@ function extractSymbolsQuery(tree, query) {
|
|
|
209
229
|
wildcardReexport: isWildcard && reexportNames.length === 0,
|
|
210
230
|
});
|
|
211
231
|
}
|
|
212
|
-
} else if (c
|
|
232
|
+
} else if (c['callfn_node']) {
|
|
213
233
|
// call_expression with identifier function
|
|
214
234
|
calls.push({
|
|
215
|
-
name: c
|
|
216
|
-
line: c
|
|
235
|
+
name: c['callfn_name']!.text,
|
|
236
|
+
line: c['callfn_node'].startPosition.row + 1,
|
|
217
237
|
});
|
|
218
|
-
} else if (c
|
|
238
|
+
} else if (c['callmem_node']) {
|
|
219
239
|
// call_expression with member_expression function
|
|
220
|
-
const callInfo = extractCallInfo(c
|
|
240
|
+
const callInfo = extractCallInfo(c['callmem_fn']!, c['callmem_node']);
|
|
221
241
|
if (callInfo) calls.push(callInfo);
|
|
222
|
-
const cbDef = extractCallbackDefinition(c
|
|
242
|
+
const cbDef = extractCallbackDefinition(c['callmem_node'], c['callmem_fn']);
|
|
223
243
|
if (cbDef) definitions.push(cbDef);
|
|
224
|
-
} else if (c
|
|
244
|
+
} else if (c['callsub_node']) {
|
|
225
245
|
// call_expression with subscript_expression function
|
|
226
|
-
const callInfo = extractCallInfo(c
|
|
246
|
+
const callInfo = extractCallInfo(c['callsub_fn']!, c['callsub_node']);
|
|
227
247
|
if (callInfo) calls.push(callInfo);
|
|
228
|
-
} else if (c
|
|
248
|
+
} else if (c['assign_node']) {
|
|
229
249
|
// CommonJS: module.exports = require(...) / module.exports = { ...require(...) }
|
|
230
|
-
handleCommonJSAssignment(c
|
|
250
|
+
handleCommonJSAssignment(c['assign_left']!, c['assign_right']!, c['assign_node'], imports);
|
|
231
251
|
}
|
|
232
252
|
}
|
|
233
253
|
|
|
@@ -248,7 +268,7 @@ function extractSymbolsQuery(tree, query) {
|
|
|
248
268
|
* The query-based fast path has no pattern for lexical_declaration/variable_declaration,
|
|
249
269
|
* so constants are missed. This targeted walk fills that gap without a full tree traversal.
|
|
250
270
|
*/
|
|
251
|
-
function extractConstantsWalk(rootNode, definitions) {
|
|
271
|
+
function extractConstantsWalk(rootNode: TreeSitterNode, definitions: Definition[]): void {
|
|
252
272
|
for (let i = 0; i < rootNode.childCount; i++) {
|
|
253
273
|
const node = rootNode.child(i);
|
|
254
274
|
if (!node) continue;
|
|
@@ -296,7 +316,7 @@ function extractConstantsWalk(rootNode, definitions) {
|
|
|
296
316
|
* Query patterns match call_expression with identifier/member_expression/subscript_expression
|
|
297
317
|
* functions, but import() has function type `import` which none of those patterns cover.
|
|
298
318
|
*/
|
|
299
|
-
function extractDynamicImportsWalk(node, imports) {
|
|
319
|
+
function extractDynamicImportsWalk(node: TreeSitterNode, imports: Import[]): void {
|
|
300
320
|
if (node.type === 'call_expression') {
|
|
301
321
|
const fn = node.childForFieldName('function');
|
|
302
322
|
if (fn && fn.type === 'import') {
|
|
@@ -322,11 +342,16 @@ function extractDynamicImportsWalk(node, imports) {
|
|
|
322
342
|
}
|
|
323
343
|
}
|
|
324
344
|
for (let i = 0; i < node.childCount; i++) {
|
|
325
|
-
extractDynamicImportsWalk(node.child(i)
|
|
345
|
+
extractDynamicImportsWalk(node.child(i)!, imports);
|
|
326
346
|
}
|
|
327
347
|
}
|
|
328
348
|
|
|
329
|
-
function handleCommonJSAssignment(
|
|
349
|
+
function handleCommonJSAssignment(
|
|
350
|
+
left: TreeSitterNode,
|
|
351
|
+
right: TreeSitterNode,
|
|
352
|
+
node: TreeSitterNode,
|
|
353
|
+
imports: Import[],
|
|
354
|
+
): void {
|
|
330
355
|
if (!left || !right) return;
|
|
331
356
|
const leftText = left.text;
|
|
332
357
|
if (!leftText.startsWith('module.exports') && leftText !== 'exports') return;
|
|
@@ -380,8 +405,8 @@ function handleCommonJSAssignment(left, right, node, imports) {
|
|
|
380
405
|
|
|
381
406
|
// ── Manual tree walk (fallback when Query not available) ────────────────────
|
|
382
407
|
|
|
383
|
-
function extractSymbolsWalk(tree) {
|
|
384
|
-
const ctx = {
|
|
408
|
+
function extractSymbolsWalk(tree: TreeSitterTree): ExtractorOutput {
|
|
409
|
+
const ctx: ExtractorOutput = {
|
|
385
410
|
definitions: [],
|
|
386
411
|
calls: [],
|
|
387
412
|
imports: [],
|
|
@@ -392,11 +417,11 @@ function extractSymbolsWalk(tree) {
|
|
|
392
417
|
|
|
393
418
|
walkJavaScriptNode(tree.rootNode, ctx);
|
|
394
419
|
// Populate typeMap for variables and parameter type annotations
|
|
395
|
-
extractTypeMapWalk(tree.rootNode, ctx.typeMap);
|
|
420
|
+
extractTypeMapWalk(tree.rootNode, ctx.typeMap!);
|
|
396
421
|
return ctx;
|
|
397
422
|
}
|
|
398
423
|
|
|
399
|
-
function walkJavaScriptNode(node, ctx) {
|
|
424
|
+
function walkJavaScriptNode(node: TreeSitterNode, ctx: ExtractorOutput): void {
|
|
400
425
|
switch (node.type) {
|
|
401
426
|
case 'function_declaration':
|
|
402
427
|
handleFunctionDecl(node, ctx);
|
|
@@ -435,13 +460,13 @@ function walkJavaScriptNode(node, ctx) {
|
|
|
435
460
|
}
|
|
436
461
|
|
|
437
462
|
for (let i = 0; i < node.childCount; i++) {
|
|
438
|
-
walkJavaScriptNode(node.child(i)
|
|
463
|
+
walkJavaScriptNode(node.child(i)!, ctx);
|
|
439
464
|
}
|
|
440
465
|
}
|
|
441
466
|
|
|
442
467
|
// ── Walk-path per-node-type handlers ────────────────────────────────────────
|
|
443
468
|
|
|
444
|
-
function handleFunctionDecl(node, ctx) {
|
|
469
|
+
function handleFunctionDecl(node: TreeSitterNode, ctx: ExtractorOutput): void {
|
|
445
470
|
const nameNode = node.childForFieldName('name');
|
|
446
471
|
if (nameNode) {
|
|
447
472
|
const fnChildren = extractParameters(node);
|
|
@@ -455,7 +480,7 @@ function handleFunctionDecl(node, ctx) {
|
|
|
455
480
|
}
|
|
456
481
|
}
|
|
457
482
|
|
|
458
|
-
function handleClassDecl(node, ctx) {
|
|
483
|
+
function handleClassDecl(node: TreeSitterNode, ctx: ExtractorOutput): void {
|
|
459
484
|
const nameNode = node.childForFieldName('name');
|
|
460
485
|
if (!nameNode) return;
|
|
461
486
|
const className = nameNode.text;
|
|
@@ -481,7 +506,7 @@ function handleClassDecl(node, ctx) {
|
|
|
481
506
|
}
|
|
482
507
|
}
|
|
483
508
|
|
|
484
|
-
function handleMethodDef(node, ctx) {
|
|
509
|
+
function handleMethodDef(node: TreeSitterNode, ctx: ExtractorOutput): void {
|
|
485
510
|
const nameNode = node.childForFieldName('name');
|
|
486
511
|
if (nameNode) {
|
|
487
512
|
const parentClass = findParentClass(node);
|
|
@@ -499,7 +524,7 @@ function handleMethodDef(node, ctx) {
|
|
|
499
524
|
}
|
|
500
525
|
}
|
|
501
526
|
|
|
502
|
-
function handleInterfaceDecl(node, ctx) {
|
|
527
|
+
function handleInterfaceDecl(node: TreeSitterNode, ctx: ExtractorOutput): void {
|
|
503
528
|
const nameNode = node.childForFieldName('name');
|
|
504
529
|
if (!nameNode) return;
|
|
505
530
|
ctx.definitions.push({
|
|
@@ -517,7 +542,7 @@ function handleInterfaceDecl(node, ctx) {
|
|
|
517
542
|
}
|
|
518
543
|
}
|
|
519
544
|
|
|
520
|
-
function handleTypeAliasDecl(node, ctx) {
|
|
545
|
+
function handleTypeAliasDecl(node: TreeSitterNode, ctx: ExtractorOutput): void {
|
|
521
546
|
const nameNode = node.childForFieldName('name');
|
|
522
547
|
if (nameNode) {
|
|
523
548
|
ctx.definitions.push({
|
|
@@ -529,7 +554,7 @@ function handleTypeAliasDecl(node, ctx) {
|
|
|
529
554
|
}
|
|
530
555
|
}
|
|
531
556
|
|
|
532
|
-
function handleVariableDecl(node, ctx) {
|
|
557
|
+
function handleVariableDecl(node: TreeSitterNode, ctx: ExtractorOutput): void {
|
|
533
558
|
const isConst = node.text.startsWith('const ');
|
|
534
559
|
for (let i = 0; i < node.childCount; i++) {
|
|
535
560
|
const declarator = node.child(i);
|
|
@@ -565,10 +590,10 @@ function handleVariableDecl(node, ctx) {
|
|
|
565
590
|
}
|
|
566
591
|
}
|
|
567
592
|
|
|
568
|
-
function handleEnumDecl(node, ctx) {
|
|
593
|
+
function handleEnumDecl(node: TreeSitterNode, ctx: ExtractorOutput): void {
|
|
569
594
|
const nameNode = node.childForFieldName('name');
|
|
570
595
|
if (!nameNode) return;
|
|
571
|
-
const enumChildren = [];
|
|
596
|
+
const enumChildren: SubDeclaration[] = [];
|
|
572
597
|
const body = node.childForFieldName('body') || findChild(node, 'enum_body');
|
|
573
598
|
if (body) {
|
|
574
599
|
for (let i = 0; i < body.childCount; i++) {
|
|
@@ -595,7 +620,7 @@ function handleEnumDecl(node, ctx) {
|
|
|
595
620
|
});
|
|
596
621
|
}
|
|
597
622
|
|
|
598
|
-
function handleCallExpr(node, ctx) {
|
|
623
|
+
function handleCallExpr(node: TreeSitterNode, ctx: ExtractorOutput): void {
|
|
599
624
|
const fn = node.childForFieldName('function');
|
|
600
625
|
if (!fn) return;
|
|
601
626
|
if (fn.type === 'import') {
|
|
@@ -627,7 +652,7 @@ function handleCallExpr(node, ctx) {
|
|
|
627
652
|
}
|
|
628
653
|
}
|
|
629
654
|
|
|
630
|
-
function handleImportStmt(node, ctx) {
|
|
655
|
+
function handleImportStmt(node: TreeSitterNode, ctx: ExtractorOutput): void {
|
|
631
656
|
const isTypeOnly = node.text.startsWith('import type');
|
|
632
657
|
const source = node.childForFieldName('source') || findChild(node, 'string');
|
|
633
658
|
if (source) {
|
|
@@ -642,12 +667,12 @@ function handleImportStmt(node, ctx) {
|
|
|
642
667
|
}
|
|
643
668
|
}
|
|
644
669
|
|
|
645
|
-
function handleExportStmt(node, ctx) {
|
|
670
|
+
function handleExportStmt(node: TreeSitterNode, ctx: ExtractorOutput): void {
|
|
646
671
|
const exportLine = node.startPosition.row + 1;
|
|
647
672
|
const decl = node.childForFieldName('declaration');
|
|
648
673
|
if (decl) {
|
|
649
674
|
const declType = decl.type;
|
|
650
|
-
const kindMap = {
|
|
675
|
+
const kindMap: Record<string, string> = {
|
|
651
676
|
function_declaration: 'function',
|
|
652
677
|
class_declaration: 'class',
|
|
653
678
|
interface_declaration: 'interface',
|
|
@@ -656,7 +681,7 @@ function handleExportStmt(node, ctx) {
|
|
|
656
681
|
const kind = kindMap[declType];
|
|
657
682
|
if (kind) {
|
|
658
683
|
const n = decl.childForFieldName('name');
|
|
659
|
-
if (n) ctx.exports.push({ name: n.text, kind, line: exportLine });
|
|
684
|
+
if (n) ctx.exports.push({ name: n.text, kind: kind as Export['kind'], line: exportLine });
|
|
660
685
|
}
|
|
661
686
|
}
|
|
662
687
|
const source = node.childForFieldName('source') || findChild(node, 'string');
|
|
@@ -675,19 +700,19 @@ function handleExportStmt(node, ctx) {
|
|
|
675
700
|
}
|
|
676
701
|
}
|
|
677
702
|
|
|
678
|
-
function handleExpressionStmt(node, ctx) {
|
|
703
|
+
function handleExpressionStmt(node: TreeSitterNode, ctx: ExtractorOutput): void {
|
|
679
704
|
const expr = node.child(0);
|
|
680
705
|
if (expr && expr.type === 'assignment_expression') {
|
|
681
706
|
const left = expr.childForFieldName('left');
|
|
682
707
|
const right = expr.childForFieldName('right');
|
|
683
|
-
handleCommonJSAssignment(left, right, node, ctx.imports);
|
|
708
|
+
if (left && right) handleCommonJSAssignment(left, right, node, ctx.imports);
|
|
684
709
|
}
|
|
685
710
|
}
|
|
686
711
|
|
|
687
712
|
// ── Child extraction helpers ────────────────────────────────────────────────
|
|
688
713
|
|
|
689
|
-
function extractParameters(node) {
|
|
690
|
-
const params = [];
|
|
714
|
+
function extractParameters(node: TreeSitterNode): SubDeclaration[] {
|
|
715
|
+
const params: SubDeclaration[] = [];
|
|
691
716
|
const paramsNode = node.childForFieldName('parameters') || findChild(node, 'formal_parameters');
|
|
692
717
|
if (!paramsNode) return params;
|
|
693
718
|
for (let i = 0; i < paramsNode.childCount; i++) {
|
|
@@ -720,8 +745,8 @@ function extractParameters(node) {
|
|
|
720
745
|
return params;
|
|
721
746
|
}
|
|
722
747
|
|
|
723
|
-
function extractClassProperties(classNode) {
|
|
724
|
-
const props = [];
|
|
748
|
+
function extractClassProperties(classNode: TreeSitterNode): SubDeclaration[] {
|
|
749
|
+
const props: SubDeclaration[] = [];
|
|
725
750
|
const body = classNode.childForFieldName('body') || findChild(classNode, 'class_body');
|
|
726
751
|
if (!body) return props;
|
|
727
752
|
for (let i = 0; i < body.childCount; i++) {
|
|
@@ -761,7 +786,7 @@ function extractClassProperties(classNode) {
|
|
|
761
786
|
* Checks for TS access modifiers (public/private/protected) and JS private (#) fields.
|
|
762
787
|
* Returns 'public' | 'private' | 'protected' | undefined.
|
|
763
788
|
*/
|
|
764
|
-
function extractVisibility(node) {
|
|
789
|
+
function extractVisibility(node: TreeSitterNode): 'public' | 'private' | 'protected' | undefined {
|
|
765
790
|
// Check for TS accessibility modifiers (accessibility_modifier child)
|
|
766
791
|
for (let i = 0; i < node.childCount; i++) {
|
|
767
792
|
const child = node.child(i);
|
|
@@ -780,7 +805,7 @@ function extractVisibility(node) {
|
|
|
780
805
|
return undefined;
|
|
781
806
|
}
|
|
782
807
|
|
|
783
|
-
function isConstantValue(valueNode) {
|
|
808
|
+
function isConstantValue(valueNode: TreeSitterNode): boolean {
|
|
784
809
|
if (!valueNode) return false;
|
|
785
810
|
const t = valueNode.type;
|
|
786
811
|
return (
|
|
@@ -802,7 +827,11 @@ function isConstantValue(valueNode) {
|
|
|
802
827
|
|
|
803
828
|
// ── Shared helpers ──────────────────────────────────────────────────────────
|
|
804
829
|
|
|
805
|
-
function extractInterfaceMethods(
|
|
830
|
+
function extractInterfaceMethods(
|
|
831
|
+
bodyNode: TreeSitterNode,
|
|
832
|
+
interfaceName: string,
|
|
833
|
+
definitions: Definition[],
|
|
834
|
+
): void {
|
|
806
835
|
for (let i = 0; i < bodyNode.childCount; i++) {
|
|
807
836
|
const child = bodyNode.child(i);
|
|
808
837
|
if (!child) continue;
|
|
@@ -820,8 +849,8 @@ function extractInterfaceMethods(bodyNode, interfaceName, definitions) {
|
|
|
820
849
|
}
|
|
821
850
|
}
|
|
822
851
|
|
|
823
|
-
function extractImplements(heritage) {
|
|
824
|
-
const interfaces = [];
|
|
852
|
+
function extractImplements(heritage: TreeSitterNode): string[] {
|
|
853
|
+
const interfaces: string[] = [];
|
|
825
854
|
for (let i = 0; i < heritage.childCount; i++) {
|
|
826
855
|
const child = heritage.child(i);
|
|
827
856
|
if (!child) continue;
|
|
@@ -842,8 +871,8 @@ function extractImplements(heritage) {
|
|
|
842
871
|
return interfaces;
|
|
843
872
|
}
|
|
844
873
|
|
|
845
|
-
function extractImplementsFromNode(node) {
|
|
846
|
-
const result = [];
|
|
874
|
+
function extractImplementsFromNode(node: TreeSitterNode): string[] {
|
|
875
|
+
const result: string[] = [];
|
|
847
876
|
for (let i = 0; i < node.childCount; i++) {
|
|
848
877
|
const child = node.child(i);
|
|
849
878
|
if (!child) continue;
|
|
@@ -855,7 +884,7 @@ function extractImplementsFromNode(node) {
|
|
|
855
884
|
|
|
856
885
|
// ── Type inference helpers ───────────────────────────────────────────────
|
|
857
886
|
|
|
858
|
-
function extractSimpleTypeName(typeAnnotationNode) {
|
|
887
|
+
function extractSimpleTypeName(typeAnnotationNode: TreeSitterNode): string | null {
|
|
859
888
|
if (!typeAnnotationNode) return null;
|
|
860
889
|
for (let i = 0; i < typeAnnotationNode.childCount; i++) {
|
|
861
890
|
const child = typeAnnotationNode.child(i);
|
|
@@ -869,7 +898,7 @@ function extractSimpleTypeName(typeAnnotationNode) {
|
|
|
869
898
|
return null;
|
|
870
899
|
}
|
|
871
900
|
|
|
872
|
-
function extractNewExprTypeName(newExprNode) {
|
|
901
|
+
function extractNewExprTypeName(newExprNode: TreeSitterNode): string | null {
|
|
873
902
|
if (!newExprNode || newExprNode.type !== 'new_expression') return null;
|
|
874
903
|
const ctor = newExprNode.childForFieldName('constructor') || newExprNode.child(1);
|
|
875
904
|
if (!ctor) return null;
|
|
@@ -891,15 +920,15 @@ function extractNewExprTypeName(newExprNode) {
|
|
|
891
920
|
*
|
|
892
921
|
* Higher-confidence entries take priority when the same variable is seen twice.
|
|
893
922
|
*/
|
|
894
|
-
function extractTypeMapWalk(rootNode, typeMap) {
|
|
895
|
-
function setIfHigher(name, type, confidence) {
|
|
923
|
+
function extractTypeMapWalk(rootNode: TreeSitterNode, typeMap: Map<string, TypeMapEntry>): void {
|
|
924
|
+
function setIfHigher(name: string, type: string, confidence: number): void {
|
|
896
925
|
const existing = typeMap.get(name);
|
|
897
926
|
if (!existing || confidence > existing.confidence) {
|
|
898
927
|
typeMap.set(name, { type, confidence });
|
|
899
928
|
}
|
|
900
929
|
}
|
|
901
930
|
|
|
902
|
-
function walk(node, depth) {
|
|
931
|
+
function walk(node: TreeSitterNode, depth: number): void {
|
|
903
932
|
if (depth >= 200) return;
|
|
904
933
|
const t = node.type;
|
|
905
934
|
if (t === 'variable_declarator') {
|
|
@@ -924,7 +953,7 @@ function extractTypeMapWalk(rootNode, typeMap) {
|
|
|
924
953
|
const obj = fn.childForFieldName('object');
|
|
925
954
|
if (obj && obj.type === 'identifier') {
|
|
926
955
|
const objName = obj.text;
|
|
927
|
-
if (objName[0] !== objName[0]
|
|
956
|
+
if (objName[0]! !== objName[0]!.toLowerCase() && !BUILTIN_GLOBALS.has(objName)) {
|
|
928
957
|
setIfHigher(nameN.text, objName, 0.7);
|
|
929
958
|
}
|
|
930
959
|
}
|
|
@@ -944,20 +973,20 @@ function extractTypeMapWalk(rootNode, typeMap) {
|
|
|
944
973
|
}
|
|
945
974
|
}
|
|
946
975
|
for (let i = 0; i < node.childCount; i++) {
|
|
947
|
-
walk(node.child(i)
|
|
976
|
+
walk(node.child(i)!, depth + 1);
|
|
948
977
|
}
|
|
949
978
|
}
|
|
950
979
|
walk(rootNode, 0);
|
|
951
980
|
}
|
|
952
981
|
|
|
953
|
-
function extractReceiverName(objNode) {
|
|
982
|
+
function extractReceiverName(objNode: TreeSitterNode | null): string | undefined {
|
|
954
983
|
if (!objNode) return undefined;
|
|
955
984
|
const t = objNode.type;
|
|
956
985
|
if (t === 'identifier' || t === 'this' || t === 'super') return objNode.text;
|
|
957
986
|
return objNode.text;
|
|
958
987
|
}
|
|
959
988
|
|
|
960
|
-
function extractCallInfo(fn, callNode) {
|
|
989
|
+
function extractCallInfo(fn: TreeSitterNode, callNode: TreeSitterNode): Call | null {
|
|
961
990
|
const fnType = fn.type;
|
|
962
991
|
if (fnType === 'identifier') {
|
|
963
992
|
return { name: fn.text, line: callNode.startPosition.row + 1 };
|
|
@@ -1016,7 +1045,7 @@ function extractCallInfo(fn, callNode) {
|
|
|
1016
1045
|
return null;
|
|
1017
1046
|
}
|
|
1018
1047
|
|
|
1019
|
-
function findAnonymousCallback(argsNode) {
|
|
1048
|
+
function findAnonymousCallback(argsNode: TreeSitterNode): TreeSitterNode | null {
|
|
1020
1049
|
for (let i = 0; i < argsNode.childCount; i++) {
|
|
1021
1050
|
const child = argsNode.child(i);
|
|
1022
1051
|
if (child && (child.type === 'arrow_function' || child.type === 'function_expression')) {
|
|
@@ -1026,7 +1055,7 @@ function findAnonymousCallback(argsNode) {
|
|
|
1026
1055
|
return null;
|
|
1027
1056
|
}
|
|
1028
1057
|
|
|
1029
|
-
function findFirstStringArg(argsNode) {
|
|
1058
|
+
function findFirstStringArg(argsNode: TreeSitterNode): string | null {
|
|
1030
1059
|
for (let i = 0; i < argsNode.childCount; i++) {
|
|
1031
1060
|
const child = argsNode.child(i);
|
|
1032
1061
|
if (child && child.type === 'string') {
|
|
@@ -1036,8 +1065,8 @@ function findFirstStringArg(argsNode) {
|
|
|
1036
1065
|
return null;
|
|
1037
1066
|
}
|
|
1038
1067
|
|
|
1039
|
-
function walkCallChain(startNode, methodName) {
|
|
1040
|
-
let current = startNode;
|
|
1068
|
+
function walkCallChain(startNode: TreeSitterNode, methodName: string): TreeSitterNode | null {
|
|
1069
|
+
let current: TreeSitterNode | null = startNode;
|
|
1041
1070
|
while (current) {
|
|
1042
1071
|
const curType = current.type;
|
|
1043
1072
|
if (curType === 'call_expression') {
|
|
@@ -1058,7 +1087,7 @@ function walkCallChain(startNode, methodName) {
|
|
|
1058
1087
|
return null;
|
|
1059
1088
|
}
|
|
1060
1089
|
|
|
1061
|
-
const EXPRESS_METHODS = new Set([
|
|
1090
|
+
const EXPRESS_METHODS: Set<string> = new Set([
|
|
1062
1091
|
'get',
|
|
1063
1092
|
'post',
|
|
1064
1093
|
'put',
|
|
@@ -1069,9 +1098,12 @@ const EXPRESS_METHODS = new Set([
|
|
|
1069
1098
|
'all',
|
|
1070
1099
|
'use',
|
|
1071
1100
|
]);
|
|
1072
|
-
const EVENT_METHODS = new Set(['on', 'once', 'addEventListener', 'addListener']);
|
|
1101
|
+
const EVENT_METHODS: Set<string> = new Set(['on', 'once', 'addEventListener', 'addListener']);
|
|
1073
1102
|
|
|
1074
|
-
function extractCallbackDefinition(
|
|
1103
|
+
function extractCallbackDefinition(
|
|
1104
|
+
callNode: TreeSitterNode,
|
|
1105
|
+
fn?: TreeSitterNode | null,
|
|
1106
|
+
): Definition | null {
|
|
1075
1107
|
if (!fn) fn = callNode.childForFieldName('function');
|
|
1076
1108
|
if (!fn || fn.type !== 'member_expression') return null;
|
|
1077
1109
|
|
|
@@ -1086,14 +1118,14 @@ function extractCallbackDefinition(callNode, fn) {
|
|
|
1086
1118
|
if (method === 'action') {
|
|
1087
1119
|
const cb = findAnonymousCallback(args);
|
|
1088
1120
|
if (!cb) return null;
|
|
1089
|
-
const commandCall = walkCallChain(fn.childForFieldName('object')
|
|
1121
|
+
const commandCall = walkCallChain(fn.childForFieldName('object')!, 'command');
|
|
1090
1122
|
if (!commandCall) return null;
|
|
1091
1123
|
const cmdArgs =
|
|
1092
1124
|
commandCall.childForFieldName('arguments') || findChild(commandCall, 'arguments');
|
|
1093
1125
|
if (!cmdArgs) return null;
|
|
1094
1126
|
const cmdName = findFirstStringArg(cmdArgs);
|
|
1095
1127
|
if (!cmdName) return null;
|
|
1096
|
-
const firstWord = cmdName.split(/\s/)[0]
|
|
1128
|
+
const firstWord = cmdName.split(/\s/)[0]!;
|
|
1097
1129
|
return {
|
|
1098
1130
|
name: `command:${firstWord}`,
|
|
1099
1131
|
kind: 'function',
|
|
@@ -1133,9 +1165,9 @@ function extractCallbackDefinition(callNode, fn) {
|
|
|
1133
1165
|
return null;
|
|
1134
1166
|
}
|
|
1135
1167
|
|
|
1136
|
-
function extractSuperclass(heritage) {
|
|
1168
|
+
function extractSuperclass(heritage: TreeSitterNode): string | null {
|
|
1137
1169
|
for (let i = 0; i < heritage.childCount; i++) {
|
|
1138
|
-
const child = heritage.child(i)
|
|
1170
|
+
const child = heritage.child(i)!;
|
|
1139
1171
|
if (child.type === 'identifier') return child.text;
|
|
1140
1172
|
if (child.type === 'member_expression') return child.text;
|
|
1141
1173
|
const found = extractSuperclass(child);
|
|
@@ -1144,7 +1176,7 @@ function extractSuperclass(heritage) {
|
|
|
1144
1176
|
return null;
|
|
1145
1177
|
}
|
|
1146
1178
|
|
|
1147
|
-
function findParentClass(node) {
|
|
1179
|
+
function findParentClass(node: TreeSitterNode): string | null {
|
|
1148
1180
|
let current = node.parent;
|
|
1149
1181
|
while (current) {
|
|
1150
1182
|
const t = current.type;
|
|
@@ -1157,9 +1189,9 @@ function findParentClass(node) {
|
|
|
1157
1189
|
return null;
|
|
1158
1190
|
}
|
|
1159
1191
|
|
|
1160
|
-
function extractImportNames(node) {
|
|
1161
|
-
const names = [];
|
|
1162
|
-
function scan(n) {
|
|
1192
|
+
function extractImportNames(node: TreeSitterNode): string[] {
|
|
1193
|
+
const names: string[] = [];
|
|
1194
|
+
function scan(n: TreeSitterNode): void {
|
|
1163
1195
|
if (n.type === 'import_specifier' || n.type === 'export_specifier') {
|
|
1164
1196
|
const nameNode = n.childForFieldName('name') || n.childForFieldName('alias');
|
|
1165
1197
|
if (nameNode) names.push(nameNode.text);
|
|
@@ -1169,7 +1201,7 @@ function extractImportNames(node) {
|
|
|
1169
1201
|
} else if (n.type === 'namespace_import') {
|
|
1170
1202
|
names.push(n.text);
|
|
1171
1203
|
}
|
|
1172
|
-
for (let i = 0; i < n.childCount; i++) scan(n.child(i));
|
|
1204
|
+
for (let i = 0; i < n.childCount; i++) scan(n.child(i)!);
|
|
1173
1205
|
}
|
|
1174
1206
|
scan(node);
|
|
1175
1207
|
return names;
|
|
@@ -1186,7 +1218,7 @@ function extractImportNames(node) {
|
|
|
1186
1218
|
* Walks up the AST from the call_expression to find the enclosing
|
|
1187
1219
|
* variable_declarator and reads the name/object_pattern.
|
|
1188
1220
|
*/
|
|
1189
|
-
function extractDynamicImportNames(callNode) {
|
|
1221
|
+
function extractDynamicImportNames(callNode: TreeSitterNode): string[] {
|
|
1190
1222
|
// Walk up: call_expression → await_expression → variable_declarator
|
|
1191
1223
|
let current = callNode.parent;
|
|
1192
1224
|
// Skip await_expression wrapper if present
|
|
@@ -1199,9 +1231,9 @@ function extractDynamicImportNames(callNode) {
|
|
|
1199
1231
|
|
|
1200
1232
|
// const { a, b } = await import(...) → object_pattern
|
|
1201
1233
|
if (nameNode.type === 'object_pattern') {
|
|
1202
|
-
const names = [];
|
|
1234
|
+
const names: string[] = [];
|
|
1203
1235
|
for (let i = 0; i < nameNode.childCount; i++) {
|
|
1204
|
-
const child = nameNode.child(i)
|
|
1236
|
+
const child = nameNode.child(i)!;
|
|
1205
1237
|
if (child.type === 'shorthand_property_identifier_pattern') {
|
|
1206
1238
|
names.push(child.text);
|
|
1207
1239
|
} else if (child.type === 'pair_pattern') {
|
|
@@ -1221,9 +1253,9 @@ function extractDynamicImportNames(callNode) {
|
|
|
1221
1253
|
|
|
1222
1254
|
// const [a, b] = await import(...) → array_pattern (rare but possible)
|
|
1223
1255
|
if (nameNode.type === 'array_pattern') {
|
|
1224
|
-
const names = [];
|
|
1256
|
+
const names: string[] = [];
|
|
1225
1257
|
for (let i = 0; i < nameNode.childCount; i++) {
|
|
1226
|
-
const child = nameNode.child(i)
|
|
1258
|
+
const child = nameNode.child(i)!;
|
|
1227
1259
|
if (child.type === 'identifier') names.push(child.text);
|
|
1228
1260
|
else if (child.type === 'rest_pattern') {
|
|
1229
1261
|
const inner = child.child(0) || child.childForFieldName('name');
|