@optave/codegraph 3.7.0 → 3.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +28 -16
- package/dist/ast-analysis/engine.d.ts.map +1 -1
- package/dist/ast-analysis/engine.js +195 -30
- package/dist/ast-analysis/engine.js.map +1 -1
- package/dist/ast-analysis/metrics.d.ts +0 -3
- package/dist/ast-analysis/metrics.d.ts.map +1 -1
- package/dist/ast-analysis/metrics.js +30 -13
- package/dist/ast-analysis/metrics.js.map +1 -1
- package/dist/ast-analysis/rules/javascript.d.ts.map +1 -1
- package/dist/ast-analysis/rules/javascript.js +0 -1
- package/dist/ast-analysis/rules/javascript.js.map +1 -1
- package/dist/ast-analysis/shared.d.ts.map +1 -1
- package/dist/ast-analysis/shared.js +24 -19
- package/dist/ast-analysis/shared.js.map +1 -1
- package/dist/ast-analysis/visitor-utils.d.ts.map +1 -1
- package/dist/ast-analysis/visitor-utils.js +55 -39
- package/dist/ast-analysis/visitor-utils.js.map +1 -1
- package/dist/ast-analysis/visitor.d.ts.map +1 -1
- package/dist/ast-analysis/visitor.js +91 -70
- package/dist/ast-analysis/visitor.js.map +1 -1
- package/dist/ast-analysis/visitors/ast-store-visitor.d.ts.map +1 -1
- package/dist/ast-analysis/visitors/ast-store-visitor.js +52 -129
- package/dist/ast-analysis/visitors/ast-store-visitor.js.map +1 -1
- package/dist/ast-analysis/visitors/complexity-visitor.d.ts.map +1 -1
- package/dist/ast-analysis/visitors/complexity-visitor.js +32 -39
- package/dist/ast-analysis/visitors/complexity-visitor.js.map +1 -1
- package/dist/ast-analysis/visitors/dataflow-visitor.d.ts.map +1 -1
- package/dist/ast-analysis/visitors/dataflow-visitor.js +57 -38
- package/dist/ast-analysis/visitors/dataflow-visitor.js.map +1 -1
- package/dist/cli/commands/ast.js +2 -2
- package/dist/cli/commands/ast.js.map +1 -1
- package/dist/cli/commands/watch.d.ts.map +1 -1
- package/dist/cli/commands/watch.js +16 -2
- package/dist/cli/commands/watch.js.map +1 -1
- package/dist/db/connection.d.ts.map +1 -1
- package/dist/db/connection.js +29 -26
- package/dist/db/connection.js.map +1 -1
- package/dist/db/query-builder.d.ts.map +1 -1
- package/dist/db/query-builder.js +16 -5
- package/dist/db/query-builder.js.map +1 -1
- package/dist/db/repository/base.d.ts +10 -0
- package/dist/db/repository/base.d.ts.map +1 -1
- package/dist/db/repository/base.js +17 -0
- package/dist/db/repository/base.js.map +1 -1
- package/dist/db/repository/native-repository.d.ts +6 -1
- package/dist/db/repository/native-repository.d.ts.map +1 -1
- package/dist/db/repository/native-repository.js +77 -1
- package/dist/db/repository/native-repository.js.map +1 -1
- package/dist/db/repository/nodes.d.ts.map +1 -1
- package/dist/db/repository/nodes.js +8 -4
- package/dist/db/repository/nodes.js.map +1 -1
- package/dist/db/repository/sqlite-repository.d.ts +3 -0
- package/dist/db/repository/sqlite-repository.d.ts.map +1 -1
- package/dist/db/repository/sqlite-repository.js +26 -0
- package/dist/db/repository/sqlite-repository.js.map +1 -1
- package/dist/domain/analysis/brief.d.ts.map +1 -1
- package/dist/domain/analysis/brief.js +13 -17
- package/dist/domain/analysis/brief.js.map +1 -1
- package/dist/domain/analysis/context.d.ts.map +1 -1
- package/dist/domain/analysis/context.js +14 -11
- package/dist/domain/analysis/context.js.map +1 -1
- package/dist/domain/analysis/dependencies.d.ts.map +1 -1
- package/dist/domain/analysis/dependencies.js +53 -52
- package/dist/domain/analysis/dependencies.js.map +1 -1
- package/dist/domain/analysis/fn-impact.d.ts +2 -7
- package/dist/domain/analysis/fn-impact.d.ts.map +1 -1
- package/dist/domain/analysis/fn-impact.js +33 -31
- package/dist/domain/analysis/fn-impact.js.map +1 -1
- package/dist/domain/analysis/implementations.d.ts.map +1 -1
- package/dist/domain/analysis/implementations.js +11 -19
- package/dist/domain/analysis/implementations.js.map +1 -1
- package/dist/domain/analysis/module-map.d.ts.map +1 -1
- package/dist/domain/analysis/module-map.js +55 -76
- package/dist/domain/analysis/module-map.js.map +1 -1
- package/dist/domain/analysis/query-helpers.d.ts +7 -0
- package/dist/domain/analysis/query-helpers.d.ts.map +1 -1
- package/dist/domain/analysis/query-helpers.js +15 -1
- package/dist/domain/analysis/query-helpers.js.map +1 -1
- package/dist/domain/graph/builder/pipeline.d.ts.map +1 -1
- package/dist/domain/graph/builder/pipeline.js +315 -43
- package/dist/domain/graph/builder/pipeline.js.map +1 -1
- package/dist/domain/graph/builder/stages/build-edges.d.ts.map +1 -1
- package/dist/domain/graph/builder/stages/build-edges.js +106 -1
- package/dist/domain/graph/builder/stages/build-edges.js.map +1 -1
- package/dist/domain/graph/builder/stages/collect-files.d.ts.map +1 -1
- package/dist/domain/graph/builder/stages/collect-files.js +17 -5
- package/dist/domain/graph/builder/stages/collect-files.js.map +1 -1
- package/dist/domain/graph/builder/stages/detect-changes.d.ts.map +1 -1
- package/dist/domain/graph/builder/stages/detect-changes.js +99 -51
- package/dist/domain/graph/builder/stages/detect-changes.js.map +1 -1
- package/dist/domain/graph/builder/stages/finalize.d.ts.map +1 -1
- package/dist/domain/graph/builder/stages/finalize.js +34 -7
- package/dist/domain/graph/builder/stages/finalize.js.map +1 -1
- package/dist/domain/graph/builder/stages/insert-nodes.d.ts.map +1 -1
- package/dist/domain/graph/builder/stages/insert-nodes.js +50 -26
- package/dist/domain/graph/builder/stages/insert-nodes.js.map +1 -1
- package/dist/domain/graph/builder/stages/resolve-imports.d.ts.map +1 -1
- package/dist/domain/graph/builder/stages/resolve-imports.js +95 -84
- package/dist/domain/graph/builder/stages/resolve-imports.js.map +1 -1
- package/dist/domain/graph/cycles.d.ts +6 -0
- package/dist/domain/graph/cycles.d.ts.map +1 -1
- package/dist/domain/graph/cycles.js +114 -22
- package/dist/domain/graph/cycles.js.map +1 -1
- package/dist/domain/graph/resolve.js +1 -1
- package/dist/domain/graph/resolve.js.map +1 -1
- package/dist/domain/graph/watcher.d.ts +2 -0
- package/dist/domain/graph/watcher.d.ts.map +1 -1
- package/dist/domain/graph/watcher.js +170 -75
- package/dist/domain/graph/watcher.js.map +1 -1
- package/dist/domain/parser.d.ts +1 -6
- package/dist/domain/parser.d.ts.map +1 -1
- package/dist/domain/parser.js +101 -32
- package/dist/domain/parser.js.map +1 -1
- package/dist/domain/search/generator.js +1 -1
- package/dist/domain/search/generator.js.map +1 -1
- package/dist/domain/search/models.d.ts +4 -3
- package/dist/domain/search/models.d.ts.map +1 -1
- package/dist/domain/search/models.js +18 -5
- package/dist/domain/search/models.js.map +1 -1
- package/dist/domain/search/search/hybrid.d.ts.map +1 -1
- package/dist/domain/search/search/hybrid.js +29 -18
- package/dist/domain/search/search/hybrid.js.map +1 -1
- package/dist/extractors/clojure.d.ts +12 -0
- package/dist/extractors/clojure.d.ts.map +1 -0
- package/dist/extractors/clojure.js +245 -0
- package/dist/extractors/clojure.js.map +1 -0
- package/dist/extractors/cuda.d.ts +11 -0
- package/dist/extractors/cuda.d.ts.map +1 -0
- package/dist/extractors/cuda.js +302 -0
- package/dist/extractors/cuda.js.map +1 -0
- package/dist/extractors/erlang.d.ts +14 -0
- package/dist/extractors/erlang.d.ts.map +1 -0
- package/dist/extractors/erlang.js +239 -0
- package/dist/extractors/erlang.js.map +1 -0
- package/dist/extractors/fsharp.d.ts +13 -0
- package/dist/extractors/fsharp.d.ts.map +1 -0
- package/dist/extractors/fsharp.js +218 -0
- package/dist/extractors/fsharp.js.map +1 -0
- package/dist/extractors/gleam.d.ts +14 -0
- package/dist/extractors/gleam.d.ts.map +1 -0
- package/dist/extractors/gleam.js +229 -0
- package/dist/extractors/gleam.js.map +1 -0
- package/dist/extractors/go.js +36 -33
- package/dist/extractors/go.js.map +1 -1
- package/dist/extractors/groovy.d.ts +10 -0
- package/dist/extractors/groovy.d.ts.map +1 -0
- package/dist/extractors/groovy.js +304 -0
- package/dist/extractors/groovy.js.map +1 -0
- package/dist/extractors/helpers.d.ts.map +1 -1
- package/dist/extractors/helpers.js +40 -29
- package/dist/extractors/helpers.js.map +1 -1
- package/dist/extractors/index.d.ts +11 -0
- package/dist/extractors/index.d.ts.map +1 -1
- package/dist/extractors/index.js +11 -0
- package/dist/extractors/index.js.map +1 -1
- package/dist/extractors/java.js +58 -46
- package/dist/extractors/java.js.map +1 -1
- package/dist/extractors/javascript.js +46 -45
- package/dist/extractors/javascript.js.map +1 -1
- package/dist/extractors/julia.d.ts +16 -0
- package/dist/extractors/julia.d.ts.map +1 -0
- package/dist/extractors/julia.js +287 -0
- package/dist/extractors/julia.js.map +1 -0
- package/dist/extractors/kotlin.js +84 -78
- package/dist/extractors/kotlin.js.map +1 -1
- package/dist/extractors/objc.d.ts +9 -0
- package/dist/extractors/objc.d.ts.map +1 -0
- package/dist/extractors/objc.js +406 -0
- package/dist/extractors/objc.js.map +1 -0
- package/dist/extractors/ocaml.js +74 -0
- package/dist/extractors/ocaml.js.map +1 -1
- package/dist/extractors/python.js +29 -24
- package/dist/extractors/python.js.map +1 -1
- package/dist/extractors/r.d.ts +13 -0
- package/dist/extractors/r.d.ts.map +1 -0
- package/dist/extractors/r.js +251 -0
- package/dist/extractors/r.js.map +1 -0
- package/dist/extractors/rust.js +41 -32
- package/dist/extractors/rust.js.map +1 -1
- package/dist/extractors/solidity.d.ts +9 -0
- package/dist/extractors/solidity.d.ts.map +1 -0
- package/dist/extractors/solidity.js +365 -0
- package/dist/extractors/solidity.js.map +1 -0
- package/dist/extractors/swift.js +83 -81
- package/dist/extractors/swift.js.map +1 -1
- package/dist/extractors/verilog.d.ts +9 -0
- package/dist/extractors/verilog.d.ts.map +1 -0
- package/dist/extractors/verilog.js +286 -0
- package/dist/extractors/verilog.js.map +1 -0
- package/dist/extractors/zig.js +58 -60
- package/dist/extractors/zig.js.map +1 -1
- package/dist/features/ast.d.ts +16 -14
- package/dist/features/ast.d.ts.map +1 -1
- package/dist/features/ast.js +84 -83
- package/dist/features/ast.js.map +1 -1
- package/dist/features/audit.d.ts.map +1 -1
- package/dist/features/audit.js +8 -6
- package/dist/features/audit.js.map +1 -1
- package/dist/features/branch-compare.d.ts.map +1 -1
- package/dist/features/branch-compare.js +69 -72
- package/dist/features/branch-compare.js.map +1 -1
- package/dist/features/communities.d.ts.map +1 -1
- package/dist/features/communities.js +19 -7
- package/dist/features/communities.js.map +1 -1
- package/dist/features/complexity.d.ts.map +1 -1
- package/dist/features/complexity.js +120 -125
- package/dist/features/complexity.js.map +1 -1
- package/dist/features/dataflow.d.ts.map +1 -1
- package/dist/features/dataflow.js +136 -137
- package/dist/features/dataflow.js.map +1 -1
- package/dist/features/flow.d.ts.map +1 -1
- package/dist/features/flow.js +84 -79
- package/dist/features/flow.js.map +1 -1
- package/dist/features/structure-query.d.ts.map +1 -1
- package/dist/features/structure-query.js +69 -65
- package/dist/features/structure-query.js.map +1 -1
- package/dist/graph/algorithms/bfs.d.ts +2 -0
- package/dist/graph/algorithms/bfs.d.ts.map +1 -1
- package/dist/graph/algorithms/bfs.js +27 -0
- package/dist/graph/algorithms/bfs.js.map +1 -1
- package/dist/graph/algorithms/centrality.d.ts +2 -0
- package/dist/graph/algorithms/centrality.d.ts.map +1 -1
- package/dist/graph/algorithms/centrality.js +28 -0
- package/dist/graph/algorithms/centrality.js.map +1 -1
- package/dist/graph/algorithms/leiden/optimiser.d.ts.map +1 -1
- package/dist/graph/algorithms/leiden/optimiser.js +70 -55
- package/dist/graph/algorithms/leiden/optimiser.js.map +1 -1
- package/dist/graph/algorithms/leiden/partition.d.ts.map +1 -1
- package/dist/graph/algorithms/leiden/partition.js +288 -266
- package/dist/graph/algorithms/leiden/partition.js.map +1 -1
- package/dist/graph/algorithms/louvain.d.ts +3 -4
- package/dist/graph/algorithms/louvain.d.ts.map +1 -1
- package/dist/graph/algorithms/louvain.js +29 -0
- package/dist/graph/algorithms/louvain.js.map +1 -1
- package/dist/graph/algorithms/shortest-path.d.ts +2 -0
- package/dist/graph/algorithms/shortest-path.d.ts.map +1 -1
- package/dist/graph/algorithms/shortest-path.js +18 -1
- package/dist/graph/algorithms/shortest-path.js.map +1 -1
- package/dist/graph/model.d.ts.map +1 -1
- package/dist/graph/model.js +5 -1
- package/dist/graph/model.js.map +1 -1
- package/dist/infrastructure/config.d.ts.map +1 -1
- package/dist/infrastructure/config.js +6 -4
- package/dist/infrastructure/config.js.map +1 -1
- package/dist/infrastructure/suppress.d.ts +25 -0
- package/dist/infrastructure/suppress.d.ts.map +1 -0
- package/dist/infrastructure/suppress.js +43 -0
- package/dist/infrastructure/suppress.js.map +1 -0
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +29 -24
- package/dist/mcp/server.js.map +1 -1
- package/dist/presentation/dataflow.d.ts.map +1 -1
- package/dist/presentation/dataflow.js +47 -38
- package/dist/presentation/dataflow.js.map +1 -1
- package/dist/presentation/diff-impact-mermaid.d.ts.map +1 -1
- package/dist/presentation/diff-impact-mermaid.js +60 -51
- package/dist/presentation/diff-impact-mermaid.js.map +1 -1
- package/dist/presentation/queries-cli/exports.d.ts.map +1 -1
- package/dist/presentation/queries-cli/exports.js +20 -14
- package/dist/presentation/queries-cli/exports.js.map +1 -1
- package/dist/presentation/queries-cli/impact.d.ts.map +1 -1
- package/dist/presentation/queries-cli/impact.js +15 -13
- package/dist/presentation/queries-cli/impact.js.map +1 -1
- package/dist/presentation/queries-cli/inspect.d.ts.map +1 -1
- package/dist/presentation/queries-cli/inspect.js +101 -79
- package/dist/presentation/queries-cli/inspect.js.map +1 -1
- package/dist/presentation/queries-cli/overview.d.ts.map +1 -1
- package/dist/presentation/queries-cli/overview.js +25 -16
- package/dist/presentation/queries-cli/overview.js.map +1 -1
- package/dist/presentation/queries-cli/path.js +26 -20
- package/dist/presentation/queries-cli/path.js.map +1 -1
- package/dist/presentation/result-formatter.d.ts +10 -0
- package/dist/presentation/result-formatter.d.ts.map +1 -1
- package/dist/presentation/result-formatter.js +16 -1
- package/dist/presentation/result-formatter.js.map +1 -1
- package/dist/presentation/viewer.d.ts.map +1 -1
- package/dist/presentation/viewer.js +18 -12
- package/dist/presentation/viewer.js.map +1 -1
- package/dist/shared/errors.d.ts +5 -0
- package/dist/shared/errors.d.ts.map +1 -1
- package/dist/shared/errors.js +5 -0
- package/dist/shared/errors.js.map +1 -1
- package/dist/shared/hierarchy.d.ts +8 -2
- package/dist/shared/hierarchy.d.ts.map +1 -1
- package/dist/shared/hierarchy.js +42 -1
- package/dist/shared/hierarchy.js.map +1 -1
- package/dist/shared/normalize.d.ts +6 -1
- package/dist/shared/normalize.d.ts.map +1 -1
- package/dist/shared/normalize.js +20 -12
- package/dist/shared/normalize.js.map +1 -1
- package/dist/shared/paginate.d.ts +0 -9
- package/dist/shared/paginate.d.ts.map +1 -1
- package/dist/shared/paginate.js +0 -15
- package/dist/shared/paginate.js.map +1 -1
- package/dist/types.d.ts +129 -3
- package/dist/types.d.ts.map +1 -1
- package/grammars/tree-sitter-clojure.wasm +0 -0
- package/grammars/tree-sitter-cuda.wasm +0 -0
- package/grammars/tree-sitter-erlang.wasm +0 -0
- package/grammars/tree-sitter-fsharp.wasm +0 -0
- package/grammars/tree-sitter-gleam.wasm +0 -0
- package/grammars/tree-sitter-groovy.wasm +0 -0
- package/grammars/tree-sitter-julia.wasm +0 -0
- package/grammars/tree-sitter-objc.wasm +0 -0
- package/grammars/tree-sitter-ocaml_interface.wasm +0 -0
- package/grammars/tree-sitter-r.wasm +0 -0
- package/grammars/tree-sitter-solidity.wasm +0 -0
- package/grammars/tree-sitter-verilog.wasm +0 -0
- package/package.json +18 -7
- package/src/ast-analysis/engine.ts +245 -42
- package/src/ast-analysis/metrics.ts +33 -11
- package/src/ast-analysis/rules/javascript.ts +0 -1
- package/src/ast-analysis/shared.ts +33 -24
- package/src/ast-analysis/visitor-utils.ts +52 -32
- package/src/ast-analysis/visitor.ts +132 -71
- package/src/ast-analysis/visitors/ast-store-visitor.ts +49 -119
- package/src/ast-analysis/visitors/complexity-visitor.ts +35 -40
- package/src/ast-analysis/visitors/dataflow-visitor.ts +87 -43
- package/src/cli/commands/ast.ts +2 -2
- package/src/cli/commands/watch.ts +16 -2
- package/src/db/connection.ts +29 -28
- package/src/db/query-builder.ts +15 -3
- package/src/db/repository/base.ts +20 -0
- package/src/db/repository/native-repository.ts +79 -1
- package/src/db/repository/nodes.ts +13 -8
- package/src/db/repository/sqlite-repository.ts +29 -0
- package/src/domain/analysis/brief.ts +15 -25
- package/src/domain/analysis/context.ts +17 -10
- package/src/domain/analysis/dependencies.ts +67 -76
- package/src/domain/analysis/fn-impact.ts +36 -43
- package/src/domain/analysis/implementations.ts +11 -17
- package/src/domain/analysis/module-map.ts +58 -92
- package/src/domain/analysis/query-helpers.ts +18 -1
- package/src/domain/graph/builder/pipeline.ts +366 -41
- package/src/domain/graph/builder/stages/build-edges.ts +162 -1
- package/src/domain/graph/builder/stages/collect-files.ts +18 -7
- package/src/domain/graph/builder/stages/detect-changes.ts +110 -56
- package/src/domain/graph/builder/stages/finalize.ts +41 -11
- package/src/domain/graph/builder/stages/insert-nodes.ts +75 -39
- package/src/domain/graph/builder/stages/resolve-imports.ts +122 -100
- package/src/domain/graph/cycles.ts +110 -23
- package/src/domain/graph/resolve.ts +1 -1
- package/src/domain/graph/watcher.ts +202 -96
- package/src/domain/parser.ts +122 -28
- package/src/domain/search/generator.ts +1 -1
- package/src/domain/search/models.ts +17 -4
- package/src/domain/search/search/hybrid.ts +69 -51
- package/src/extractors/clojure.ts +273 -0
- package/src/extractors/cuda.ts +316 -0
- package/src/extractors/erlang.ts +252 -0
- package/src/extractors/fsharp.ts +253 -0
- package/src/extractors/gleam.ts +246 -0
- package/src/extractors/go.ts +43 -33
- package/src/extractors/groovy.ts +332 -0
- package/src/extractors/helpers.ts +37 -23
- package/src/extractors/index.ts +11 -0
- package/src/extractors/java.ts +66 -47
- package/src/extractors/javascript.ts +45 -46
- package/src/extractors/julia.ts +318 -0
- package/src/extractors/kotlin.ts +84 -77
- package/src/extractors/objc.ts +431 -0
- package/src/extractors/ocaml.ts +78 -0
- package/src/extractors/python.ts +31 -25
- package/src/extractors/r.ts +253 -0
- package/src/extractors/rust.ts +37 -29
- package/src/extractors/solidity.ts +394 -0
- package/src/extractors/swift.ts +81 -80
- package/src/extractors/verilog.ts +315 -0
- package/src/extractors/zig.ts +58 -61
- package/src/features/ast.ts +131 -112
- package/src/features/audit.ts +8 -6
- package/src/features/branch-compare.ts +105 -79
- package/src/features/communities.ts +25 -10
- package/src/features/complexity.ts +171 -134
- package/src/features/dataflow.ts +165 -175
- package/src/features/flow.ts +129 -92
- package/src/features/structure-query.ts +79 -64
- package/src/graph/algorithms/bfs.ts +34 -0
- package/src/graph/algorithms/centrality.ts +30 -0
- package/src/graph/algorithms/leiden/optimiser.ts +99 -55
- package/src/graph/algorithms/leiden/partition.ts +359 -294
- package/src/graph/algorithms/louvain.ts +31 -4
- package/src/graph/algorithms/shortest-path.ts +20 -1
- package/src/graph/model.ts +6 -1
- package/src/infrastructure/config.ts +6 -4
- package/src/infrastructure/suppress.ts +47 -0
- package/src/mcp/server.ts +53 -37
- package/src/presentation/dataflow.ts +50 -44
- package/src/presentation/diff-impact-mermaid.ts +104 -62
- package/src/presentation/queries-cli/exports.ts +21 -13
- package/src/presentation/queries-cli/impact.ts +15 -13
- package/src/presentation/queries-cli/inspect.ts +100 -81
- package/src/presentation/queries-cli/overview.ts +26 -16
- package/src/presentation/queries-cli/path.ts +33 -25
- package/src/presentation/result-formatter.ts +19 -1
- package/src/presentation/viewer.ts +42 -14
- package/src/shared/errors.ts +6 -0
- package/src/shared/hierarchy.ts +50 -2
- package/src/shared/normalize.ts +31 -12
- package/src/shared/paginate.ts +0 -17
- package/src/types.ts +138 -3
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import fs from 'node:fs';
|
|
2
2
|
import path from 'node:path';
|
|
3
|
+
import { debug } from '../infrastructure/logger.js';
|
|
4
|
+
import { toErrorMessage } from '../shared/errors.js';
|
|
3
5
|
import { COMMUNITY_COLORS, DEFAULT_NODE_COLORS, DEFAULT_ROLE_COLORS } from './colors.js';
|
|
4
6
|
// Re-export color constants so existing consumers are unaffected
|
|
5
7
|
export { COMMUNITY_COLORS, DEFAULT_NODE_COLORS, DEFAULT_ROLE_COLORS };
|
|
@@ -54,8 +56,8 @@ export function loadPlotConfig(dir) {
|
|
|
54
56
|
},
|
|
55
57
|
};
|
|
56
58
|
}
|
|
57
|
-
catch {
|
|
58
|
-
|
|
59
|
+
catch (e) {
|
|
60
|
+
debug(`loadViewerConfig: invalid JSON in config file: ${toErrorMessage(e)}`);
|
|
59
61
|
}
|
|
60
62
|
}
|
|
61
63
|
}
|
|
@@ -104,17 +106,21 @@ export function buildLayoutOptions(cfg) {
|
|
|
104
106
|
}
|
|
105
107
|
return opts;
|
|
106
108
|
}
|
|
109
|
+
function resolvePlotConfig(cfg) {
|
|
110
|
+
return {
|
|
111
|
+
layoutOpts: buildLayoutOptions(cfg),
|
|
112
|
+
title: cfg.title || 'Codegraph',
|
|
113
|
+
layoutAlgorithm: cfg.layout?.algorithm || 'hierarchical',
|
|
114
|
+
layoutDirection: cfg.layout?.direction || 'LR',
|
|
115
|
+
physicsEnabled: cfg.physics?.enabled !== false,
|
|
116
|
+
sizeBy: cfg.sizeBy || 'uniform',
|
|
117
|
+
clusterBy: cfg.clusterBy || 'none',
|
|
118
|
+
effectiveColorBy: cfg.overlays?.complexity && cfg.colorBy === 'kind' ? 'complexity' : cfg.colorBy || 'kind',
|
|
119
|
+
effectiveRisk: cfg.overlays?.risk || false,
|
|
120
|
+
};
|
|
121
|
+
}
|
|
107
122
|
export function renderPlotHTML(data, cfg) {
|
|
108
|
-
const layoutOpts =
|
|
109
|
-
const title = cfg.title || 'Codegraph';
|
|
110
|
-
// Resolve effective colorBy (overlays.complexity overrides)
|
|
111
|
-
const layoutAlgorithm = cfg.layout?.algorithm || 'hierarchical';
|
|
112
|
-
const layoutDirection = cfg.layout?.direction || 'LR';
|
|
113
|
-
const physicsEnabled = cfg.physics?.enabled !== false;
|
|
114
|
-
const sizeBy = cfg.sizeBy || 'uniform';
|
|
115
|
-
const clusterBy = cfg.clusterBy || 'none';
|
|
116
|
-
const effectiveColorBy = cfg.overlays?.complexity && cfg.colorBy === 'kind' ? 'complexity' : cfg.colorBy || 'kind';
|
|
117
|
-
const effectiveRisk = cfg.overlays?.risk || false;
|
|
123
|
+
const { layoutOpts, title, layoutAlgorithm, layoutDirection, physicsEnabled, sizeBy, clusterBy, effectiveColorBy, effectiveRisk, } = resolvePlotConfig(cfg);
|
|
118
124
|
return `<!DOCTYPE html>
|
|
119
125
|
<html lang="en">
|
|
120
126
|
<head>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"viewer.js","sourceRoot":"","sources":["../../src/presentation/viewer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEzF,iEAAiE;AACjE,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,CAAC;AAmBtE,MAAM,CAAC,MAAM,cAAc,GAAe;IACxC,MAAM,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,EAAE,IAAI,EAAE;IACtD,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE;IAC7C,UAAU,EAAE,mBAAmB;IAC/B,UAAU,EAAE,mBAAmB;IAC/B,OAAO,EAAE,MAAM;IACf,SAAS,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE;IAC1C,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;IACjD,KAAK,EAAE,WAAW;IAClB,YAAY,EAAE,KAAK;IACnB,SAAS,EAAE,EAAE;IACb,SAAS,EAAE,MAAM;IACjB,MAAM,EAAE,SAAS;IACjB,QAAQ,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE;IAC5C,cAAc,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;CACnD,CAAC;AAEF,wEAAwE;AAExE,MAAM,UAAU,cAAc,CAAC,GAAW;IACxC,KAAK,MAAM,IAAI,IAAI,CAAC,aAAa,EAAE,kBAAkB,CAAC,EAAE,CAAC;QACvD,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC/B,IAAI,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,CAAwB,CAAC;gBAC3E,OAAO;oBACL,GAAG,cAAc;oBACjB,GAAG,GAAG;oBACN,MAAM,EAAE,EAAE,GAAG,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE;oBAC3D,OAAO,EAAE,EAAE,GAAG,cAAc,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE;oBAC9D,UAAU,EAAE;wBACV,GAAG,cAAc,CAAC,UAAU;wBAC5B,GAAG,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC;qBAC1B;oBACD,UAAU,EAAE;wBACV,GAAG,cAAc,CAAC,UAAU;wBAC5B,GAAG,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC;qBAC1B;oBACD,SAAS,EAAE;wBACT,GAAG,cAAc,CAAC,SAAS;wBAC3B,GAAG,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC;qBACzB;oBACD,MAAM,EAAE,EAAE,GAAG,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE;oBAC3D,QAAQ,EAAE;wBACR,GAAG,cAAc,CAAC,QAAQ;wBAC1B,GAAG,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC;qBACxB;oBACD,cAAc,EAAE;wBACd,GAAG,cAAc,CAAC,cAAc;wBAChC,GAAG,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE,CAAC;qBAC9B;iBACF,CAAC;YACJ,CAAC;YAAC,
|
|
1
|
+
{"version":3,"file":"viewer.js","sourceRoot":"","sources":["../../src/presentation/viewer.ts"],"names":[],"mappings":"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"}
|
package/dist/shared/errors.d.ts
CHANGED
|
@@ -38,4 +38,9 @@ export declare class BoundaryError extends CodegraphError {
|
|
|
38
38
|
}
|
|
39
39
|
/** Safely extract a string message from an unknown thrown value. */
|
|
40
40
|
export declare function toErrorMessage(e: unknown): string;
|
|
41
|
+
/**
|
|
42
|
+
* Catch-suppression helpers (`suppressError`, `suppressErrorAsync`) live in
|
|
43
|
+
* `infrastructure/suppress.ts` to avoid a shared→infrastructure layer inversion.
|
|
44
|
+
* Import them from there instead of from this module.
|
|
45
|
+
*/
|
|
41
46
|
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/shared/errors.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAED,qBAAa,cAAe,SAAQ,KAAK;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;gBAEb,OAAO,EAAE,MAAM,EAAE,EAAE,IAAwB,EAAE,IAAI,EAAE,KAAK,EAAE,GAAE,kBAAuB;CAMhG;AAED,qBAAa,UAAW,SAAQ,cAAc;gBAChC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,kBAAuB;CAI3D;AAED,qBAAa,OAAQ,SAAQ,cAAc;gBAC7B,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,kBAAuB;CAI3D;AAED,qBAAa,WAAY,SAAQ,cAAc;gBACjC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,kBAAuB;CAI3D;AAED,qBAAa,eAAgB,SAAQ,cAAc;gBACrC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,kBAAuB;CAI3D;AAED,qBAAa,WAAY,SAAQ,cAAc;gBACjC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,kBAAuB;CAI3D;AAED,qBAAa,aAAc,SAAQ,cAAc;gBACnC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,kBAAuB;CAI3D;AAED,qBAAa,aAAc,SAAQ,cAAc;gBACnC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,kBAAuB;CAI3D;AAED,oEAAoE;AACpE,wBAAgB,cAAc,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CAEjD"}
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/shared/errors.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAED,qBAAa,cAAe,SAAQ,KAAK;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;gBAEb,OAAO,EAAE,MAAM,EAAE,EAAE,IAAwB,EAAE,IAAI,EAAE,KAAK,EAAE,GAAE,kBAAuB;CAMhG;AAED,qBAAa,UAAW,SAAQ,cAAc;gBAChC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,kBAAuB;CAI3D;AAED,qBAAa,OAAQ,SAAQ,cAAc;gBAC7B,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,kBAAuB;CAI3D;AAED,qBAAa,WAAY,SAAQ,cAAc;gBACjC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,kBAAuB;CAI3D;AAED,qBAAa,eAAgB,SAAQ,cAAc;gBACrC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,kBAAuB;CAI3D;AAED,qBAAa,WAAY,SAAQ,cAAc;gBACjC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,kBAAuB;CAI3D;AAED,qBAAa,aAAc,SAAQ,cAAc;gBACnC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,kBAAuB;CAI3D;AAED,qBAAa,aAAc,SAAQ,cAAc;gBACnC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,kBAAuB;CAI3D;AAED,oEAAoE;AACpE,wBAAgB,cAAc,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CAEjD;AAED;;;;GAIG"}
|
package/dist/shared/errors.js
CHANGED
|
@@ -61,4 +61,9 @@ export class BoundaryError extends CodegraphError {
|
|
|
61
61
|
export function toErrorMessage(e) {
|
|
62
62
|
return e instanceof Error ? e.message : String(e);
|
|
63
63
|
}
|
|
64
|
+
/**
|
|
65
|
+
* Catch-suppression helpers (`suppressError`, `suppressErrorAsync`) live in
|
|
66
|
+
* `infrastructure/suppress.ts` to avoid a shared→infrastructure layer inversion.
|
|
67
|
+
* Import them from there instead of from this module.
|
|
68
|
+
*/
|
|
64
69
|
//# sourceMappingURL=errors.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/shared/errors.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAQH,MAAM,OAAO,cAAe,SAAQ,KAAK;IACvC,IAAI,CAAS;IACb,IAAI,CAAqB;IAEzB,YAAY,OAAe,EAAE,EAAE,IAAI,GAAG,iBAAiB,EAAE,IAAI,EAAE,KAAK,KAAyB,EAAE;QAC7F,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAED,MAAM,OAAO,UAAW,SAAQ,cAAc;IAC5C,YAAY,OAAe,EAAE,OAA2B,EAAE;QACxD,KAAK,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;IAC3B,CAAC;CACF;AAED,MAAM,OAAO,OAAQ,SAAQ,cAAc;IACzC,YAAY,OAAe,EAAE,OAA2B,EAAE;QACxD,KAAK,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;QAC9C,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;IACxB,CAAC;CACF;AAED,MAAM,OAAO,WAAY,SAAQ,cAAc;IAC7C,YAAY,OAAe,EAAE,OAA2B,EAAE;QACxD,KAAK,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;QACpD,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;IAC5B,CAAC;CACF;AAED,MAAM,OAAO,eAAgB,SAAQ,cAAc;IACjD,YAAY,OAAe,EAAE,OAA2B,EAAE;QACxD,KAAK,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;QACvD,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;AAED,MAAM,OAAO,WAAY,SAAQ,cAAc;IAC7C,YAAY,OAAe,EAAE,OAA2B,EAAE;QACxD,KAAK,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;IAC5B,CAAC;CACF;AAED,MAAM,OAAO,aAAc,SAAQ,cAAc;IAC/C,YAAY,OAAe,EAAE,OAA2B,EAAE;QACxD,KAAK,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;QACrD,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAC9B,CAAC;CACF;AAED,MAAM,OAAO,aAAc,SAAQ,cAAc;IAC/C,YAAY,OAAe,EAAE,OAA2B,EAAE;QACxD,KAAK,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAC9B,CAAC;CACF;AAED,oEAAoE;AACpE,MAAM,UAAU,cAAc,CAAC,CAAU;IACvC,OAAO,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC"}
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/shared/errors.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAQH,MAAM,OAAO,cAAe,SAAQ,KAAK;IACvC,IAAI,CAAS;IACb,IAAI,CAAqB;IAEzB,YAAY,OAAe,EAAE,EAAE,IAAI,GAAG,iBAAiB,EAAE,IAAI,EAAE,KAAK,KAAyB,EAAE;QAC7F,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAED,MAAM,OAAO,UAAW,SAAQ,cAAc;IAC5C,YAAY,OAAe,EAAE,OAA2B,EAAE;QACxD,KAAK,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;IAC3B,CAAC;CACF;AAED,MAAM,OAAO,OAAQ,SAAQ,cAAc;IACzC,YAAY,OAAe,EAAE,OAA2B,EAAE;QACxD,KAAK,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;QAC9C,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;IACxB,CAAC;CACF;AAED,MAAM,OAAO,WAAY,SAAQ,cAAc;IAC7C,YAAY,OAAe,EAAE,OAA2B,EAAE;QACxD,KAAK,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;QACpD,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;IAC5B,CAAC;CACF;AAED,MAAM,OAAO,eAAgB,SAAQ,cAAc;IACjD,YAAY,OAAe,EAAE,OAA2B,EAAE;QACxD,KAAK,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;QACvD,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;AAED,MAAM,OAAO,WAAY,SAAQ,cAAc;IAC7C,YAAY,OAAe,EAAE,OAA2B,EAAE;QACxD,KAAK,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;IAC5B,CAAC;CACF;AAED,MAAM,OAAO,aAAc,SAAQ,cAAc;IAC/C,YAAY,OAAe,EAAE,OAA2B,EAAE;QACxD,KAAK,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;QACrD,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAC9B,CAAC;CACF;AAED,MAAM,OAAO,aAAc,SAAQ,cAAc;IAC/C,YAAY,OAAe,EAAE,OAA2B,EAAE;QACxD,KAAK,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAC9B,CAAC;CACF;AAED,oEAAoE;AACpE,MAAM,UAAU,cAAc,CAAC,CAAU;IACvC,OAAO,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC;AAED;;;;GAIG"}
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
-
import type { BetterSqlite3Database, NodeRow } from '../types.js';
|
|
2
|
-
|
|
1
|
+
import type { BetterSqlite3Database, NodeRow, Repository } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Resolve all methods in the class hierarchy that share the given method name.
|
|
4
|
+
*
|
|
5
|
+
* Accepts either a raw BetterSqlite3Database handle (legacy) or a Repository
|
|
6
|
+
* instance (preferred — works with both SqliteRepository and NativeRepository).
|
|
7
|
+
*/
|
|
8
|
+
export declare function resolveMethodViaHierarchy(dbOrRepo: BetterSqlite3Database | Repository, methodName: string): NodeRow[];
|
|
3
9
|
//# sourceMappingURL=hierarchy.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hierarchy.d.ts","sourceRoot":"","sources":["../../src/shared/hierarchy.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"hierarchy.d.ts","sourceRoot":"","sources":["../../src/shared/hierarchy.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9E;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,qBAAqB,GAAG,UAAU,EAC5C,UAAU,EAAE,MAAM,GACjB,OAAO,EAAE,CASX"}
|
package/dist/shared/hierarchy.js
CHANGED
|
@@ -1,5 +1,46 @@
|
|
|
1
1
|
import { getClassHierarchy } from '../db/index.js';
|
|
2
|
-
|
|
2
|
+
/**
|
|
3
|
+
* Resolve all methods in the class hierarchy that share the given method name.
|
|
4
|
+
*
|
|
5
|
+
* Accepts either a raw BetterSqlite3Database handle (legacy) or a Repository
|
|
6
|
+
* instance (preferred — works with both SqliteRepository and NativeRepository).
|
|
7
|
+
*/
|
|
8
|
+
export function resolveMethodViaHierarchy(dbOrRepo, methodName) {
|
|
9
|
+
// Detect Repository vs raw DB by duck-typing on findNodesWithFanIn
|
|
10
|
+
if (typeof dbOrRepo.findNodesWithFanIn === 'function' &&
|
|
11
|
+
typeof dbOrRepo.getClassHierarchy === 'function') {
|
|
12
|
+
return resolveViaRepo(dbOrRepo, methodName);
|
|
13
|
+
}
|
|
14
|
+
return resolveViaRawDb(dbOrRepo, methodName);
|
|
15
|
+
}
|
|
16
|
+
/** Strip fan_in from NodeRowWithFanIn to produce a plain NodeRow. */
|
|
17
|
+
function stripFanIn(rows) {
|
|
18
|
+
return rows.map(({ fan_in: _, ...rest }) => rest);
|
|
19
|
+
}
|
|
20
|
+
function resolveViaRepo(repo, methodName) {
|
|
21
|
+
const methods = stripFanIn(repo.findNodesWithFanIn(`%.${methodName}`, { kinds: ['method'] }));
|
|
22
|
+
const results = [...methods];
|
|
23
|
+
for (const m of methods) {
|
|
24
|
+
const className = m.name.split('.')[0];
|
|
25
|
+
const classNodes = repo.findNodesWithFanIn(className, {
|
|
26
|
+
kinds: ['class'],
|
|
27
|
+
file: m.file,
|
|
28
|
+
});
|
|
29
|
+
const classNode = classNodes[0];
|
|
30
|
+
if (!classNode)
|
|
31
|
+
continue;
|
|
32
|
+
const ancestors = repo.getClassHierarchy(classNode.id);
|
|
33
|
+
for (const ancestorId of ancestors) {
|
|
34
|
+
const ancestor = repo.findNodeById(ancestorId);
|
|
35
|
+
if (!ancestor)
|
|
36
|
+
continue;
|
|
37
|
+
const parentMethods = stripFanIn(repo.findNodesWithFanIn(`${ancestor.name}.${methodName}`, { kinds: ['method'] }));
|
|
38
|
+
results.push(...parentMethods);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return results;
|
|
42
|
+
}
|
|
43
|
+
function resolveViaRawDb(db, methodName) {
|
|
3
44
|
const methods = db
|
|
4
45
|
.prepare(`SELECT * FROM nodes WHERE kind = 'method' AND name LIKE ?`)
|
|
5
46
|
.all(`%.${methodName}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hierarchy.js","sourceRoot":"","sources":["../../src/shared/hierarchy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAGnD,MAAM,UAAU,yBAAyB,CACvC,
|
|
1
|
+
{"version":3,"file":"hierarchy.js","sourceRoot":"","sources":["../../src/shared/hierarchy.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,10 @@ interface DbHandle {
|
|
|
4
4
|
get(...params: unknown[]): unknown;
|
|
5
5
|
};
|
|
6
6
|
}
|
|
7
|
+
/** Anything that can look up a file hash — either a raw DB or a Repository. */
|
|
8
|
+
interface HashSource {
|
|
9
|
+
getFileHash(file: string): string | null;
|
|
10
|
+
}
|
|
7
11
|
export declare function getFileHash(db: DbHandle, file: string): string | null;
|
|
8
12
|
export declare function kindIcon(kind: string): string;
|
|
9
13
|
export interface NormalizedSymbol {
|
|
@@ -26,7 +30,8 @@ interface RawSymbolRow {
|
|
|
26
30
|
}
|
|
27
31
|
/**
|
|
28
32
|
* Normalize a raw DB/query row into the stable 7-field symbol shape.
|
|
33
|
+
* Accepts a raw DB handle (with .prepare), a Repository (with .getFileHash), or null.
|
|
29
34
|
*/
|
|
30
|
-
export declare function normalizeSymbol(row: RawSymbolRow, db?: DbHandle | null, hashCache?: Map<string, string | null>): NormalizedSymbol;
|
|
35
|
+
export declare function normalizeSymbol(row: RawSymbolRow, db?: DbHandle | HashSource | null, hashCache?: Map<string, string | null>): NormalizedSymbol;
|
|
31
36
|
export {};
|
|
32
37
|
//# sourceMappingURL=normalize.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../../src/shared/normalize.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,UAAU,QAAQ;IAChB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG;QAAE,GAAG,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAA;KAAE,CAAC;CAC9D;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAKrE;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAuB7C;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,UAAU,YAAY;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;
|
|
1
|
+
{"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../../src/shared/normalize.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,UAAU,QAAQ;IAChB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG;QAAE,GAAG,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAA;KAAE,CAAC;CAC9D;AAED,+EAA+E;AAC/E,UAAU,UAAU;IAClB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CAC1C;AAMD,wBAAgB,WAAW,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAKrE;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAuB7C;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,UAAU,YAAY;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAqBD;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,YAAY,EACjB,EAAE,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,IAAI,EACjC,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,GACrC,gBAAgB,CAWlB"}
|
package/dist/shared/normalize.js
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
function isHashSource(x) {
|
|
2
|
+
return typeof x === 'object' && x !== null && typeof x.getFileHash === 'function';
|
|
3
|
+
}
|
|
1
4
|
export function getFileHash(db, file) {
|
|
2
5
|
const row = db.prepare('SELECT hash FROM file_hashes WHERE file = ?').get(file);
|
|
3
6
|
return row ? row.hash : null;
|
|
@@ -26,22 +29,27 @@ export function kindIcon(kind) {
|
|
|
26
29
|
return '-';
|
|
27
30
|
}
|
|
28
31
|
}
|
|
32
|
+
/**
|
|
33
|
+
* Resolve a file hash, using the cache when available.
|
|
34
|
+
* Accepts a raw DB handle (with .prepare) or a Repository (with .getFileHash).
|
|
35
|
+
*/
|
|
36
|
+
function resolveFileHash(db, file, hashCache) {
|
|
37
|
+
const lookupHash = isHashSource(db)
|
|
38
|
+
? (f) => db.getFileHash(f)
|
|
39
|
+
: (f) => getFileHash(db, f);
|
|
40
|
+
if (!hashCache)
|
|
41
|
+
return lookupHash(file);
|
|
42
|
+
if (!hashCache.has(file)) {
|
|
43
|
+
hashCache.set(file, lookupHash(file));
|
|
44
|
+
}
|
|
45
|
+
return hashCache.get(file) ?? null;
|
|
46
|
+
}
|
|
29
47
|
/**
|
|
30
48
|
* Normalize a raw DB/query row into the stable 7-field symbol shape.
|
|
49
|
+
* Accepts a raw DB handle (with .prepare), a Repository (with .getFileHash), or null.
|
|
31
50
|
*/
|
|
32
51
|
export function normalizeSymbol(row, db, hashCache) {
|
|
33
|
-
|
|
34
|
-
if (db) {
|
|
35
|
-
if (hashCache) {
|
|
36
|
-
if (!hashCache.has(row.file)) {
|
|
37
|
-
hashCache.set(row.file, getFileHash(db, row.file));
|
|
38
|
-
}
|
|
39
|
-
fileHash = hashCache.get(row.file) ?? null;
|
|
40
|
-
}
|
|
41
|
-
else {
|
|
42
|
-
fileHash = getFileHash(db, row.file);
|
|
43
|
-
}
|
|
44
|
-
}
|
|
52
|
+
const fileHash = db ? resolveFileHash(db, row.file, hashCache) : null;
|
|
45
53
|
return {
|
|
46
54
|
name: row.name,
|
|
47
55
|
kind: row.kind,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalize.js","sourceRoot":"","sources":["../../src/shared/normalize.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"normalize.js","sourceRoot":"","sources":["../../src/shared/normalize.ts"],"names":[],"mappings":"AAUA,SAAS,YAAY,CAAC,CAAU;IAC9B,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,OAAQ,CAAgB,CAAC,WAAW,KAAK,UAAU,CAAC;AACpG,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,EAAY,EAAE,IAAY;IACpD,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,6CAA6C,CAAC,CAAC,GAAG,CAAC,IAAI,CAEjE,CAAC;IACd,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,IAAY;IACnC,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,UAAU;YACb,OAAO,GAAG,CAAC;QACb,KAAK,OAAO;YACV,OAAO,GAAG,CAAC;QACb,KAAK,QAAQ;YACX,OAAO,GAAG,CAAC;QACb,KAAK,MAAM;YACT,OAAO,GAAG,CAAC;QACb,KAAK,WAAW;YACd,OAAO,GAAG,CAAC;QACb,KAAK,MAAM;YACT,OAAO,GAAG,CAAC;QACb,KAAK,WAAW;YACd,OAAO,GAAG,CAAC;QACb,KAAK,UAAU;YACb,OAAO,GAAG,CAAC;QACb,KAAK,UAAU;YACb,OAAO,GAAG,CAAC;QACb;YACE,OAAO,GAAG,CAAC;IACf,CAAC;AACH,CAAC;AAsBD;;;GAGG;AACH,SAAS,eAAe,CACtB,EAAyB,EACzB,IAAY,EACZ,SAAsC;IAEtC,MAAM,UAAU,GAAG,YAAY,CAAC,EAAE,CAAC;QACjC,CAAC,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,WAAW,CAAC,EAAc,EAAE,CAAC,CAAC,CAAC;IAClD,IAAI,CAAC,SAAS;QAAE,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;IACxC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;AACrC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAC7B,GAAiB,EACjB,EAAiC,EACjC,SAAsC;IAEtC,MAAM,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACtE,OAAO;QACL,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,OAAO,EAAE,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,OAAO,IAAI,IAAI;QAC5C,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,IAAI;QACtB,QAAQ;KACT,CAAC;AACJ,CAAC"}
|
|
@@ -42,13 +42,4 @@ export declare function paginate<T>(items: T[], { limit, offset }?: PaginateOpts
|
|
|
42
42
|
export declare function paginateResult<T extends Record<string, unknown>>(result: T, field: string, { limit, offset }?: PaginateOpts): T & {
|
|
43
43
|
_pagination?: PaginationMeta;
|
|
44
44
|
};
|
|
45
|
-
/**
|
|
46
|
-
* Print data as newline-delimited JSON (NDJSON).
|
|
47
|
-
*
|
|
48
|
-
* Emits a `_meta` line with pagination info (if present), then one JSON
|
|
49
|
-
* line per item in the named array field.
|
|
50
|
-
*/
|
|
51
|
-
export declare function printNdjson(data: Record<string, unknown> & {
|
|
52
|
-
_pagination?: PaginationMeta;
|
|
53
|
-
}, field: string): void;
|
|
54
45
|
//# sourceMappingURL=paginate.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paginate.d.ts","sourceRoot":"","sources":["../../src/shared/paginate.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe,CAAC,CAAC;IAChC,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,UAAU,CAAC,EAAE,cAAc,CAAC;CAC7B;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,iFAAiF;AACjF,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAuB/C,CAAC;AAEF;;GAEG;AACH,wBAAgB,cAAc,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAG9F;AAED,yCAAyC;AACzC,eAAO,MAAM,aAAa,OAAO,CAAC;AAElC;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAE,YAAiB,GAAG,eAAe,CAAC,CAAC,CAAC,CAkBhG;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9D,MAAM,EAAE,CAAC,EACT,KAAK,EAAE,MAAM,EACb,EAAE,KAAK,EAAE,MAAM,EAAE,GAAE,YAAiB,GACnC,CAAC,GAAG;IAAE,WAAW,CAAC,EAAE,cAAc,CAAA;CAAE,CAStC
|
|
1
|
+
{"version":3,"file":"paginate.d.ts","sourceRoot":"","sources":["../../src/shared/paginate.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe,CAAC,CAAC;IAChC,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,UAAU,CAAC,EAAE,cAAc,CAAC;CAC7B;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,iFAAiF;AACjF,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAuB/C,CAAC;AAEF;;GAEG;AACH,wBAAgB,cAAc,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAG9F;AAED,yCAAyC;AACzC,eAAO,MAAM,aAAa,OAAO,CAAC;AAElC;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAE,YAAiB,GAAG,eAAe,CAAC,CAAC,CAAC,CAkBhG;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9D,MAAM,EAAE,CAAC,EACT,KAAK,EAAE,MAAM,EACb,EAAE,KAAK,EAAE,MAAM,EAAE,GAAE,YAAiB,GACnC,CAAC,GAAG;IAAE,WAAW,CAAC,EAAE,cAAc,CAAA;CAAE,CAStC"}
|
package/dist/shared/paginate.js
CHANGED
|
@@ -79,19 +79,4 @@ export function paginateResult(result, field, { limit, offset } = {}) {
|
|
|
79
79
|
const { items, pagination } = paginate(arr, { limit, offset });
|
|
80
80
|
return { ...result, [field]: items, _pagination: pagination };
|
|
81
81
|
}
|
|
82
|
-
/**
|
|
83
|
-
* Print data as newline-delimited JSON (NDJSON).
|
|
84
|
-
*
|
|
85
|
-
* Emits a `_meta` line with pagination info (if present), then one JSON
|
|
86
|
-
* line per item in the named array field.
|
|
87
|
-
*/
|
|
88
|
-
export function printNdjson(data, field) {
|
|
89
|
-
if (data._pagination)
|
|
90
|
-
console.log(JSON.stringify({ _meta: data._pagination }));
|
|
91
|
-
const items = data[field];
|
|
92
|
-
if (Array.isArray(items)) {
|
|
93
|
-
for (const item of items)
|
|
94
|
-
console.log(JSON.stringify(item));
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
82
|
//# sourceMappingURL=paginate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paginate.js","sourceRoot":"","sources":["../../src/shared/paginate.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAoBH,iFAAiF;AACjF,MAAM,CAAC,MAAM,YAAY,GAA2B;IAClD,cAAc,EAAE,GAAG;IACnB,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,EAAE;IACT,UAAU,EAAE,GAAG;IACf,YAAY,EAAE,GAAG;IACjB,SAAS,EAAE,CAAC;IACZ,OAAO,EAAE,CAAC;IACV,OAAO,EAAE,EAAE;IACX,SAAS,EAAE,EAAE;IACb,YAAY,EAAE,EAAE;IAChB,WAAW,EAAE,EAAE;IACf,eAAe,EAAE,EAAE;IACnB,eAAe,EAAE,EAAE;IACnB,cAAc,EAAE,EAAE;IAClB,QAAQ,EAAE,EAAE;IACZ,UAAU,EAAE,EAAE;IACd,UAAU,EAAE,EAAE;IACd,SAAS,EAAE,EAAE;IACb,WAAW,EAAE,EAAE;IACf,SAAS,EAAE,EAAE;IACb,MAAM,EAAE,EAAE;IACV,SAAS,EAAE,EAAE;CACd,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,cAAuC;IACpE,IAAI,CAAC,cAAc;QAAE,OAAO,YAAY,CAAC;IACzC,OAAO,EAAE,GAAG,YAAY,EAAE,GAAG,cAAc,EAAE,CAAC;AAChD,CAAC;AAED,yCAAyC;AACzC,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,CAAC;AAElC;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAI,KAAU,EAAE,EAAE,KAAK,EAAE,MAAM,KAAmB,EAAE;IAC1E,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,EAAE,KAAK,EAAE,CAAC;IACnB,CAAC;IACD,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC;IAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IACtD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAC/B,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC;IACzC,OAAO;QACL,KAAK,EAAE,IAAI;QACX,UAAU,EAAE;YACV,KAAK;YACL,MAAM,EAAE,GAAG;YACX,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK;YAC1B,QAAQ,EAAE,IAAI,CAAC,MAAM;SACtB;KACF,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAC5B,MAAS,EACT,KAAa,EACb,EAAE,KAAK,EAAE,MAAM,KAAmB,EAAE;IAEpC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,MAAM,CAAC;IAEvC,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAC/D,OAAO,EAAE,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;AAChE,CAAC
|
|
1
|
+
{"version":3,"file":"paginate.js","sourceRoot":"","sources":["../../src/shared/paginate.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAoBH,iFAAiF;AACjF,MAAM,CAAC,MAAM,YAAY,GAA2B;IAClD,cAAc,EAAE,GAAG;IACnB,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,EAAE;IACT,UAAU,EAAE,GAAG;IACf,YAAY,EAAE,GAAG;IACjB,SAAS,EAAE,CAAC;IACZ,OAAO,EAAE,CAAC;IACV,OAAO,EAAE,EAAE;IACX,SAAS,EAAE,EAAE;IACb,YAAY,EAAE,EAAE;IAChB,WAAW,EAAE,EAAE;IACf,eAAe,EAAE,EAAE;IACnB,eAAe,EAAE,EAAE;IACnB,cAAc,EAAE,EAAE;IAClB,QAAQ,EAAE,EAAE;IACZ,UAAU,EAAE,EAAE;IACd,UAAU,EAAE,EAAE;IACd,SAAS,EAAE,EAAE;IACb,WAAW,EAAE,EAAE;IACf,SAAS,EAAE,EAAE;IACb,MAAM,EAAE,EAAE;IACV,SAAS,EAAE,EAAE;CACd,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,cAAuC;IACpE,IAAI,CAAC,cAAc;QAAE,OAAO,YAAY,CAAC;IACzC,OAAO,EAAE,GAAG,YAAY,EAAE,GAAG,cAAc,EAAE,CAAC;AAChD,CAAC;AAED,yCAAyC;AACzC,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,CAAC;AAElC;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAI,KAAU,EAAE,EAAE,KAAK,EAAE,MAAM,KAAmB,EAAE;IAC1E,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,EAAE,KAAK,EAAE,CAAC;IACnB,CAAC;IACD,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC;IAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IACtD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAC/B,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC;IACzC,OAAO;QACL,KAAK,EAAE,IAAI;QACX,UAAU,EAAE;YACV,KAAK;YACL,MAAM,EAAE,GAAG;YACX,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK;YAC1B,QAAQ,EAAE,IAAI,CAAC,MAAM;SACtB;KACF,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAC5B,MAAS,EACT,KAAa,EACb,EAAE,KAAK,EAAE,MAAM,KAAmB,EAAE;IAEpC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,MAAM,CAAC;IAEvC,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAC/D,OAAO,EAAE,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;AAChE,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -27,7 +27,7 @@ export type EdgeKind = CoreEdgeKind | StructuralEdgeKind;
|
|
|
27
27
|
/** Extended edge kinds including dataflow. */
|
|
28
28
|
export type AnyEdgeKind = EdgeKind | DataflowEdgeKind;
|
|
29
29
|
/** AST node kinds extracted during analysis. */
|
|
30
|
-
export type ASTNodeKind = '
|
|
30
|
+
export type ASTNodeKind = 'new' | 'string' | 'regex' | 'throw' | 'await';
|
|
31
31
|
/** Coarse role classifications for symbols based on connectivity. */
|
|
32
32
|
export type CoreRole = 'entry' | 'core' | 'utility' | 'adapter' | 'dead' | 'test-only' | 'leaf';
|
|
33
33
|
/** Dead sub-roles — refine the coarse "dead" bucket. */
|
|
@@ -35,7 +35,7 @@ export type DeadSubRole = 'dead-leaf' | 'dead-entry' | 'dead-ffi' | 'dead-unreso
|
|
|
35
35
|
/** Every valid role. */
|
|
36
36
|
export type Role = CoreRole | DeadSubRole;
|
|
37
37
|
/** Supported language identifiers (from LANGUAGE_REGISTRY). */
|
|
38
|
-
export type LanguageId = 'javascript' | 'typescript' | 'tsx' | 'python' | 'go' | 'rust' | 'java' | 'csharp' | 'ruby' | 'php' | 'hcl' | 'c' | 'cpp' | 'kotlin' | 'swift' | 'scala' | 'bash' | 'elixir' | 'lua' | 'dart' | 'zig' | 'haskell' | 'ocaml';
|
|
38
|
+
export type LanguageId = 'javascript' | 'typescript' | 'tsx' | 'python' | 'go' | 'rust' | 'java' | 'csharp' | 'ruby' | 'php' | 'hcl' | 'c' | 'cpp' | 'kotlin' | 'swift' | 'scala' | 'bash' | 'elixir' | 'lua' | 'dart' | 'zig' | 'haskell' | 'ocaml' | 'ocaml-interface' | 'fsharp' | 'gleam' | 'clojure' | 'julia' | 'r' | 'erlang' | 'solidity' | 'objc' | 'cuda' | 'groovy' | 'verilog';
|
|
39
39
|
/** Engine mode selector. */
|
|
40
40
|
export type EngineMode = 'native' | 'wasm' | 'auto';
|
|
41
41
|
/** Graph export formats. */
|
|
@@ -221,6 +221,9 @@ export interface Repository {
|
|
|
221
221
|
hasEmbeddings(): boolean;
|
|
222
222
|
hasDataflowTable(): boolean;
|
|
223
223
|
getComplexityForNode(nodeId: number): ComplexityMetrics | undefined;
|
|
224
|
+
getFileHash(file: string): string | null;
|
|
225
|
+
hasImplementsEdges(): boolean;
|
|
226
|
+
hasCoChangesTable(): boolean;
|
|
224
227
|
}
|
|
225
228
|
/**
|
|
226
229
|
* In-memory repository — mutable, used for testing and incremental builds.
|
|
@@ -279,6 +282,7 @@ export interface SubDeclaration {
|
|
|
279
282
|
line: number;
|
|
280
283
|
endLine?: number;
|
|
281
284
|
visibility?: 'public' | 'private' | 'protected';
|
|
285
|
+
decorators?: string[];
|
|
282
286
|
}
|
|
283
287
|
/** Complexity metrics attached to a definition post-analysis. */
|
|
284
288
|
export interface DefinitionComplexity {
|
|
@@ -1522,14 +1526,86 @@ export interface NativeAddon {
|
|
|
1522
1526
|
source: string;
|
|
1523
1527
|
target: string;
|
|
1524
1528
|
}>): string[][];
|
|
1529
|
+
bfsTraversal(edges: Array<{
|
|
1530
|
+
source: string;
|
|
1531
|
+
target: string;
|
|
1532
|
+
}>, startIds: string[], maxDepth?: number | null, direction?: string | null): Array<{
|
|
1533
|
+
node: string;
|
|
1534
|
+
depth: number;
|
|
1535
|
+
}>;
|
|
1536
|
+
shortestPath(edges: Array<{
|
|
1537
|
+
source: string;
|
|
1538
|
+
target: string;
|
|
1539
|
+
}>, fromId: string, toId: string): string[];
|
|
1540
|
+
fanInOut(edges: Array<{
|
|
1541
|
+
source: string;
|
|
1542
|
+
target: string;
|
|
1543
|
+
}>): Array<{
|
|
1544
|
+
node: string;
|
|
1545
|
+
fanIn: number;
|
|
1546
|
+
fanOut: number;
|
|
1547
|
+
}>;
|
|
1548
|
+
louvainCommunities(edges: Array<{
|
|
1549
|
+
source: string;
|
|
1550
|
+
target: string;
|
|
1551
|
+
}>, nodeIds: string[], resolution?: number | null, randomSeed?: number | null): {
|
|
1552
|
+
assignments: Array<{
|
|
1553
|
+
node: string;
|
|
1554
|
+
community: number;
|
|
1555
|
+
}>;
|
|
1556
|
+
modularity: number;
|
|
1557
|
+
};
|
|
1525
1558
|
buildCallEdges(files: unknown[], nodes: unknown[], builtinReceivers: string[]): unknown[];
|
|
1559
|
+
buildImportEdges?(files: unknown[], resolvedImports: unknown[], fileReexports: unknown[], fileNodeIds: unknown[], barrelFiles: string[], rootDir: string): unknown[];
|
|
1526
1560
|
engineVersion(): string;
|
|
1561
|
+
analyzeComplexity(source: string, filePath: string, langId?: string | null): NativeFunctionComplexityResult[];
|
|
1562
|
+
buildCfgAnalysis(source: string, filePath: string, langId?: string | null): NativeFunctionCfgResult[];
|
|
1563
|
+
extractDataflowAnalysis(source: string, filePath: string, langId?: string | null): DataflowResult | null;
|
|
1527
1564
|
ParseTreeCache: new () => NativeParseTreeCache;
|
|
1528
1565
|
NativeDatabase: {
|
|
1529
1566
|
openReadWrite(dbPath: string): NativeDatabase;
|
|
1530
1567
|
openReadonly(dbPath: string): NativeDatabase;
|
|
1531
1568
|
};
|
|
1532
1569
|
}
|
|
1570
|
+
/** Per-function complexity result from native standalone analysis (napi output shape). */
|
|
1571
|
+
export interface NativeFunctionComplexityResult {
|
|
1572
|
+
name: string;
|
|
1573
|
+
line: number;
|
|
1574
|
+
endLine: number | null;
|
|
1575
|
+
complexity: {
|
|
1576
|
+
cognitive: number;
|
|
1577
|
+
cyclomatic: number;
|
|
1578
|
+
maxNesting: number;
|
|
1579
|
+
halstead?: {
|
|
1580
|
+
n1: number;
|
|
1581
|
+
n2: number;
|
|
1582
|
+
bigN1: number;
|
|
1583
|
+
bigN2: number;
|
|
1584
|
+
vocabulary: number;
|
|
1585
|
+
length: number;
|
|
1586
|
+
volume: number;
|
|
1587
|
+
difficulty: number;
|
|
1588
|
+
effort: number;
|
|
1589
|
+
bugs: number;
|
|
1590
|
+
};
|
|
1591
|
+
loc?: {
|
|
1592
|
+
loc: number;
|
|
1593
|
+
sloc: number;
|
|
1594
|
+
commentLines: number;
|
|
1595
|
+
};
|
|
1596
|
+
maintainabilityIndex?: number | null;
|
|
1597
|
+
};
|
|
1598
|
+
}
|
|
1599
|
+
/** Per-function CFG result from native standalone analysis. */
|
|
1600
|
+
export interface NativeFunctionCfgResult {
|
|
1601
|
+
name: string;
|
|
1602
|
+
line: number;
|
|
1603
|
+
endLine: number | null;
|
|
1604
|
+
cfg: {
|
|
1605
|
+
blocks: CfgBlock[];
|
|
1606
|
+
edges: CfgEdge[];
|
|
1607
|
+
};
|
|
1608
|
+
}
|
|
1533
1609
|
/** Native parse-tree cache instance. */
|
|
1534
1610
|
export interface NativeParseTreeCache {
|
|
1535
1611
|
get(filePath: string): unknown;
|
|
@@ -1680,7 +1756,10 @@ export interface NativeDatabase {
|
|
|
1680
1756
|
hasCfgTables(): boolean;
|
|
1681
1757
|
hasEmbeddings(): boolean;
|
|
1682
1758
|
hasDataflowTable(): boolean;
|
|
1759
|
+
hasImplementsEdges(): boolean;
|
|
1760
|
+
hasCoChangesTable(): boolean;
|
|
1683
1761
|
getComplexityForNode(nodeId: number): NativeComplexityMetrics | null;
|
|
1762
|
+
getFileHash(file: string): string | null;
|
|
1684
1763
|
bulkInsertNodes(batches: Array<{
|
|
1685
1764
|
file: string;
|
|
1686
1765
|
definitions: Array<{
|
|
@@ -1764,7 +1843,7 @@ export interface NativeDatabase {
|
|
|
1764
1843
|
sourceId: number;
|
|
1765
1844
|
targetId: number;
|
|
1766
1845
|
kind: string;
|
|
1767
|
-
paramIndex?: number
|
|
1846
|
+
paramIndex?: number;
|
|
1768
1847
|
expression?: string | null;
|
|
1769
1848
|
line?: number | null;
|
|
1770
1849
|
confidence: number;
|
|
@@ -1915,12 +1994,59 @@ export interface NativeDatabase {
|
|
|
1915
1994
|
fanIn: number;
|
|
1916
1995
|
fanOut: number;
|
|
1917
1996
|
}>;
|
|
1997
|
+
/** All file_hashes rows + table existence + max mtime in one call. */
|
|
1998
|
+
getFileHashData?(): {
|
|
1999
|
+
exists: boolean;
|
|
2000
|
+
rows: Array<{
|
|
2001
|
+
file: string;
|
|
2002
|
+
hash: string;
|
|
2003
|
+
mtime: number;
|
|
2004
|
+
size: number;
|
|
2005
|
+
}>;
|
|
2006
|
+
maxMtime: number;
|
|
2007
|
+
};
|
|
2008
|
+
/** CFG and dataflow table counts (-1 = table missing). */
|
|
2009
|
+
checkPendingAnalysis?(): {
|
|
2010
|
+
cfgCount: number;
|
|
2011
|
+
dataflowCount: number;
|
|
2012
|
+
};
|
|
2013
|
+
/** Batch upsert file_hashes for metadata healing. */
|
|
2014
|
+
healFileMetadata?(entries: Array<{
|
|
2015
|
+
file: string;
|
|
2016
|
+
hash: string;
|
|
2017
|
+
mtime: number;
|
|
2018
|
+
size: number;
|
|
2019
|
+
}>): number;
|
|
2020
|
+
/** Find files with edges pointing to changed files. */
|
|
2021
|
+
findReverseDependencies?(changedFiles: string[]): string[];
|
|
2022
|
+
/** Node + edge counts in one call. */
|
|
2023
|
+
getFinalizeCounts?(): {
|
|
2024
|
+
nodeCount: number;
|
|
2025
|
+
edgeCount: number;
|
|
2026
|
+
};
|
|
2027
|
+
/** Orphaned embeddings, stale embeddings, unused exports in one call. */
|
|
2028
|
+
runAdvisoryChecks?(hasEmbeddings: boolean): {
|
|
2029
|
+
orphanedEmbeddings: number;
|
|
2030
|
+
embedBuiltAt: string | null;
|
|
2031
|
+
unusedExports: number;
|
|
2032
|
+
};
|
|
2033
|
+
/** File_hashes count + all file paths in one call. */
|
|
2034
|
+
getCollectFilesData?(): {
|
|
2035
|
+
count: number;
|
|
2036
|
+
files: string[];
|
|
2037
|
+
};
|
|
1918
2038
|
/** Execute a parameterized SELECT and return all rows as objects. */
|
|
1919
2039
|
queryAll(sql: string, params: Array<string | number | null>): Record<string, unknown>[];
|
|
1920
2040
|
/** Execute a parameterized SELECT and return the first row, or null. */
|
|
1921
2041
|
queryGet(sql: string, params: Array<string | number | null>): Record<string, unknown> | null;
|
|
1922
2042
|
/** Validate DB codegraph_version matches expected. Warns on mismatch. */
|
|
1923
2043
|
validateSchemaVersion(expectedVersion: string): boolean;
|
|
2044
|
+
/**
|
|
2045
|
+
* Run the entire build pipeline in Rust with zero napi boundary crossings.
|
|
2046
|
+
* Returns a JSON string with timing and build result data.
|
|
2047
|
+
* When unavailable, the JS pipeline (runPipelineStages) is used as fallback.
|
|
2048
|
+
*/
|
|
2049
|
+
buildGraph?(rootDir: string, configJson: string, aliasesJson: string, optsJson: string): string;
|
|
1924
2050
|
}
|
|
1925
2051
|
/** Shared context passed to every CLI command's execute/validate functions. */
|
|
1926
2052
|
export interface CommandContext {
|