@ttsc/graph 0.19.2 → 0.20.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/lib/TtscGraphApplication.js +5 -1
- package/lib/TtscGraphApplication.js.map +1 -1
- package/lib/bin.js +15 -3
- package/lib/bin.js.map +1 -1
- package/lib/index.d.ts +13 -2
- package/lib/index.js +25 -30
- package/lib/index.js.map +1 -1
- package/lib/launcherArgs.d.ts +24 -0
- package/lib/launcherArgs.js +136 -0
- package/lib/launcherArgs.js.map +1 -0
- package/lib/model/TtscGraphMemory.d.ts +9 -5
- package/lib/model/TtscGraphMemory.js +35 -58
- package/lib/model/TtscGraphMemory.js.map +1 -1
- package/lib/model/TtscGraphNodeId.d.ts +17 -0
- package/lib/model/TtscGraphNodeId.js +69 -0
- package/lib/model/TtscGraphNodeId.js.map +1 -0
- package/lib/model/TtscGraphSession.d.ts +23 -7
- package/lib/model/TtscGraphSession.js +423 -171
- package/lib/model/TtscGraphSession.js.map +1 -1
- package/lib/model/TtscGraphSourceReader.d.ts +27 -0
- package/lib/model/TtscGraphSourceReader.js +97 -0
- package/lib/model/TtscGraphSourceReader.js.map +1 -0
- package/lib/model/loadGraph.d.ts +14 -0
- package/lib/model/loadGraph.js +256 -143
- package/lib/model/loadGraph.js.map +1 -1
- package/lib/reduce.d.ts +4 -1
- package/lib/reduce.js +112 -29
- package/lib/reduce.js.map +1 -1
- package/lib/resolveGraphBinary.d.ts +9 -3
- package/lib/resolveGraphBinary.js +9 -3
- package/lib/resolveGraphBinary.js.map +1 -1
- package/lib/server/createServer.js +22 -11
- package/lib/server/createServer.js.map +1 -1
- package/lib/server/pathPolicy.d.ts +6 -0
- package/lib/server/pathPolicy.js +10 -1
- package/lib/server/pathPolicy.js.map +1 -1
- package/lib/server/resolveHandle.js +22 -18
- package/lib/server/resolveHandle.js.map +1 -1
- package/lib/server/resultAudit.d.ts +56 -14
- package/lib/server/resultAudit.js +90 -24
- package/lib/server/resultAudit.js.map +1 -1
- package/lib/server/resultNext.d.ts +5 -0
- package/lib/server/resultNext.js.map +1 -1
- package/lib/server/runDetails.d.ts +9 -2
- package/lib/server/runDetails.js +132 -157
- package/lib/server/runDetails.js.map +1 -1
- package/lib/server/runEntrypoints.js +1 -1
- package/lib/server/runEntrypoints.js.map +1 -1
- package/lib/server/runLookup.js +1 -1
- package/lib/server/runLookup.js.map +1 -1
- package/lib/server/runTour.js +113 -30
- package/lib/server/runTour.js.map +1 -1
- package/lib/server/runTrace.d.ts +22 -0
- package/lib/server/runTrace.js +293 -63
- package/lib/server/runTrace.js.map +1 -1
- package/lib/structures/ITtscGraphApplication.d.ts +8 -7
- package/lib/structures/ITtscGraphDetails.d.ts +18 -8
- package/lib/structures/ITtscGraphDump.d.ts +13 -13
- package/lib/structures/ITtscGraphNode.d.ts +71 -0
- package/lib/structures/ITtscGraphTour.d.ts +1 -1
- package/lib/structures/ITtscGraphTrace.d.ts +1 -1
- package/lib/view.js +18 -28
- package/lib/view.js.map +1 -1
- package/package.json +7 -4
- package/src/TtscGraphApplication.ts +8 -1
- package/src/bin.ts +13 -3
- package/src/index.ts +35 -27
- package/src/launcherArgs.ts +168 -0
- package/src/model/TtscGraphMemory.ts +34 -60
- package/src/model/TtscGraphNodeId.ts +77 -0
- package/src/model/TtscGraphSession.ts +253 -53
- package/src/model/TtscGraphSourceReader.ts +117 -0
- package/src/model/loadGraph.ts +6 -1
- package/src/reduce.ts +136 -31
- package/src/resolveGraphBinary.ts +9 -3
- package/src/server/createServer.ts +12 -2
- package/src/server/pathPolicy.ts +10 -1
- package/src/server/resolveHandle.ts +21 -22
- package/src/server/resultAudit.ts +93 -23
- package/src/server/resultNext.ts +6 -0
- package/src/server/runDetails.ts +134 -165
- package/src/server/runEntrypoints.ts +1 -1
- package/src/server/runLookup.ts +1 -1
- package/src/server/runTour.ts +133 -39
- package/src/server/runTrace.ts +401 -65
- package/src/structures/ITtscGraphApplication.ts +8 -7
- package/src/structures/ITtscGraphDetails.ts +18 -8
- package/src/structures/ITtscGraphDump.ts +13 -13
- package/src/structures/ITtscGraphNode.ts +80 -0
- package/src/structures/ITtscGraphTour.ts +1 -1
- package/src/structures/ITtscGraphTrace.ts +1 -1
- package/src/view.ts +25 -23
package/lib/server/runTrace.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.runTrace = runTrace;
|
|
4
|
+
exports.hasDeclarationBody = hasDeclarationBody;
|
|
4
5
|
const pathPolicy_1 = require("./pathPolicy");
|
|
5
6
|
const resolveHandle_1 = require("./resolveHandle");
|
|
6
7
|
const resultNext_1 = require("./resultNext");
|
|
@@ -17,15 +18,23 @@ const MAX_OPEN_DEPTH = 8;
|
|
|
17
18
|
const MAX_OPEN_NODES = 32;
|
|
18
19
|
const MAX_IMPACT_DEPTH = 4;
|
|
19
20
|
const MAX_IMPACT_NODES = 16;
|
|
21
|
+
// Path mode walks further than an open trace because it is looking for one
|
|
22
|
+
// named end, not building a picture. The cap is the one the request contract
|
|
23
|
+
// publishes for path mode.
|
|
24
|
+
const MAX_PATH_DEPTH = 12;
|
|
20
25
|
const MAX_HOPS_PER_NODE = 2;
|
|
21
26
|
const MAX_STEPS = 12;
|
|
22
|
-
const EXECUTION_KINDS = new Set([
|
|
23
|
-
"calls",
|
|
24
|
-
"instantiates",
|
|
25
|
-
"accesses",
|
|
26
|
-
"renders",
|
|
27
|
-
]);
|
|
28
27
|
const DISPATCH_KINDS = new Set(["overrides", "implements"]);
|
|
28
|
+
// A declaration whose kind is a type surface never carries a body, and an
|
|
29
|
+
// external leaf carries one the graph deliberately does not hold.
|
|
30
|
+
const BODYLESS_KINDS = new Set([
|
|
31
|
+
"interface",
|
|
32
|
+
"type",
|
|
33
|
+
"external_symbol",
|
|
34
|
+
]);
|
|
35
|
+
// `abstract` and `declare` are the two keywords that take the body away from a
|
|
36
|
+
// declaration that would otherwise have to have one.
|
|
37
|
+
const BODYLESS_MODIFIERS = new Set(["abstract", "declare"]);
|
|
29
38
|
// An interface the codebase implements everywhere — a disposable, a listener, a
|
|
30
39
|
// lifecycle hook — is not a step in one flow, and naming its implementors is a
|
|
31
40
|
// dump of the codebase rather than an answer. Past this many, the declaration
|
|
@@ -108,10 +117,16 @@ function runTrace(graph, props) {
|
|
|
108
117
|
next: (0, resultNext_1.resultNext)("outside", "The target resolved to no node, so the graph holds no path to it."),
|
|
109
118
|
};
|
|
110
119
|
}
|
|
111
|
-
const
|
|
112
|
-
const
|
|
113
|
-
const
|
|
114
|
-
const
|
|
120
|
+
const pathDepth = bound(props.maxDepth, MAX_PATH_DEPTH, 1, MAX_PATH_DEPTH);
|
|
121
|
+
const search = findPath(graph, start.node.id, target.node.id, pathDepth, focus, includeExternal);
|
|
122
|
+
const hasPath = search.found !== undefined;
|
|
123
|
+
const path = search.found?.path ?? [];
|
|
124
|
+
const hops = search.found?.hops ?? [];
|
|
125
|
+
// Junctions explain an absence, so they are only computed once absence is
|
|
126
|
+
// established: a walk the depth bound stopped has not established one, and
|
|
127
|
+
// presenting a shared symbol as "the seam" when a direct call path may run
|
|
128
|
+
// past the bound sends the caller to a seam that is not there.
|
|
129
|
+
const junctions = hasPath || search.bounded
|
|
115
130
|
? []
|
|
116
131
|
: junctionsBetween(graph, start.node.id, target.node.id, focus);
|
|
117
132
|
return {
|
|
@@ -124,20 +139,26 @@ function runTrace(graph, props) {
|
|
|
124
139
|
steps: traceSteps(graph, hops),
|
|
125
140
|
...(junctions.length > 0 ? { junctions } : {}),
|
|
126
141
|
},
|
|
127
|
-
//
|
|
142
|
+
// A missing path is a fact, not an answer, and the old message called it
|
|
128
143
|
// one: "its path nodes and evidence ranges are what the graph holds
|
|
129
|
-
// between the two ends" — of a result that held nothing.
|
|
130
|
-
//
|
|
131
|
-
//
|
|
144
|
+
// between the two ends" — of a result that held nothing. `findPath` says
|
|
145
|
+
// which fact it is; zero hops is instead the valid path from a node to
|
|
146
|
+
// itself. A walk the depth bound stopped establishes nothing at all, so
|
|
147
|
+
// it reports the bound. A walk that ran out of eligible graph did
|
|
148
|
+
// establish an absence, and distinct nodes without a path do not call
|
|
149
|
+
// each other, which in an event-driven codebase is the common case: a
|
|
150
|
+
// pointer handler emits, an emitter's `emit()` runs listeners a
|
|
132
151
|
// registration put in an array, and no call edge crosses that array. The
|
|
133
152
|
// callers of the target are the way across, and the graph has them, so
|
|
134
153
|
// say which call to make instead of handing back an empty result dressed
|
|
135
154
|
// as the answer. Excalidraw's tour spent eleven calls finding this out.
|
|
136
|
-
next:
|
|
155
|
+
next: hasPath
|
|
137
156
|
? pathNext
|
|
138
|
-
:
|
|
139
|
-
? (0, resultNext_1.resultNext)("inspect",
|
|
140
|
-
:
|
|
157
|
+
: search.bounded
|
|
158
|
+
? (0, resultNext_1.resultNext)("inspect", boundedPathReason(pathDepth), "trace")
|
|
159
|
+
: junctions.length > 0
|
|
160
|
+
? (0, resultNext_1.resultNext)("inspect", "No call path runs between the two ends — a callback stands between them (an event emitter, a subscription, a lifecycle hook), and no call edge crosses one. `junctions` names the symbols both ends touch, which is the seam: trace the junction to see who registers on it and who fires it.", "trace")
|
|
161
|
+
: (0, resultNext_1.resultNext)("outside", "No call path runs from the start to the target and they touch nothing in common, so the graph holds no connection between them."),
|
|
141
162
|
};
|
|
142
163
|
}
|
|
143
164
|
const hops = [];
|
|
@@ -150,22 +171,26 @@ function runTrace(graph, props) {
|
|
|
150
171
|
while (queue.length > 0) {
|
|
151
172
|
const next = [];
|
|
152
173
|
for (const { id, depth } of queue) {
|
|
153
|
-
|
|
174
|
+
const { edges: candidates, omitted } = traceEdges(graph, id, reverse, focus);
|
|
175
|
+
// A hop the hub bound withheld is omitted whatever the depth budget does
|
|
176
|
+
// next, so the flag is set before the boundary check consumes the step.
|
|
177
|
+
if (!truncated &&
|
|
178
|
+
omitted.some((edge) => eligibleTraceEndpoint(graph, edge, reverse, focus, includeExternal) !== undefined))
|
|
154
179
|
truncated = true;
|
|
180
|
+
if (depth >= maxDepth) {
|
|
181
|
+
// Reaching the configured boundary does not itself omit data. The
|
|
182
|
+
// response is truncated only when the selected walk has another hop
|
|
183
|
+
// (and, for an unseen endpoint, another node) beyond the boundary.
|
|
184
|
+
if (candidates.some((edge) => eligibleTraceEndpoint(graph, edge, reverse, focus, includeExternal) !== undefined))
|
|
185
|
+
truncated = true;
|
|
155
186
|
continue;
|
|
156
187
|
}
|
|
157
|
-
const edges = orderedEdges(graph, reverse
|
|
158
|
-
? graph.incoming(id)
|
|
159
|
-
: [...graph.outgoing(id), ...dispatchEdges(graph, id, focus)], direction, reverse);
|
|
188
|
+
const edges = orderedEdges(graph, candidates, direction, reverse);
|
|
160
189
|
for (const edge of edges) {
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
const otherId = reverse ? edge.from : edge.to;
|
|
164
|
-
const other = graph.node(otherId);
|
|
165
|
-
if (other === undefined || other.kind === "file")
|
|
166
|
-
continue;
|
|
167
|
-
if (!includeExternal && (0, pathPolicy_1.isExternalNode)(other))
|
|
190
|
+
const endpoint = eligibleTraceEndpoint(graph, edge, reverse, focus, includeExternal);
|
|
191
|
+
if (endpoint === undefined)
|
|
168
192
|
continue;
|
|
193
|
+
const { otherId, other } = endpoint;
|
|
169
194
|
const hop = {
|
|
170
195
|
from: edge.from,
|
|
171
196
|
to: edge.to,
|
|
@@ -215,6 +240,49 @@ function runTrace(graph, props) {
|
|
|
215
240
|
next: (0, resultNext_1.resultNext)("answer", "Steps, hops, reached nodes, and evidence ranges are the flow the graph holds from this start."),
|
|
216
241
|
};
|
|
217
242
|
}
|
|
243
|
+
/**
|
|
244
|
+
* Candidate edges in the selected direction before focus and node policy,
|
|
245
|
+
* together with the dispatch hops a bound withheld.
|
|
246
|
+
*
|
|
247
|
+
* The two have to travel together. A hub-suppressed fanout used to arrive as an
|
|
248
|
+
* empty dispatch list, which reads exactly like "this declaration dispatches to
|
|
249
|
+
* nothing", and the caller then reported a complete result while eligible hops
|
|
250
|
+
* had been dropped.
|
|
251
|
+
*/
|
|
252
|
+
function traceEdges(graph, id, reverse, focus) {
|
|
253
|
+
const edges = reverse ? graph.incoming(id) : graph.outgoing(id);
|
|
254
|
+
const dispatched = reverse
|
|
255
|
+
? reverseDispatchEdges(graph, id, focus)
|
|
256
|
+
: dispatchEdges(graph, id, focus);
|
|
257
|
+
// Nothing to add is the common case, and a walk visits the nodes with the
|
|
258
|
+
// largest edge lists, so hand back the stored list rather than a copy of it.
|
|
259
|
+
return {
|
|
260
|
+
edges: dispatched.selected.length === 0
|
|
261
|
+
? edges
|
|
262
|
+
: [...edges, ...dispatched.selected],
|
|
263
|
+
omitted: dispatched.omitted,
|
|
264
|
+
};
|
|
265
|
+
}
|
|
266
|
+
// Returned by every no-dispatch path rather than allocated per call, which is
|
|
267
|
+
// why the lists above are readonly: one shared value that anything could push
|
|
268
|
+
// onto would leak a hop from one node's walk into another's.
|
|
269
|
+
const NO_DISPATCH = { selected: [], omitted: [] };
|
|
270
|
+
/**
|
|
271
|
+
* The endpoint the selected open trace would represent if no result bound
|
|
272
|
+
* stopped it. The depth probe and traversal share this decision so focus,
|
|
273
|
+
* external nodes, file nodes, and direction cannot disagree about omission.
|
|
274
|
+
*/
|
|
275
|
+
function eligibleTraceEndpoint(graph, edge, reverse, focus, includeExternal) {
|
|
276
|
+
if (!traversable(edge.kind, focus))
|
|
277
|
+
return undefined;
|
|
278
|
+
const otherId = reverse ? edge.from : edge.to;
|
|
279
|
+
const other = graph.node(otherId);
|
|
280
|
+
if (other === undefined || other.kind === "file")
|
|
281
|
+
return undefined;
|
|
282
|
+
if (!includeExternal && (0, pathPolicy_1.isExternalNode)(other))
|
|
283
|
+
return undefined;
|
|
284
|
+
return { otherId, other };
|
|
285
|
+
}
|
|
218
286
|
function traceSteps(graph, hops) {
|
|
219
287
|
return hops.slice(0, MAX_STEPS).map((hop) => {
|
|
220
288
|
const from = graph.node(hop.from);
|
|
@@ -227,11 +295,6 @@ function traceSteps(graph, hops) {
|
|
|
227
295
|
return `${lhs} -[${hop.kind}${evidence}]-> ${rhs}`;
|
|
228
296
|
});
|
|
229
297
|
}
|
|
230
|
-
/**
|
|
231
|
-
* The shortest dependency path from `startId` to `targetId` over real (non-
|
|
232
|
-
* structural) forward edges, breadth-first, or null when `targetId` is not
|
|
233
|
-
* reachable within maxDepth. Returns the nodes in order and the hops between.
|
|
234
|
-
*/
|
|
235
298
|
/**
|
|
236
299
|
* The symbols both ends of an unreachable path touch.
|
|
237
300
|
*
|
|
@@ -313,34 +376,64 @@ function touchedBy(graph, id, focus) {
|
|
|
313
376
|
}
|
|
314
377
|
return touched;
|
|
315
378
|
}
|
|
379
|
+
/**
|
|
380
|
+
* What to say when the depth bound, not the graph, ended a path search.
|
|
381
|
+
*
|
|
382
|
+
* The caller asked a bounded question and the old answer returned a claim about
|
|
383
|
+
* the whole graph — "they touch nothing in common, so the graph holds no
|
|
384
|
+
* connection between them" — which is the worst thing an index can say wrongly:
|
|
385
|
+
* the caller stops asking and either reads files or concludes the dependency is
|
|
386
|
+
* not there. So report the boundary, and make the continuation one the caller
|
|
387
|
+
* can actually take. At the 12-hop ceiling there is no larger `maxDepth` to
|
|
388
|
+
* retry with, and a message that only invites one would be a dead end of its
|
|
389
|
+
* own; two bounded walks from opposite ends cover twice the distance and are
|
|
390
|
+
* requests the tool already answers.
|
|
391
|
+
*/
|
|
392
|
+
function boundedPathReason(depth) {
|
|
393
|
+
return (`No path was found within the requested depth of ${depth}, but the walk stopped on that bound with eligible graph still ahead of it. ` +
|
|
394
|
+
`This is a boundary, not an absence: the two ends may be connected further out, and nothing here says they are not. ` +
|
|
395
|
+
(depth < MAX_PATH_DEPTH
|
|
396
|
+
? `Re-run the same path request with a larger \`maxDepth\` (up to ${MAX_PATH_DEPTH}).`
|
|
397
|
+
: `\`maxDepth\` is already at its ${MAX_PATH_DEPTH}-hop maximum, so close the gap from both ends: trace forward from the start, trace the target with \`direction: "reverse"\`, then request the path between a symbol both results name.`));
|
|
398
|
+
}
|
|
399
|
+
/**
|
|
400
|
+
* The shortest dependency path from `startId` to `targetId` over real (non-
|
|
401
|
+
* structural) forward edges, breadth-first, within `maxDepth` hops.
|
|
402
|
+
*
|
|
403
|
+
* When no path is found, the walk reports whether the bound stopped it. A
|
|
404
|
+
* boundary is a fact about the request; absence is a fact about the graph, and
|
|
405
|
+
* a search that never reached the far side of its own bound has not established
|
|
406
|
+
* one. Eligibility is the open trace's, so a frontier made only of nodes the
|
|
407
|
+
* selected focus, the external-node policy, a file node, or an earlier visit
|
|
408
|
+
* already excluded is not a frontier and the walk is exhausted.
|
|
409
|
+
*/
|
|
316
410
|
function findPath(graph, startId, targetId, maxDepth, focus, includeExternal) {
|
|
317
411
|
const startNode = graph.node(startId);
|
|
318
412
|
if (startNode === undefined)
|
|
319
|
-
return
|
|
413
|
+
return { bounded: false };
|
|
320
414
|
if (startId === targetId)
|
|
321
|
-
return { path: [startNode], hops: [] };
|
|
415
|
+
return { found: { path: [startNode], hops: [] }, bounded: false };
|
|
322
416
|
const parent = new Map();
|
|
323
417
|
const visited = new Set([startId]);
|
|
418
|
+
let bounded = false;
|
|
324
419
|
let queue = [{ id: startId, depth: 0 }];
|
|
325
420
|
while (queue.length > 0) {
|
|
326
421
|
const next = [];
|
|
327
422
|
for (const { id, depth } of queue) {
|
|
328
|
-
|
|
423
|
+
// The forward step the open trace would take, built in one place so the
|
|
424
|
+
// two walks cannot disagree about what a step follows.
|
|
425
|
+
const { edges: candidates } = traceEdges(graph, id, false, focus);
|
|
426
|
+
if (depth >= maxDepth) {
|
|
427
|
+
if (candidates.some((edge) => pathEndpoint(graph, edge, focus, includeExternal, visited) !==
|
|
428
|
+
undefined))
|
|
429
|
+
bounded = true;
|
|
329
430
|
continue;
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
if (!traversable(edge.kind, focus))
|
|
335
|
-
continue;
|
|
336
|
-
const otherId = edge.to;
|
|
337
|
-
if (visited.has(otherId))
|
|
338
|
-
continue;
|
|
339
|
-
const other = graph.node(otherId);
|
|
340
|
-
if (other === undefined || other.kind === "file")
|
|
341
|
-
continue;
|
|
342
|
-
if (!includeExternal && (0, pathPolicy_1.isExternalNode)(other))
|
|
431
|
+
}
|
|
432
|
+
for (const edge of candidates) {
|
|
433
|
+
const endpoint = pathEndpoint(graph, edge, focus, includeExternal, visited);
|
|
434
|
+
if (endpoint === undefined)
|
|
343
435
|
continue;
|
|
436
|
+
const otherId = endpoint.otherId;
|
|
344
437
|
visited.add(otherId);
|
|
345
438
|
const evidence = (0, runDetails_1.edgeEvidenceOf)(edge);
|
|
346
439
|
parent.set(otherId, {
|
|
@@ -378,14 +471,30 @@ function findPath(graph, startId, targetId, maxDepth, focus, includeExternal) {
|
|
|
378
471
|
hop.evidence = parentEdge.evidence;
|
|
379
472
|
hops.push(hop);
|
|
380
473
|
}
|
|
381
|
-
return { path, hops };
|
|
474
|
+
return { found: { path, hops }, bounded };
|
|
382
475
|
}
|
|
383
476
|
next.push({ id: otherId, depth: depth + 1 });
|
|
384
477
|
}
|
|
385
478
|
}
|
|
386
479
|
queue = next;
|
|
387
480
|
}
|
|
388
|
-
return
|
|
481
|
+
return { bounded };
|
|
482
|
+
}
|
|
483
|
+
/**
|
|
484
|
+
* The node a path expansion would represent, or undefined when the selected
|
|
485
|
+
* policy or an earlier visit excludes it. The expansion and the boundary probe
|
|
486
|
+
* share this decision, so what the walk would have followed and what counts as
|
|
487
|
+
* unexplored graph beyond the bound cannot disagree.
|
|
488
|
+
*
|
|
489
|
+
* A path walk is always forward and, unlike the open trace, a node it already
|
|
490
|
+
* reached is not a continuation: the shortest path to it is already known, so a
|
|
491
|
+
* second arrival adds nothing to explore.
|
|
492
|
+
*/
|
|
493
|
+
function pathEndpoint(graph, edge, focus, includeExternal, visited) {
|
|
494
|
+
const endpoint = eligibleTraceEndpoint(graph, edge, false, focus, includeExternal);
|
|
495
|
+
if (endpoint === undefined || visited.has(endpoint.otherId))
|
|
496
|
+
return undefined;
|
|
497
|
+
return endpoint;
|
|
389
498
|
}
|
|
390
499
|
function orderedEdges(graph, edges, direction, reverse) {
|
|
391
500
|
if (direction !== "impact")
|
|
@@ -456,7 +565,7 @@ function summary(graph, node, depth, withRoles = false, withSignature = false) {
|
|
|
456
565
|
if (depth !== undefined)
|
|
457
566
|
out.depth = depth;
|
|
458
567
|
if (withSignature) {
|
|
459
|
-
const sig = (0, runDetails_1.signatureOf)(graph
|
|
568
|
+
const sig = (0, runDetails_1.signatureOf)(graph, node);
|
|
460
569
|
if (sig !== undefined)
|
|
461
570
|
out.signature = sig;
|
|
462
571
|
}
|
|
@@ -492,15 +601,37 @@ function summary(graph, node, depth, withRoles = false, withSignature = false) {
|
|
|
492
601
|
* the runtime lands in the override.
|
|
493
602
|
*/
|
|
494
603
|
function dispatchEdges(graph, id, focus) {
|
|
495
|
-
if (focus === "types"
|
|
496
|
-
return
|
|
497
|
-
|
|
604
|
+
if (focus === "types")
|
|
605
|
+
return NO_DISPATCH;
|
|
606
|
+
// The checker relations first: almost no node has one, and reading a
|
|
607
|
+
// declaration's own facts walks its ownership chain, which is work worth
|
|
608
|
+
// doing only where there is something to dispatch to.
|
|
609
|
+
let relations;
|
|
498
610
|
for (const edge of graph.incoming(id)) {
|
|
499
|
-
if (
|
|
611
|
+
if (DISPATCH_KINDS.has(edge.kind))
|
|
612
|
+
(relations ??= []).push(edge);
|
|
613
|
+
}
|
|
614
|
+
if (relations === undefined)
|
|
615
|
+
return NO_DISPATCH;
|
|
616
|
+
const declaration = graph.node(id);
|
|
617
|
+
if (declaration === undefined || hasDeclarationBody(graph, declaration))
|
|
618
|
+
return NO_DISPATCH;
|
|
619
|
+
const out = [];
|
|
620
|
+
// Per implementation, not per relation. A class may name one base in two
|
|
621
|
+
// heritage clauses — `class Impl extends Base implements Base` is legal — and
|
|
622
|
+
// the producer records the member pair once per clause, as `overrides` and as
|
|
623
|
+
// `implements`. That is one implementation and one crossing: emitting it
|
|
624
|
+
// twice would repeat the hop and count the same class twice against the hub
|
|
625
|
+
// cut.
|
|
626
|
+
const dispatched = new Set();
|
|
627
|
+
for (const edge of relations) {
|
|
628
|
+
if (dispatched.has(edge.from))
|
|
500
629
|
continue;
|
|
501
630
|
const implementation = graph.node(edge.from);
|
|
502
|
-
if (implementation === undefined ||
|
|
631
|
+
if (implementation === undefined ||
|
|
632
|
+
!hasDeclarationBody(graph, implementation))
|
|
503
633
|
continue;
|
|
634
|
+
dispatched.add(edge.from);
|
|
504
635
|
out.push({
|
|
505
636
|
from: id,
|
|
506
637
|
to: edge.from,
|
|
@@ -508,15 +639,114 @@ function dispatchEdges(graph, id, focus) {
|
|
|
508
639
|
...(edge.evidence !== undefined ? { evidence: edge.evidence } : {}),
|
|
509
640
|
});
|
|
510
641
|
}
|
|
511
|
-
|
|
642
|
+
// Above the hub cut the fanout stops being a trace and starts being a
|
|
643
|
+
// listing, so the walk does not follow it — but the hops are real and their
|
|
644
|
+
// absence is an omission the caller has to be able to report.
|
|
645
|
+
return out.length >= DISPATCH_HUB
|
|
646
|
+
? { selected: [], omitted: out }
|
|
647
|
+
: { selected: out, omitted: [] };
|
|
648
|
+
}
|
|
649
|
+
/**
|
|
650
|
+
* The declaration a change to this implementation is a change to.
|
|
651
|
+
*
|
|
652
|
+
* `dispatches` is one fact and both directions have to see it. Forward, a call
|
|
653
|
+
* that lands on a bodyless declaration continues in the implementation that
|
|
654
|
+
* runs; reverse, a change to that implementation is a change every caller of
|
|
655
|
+
* the declaration feels — and `impact` is the query an agent runs _before_
|
|
656
|
+
* editing a method. The checker relation is oriented implementation-to-base, so
|
|
657
|
+
* from the implementation it is an outgoing edge and a reverse walk, which only
|
|
658
|
+
* reads incoming edges, never sees it. Both halves of the path are one step
|
|
659
|
+
* away in a direction the traversal does not take.
|
|
660
|
+
*
|
|
661
|
+
* The synthetic edge is the forward one, unchanged, so eligibility, checker
|
|
662
|
+
* validity, and the hub cut cannot drift apart between the two directions: ask
|
|
663
|
+
* the base what it dispatches to, and keep the edges that land here.
|
|
664
|
+
*/
|
|
665
|
+
function reverseDispatchEdges(graph, id, focus) {
|
|
666
|
+
if (focus === "types")
|
|
667
|
+
return NO_DISPATCH;
|
|
668
|
+
const selected = [];
|
|
669
|
+
const omitted = [];
|
|
670
|
+
const bases = new Set();
|
|
671
|
+
for (const edge of graph.outgoing(id)) {
|
|
672
|
+
if (!DISPATCH_KINDS.has(edge.kind) || bases.has(edge.to))
|
|
673
|
+
continue;
|
|
674
|
+
bases.add(edge.to);
|
|
675
|
+
const fanout = dispatchEdges(graph, edge.to, focus);
|
|
676
|
+
for (const dispatch of fanout.selected)
|
|
677
|
+
if (dispatch.to === id)
|
|
678
|
+
selected.push(dispatch);
|
|
679
|
+
// The base's fanout is bounded as a whole, so a reverse walk that lands on
|
|
680
|
+
// a suppressed sibling has the same omission to report as the forward one.
|
|
681
|
+
for (const dispatch of fanout.omitted)
|
|
682
|
+
if (dispatch.to === id)
|
|
683
|
+
omitted.push(dispatch);
|
|
684
|
+
}
|
|
685
|
+
return { selected, omitted };
|
|
512
686
|
}
|
|
513
|
-
/**
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
687
|
+
/**
|
|
688
|
+
* Whether the declaration this node stands for has a body of its own.
|
|
689
|
+
*
|
|
690
|
+
* Having a body and naming a modeled dependency are different facts. Counting
|
|
691
|
+
* outgoing `calls`/`accesses`/`instantiates`/`renders` edges measures the
|
|
692
|
+
* second and answers as though it were the first, and it is wrong in both
|
|
693
|
+
* directions: an implementation whose body returns a literal, throws, or only
|
|
694
|
+
* moves locals around has degree zero and was refused as a dispatch target,
|
|
695
|
+
* while a concrete base method was promoted through its own override the moment
|
|
696
|
+
* its body stopped naming anything the graph models. Two graphs identical in
|
|
697
|
+
* every declaration fact then answered differently because of one statement
|
|
698
|
+
* inside a body.
|
|
699
|
+
*
|
|
700
|
+
* So read the declaration instead. A type surface has no body; `abstract` and
|
|
701
|
+
* `declare` take it away; an interface member and anything inside an ambient
|
|
702
|
+
* container never had one; a `.d.ts` declaration is ambient whether or not the
|
|
703
|
+
* keyword is written; and an external leaf has a body the graph deliberately
|
|
704
|
+
* does not hold. Everything else is a concrete declaration, which is a real
|
|
705
|
+
* destination and is never promoted through an override, whatever it calls.
|
|
706
|
+
*/
|
|
707
|
+
function hasDeclarationBody(graph, node) {
|
|
708
|
+
if (BODYLESS_KINDS.has(node.kind))
|
|
709
|
+
return false;
|
|
710
|
+
if ((0, pathPolicy_1.isExternalNode)(node))
|
|
711
|
+
return false;
|
|
712
|
+
if ((0, pathPolicy_1.isDeclarationFile)(node.file))
|
|
713
|
+
return false;
|
|
714
|
+
if (hasBodylessModifier(node))
|
|
715
|
+
return false;
|
|
716
|
+
return !inBodylessContainer(graph, node);
|
|
717
|
+
}
|
|
718
|
+
function hasBodylessModifier(node) {
|
|
719
|
+
return node.modifiers?.some((m) => BODYLESS_MODIFIERS.has(m)) === true;
|
|
720
|
+
}
|
|
721
|
+
/**
|
|
722
|
+
* Whether an owner up the `contains` tree makes this declaration bodyless: an
|
|
723
|
+
* interface, or an ambient container. A member writes no keyword of its own —
|
|
724
|
+
* `declare` on a class or namespace is not repeated on what it holds — so the
|
|
725
|
+
* fact lives on the owner and the walk has to go get it.
|
|
726
|
+
*/
|
|
727
|
+
function inBodylessContainer(graph, node) {
|
|
728
|
+
const seen = new Set([node.id]);
|
|
729
|
+
let current = node;
|
|
730
|
+
while (current !== undefined) {
|
|
731
|
+
const container = containerOf(graph, current);
|
|
732
|
+
if (container === undefined || container.kind === "file")
|
|
733
|
+
return false;
|
|
734
|
+
if (seen.has(container.id))
|
|
735
|
+
return false;
|
|
736
|
+
seen.add(container.id);
|
|
737
|
+
if (container.kind === "interface" || hasBodylessModifier(container))
|
|
517
738
|
return true;
|
|
739
|
+
current = container;
|
|
740
|
+
}
|
|
518
741
|
return false;
|
|
519
742
|
}
|
|
743
|
+
/** The declaration that owns this one, through the synthesized ownership tree. */
|
|
744
|
+
function containerOf(graph, node) {
|
|
745
|
+
for (const edge of graph.incoming(node.id))
|
|
746
|
+
if (edge.kind === "contains")
|
|
747
|
+
return graph.node(edge.from);
|
|
748
|
+
return undefined;
|
|
749
|
+
}
|
|
520
750
|
/** An edge the trace should follow: a real dependency, not a structural edge. */
|
|
521
751
|
function traversable(kind, focus) {
|
|
522
752
|
if (kind === "contains" || kind === "exports" || kind === "imports") {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runTrace.js","sourceRoot":"","sources":["../../src/server/runTrace.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"runTrace.js","sourceRoot":"","sources":["../../src/server/runTrace.ts"],"names":[],"mappings":"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"}
|
|
@@ -152,13 +152,14 @@ export declare namespace ITtscGraphApplication {
|
|
|
152
152
|
* resolves to the type-checked program for the snapshot the call synced to,
|
|
153
153
|
* so opening a file it cites only returns a fact already in it.
|
|
154
154
|
*
|
|
155
|
-
* The audit is operation-aware. For the
|
|
156
|
-
* `
|
|
157
|
-
*
|
|
158
|
-
*
|
|
159
|
-
*
|
|
160
|
-
*
|
|
161
|
-
*
|
|
155
|
+
* The audit is operation-aware. For the walks from a named handle (`trace`,
|
|
156
|
+
* `overview`) it reports the result as the structure the graph holds,
|
|
157
|
+
* bounded where `truncated` says. For `details` it reports the two halves of
|
|
158
|
+
* a resolved symbol: its own shape returned whole, its fan-out returned as a
|
|
159
|
+
* slice with `trace` for the rest. For the ranked operations (`lookup`,
|
|
160
|
+
* `entrypoints`, `tour`) it adds that the selection is heuristic — matched,
|
|
161
|
+
* scored, ranked, and limited against the question — so the facts are
|
|
162
|
+
* verified but the shortlist's coverage is the caller's to judge.
|
|
162
163
|
*/
|
|
163
164
|
audit: string;
|
|
164
165
|
/** What to do with `result`: answer, inspect one named request, or escape. */
|
|
@@ -42,22 +42,24 @@ export declare namespace ITtscGraphDetails {
|
|
|
42
42
|
*/
|
|
43
43
|
neighbors?: boolean;
|
|
44
44
|
/**
|
|
45
|
-
*
|
|
46
|
-
*
|
|
45
|
+
* Dependencies and dependents per side when `neighbors:true`. A small
|
|
46
|
+
* orientation slice by default; what uses a symbol grows with its
|
|
47
|
+
* popularity, so `trace` answers the whole "who uses this".
|
|
47
48
|
*
|
|
48
49
|
* @default 2
|
|
49
50
|
*/
|
|
50
51
|
neighborLimit?: number;
|
|
51
52
|
/**
|
|
52
|
-
*
|
|
53
|
-
*
|
|
54
|
-
*
|
|
53
|
+
* Owned members for a container or object literal. The complete outline by
|
|
54
|
+
* default — a class's members and an enum's are the symbol itself, so they
|
|
55
|
+
* are not sampled. Pass a number to cap.
|
|
55
56
|
*/
|
|
56
57
|
memberLimit?: number;
|
|
57
58
|
/**
|
|
58
|
-
*
|
|
59
|
+
* Direct execution and type references per group. A small orientation slice
|
|
60
|
+
* by default; `trace` follows the whole fan-out.
|
|
59
61
|
*
|
|
60
|
-
* @default
|
|
62
|
+
* @default 2
|
|
61
63
|
*/
|
|
62
64
|
dependencyLimit?: number;
|
|
63
65
|
/**
|
|
@@ -115,7 +117,15 @@ export declare namespace ITtscGraphDetails {
|
|
|
115
117
|
types?: IReference[];
|
|
116
118
|
/** Concrete nodes that implement or override this interface/base member. */
|
|
117
119
|
implementedBy?: IReference[];
|
|
118
|
-
/**
|
|
120
|
+
/**
|
|
121
|
+
* The complete value set a type alias or enum admits, in TypeScript source
|
|
122
|
+
* form (`"a"`, `1`, `true`, `null`) — the checker's resolved union members,
|
|
123
|
+
* not the quoted tokens that happened to fit in `signature`.
|
|
124
|
+
*
|
|
125
|
+
* Absent when the type has no enumerable value set. A `signature` is capped
|
|
126
|
+
* at the declaration head, so for a union or enum written across several
|
|
127
|
+
* lines this is the field that carries the members.
|
|
128
|
+
*/
|
|
119
129
|
literals?: string[];
|
|
120
130
|
/**
|
|
121
131
|
* Owned symbol or top-level property outline a consumer reaches for on a
|