@ttsc/graph 0.27.0 → 0.28.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.
Files changed (82) hide show
  1. package/README.md +3 -1
  2. package/lib/index.d.ts +1 -1
  3. package/lib/index.js +15 -3
  4. package/lib/index.js.map +1 -1
  5. package/lib/model/TtscGraphMemory.d.ts +26 -0
  6. package/lib/model/TtscGraphMemory.js +121 -2
  7. package/lib/model/TtscGraphMemory.js.map +1 -1
  8. package/lib/model/TtscGraphSession.d.ts +23 -0
  9. package/lib/model/TtscGraphSession.js +248 -96
  10. package/lib/model/TtscGraphSession.js.map +1 -1
  11. package/lib/model/TtscGraphShardStore.js +6 -1
  12. package/lib/model/TtscGraphShardStore.js.map +1 -1
  13. package/lib/model/TtscLintDaemon.d.ts +54 -0
  14. package/lib/model/TtscLintDaemon.js +166 -0
  15. package/lib/model/TtscLintDaemon.js.map +1 -0
  16. package/lib/model/loadGraph.d.ts +8 -1
  17. package/lib/model/loadGraph.js +144 -72
  18. package/lib/model/loadGraph.js.map +1 -1
  19. package/lib/model/publishedArtifacts.d.ts +142 -0
  20. package/lib/model/publishedArtifacts.js +403 -0
  21. package/lib/model/publishedArtifacts.js.map +1 -0
  22. package/lib/reduce.js +20 -7
  23. package/lib/reduce.js.map +1 -1
  24. package/lib/server/createServer.js +38 -2
  25. package/lib/server/createServer.js.map +1 -1
  26. package/lib/server/runDetails.d.ts +15 -0
  27. package/lib/server/runDetails.js +48 -0
  28. package/lib/server/runDetails.js.map +1 -1
  29. package/lib/server/runEntrypoints.js +7 -1
  30. package/lib/server/runEntrypoints.js.map +1 -1
  31. package/lib/server/runLookup.js +129 -11
  32. package/lib/server/runLookup.js.map +1 -1
  33. package/lib/structures/ITtscGraphApplication.d.ts +3 -1
  34. package/lib/structures/ITtscGraphDetails.d.ts +12 -0
  35. package/lib/structures/ITtscGraphDocTag.d.ts +44 -0
  36. package/lib/structures/ITtscGraphDocTag.js +3 -0
  37. package/lib/structures/ITtscGraphDocTag.js.map +1 -0
  38. package/lib/structures/ITtscGraphDump.d.ts +23 -4
  39. package/lib/structures/ITtscGraphLookup.d.ts +29 -0
  40. package/lib/structures/ITtscGraphNode.d.ts +25 -0
  41. package/lib/structures/TtscGraphArtifactNodeKind.d.ts +23 -0
  42. package/lib/structures/TtscGraphArtifactNodeKind.js +37 -0
  43. package/lib/structures/TtscGraphArtifactNodeKind.js.map +1 -0
  44. package/lib/structures/TtscGraphDumpEdgeKind.d.ts +1 -1
  45. package/lib/structures/TtscGraphDumpNodeKind.d.ts +10 -2
  46. package/lib/structures/TtscGraphEdgeKind.d.ts +8 -1
  47. package/lib/structures/TtscGraphNodeKind.d.ts +1 -1
  48. package/lib/structures/index.d.ts +2 -0
  49. package/lib/structures/index.js +2 -0
  50. package/lib/structures/index.js.map +1 -1
  51. package/lib/view.js +17 -1
  52. package/lib/view.js.map +1 -1
  53. package/lib/viewer/index.html +5 -13
  54. package/lib/viewer/viewer.js +190 -190
  55. package/package.json +5 -5
  56. package/src/index.ts +23 -6
  57. package/src/model/TtscGraphMemory.ts +118 -2
  58. package/src/model/TtscGraphSession.ts +112 -2
  59. package/src/model/TtscGraphShardStore.ts +6 -1
  60. package/src/model/TtscLintDaemon.ts +179 -0
  61. package/src/model/loadGraph.ts +29 -5
  62. package/src/model/publishedArtifacts.ts +548 -0
  63. package/src/reduce.ts +20 -7
  64. package/src/server/runDetails.ts +52 -1
  65. package/src/server/runEntrypoints.ts +7 -1
  66. package/src/server/runLookup.ts +139 -14
  67. package/src/structures/ITtscGraphApplication.ts +3 -1
  68. package/src/structures/ITtscGraphDetails.ts +13 -0
  69. package/src/structures/ITtscGraphDocTag.ts +45 -0
  70. package/src/structures/ITtscGraphDump.ts +25 -4
  71. package/src/structures/ITtscGraphLookup.ts +31 -0
  72. package/src/structures/ITtscGraphNode.ts +27 -0
  73. package/src/structures/TtscGraphArtifactNodeKind.ts +35 -0
  74. package/src/structures/TtscGraphDumpEdgeKind.ts +1 -0
  75. package/src/structures/TtscGraphDumpNodeKind.ts +16 -2
  76. package/src/structures/TtscGraphEdgeKind.ts +8 -0
  77. package/src/structures/TtscGraphNodeKind.ts +7 -1
  78. package/src/structures/index.ts +2 -0
  79. package/src/view.ts +17 -1
  80. package/src/viewer/index.html +5 -13
  81. package/src/viewer/legend.ts +107 -0
  82. package/src/viewer/main.ts +19 -21
package/README.md CHANGED
@@ -89,7 +89,9 @@ The interactive charts, every model, and the method are on the benchmark page: h
89
89
  * - `tour`: architecture, runtime flow, orientation, or a code tour. One call is
90
90
  * the whole answer; do not split it.
91
91
  * - `entrypoints`: find where execution starts when entry points are unknown.
92
- * - `lookup`: locate a named symbol.
92
+ * - `lookup`: locate a named symbol, or — with a documentation target as the
93
+ * query (`docs/pricing.md#sale`, `POST:/orders`) — the declarations whose
94
+ * documentation cites it.
93
95
  * - `trace`: follow calls or data flow forward or backward from a symbol, or —
94
96
  * with `to` — the path between two symbols when both ends are known, which is
95
97
  * the one call that answers "how does A reach B".
package/lib/index.d.ts CHANGED
@@ -12,7 +12,7 @@ export { resolveGraphBinary } from "./resolveGraphBinary";
12
12
  */
13
13
  export { reduce } from "./reduce";
14
14
  export type { RawDump, RawEdge, RawNode, ViewerPayload } from "./reduce";
15
- export { loadGraph } from "./model/loadGraph";
15
+ export { DUMP_SCHEMA_VERSION, loadGraph } from "./model/loadGraph";
16
16
  export { TtscGraphSession, type TtscGraphRequestOptions, type TtscGraphSessionOptions, } from "./model/TtscGraphSession";
17
17
  /**
18
18
  * Run the `@ttsc/graph` launcher.
package/lib/index.js CHANGED
@@ -1,9 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TtscGraphSession = exports.loadGraph = exports.reduce = exports.resolveGraphBinary = exports.RESULT_AUDIT_SELECTION = exports.RESULT_AUDIT_ESCAPE = exports.RESULT_AUDIT_DETAILS_CAPPED = exports.RESULT_AUDIT_DETAILS = exports.RESULT_AUDIT = void 0;
3
+ exports.TtscGraphSession = exports.loadGraph = exports.DUMP_SCHEMA_VERSION = exports.reduce = exports.resolveGraphBinary = exports.RESULT_AUDIT_SELECTION = exports.RESULT_AUDIT_ESCAPE = exports.RESULT_AUDIT_DETAILS_CAPPED = exports.RESULT_AUDIT_DETAILS = exports.RESULT_AUDIT = void 0;
4
4
  exports.runGraph = runGraph;
5
5
  const node_child_process_1 = require("node:child_process");
6
6
  const launcherArgs_1 = require("./launcherArgs");
7
+ const publishedArtifacts_1 = require("./model/publishedArtifacts");
7
8
  const nativeExecutable_1 = require("./nativeExecutable");
8
9
  const resolveGraphBinary_1 = require("./resolveGraphBinary");
9
10
  const startServer_1 = require("./server/startServer");
@@ -33,6 +34,7 @@ Object.defineProperty(exports, "resolveGraphBinary", { enumerable: true, get: fu
33
34
  var reduce_1 = require("./reduce");
34
35
  Object.defineProperty(exports, "reduce", { enumerable: true, get: function () { return reduce_1.reduce; } });
35
36
  var loadGraph_1 = require("./model/loadGraph");
37
+ Object.defineProperty(exports, "DUMP_SCHEMA_VERSION", { enumerable: true, get: function () { return loadGraph_1.DUMP_SCHEMA_VERSION; } });
36
38
  Object.defineProperty(exports, "loadGraph", { enumerable: true, get: function () { return loadGraph_1.loadGraph; } });
37
39
  var TtscGraphSession_1 = require("./model/TtscGraphSession");
38
40
  Object.defineProperty(exports, "TtscGraphSession", { enumerable: true, get: function () { return TtscGraphSession_1.TtscGraphSession; } });
@@ -101,7 +103,7 @@ function printDumpHelp() {
101
103
  function runDump(argv) {
102
104
  // Resolve the native binary from the target project the caller named with
103
105
  // `--cwd`, not from wherever the launcher process happened to start.
104
- const { cwd } = (0, launcherArgs_1.projectOptions)((0, launcherArgs_1.parseLauncherOptions)(argv, DUMP_OPTIONS));
106
+ const { cwd, tsconfig } = (0, launcherArgs_1.projectOptions)((0, launcherArgs_1.parseLauncherOptions)(argv, DUMP_OPTIONS));
105
107
  const binary = (0, resolveGraphBinary_1.resolveGraphBinary)(process.env, cwd);
106
108
  if (binary === null) {
107
109
  // `ttscgraph` owns the flag contract, so a resolvable binary always answers
@@ -119,7 +121,17 @@ function runDump(argv) {
119
121
  return 1;
120
122
  }
121
123
  (0, nativeExecutable_1.ensureExecutable)(binary);
122
- const result = (0, node_child_process_1.spawnSync)(binary, ["dump", ...argv], {
124
+ // The same artifacts `loadGraph` and the resident session ask for, so the
125
+ // three ways to reach a dump answer a citation the same way. A caller that
126
+ // named `--artifacts` itself owns the answer and is not overridden.
127
+ const published = argv.includes("--artifacts")
128
+ ? null
129
+ : (0, publishedArtifacts_1.publishArtifacts)({ cwd, tsconfig });
130
+ const result = (0, node_child_process_1.spawnSync)(binary, [
131
+ "dump",
132
+ ...argv,
133
+ ...(published?.file == null ? [] : ["--artifacts", published.file]),
134
+ ], {
123
135
  stdio: "inherit",
124
136
  windowsHide: true,
125
137
  });
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,7 @@ export declare class TtscGraphMemory {
19
19
  private readonly inEdges;
20
20
  private readonly byNameIndex;
21
21
  private readonly bySymbolIndex;
22
+ private readonly byDocTagTarget;
22
23
  /** The absolute project root the dump was built for. */
23
24
  readonly project: string;
24
25
  /** Every post-fold node, including refined properties and file containers. */
@@ -42,4 +43,29 @@ export declare class TtscGraphMemory {
42
43
  symbols(handle: string): readonly ITtscGraphNode[];
43
44
  /** Every workspace node on its module's export surface. */
44
45
  exported(): ITtscGraphNode[];
46
+ /**
47
+ * Every declaration whose documentation names this address — the reverse of
48
+ * the citation question.
49
+ *
50
+ * The forward direction costs a reader one file: the tag sits above the
51
+ * declaration they already found. The reverse direction is what an index is
52
+ * for, because the declarations implementing one specification are scattered
53
+ * across every file that implements it, and finding them otherwise means
54
+ * searching the whole repository.
55
+ *
56
+ * The address is exact and is spelled as {@link documentationTarget} decides,
57
+ * so a caller passes that function's output rather than a raw query. Which
58
+ * part of a tag's text names a thing belongs to whatever convention wrote the
59
+ * tag, so this is a selection rule of the consuming layer rather than a fact
60
+ * the producer claims.
61
+ */
62
+ citing(target: string): readonly ITtscGraphNode[];
45
63
  }
64
+ /**
65
+ * The first whitespace-delimited token, or the whole brace group it opens.
66
+ *
67
+ * An unclosed brace group is not a token: `{@link ISale` with the brace
68
+ * forgotten would otherwise fall through to the whitespace split and index the
69
+ * address `{@link`, which every link in the project shares.
70
+ */
71
+ export declare function leadingToken(text: string | undefined): string | undefined;
@@ -1,6 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TtscGraphMemory = void 0;
4
+ exports.documentationTarget = documentationTarget;
5
+ exports.leadingToken = leadingToken;
6
+ const TtscGraphArtifactNodeKind_1 = require("../structures/TtscGraphArtifactNodeKind");
4
7
  const TtscGraphNodeId_1 = require("./TtscGraphNodeId");
5
8
  const TtscGraphSourceReader_1 = require("./TtscGraphSourceReader");
6
9
  /**
@@ -20,6 +23,7 @@ class TtscGraphMemory {
20
23
  inEdges;
21
24
  byNameIndex;
22
25
  bySymbolIndex;
26
+ byDocTagTarget;
23
27
  /** The absolute project root the dump was built for. */
24
28
  project;
25
29
  /** Every post-fold node, including refined properties and file containers. */
@@ -36,6 +40,7 @@ class TtscGraphMemory {
36
40
  this.byId = new Map(nodes.map((n) => [n.id, n]));
37
41
  this.byNameIndex = new Map();
38
42
  this.bySymbolIndex = new Map();
43
+ this.byDocTagTarget = new Map();
39
44
  for (const node of nodes) {
40
45
  const bucket = this.byNameIndex.get(node.name);
41
46
  if (bucket)
@@ -48,6 +53,18 @@ class TtscGraphMemory {
48
53
  push(this.bySymbolIndex, node.qualifiedName, node);
49
54
  }
50
55
  }
56
+ for (const target of docTagTargetsOf(node)) {
57
+ const carriers = this.byDocTagTarget.get(target);
58
+ // The membership check is redundant today — `docTagTargetsOf`
59
+ // deduplicates within a node and this loop visits each node once — and
60
+ // it is kept because the cost is a scan of a list that holds the
61
+ // carriers of one address, while the failure it prevents is a
62
+ // declaration reported twice as implementing one specification.
63
+ if (carriers === undefined)
64
+ this.byDocTagTarget.set(target, [node]);
65
+ else if (!carriers.includes(node))
66
+ carriers.push(node);
67
+ }
51
68
  }
52
69
  this.outEdges = new Map();
53
70
  this.inEdges = new Map();
@@ -85,8 +102,101 @@ class TtscGraphMemory {
85
102
  exported() {
86
103
  return this.nodes.filter((n) => n.exported && !n.external);
87
104
  }
105
+ /**
106
+ * Every declaration whose documentation names this address — the reverse of
107
+ * the citation question.
108
+ *
109
+ * The forward direction costs a reader one file: the tag sits above the
110
+ * declaration they already found. The reverse direction is what an index is
111
+ * for, because the declarations implementing one specification are scattered
112
+ * across every file that implements it, and finding them otherwise means
113
+ * searching the whole repository.
114
+ *
115
+ * The address is exact and is spelled as {@link documentationTarget} decides,
116
+ * so a caller passes that function's output rather than a raw query. Which
117
+ * part of a tag's text names a thing belongs to whatever convention wrote the
118
+ * tag, so this is a selection rule of the consuming layer rather than a fact
119
+ * the producer claims.
120
+ */
121
+ citing(target) {
122
+ return this.byDocTagTarget.get(target) ?? [];
123
+ }
88
124
  }
89
125
  exports.TtscGraphMemory = TtscGraphMemory;
126
+ /**
127
+ * The address each of a node's documentation tags names, deduplicated.
128
+ *
129
+ * A braced inline link is one token including its braces (`{@link ISale}`),
130
+ * because that is how the author wrote the target and how a reader searching
131
+ * for it will spell it. Splitting on whitespace alone would key it under
132
+ * `{@link`, which is every link in the project.
133
+ */
134
+ function docTagTargetsOf(node) {
135
+ if (node.docTags === undefined)
136
+ return [];
137
+ const targets = [];
138
+ for (const tag of node.docTags) {
139
+ const token = documentationTarget(tag.text);
140
+ if (token !== undefined && !targets.includes(token))
141
+ targets.push(token);
142
+ }
143
+ return targets;
144
+ }
145
+ /**
146
+ * The address a documentation tag's text opens with, or undefined when its
147
+ * first token is ordinary prose.
148
+ *
149
+ * Every unrecognized tag arrives here, and most of them are not citations:
150
+ * TypeScript has no AST kind for `@remarks`, `@example`, `@todo`, `@internal`,
151
+ * or `@default` either, so their first word reaches this function exactly as a
152
+ * citation target does. Indexing those turned `@todo Add caching here` into a
153
+ * carrier of the address `Add`, and a query opening with that word answered
154
+ * with it — above every real name match, and labelled a certain citation.
155
+ *
156
+ * So a token qualifies only when it carries a separator that prose does not: a
157
+ * path or anchor (`docs/pricing.md#sale`), a namespaced or method-prefixed
158
+ * address (`POST:/orders`, `prisma:Sale`), an inline link, or a URL. An English
159
+ * word carries none of these, and neither does a bare number, so `@default 4`
160
+ * and `@todo Add caching` index nothing while every address form in use does.
161
+ *
162
+ * This is a selection rule, not a claim about the source. It lives here rather
163
+ * than in the producer for that reason: the graph reports the tag as written
164
+ * and this decides only what the ranked operations will match on, which is the
165
+ * layer whose audit already declares its selection heuristic. A convention
166
+ * whose addresses look like prose is simply not indexed; nothing is lost from
167
+ * the tag itself, which `details` still returns in full.
168
+ */
169
+ function documentationTarget(text) {
170
+ const token = leadingToken(text);
171
+ if (token === undefined)
172
+ return undefined;
173
+ if (token.startsWith("{"))
174
+ return token;
175
+ // A separator anywhere but the last position: a trailing one is sentence
176
+ // punctuation ("Uses the cache." ends in a dot and names nothing), while an
177
+ // interior one is what every address form spells.
178
+ return /[/#:][^\s]/u.test(token) || /\.[^\s.]/u.test(token)
179
+ ? token
180
+ : undefined;
181
+ }
182
+ /**
183
+ * The first whitespace-delimited token, or the whole brace group it opens.
184
+ *
185
+ * An unclosed brace group is not a token: `{@link ISale` with the brace
186
+ * forgotten would otherwise fall through to the whitespace split and index the
187
+ * address `{@link`, which every link in the project shares.
188
+ */
189
+ function leadingToken(text) {
190
+ const trimmed = text?.trim();
191
+ if (trimmed === undefined || trimmed === "")
192
+ return undefined;
193
+ if (trimmed.startsWith("{")) {
194
+ const close = trimmed.indexOf("}");
195
+ return close > 0 ? trimmed.slice(0, close + 1) : undefined;
196
+ }
197
+ const stop = trimmed.search(/\s/u);
198
+ return stop < 0 ? trimmed : trimmed.slice(0, stop);
199
+ }
90
200
  /** Append value to the slice stored at key, creating the slice on first use. */
91
201
  function push(map, key, value) {
92
202
  const bucket = map.get(key);
@@ -119,7 +229,7 @@ function ownerKey(node) {
119
229
  const owner = node.qualifiedName.slice(0, -suffix.length);
120
230
  return owner === "" ? undefined : owner;
121
231
  }
122
- /** A file's id and node name from its schema-v6 path coordinate. */
232
+ /** A file's id and node name from its dump path coordinate. */
123
233
  function fileNodeId(file) {
124
234
  return file;
125
235
  }
@@ -229,7 +339,7 @@ function synthesize(dump) {
229
339
  });
230
340
  };
231
341
  for (const node of nodes) {
232
- if (node.external)
342
+ if (node.external || (0, TtscGraphArtifactNodeKind_1.isArtifactNodeKind)(node.kind))
233
343
  continue;
234
344
  addFileNode(node.file);
235
345
  }
@@ -244,6 +354,15 @@ function synthesize(dump) {
244
354
  // legacy subpath.
245
355
  const structural = [];
246
356
  for (const node of nodes) {
357
+ // An artifact is contained by the artifact its producer named, and by
358
+ // nothing when that producer named none. It is never contained by a `file`
359
+ // node: a document is already its own node, a Prisma address carries no
360
+ // path on purpose, and an API operation has no file at all.
361
+ if ((0, TtscGraphArtifactNodeKind_1.isArtifactNodeKind)(node.kind)) {
362
+ if (node.parent !== undefined && node.parent !== "")
363
+ structural.push({ from: node.parent, to: node.id, kind: "contains" });
364
+ continue;
365
+ }
247
366
  if (node.external || node.file === "")
248
367
  continue;
249
368
  const parent = owner(node);
@@ -1 +1 @@
1
- {"version":3,"file":"TtscGraphMemory.js","sourceRoot":"","sources":["../../src/model/TtscGraphMemory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TtscGraphMemory.js","sourceRoot":"","sources":["../../src/model/TtscGraphMemory.ts"],"names":[],"mappings":"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"}
@@ -31,6 +31,26 @@ export declare class TtscGraphSession {
31
31
  private queue;
32
32
  private current;
33
33
  private shardStore;
34
+ /**
35
+ * The artifact answer the resident child was last handed, and the state of
36
+ * the inputs it came from.
37
+ *
38
+ * `undefined` only before a child exists. Once one does this is always an
39
+ * answer, including the answer that the project publishes nothing — which
40
+ * still carries inputs, so that adding a publisher is something a running
41
+ * session can notice.
42
+ */
43
+ private artifacts;
44
+ /**
45
+ * One resident `@ttsc/lint` sidecar per plugin binary, opened lazily.
46
+ *
47
+ * A republish asks two verbs of every configured publisher, and a session
48
+ * republishes whenever a document moves. Held open, those questions cost a
49
+ * request each instead of a process, a plugin load and a configuration
50
+ * evaluation each. Keyed by binary because that is what a daemon is: the same
51
+ * binary answering for the same project.
52
+ */
53
+ private readonly daemons;
34
54
  private closed;
35
55
  constructor(options: TtscGraphSessionOptions);
36
56
  /** Return a graph for the current disk snapshot, serialized per tool call. */
@@ -39,6 +59,9 @@ export declare class TtscGraphSession {
39
59
  close(): void;
40
60
  private refresh;
41
61
  private assertResponseSemantics;
62
+ private republishArtifacts;
63
+ /** The open sidecar for one plugin, opened on first use. */
64
+ private daemon;
42
65
  private request;
43
66
  private ensureChild;
44
67
  private onLine;