@optave/codegraph 3.8.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 +9 -8
- package/dist/ast-analysis/engine.d.ts.map +1 -1
- package/dist/ast-analysis/engine.js +95 -87
- 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/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 +54 -58
- 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/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 +255 -105
- 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 +22 -17
- package/dist/domain/graph/builder/stages/build-edges.js.map +1 -1
- package/dist/domain/graph/builder/stages/detect-changes.js +2 -2
- package/dist/domain/graph/builder/stages/detect-changes.js.map +1 -1
- package/dist/domain/graph/builder/stages/finalize.js +2 -2
- 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 +32 -21
- 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 +0 -5
- package/dist/domain/parser.d.ts.map +1 -1
- package/dist/domain/parser.js +13 -28
- 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/go.js +36 -33
- package/dist/extractors/go.js.map +1 -1
- 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/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/kotlin.js +84 -78
- package/dist/extractors/kotlin.js.map +1 -1
- package/dist/extractors/python.js +29 -24
- package/dist/extractors/python.js.map +1 -1
- package/dist/extractors/rust.js +41 -32
- package/dist/extractors/rust.js.map +1 -1
- package/dist/extractors/solidity.js +58 -67
- package/dist/extractors/solidity.js.map +1 -1
- package/dist/extractors/swift.js +83 -81
- package/dist/extractors/swift.js.map +1 -1
- 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 +83 -81
- 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/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/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 +10 -4
- package/dist/types.d.ts.map +1 -1
- package/package.json +7 -7
- package/src/ast-analysis/engine.ts +126 -105
- package/src/ast-analysis/metrics.ts +33 -11
- 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 +53 -50
- package/src/ast-analysis/visitors/complexity-visitor.ts +35 -40
- package/src/ast-analysis/visitors/dataflow-visitor.ts +87 -43
- 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 +286 -97
- package/src/domain/graph/builder/stages/build-edges.ts +22 -18
- package/src/domain/graph/builder/stages/detect-changes.ts +2 -2
- package/src/domain/graph/builder/stages/finalize.ts +2 -2
- package/src/domain/graph/builder/stages/insert-nodes.ts +59 -34
- 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 +14 -26
- 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/go.ts +43 -33
- package/src/extractors/helpers.ts +37 -23
- package/src/extractors/java.ts +66 -47
- package/src/extractors/javascript.ts +45 -46
- package/src/extractors/kotlin.ts +84 -77
- package/src/extractors/python.ts +31 -25
- package/src/extractors/rust.ts +37 -29
- package/src/extractors/solidity.ts +57 -61
- package/src/extractors/swift.ts +81 -80
- package/src/extractors/zig.ts +58 -61
- package/src/features/ast.ts +130 -110
- 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/leiden/optimiser.ts +99 -55
- package/src/graph/algorithms/leiden/partition.ts +359 -294
- 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 +24 -4
package/dist/features/ast.js
CHANGED
|
@@ -30,52 +30,87 @@ function findParentDef(defs, line) {
|
|
|
30
30
|
}
|
|
31
31
|
return best;
|
|
32
32
|
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
33
|
+
/**
|
|
34
|
+
* Attempt native bulk-insert of AST nodes.
|
|
35
|
+
* Returns `true` if all nodes were inserted natively, `false` if JS fallback is needed.
|
|
36
|
+
*/
|
|
37
|
+
function tryNativeBulkInsert(fileSymbols, engineOpts) {
|
|
38
38
|
const nativeDb = engineOpts?.nativeDb;
|
|
39
|
-
if (nativeDb?.bulkInsertAstNodes)
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
}
|
|
55
|
-
else if (symbols.calls || symbols._tree) {
|
|
56
|
-
needsJsFallback = true;
|
|
57
|
-
break;
|
|
58
|
-
}
|
|
39
|
+
if (!nativeDb?.bulkInsertAstNodes)
|
|
40
|
+
return false;
|
|
41
|
+
const batches = [];
|
|
42
|
+
for (const [relPath, symbols] of fileSymbols) {
|
|
43
|
+
if (Array.isArray(symbols.astNodes)) {
|
|
44
|
+
batches.push({
|
|
45
|
+
file: relPath,
|
|
46
|
+
nodes: symbols.astNodes.map((n) => ({
|
|
47
|
+
line: n.line,
|
|
48
|
+
kind: n.kind,
|
|
49
|
+
name: n.name,
|
|
50
|
+
text: n.text,
|
|
51
|
+
receiver: n.receiver ?? '',
|
|
52
|
+
})),
|
|
53
|
+
});
|
|
59
54
|
}
|
|
60
|
-
if (
|
|
61
|
-
|
|
62
|
-
let inserted;
|
|
63
|
-
try {
|
|
64
|
-
engineOpts?.suspendJsDb?.();
|
|
65
|
-
inserted = nativeDb.bulkInsertAstNodes(batches);
|
|
66
|
-
}
|
|
67
|
-
finally {
|
|
68
|
-
engineOpts?.resumeJsDb?.();
|
|
69
|
-
}
|
|
70
|
-
if (inserted === expectedNodes) {
|
|
71
|
-
debug(`AST extraction (native bulk): ${inserted} nodes stored`);
|
|
72
|
-
return;
|
|
73
|
-
}
|
|
74
|
-
debug(`AST extraction (native bulk): expected ${expectedNodes}, got ${inserted} — falling back to JS`);
|
|
75
|
-
// fall through to JS path
|
|
55
|
+
else if (symbols.calls || symbols._tree) {
|
|
56
|
+
return false; // needs JS fallback
|
|
76
57
|
}
|
|
77
58
|
}
|
|
78
|
-
|
|
59
|
+
const expectedNodes = batches.reduce((s, b) => s + b.nodes.length, 0);
|
|
60
|
+
let inserted;
|
|
61
|
+
try {
|
|
62
|
+
engineOpts?.suspendJsDb?.();
|
|
63
|
+
inserted = nativeDb.bulkInsertAstNodes(batches);
|
|
64
|
+
}
|
|
65
|
+
finally {
|
|
66
|
+
engineOpts?.resumeJsDb?.();
|
|
67
|
+
}
|
|
68
|
+
if (inserted === expectedNodes) {
|
|
69
|
+
debug(`AST extraction (native bulk): ${inserted} nodes stored`);
|
|
70
|
+
return true;
|
|
71
|
+
}
|
|
72
|
+
debug(`AST extraction (native bulk): expected ${expectedNodes}, got ${inserted} — falling back to JS`);
|
|
73
|
+
return false;
|
|
74
|
+
}
|
|
75
|
+
/** Collect AST rows for a single file, resolving parent node IDs. */
|
|
76
|
+
function collectFileAstRows(db, relPath, symbols) {
|
|
77
|
+
const defs = symbols.definitions || [];
|
|
78
|
+
const nodeIdMap = new Map();
|
|
79
|
+
for (const row of bulkNodeIdsByFile(db, relPath)) {
|
|
80
|
+
nodeIdMap.set(`${row.name}|${row.kind}|${row.line}`, row.id);
|
|
81
|
+
}
|
|
82
|
+
if (Array.isArray(symbols.astNodes)) {
|
|
83
|
+
return symbols.astNodes.map((n) => {
|
|
84
|
+
const parentDef = findParentDef(defs, n.line);
|
|
85
|
+
const parentNodeId = parentDef
|
|
86
|
+
? nodeIdMap.get(`${parentDef.name}|${parentDef.kind}|${parentDef.line}`) || null
|
|
87
|
+
: null;
|
|
88
|
+
return {
|
|
89
|
+
file: relPath,
|
|
90
|
+
line: n.line,
|
|
91
|
+
kind: n.kind,
|
|
92
|
+
name: n.name,
|
|
93
|
+
text: n.text || null,
|
|
94
|
+
receiver: n.receiver || null,
|
|
95
|
+
parentNodeId,
|
|
96
|
+
};
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
// WASM fallback — walk tree if available
|
|
100
|
+
const ext = path.extname(relPath).toLowerCase();
|
|
101
|
+
if (WALK_EXTENSIONS.has(ext) && symbols._tree) {
|
|
102
|
+
const rows = [];
|
|
103
|
+
walkAst(symbols._tree.rootNode, defs, relPath, rows, nodeIdMap);
|
|
104
|
+
return rows;
|
|
105
|
+
}
|
|
106
|
+
return [];
|
|
107
|
+
}
|
|
108
|
+
// ─── Build ────────────────────────────────────────────────────────────
|
|
109
|
+
export async function buildAstNodes(db, fileSymbols, _rootDir, engineOpts) {
|
|
110
|
+
// Native bulk-insert fast path (Phase 6.15+)
|
|
111
|
+
if (tryNativeBulkInsert(fileSymbols, engineOpts))
|
|
112
|
+
return;
|
|
113
|
+
// JS fallback path
|
|
79
114
|
let insertStmt;
|
|
80
115
|
try {
|
|
81
116
|
insertStmt = db.prepare('INSERT INTO ast_nodes (file, line, kind, name, text, receiver, parent_node_id) VALUES (?, ?, ?, ?, ?, ?, ?)');
|
|
@@ -91,40 +126,7 @@ export async function buildAstNodes(db, fileSymbols, _rootDir, engineOpts) {
|
|
|
91
126
|
});
|
|
92
127
|
const allRows = [];
|
|
93
128
|
for (const [relPath, symbols] of fileSymbols) {
|
|
94
|
-
|
|
95
|
-
const nodeIdMap = new Map();
|
|
96
|
-
for (const row of bulkNodeIdsByFile(db, relPath)) {
|
|
97
|
-
nodeIdMap.set(`${row.name}|${row.kind}|${row.line}`, row.id);
|
|
98
|
-
}
|
|
99
|
-
if (Array.isArray(symbols.astNodes)) {
|
|
100
|
-
// Native engine provided AST nodes (may be empty for files with no AST content)
|
|
101
|
-
for (const n of symbols.astNodes) {
|
|
102
|
-
const parentDef = findParentDef(defs, n.line);
|
|
103
|
-
let parentNodeId = null;
|
|
104
|
-
if (parentDef) {
|
|
105
|
-
parentNodeId =
|
|
106
|
-
nodeIdMap.get(`${parentDef.name}|${parentDef.kind}|${parentDef.line}`) || null;
|
|
107
|
-
}
|
|
108
|
-
allRows.push({
|
|
109
|
-
file: relPath,
|
|
110
|
-
line: n.line,
|
|
111
|
-
kind: n.kind,
|
|
112
|
-
name: n.name,
|
|
113
|
-
text: n.text || null,
|
|
114
|
-
receiver: n.receiver || null,
|
|
115
|
-
parentNodeId,
|
|
116
|
-
});
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
else {
|
|
120
|
-
// WASM fallback — walk tree if available
|
|
121
|
-
const ext = path.extname(relPath).toLowerCase();
|
|
122
|
-
if (WALK_EXTENSIONS.has(ext) && symbols._tree) {
|
|
123
|
-
const astRows = [];
|
|
124
|
-
walkAst(symbols._tree.rootNode, defs, relPath, astRows, nodeIdMap);
|
|
125
|
-
allRows.push(...astRows);
|
|
126
|
-
}
|
|
127
|
-
}
|
|
129
|
+
allRows.push(...collectFileAstRows(db, relPath, symbols));
|
|
128
130
|
}
|
|
129
131
|
if (allRows.length > 0) {
|
|
130
132
|
tx(allRows);
|
|
@@ -206,19 +208,19 @@ export function astQuery(pattern, customDbPath, opts = {}) {
|
|
|
206
208
|
if (outputResult(data, 'results', opts))
|
|
207
209
|
return;
|
|
208
210
|
if (data.results.length === 0) {
|
|
209
|
-
|
|
211
|
+
process.stdout.write(`No AST nodes found${pattern ? ` matching "${pattern}"` : ''}.\n`);
|
|
210
212
|
return;
|
|
211
213
|
}
|
|
212
214
|
const kindLabel = opts.kind ? ` (kind: ${opts.kind})` : '';
|
|
213
|
-
|
|
215
|
+
process.stdout.write(`\n${data.count} AST nodes${pattern ? ` matching "${pattern}"` : ''}${kindLabel}:\n\n`);
|
|
214
216
|
for (const r of data.results) {
|
|
215
217
|
const icon = KIND_ICONS[r.kind] || '?';
|
|
216
218
|
const parentInfo = r.parent ? ` (in ${r.parent.name})` : '';
|
|
217
|
-
|
|
219
|
+
process.stdout.write(` ${icon} ${r.name} -- ${r.file}:${r.line}${parentInfo}\n`);
|
|
218
220
|
}
|
|
219
221
|
if (data._pagination?.hasMore) {
|
|
220
|
-
|
|
222
|
+
process.stdout.write(`\n ... ${data._pagination.total - data._pagination.offset - data._pagination.returned} more (use --offset ${data._pagination.offset + data._pagination.limit})\n`);
|
|
221
223
|
}
|
|
222
|
-
|
|
224
|
+
process.stdout.write('\n');
|
|
223
225
|
}
|
|
224
226
|
//# sourceMappingURL=ast.js.map
|
package/dist/features/ast.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ast.js","sourceRoot":"","sources":["../../src/features/ast.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,+CAA+C,CAAC;AACtF,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAGvD,yEAAyE;AAEzE,MAAM,CAAC,MAAM,cAAc,GAAkB,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAE1F,MAAM,UAAU,GAA2B;IACzC,GAAG,EAAE,QAAQ,EAAE,IAAI;IACnB,MAAM,EAAE,GAAG;IACX,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,QAAQ,EAAE,IAAI;IACrB,KAAK,EAAE,QAAQ,EAAE,IAAI;CACtB,CAAC;AAEF,MAAM,eAAe,GAAG,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AAExD,MAAM,eAAe,GAAG,iBAAiB,CAAC,aAAa,CAAC,CAAC;AAsBzD,SAAS,aAAa,CAAC,IAAkB,EAAE,IAAY;IACrD,IAAI,IAAI,GAAsB,IAAI,CAAC;IACnC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,IAAI,IAAI,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC,EAAE,CAAC;YACrE,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC7E,IAAI,GAAG,GAAG,CAAC;YACb,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;
|
|
1
|
+
{"version":3,"file":"ast.js","sourceRoot":"","sources":["../../src/features/ast.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,+CAA+C,CAAC;AACtF,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAGvD,yEAAyE;AAEzE,MAAM,CAAC,MAAM,cAAc,GAAkB,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAE1F,MAAM,UAAU,GAA2B;IACzC,GAAG,EAAE,QAAQ,EAAE,IAAI;IACnB,MAAM,EAAE,GAAG;IACX,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,QAAQ,EAAE,IAAI;IACrB,KAAK,EAAE,QAAQ,EAAE,IAAI;CACtB,CAAC;AAEF,MAAM,eAAe,GAAG,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AAExD,MAAM,eAAe,GAAG,iBAAiB,CAAC,aAAa,CAAC,CAAC;AAsBzD,SAAS,aAAa,CAAC,IAAkB,EAAE,IAAY;IACrD,IAAI,IAAI,GAAsB,IAAI,CAAC;IACnC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,IAAI,IAAI,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC,EAAE,CAAC;YACrE,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC7E,IAAI,GAAG,GAAG,CAAC;YACb,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAyBD;;;GAGG;AACH,SAAS,mBAAmB,CAC1B,WAAqC,EACrC,UAAkC;IAElC,MAAM,QAAQ,GAAG,UAAU,EAAE,QAAQ,CAAC;IACtC,IAAI,CAAC,QAAQ,EAAE,kBAAkB;QAAE,OAAO,KAAK,CAAC;IAEhD,MAAM,OAAO,GASR,EAAE,CAAC;IAER,KAAK,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,WAAW,EAAE,CAAC;QAC7C,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YACpC,OAAO,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAClC,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,EAAE;iBAC3B,CAAC,CAAC;aACJ,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAC1C,OAAO,KAAK,CAAC,CAAC,oBAAoB;QACpC,CAAC;IACH,CAAC;IAED,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACtE,IAAI,QAAgB,CAAC;IACrB,IAAI,CAAC;QACH,UAAU,EAAE,WAAW,EAAE,EAAE,CAAC;QAC5B,QAAQ,GAAG,QAAQ,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAClD,CAAC;YAAS,CAAC;QACT,UAAU,EAAE,UAAU,EAAE,EAAE,CAAC;IAC7B,CAAC;IAED,IAAI,QAAQ,KAAK,aAAa,EAAE,CAAC;QAC/B,KAAK,CAAC,iCAAiC,QAAQ,eAAe,CAAC,CAAC;QAChE,OAAO,IAAI,CAAC;IACd,CAAC;IACD,KAAK,CACH,0CAA0C,aAAa,SAAS,QAAQ,uBAAuB,CAChG,CAAC;IACF,OAAO,KAAK,CAAC;AACf,CAAC;AAED,qEAAqE;AACrE,SAAS,kBAAkB,CACzB,EAAyB,EACzB,OAAe,EACf,OAAoB;IAEpB,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC;IACvC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC5C,KAAK,MAAM,GAAG,IAAI,iBAAiB,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,CAAC;QACjD,SAAS,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpC,OAAO,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAChC,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;YAC9C,MAAM,YAAY,GAAG,SAAS;gBAC5B,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,IAAI,IAAI,SAAS,CAAC,IAAI,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC,IAAI,IAAI;gBAChF,CAAC,CAAC,IAAI,CAAC;YACT,OAAO;gBACL,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI;gBACpB,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI;gBAC5B,YAAY;aACb,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,yCAAyC;IACzC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;IAChD,IAAI,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAC9C,MAAM,IAAI,GAAa,EAAE,CAAC;QAC1B,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;QAChE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,yEAAyE;AAEzE,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,EAAyB,EACzB,WAAqC,EACrC,QAAgB,EAChB,UAAuB;IAEvB,6CAA6C;IAC7C,IAAI,mBAAmB,CAAC,WAAW,EAAE,UAAU,CAAC;QAAE,OAAO;IAEzD,mBAAmB;IACnB,IAAI,UAAwD,CAAC;IAC7D,IAAI,CAAC;QACH,UAAU,GAAG,EAAE,CAAC,OAAO,CACrB,6GAA6G,CAC9G,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,KAAK,CAAC,qDAAqD,CAAC,CAAC;QAC7D,OAAO;IACT,CAAC;IAED,MAAM,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,IAAc,EAAE,EAAE;QAC3C,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;YACrB,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC;QACrF,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,WAAW,EAAE,CAAC;QAC7C,OAAO,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,EAAE,CAAC,OAAO,CAAC,CAAC;IACd,CAAC;IAED,KAAK,CAAC,mBAAmB,OAAO,CAAC,MAAM,eAAe,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,OAAO,CACd,QAAwB,EACxB,IAAkB,EAClB,OAAe,EACf,IAAc,EACd,SAA8B;IAE9B,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,KAAK,CAAC,0DAA0D,CAAC,CAAC;QAClE,OAAO;IACT,CAAC;IACD,MAAM,OAAO,GAAG,qBAAqB,CAAC,eAAe,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IACjF,MAAM,OAAO,GAAG,gBAAgB,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC,CAAC;IACpE,MAAM,SAAS,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,CAAa,CAAC;IAC3D,IAAI,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;AAC1B,CAAC;AAqCD,MAAM,UAAU,YAAY,CAC1B,OAA2B,EAC3B,YAAgC,EAChC,OAAqB,EAAE;IAcvB,MAAM,EAAE,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAC;IAC5C,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAEpD,IAAI,KAAK,GAAG,WAAW,CAAC;IACxB,MAAM,MAAM,GAAc,EAAE,CAAC;IAE7B,IAAI,OAAO,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC;QAC/B,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,GAAG,CAAC;QACrE,KAAK,IAAI,oBAAoB,CAAC;QAC9B,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC3B,CAAC;IAED,IAAI,IAAI,EAAE,CAAC;QACT,KAAK,IAAI,iBAAiB,CAAC;QAC3B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;IAED,CAAC;QACC,MAAM,EAAE,GAAG,qBAAqB,CAAC,IAAI,IAAI,EAAE,EAAE,QAAQ,CAAC,CAAC;QACvD,KAAK,IAAI,EAAE,CAAC,GAAG,CAAC;QAChB,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAED,IAAI,OAAO,EAAE,CAAC;QACZ,KAAK,IAAI;;;;yCAI4B,CAAC;IACxC,CAAC;IAED,MAAM,GAAG,GAAG;;;;;MAKR,KAAK;;GAER,CAAC;IAEF,IAAI,IAAmB,CAAC;IACxB,IAAI,CAAC;QACH,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAkB,CAAC;IACzD,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;IAED,MAAM,OAAO,GAAqB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACjD,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,MAAM,EAAE,CAAC,CAAC,cAAc;YACtB,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE;YACnE,CAAC,CAAC,IAAI;KACT,CAAC,CAAC,CAAC;IAEJ,MAAM,IAAI,GAAG;QACX,OAAO,EAAE,OAAO,IAAI,GAAG;QACvB,IAAI,EAAE,IAAI,IAAI,IAAI;QAClB,KAAK,EAAE,OAAO,CAAC,MAAM;QACrB,OAAO;KACR,CAAC;IAEF,OAAO,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,QAAQ,CACtB,OAA2B,EAC3B,YAAgC,EAChC,OAAqB,EAAE;IAEvB,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;IAEvD,IAAI,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC;QAAE,OAAO;IAEhD,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,OAAO,CAAC,CAAC,CAAC,cAAc,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QACxF,OAAO;IACT,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3D,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,KAAK,IAAI,CAAC,KAAK,aAAa,OAAO,CAAC,CAAC,CAAC,cAAc,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,SAAS,OAAO,CACvF,CAAC;IAEF,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QAC7B,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;QACvC,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,GAAG,UAAU,IAAI,CAAC,CAAC;IACrF,CAAC;IAED,IAAI,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC;QAC9B,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,WAAW,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,uBAAuB,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,KAAK,CACpK,CAAC;IACJ,CAAC;IACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../src/features/audit.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../src/features/audit.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAyB,eAAe,EAAE,MAAM,aAAa,CAAC;AAoI1E,UAAU,aAAa;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,SAAS,CACvB,MAAM,EAAE,MAAM,EACd,YAAY,CAAC,EAAE,MAAM,EACrB,IAAI,GAAE,aAAkB,GACvB;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,EAAE,CAAA;CAAE,CA6CxD"}
|
package/dist/features/audit.js
CHANGED
|
@@ -4,7 +4,9 @@ import { normalizeFileFilter } from '../db/query-builder.js';
|
|
|
4
4
|
import { bfsTransitiveCallers } from '../domain/analysis/impact.js';
|
|
5
5
|
import { explainData } from '../domain/queries.js';
|
|
6
6
|
import { loadConfig } from '../infrastructure/config.js';
|
|
7
|
+
import { debug } from '../infrastructure/logger.js';
|
|
7
8
|
import { isTestFile } from '../infrastructure/test-filter.js';
|
|
9
|
+
import { toErrorMessage } from '../shared/errors.js';
|
|
8
10
|
import { RULE_DEFS } from './manifesto.js';
|
|
9
11
|
const FUNCTION_RULES = RULE_DEFS.filter((d) => d.level === 'function');
|
|
10
12
|
function resolveThresholds(customDbPath, config) {
|
|
@@ -27,8 +29,8 @@ function resolveThresholds(customDbPath, config) {
|
|
|
27
29
|
}
|
|
28
30
|
return resolved;
|
|
29
31
|
}
|
|
30
|
-
catch {
|
|
31
|
-
|
|
32
|
+
catch (e) {
|
|
33
|
+
debug(`resolveThresholds: config loading failed, using defaults: ${toErrorMessage(e)}`);
|
|
32
34
|
const resolved = {};
|
|
33
35
|
for (const def of FUNCTION_RULES) {
|
|
34
36
|
resolved[def.name] = {
|
|
@@ -77,8 +79,8 @@ function readPhase44(db, nodeId) {
|
|
|
77
79
|
};
|
|
78
80
|
}
|
|
79
81
|
}
|
|
80
|
-
catch {
|
|
81
|
-
|
|
82
|
+
catch (e) {
|
|
83
|
+
debug(`readPhase44: columns may not exist yet: ${toErrorMessage(e)}`);
|
|
82
84
|
}
|
|
83
85
|
return { riskScore: null, complexityNotes: null, sideEffects: null };
|
|
84
86
|
}
|
|
@@ -248,8 +250,8 @@ function buildHealth(db, nodeId, thresholds) {
|
|
|
248
250
|
thresholdBreaches: checkBreaches(row, thresholds),
|
|
249
251
|
};
|
|
250
252
|
}
|
|
251
|
-
catch {
|
|
252
|
-
|
|
253
|
+
catch (e) {
|
|
254
|
+
debug(`readHealth: function_complexity table may not exist: ${toErrorMessage(e)}`);
|
|
253
255
|
return defaultHealth();
|
|
254
256
|
}
|
|
255
257
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audit.js","sourceRoot":"","sources":["../../src/features/audit.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"audit.js","sourceRoot":"","sources":["../../src/features/audit.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"branch-compare.d.ts","sourceRoot":"","sources":["../../src/features/branch-compare.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"branch-compare.d.ts","sourceRoot":"","sources":["../../src/features/branch-compare.ts"],"names":[],"mappings":"AA2EA,UAAU,UAAU;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,UAAU,aAAa;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACzE,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3E,OAAO,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9D,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC;CACvB;AA0OD,UAAU,iBAAiB;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,oBAAoB;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,KAAK,eAAe,GAAG,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG;IAAE,MAAM,CAAC,EAAE,UAAU,EAAE,CAAA;CAAE,CAAC;AAE1E,UAAU,mBAAmB;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,KAAK,CAAC,EAAE,eAAe,EAAE,CAAC;IAC1B,OAAO,CAAC,EAAE,eAAe,EAAE,CAAC;IAC5B,OAAO,CAAC,EAAE,aAAa,EAAE,CAAC;IAC1B,OAAO,CAAC,EAAE,oBAAoB,CAAC;CAChC;AAkCD,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,IAAI,GAAE,iBAAsB,GAC3B,OAAO,CAAC,mBAAmB,CAAC,CA4H9B;AAkDD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,mBAAmB,GAAG,MAAM,CA2CtE"}
|
|
@@ -8,6 +8,7 @@ import { kindIcon } from '../domain/queries.js';
|
|
|
8
8
|
import { debug } from '../infrastructure/logger.js';
|
|
9
9
|
import { getNative, isNativeAvailable } from '../infrastructure/native.js';
|
|
10
10
|
import { isTestFile } from '../infrastructure/test-filter.js';
|
|
11
|
+
import { toErrorMessage } from '../shared/errors.js';
|
|
11
12
|
// ─── Git Helpers ────────────────────────────────────────────────────────
|
|
12
13
|
function validateGitRef(repoRoot, ref) {
|
|
13
14
|
try {
|
|
@@ -18,7 +19,8 @@ function validateGitRef(repoRoot, ref) {
|
|
|
18
19
|
}).trim();
|
|
19
20
|
return sha;
|
|
20
21
|
}
|
|
21
|
-
catch {
|
|
22
|
+
catch (e) {
|
|
23
|
+
debug(`validateGitRef failed for "${ref}": ${toErrorMessage(e)}`);
|
|
22
24
|
return null;
|
|
23
25
|
}
|
|
24
26
|
}
|
|
@@ -47,12 +49,13 @@ function removeWorktree(repoRoot, dir) {
|
|
|
47
49
|
stdio: ['pipe', 'pipe', 'pipe'],
|
|
48
50
|
});
|
|
49
51
|
}
|
|
50
|
-
catch {
|
|
52
|
+
catch (e) {
|
|
53
|
+
debug(`removeWorktree: git worktree remove failed for ${dir}: ${toErrorMessage(e)}`);
|
|
51
54
|
try {
|
|
52
55
|
fs.rmSync(dir, { recursive: true, force: true });
|
|
53
56
|
}
|
|
54
|
-
catch {
|
|
55
|
-
|
|
57
|
+
catch (rmErr) {
|
|
58
|
+
debug(`removeWorktree: rmSync fallback failed for ${dir}: ${toErrorMessage(rmErr)}`);
|
|
56
59
|
}
|
|
57
60
|
try {
|
|
58
61
|
execFileSync('git', ['worktree', 'prune'], {
|
|
@@ -61,8 +64,8 @@ function removeWorktree(repoRoot, dir) {
|
|
|
61
64
|
stdio: ['pipe', 'pipe', 'pipe'],
|
|
62
65
|
});
|
|
63
66
|
}
|
|
64
|
-
catch {
|
|
65
|
-
|
|
67
|
+
catch (pruneErr) {
|
|
68
|
+
debug(`removeWorktree: git worktree prune failed: ${toErrorMessage(pruneErr)}`);
|
|
66
69
|
}
|
|
67
70
|
}
|
|
68
71
|
}
|
|
@@ -80,7 +83,7 @@ function loadSymbolsFromDb(dbPath, changedFiles, noTests) {
|
|
|
80
83
|
nativeDb = native.NativeDatabase.openReadonly(dbPath);
|
|
81
84
|
}
|
|
82
85
|
catch (e) {
|
|
83
|
-
debug(`loadSymbolsFromDb: native path failed: ${e
|
|
86
|
+
debug(`loadSymbolsFromDb: native path failed: ${toErrorMessage(e)}`);
|
|
84
87
|
}
|
|
85
88
|
}
|
|
86
89
|
try {
|
|
@@ -147,8 +150,8 @@ function loadSymbolsFromDb(dbPath, changedFiles, noTests) {
|
|
|
147
150
|
try {
|
|
148
151
|
nativeDb.close();
|
|
149
152
|
}
|
|
150
|
-
catch {
|
|
151
|
-
|
|
153
|
+
catch (e) {
|
|
154
|
+
debug(`loadSymbolsFromDb: nativeDb close failed: ${toErrorMessage(e)}`);
|
|
152
155
|
}
|
|
153
156
|
}
|
|
154
157
|
}
|
|
@@ -240,6 +243,19 @@ function compareSymbols(baseSymbols, targetSymbols) {
|
|
|
240
243
|
}
|
|
241
244
|
return { added, removed, changed };
|
|
242
245
|
}
|
|
246
|
+
function attachImpactToSymbols(symbols, dbPath, _baseSymbols, maxDepth, noTests) {
|
|
247
|
+
for (const sym of symbols) {
|
|
248
|
+
const symCallers = loadCallersFromDb(dbPath, sym.id ? [sym.id] : [], maxDepth, noTests);
|
|
249
|
+
sym.impact = symCallers;
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
function attachImpactToChanged(changed, dbPath, baseSymbols, maxDepth, noTests) {
|
|
253
|
+
for (const sym of changed) {
|
|
254
|
+
const baseSym = baseSymbols.get(makeSymbolKey(sym.kind, sym.file, sym.name));
|
|
255
|
+
const symCallers = loadCallersFromDb(dbPath, baseSym?.id ? [baseSym.id] : [], maxDepth, noTests);
|
|
256
|
+
sym.impact = symCallers;
|
|
257
|
+
}
|
|
258
|
+
}
|
|
243
259
|
export async function branchCompareData(baseRef, targetRef, opts = {}) {
|
|
244
260
|
const repoRoot = opts.repoRoot || process.cwd();
|
|
245
261
|
const maxDepth = opts.depth || 3;
|
|
@@ -252,7 +268,8 @@ export async function branchCompareData(baseRef, targetRef, opts = {}) {
|
|
|
252
268
|
stdio: ['pipe', 'pipe', 'pipe'],
|
|
253
269
|
});
|
|
254
270
|
}
|
|
255
|
-
catch {
|
|
271
|
+
catch (e) {
|
|
272
|
+
debug(`branchCompareData: git check failed: ${toErrorMessage(e)}`);
|
|
256
273
|
return { error: 'Not a git repository' };
|
|
257
274
|
}
|
|
258
275
|
const baseSha = validateGitRef(repoRoot, baseRef);
|
|
@@ -304,15 +321,8 @@ export async function branchCompareData(baseRef, targetRef, opts = {}) {
|
|
|
304
321
|
.filter((id) => Boolean(id));
|
|
305
322
|
const removedImpact = loadCallersFromDb(baseDbPath, removedIds, maxDepth, noTests);
|
|
306
323
|
const changedImpact = loadCallersFromDb(baseDbPath, changedIds, maxDepth, noTests);
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
sym.impact = symCallers;
|
|
310
|
-
}
|
|
311
|
-
for (const sym of changed) {
|
|
312
|
-
const baseSym = baseSymbols.get(makeSymbolKey(sym.kind, sym.file, sym.name));
|
|
313
|
-
const symCallers = loadCallersFromDb(baseDbPath, baseSym?.id ? [baseSym.id] : [], maxDepth, noTests);
|
|
314
|
-
sym.impact = symCallers;
|
|
315
|
-
}
|
|
324
|
+
attachImpactToSymbols(removed, baseDbPath, baseSymbols, maxDepth, noTests);
|
|
325
|
+
attachImpactToChanged(changed, baseDbPath, baseSymbols, maxDepth, noTests);
|
|
316
326
|
const allImpacted = new Set();
|
|
317
327
|
for (const c of removedImpact)
|
|
318
328
|
allImpacted.add(`${c.file}:${c.name}`);
|
|
@@ -348,7 +358,7 @@ export async function branchCompareData(baseRef, targetRef, opts = {}) {
|
|
|
348
358
|
};
|
|
349
359
|
}
|
|
350
360
|
catch (err) {
|
|
351
|
-
return { error: err
|
|
361
|
+
return { error: toErrorMessage(err) };
|
|
352
362
|
}
|
|
353
363
|
finally {
|
|
354
364
|
removeWorktree(repoRoot, baseDir);
|
|
@@ -356,61 +366,31 @@ export async function branchCompareData(baseRef, targetRef, opts = {}) {
|
|
|
356
366
|
try {
|
|
357
367
|
fs.rmSync(tmpBase, { recursive: true, force: true });
|
|
358
368
|
}
|
|
359
|
-
catch {
|
|
360
|
-
|
|
369
|
+
catch (cleanupErr) {
|
|
370
|
+
debug(`branchCompareData: temp cleanup failed: ${toErrorMessage(cleanupErr)}`);
|
|
361
371
|
}
|
|
362
372
|
}
|
|
363
373
|
}
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
return data.error;
|
|
368
|
-
if ((data.added?.length ?? 0) === 0 &&
|
|
369
|
-
(data.removed?.length ?? 0) === 0 &&
|
|
370
|
-
(data.changed?.length ?? 0) === 0) {
|
|
371
|
-
return 'flowchart TB\n none["No structural differences detected"]';
|
|
372
|
-
}
|
|
373
|
-
const lines = ['flowchart TB'];
|
|
374
|
-
let nodeCounter = 0;
|
|
375
|
-
const nodeIdMap = new Map();
|
|
376
|
-
function nodeId(key) {
|
|
377
|
-
if (!nodeIdMap.has(key)) {
|
|
378
|
-
nodeIdMap.set(key, `n${nodeCounter++}`);
|
|
379
|
-
}
|
|
380
|
-
return nodeIdMap.get(key);
|
|
381
|
-
}
|
|
382
|
-
if (data.added && data.added.length > 0) {
|
|
383
|
-
lines.push(' subgraph sg_added["Added"]');
|
|
384
|
-
for (const sym of data.added) {
|
|
385
|
-
const key = `added::${sym.kind}::${sym.file}::${sym.name}`;
|
|
386
|
-
const nid = nodeId(key);
|
|
387
|
-
lines.push(` ${nid}["[${kindIcon(sym.kind)}] ${sym.name}"]`);
|
|
388
|
-
}
|
|
389
|
-
lines.push(' end');
|
|
390
|
-
lines.push(' style sg_added fill:#e8f5e9,stroke:#4caf50');
|
|
374
|
+
function mermaidNodeId(state, key) {
|
|
375
|
+
if (!state.map.has(key)) {
|
|
376
|
+
state.map.set(key, `n${state.counter++}`);
|
|
391
377
|
}
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
if (data.changed && data.changed.length > 0) {
|
|
403
|
-
lines.push(' subgraph sg_changed["Changed"]');
|
|
404
|
-
for (const sym of data.changed) {
|
|
405
|
-
const key = `changed::${sym.kind}::${sym.file}::${sym.name}`;
|
|
406
|
-
const nid = nodeId(key);
|
|
407
|
-
lines.push(` ${nid}["[${kindIcon(sym.kind)}] ${sym.name}"]`);
|
|
408
|
-
}
|
|
409
|
-
lines.push(' end');
|
|
410
|
-
lines.push(' style sg_changed fill:#fff3e0,stroke:#ff9800');
|
|
378
|
+
return state.map.get(key);
|
|
379
|
+
}
|
|
380
|
+
function addMermaidSubgraph(lines, state, prefix, label, symbols, fillColor, strokeColor) {
|
|
381
|
+
if (symbols.length === 0)
|
|
382
|
+
return;
|
|
383
|
+
lines.push(` subgraph sg_${prefix}["${label}"]`);
|
|
384
|
+
for (const sym of symbols) {
|
|
385
|
+
const key = `${prefix}::${sym.kind}::${sym.file}::${sym.name}`;
|
|
386
|
+
const nid = mermaidNodeId(state, key);
|
|
387
|
+
lines.push(` ${nid}["[${kindIcon(sym.kind)}] ${sym.name}"]`);
|
|
411
388
|
}
|
|
389
|
+
lines.push(' end');
|
|
390
|
+
lines.push(` style sg_${prefix} fill:${fillColor},stroke:${strokeColor}`);
|
|
391
|
+
}
|
|
392
|
+
function collectImpactedCallers(impactSources) {
|
|
412
393
|
const allImpacted = new Map();
|
|
413
|
-
const impactSources = [...(data.removed || []), ...(data.changed || [])];
|
|
414
394
|
for (const sym of impactSources) {
|
|
415
395
|
if (!sym.impact)
|
|
416
396
|
continue;
|
|
@@ -420,10 +400,27 @@ export function branchCompareMermaid(data) {
|
|
|
420
400
|
allImpacted.set(key, c);
|
|
421
401
|
}
|
|
422
402
|
}
|
|
403
|
+
return allImpacted;
|
|
404
|
+
}
|
|
405
|
+
export function branchCompareMermaid(data) {
|
|
406
|
+
if (data.error)
|
|
407
|
+
return data.error;
|
|
408
|
+
if ((data.added?.length ?? 0) === 0 &&
|
|
409
|
+
(data.removed?.length ?? 0) === 0 &&
|
|
410
|
+
(data.changed?.length ?? 0) === 0) {
|
|
411
|
+
return 'flowchart TB\n none["No structural differences detected"]';
|
|
412
|
+
}
|
|
413
|
+
const lines = ['flowchart TB'];
|
|
414
|
+
const state = { counter: 0, map: new Map() };
|
|
415
|
+
addMermaidSubgraph(lines, state, 'added', 'Added', data.added || [], '#e8f5e9', '#4caf50');
|
|
416
|
+
addMermaidSubgraph(lines, state, 'removed', 'Removed', data.removed || [], '#ffebee', '#f44336');
|
|
417
|
+
addMermaidSubgraph(lines, state, 'changed', 'Changed', data.changed || [], '#fff3e0', '#ff9800');
|
|
418
|
+
const impactSources = [...(data.removed || []), ...(data.changed || [])];
|
|
419
|
+
const allImpacted = collectImpactedCallers(impactSources);
|
|
423
420
|
if (allImpacted.size > 0) {
|
|
424
421
|
lines.push(' subgraph sg_impact["Impacted Callers"]');
|
|
425
422
|
for (const [key, c] of allImpacted) {
|
|
426
|
-
const nid =
|
|
423
|
+
const nid = mermaidNodeId(state, key);
|
|
427
424
|
lines.push(` ${nid}["[${kindIcon(c.kind)}] ${c.name}"]`);
|
|
428
425
|
}
|
|
429
426
|
lines.push(' end');
|
|
@@ -436,8 +433,8 @@ export function branchCompareMermaid(data) {
|
|
|
436
433
|
const symKey = `${prefix}::${sym.kind}::${sym.file}::${sym.name}`;
|
|
437
434
|
for (const c of sym.impact) {
|
|
438
435
|
const callerKey = `impact::${c.kind}::${c.file}::${c.name}`;
|
|
439
|
-
if (
|
|
440
|
-
lines.push(` ${
|
|
436
|
+
if (state.map.has(symKey) && state.map.has(callerKey)) {
|
|
437
|
+
lines.push(` ${state.map.get(symKey)} -.-> ${state.map.get(callerKey)}`);
|
|
441
438
|
}
|
|
442
439
|
}
|
|
443
440
|
}
|