@optave/codegraph 3.8.0 → 3.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +13 -8
- package/dist/ast-analysis/engine.d.ts.map +1 -1
- package/dist/ast-analysis/engine.js +137 -86
- 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 +81 -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/branch-compare.d.ts.map +1 -1
- package/dist/cli/commands/branch-compare.js +4 -0
- package/dist/cli/commands/branch-compare.js.map +1 -1
- package/dist/cli/commands/diff-impact.d.ts.map +1 -1
- package/dist/cli/commands/diff-impact.js +2 -1
- package/dist/cli/commands/diff-impact.js.map +1 -1
- package/dist/cli/commands/info.d.ts.map +1 -1
- package/dist/cli/commands/info.js +3 -2
- package/dist/cli/commands/info.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 +16 -0
- package/dist/db/repository/base.d.ts.map +1 -1
- package/dist/db/repository/base.js +31 -0
- package/dist/db/repository/base.js.map +1 -1
- package/dist/db/repository/native-repository.d.ts +7 -1
- package/dist/db/repository/native-repository.d.ts.map +1 -1
- package/dist/db/repository/native-repository.js +100 -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 +4 -0
- package/dist/db/repository/sqlite-repository.d.ts.map +1 -1
- package/dist/db/repository/sqlite-repository.js +51 -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 +64 -59
- 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 +352 -107
- 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 +49 -18
- 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 +3 -4
- package/dist/domain/parser.d.ts.map +1 -1
- package/dist/domain/parser.js +141 -89
- 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 +23 -8
- 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 +65 -54
- 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 +12 -5
- package/dist/types.d.ts.map +1 -1
- package/grammars/tree-sitter-erlang.wasm +0 -0
- package/grammars/tree-sitter-gleam.wasm +0 -0
- package/package.json +9 -9
- package/src/ast-analysis/engine.ts +176 -104
- 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 +89 -40
- package/src/ast-analysis/visitors/dataflow-visitor.ts +87 -43
- package/src/cli/commands/branch-compare.ts +4 -0
- package/src/cli/commands/diff-impact.ts +2 -1
- package/src/cli/commands/info.ts +3 -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 +34 -0
- package/src/db/repository/native-repository.ts +104 -1
- package/src/db/repository/nodes.ts +13 -8
- package/src/db/repository/sqlite-repository.ts +55 -0
- package/src/domain/analysis/brief.ts +15 -25
- package/src/domain/analysis/context.ts +17 -10
- package/src/domain/analysis/dependencies.ts +77 -81
- 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 +409 -99
- package/src/domain/graph/builder/stages/build-edges.ts +45 -19
- 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 +143 -89
- package/src/domain/search/generator.ts +1 -1
- package/src/domain/search/models.ts +26 -7
- 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 +66 -54
- 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 +26 -5
|
@@ -6,10 +6,12 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import path from 'node:path';
|
|
8
8
|
import { performance } from 'node:perf_hooks';
|
|
9
|
-
import { closeDbPair, getBuildMeta, initSchema, MIGRATIONS, openDb } from '../../../db/index.js';
|
|
9
|
+
import { closeDbPair, getBuildMeta, initSchema, MIGRATIONS, openDb, setBuildMeta, } from '../../../db/index.js';
|
|
10
10
|
import { detectWorkspaces, loadConfig } from '../../../infrastructure/config.js';
|
|
11
|
-
import { info, warn } from '../../../infrastructure/logger.js';
|
|
11
|
+
import { debug, info, warn } from '../../../infrastructure/logger.js';
|
|
12
12
|
import { loadNative } from '../../../infrastructure/native.js';
|
|
13
|
+
import { semverCompare } from '../../../infrastructure/update-check.js';
|
|
14
|
+
import { toErrorMessage } from '../../../shared/errors.js';
|
|
13
15
|
import { CODEGRAPH_VERSION } from '../../../shared/version.js';
|
|
14
16
|
import { getActiveEngine } from '../../parser.js';
|
|
15
17
|
import { setWorkspaces } from '../resolve.js';
|
|
@@ -48,8 +50,8 @@ function initializeEngine(ctx) {
|
|
|
48
50
|
try {
|
|
49
51
|
ctx.nativeDb?.exec('PRAGMA wal_checkpoint(TRUNCATE)');
|
|
50
52
|
}
|
|
51
|
-
catch {
|
|
52
|
-
|
|
53
|
+
catch (e) {
|
|
54
|
+
debug(`resumeJsDb: WAL checkpoint failed (nativeDb may already be closed): ${toErrorMessage(e)}`);
|
|
53
55
|
}
|
|
54
56
|
}
|
|
55
57
|
: undefined,
|
|
@@ -109,7 +111,9 @@ function setupPipeline(ctx) {
|
|
|
109
111
|
// Use NativeDatabase for schema init when native engine is available (Phase 6.13).
|
|
110
112
|
// better-sqlite3 (ctx.db) is still always opened — needed for queries and stages
|
|
111
113
|
// that haven't been migrated to rusqlite yet.
|
|
112
|
-
|
|
114
|
+
// Skip native DB entirely when user explicitly requested --engine wasm.
|
|
115
|
+
const enginePref = ctx.opts.engine || 'auto';
|
|
116
|
+
const native = enginePref !== 'wasm' ? loadNative() : null;
|
|
113
117
|
if (native?.NativeDatabase) {
|
|
114
118
|
try {
|
|
115
119
|
ctx.nativeDb = native.NativeDatabase.openReadWrite(ctx.dbPath);
|
|
@@ -119,12 +123,12 @@ function setupPipeline(ctx) {
|
|
|
119
123
|
ctx.nativeDb.exec('PRAGMA wal_checkpoint(TRUNCATE)');
|
|
120
124
|
}
|
|
121
125
|
catch (err) {
|
|
122
|
-
warn(`NativeDatabase setup failed, falling back to JS: ${err
|
|
126
|
+
warn(`NativeDatabase setup failed, falling back to JS: ${toErrorMessage(err)}`);
|
|
123
127
|
try {
|
|
124
128
|
ctx.nativeDb?.close();
|
|
125
129
|
}
|
|
126
|
-
catch {
|
|
127
|
-
|
|
130
|
+
catch (e) {
|
|
131
|
+
debug(`setupNativeDb: close failed during fallback: ${toErrorMessage(e)}`);
|
|
128
132
|
}
|
|
129
133
|
ctx.nativeDb = undefined;
|
|
130
134
|
}
|
|
@@ -168,6 +172,61 @@ function formatTimingResult(ctx) {
|
|
|
168
172
|
},
|
|
169
173
|
};
|
|
170
174
|
}
|
|
175
|
+
// ── NativeDb lifecycle helpers ──────────────────────────────────────────
|
|
176
|
+
/** Checkpoint WAL through rusqlite and close the native connection. */
|
|
177
|
+
function closeNativeDb(ctx, label) {
|
|
178
|
+
if (!ctx.nativeDb)
|
|
179
|
+
return;
|
|
180
|
+
try {
|
|
181
|
+
ctx.nativeDb.exec('PRAGMA wal_checkpoint(TRUNCATE)');
|
|
182
|
+
}
|
|
183
|
+
catch (e) {
|
|
184
|
+
debug(`${label} WAL checkpoint failed: ${toErrorMessage(e)}`);
|
|
185
|
+
}
|
|
186
|
+
try {
|
|
187
|
+
ctx.nativeDb.close();
|
|
188
|
+
}
|
|
189
|
+
catch (e) {
|
|
190
|
+
debug(`${label} nativeDb close failed: ${toErrorMessage(e)}`);
|
|
191
|
+
}
|
|
192
|
+
ctx.nativeDb = undefined;
|
|
193
|
+
}
|
|
194
|
+
/** Try to reopen the native connection for a given pipeline phase. */
|
|
195
|
+
function reopenNativeDb(ctx, label) {
|
|
196
|
+
if ((ctx.opts.engine ?? 'auto') === 'wasm')
|
|
197
|
+
return;
|
|
198
|
+
const native = loadNative();
|
|
199
|
+
if (!native?.NativeDatabase)
|
|
200
|
+
return;
|
|
201
|
+
try {
|
|
202
|
+
ctx.nativeDb = native.NativeDatabase.openReadWrite(ctx.dbPath);
|
|
203
|
+
}
|
|
204
|
+
catch (e) {
|
|
205
|
+
debug(`reopen nativeDb for ${label} failed: ${toErrorMessage(e)}`);
|
|
206
|
+
ctx.nativeDb = undefined;
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
/** Close nativeDb and clear stale references in engineOpts. */
|
|
210
|
+
function suspendNativeDb(ctx, label) {
|
|
211
|
+
closeNativeDb(ctx, label);
|
|
212
|
+
if (ctx.engineOpts?.nativeDb) {
|
|
213
|
+
ctx.engineOpts.nativeDb = undefined;
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* After native writes, reopen the JS db connection to get a fresh page cache.
|
|
218
|
+
* Rusqlite WAL truncation invalidates better-sqlite3's internal WAL index,
|
|
219
|
+
* causing SQLITE_CORRUPT on the next read (#715, #736).
|
|
220
|
+
*/
|
|
221
|
+
function refreshJsDb(ctx) {
|
|
222
|
+
try {
|
|
223
|
+
ctx.db.close();
|
|
224
|
+
}
|
|
225
|
+
catch (e) {
|
|
226
|
+
debug(`refreshJsDb close failed: ${toErrorMessage(e)}`);
|
|
227
|
+
}
|
|
228
|
+
ctx.db = openDb(ctx.dbPath);
|
|
229
|
+
}
|
|
171
230
|
// ── Pipeline stages execution ───────────────────────────────────────────
|
|
172
231
|
async function runPipelineStages(ctx) {
|
|
173
232
|
// Prevent dual-connection WAL corruption during pipeline stages: when both
|
|
@@ -177,28 +236,7 @@ async function runPipelineStages(ctx) {
|
|
|
177
236
|
// that use suspendJsDb/resumeJsDb WAL checkpoint pattern (#696).
|
|
178
237
|
const hadNativeDb = !!ctx.nativeDb;
|
|
179
238
|
if (ctx.db && ctx.nativeDb) {
|
|
180
|
-
|
|
181
|
-
// needs to apply WAL frames written by a different SQLite library (#715, #717).
|
|
182
|
-
// Separate try/catch blocks ensure close() always runs even if checkpoint throws,
|
|
183
|
-
// preventing a live rusqlite connection from lingering until GC.
|
|
184
|
-
try {
|
|
185
|
-
ctx.nativeDb.exec('PRAGMA wal_checkpoint(TRUNCATE)');
|
|
186
|
-
}
|
|
187
|
-
catch {
|
|
188
|
-
/* ignore checkpoint errors */
|
|
189
|
-
}
|
|
190
|
-
try {
|
|
191
|
-
ctx.nativeDb.close();
|
|
192
|
-
}
|
|
193
|
-
catch {
|
|
194
|
-
/* ignore close errors */
|
|
195
|
-
}
|
|
196
|
-
ctx.nativeDb = undefined;
|
|
197
|
-
// Also clear stale reference in engineOpts to prevent stages from
|
|
198
|
-
// calling methods on the closed NativeDatabase.
|
|
199
|
-
if (ctx.engineOpts?.nativeDb) {
|
|
200
|
-
ctx.engineOpts.nativeDb = undefined;
|
|
201
|
-
}
|
|
239
|
+
suspendNativeDb(ctx, 'pre-collect');
|
|
202
240
|
}
|
|
203
241
|
await collectFiles(ctx);
|
|
204
242
|
await detectChanges(ctx);
|
|
@@ -209,46 +247,13 @@ async function runPipelineStages(ctx) {
|
|
|
209
247
|
// guard internally (same pattern as feature modules). Closed again before
|
|
210
248
|
// resolveImports/buildEdges which don't yet have the guard (#709).
|
|
211
249
|
if (hadNativeDb && ctx.engineName === 'native') {
|
|
212
|
-
|
|
213
|
-
if (native?.NativeDatabase) {
|
|
214
|
-
try {
|
|
215
|
-
ctx.nativeDb = native.NativeDatabase.openReadWrite(ctx.dbPath);
|
|
216
|
-
}
|
|
217
|
-
catch {
|
|
218
|
-
ctx.nativeDb = undefined;
|
|
219
|
-
}
|
|
220
|
-
}
|
|
250
|
+
reopenNativeDb(ctx, 'insertNodes');
|
|
221
251
|
}
|
|
222
252
|
await insertNodes(ctx);
|
|
223
253
|
// Close nativeDb after insertNodes — remaining pipeline stages use JS paths.
|
|
224
254
|
if (ctx.nativeDb && ctx.db) {
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
try {
|
|
228
|
-
ctx.nativeDb.exec('PRAGMA wal_checkpoint(TRUNCATE)');
|
|
229
|
-
}
|
|
230
|
-
catch {
|
|
231
|
-
/* ignore checkpoint errors */
|
|
232
|
-
}
|
|
233
|
-
try {
|
|
234
|
-
ctx.nativeDb.close();
|
|
235
|
-
}
|
|
236
|
-
catch {
|
|
237
|
-
/* ignore close errors */
|
|
238
|
-
}
|
|
239
|
-
ctx.nativeDb = undefined;
|
|
240
|
-
// Reopen better-sqlite3 connection to get a fresh page cache.
|
|
241
|
-
// After rusqlite truncates the WAL, better-sqlite3's internal WAL index
|
|
242
|
-
// (shared-memory mapping) may reference frames that no longer exist,
|
|
243
|
-
// causing SQLITE_CORRUPT on the next read. Closing and reopening
|
|
244
|
-
// forces a clean slate — the only reliable cross-library handoff (#715, #736).
|
|
245
|
-
try {
|
|
246
|
-
ctx.db.close();
|
|
247
|
-
}
|
|
248
|
-
catch {
|
|
249
|
-
/* ignore close errors */
|
|
250
|
-
}
|
|
251
|
-
ctx.db = openDb(ctx.dbPath);
|
|
255
|
+
closeNativeDb(ctx, 'post-insertNodes');
|
|
256
|
+
refreshJsDb(ctx);
|
|
252
257
|
}
|
|
253
258
|
await resolveImports(ctx);
|
|
254
259
|
await buildEdges(ctx);
|
|
@@ -256,42 +261,21 @@ async function runPipelineStages(ctx) {
|
|
|
256
261
|
// Reopen nativeDb for feature modules (ast, cfg, complexity, dataflow)
|
|
257
262
|
// which use suspendJsDb/resumeJsDb WAL checkpoint before native writes.
|
|
258
263
|
if (hadNativeDb) {
|
|
259
|
-
|
|
260
|
-
if (
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
}
|
|
266
|
-
}
|
|
267
|
-
catch {
|
|
268
|
-
ctx.nativeDb = undefined;
|
|
269
|
-
if (ctx.engineOpts) {
|
|
270
|
-
ctx.engineOpts.nativeDb = undefined;
|
|
271
|
-
}
|
|
272
|
-
}
|
|
264
|
+
reopenNativeDb(ctx, 'analyses');
|
|
265
|
+
if (ctx.nativeDb && ctx.engineOpts) {
|
|
266
|
+
ctx.engineOpts.nativeDb = ctx.nativeDb;
|
|
267
|
+
}
|
|
268
|
+
if (!ctx.nativeDb && ctx.engineOpts) {
|
|
269
|
+
ctx.engineOpts.nativeDb = undefined;
|
|
273
270
|
}
|
|
274
271
|
}
|
|
275
272
|
await runAnalyses(ctx);
|
|
276
|
-
//
|
|
277
|
-
// and
|
|
273
|
+
// Keep nativeDb open through finalize so persistBuildMetadata, advisory
|
|
274
|
+
// checks, and count queries use the native path. closeDbPair inside
|
|
275
|
+
// finalize handles both connections. Refresh the JS db so it has a
|
|
276
|
+
// valid page cache in case finalize falls back to JS paths (#751).
|
|
278
277
|
if (ctx.nativeDb) {
|
|
279
|
-
|
|
280
|
-
// needs to apply WAL frames written by a different SQLite library (#715, #717).
|
|
281
|
-
// Separate try/catch blocks ensure close() always runs even if checkpoint throws.
|
|
282
|
-
try {
|
|
283
|
-
ctx.nativeDb.exec('PRAGMA wal_checkpoint(TRUNCATE)');
|
|
284
|
-
}
|
|
285
|
-
catch {
|
|
286
|
-
/* ignore checkpoint errors */
|
|
287
|
-
}
|
|
288
|
-
try {
|
|
289
|
-
ctx.nativeDb.close();
|
|
290
|
-
}
|
|
291
|
-
catch {
|
|
292
|
-
/* ignore close errors */
|
|
293
|
-
}
|
|
294
|
-
ctx.nativeDb = undefined;
|
|
278
|
+
refreshJsDb(ctx);
|
|
295
279
|
}
|
|
296
280
|
await finalize(ctx);
|
|
297
281
|
}
|
|
@@ -312,21 +296,282 @@ export async function buildGraph(rootDir, opts = {}) {
|
|
|
312
296
|
// When available, run the entire build pipeline in Rust with zero
|
|
313
297
|
// napi crossings (eliminates WAL dual-connection dance). Falls back
|
|
314
298
|
// to the JS pipeline on failure or when native is unavailable.
|
|
315
|
-
|
|
299
|
+
//
|
|
300
|
+
// Native addon ≤3.8.0 has a path bug: file_symbols keys are absolute
|
|
301
|
+
// paths but known_files are relative, causing zero import/call edges.
|
|
302
|
+
// Native addon ≤3.8.1 has an incremental barrel bug: the Rust pipeline
|
|
303
|
+
// doesn't re-parse barrel files that are imported by changed files,
|
|
304
|
+
// causing missing barrel import edges and lost analysis data for
|
|
305
|
+
// reverse-dep files during incremental builds.
|
|
306
|
+
// Skip the orchestrator for affected versions (fixed in 3.9.0+).
|
|
307
|
+
const orchestratorBuggy = !!ctx.engineVersion && semverCompare(ctx.engineVersion, '3.8.1') <= 0;
|
|
308
|
+
const forceJs = process.env.CODEGRAPH_FORCE_JS_PIPELINE === '1' ||
|
|
309
|
+
ctx.forceFullRebuild ||
|
|
310
|
+
orchestratorBuggy ||
|
|
311
|
+
ctx.engineName !== 'native';
|
|
312
|
+
if (forceJs) {
|
|
313
|
+
const reason = process.env.CODEGRAPH_FORCE_JS_PIPELINE === '1'
|
|
314
|
+
? 'CODEGRAPH_FORCE_JS_PIPELINE=1'
|
|
315
|
+
: ctx.forceFullRebuild
|
|
316
|
+
? 'forceFullRebuild'
|
|
317
|
+
: orchestratorBuggy
|
|
318
|
+
? `buggy addon ${ctx.engineVersion}`
|
|
319
|
+
: `engine=${ctx.engineName}`;
|
|
320
|
+
debug(`Skipping native orchestrator: ${reason}`);
|
|
321
|
+
}
|
|
316
322
|
if (!forceJs && ctx.nativeDb?.buildGraph) {
|
|
317
323
|
try {
|
|
318
324
|
const resultJson = ctx.nativeDb.buildGraph(ctx.rootDir, JSON.stringify(ctx.config), JSON.stringify(ctx.aliases), JSON.stringify(opts));
|
|
319
325
|
const result = JSON.parse(resultJson);
|
|
320
326
|
if (result.earlyExit) {
|
|
327
|
+
info('No changes detected');
|
|
321
328
|
closeDbPair({ db: ctx.db, nativeDb: ctx.nativeDb });
|
|
322
329
|
return;
|
|
323
330
|
}
|
|
331
|
+
// Log incremental status to match JS pipeline output
|
|
332
|
+
const changed = result.changedCount ?? 0;
|
|
333
|
+
const removed = result.removedCount ?? 0;
|
|
334
|
+
if (!result.isFullBuild && (changed > 0 || removed > 0)) {
|
|
335
|
+
info(`Incremental: ${changed} changed, ${removed} removed`);
|
|
336
|
+
}
|
|
324
337
|
// Map Rust timing fields to the JS BuildResult format.
|
|
325
338
|
// Rust handles collect+detect+parse+insert+resolve+edges+structure+roles.
|
|
326
|
-
// AST/complexity/CFG/dataflow analyses are not yet ported to Rust.
|
|
327
339
|
const p = result.phases;
|
|
328
|
-
|
|
340
|
+
// Sync build_meta so JS-side version/engine checks work on next build.
|
|
341
|
+
// Note: the Rust orchestrator also writes codegraph_version (using
|
|
342
|
+
// CARGO_PKG_VERSION). We intentionally overwrite it here with the npm
|
|
343
|
+
// package version so that the JS-side "version changed → full rebuild"
|
|
344
|
+
// detection (line ~97) compares against the authoritative JS version.
|
|
345
|
+
// The two versions are kept in lockstep by the release process.
|
|
346
|
+
setBuildMeta(ctx.db, {
|
|
347
|
+
engine: ctx.engineName,
|
|
348
|
+
engine_version: ctx.engineVersion || '',
|
|
349
|
+
codegraph_version: CODEGRAPH_VERSION,
|
|
350
|
+
schema_version: String(ctx.schemaVersion),
|
|
351
|
+
built_at: new Date().toISOString(),
|
|
352
|
+
node_count: String(result.nodeCount ?? 0),
|
|
353
|
+
edge_count: String(result.edgeCount ?? 0),
|
|
354
|
+
});
|
|
329
355
|
info(`Native build orchestrator completed: ${result.nodeCount ?? 0} nodes, ${result.edgeCount ?? 0} edges, ${result.fileCount ?? 0} files`);
|
|
356
|
+
// ── Run structure + analysis phases after native orchestrator ──
|
|
357
|
+
// Structure (directory nodes, contains edges, metrics) is not fully
|
|
358
|
+
// ported to Rust — the native pipeline only handles the small
|
|
359
|
+
// incremental fast path (≤5 changed files). For full builds and
|
|
360
|
+
// larger incremental builds, run JS buildStructure() to fill the gap.
|
|
361
|
+
// Analysis phases (AST, complexity, CFG, dataflow) are also not yet
|
|
362
|
+
// ported; run via JS engine after reconstructing fileSymbols from DB.
|
|
363
|
+
let analysisTiming = { astMs: 0, complexityMs: 0, cfgMs: 0, dataflowMs: 0 };
|
|
364
|
+
let structurePatchMs = 0;
|
|
365
|
+
const needsAnalysis = opts.ast !== false ||
|
|
366
|
+
opts.complexity !== false ||
|
|
367
|
+
opts.cfg !== false ||
|
|
368
|
+
opts.dataflow !== false;
|
|
369
|
+
// The native fast path only runs structure for small incremental
|
|
370
|
+
// builds: !isFullBuild && changedCount <= 5 && existingFileCount > 20.
|
|
371
|
+
// For all other cases (full builds, large incrementals), we must
|
|
372
|
+
// run JS buildStructure() to create directory nodes + contains edges (#804).
|
|
373
|
+
// Always run JS structure — the native fast-path has an additional
|
|
374
|
+
// existingFileCount > 20 guard that isn't reflected in the result JSON,
|
|
375
|
+
// so we can't reliably detect whether native actually ran structure.
|
|
376
|
+
const nativeHandledStructure = false;
|
|
377
|
+
const needsStructure = !nativeHandledStructure;
|
|
378
|
+
if (needsAnalysis || needsStructure) {
|
|
379
|
+
// WAL handoff: checkpoint through rusqlite, close nativeDb,
|
|
380
|
+
// reopen better-sqlite3 with a fresh page cache (#715, #736).
|
|
381
|
+
try {
|
|
382
|
+
ctx.nativeDb.exec('PRAGMA wal_checkpoint(TRUNCATE)');
|
|
383
|
+
}
|
|
384
|
+
catch {
|
|
385
|
+
/* ignore checkpoint errors */
|
|
386
|
+
}
|
|
387
|
+
try {
|
|
388
|
+
ctx.nativeDb.close();
|
|
389
|
+
}
|
|
390
|
+
catch {
|
|
391
|
+
/* ignore close errors */
|
|
392
|
+
}
|
|
393
|
+
ctx.nativeDb = undefined;
|
|
394
|
+
try {
|
|
395
|
+
ctx.db.close();
|
|
396
|
+
}
|
|
397
|
+
catch {
|
|
398
|
+
/* ignore close errors */
|
|
399
|
+
}
|
|
400
|
+
ctx.db = null; // avoid closeDbPair operating on a stale handle
|
|
401
|
+
try {
|
|
402
|
+
ctx.db = openDb(ctx.dbPath);
|
|
403
|
+
}
|
|
404
|
+
catch (reopenErr) {
|
|
405
|
+
warn(`Failed to reopen DB after native build: ${reopenErr.message}`);
|
|
406
|
+
// Native build succeeded but we can't run post-processing — return partial result
|
|
407
|
+
return {
|
|
408
|
+
phases: {
|
|
409
|
+
setupMs: +((p.setupMs ?? 0) + (p.collectMs ?? 0) + (p.detectMs ?? 0)).toFixed(1),
|
|
410
|
+
parseMs: +(p.parseMs ?? 0).toFixed(1),
|
|
411
|
+
insertMs: +(p.insertMs ?? 0).toFixed(1),
|
|
412
|
+
resolveMs: +(p.resolveMs ?? 0).toFixed(1),
|
|
413
|
+
edgesMs: +(p.edgesMs ?? 0).toFixed(1),
|
|
414
|
+
structureMs: +(p.structureMs ?? 0).toFixed(1),
|
|
415
|
+
rolesMs: +(p.rolesMs ?? 0).toFixed(1),
|
|
416
|
+
astMs: 0,
|
|
417
|
+
complexityMs: 0,
|
|
418
|
+
cfgMs: 0,
|
|
419
|
+
dataflowMs: 0,
|
|
420
|
+
finalizeMs: +(p.finalizeMs ?? 0).toFixed(1),
|
|
421
|
+
},
|
|
422
|
+
};
|
|
423
|
+
}
|
|
424
|
+
// Reconstruct fileSymbols from DB. For structure we need ALL files
|
|
425
|
+
// (to build complete directory tree); for analysis we scope to
|
|
426
|
+
// changed files only. Load all files, then scope analysis later.
|
|
427
|
+
const allFileRows = ctx.db
|
|
428
|
+
.prepare('SELECT file, name, kind, line, end_line as endLine FROM nodes WHERE file IS NOT NULL ORDER BY file, line')
|
|
429
|
+
.all();
|
|
430
|
+
const allFileSymbols = new Map();
|
|
431
|
+
for (const row of allFileRows) {
|
|
432
|
+
let entry = allFileSymbols.get(row.file);
|
|
433
|
+
if (!entry) {
|
|
434
|
+
entry = {
|
|
435
|
+
definitions: [],
|
|
436
|
+
calls: [],
|
|
437
|
+
imports: [],
|
|
438
|
+
classes: [],
|
|
439
|
+
exports: [],
|
|
440
|
+
typeMap: new Map(),
|
|
441
|
+
};
|
|
442
|
+
allFileSymbols.set(row.file, entry);
|
|
443
|
+
}
|
|
444
|
+
entry.definitions.push({
|
|
445
|
+
name: row.name,
|
|
446
|
+
kind: row.kind,
|
|
447
|
+
line: row.line,
|
|
448
|
+
endLine: row.endLine ?? undefined,
|
|
449
|
+
});
|
|
450
|
+
}
|
|
451
|
+
// Populate import/export counts from DB edges so buildStructure
|
|
452
|
+
// computes correct import_count/export_count in node_metrics.
|
|
453
|
+
// The extractor arrays aren't persisted to the DB, so we derive
|
|
454
|
+
// counts from edge data instead (#804).
|
|
455
|
+
const importCountRows = ctx.db
|
|
456
|
+
.prepare(`SELECT n.file, COUNT(*) AS cnt
|
|
457
|
+
FROM edges e JOIN nodes n ON e.source_id = n.id
|
|
458
|
+
WHERE e.kind IN ('imports', 'imports-type', 'dynamic-imports')
|
|
459
|
+
AND n.file IS NOT NULL
|
|
460
|
+
GROUP BY n.file`)
|
|
461
|
+
.all();
|
|
462
|
+
for (const row of importCountRows) {
|
|
463
|
+
const entry = allFileSymbols.get(row.file);
|
|
464
|
+
if (entry)
|
|
465
|
+
entry.imports = new Array(row.cnt);
|
|
466
|
+
}
|
|
467
|
+
// Export count: definitions in this file that are imported by other files
|
|
468
|
+
const exportCountRows = ctx.db
|
|
469
|
+
.prepare(`SELECT n_tgt.file, COUNT(DISTINCT n_tgt.id) AS cnt
|
|
470
|
+
FROM edges e
|
|
471
|
+
JOIN nodes n_tgt ON e.target_id = n_tgt.id
|
|
472
|
+
JOIN nodes n_src ON e.source_id = n_src.id
|
|
473
|
+
WHERE e.kind IN ('imports', 'imports-type', 'reexports')
|
|
474
|
+
AND n_tgt.file IS NOT NULL
|
|
475
|
+
AND n_src.file != n_tgt.file
|
|
476
|
+
GROUP BY n_tgt.file`)
|
|
477
|
+
.all();
|
|
478
|
+
for (const row of exportCountRows) {
|
|
479
|
+
const entry = allFileSymbols.get(row.file);
|
|
480
|
+
if (entry)
|
|
481
|
+
entry.exports = new Array(row.cnt);
|
|
482
|
+
}
|
|
483
|
+
// ── Structure phase: directory nodes + contains edges (#804) ──
|
|
484
|
+
if (needsStructure) {
|
|
485
|
+
const structureStart = performance.now();
|
|
486
|
+
try {
|
|
487
|
+
// Derive directories from file paths
|
|
488
|
+
const directories = new Set();
|
|
489
|
+
for (const relPath of allFileSymbols.keys()) {
|
|
490
|
+
const parts = relPath.split('/');
|
|
491
|
+
for (let i = 1; i < parts.length; i++) {
|
|
492
|
+
directories.add(parts.slice(0, i).join('/'));
|
|
493
|
+
}
|
|
494
|
+
}
|
|
495
|
+
// Build line count map from DB metrics or file content
|
|
496
|
+
const lineCountMap = new Map();
|
|
497
|
+
const cachedLineCounts = ctx.db
|
|
498
|
+
.prepare(`SELECT n.name AS file, m.line_count
|
|
499
|
+
FROM node_metrics m JOIN nodes n ON m.node_id = n.id
|
|
500
|
+
WHERE n.kind = 'file'`)
|
|
501
|
+
.all();
|
|
502
|
+
for (const row of cachedLineCounts) {
|
|
503
|
+
lineCountMap.set(row.file, row.line_count);
|
|
504
|
+
}
|
|
505
|
+
// Native ran no structure at all — always do a full rebuild so
|
|
506
|
+
// every directory gets nodes + contains edges (#804).
|
|
507
|
+
const changedFilePaths = null;
|
|
508
|
+
const { buildStructure: buildStructureFn } = (await import('../../../features/structure.js'));
|
|
509
|
+
buildStructureFn(ctx.db, allFileSymbols, ctx.rootDir, lineCountMap, directories, changedFilePaths);
|
|
510
|
+
debug('Structure phase completed after native orchestrator');
|
|
511
|
+
}
|
|
512
|
+
catch (err) {
|
|
513
|
+
warn(`Structure phase failed after native build: ${toErrorMessage(err)}`);
|
|
514
|
+
}
|
|
515
|
+
structurePatchMs = performance.now() - structureStart;
|
|
516
|
+
}
|
|
517
|
+
// ── Analysis phase ──
|
|
518
|
+
if (needsAnalysis) {
|
|
519
|
+
// Scope analysis fileSymbols to changed files only
|
|
520
|
+
const changedFiles = result.changedFiles;
|
|
521
|
+
let analysisFileSymbols;
|
|
522
|
+
if (changedFiles && changedFiles.length > 0) {
|
|
523
|
+
analysisFileSymbols = new Map();
|
|
524
|
+
for (const f of changedFiles) {
|
|
525
|
+
const entry = allFileSymbols.get(f);
|
|
526
|
+
if (entry)
|
|
527
|
+
analysisFileSymbols.set(f, entry);
|
|
528
|
+
}
|
|
529
|
+
}
|
|
530
|
+
else {
|
|
531
|
+
analysisFileSymbols = allFileSymbols;
|
|
532
|
+
}
|
|
533
|
+
// Reopen nativeDb for analysis features (suspend/resume WAL pattern).
|
|
534
|
+
const native = loadNative();
|
|
535
|
+
if (native?.NativeDatabase) {
|
|
536
|
+
try {
|
|
537
|
+
ctx.nativeDb = native.NativeDatabase.openReadWrite(ctx.dbPath);
|
|
538
|
+
if (ctx.engineOpts)
|
|
539
|
+
ctx.engineOpts.nativeDb = ctx.nativeDb;
|
|
540
|
+
}
|
|
541
|
+
catch {
|
|
542
|
+
ctx.nativeDb = undefined;
|
|
543
|
+
if (ctx.engineOpts)
|
|
544
|
+
ctx.engineOpts.nativeDb = undefined;
|
|
545
|
+
}
|
|
546
|
+
}
|
|
547
|
+
try {
|
|
548
|
+
const { runAnalyses: runAnalysesFn } = await import('../../../ast-analysis/engine.js');
|
|
549
|
+
analysisTiming = await runAnalysesFn(ctx.db, analysisFileSymbols, ctx.rootDir, opts, ctx.engineOpts);
|
|
550
|
+
}
|
|
551
|
+
catch (err) {
|
|
552
|
+
warn(`Analysis phases failed after native build: ${toErrorMessage(err)}`);
|
|
553
|
+
}
|
|
554
|
+
// Close nativeDb after analyses
|
|
555
|
+
if (ctx.nativeDb) {
|
|
556
|
+
try {
|
|
557
|
+
ctx.nativeDb.exec('PRAGMA wal_checkpoint(TRUNCATE)');
|
|
558
|
+
}
|
|
559
|
+
catch {
|
|
560
|
+
/* ignore checkpoint errors */
|
|
561
|
+
}
|
|
562
|
+
try {
|
|
563
|
+
ctx.nativeDb.close();
|
|
564
|
+
}
|
|
565
|
+
catch {
|
|
566
|
+
/* ignore close errors */
|
|
567
|
+
}
|
|
568
|
+
ctx.nativeDb = undefined;
|
|
569
|
+
if (ctx.engineOpts)
|
|
570
|
+
ctx.engineOpts.nativeDb = undefined;
|
|
571
|
+
}
|
|
572
|
+
}
|
|
573
|
+
}
|
|
574
|
+
closeDbPair({ db: ctx.db, nativeDb: ctx.nativeDb });
|
|
330
575
|
return {
|
|
331
576
|
phases: {
|
|
332
577
|
setupMs: +((p.setupMs ?? 0) + (p.collectMs ?? 0) + (p.detectMs ?? 0)).toFixed(1),
|
|
@@ -334,18 +579,18 @@ export async function buildGraph(rootDir, opts = {}) {
|
|
|
334
579
|
insertMs: +(p.insertMs ?? 0).toFixed(1),
|
|
335
580
|
resolveMs: +(p.resolveMs ?? 0).toFixed(1),
|
|
336
581
|
edgesMs: +(p.edgesMs ?? 0).toFixed(1),
|
|
337
|
-
structureMs: +(p.structureMs ?? 0).toFixed(1),
|
|
582
|
+
structureMs: +((p.structureMs ?? 0) + structurePatchMs).toFixed(1),
|
|
338
583
|
rolesMs: +(p.rolesMs ?? 0).toFixed(1),
|
|
339
|
-
astMs: 0,
|
|
340
|
-
complexityMs: 0,
|
|
341
|
-
cfgMs: 0,
|
|
342
|
-
dataflowMs: 0,
|
|
584
|
+
astMs: +(analysisTiming.astMs ?? 0).toFixed(1),
|
|
585
|
+
complexityMs: +(analysisTiming.complexityMs ?? 0).toFixed(1),
|
|
586
|
+
cfgMs: +(analysisTiming.cfgMs ?? 0).toFixed(1),
|
|
587
|
+
dataflowMs: +(analysisTiming.dataflowMs ?? 0).toFixed(1),
|
|
343
588
|
finalizeMs: +(p.finalizeMs ?? 0).toFixed(1),
|
|
344
589
|
},
|
|
345
590
|
};
|
|
346
591
|
}
|
|
347
592
|
catch (err) {
|
|
348
|
-
warn(`Native build orchestrator failed, falling back to JS pipeline: ${err
|
|
593
|
+
warn(`Native build orchestrator failed, falling back to JS pipeline: ${toErrorMessage(err)}`);
|
|
349
594
|
// Fall through to JS pipeline
|
|
350
595
|
}
|
|
351
596
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../../../src/domain/graph/builder/pipeline.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACjG,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AACjF,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,mCAAmC,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE/D,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,kBAAkB;AAClB,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD,2EAA2E;AAE3E,SAAS,gBAAgB,CAAC,GAAoB;IAC5C,GAAG,CAAC,UAAU,GAAG;QACf,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,MAAM;QACjC,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK;QACrC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,KAAK;QAC3B,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,uEAAuE;QACvE,qEAAqE;QACrE,yEAAyE;QACzE,gEAAgE;QAChE,kEAAkE;QAClE,yEAAyE;QACzE,WAAW,EAAE,GAAG,CAAC,QAAQ;YACvB,CAAC,CAAC,GAAG,EAAE;gBACH,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAC;YAC5C,CAAC;YACH,CAAC,CAAC,SAAS;QACb,UAAU,EAAE,GAAG,CAAC,QAAQ;YACtB,CAAC,CAAC,GAAG,EAAE;gBACH,IAAI,CAAC;oBACH,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,iCAAiC,CAAC,CAAC;gBACxD,CAAC;gBAAC,MAAM,CAAC;oBACP,6CAA6C;gBAC/C,CAAC;YACH,CAAC;YACH,CAAC,CAAC,SAAS;KACd,CAAC;IACF,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACrF,GAAG,CAAC,UAAU,GAAG,UAA+B,CAAC;IACjD,GAAG,CAAC,aAAa,GAAG,aAAa,CAAC;IAClC,IAAI,CAAC,SAAS,UAAU,UAAU,aAAa,CAAC,CAAC,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACnF,CAAC;AAED,SAAS,yBAAyB,CAAC,GAAoB;IACrD,MAAM,aAAa,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAoC,CAAC;IAC3F,GAAG,CAAC,aAAa,GAAG,aAAa,EAAE,OAAO,IAAI,CAAC,CAAC;IAChD,GAAG,CAAC,gBAAgB,GAAG,KAAK,CAAC;IAC7B,IAAI,CAAC,GAAG,CAAC,WAAW;QAAE,OAAO;IAE7B,iFAAiF;IACjF,+EAA+E;IAC/E,MAAM,WAAW,GAAG,GAAG,CAAC,UAAU,KAAK,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClE,MAAM,IAAI,GAAG,CAAC,GAAW,EAAiB,EAAE,CAC1C,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,QAAS,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IAE5E,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;IAClC,IAAI,UAAU,IAAI,UAAU,KAAK,GAAG,CAAC,UAAU,EAAE,CAAC;QAChD,IAAI,CAAC,mBAAmB,UAAU,MAAM,GAAG,CAAC,UAAU,+BAA+B,CAAC,CAAC;QACvF,GAAG,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAC9B,CAAC;IACD,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC1C,IAAI,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC,aAAa,EAAE,CAAC;QAC3D,IAAI,CACF,2BAA2B,UAAU,MAAM,GAAG,CAAC,aAAa,+BAA+B,CAC5F,CAAC;QACF,GAAG,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAC9B,CAAC;IACD,MAAM,WAAW,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAC9C,IAAI,WAAW,IAAI,WAAW,KAAK,iBAAiB,EAAE,CAAC;QACrD,IAAI,CACF,8BAA8B,WAAW,MAAM,iBAAiB,+BAA+B,CAChG,CAAC;QACF,GAAG,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAC9B,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,GAAoB;IACvC,GAAG,CAAC,OAAO,GAAG,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC3C,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACvB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;YAC9D,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,IAAI,CAAC,qBAAqB,GAAG,2BAA2B,OAAO,KAAK,aAAa,CAAC,CAAC;gBACnF,SAAS;YACX,CAAC;YACD,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;YACpD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAChD,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC;QACrF,CAAC;IACH,CAAC;IACD,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrE,IAAI,CACF,gCAAgC,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,gBAAgB,CACxH,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,GAAoB;IACzC,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACxC,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;IAC9D,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAE5B,mFAAmF;IACnF,iFAAiF;IACjF,8CAA8C;IAC9C,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,IAAI,MAAM,EAAE,cAAc,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,GAAG,CAAC,QAAQ,GAAG,MAAM,CAAC,cAAc,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC/D,GAAG,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;YAC1B,oEAAoE;YACpE,iDAAiD;YACjD,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QACvD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,oDAAqD,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YACnF,IAAI,CAAC;gBACH,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC;YACxB,CAAC;YAAC,MAAM,CAAC;gBACP,yBAAyB;YAC3B,CAAC;YACD,GAAG,CAAC,QAAQ,GAAG,SAAS,CAAC;QAC3B,CAAC;QACD,+DAA+D;QAC/D,uEAAuE;QACvE,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACrB,CAAC;SAAM,CAAC;QACN,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACrB,CAAC;IAED,GAAG,CAAC,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACrC,GAAG,CAAC,WAAW;QACb,GAAG,CAAC,IAAI,CAAC,WAAW,KAAK,KAAK,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,KAAK,KAAK,CAAC;IAE/F,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACtB,yBAAyB,CAAC,GAAG,CAAC,CAAC;IAC/B,WAAW,CAAC,GAAG,CAAC,CAAC;IAEjB,gCAAgC;IAChC,MAAM,UAAU,GAAG,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACjD,IAAI,UAAU,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QACxB,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QACvC,IAAI,CAAC,YAAY,UAAU,CAAC,IAAI,qBAAqB,CAAC,CAAC;IACzD,CAAC;IAED,GAAG,CAAC,MAAM,CAAC,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,UAAU,CAAC;AAC1D,CAAC;AAED,SAAS,kBAAkB,CAAC,GAAoB;IAC9C,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC;IACrB,OAAO;QACL,MAAM,EAAE;YACN,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YACrC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YACrC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YACzC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YACrC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YAC7C,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YACrC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YACjC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YAC/C,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YACjC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YAC3C,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;SAC5C;KACF,CAAC;AACJ,CAAC;AAED,2EAA2E;AAE3E,KAAK,UAAU,iBAAiB,CAAC,GAAoB;IACnD,2EAA2E;IAC3E,2EAA2E;IAC3E,wEAAwE;IACxE,yEAAyE;IACzE,iEAAiE;IACjE,MAAM,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC;IACnC,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC3B,yEAAyE;QACzE,gFAAgF;QAChF,kFAAkF;QAClF,iEAAiE;QACjE,IAAI,CAAC;YACH,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QACvD,CAAC;QAAC,MAAM,CAAC;YACP,8BAA8B;QAChC,CAAC;QACD,IAAI,CAAC;YACH,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACvB,CAAC;QAAC,MAAM,CAAC;YACP,yBAAyB;QAC3B,CAAC;QACD,GAAG,CAAC,QAAQ,GAAG,SAAS,CAAC;QACzB,kEAAkE;QAClE,gDAAgD;QAChD,IAAI,GAAG,CAAC,UAAU,EAAE,QAAQ,EAAE,CAAC;YAC7B,GAAG,CAAC,UAAU,CAAC,QAAQ,GAAG,SAAS,CAAC;QACtC,CAAC;IACH,CAAC;IAED,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC;IACxB,MAAM,aAAa,CAAC,GAAG,CAAC,CAAC;IAEzB,IAAI,GAAG,CAAC,SAAS;QAAE,OAAO;IAE1B,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC;IAEtB,2EAA2E;IAC3E,0EAA0E;IAC1E,mEAAmE;IACnE,IAAI,WAAW,IAAI,GAAG,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;QAC/C,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;QAC5B,IAAI,MAAM,EAAE,cAAc,EAAE,CAAC;YAC3B,IAAI,CAAC;gBACH,GAAG,CAAC,QAAQ,GAAG,MAAM,CAAC,cAAc,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACjE,CAAC;YAAC,MAAM,CAAC;gBACP,GAAG,CAAC,QAAQ,GAAG,SAAS,CAAC;YAC3B,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,WAAW,CAAC,GAAG,CAAC,CAAC;IAEvB,6EAA6E;IAC7E,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;QAC3B,yEAAyE;QACzE,gFAAgF;QAChF,IAAI,CAAC;YACH,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QACvD,CAAC;QAAC,MAAM,CAAC;YACP,8BAA8B;QAChC,CAAC;QACD,IAAI,CAAC;YACH,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACvB,CAAC;QAAC,MAAM,CAAC;YACP,yBAAyB;QAC3B,CAAC;QACD,GAAG,CAAC,QAAQ,GAAG,SAAS,CAAC;QACzB,8DAA8D;QAC9D,wEAAwE;QACxE,qEAAqE;QACrE,iEAAiE;QACjE,+EAA+E;QAC/E,IAAI,CAAC;YACH,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;QACjB,CAAC;QAAC,MAAM,CAAC;YACP,yBAAyB;QAC3B,CAAC;QACD,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;IAED,MAAM,cAAc,CAAC,GAAG,CAAC,CAAC;IAC1B,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC;IACtB,MAAM,cAAc,CAAC,GAAG,CAAC,CAAC;IAE1B,uEAAuE;IACvE,wEAAwE;IACxE,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;QAC5B,IAAI,MAAM,EAAE,cAAc,EAAE,CAAC;YAC3B,IAAI,CAAC;gBACH,GAAG,CAAC,QAAQ,GAAG,MAAM,CAAC,cAAc,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAC/D,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;oBACnB,GAAG,CAAC,UAAU,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;gBACzC,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,GAAG,CAAC,QAAQ,GAAG,SAAS,CAAC;gBACzB,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;oBACnB,GAAG,CAAC,UAAU,CAAC,QAAQ,GAAG,SAAS,CAAC;gBACtC,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,WAAW,CAAC,GAAG,CAAC,CAAC;IAEvB,0EAA0E;IAC1E,2EAA2E;IAC3E,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;QACjB,yEAAyE;QACzE,gFAAgF;QAChF,kFAAkF;QAClF,IAAI,CAAC;YACH,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QACvD,CAAC;QAAC,MAAM,CAAC;YACP,8BAA8B;QAChC,CAAC;QACD,IAAI,CAAC;YACH,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACvB,CAAC;QAAC,MAAM,CAAC;YACP,yBAAyB;QAC3B,CAAC;QACD,GAAG,CAAC,QAAQ,GAAG,SAAS,CAAC;IAC3B,CAAC;IAED,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAC;AACtB,CAAC;AAED,2EAA2E;AAE3E;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,OAAe,EACf,OAAuB,EAAE;IAEzB,MAAM,GAAG,GAAG,IAAI,eAAe,EAAE,CAAC;IAClC,GAAG,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IACnC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;IAChB,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC;IAEtB,IAAI,CAAC;QACH,aAAa,CAAC,GAAG,CAAC,CAAC;QAEnB,qEAAqE;QACrE,kEAAkE;QAClE,oEAAoE;QACpE,+DAA+D;QAC/D,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,2BAA2B,KAAK,GAAG,CAAC;QAChE,IAAI,CAAC,OAAO,IAAI,GAAG,CAAC,QAAQ,EAAE,UAAU,EAAE,CAAC;YACzC,IAAI,CAAC;gBACH,MAAM,UAAU,GAAG,GAAG,CAAC,QAAQ,CAAC,UAAU,CACxC,GAAG,CAAC,OAAO,EACX,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,EAC1B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAC3B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CACrB,CAAC;gBACF,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAMnC,CAAC;gBAEF,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;oBACrB,WAAW,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;oBACpD,OAAO;gBACT,CAAC;gBAED,uDAAuD;gBACvD,0EAA0E;gBAC1E,mEAAmE;gBACnE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;gBACxB,WAAW,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACpD,IAAI,CACF,wCAAwC,MAAM,CAAC,SAAS,IAAI,CAAC,WAAW,MAAM,CAAC,SAAS,IAAI,CAAC,WAAW,MAAM,CAAC,SAAS,IAAI,CAAC,QAAQ,CACtI,CAAC;gBACF,OAAO;oBACL,MAAM,EAAE;wBACN,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;wBAChF,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;wBACrC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;wBACvC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;wBACzC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;wBACrC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;wBAC7C,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;wBACrC,KAAK,EAAE,CAAC;wBACR,YAAY,EAAE,CAAC;wBACf,KAAK,EAAE,CAAC;wBACR,UAAU,EAAE,CAAC;wBACb,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;qBAC5C;iBACF,CAAC;YACJ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CACF,kEAAmE,GAAa,CAAC,OAAO,EAAE,CAC3F,CAAC;gBACF,8BAA8B;YAChC,CAAC;QACH,CAAC;QAED,MAAM,iBAAiB,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;YAC7B,WAAW,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;QACtD,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;IAED,IAAI,GAAG,CAAC,SAAS;QAAE,OAAO;IAE1B,OAAO,kBAAkB,CAAC,GAAG,CAAC,CAAC;AACjC,CAAC"}
|
|
1
|
+
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../../../src/domain/graph/builder/pipeline.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-edges.d.ts","sourceRoot":"","sources":["../../../../../src/domain/graph/builder/stages/build-edges.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"build-edges.d.ts","sourceRoot":"","sources":["../../../../../src/domain/graph/builder/stages/build-edges.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAmsBrD,wBAAsB,UAAU,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CA0FpE"}
|