@optave/codegraph 3.11.0 → 3.11.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 +38 -31
- package/dist/ast-analysis/engine.d.ts.map +1 -1
- package/dist/ast-analysis/engine.js +91 -60
- package/dist/ast-analysis/engine.js.map +1 -1
- package/dist/ast-analysis/visitor-utils.d.ts +3 -0
- package/dist/ast-analysis/visitor-utils.d.ts.map +1 -1
- package/dist/ast-analysis/visitor-utils.js +83 -49
- package/dist/ast-analysis/visitor-utils.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 +78 -62
- package/dist/ast-analysis/visitors/ast-store-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 +61 -42
- package/dist/ast-analysis/visitors/dataflow-visitor.js.map +1 -1
- package/dist/cli/commands/embed.d.ts.map +1 -1
- package/dist/cli/commands/embed.js +49 -4
- package/dist/cli/commands/embed.js.map +1 -1
- package/dist/domain/analysis/dependencies.d.ts.map +1 -1
- package/dist/domain/analysis/dependencies.js +106 -80
- package/dist/domain/analysis/dependencies.js.map +1 -1
- package/dist/domain/analysis/fn-impact.d.ts.map +1 -1
- package/dist/domain/analysis/fn-impact.js +77 -52
- package/dist/domain/analysis/fn-impact.js.map +1 -1
- package/dist/domain/analysis/module-map.d.ts.map +1 -1
- package/dist/domain/analysis/module-map.js +132 -121
- package/dist/domain/analysis/module-map.js.map +1 -1
- package/dist/domain/graph/builder/helpers.d.ts +4 -4
- package/dist/domain/graph/builder/helpers.d.ts.map +1 -1
- package/dist/domain/graph/builder/helpers.js +47 -33
- package/dist/domain/graph/builder/helpers.js.map +1 -1
- package/dist/domain/graph/builder/incremental.d.ts +6 -0
- package/dist/domain/graph/builder/incremental.d.ts.map +1 -1
- package/dist/domain/graph/builder/incremental.js +142 -76
- package/dist/domain/graph/builder/incremental.js.map +1 -1
- package/dist/domain/graph/builder/pipeline.d.ts +1 -44
- package/dist/domain/graph/builder/pipeline.d.ts.map +1 -1
- package/dist/domain/graph/builder/pipeline.js +10 -766
- 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 +133 -96
- package/dist/domain/graph/builder/stages/build-edges.js.map +1 -1
- package/dist/domain/graph/builder/stages/build-structure.d.ts.map +1 -1
- package/dist/domain/graph/builder/stages/build-structure.js +82 -65
- package/dist/domain/graph/builder/stages/build-structure.js.map +1 -1
- package/dist/domain/graph/builder/stages/detect-changes.d.ts.map +1 -1
- package/dist/domain/graph/builder/stages/detect-changes.js +84 -56
- package/dist/domain/graph/builder/stages/detect-changes.js.map +1 -1
- package/dist/domain/graph/builder/stages/finalize.d.ts.map +1 -1
- package/dist/domain/graph/builder/stages/finalize.js +60 -51
- package/dist/domain/graph/builder/stages/finalize.js.map +1 -1
- package/dist/domain/graph/builder/stages/insert-nodes.d.ts +8 -6
- package/dist/domain/graph/builder/stages/insert-nodes.d.ts.map +1 -1
- package/dist/domain/graph/builder/stages/insert-nodes.js +107 -122
- package/dist/domain/graph/builder/stages/insert-nodes.js.map +1 -1
- package/dist/domain/graph/builder/stages/native-db-lifecycle.d.ts +14 -0
- package/dist/domain/graph/builder/stages/native-db-lifecycle.d.ts.map +1 -0
- package/dist/domain/graph/builder/stages/native-db-lifecycle.js +77 -0
- package/dist/domain/graph/builder/stages/native-db-lifecycle.js.map +1 -0
- package/dist/domain/graph/builder/stages/native-orchestrator.d.ts +62 -0
- package/dist/domain/graph/builder/stages/native-orchestrator.d.ts.map +1 -0
- package/dist/domain/graph/builder/stages/native-orchestrator.js +747 -0
- package/dist/domain/graph/builder/stages/native-orchestrator.js.map +1 -0
- package/dist/domain/graph/cycles.d.ts +6 -4
- package/dist/domain/graph/cycles.d.ts.map +1 -1
- package/dist/domain/graph/cycles.js +50 -55
- package/dist/domain/graph/cycles.js.map +1 -1
- package/dist/domain/graph/journal.d.ts.map +1 -1
- package/dist/domain/graph/journal.js +89 -70
- package/dist/domain/graph/journal.js.map +1 -1
- package/dist/domain/graph/watcher.d.ts.map +1 -1
- package/dist/domain/graph/watcher.js +5 -2
- package/dist/domain/graph/watcher.js.map +1 -1
- package/dist/domain/parser.d.ts +12 -23
- package/dist/domain/parser.d.ts.map +1 -1
- package/dist/domain/parser.js +126 -79
- package/dist/domain/parser.js.map +1 -1
- package/dist/domain/search/generator.d.ts +3 -1
- package/dist/domain/search/generator.d.ts.map +1 -1
- package/dist/domain/search/generator.js +68 -45
- package/dist/domain/search/generator.js.map +1 -1
- package/dist/domain/search/models.d.ts +2 -0
- package/dist/domain/search/models.d.ts.map +1 -1
- package/dist/domain/search/models.js +37 -3
- 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 +49 -40
- package/dist/domain/search/search/hybrid.js.map +1 -1
- package/dist/domain/search/search/semantic.d.ts.map +1 -1
- package/dist/domain/search/search/semantic.js +69 -49
- package/dist/domain/search/search/semantic.js.map +1 -1
- package/dist/domain/wasm-worker-entry.js +201 -136
- package/dist/domain/wasm-worker-entry.js.map +1 -1
- package/dist/extractors/elixir.js +95 -71
- package/dist/extractors/elixir.js.map +1 -1
- package/dist/extractors/gleam.d.ts.map +1 -1
- package/dist/extractors/gleam.js +23 -31
- package/dist/extractors/gleam.js.map +1 -1
- package/dist/extractors/helpers.d.ts +79 -1
- package/dist/extractors/helpers.d.ts.map +1 -1
- package/dist/extractors/helpers.js +137 -0
- package/dist/extractors/helpers.js.map +1 -1
- package/dist/extractors/java.d.ts.map +1 -1
- package/dist/extractors/java.js +37 -49
- package/dist/extractors/java.js.map +1 -1
- package/dist/extractors/javascript.d.ts.map +1 -1
- package/dist/extractors/javascript.js +44 -44
- package/dist/extractors/javascript.js.map +1 -1
- package/dist/extractors/julia.js +27 -34
- package/dist/extractors/julia.js.map +1 -1
- package/dist/extractors/r.d.ts.map +1 -1
- package/dist/extractors/r.js +33 -58
- package/dist/extractors/r.js.map +1 -1
- package/dist/extractors/solidity.d.ts.map +1 -1
- package/dist/extractors/solidity.js +38 -61
- package/dist/extractors/solidity.js.map +1 -1
- package/dist/features/boundaries.d.ts.map +1 -1
- package/dist/features/boundaries.js +49 -39
- package/dist/features/boundaries.js.map +1 -1
- package/dist/features/cfg.d.ts.map +1 -1
- package/dist/features/cfg.js +90 -63
- package/dist/features/cfg.js.map +1 -1
- package/dist/features/check.d.ts.map +1 -1
- package/dist/features/check.js +43 -34
- package/dist/features/check.js.map +1 -1
- package/dist/features/cochange.d.ts.map +1 -1
- package/dist/features/cochange.js +68 -56
- package/dist/features/cochange.js.map +1 -1
- package/dist/features/complexity.d.ts.map +1 -1
- package/dist/features/complexity.js +105 -75
- package/dist/features/complexity.js.map +1 -1
- package/dist/features/dataflow.d.ts.map +1 -1
- package/dist/features/dataflow.js +37 -29
- package/dist/features/dataflow.js.map +1 -1
- package/dist/features/flow.d.ts.map +1 -1
- package/dist/features/flow.js +31 -22
- package/dist/features/flow.js.map +1 -1
- package/dist/features/graph-enrichment.d.ts.map +1 -1
- package/dist/features/graph-enrichment.js +77 -70
- package/dist/features/graph-enrichment.js.map +1 -1
- package/dist/features/owners.d.ts +17 -26
- package/dist/features/owners.d.ts.map +1 -1
- package/dist/features/owners.js +120 -109
- package/dist/features/owners.js.map +1 -1
- package/dist/features/sequence.d.ts.map +1 -1
- package/dist/features/sequence.js +59 -54
- package/dist/features/sequence.js.map +1 -1
- package/dist/features/structure-query.d.ts.map +1 -1
- package/dist/features/structure-query.js +60 -60
- package/dist/features/structure-query.js.map +1 -1
- package/dist/features/structure.js +28 -36
- package/dist/features/structure.js.map +1 -1
- package/dist/graph/algorithms/leiden/optimiser.d.ts.map +1 -1
- package/dist/graph/algorithms/leiden/optimiser.js +100 -69
- package/dist/graph/algorithms/leiden/optimiser.js.map +1 -1
- package/dist/graph/classifiers/roles.d.ts.map +1 -1
- package/dist/graph/classifiers/roles.js +63 -59
- package/dist/graph/classifiers/roles.js.map +1 -1
- package/dist/infrastructure/config.d.ts +1 -1
- package/dist/infrastructure/config.d.ts.map +1 -1
- package/dist/infrastructure/config.js +1 -1
- package/dist/infrastructure/config.js.map +1 -1
- package/dist/presentation/cfg.d.ts.map +1 -1
- package/dist/presentation/cfg.js +44 -29
- package/dist/presentation/cfg.js.map +1 -1
- package/dist/presentation/flow.d.ts.map +1 -1
- package/dist/presentation/flow.js +58 -38
- package/dist/presentation/flow.js.map +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +7 -7
- package/src/ast-analysis/engine.ts +145 -61
- package/src/ast-analysis/visitor-utils.ts +86 -46
- package/src/ast-analysis/visitors/ast-store-visitor.ts +104 -69
- package/src/ast-analysis/visitors/dataflow-visitor.ts +86 -47
- package/src/cli/commands/embed.ts +54 -4
- package/src/domain/analysis/dependencies.ts +166 -85
- package/src/domain/analysis/fn-impact.ts +120 -50
- package/src/domain/analysis/module-map.ts +175 -140
- package/src/domain/graph/builder/helpers.ts +85 -76
- package/src/domain/graph/builder/incremental.ts +217 -90
- package/src/domain/graph/builder/pipeline.ts +19 -957
- package/src/domain/graph/builder/stages/build-edges.ts +198 -140
- package/src/domain/graph/builder/stages/build-structure.ts +115 -82
- package/src/domain/graph/builder/stages/detect-changes.ts +107 -64
- package/src/domain/graph/builder/stages/finalize.ts +72 -70
- package/src/domain/graph/builder/stages/insert-nodes.ts +154 -120
- package/src/domain/graph/builder/stages/native-db-lifecycle.ts +74 -0
- package/src/domain/graph/builder/stages/native-orchestrator.ts +942 -0
- package/src/domain/graph/cycles.ts +51 -49
- package/src/domain/graph/journal.ts +84 -69
- package/src/domain/graph/watcher.ts +8 -2
- package/src/domain/parser.ts +143 -66
- package/src/domain/search/generator.ts +132 -74
- package/src/domain/search/models.ts +39 -3
- package/src/domain/search/search/hybrid.ts +53 -42
- package/src/domain/search/search/semantic.ts +105 -65
- package/src/domain/wasm-worker-entry.ts +235 -152
- package/src/extractors/elixir.ts +91 -64
- package/src/extractors/gleam.ts +33 -37
- package/src/extractors/helpers.ts +205 -1
- package/src/extractors/java.ts +42 -45
- package/src/extractors/javascript.ts +44 -43
- package/src/extractors/julia.ts +28 -35
- package/src/extractors/r.ts +38 -56
- package/src/extractors/solidity.ts +43 -71
- package/src/features/boundaries.ts +64 -46
- package/src/features/cfg.ts +145 -74
- package/src/features/check.ts +60 -43
- package/src/features/cochange.ts +95 -72
- package/src/features/complexity.ts +134 -79
- package/src/features/dataflow.ts +57 -34
- package/src/features/flow.ts +48 -24
- package/src/features/graph-enrichment.ts +105 -70
- package/src/features/owners.ts +186 -146
- package/src/features/sequence.ts +99 -69
- package/src/features/structure-query.ts +94 -79
- package/src/features/structure.ts +56 -56
- package/src/graph/algorithms/leiden/optimiser.ts +142 -87
- package/src/graph/classifiers/roles.ts +64 -54
- package/src/infrastructure/config.ts +1 -1
- package/src/presentation/cfg.ts +48 -32
- package/src/presentation/flow.ts +100 -52
- package/src/types.ts +1 -1
|
@@ -200,38 +200,49 @@ function resolveBarrelImportEdges(db, stmts, fileNodeId, resolvedPath, imp) {
|
|
|
200
200
|
}
|
|
201
201
|
return edgesAdded;
|
|
202
202
|
}
|
|
203
|
+
/** Emit symbol-level `imports-type` edges for a single `import type` statement. */
|
|
204
|
+
function emitTypeOnlySymbolEdges(db, stmts, imp, resolvedPath, fileNodeId) {
|
|
205
|
+
let edgesAdded = 0;
|
|
206
|
+
for (const name of imp.names) {
|
|
207
|
+
const cleanName = name.replace(/^\*\s+as\s+/, '');
|
|
208
|
+
let targetFile = resolvedPath;
|
|
209
|
+
if (db && isBarrelFile(db, resolvedPath)) {
|
|
210
|
+
const actual = resolveBarrelTarget(db, resolvedPath, cleanName);
|
|
211
|
+
if (actual)
|
|
212
|
+
targetFile = actual;
|
|
213
|
+
}
|
|
214
|
+
const candidates = stmts.findNodeInFile.all(cleanName, targetFile);
|
|
215
|
+
if (candidates.length === 0)
|
|
216
|
+
continue;
|
|
217
|
+
stmts.insertEdge.run(fileNodeId, candidates[0].id, 'imports-type', 1.0, 0);
|
|
218
|
+
edgesAdded++;
|
|
219
|
+
}
|
|
220
|
+
return edgesAdded;
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Process a single import statement: emit the file→file edge, any
|
|
224
|
+
* symbol-level type-only edges, and barrel re-export edges.
|
|
225
|
+
*/
|
|
226
|
+
function emitEdgesForImport(stmts, imp, fileNodeId, relPath, rootDir, aliases, db) {
|
|
227
|
+
const resolvedPath = resolveImportPath(path.join(rootDir, relPath), imp.source, rootDir, aliases);
|
|
228
|
+
const targetRow = stmts.getNodeId.get(resolvedPath, 'file', resolvedPath, 0);
|
|
229
|
+
if (!targetRow)
|
|
230
|
+
return 0;
|
|
231
|
+
const edgeKind = imp.reexport ? 'reexports' : imp.typeOnly ? 'imports-type' : 'imports';
|
|
232
|
+
stmts.insertEdge.run(fileNodeId, targetRow.id, edgeKind, 1.0, 0);
|
|
233
|
+
let edgesAdded = 1;
|
|
234
|
+
if (imp.typeOnly) {
|
|
235
|
+
edgesAdded += emitTypeOnlySymbolEdges(db, stmts, imp, resolvedPath, fileNodeId);
|
|
236
|
+
}
|
|
237
|
+
if (!imp.reexport && db) {
|
|
238
|
+
edgesAdded += resolveBarrelImportEdges(db, stmts, fileNodeId, resolvedPath, imp);
|
|
239
|
+
}
|
|
240
|
+
return edgesAdded;
|
|
241
|
+
}
|
|
203
242
|
function buildImportEdges(stmts, relPath, symbols, rootDir, fileNodeId, aliases, db) {
|
|
204
243
|
let edgesAdded = 0;
|
|
205
244
|
for (const imp of symbols.imports) {
|
|
206
|
-
|
|
207
|
-
const targetRow = stmts.getNodeId.get(resolvedPath, 'file', resolvedPath, 0);
|
|
208
|
-
if (targetRow) {
|
|
209
|
-
const edgeKind = imp.reexport ? 'reexports' : imp.typeOnly ? 'imports-type' : 'imports';
|
|
210
|
-
stmts.insertEdge.run(fileNodeId, targetRow.id, edgeKind, 1.0, 0);
|
|
211
|
-
edgesAdded++;
|
|
212
|
-
// Type-only imports: create symbol-level edges so the target symbols
|
|
213
|
-
// get fan-in credit and aren't falsely classified as dead code.
|
|
214
|
-
if (imp.typeOnly) {
|
|
215
|
-
for (const name of imp.names) {
|
|
216
|
-
const cleanName = name.replace(/^\*\s+as\s+/, '');
|
|
217
|
-
let targetFile = resolvedPath;
|
|
218
|
-
if (db && isBarrelFile(db, resolvedPath)) {
|
|
219
|
-
const actual = resolveBarrelTarget(db, resolvedPath, cleanName);
|
|
220
|
-
if (actual)
|
|
221
|
-
targetFile = actual;
|
|
222
|
-
}
|
|
223
|
-
const candidates = stmts.findNodeInFile.all(cleanName, targetFile);
|
|
224
|
-
if (candidates.length > 0) {
|
|
225
|
-
stmts.insertEdge.run(fileNodeId, candidates[0].id, 'imports-type', 1.0, 0);
|
|
226
|
-
edgesAdded++;
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
// Barrel resolution: create edges through re-export chains
|
|
231
|
-
if (!imp.reexport && db) {
|
|
232
|
-
edgesAdded += resolveBarrelImportEdges(db, stmts, fileNodeId, resolvedPath, imp);
|
|
233
|
-
}
|
|
234
|
-
}
|
|
245
|
+
edgesAdded += emitEdgesForImport(stmts, imp, fileNodeId, relPath, rootDir, aliases, db);
|
|
235
246
|
}
|
|
236
247
|
return edgesAdded;
|
|
237
248
|
}
|
|
@@ -320,6 +331,91 @@ function buildCallEdges(stmts, relPath, symbols, fileNodeRow, importedNames) {
|
|
|
320
331
|
return edgesAdded;
|
|
321
332
|
}
|
|
322
333
|
// ── Main entry point ────────────────────────────────────────────────────
|
|
334
|
+
/** Build the "this file was deleted" result returned by `rebuildFile`. */
|
|
335
|
+
function buildDeletionResult(relPath, oldNodes, edgesBefore, oldSymbols, diffSymbols) {
|
|
336
|
+
const symbolDiff = diffSymbols ? diffSymbols(oldSymbols, []) : null;
|
|
337
|
+
return {
|
|
338
|
+
file: relPath,
|
|
339
|
+
nodesAdded: 0,
|
|
340
|
+
nodesRemoved: oldNodes,
|
|
341
|
+
edgesAdded: 0,
|
|
342
|
+
edgesBefore,
|
|
343
|
+
deleted: true,
|
|
344
|
+
event: 'deleted',
|
|
345
|
+
symbolDiff,
|
|
346
|
+
nodesBefore: oldNodes,
|
|
347
|
+
nodesAfter: 0,
|
|
348
|
+
};
|
|
349
|
+
}
|
|
350
|
+
/** Rebuild all edges originating in the single (just-parsed) target file. */
|
|
351
|
+
function rebuildEdgesForTargetFile(db, stmts, relPath, symbols, fileNodeRow, rootDir) {
|
|
352
|
+
const aliases = { baseUrl: null, paths: {} };
|
|
353
|
+
let edgesAdded = buildContainmentEdges(db, stmts, relPath, symbols);
|
|
354
|
+
edgesAdded += rebuildDirContainment(db, stmts, relPath);
|
|
355
|
+
edgesAdded += buildImportEdges(stmts, relPath, symbols, rootDir, fileNodeRow.id, aliases, db);
|
|
356
|
+
const importedNames = buildImportedNamesMap(symbols, rootDir, relPath, aliases);
|
|
357
|
+
edgesAdded += buildCallEdges(stmts, relPath, symbols, fileNodeRow, importedNames);
|
|
358
|
+
return edgesAdded;
|
|
359
|
+
}
|
|
360
|
+
/**
|
|
361
|
+
* Re-parse the reverse-deps and delete their outgoing edges so the cascade
|
|
362
|
+
* can rebuild them. Returns the parsed symbols map together with the total
|
|
363
|
+
* edge count across all deps measured *before* deletion — callers add this
|
|
364
|
+
* to their own `edgesBefore` so the net delta stays correct even when the
|
|
365
|
+
* reverse-dep cascade re-inserts edges.
|
|
366
|
+
*/
|
|
367
|
+
async function parseReverseDeps(db, rootDir, reverseDeps, stmts, engineOpts, cache) {
|
|
368
|
+
const depSymbols = new Map();
|
|
369
|
+
let reverseDepsEdgesBefore = 0;
|
|
370
|
+
for (const depRelPath of reverseDeps) {
|
|
371
|
+
const symbols_ = await parseReverseDep(rootDir, depRelPath, engineOpts, cache);
|
|
372
|
+
if (symbols_) {
|
|
373
|
+
reverseDepsEdgesBefore += stmts.countEdges.get(depRelPath)?.c ?? 0;
|
|
374
|
+
deleteOutgoingEdges(db, depRelPath);
|
|
375
|
+
depSymbols.set(depRelPath, symbols_);
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
return { depSymbols, reverseDepsEdgesBefore };
|
|
379
|
+
}
|
|
380
|
+
/**
|
|
381
|
+
* Pass 2 of the reverse-dep cascade: now that the changed file's `reexports`
|
|
382
|
+
* edges exist, resolve barrel imports for every reverse-dep so transitive
|
|
383
|
+
* call edges through the barrel still find their targets.
|
|
384
|
+
*/
|
|
385
|
+
function emitBarrelImportEdgesForReverseDeps(db, stmts, depSymbols, rootDir) {
|
|
386
|
+
let edgesAdded = 0;
|
|
387
|
+
for (const [depRelPath, symbols_] of depSymbols) {
|
|
388
|
+
const fileNodeRow_ = stmts.getNodeId.get(depRelPath, 'file', depRelPath, 0);
|
|
389
|
+
if (!fileNodeRow_)
|
|
390
|
+
continue;
|
|
391
|
+
const aliases_ = { baseUrl: null, paths: {} };
|
|
392
|
+
for (const imp of symbols_.imports) {
|
|
393
|
+
if (imp.reexport)
|
|
394
|
+
continue;
|
|
395
|
+
const resolvedPath = resolveImportPath(path.join(rootDir, depRelPath), imp.source, rootDir, aliases_);
|
|
396
|
+
edgesAdded += resolveBarrelImportEdges(db, stmts, fileNodeRow_.id, resolvedPath, imp);
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
return edgesAdded;
|
|
400
|
+
}
|
|
401
|
+
/**
|
|
402
|
+
* Two-pass reverse-dep cascade:
|
|
403
|
+
* 1. Rebuild direct edges (creating `reexports` edges for barrels).
|
|
404
|
+
* 2. Add barrel import edges (which need `reexports` edges to exist).
|
|
405
|
+
* Returns both the gross edges-added count and the pre-deletion edge count
|
|
406
|
+
* for all reverse deps so callers can compute a true net delta.
|
|
407
|
+
*/
|
|
408
|
+
async function runReverseDepCascade(db, rootDir, reverseDeps, stmts, engineOpts, cache) {
|
|
409
|
+
const { depSymbols, reverseDepsEdgesBefore } = await parseReverseDeps(db, rootDir, reverseDeps, stmts, engineOpts, cache);
|
|
410
|
+
let edgesAdded = 0;
|
|
411
|
+
// Pass 1: direct edges only (no barrel resolution) — creates reexports edges
|
|
412
|
+
for (const [depRelPath, symbols_] of depSymbols) {
|
|
413
|
+
edgesAdded += rebuildReverseDepEdges(db, rootDir, depRelPath, symbols_, stmts, true);
|
|
414
|
+
}
|
|
415
|
+
// Pass 2: add barrel import edges (reexports edges now exist)
|
|
416
|
+
edgesAdded += emitBarrelImportEdgesForReverseDeps(db, stmts, depSymbols, rootDir);
|
|
417
|
+
return { edgesAdded, reverseDepsEdgesBefore };
|
|
418
|
+
}
|
|
323
419
|
/**
|
|
324
420
|
* Parse a single file and update the database incrementally.
|
|
325
421
|
*/
|
|
@@ -327,6 +423,7 @@ export async function rebuildFile(db, rootDir, filePath, stmts, engineOpts, cach
|
|
|
327
423
|
const { diffSymbols } = options;
|
|
328
424
|
const relPath = normalizePath(path.relative(rootDir, filePath));
|
|
329
425
|
const oldNodes = stmts.countNodes.get(relPath)?.c || 0;
|
|
426
|
+
const edgesBefore = stmts.countEdges.get(relPath)?.c || 0;
|
|
330
427
|
const oldSymbols = diffSymbols ? stmts.listSymbols.all(relPath) : [];
|
|
331
428
|
// Find reverse-deps BEFORE purging (edges still reference the old nodes)
|
|
332
429
|
const reverseDeps = findReverseDeps(db, relPath);
|
|
@@ -338,18 +435,7 @@ export async function rebuildFile(db, rootDir, filePath, stmts, engineOpts, cach
|
|
|
338
435
|
if (!fs.existsSync(filePath)) {
|
|
339
436
|
if (cache)
|
|
340
437
|
cache.remove(filePath);
|
|
341
|
-
|
|
342
|
-
return {
|
|
343
|
-
file: relPath,
|
|
344
|
-
nodesAdded: 0,
|
|
345
|
-
nodesRemoved: oldNodes,
|
|
346
|
-
edgesAdded: 0,
|
|
347
|
-
deleted: true,
|
|
348
|
-
event: 'deleted',
|
|
349
|
-
symbolDiff,
|
|
350
|
-
nodesBefore: oldNodes,
|
|
351
|
-
nodesAfter: 0,
|
|
352
|
-
};
|
|
438
|
+
return buildDeletionResult(relPath, oldNodes, edgesBefore, oldSymbols, diffSymbols);
|
|
353
439
|
}
|
|
354
440
|
let code;
|
|
355
441
|
try {
|
|
@@ -367,41 +453,20 @@ export async function rebuildFile(db, rootDir, filePath, stmts, engineOpts, cach
|
|
|
367
453
|
const newSymbols = diffSymbols ? stmts.listSymbols.all(relPath) : [];
|
|
368
454
|
const fileNodeRow = stmts.getNodeId.get(relPath, 'file', relPath, 0);
|
|
369
455
|
if (!fileNodeRow)
|
|
370
|
-
return {
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
deleteOutgoingEdges(db, depRelPath);
|
|
385
|
-
depSymbols.set(depRelPath, symbols_);
|
|
386
|
-
}
|
|
387
|
-
}
|
|
388
|
-
// Pass 1: direct edges only (no barrel resolution) — creates reexports edges
|
|
389
|
-
for (const [depRelPath, symbols_] of depSymbols) {
|
|
390
|
-
edgesAdded += rebuildReverseDepEdges(db, rootDir, depRelPath, symbols_, stmts, true);
|
|
391
|
-
}
|
|
392
|
-
// Pass 2: add barrel import edges (reexports edges now exist)
|
|
393
|
-
for (const [depRelPath, symbols_] of depSymbols) {
|
|
394
|
-
const fileNodeRow_ = stmts.getNodeId.get(depRelPath, 'file', depRelPath, 0);
|
|
395
|
-
if (!fileNodeRow_)
|
|
396
|
-
continue;
|
|
397
|
-
const aliases_ = { baseUrl: null, paths: {} };
|
|
398
|
-
for (const imp of symbols_.imports) {
|
|
399
|
-
if (imp.reexport)
|
|
400
|
-
continue;
|
|
401
|
-
const resolvedPath = resolveImportPath(path.join(rootDir, depRelPath), imp.source, rootDir, aliases_);
|
|
402
|
-
edgesAdded += resolveBarrelImportEdges(db, stmts, fileNodeRow_.id, resolvedPath, imp);
|
|
403
|
-
}
|
|
404
|
-
}
|
|
456
|
+
return {
|
|
457
|
+
file: relPath,
|
|
458
|
+
nodesAdded: newNodes,
|
|
459
|
+
nodesRemoved: oldNodes,
|
|
460
|
+
edgesAdded: 0,
|
|
461
|
+
edgesBefore,
|
|
462
|
+
};
|
|
463
|
+
let edgesAdded = rebuildEdgesForTargetFile(db, stmts, relPath, symbols, fileNodeRow, rootDir);
|
|
464
|
+
const { edgesAdded: cascadeEdges, reverseDepsEdgesBefore } = await runReverseDepCascade(db, rootDir, reverseDeps, stmts, engineOpts, cache);
|
|
465
|
+
edgesAdded += cascadeEdges;
|
|
466
|
+
// Include pre-deletion edge counts from reverse deps so the net delta
|
|
467
|
+
// (edgesAdded - edgesBefore) is correct even when the cascade re-inserts
|
|
468
|
+
// their edges unchanged.
|
|
469
|
+
const totalEdgesBefore = edgesBefore + reverseDepsEdgesBefore;
|
|
405
470
|
const symbolDiff = diffSymbols ? diffSymbols(oldSymbols, newSymbols) : null;
|
|
406
471
|
const event = oldNodes === 0 ? 'added' : 'modified';
|
|
407
472
|
return {
|
|
@@ -409,6 +474,7 @@ export async function rebuildFile(db, rootDir, filePath, stmts, engineOpts, cach
|
|
|
409
474
|
nodesAdded: newNodes,
|
|
410
475
|
nodesRemoved: oldNodes,
|
|
411
476
|
edgesAdded,
|
|
477
|
+
edgesBefore: totalEdgesBefore,
|
|
412
478
|
deleted: false,
|
|
413
479
|
event,
|
|
414
480
|
symbolDiff,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"incremental.js","sourceRoot":"","sources":["../../../../src/domain/graph/builder/incremental.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,mCAAmC,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAQ7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AA0B/D,2EAA2E;AAE3E,SAAS,eAAe,CAAC,KAAuB,EAAE,OAAe,EAAE,OAAwB;IACzF,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;IACxD,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACtC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC;QACjF,IAAI,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;YACzB,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;gBACjC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC;YAC3F,CAAC;QACH,CAAC;IACH,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QAClC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACpE,CAAC;AACH,CAAC;AAED,0EAA0E;AAE1E,SAAS,qBAAqB,CAC5B,EAAyB,EACzB,KAAuB,EACvB,OAAe,EACf,OAAwB;IAExB,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;IACD,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,OAAO,SAAS,CAAC,CAAC;IAClD,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QACnE,IAAI,MAAM,IAAI,KAAK,EAAE,CAAC;YACpB,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;YACxD,UAAU,EAAE,CAAC;QACf,CAAC;QACD,IAAI,GAAG,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,EAAE,CAAC;YAClC,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;gBACjC,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC3E,IAAI,OAAO,EAAE,CAAC;oBACZ,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;oBACzD,UAAU,EAAE,CAAC;oBACb,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;wBAC/B,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;wBAC7D,UAAU,EAAE,CAAC;oBACf,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,0EAA0E;AAE1E,+DAA+D;AAC/D,IAAI,SAAS,GAAiC,IAAI,CAAC;AACnD,IAAI,gBAAgB,GAA2B,IAAI,CAAC;AACpD,IAAI,mBAAmB,GAA2B,IAAI,CAAC;AAEvD,SAAS,cAAc,CAAC,EAAyB;IAI/C,IAAI,SAAS,KAAK,EAAE,EAAE,CAAC;QACrB,SAAS,GAAG,EAAE,CAAC;QACf,gBAAgB,GAAG,EAAE,CAAC,OAAO,CAC3B;;;8EAGwE,CACzE,CAAC;QACF,mBAAmB,GAAG,EAAE,CAAC,OAAO,CAC9B,4EAA4E,CAC7E,CAAC;IACJ,CAAC;IACD,OAAO;QACL,eAAe,EAAE,gBAAiB;QAClC,kBAAkB,EAAE,mBAAoB;KACzC,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,EAAyB,EAAE,OAAe;IACjE,MAAM,EAAE,eAAe,EAAE,GAAG,cAAc,CAAC,EAAE,CAAC,CAAC;IAC/C,OAAQ,eAAe,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAA6B,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC/F,CAAC;AAED,SAAS,mBAAmB,CAAC,EAAyB,EAAE,OAAe;IACrE,MAAM,EAAE,kBAAkB,EAAE,GAAG,cAAc,CAAC,EAAE,CAAC,CAAC;IAClD,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAClC,CAAC;AAED,KAAK,UAAU,eAAe,CAC5B,OAAe,EACf,UAAkB,EAClB,UAAsB,EACtB,KAAc;IAEd,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAC/C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IAEzC,IAAI,IAAY,CAAC;IACjB,IAAI,CAAC;QACH,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAAC,OAAO,CAAU,EAAE,CAAC;QACpB,KAAK,CAAC,gCAAgC,OAAO,KAAK,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAChG,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,sBAAsB,CAC7B,EAAyB,EACzB,OAAe,EACf,UAAkB,EAClB,OAAwB,EACxB,KAAuB,EACvB,UAAmB;IAEnB,MAAM,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;IAC3E,IAAI,CAAC,WAAW;QAAE,OAAO,CAAC,CAAC;IAE3B,MAAM,OAAO,GAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IAC1D,IAAI,UAAU,GAAG,qBAAqB,CAAC,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IACvE,8EAA8E;IAC9E,UAAU,IAAI,gBAAgB,CAC5B,KAAK,EACL,UAAU,EACV,OAAO,EACP,OAAO,EACP,WAAW,CAAC,EAAE,EACd,OAAO,EACP,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CACvB,CAAC;IACF,MAAM,aAAa,GAAG,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IACnF,UAAU,IAAI,cAAc,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC;IACrF,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,0EAA0E;AAE1E,SAAS,qBAAqB,CAC5B,GAA0B,EAC1B,KAAuB,EACvB,OAAe;IAEf,MAAM,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IACjD,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,GAAG;QAAE,OAAO,CAAC,CAAC;IAClC,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;IAC7D,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IACjE,IAAI,MAAM,IAAI,OAAO,EAAE,CAAC;QACtB,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QAChE,OAAO,CAAC,CAAC;IACX,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,2EAA2E;AAE3E,4FAA4F;AAC5F,IAAI,SAAS,GAAiC,IAAI,CAAC;AACnD,IAAI,aAAa,GAA2B,IAAI,CAAC;AACjD,IAAI,oBAAoB,GAA2B,IAAI,CAAC;AACxD,IAAI,WAAW,GAA2B,IAAI,CAAC;AAE/C,SAAS,cAAc,CAAC,EAAyB;IAK/C,IAAI,SAAS,KAAK,EAAE,EAAE,CAAC;QACrB,SAAS,GAAG,EAAE,CAAC;QACf,aAAa,GAAG,EAAE,CAAC,OAAO,CACxB;;qEAE+D,CAChE,CAAC;QACF,oBAAoB,GAAG,EAAE,CAAC,OAAO,CAC/B;;;uEAGiE,CAClE,CAAC;QACF,WAAW,GAAG,EAAE,CAAC,OAAO,CACtB,oGAAoG,CACrG,CAAC;IACJ,CAAC;IACD,OAAO;QACL,YAAY,EAAE,aAAc;QAC5B,mBAAmB,EAAE,oBAAqB;QAC1C,UAAU,EAAE,WAAY;KACzB,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,EAAyB,EAAE,OAAe;IAC9D,MAAM,EAAE,YAAY,EAAE,GAAG,cAAc,CAAC,EAAE,CAAC,CAAC;IAC5C,MAAM,aAAa,GAAI,YAAY,CAAC,GAAG,CAAC,OAAO,CAA+B,EAAE,CAAC,CAAC;IAClF,OAAO,CAAC,aAAa,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AAClC,CAAC;AAED,SAAS,mBAAmB,CAC1B,EAAyB,EACzB,UAAkB,EAClB,UAAkB,EAClB,UAAuB,IAAI,GAAG,EAAE;IAEhC,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;QAAE,OAAO,IAAI,CAAC;IACzC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAExB,MAAM,EAAE,mBAAmB,EAAE,UAAU,EAAE,GAAG,cAAc,CAAC,EAAE,CAAC,CAAC;IAE/D,0CAA0C;IAC1C,MAAM,eAAe,GAAG,mBAAmB,CAAC,GAAG,CAAC,UAAU,CAA4B,CAAC;IAEvF,KAAK,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,eAAe,EAAE,CAAC;QACnD,qDAAqD;QACrD,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QACtD,IAAI,MAAM;YAAE,OAAO,UAAU,CAAC;QAE9B,gCAAgC;QAChC,IAAI,YAAY,CAAC,EAAE,EAAE,UAAU,CAAC,EAAE,CAAC;YACjC,MAAM,MAAM,GAAG,mBAAmB,CAAC,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;YACxE,IAAI,MAAM;gBAAE,OAAO,MAAM,CAAC;QAC5B,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,SAAS,wBAAwB,CAC/B,EAAyB,EACzB,KAAuB,EACvB,UAAkB,EAClB,YAAoB,EACpB,GAAuC;IAEvC,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,YAAY,CAAC;QAAE,OAAO,UAAU,CAAC;IACvD,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;IAC1C,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;QAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;QAClD,MAAM,YAAY,GAAG,mBAAmB,CAAC,EAAE,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;QACtE,IAAI,YAAY,IAAI,YAAY,KAAK,YAAY,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;YACxF,eAAe,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAClC,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;YAC7E,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC;gBACvD,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;gBAC7D,UAAU,EAAE,CAAC;YACf,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,gBAAgB,CACvB,KAAuB,EACvB,OAAe,EACf,OAAwB,EACxB,OAAe,EACf,UAAkB,EAClB,OAAoB,EACpB,EAAgC;IAEhC,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QAClC,MAAM,YAAY,GAAG,iBAAiB,CACpC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,EAC3B,GAAG,CAAC,MAAM,EACV,OAAO,EACP,OAAO,CACR,CAAC;QACF,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;QAC7E,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC;YACxF,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;YACjE,UAAU,EAAE,CAAC;YAEb,qEAAqE;YACrE,gEAAgE;YAChE,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;gBACjB,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;oBAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;oBAClD,IAAI,UAAU,GAAG,YAAY,CAAC;oBAC9B,IAAI,EAAE,IAAI,YAAY,CAAC,EAAE,EAAE,YAAY,CAAC,EAAE,CAAC;wBACzC,MAAM,MAAM,GAAG,mBAAmB,CAAC,EAAE,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;wBAChE,IAAI,MAAM;4BAAE,UAAU,GAAG,MAAM,CAAC;oBAClC,CAAC;oBACD,MAAM,UAAU,GAAG,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE,UAAU,CAG/D,CAAC;oBACH,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC1B,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAE,CAAC,EAAE,EAAE,cAAc,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;wBAC5E,UAAU,EAAE,CAAC;oBACf,CAAC;gBACH,CAAC;YACH,CAAC;YAED,2DAA2D;YAC3D,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;gBACxB,UAAU,IAAI,wBAAwB,CAAC,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,CAAC,CAAC;YACnF,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,qBAAqB,CAC5B,OAAwB,EACxB,OAAe,EACf,OAAe,EACf,OAAoB;IAEpB,MAAM,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAC;IAChD,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QAClC,MAAM,YAAY,GAAG,iBAAiB,CACpC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,EAC3B,GAAG,CAAC,MAAM,EACV,OAAO,EACP,OAAO,CACR,CAAC;QACF,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;YAC7B,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IACD,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,2EAA2E;AAE3E,SAAS,UAAU,CACjB,IAAsC,EACtC,WAA2C,EAC3C,OAAe,EACf,KAAuB;IAEvB,IAAI,MAAM,GAA0B,IAAI,CAAC;IACzC,IAAI,UAAU,GAAG,QAAQ,CAAC;IAC1B,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;QAC9B,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAC1B,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,IAAI,QAAQ,CAAC;YACpC,IAAI,IAAI,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC;gBACrB,MAAM,IAAI,GAAG,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC;gBAC5B,IAAI,IAAI,GAAG,UAAU,EAAE,CAAC;oBACtB,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;oBACvE,IAAI,GAAG,EAAE,CAAC;wBACR,MAAM,GAAG,GAAG,CAAC;wBACb,UAAU,GAAG,IAAI,CAAC;oBACpB,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,kBAAkB,CACzB,KAAuB,EACvB,IAAsC,EACtC,OAAe,EACf,aAAkC,EAClC,OAA6B;IAE7B,MAAM,YAAY,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClD,IAAI,OAAwD,CAAC;IAC7D,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,GAAG,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAGxD,CAAC;IACL,CAAC;IACD,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrC,OAAO,GAAG,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAwC,CAAC;QAC9F,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,GAAG,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAwC,CAAC;QACvF,CAAC;IACH,CAAC;IACD,sEAAsE;IACtE,IAAI,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,IAAI,OAAO,EAAE,CAAC;QACnE,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC7C,MAAM,QAAQ,GAAG,SAAS;YACxB,CAAC,CAAC,OAAO,SAAS,KAAK,QAAQ;gBAC7B,CAAC,CAAC,SAAS;gBACX,CAAC,CAAE,SAA+B,CAAC,IAAI;YACzC,CAAC,CAAC,IAAI,CAAC;QACT,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,SAAS,GAAG,GAAG,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAC7C,OAAO,GAAG,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAwC,CAAC;QACvF,CAAC;IACH,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,EAAE,EAAE,YAAY,EAAE,CAAC;AAClD,CAAC;AAED,SAAS,cAAc,CACrB,KAAuB,EACvB,OAAe,EACf,OAAwB,EACxB,WAA2B,EAC3B,aAAkC;IAElC,MAAM,KAAK,GAAY,OAAO,CAAC,OAAO,CAAC;IACvC,MAAM,OAAO,GACX,KAAK,YAAY,GAAG;QAClB,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YACxC,CAAC,CAAC,IAAI,GAAG,CACJ,KAAmE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;gBAC9E,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI;aAC7B,CAAC,CACH;YACH,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC;IAClB,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QACjC,IAAI,IAAI,CAAC,QAAQ,IAAI,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;YAAE,SAAS;QAEpE,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,WAAW,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,WAAW,CAAC;QACpF,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,kBAAkB,CAClD,KAAK,EACL,IAAI,EACJ,OAAO,EACP,aAAa,EACb,OAAO,CACR,CAAC;QAEF,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,IAAI,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,EAAE,CAAC;gBACvB,MAAM,UAAU,GAAG,iBAAiB,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,YAAY,IAAI,IAAI,CAAC,CAAC;gBAC5E,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACjF,UAAU,EAAE,CAAC;YACf,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,2EAA2E;AAE3E;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,EAAyB,EACzB,OAAe,EACf,QAAgB,EAChB,KAAuB,EACvB,UAAsB,EACtB,KAAc,EACd,UAA0E,EAAE;IAE5E,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;IAChC,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;IAChE,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IACvD,MAAM,UAAU,GAAc,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAEhF,yEAAyE;IACzE,MAAM,WAAW,GAAG,eAAe,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IAEjD,2EAA2E;IAC3E,2EAA2E;IAC3E,gFAAgF;IAChF,6EAA6E;IAC7E,aAAa,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;IAEnD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,IAAI,KAAK;YAAG,KAAqC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACnE,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACpE,OAAO;YACL,IAAI,EAAE,OAAO;YACb,UAAU,EAAE,CAAC;YACb,YAAY,EAAE,QAAQ;YACtB,UAAU,EAAE,CAAC;YACb,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,SAAS;YAChB,UAAU;YACV,WAAW,EAAE,QAAQ;YACrB,UAAU,EAAE,CAAC;SACd,CAAC;IACJ,CAAC;IAED,IAAI,IAAY,CAAC;IACjB,IAAI,CAAC;QACH,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,eAAe,OAAO,KAAM,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QAC1D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,oBAAoB,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;IAC9E,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAE1B,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAEzC,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IACvD,MAAM,UAAU,GAAc,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAEhF,MAAM,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IACrE,IAAI,CAAC,WAAW;QACd,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC;IAExF,MAAM,OAAO,GAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IAE1D,IAAI,UAAU,GAAG,qBAAqB,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACpE,UAAU,IAAI,qBAAqB,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IACxD,UAAU,IAAI,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IAC9F,MAAM,aAAa,GAAG,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAChF,UAAU,IAAI,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC;IAElF,yDAAyD;IACzD,wFAAwF;IACxF,qFAAqF;IACrF,MAAM,UAAU,GAAG,IAAI,GAAG,EAA2B,CAAC;IACtD,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACrC,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;QAC/E,IAAI,QAAQ,EAAE,CAAC;YACb,mBAAmB,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;YACpC,UAAU,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IACD,6EAA6E;IAC7E,KAAK,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,UAAU,EAAE,CAAC;QAChD,UAAU,IAAI,sBAAsB,CAAC,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IACvF,CAAC;IACD,8DAA8D;IAC9D,KAAK,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,UAAU,EAAE,CAAC;QAChD,MAAM,YAAY,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;QAC5E,IAAI,CAAC,YAAY;YAAE,SAAS;QAC5B,MAAM,QAAQ,GAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;QAC3D,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YACnC,IAAI,GAAG,CAAC,QAAQ;gBAAE,SAAS;YAC3B,MAAM,YAAY,GAAG,iBAAiB,CACpC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,EAC9B,GAAG,CAAC,MAAM,EACV,OAAO,EACP,QAAQ,CACT,CAAC;YACF,UAAU,IAAI,wBAAwB,CAAC,EAAE,EAAE,KAAK,EAAE,YAAY,CAAC,EAAE,EAAE,YAAY,EAAE,GAAG,CAAC,CAAC;QACxF,CAAC;IACH,CAAC;IAED,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5E,MAAM,KAAK,GAAG,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC;IAEpD,OAAO;QACL,IAAI,EAAE,OAAO;QACb,UAAU,EAAE,QAAQ;QACpB,YAAY,EAAE,QAAQ;QACtB,UAAU;QACV,OAAO,EAAE,KAAK;QACd,KAAK;QACL,UAAU;QACV,WAAW,EAAE,QAAQ;QACrB,UAAU,EAAE,QAAQ;KACrB,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"incremental.js","sourceRoot":"","sources":["../../../../src/domain/graph/builder/incremental.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,48 +1,5 @@
|
|
|
1
1
|
import type { BuildGraphOpts, BuildResult } from '../../../types.js';
|
|
2
|
-
|
|
3
|
-
* Inputs to {@link computeWasmOnlyStaleFiles}. Sets are passed in so the helper
|
|
4
|
-
* is pure and unit-testable independently of `getInstalledWasmExtensions` and
|
|
5
|
-
* the `NATIVE_SUPPORTED_EXTENSIONS` global state.
|
|
6
|
-
*/
|
|
7
|
-
export interface WasmOnlyStaleFilesInput {
|
|
8
|
-
/** Distinct `file` values from the `nodes` table. */
|
|
9
|
-
existingNodes: ReadonlySet<string>;
|
|
10
|
-
/** Distinct `file` values from the `file_hashes` table. */
|
|
11
|
-
existingHashes: ReadonlySet<string>;
|
|
12
|
-
/** Relative paths currently on disk (from `collectFilesUtil`). */
|
|
13
|
-
expected: ReadonlySet<string>;
|
|
14
|
-
/** Lowercased extensions whose WASM grammar is installed. */
|
|
15
|
-
installedExts: ReadonlySet<string>;
|
|
16
|
-
/** Extensions covered by the Rust addon — Rust owns deletion for these. */
|
|
17
|
-
nativeSupported: ReadonlySet<string>;
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Compute the WASM-only files present in the DB but missing from disk (#1073).
|
|
21
|
-
*
|
|
22
|
-
* Returns relative paths that:
|
|
23
|
-
* - appear in `existingNodes` or `existingHashes` (in DB),
|
|
24
|
-
* - are absent from `expected` (not on disk),
|
|
25
|
-
* - have an extension installed for WASM, AND
|
|
26
|
-
* - have an extension NOT covered by `nativeSupported` — Rust's
|
|
27
|
-
* `purge_changed_files` handles deletion for natively-supported extensions
|
|
28
|
-
* via its own `detect_removed_files`, so the caller must not double-purge.
|
|
29
|
-
*
|
|
30
|
-
* Extensions are lowercased before lookup to match the registry and Rust's
|
|
31
|
-
* `LanguageKind::from_extension` (which normalises case for the languages
|
|
32
|
-
* where both cases are conventional, e.g. R's `.r` / `.R`).
|
|
33
|
-
*
|
|
34
|
-
* DB paths are forced to forward slashes before comparison with `expected`
|
|
35
|
-
* (which is always normalised). The on-disk invariant is that DB rows are
|
|
36
|
-
* written with forward slashes, but a stale row written by older code on
|
|
37
|
-
* Windows could carry back-slashes — normalising here makes the comparison
|
|
38
|
-
* platform-safe and prevents false-positive purges of live rows. We replace
|
|
39
|
-
* `\\` explicitly (rather than calling `normalizePath`, which only touches
|
|
40
|
-
* `path.sep`) so the defence works when running on POSIX against a DB that
|
|
41
|
-
* was migrated from Windows.
|
|
42
|
-
*
|
|
43
|
-
* Exported for unit testing.
|
|
44
|
-
*/
|
|
45
|
-
export declare function computeWasmOnlyStaleFiles(input: WasmOnlyStaleFilesInput): string[];
|
|
2
|
+
export { computeWasmOnlyStaleFiles, type WasmOnlyStaleFilesInput, } from './stages/native-orchestrator.js';
|
|
46
3
|
/**
|
|
47
4
|
* Build the dependency graph for a codebase.
|
|
48
5
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../../../src/domain/graph/builder/pipeline.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../../../src/domain/graph/builder/pipeline.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AA0BrE,OAAO,EACL,yBAAyB,EACzB,KAAK,uBAAuB,GAC7B,MAAM,iCAAiC,CAAC;AA4RzC;;;;GAIG;AACH,wBAAsB,UAAU,CAC9B,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,cAAmB,GACxB,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAwHlC"}
|