@ttsc/graph 0.19.2 → 0.19.3

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.
Files changed (36) hide show
  1. package/lib/TtscGraphApplication.js +3 -1
  2. package/lib/TtscGraphApplication.js.map +1 -1
  3. package/lib/index.d.ts +1 -1
  4. package/lib/index.js +2 -1
  5. package/lib/index.js.map +1 -1
  6. package/lib/model/TtscGraphSession.js +109 -49
  7. package/lib/model/TtscGraphSession.js.map +1 -1
  8. package/lib/model/loadGraph.d.ts +14 -0
  9. package/lib/model/loadGraph.js +114 -66
  10. package/lib/model/loadGraph.js.map +1 -1
  11. package/lib/resolveGraphBinary.d.ts +9 -3
  12. package/lib/resolveGraphBinary.js +9 -3
  13. package/lib/resolveGraphBinary.js.map +1 -1
  14. package/lib/server/createServer.js +5 -5
  15. package/lib/server/resultAudit.d.ts +29 -8
  16. package/lib/server/resultAudit.js +47 -9
  17. package/lib/server/resultAudit.js.map +1 -1
  18. package/lib/server/runDetails.d.ts +7 -0
  19. package/lib/server/runDetails.js +87 -58
  20. package/lib/server/runDetails.js.map +1 -1
  21. package/lib/structures/ITtscGraphApplication.d.ts +8 -7
  22. package/lib/structures/ITtscGraphDetails.d.ts +18 -8
  23. package/lib/structures/ITtscGraphNode.d.ts +37 -0
  24. package/lib/structures/ITtscGraphTour.d.ts +1 -1
  25. package/package.json +5 -2
  26. package/src/TtscGraphApplication.ts +4 -1
  27. package/src/index.ts +1 -0
  28. package/src/model/TtscGraphSession.ts +27 -0
  29. package/src/model/loadGraph.ts +6 -1
  30. package/src/resolveGraphBinary.ts +9 -3
  31. package/src/server/resultAudit.ts +47 -8
  32. package/src/server/runDetails.ts +95 -70
  33. package/src/structures/ITtscGraphApplication.ts +8 -7
  34. package/src/structures/ITtscGraphDetails.ts +18 -8
  35. package/src/structures/ITtscGraphNode.ts +40 -0
  36. package/src/structures/ITtscGraphTour.ts +1 -1
@@ -36,6 +36,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
36
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.DUMP_SCHEMA_VERSION = void 0;
39
40
  exports.loadGraph = loadGraph;
40
41
  const _assertGuard_1 = __importStar(require("typia/lib/internal/_assertGuard"));
41
42
  const node_child_process_1 = require("node:child_process");
@@ -54,8 +55,13 @@ const MAX_DUMP_BYTES = 1024 * 1024 * 1024;
54
55
  * `packages/ttsc/internal/graph/provenance.go`. The two are hand-synchronized,
55
56
  * and `dump_schema_version_matches_the_typescript_client_test.go` reads this
56
57
  * constant out of this file and fails if the pair drifts.
58
+ *
59
+ * Exported because the resident session reads the same dump body over the serve
60
+ * protocol and has to hold it to the same number: the envelope's version and the
61
+ * body's are independent, so a producer can speak this protocol and still send a
62
+ * body from another schema.
57
63
  */
58
- const DUMP_SCHEMA_VERSION = 1;
64
+ exports.DUMP_SCHEMA_VERSION = 3;
59
65
  /**
60
66
  * Build the resident {@link TtscGraphMemory} for a project by running `ttscgraph
61
67
  * dump` once and loading its JSON. This is the one-shot path for direct callers
@@ -114,8 +120,8 @@ function parseDump(json) {
114
120
  return input => "object" === typeof input && null !== input && _io0(input);
115
121
  })()(value) ? value.provenance.schemaVersion
116
122
  : undefined;
117
- if (version !== DUMP_SCHEMA_VERSION) {
118
- throw new Error(`@ttsc/graph: ttscgraph dump is schema ${version === undefined ? "unknown" : `v${String(version)}`}, this client reads v${String(DUMP_SCHEMA_VERSION)}. ` +
123
+ if (version !== exports.DUMP_SCHEMA_VERSION) {
124
+ throw new Error(`@ttsc/graph: ttscgraph dump is schema ${version === undefined ? "unknown" : `v${String(version)}`}, this client reads v${String(exports.DUMP_SCHEMA_VERSION)}. ` +
119
125
  "Install a matching `ttsc` (the binary resolves from the target " +
120
126
  "project, or from TTSC_GRAPH_BINARY).");
121
127
  }
@@ -124,7 +130,7 @@ function parseDump(json) {
124
130
  const _iv0 = new Set(["class", "enum", "external_symbol", "file", "function", "interface", "method", "module", "namespace", "package", "parameter", "property", "type", "variable"]);
125
131
  const _ip1 = input => "string" === typeof input["name"];
126
132
  const _iv1 = new Set(["abstract", "async", "const", "declare", "default", "export", "optional", "private", "protected", "public", "readonly", "static"]);
127
- const _ip2 = input => undefined === input["evidence"] || "object" === typeof input["evidence"] && null !== input["evidence"] && _io11(input["evidence"]);
133
+ const _ip2 = input => undefined === input["evidence"] || "object" === typeof input["evidence"] && null !== input["evidence"] && _io12(input["evidence"]);
128
134
  const _iv2 = new Set(["accesses", "calls", "contains", "decorates", "dispatches", "exports", "extends", "implements", "imports", "instantiates", "overrides", "renders", "tests", "type_ref"]);
129
135
  const _ap0 = (input, _path, _exceptionable = true) => "string" === typeof input["file"] || _assertGuard_1._assertGuard(_exceptionable, {
130
136
  method: "typia.assert",
@@ -147,7 +153,7 @@ function parseDump(json) {
147
153
  path: _path + ".evidence",
148
154
  expected: "(ITtscGraphSpan | undefined)",
149
155
  value: input["evidence"]
150
- }, _errorFactory)) && _ao11(input["evidence"], _path + ".evidence", true && _exceptionable) || _assertGuard_1._assertGuard(_exceptionable, {
156
+ }, _errorFactory)) && _ao12(input["evidence"], _path + ".evidence", true && _exceptionable) || _assertGuard_1._assertGuard(_exceptionable, {
151
157
  method: "typia.assert",
152
158
  path: _path + ".evidence",
153
159
  expected: "(ITtscGraphSpan | undefined)",
@@ -180,14 +186,14 @@ function parseDump(json) {
180
186
  path: _path + ".diagnostics",
181
187
  expected: "Array<ITtscGraphDump.IDiagnostic>",
182
188
  value: input.diagnostics
183
- }, _errorFactory)) && input.diagnostics.every((elem, _index11) => ("object" === typeof elem && null !== elem || _assertGuard_1._assertGuard(_exceptionable, {
189
+ }, _errorFactory)) && input.diagnostics.every((elem, _index13) => ("object" === typeof elem && null !== elem || _assertGuard_1._assertGuard(_exceptionable, {
184
190
  method: "typia.assert",
185
- path: _path + ".diagnostics[" + _index11 + "]",
191
+ path: _path + ".diagnostics[" + _index13 + "]",
186
192
  expected: "ITtscGraphDump.IDiagnostic",
187
193
  value: elem
188
- }, _errorFactory)) && _ao7(elem, _path + ".diagnostics[" + _index11 + "]", true && _exceptionable) || _assertGuard_1._assertGuard(_exceptionable, {
194
+ }, _errorFactory)) && _ao7(elem, _path + ".diagnostics[" + _index13 + "]", true && _exceptionable) || _assertGuard_1._assertGuard(_exceptionable, {
189
195
  method: "typia.assert",
190
- path: _path + ".diagnostics[" + _index11 + "]",
196
+ path: _path + ".diagnostics[" + _index13 + "]",
191
197
  expected: "ITtscGraphDump.IDiagnostic",
192
198
  value: elem
193
199
  }, _errorFactory)) || _assertGuard_1._assertGuard(_exceptionable, {
@@ -200,14 +206,14 @@ function parseDump(json) {
200
206
  path: _path + ".nodes",
201
207
  expected: "Array<ITtscGraphDump.INode>",
202
208
  value: input.nodes
203
- }, _errorFactory)) && input.nodes.every((elem, _index12) => ("object" === typeof elem && null !== elem || _assertGuard_1._assertGuard(_exceptionable, {
209
+ }, _errorFactory)) && input.nodes.every((elem, _index14) => ("object" === typeof elem && null !== elem || _assertGuard_1._assertGuard(_exceptionable, {
204
210
  method: "typia.assert",
205
- path: _path + ".nodes[" + _index12 + "]",
211
+ path: _path + ".nodes[" + _index14 + "]",
206
212
  expected: "ITtscGraphDump.INode",
207
213
  value: elem
208
- }, _errorFactory)) && _ao8(elem, _path + ".nodes[" + _index12 + "]", true && _exceptionable) || _assertGuard_1._assertGuard(_exceptionable, {
214
+ }, _errorFactory)) && _ao8(elem, _path + ".nodes[" + _index14 + "]", true && _exceptionable) || _assertGuard_1._assertGuard(_exceptionable, {
209
215
  method: "typia.assert",
210
- path: _path + ".nodes[" + _index12 + "]",
216
+ path: _path + ".nodes[" + _index14 + "]",
211
217
  expected: "ITtscGraphDump.INode",
212
218
  value: elem
213
219
  }, _errorFactory)) || _assertGuard_1._assertGuard(_exceptionable, {
@@ -220,14 +226,14 @@ function parseDump(json) {
220
226
  path: _path + ".edges",
221
227
  expected: "Array<ITtscGraphDump.IEdge>",
222
228
  value: input.edges
223
- }, _errorFactory)) && input.edges.every((elem, _index13) => ("object" === typeof elem && null !== elem || _assertGuard_1._assertGuard(_exceptionable, {
229
+ }, _errorFactory)) && input.edges.every((elem, _index15) => ("object" === typeof elem && null !== elem || _assertGuard_1._assertGuard(_exceptionable, {
224
230
  method: "typia.assert",
225
- path: _path + ".edges[" + _index13 + "]",
231
+ path: _path + ".edges[" + _index15 + "]",
226
232
  expected: "ITtscGraphDump.IEdge",
227
233
  value: elem
228
- }, _errorFactory)) && _ao12(elem, _path + ".edges[" + _index13 + "]", true && _exceptionable) || _assertGuard_1._assertGuard(_exceptionable, {
234
+ }, _errorFactory)) && _ao13(elem, _path + ".edges[" + _index15 + "]", true && _exceptionable) || _assertGuard_1._assertGuard(_exceptionable, {
229
235
  method: "typia.assert",
230
- path: _path + ".edges[" + _index13 + "]",
236
+ path: _path + ".edges[" + _index15 + "]",
231
237
  expected: "ITtscGraphDump.IEdge",
232
238
  value: elem
233
239
  }, _errorFactory)) || _assertGuard_1._assertGuard(_exceptionable, {
@@ -246,9 +252,9 @@ function parseDump(json) {
246
252
  path: _path + ".capabilities",
247
253
  expected: "Array<string>",
248
254
  value: input.capabilities
249
- }, _errorFactory)) && input.capabilities.every((elem, _index14) => "string" === typeof elem || _assertGuard_1._assertGuard(_exceptionable, {
255
+ }, _errorFactory)) && input.capabilities.every((elem, _index16) => "string" === typeof elem || _assertGuard_1._assertGuard(_exceptionable, {
250
256
  method: "typia.assert",
251
- path: _path + ".capabilities[" + _index14 + "]",
257
+ path: _path + ".capabilities[" + _index16 + "]",
252
258
  expected: "string",
253
259
  value: elem
254
260
  }, _errorFactory)) || _assertGuard_1._assertGuard(_exceptionable, {
@@ -281,14 +287,14 @@ function parseDump(json) {
281
287
  path: _path + ".sources",
282
288
  expected: "Array<ITtscGraphDump.ISourceDigest>",
283
289
  value: input.sources
284
- }, _errorFactory)) && input.sources.every((elem, _index15) => ("object" === typeof elem && null !== elem || _assertGuard_1._assertGuard(_exceptionable, {
290
+ }, _errorFactory)) && input.sources.every((elem, _index17) => ("object" === typeof elem && null !== elem || _assertGuard_1._assertGuard(_exceptionable, {
285
291
  method: "typia.assert",
286
- path: _path + ".sources[" + _index15 + "]",
292
+ path: _path + ".sources[" + _index17 + "]",
287
293
  expected: "ITtscGraphDump.ISourceDigest",
288
294
  value: elem
289
- }, _errorFactory)) && _ao6(elem, _path + ".sources[" + _index15 + "]", true && _exceptionable) || _assertGuard_1._assertGuard(_exceptionable, {
295
+ }, _errorFactory)) && _ao6(elem, _path + ".sources[" + _index17 + "]", true && _exceptionable) || _assertGuard_1._assertGuard(_exceptionable, {
290
296
  method: "typia.assert",
291
- path: _path + ".sources[" + _index15 + "]",
297
+ path: _path + ".sources[" + _index17 + "]",
292
298
  expected: "ITtscGraphDump.ISourceDigest",
293
299
  value: elem
294
300
  }, _errorFactory)) || _assertGuard_1._assertGuard(_exceptionable, {
@@ -297,13 +303,34 @@ function parseDump(json) {
297
303
  expected: "Array<ITtscGraphDump.ISourceDigest>",
298
304
  value: input.sources
299
305
  }, _errorFactory));
300
- const _ao10 = (input, _path, _exceptionable = true) => undefined === input.literal || "string" === typeof input.literal || "number" === typeof input.literal || "boolean" === typeof input.literal || _assertGuard_1._assertGuard(_exceptionable, {
306
+ const _ao10 = (input, _path, _exceptionable = true) => _ap1(input, _path, true && _exceptionable) && ((Array.isArray(input.arguments) || _assertGuard_1._assertGuard(_exceptionable, {
307
+ method: "typia.assert",
308
+ path: _path + ".arguments",
309
+ expected: "Array<ITtscGraphDecorator.IArgument>",
310
+ value: input.arguments
311
+ }, _errorFactory)) && input.arguments.every((elem, _index24) => ("object" === typeof elem && null !== elem && false === Array.isArray(elem) || _assertGuard_1._assertGuard(_exceptionable, {
312
+ method: "typia.assert",
313
+ path: _path + ".arguments[" + _index24 + "]",
314
+ expected: "ITtscGraphDecorator.IArgument",
315
+ value: elem
316
+ }, _errorFactory)) && _ao11(elem, _path + ".arguments[" + _index24 + "]", true && _exceptionable) || _assertGuard_1._assertGuard(_exceptionable, {
317
+ method: "typia.assert",
318
+ path: _path + ".arguments[" + _index24 + "]",
319
+ expected: "ITtscGraphDecorator.IArgument",
320
+ value: elem
321
+ }, _errorFactory)) || _assertGuard_1._assertGuard(_exceptionable, {
322
+ method: "typia.assert",
323
+ path: _path + ".arguments",
324
+ expected: "Array<ITtscGraphDecorator.IArgument>",
325
+ value: input.arguments
326
+ }, _errorFactory));
327
+ const _ao11 = (input, _path, _exceptionable = true) => undefined === input.literal || "string" === typeof input.literal || "number" === typeof input.literal || "boolean" === typeof input.literal || _assertGuard_1._assertGuard(_exceptionable, {
301
328
  method: "typia.assert",
302
329
  path: _path + ".literal",
303
330
  expected: "(boolean | number | string | undefined)",
304
331
  value: input.literal
305
332
  }, _errorFactory);
306
- const _ao11 = (input, _path, _exceptionable = true) => (undefined === input.file || "string" === typeof input.file || _assertGuard_1._assertGuard(_exceptionable, {
333
+ const _ao12 = (input, _path, _exceptionable = true) => (undefined === input.file || "string" === typeof input.file || _assertGuard_1._assertGuard(_exceptionable, {
307
334
  method: "typia.assert",
308
335
  path: _path + ".file",
309
336
  expected: "(string | undefined)",
@@ -329,7 +356,7 @@ function parseDump(json) {
329
356
  expected: "(number | undefined)",
330
357
  value: input.endCol
331
358
  }, _errorFactory));
332
- const _ao12 = (input, _path, _exceptionable = true) => ("string" === typeof input.from || _assertGuard_1._assertGuard(_exceptionable, {
359
+ const _ao13 = (input, _path, _exceptionable = true) => ("string" === typeof input.from || _assertGuard_1._assertGuard(_exceptionable, {
333
360
  method: "typia.assert",
334
361
  path: _path + ".from",
335
362
  expected: "string",
@@ -366,14 +393,14 @@ function parseDump(json) {
366
393
  path: _path + ".configs",
367
394
  expected: "Array<ITtscGraphDump.IFileDigest>",
368
395
  value: input.configs
369
- }, _errorFactory)) && input.configs.every((elem, _index16) => ("object" === typeof elem && null !== elem || _assertGuard_1._assertGuard(_exceptionable, {
396
+ }, _errorFactory)) && input.configs.every((elem, _index18) => ("object" === typeof elem && null !== elem || _assertGuard_1._assertGuard(_exceptionable, {
370
397
  method: "typia.assert",
371
- path: _path + ".configs[" + _index16 + "]",
398
+ path: _path + ".configs[" + _index18 + "]",
372
399
  expected: "ITtscGraphDump.IFileDigest",
373
400
  value: elem
374
- }, _errorFactory)) && _ao4(elem, _path + ".configs[" + _index16 + "]", true && _exceptionable) || _assertGuard_1._assertGuard(_exceptionable, {
401
+ }, _errorFactory)) && _ao4(elem, _path + ".configs[" + _index18 + "]", true && _exceptionable) || _assertGuard_1._assertGuard(_exceptionable, {
375
402
  method: "typia.assert",
376
- path: _path + ".configs[" + _index16 + "]",
403
+ path: _path + ".configs[" + _index18 + "]",
377
404
  expected: "ITtscGraphDump.IFileDigest",
378
405
  value: elem
379
406
  }, _errorFactory)) || _assertGuard_1._assertGuard(_exceptionable, {
@@ -386,14 +413,14 @@ function parseDump(json) {
386
413
  path: _path + ".roots",
387
414
  expected: "Array<ITtscGraphDump.IRootFile>",
388
415
  value: input.roots
389
- }, _errorFactory)) && input.roots.every((elem, _index17) => ("object" === typeof elem && null !== elem || _assertGuard_1._assertGuard(_exceptionable, {
416
+ }, _errorFactory)) && input.roots.every((elem, _index19) => ("object" === typeof elem && null !== elem || _assertGuard_1._assertGuard(_exceptionable, {
390
417
  method: "typia.assert",
391
- path: _path + ".roots[" + _index17 + "]",
418
+ path: _path + ".roots[" + _index19 + "]",
392
419
  expected: "ITtscGraphDump.IRootFile",
393
420
  value: elem
394
- }, _errorFactory)) && _ao5(elem, _path + ".roots[" + _index17 + "]", true && _exceptionable) || _assertGuard_1._assertGuard(_exceptionable, {
421
+ }, _errorFactory)) && _ao5(elem, _path + ".roots[" + _index19 + "]", true && _exceptionable) || _assertGuard_1._assertGuard(_exceptionable, {
395
422
  method: "typia.assert",
396
- path: _path + ".roots[" + _index17 + "]",
423
+ path: _path + ".roots[" + _index19 + "]",
397
424
  expected: "ITtscGraphDump.IRootFile",
398
425
  value: elem
399
426
  }, _errorFactory)) || _assertGuard_1._assertGuard(_exceptionable, {
@@ -491,9 +518,9 @@ function parseDump(json) {
491
518
  path: _path + ".modifiers",
492
519
  expected: "(Array<TtscGraphNodeModifier> | undefined)",
493
520
  value: input.modifiers
494
- }, _errorFactory)) && input.modifiers.every((elem, _index18) => true === _av1.has(elem) || _assertGuard_1._assertGuard(_exceptionable, {
521
+ }, _errorFactory)) && input.modifiers.every((elem, _index20) => true === _av1.has(elem) || _assertGuard_1._assertGuard(_exceptionable, {
495
522
  method: "typia.assert",
496
- path: _path + ".modifiers[" + _index18 + "]",
523
+ path: _path + ".modifiers[" + _index20 + "]",
497
524
  expected: _ae1,
498
525
  value: elem
499
526
  }, _errorFactory)) || _assertGuard_1._assertGuard(_exceptionable, {
@@ -501,19 +528,54 @@ function parseDump(json) {
501
528
  path: _path + ".modifiers",
502
529
  expected: "(Array<TtscGraphNodeModifier> | undefined)",
503
530
  value: input.modifiers
531
+ }, _errorFactory)) && (undefined === input.literals || (Array.isArray(input.literals) || _assertGuard_1._assertGuard(_exceptionable, {
532
+ method: "typia.assert",
533
+ path: _path + ".literals",
534
+ expected: "(Array<string> | undefined)",
535
+ value: input.literals
536
+ }, _errorFactory)) && input.literals.every((elem, _index21) => "string" === typeof elem || _assertGuard_1._assertGuard(_exceptionable, {
537
+ method: "typia.assert",
538
+ path: _path + ".literals[" + _index21 + "]",
539
+ expected: "string",
540
+ value: elem
541
+ }, _errorFactory)) || _assertGuard_1._assertGuard(_exceptionable, {
542
+ method: "typia.assert",
543
+ path: _path + ".literals",
544
+ expected: "(Array<string> | undefined)",
545
+ value: input.literals
546
+ }, _errorFactory)) && (undefined === input.enumMembers || (Array.isArray(input.enumMembers) || _assertGuard_1._assertGuard(_exceptionable, {
547
+ method: "typia.assert",
548
+ path: _path + ".enumMembers",
549
+ expected: "(Array<ITtscGraphNode.IEnumMember> | undefined)",
550
+ value: input.enumMembers
551
+ }, _errorFactory)) && input.enumMembers.every((elem, _index22) => ("object" === typeof elem && null !== elem || _assertGuard_1._assertGuard(_exceptionable, {
552
+ method: "typia.assert",
553
+ path: _path + ".enumMembers[" + _index22 + "]",
554
+ expected: "ITtscGraphNode.IEnumMember",
555
+ value: elem
556
+ }, _errorFactory)) && _ao9(elem, _path + ".enumMembers[" + _index22 + "]", true && _exceptionable) || _assertGuard_1._assertGuard(_exceptionable, {
557
+ method: "typia.assert",
558
+ path: _path + ".enumMembers[" + _index22 + "]",
559
+ expected: "ITtscGraphNode.IEnumMember",
560
+ value: elem
561
+ }, _errorFactory)) || _assertGuard_1._assertGuard(_exceptionable, {
562
+ method: "typia.assert",
563
+ path: _path + ".enumMembers",
564
+ expected: "(Array<ITtscGraphNode.IEnumMember> | undefined)",
565
+ value: input.enumMembers
504
566
  }, _errorFactory)) && (undefined === input.decorators || (Array.isArray(input.decorators) || _assertGuard_1._assertGuard(_exceptionable, {
505
567
  method: "typia.assert",
506
568
  path: _path + ".decorators",
507
569
  expected: "(Array<ITtscGraphDecorator> | undefined)",
508
570
  value: input.decorators
509
- }, _errorFactory)) && input.decorators.every((elem, _index19) => ("object" === typeof elem && null !== elem || _assertGuard_1._assertGuard(_exceptionable, {
571
+ }, _errorFactory)) && input.decorators.every((elem, _index23) => ("object" === typeof elem && null !== elem || _assertGuard_1._assertGuard(_exceptionable, {
510
572
  method: "typia.assert",
511
- path: _path + ".decorators[" + _index19 + "]",
573
+ path: _path + ".decorators[" + _index23 + "]",
512
574
  expected: "ITtscGraphDecorator",
513
575
  value: elem
514
- }, _errorFactory)) && _ao9(elem, _path + ".decorators[" + _index19 + "]", true && _exceptionable) || _assertGuard_1._assertGuard(_exceptionable, {
576
+ }, _errorFactory)) && _ao10(elem, _path + ".decorators[" + _index23 + "]", true && _exceptionable) || _assertGuard_1._assertGuard(_exceptionable, {
515
577
  method: "typia.assert",
516
- path: _path + ".decorators[" + _index19 + "]",
578
+ path: _path + ".decorators[" + _index23 + "]",
517
579
  expected: "ITtscGraphDecorator",
518
580
  value: elem
519
581
  }, _errorFactory)) || _assertGuard_1._assertGuard(_exceptionable, {
@@ -526,46 +588,32 @@ function parseDump(json) {
526
588
  path: _path + ".implementation",
527
589
  expected: "(ITtscGraphSpan | undefined)",
528
590
  value: input.implementation
529
- }, _errorFactory)) && _ao11(input.implementation, _path + ".implementation", true && _exceptionable) || _assertGuard_1._assertGuard(_exceptionable, {
591
+ }, _errorFactory)) && _ao12(input.implementation, _path + ".implementation", true && _exceptionable) || _assertGuard_1._assertGuard(_exceptionable, {
530
592
  method: "typia.assert",
531
593
  path: _path + ".implementation",
532
594
  expected: "(ITtscGraphSpan | undefined)",
533
595
  value: input.implementation
534
596
  }, _errorFactory));
535
- const _ao9 = (input, _path, _exceptionable = true) => _ap1(input, _path, true && _exceptionable) && ((Array.isArray(input.arguments) || _assertGuard_1._assertGuard(_exceptionable, {
536
- method: "typia.assert",
537
- path: _path + ".arguments",
538
- expected: "Array<ITtscGraphDecorator.IArgument>",
539
- value: input.arguments
540
- }, _errorFactory)) && input.arguments.every((elem, _index20) => ("object" === typeof elem && null !== elem && false === Array.isArray(elem) || _assertGuard_1._assertGuard(_exceptionable, {
597
+ const _ao9 = (input, _path, _exceptionable = true) => _ap1(input, _path, true && _exceptionable) && (undefined === input.value || "string" === typeof input.value || _assertGuard_1._assertGuard(_exceptionable, {
541
598
  method: "typia.assert",
542
- path: _path + ".arguments[" + _index20 + "]",
543
- expected: "ITtscGraphDecorator.IArgument",
544
- value: elem
545
- }, _errorFactory)) && _ao10(elem, _path + ".arguments[" + _index20 + "]", true && _exceptionable) || _assertGuard_1._assertGuard(_exceptionable, {
546
- method: "typia.assert",
547
- path: _path + ".arguments[" + _index20 + "]",
548
- expected: "ITtscGraphDecorator.IArgument",
549
- value: elem
550
- }, _errorFactory)) || _assertGuard_1._assertGuard(_exceptionable, {
551
- method: "typia.assert",
552
- path: _path + ".arguments",
553
- expected: "Array<ITtscGraphDecorator.IArgument>",
554
- value: input.arguments
599
+ path: _path + ".value",
600
+ expected: "(string | undefined)",
601
+ value: input.value
555
602
  }, _errorFactory));
556
- const _io0 = input => "string" === typeof input.project && "string" === typeof input.tsconfig && ("object" === typeof input.provenance && null !== input.provenance && _io1(input.provenance)) && (Array.isArray(input.diagnostics) && input.diagnostics.every(elem => "object" === typeof elem && null !== elem && _io7(elem))) && (Array.isArray(input.nodes) && input.nodes.every(elem => "object" === typeof elem && null !== elem && _io8(elem))) && (Array.isArray(input.edges) && input.edges.every(elem => "object" === typeof elem && null !== elem && _io12(elem)));
603
+ const _io0 = input => "string" === typeof input.project && "string" === typeof input.tsconfig && ("object" === typeof input.provenance && null !== input.provenance && _io1(input.provenance)) && (Array.isArray(input.diagnostics) && input.diagnostics.every(elem => "object" === typeof elem && null !== elem && _io7(elem))) && (Array.isArray(input.nodes) && input.nodes.every(elem => "object" === typeof elem && null !== elem && _io8(elem))) && (Array.isArray(input.edges) && input.edges.every(elem => "object" === typeof elem && null !== elem && _io13(elem)));
557
604
  const _io1 = input => "number" === typeof input.schemaVersion && (Array.isArray(input.capabilities) && input.capabilities.every(elem => "string" === typeof elem)) && ("object" === typeof input.producer && null !== input.producer && _io2(input.producer)) && ("object" === typeof input.universe && null !== input.universe && _io3(input.universe)) && (Array.isArray(input.sources) && input.sources.every(elem => "object" === typeof elem && null !== elem && _io6(elem)));
558
- const _io10 = input => undefined === input.literal || "string" === typeof input.literal || "number" === typeof input.literal || "boolean" === typeof input.literal;
559
- const _io11 = input => (undefined === input.file || "string" === typeof input.file) && "number" === typeof input.startLine && (undefined === input.startCol || "number" === typeof input.startCol) && (undefined === input.endLine || "number" === typeof input.endLine) && (undefined === input.endCol || "number" === typeof input.endCol);
560
- const _io12 = input => "string" === typeof input.from && "string" === typeof input.to && true === _iv2.has(input.kind) && _ip2(input);
605
+ const _io10 = input => _ip1(input) && (Array.isArray(input.arguments) && input.arguments.every(elem => "object" === typeof elem && null !== elem && false === Array.isArray(elem) && _io11(elem)));
606
+ const _io11 = input => undefined === input.literal || "string" === typeof input.literal || "number" === typeof input.literal || "boolean" === typeof input.literal;
607
+ const _io12 = input => (undefined === input.file || "string" === typeof input.file) && "number" === typeof input.startLine && (undefined === input.startCol || "number" === typeof input.startCol) && (undefined === input.endLine || "number" === typeof input.endLine) && (undefined === input.endCol || "number" === typeof input.endCol);
608
+ const _io13 = input => "string" === typeof input.from && "string" === typeof input.to && true === _iv2.has(input.kind) && _ip2(input);
561
609
  const _io2 = input => "string" === typeof input.tool && "string" === typeof input.version && "string" === typeof input.typescript;
562
610
  const _io3 = input => Array.isArray(input.configs) && input.configs.every(elem => "object" === typeof elem && null !== elem && _io4(elem)) && (Array.isArray(input.roots) && input.roots.every(elem => "object" === typeof elem && null !== elem && _io5(elem)));
563
611
  const _io4 = input => _ip0(input) && "string" === typeof input.digest;
564
612
  const _io5 = input => "string" === typeof input.config && _ip0(input);
565
613
  const _io6 = input => _ip0(input) && "string" === typeof input.checkerDigest && "string" === typeof input.diskDigest;
566
614
  const _io7 = input => _ip0(input) && "number" === typeof input.line && "number" === typeof input.column && "number" === typeof input.code && ("error" === input.category || "warning" === input.category) && "string" === typeof input.message;
567
- const _io8 = input => "string" === typeof input.id && true === _iv0.has(input.kind) && _ip1(input) && (undefined === input.qualifiedName || "string" === typeof input.qualifiedName) && _ip0(input) && "boolean" === typeof input.external && (undefined === input.ignored || "boolean" === typeof input.ignored) && (undefined === input.exported || "boolean" === typeof input.exported) && (undefined === input.closure || "boolean" === typeof input.closure) && (undefined === input.modifiers || Array.isArray(input.modifiers) && input.modifiers.every(elem => true === _iv1.has(elem))) && (undefined === input.decorators || Array.isArray(input.decorators) && input.decorators.every(elem => "object" === typeof elem && null !== elem && _io9(elem))) && _ip2(input) && (undefined === input.implementation || "object" === typeof input.implementation && null !== input.implementation && _io11(input.implementation));
568
- const _io9 = input => _ip1(input) && (Array.isArray(input.arguments) && input.arguments.every(elem => "object" === typeof elem && null !== elem && false === Array.isArray(elem) && _io10(elem)));
615
+ const _io8 = input => "string" === typeof input.id && true === _iv0.has(input.kind) && _ip1(input) && (undefined === input.qualifiedName || "string" === typeof input.qualifiedName) && _ip0(input) && "boolean" === typeof input.external && (undefined === input.ignored || "boolean" === typeof input.ignored) && (undefined === input.exported || "boolean" === typeof input.exported) && (undefined === input.closure || "boolean" === typeof input.closure) && (undefined === input.modifiers || Array.isArray(input.modifiers) && input.modifiers.every(elem => true === _iv1.has(elem))) && (undefined === input.literals || Array.isArray(input.literals) && input.literals.every(elem => "string" === typeof elem)) && (undefined === input.enumMembers || Array.isArray(input.enumMembers) && input.enumMembers.every(elem => "object" === typeof elem && null !== elem && _io9(elem))) && (undefined === input.decorators || Array.isArray(input.decorators) && input.decorators.every(elem => "object" === typeof elem && null !== elem && _io10(elem))) && _ip2(input) && (undefined === input.implementation || "object" === typeof input.implementation && null !== input.implementation && _io12(input.implementation));
616
+ const _io9 = input => _ip1(input) && (undefined === input.value || "string" === typeof input.value);
569
617
  const __is = input => "object" === typeof input && null !== input && _io0(input);
570
618
  let _errorFactory;
571
619
  return (input, errorFactory) => {
@@ -1 +1 @@
1
- {"version":3,"file":"loadGraph.js","sourceRoot":"","sources":["../../src/model/loadGraph.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loadGraph.js","sourceRoot":"","sources":["../../src/model/loadGraph.ts"],"names":[],"mappings":"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"}
@@ -2,9 +2,15 @@
2
2
  * Resolve the per-platform `ttscgraph` binary, or `null` when it cannot be
3
3
  * located.
4
4
  *
5
- * `ttsc` is a peer the user installs alongside `@ttsc/graph` (not a dependency
6
- * of this launcher), so resolution starts from the user's project, not from
7
- * this package's own tree.
5
+ * `ttsc` is a peer dependency pinned to this package's own version, installed
6
+ * alongside `@ttsc/graph` in the user's project rather than nested under this
7
+ * launcher, so resolution starts from the user's project, not from this
8
+ * package's own tree.
9
+ *
10
+ * The pin is what keeps the two halves of the graph in step. `literals` and the
11
+ * rest of the node facts are resolved by the Go builder and ride the dump, so a
12
+ * newer `@ttsc/graph` reading an older `ttscgraph` would find those fields
13
+ * simply absent and answer from a graph missing facts it believes are there.
8
14
  *
9
15
  * Resolution order:
10
16
  *
@@ -10,9 +10,15 @@ const node_path_1 = __importDefault(require("node:path"));
10
10
  * Resolve the per-platform `ttscgraph` binary, or `null` when it cannot be
11
11
  * located.
12
12
  *
13
- * `ttsc` is a peer the user installs alongside `@ttsc/graph` (not a dependency
14
- * of this launcher), so resolution starts from the user's project, not from
15
- * this package's own tree.
13
+ * `ttsc` is a peer dependency pinned to this package's own version, installed
14
+ * alongside `@ttsc/graph` in the user's project rather than nested under this
15
+ * launcher, so resolution starts from the user's project, not from this
16
+ * package's own tree.
17
+ *
18
+ * The pin is what keeps the two halves of the graph in step. `literals` and the
19
+ * rest of the node facts are resolved by the Go builder and ride the dump, so a
20
+ * newer `@ttsc/graph` reading an older `ttscgraph` would find those fields
21
+ * simply absent and answer from a graph missing facts it believes are there.
16
22
  *
17
23
  * Resolution order:
18
24
  *
@@ -1 +1 @@
1
- {"version":3,"file":"resolveGraphBinary.js","sourceRoot":"","sources":["../src/resolveGraphBinary.ts"],"names":[],"mappings":";;;;;;AAAA,6CAA4C;AAC5C,0DAA6B;AAE7B;;;;;;;;;;;;;;;;;;GAkBG;AACH,4BACE,GAAG,GAAsB,OAAO,CAAC,GAAG,EACpC,GAAG,GAAW,OAAO,CAAC,GAAG,EAAE;IAE3B,IAAI,GAAG,CAAC,iBAAiB,IAAI,mBAAI,CAAC,UAAU,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACpE,OAAO,GAAG,CAAC,iBAAiB,CAAC;IAC/B,CAAC;IACD,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC;IACzE,IAAI,CAAC;QACH,2EAA2E;QAC3E,0DAA0D;QAC1D,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,mBAAmB,EAAE;YAC3D,KAAK,EAAE,CAAC,mBAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;SAC3B,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,IAAA,2BAAa,EAAC,eAAe,CAAC,CAAC;QAChD,OAAO,QAAQ,CAAC,OAAO,CACrB,SAAS,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,QAAQ,GAAG,EAAE,CACvD,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"resolveGraphBinary.js","sourceRoot":"","sources":["../src/resolveGraphBinary.ts"],"names":[],"mappings":";;;;;;AAAA,6CAA4C;AAC5C,0DAA6B;AAE7B;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,4BACE,GAAG,GAAsB,OAAO,CAAC,GAAG,EACpC,GAAG,GAAW,OAAO,CAAC,GAAG,EAAE;IAE3B,IAAI,GAAG,CAAC,iBAAiB,IAAI,mBAAI,CAAC,UAAU,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACpE,OAAO,GAAG,CAAC,iBAAiB,CAAC;IAC/B,CAAC;IACD,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC;IACzE,IAAI,CAAC;QACH,2EAA2E;QAC3E,0DAA0D;QAC1D,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,mBAAmB,EAAE;YAC3D,KAAK,EAAE,CAAC,mBAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;SAC3B,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,IAAA,2BAAa,EAAC,eAAe,CAAC,CAAC;QAChD,OAAO,QAAQ,CAAC,OAAO,CACrB,SAAS,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,QAAQ,GAAG,EAAE,CACvD,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -78,7 +78,7 @@ function createServer(graph, version) {
78
78
  properties: {
79
79
  audit: {
80
80
  type: "string",
81
- description: "What the server audited this result against before returning it, in its\nown words: every node, span, edge, signature, member, and step in it\nresolves to the type-checked program for the snapshot the call synced to,\nso opening a file it cites only returns a fact already in it.\n\nThe audit is operation-aware. For the exact operations (`trace`,\n`details`, `overview`) it reports the result as the structure the graph\nholds for the handles named, bounded only where `truncated` says. For the\nranked operations (`lookup`, `entrypoints`, `tour`) it adds that the\nselection is heuristic \u2014 matched, scored, ranked, and limited against the\nquestion \u2014 so the facts are verified but the shortlist's coverage is the\ncaller's to judge."
81
+ description: "What the server audited this result against before returning it, in its\nown words: every node, span, edge, signature, member, and step in it\nresolves to the type-checked program for the snapshot the call synced to,\nso opening a file it cites only returns a fact already in it.\n\nThe audit is operation-aware. For the walks from a named handle (`trace`,\n`overview`) it reports the result as the structure the graph holds,\nbounded where `truncated` says. For `details` it reports the two halves of\na resolved symbol: its own shape returned whole, its fan-out returned as a\nslice with `trace` for the rest. For the ranked operations (`lookup`,\n`entrypoints`, `tour`) it adds that the selection is heuristic \u2014 matched,\nscored, ranked, and limited against the question \u2014 so the facts are\nverified but the shortlist's coverage is the caller's to judge."
82
82
  },
83
83
  next: {
84
84
  $ref: "#/$defs/ITtscGraphNext",
@@ -372,7 +372,7 @@ function createServer(graph, version) {
372
372
  items: {
373
373
  type: "string"
374
374
  },
375
- description: "String literal values from the signature."
375
+ description: "The complete value set a type alias or enum admits, in TypeScript source\nform (`\"a\"`, `1`, `true`, `null`) \u2014 the checker's resolved union members,\nnot the quoted tokens that happened to fit in `signature`.\n\nAbsent when the type has no enumerable value set. A `signature` is capped\nat the declaration head, so for a union or enum written across several\nlines this is the field that carries the members."
376
376
  },
377
377
  members: {
378
378
  type: "array",
@@ -1679,15 +1679,15 @@ function createServer(graph, version) {
1679
1679
  },
1680
1680
  neighborLimit: {
1681
1681
  type: "number",
1682
- description: "Maximum dependencies and dependents per side when `neighbors:true`. Above\na few is usually overfetch; call `trace` for flow instead."
1682
+ description: "Dependencies and dependents per side when `neighbors:true`. A small\norientation slice by default; what uses a symbol grows with its\npopularity, so `trace` answers the whole \"who uses this\"."
1683
1683
  },
1684
1684
  memberLimit: {
1685
1685
  type: "number",
1686
- description: "Maximum owned members for a container or object literal."
1686
+ description: "Owned members for a container or object literal. The complete outline by\ndefault \u2014 a class's members and an enum's are the symbol itself, so they\nare not sampled. Pass a number to cap."
1687
1687
  },
1688
1688
  dependencyLimit: {
1689
1689
  type: "number",
1690
- description: "Maximum direct execution and type references per group."
1690
+ description: "Direct execution and type references per group. A small orientation slice\nby default; `trace` follows the whole fan-out."
1691
1691
  },
1692
1692
  includeExternal: {
1693
1693
  type: "boolean",
@@ -47,14 +47,18 @@
47
47
  * payload, and told it to stop where the shortlist's coverage was exactly what
48
48
  * needed judging.
49
49
  *
50
- * So there are two audits. {@link RESULT_AUDIT} covers the operations that walk
51
- * from an explicit handle or structure (`trace`, `details`, `overview`): the
52
- * result is what the graph holds for what you named, bounded only where
53
- * `truncated` says. {@link RESULT_AUDIT_SELECTION} covers the ranked shortlists
54
- * (`lookup`, `entrypoints`, `tour`): it keeps the same fact-verification and
55
- * adds that the _selection_ is heuristic, so whether the shortlist covers the
56
- * question is the caller's to judge and a follow-up request or a read of a
57
- * cited span is a sound next step, not a failure to trust the result.
50
+ * So the audits split by what the reader must judge. {@link RESULT_AUDIT}
51
+ * covers the walks from an explicit handle or structure (`trace`, `overview`):
52
+ * the result is what the graph holds for what you named, bounded where
53
+ * `truncated` says. {@link RESULT_AUDIT_DETAILS} covers `details`, whose result
54
+ * is not one bounded whole but two halves — a symbol's own shape, returned
55
+ * complete, and its fan-out, returned as a slice with `trace` for the rest so
56
+ * it names which half to trust outright and which to follow. {@link
57
+ * RESULT_AUDIT_SELECTION} covers the ranked shortlists (`lookup`, `entrypoints`,
58
+ * `tour`): it keeps the same fact-verification and adds that the _selection_ is
59
+ * heuristic, so whether the shortlist covers the question is the caller's to
60
+ * judge — and a follow-up request or a read of a cited span is a sound next
61
+ * step, not a failure to trust the result.
58
62
  *
59
63
  * Keep both narrow, and keep the stop-or-continue decision with the result's
60
64
  * `next`, so neither contradicts a partial result that legitimately asks for
@@ -70,5 +74,22 @@ export declare const RESULT_AUDIT: string;
70
74
  * many — is heuristic, so coverage is the caller's to judge.
71
75
  */
72
76
  export declare const RESULT_AUDIT_SELECTION: string;
77
+ /**
78
+ * The audit for `details`, whose contract is not the other exact operations'.
79
+ *
80
+ * `trace` walks and marks where the walk was cut with `truncated`; `details`
81
+ * does not walk. It resolves a named handle, and its result splits in two. What
82
+ * a symbol *is* — its members, its values, its signature — is bounded by the
83
+ * declaration and returned whole, so the old "trust it, do not open the file"
84
+ * is finally true of it rather than contradicted by a capped member list. What
85
+ * a symbol *reaches or is reached by* — its calls, its type references, its
86
+ * implementers, its dependents — is bounded by how widely it is used, not by
87
+ * the symbol, so returning it whole is a `trace`/impact answer of a thousand
88
+ * refs in a "what is this" call. That half is a short orientation slice, and
89
+ * the audit has to say which half is which so the reader trusts the complete
90
+ * one and reaches for `trace` on the other, instead of reading the file for a
91
+ * member list that is already here.
92
+ */
93
+ export declare const RESULT_AUDIT_DETAILS: string;
73
94
  /** The escape branch carries no graph facts, so it claims none. */
74
95
  export declare const RESULT_AUDIT_ESCAPE: string;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RESULT_AUDIT_ESCAPE = exports.RESULT_AUDIT_SELECTION = exports.RESULT_AUDIT = void 0;
3
+ exports.RESULT_AUDIT_ESCAPE = exports.RESULT_AUDIT_DETAILS = exports.RESULT_AUDIT_SELECTION = exports.RESULT_AUDIT = void 0;
4
4
  /**
5
5
  * The audit stamped as the first property of every
6
6
  * {@link ITtscGraphApplication.IOutput}. Because it serializes before `result`,
@@ -50,14 +50,18 @@ exports.RESULT_AUDIT_ESCAPE = exports.RESULT_AUDIT_SELECTION = exports.RESULT_AU
50
50
  * payload, and told it to stop where the shortlist's coverage was exactly what
51
51
  * needed judging.
52
52
  *
53
- * So there are two audits. {@link RESULT_AUDIT} covers the operations that walk
54
- * from an explicit handle or structure (`trace`, `details`, `overview`): the
55
- * result is what the graph holds for what you named, bounded only where
56
- * `truncated` says. {@link RESULT_AUDIT_SELECTION} covers the ranked shortlists
57
- * (`lookup`, `entrypoints`, `tour`): it keeps the same fact-verification and
58
- * adds that the _selection_ is heuristic, so whether the shortlist covers the
59
- * question is the caller's to judge and a follow-up request or a read of a
60
- * cited span is a sound next step, not a failure to trust the result.
53
+ * So the audits split by what the reader must judge. {@link RESULT_AUDIT}
54
+ * covers the walks from an explicit handle or structure (`trace`, `overview`):
55
+ * the result is what the graph holds for what you named, bounded where
56
+ * `truncated` says. {@link RESULT_AUDIT_DETAILS} covers `details`, whose result
57
+ * is not one bounded whole but two halves — a symbol's own shape, returned
58
+ * complete, and its fan-out, returned as a slice with `trace` for the rest so
59
+ * it names which half to trust outright and which to follow. {@link
60
+ * RESULT_AUDIT_SELECTION} covers the ranked shortlists (`lookup`, `entrypoints`,
61
+ * `tour`): it keeps the same fact-verification and adds that the _selection_ is
62
+ * heuristic, so whether the shortlist covers the question is the caller's to
63
+ * judge — and a follow-up request or a read of a cited span is a sound next
64
+ * step, not a failure to trust the result.
61
65
  *
62
66
  * Keep both narrow, and keep the stop-or-continue decision with the result's
63
67
  * `next`, so neither contradicts a partial result that legitimately asks for
@@ -105,6 +109,40 @@ span is a sound next step, not a failure to trust the result.
105
109
 
106
110
  Follow \`next\` for where that leaves the question.
107
111
  `.trim();
112
+ /**
113
+ * The audit for `details`, whose contract is not the other exact operations'.
114
+ *
115
+ * `trace` walks and marks where the walk was cut with `truncated`; `details`
116
+ * does not walk. It resolves a named handle, and its result splits in two. What
117
+ * a symbol *is* — its members, its values, its signature — is bounded by the
118
+ * declaration and returned whole, so the old "trust it, do not open the file"
119
+ * is finally true of it rather than contradicted by a capped member list. What
120
+ * a symbol *reaches or is reached by* — its calls, its type references, its
121
+ * implementers, its dependents — is bounded by how widely it is used, not by
122
+ * the symbol, so returning it whole is a `trace`/impact answer of a thousand
123
+ * refs in a "what is this" call. That half is a short orientation slice, and
124
+ * the audit has to say which half is which so the reader trusts the complete
125
+ * one and reaches for `trace` on the other, instead of reading the file for a
126
+ * member list that is already here.
127
+ */
128
+ exports.RESULT_AUDIT_DETAILS = `
129
+ AUDITED BEFORE RETURNING. READ FIRST.
130
+
131
+ The server assembled this \`result\`, then checked it: every fact in it — each name, span,
132
+ edge, signature, member, and value — was taken back to the type-checked program for the
133
+ snapshot this call synced to, and resolved there, so for this snapshot a fact here cannot be
134
+ wrong.
135
+
136
+ This is the structure the graph holds for the handles you named. What a symbol is — its
137
+ members, its values, its signature — is complete: trust it and do not open the file to read
138
+ what is already here. What a symbol reaches or is reached by — its calls, its type
139
+ references, its implementers, and under \`neighbors\` its dependents — is a short orientation
140
+ slice, not the whole set, because that grows with how widely a symbol is used; \`trace\`
141
+ follows it in full.
142
+
143
+ Follow \`next\`: answer from this result, and re-call the graph only when it says inspect, or
144
+ after you edit the source.
145
+ `.trim();
108
146
  /** The escape branch carries no graph facts, so it claims none. */
109
147
  exports.RESULT_AUDIT_ESCAPE = "This escape carries no graph facts to audit.";
110
148
  //# sourceMappingURL=resultAudit.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resultAudit.js","sourceRoot":"","sources":["../../src/server/resultAudit.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+DG;AACU,QAAA,YAAY,GAAW;;;;;;;;;;;;;;;CAenC,CAAC,IAAI,EAAE,CAAC;AAET;;;;;GAKG;AACU,QAAA,sBAAsB,GAAW;;;;;;;;;;;;;;;;;CAiB7C,CAAC,IAAI,EAAE,CAAC;AAET,mEAAmE;AACtD,QAAA,mBAAmB,GAC9B,8CAA8C,CAAC"}
1
+ {"version":3,"file":"resultAudit.js","sourceRoot":"","sources":["../../src/server/resultAudit.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmEG;AACU,QAAA,YAAY,GAAW;;;;;;;;;;;;;;;CAenC,CAAC,IAAI,EAAE,CAAC;AAET;;;;;GAKG;AACU,QAAA,sBAAsB,GAAW;;;;;;;;;;;;;;;;;CAiB7C,CAAC,IAAI,EAAE,CAAC;AAET;;;;;;;;;;;;;;;GAeG;AACU,QAAA,oBAAoB,GAAW;;;;;;;;;;;;;;;;;CAiB3C,CAAC,IAAI,EAAE,CAAC;AAET,mEAAmE;AACtD,QAAA,mBAAmB,GAC9B,8CAA8C,CAAC"}