@ttsc/graph 0.27.0 → 0.28.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.
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
@@ -1,4 +1,5 @@
1
1
  import { ITtscGraphDecorator } from "./ITtscGraphDecorator";
2
+ import { ITtscGraphDocTag } from "./ITtscGraphDocTag";
2
3
  import { ITtscGraphEvidence } from "./ITtscGraphEvidence";
3
4
  /**
4
5
  * Source-free facts for a few selected handles, not a file reader: signatures,
@@ -109,6 +110,17 @@ export declare namespace ITtscGraphDetails {
109
110
  doc?: string;
110
111
  /** Decorators written on this declaration, when any. */
111
112
  decorators?: ITtscGraphDecorator[];
113
+ /**
114
+ * Documentation tags naming what outside the type system this declaration
115
+ * answers to: a specification section, an API operation, a reference
116
+ * document (`@evidence docs/pricing.md#sale`, `@reference …`).
117
+ *
118
+ * Part of what the declaration is, so it is returned whole like its members
119
+ * and its values — long text is elided, and nothing else is cut. The tag is
120
+ * reported as written and never interpreted: the graph does not say the
121
+ * text resolves to anything or that the claim is true.
122
+ */
123
+ docTags?: ITtscGraphDocTag[];
112
124
  /** Assigned implementation span, when source comes from one. */
113
125
  implementation?: ITtscGraphEvidence;
114
126
  /** Direct execution dependencies in source order, with edge evidence. */
@@ -0,0 +1,44 @@
1
+ /**
2
+ * One documentation tag TypeScript itself does not recognize, written on a
3
+ * declaration and carried on its {@link ITtscGraphNode}'s `docTags`.
4
+ *
5
+ * A convention attaches a declaration to something outside the type system — a
6
+ * specification section, an API operation, a reference document — and writes
7
+ * that attachment as a tag, because the thing on the other end is not a
8
+ * TypeScript declaration and so cannot be an edge. `@evidence
9
+ * docs/pricing.md#sale`, `@reference https://…`, and a project's own `@spec`
10
+ * are one fact in three spellings.
11
+ *
12
+ * Reported faithfully, never interpreted. The graph does not say a tag's text
13
+ * resolves to anything, is covered, or is true — a target naming nothing is
14
+ * carried exactly as written, the way {@link ITtscGraphDecorator} carries
15
+ * `@Controller` without knowing what a controller is.
16
+ *
17
+ * Which tags arrive is the compiler's boundary, not a list kept here: these are
18
+ * the tags the parser had no meaning for. A known tag — `@param`, `@returns`,
19
+ * `@deprecated` — has its own shape and its own meaning and is not one of
20
+ * these.
21
+ *
22
+ * The parser also decides where a tag begins, and that decision is reported
23
+ * rather than second-guessed. TypeScript opens a tag at an `@` wherever it sits
24
+ * inside a documentation block, so a tag name written mid-sentence arrives here
25
+ * as a tag, while a `//` comment is not documentation and contributes nothing at
26
+ * all. A convention that wants the stricter rule enforces it in its own linter,
27
+ * where the author gets a diagnostic; the graph reports what the compiler
28
+ * parsed.
29
+ */
30
+ export interface ITtscGraphDocTag {
31
+ /** The tag name without its `@`: `evidence`, `evidenceExclude`, `reference`. */
32
+ name: string;
33
+ /**
34
+ * Everything written after the tag name, joined into one line.
35
+ *
36
+ * An inline link keeps the braced form it was written in (`{@link ISale}`),
37
+ * so a consumer matching a citation target sees what the author typed. The
38
+ * same link is separately a resolved edge on the node, which is what says
39
+ * *which* `ISale` — a name can be declared twice and only the checker knows.
40
+ *
41
+ * Absent when the tag carries no text.
42
+ */
43
+ text?: string;
44
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=ITtscGraphDocTag.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ITtscGraphDocTag.js","sourceRoot":"","sources":["../../src/structures/ITtscGraphDocTag.ts"],"names":[],"mappings":""}
@@ -15,7 +15,7 @@ import { TtscGraphDumpNodeKind } from "./TtscGraphDumpNodeKind";
15
15
  * the same dump.
16
16
  *
17
17
  * `project` is the producer-local absolute locator. Every identity-bearing path
18
- * uses one schema-v6 coordinate relative to it: project files are ordinary
18
+ * uses one portable coordinate relative to it: project files are ordinary
19
19
  * relative paths; same-filesystem siblings use `../` segments; package files
20
20
  * keep their full resolution context (including version/peer-store segments);
21
21
  * and a virtual compiler source stays `bundled:///…`. Raw absolute identities
@@ -68,8 +68,8 @@ export declare namespace ITtscGraphDump {
68
68
  * guessing from a field's emptiness, because an empty list and an
69
69
  * uncollected one look identical on the wire.
70
70
  *
71
- * The known members are `universe`, `sourceDigests`, `diskDigests`, and
72
- * `diagnostics`. The type stays `string[]` rather than a union of those on
71
+ * The known members are `universe`, `sourceDigests`, `diskDigests`,
72
+ * `diagnostics`, and `docTags`. The type stays `string[]` rather than a union of those on
73
73
  * purpose: a union would make `typia.assert` reject a newer producer for
74
74
  * naming a capability this client has not heard of, turning "proves more
75
75
  * than you know about" into a hard failure. An unknown capability is
@@ -78,6 +78,16 @@ export declare namespace ITtscGraphDump {
78
78
  capabilities: string[];
79
79
  /** What built the snapshot. */
80
80
  producer: IProducer;
81
+ /**
82
+ * The second producer behind the artifact nodes, absent when the dump
83
+ * carries none.
84
+ *
85
+ * Every other fact in this dump came from one Program. These did not: a
86
+ * plugin parsed documents that Program never read, in a process of its own.
87
+ * Saying so is what keeps the one-generation contract honest instead of
88
+ * letting an overlay ride the same claim as the compiler's facts.
89
+ */
90
+ artifactProducer?: IProducer;
81
91
  /** The inputs that decide which files are in the program at all. */
82
92
  universe: IUniverse;
83
93
  /** One entry per file the program loaded, ordered by file. */
@@ -200,8 +210,17 @@ export declare namespace ITtscGraphDump {
200
210
  * the loader sees a span without its file.
201
211
  */
202
212
  interface INode extends Omit<ITtscGraphNode, "evidence" | "implementation" | "kind"> {
203
- /** Declaration kind written by the native producer. */
213
+ /** Node kind written by the native producer. */
204
214
  kind: TtscGraphDumpNodeKind;
215
+ /**
216
+ * The artifact containing this one, by id.
217
+ *
218
+ * Present only on an artifact node: a declaration's containment is
219
+ * synthesized by the memory layer, and two producers of one relation would
220
+ * put two answers in the graph. Absent at the top of a chain, and absent
221
+ * rather than invented when the parent was not published.
222
+ */
223
+ parent?: string;
205
224
  /** Declaration span; its file is this node's `file`. */
206
225
  evidence?: ITtscGraphSpan;
207
226
  /**
@@ -1,10 +1,23 @@
1
1
  import { ITtscGraphDecorator } from "./ITtscGraphDecorator";
2
+ import { ITtscGraphDocTag } from "./ITtscGraphDocTag";
2
3
  /** Targeted symbol lookup when a concrete name or handle is being resolved. */
3
4
  export interface ITtscGraphLookup {
4
5
  /** Discriminator for targeted symbol lookup. */
5
6
  type: "lookup";
6
7
  /** Ranked symbol matches for the query. */
7
8
  hits: ITtscGraphLookup.IHit[];
9
+ /**
10
+ * True when a match was left out by the limit.
11
+ *
12
+ * The audit for the ranked operations already tells a reader that
13
+ * `truncated` marks where more was left out, and this result had no such
14
+ * field — so a cut looked exactly like a complete answer. That is tolerable
15
+ * for a name query, where the ranking is a shortlist by design, and it is not
16
+ * for a documentation target: those hits are an exact match on an address, so
17
+ * a caller asking which code implements a specification is owed the fact that
18
+ * it did not get all of it.
19
+ */
20
+ truncated?: boolean;
8
21
  }
9
22
  export declare namespace ITtscGraphLookup {
10
23
  /** Find a concrete class, method, function, property, type, or dotted handle. */
@@ -16,6 +29,14 @@ export declare namespace ITtscGraphLookup {
16
29
  * short phrase (`request handler`). Exact names are not required, but this
17
30
  * is not a second broad entrypoints call; use it for a missing or ambiguous
18
31
  * named handle.
32
+ *
33
+ * It also answers the other direction. Give it a documentation target — a
34
+ * document section (`docs/pricing.md#sale`), an API operation
35
+ * (`POST:/orders`), a data model (`prisma:Sale`) — and the hits are the
36
+ * declarations whose documentation cites it, each carrying the tag that
37
+ * matched. That is the question a repository-wide search would otherwise
38
+ * answer, so it is worth asking here first; a target is matched exactly, so
39
+ * spell it as the code does.
19
40
  */
20
41
  query: string;
21
42
  /**
@@ -50,6 +71,14 @@ export declare namespace ITtscGraphLookup {
50
71
  signature?: string;
51
72
  /** Decorators written on this declaration, when any. */
52
73
  decorators?: ITtscGraphDecorator[];
74
+ /**
75
+ * The documentation tags that matched the query, when the query named one.
76
+ *
77
+ * Present only on a hit found through its tags, so it says why this
78
+ * declaration is here: the query named a specification and this is the code
79
+ * that answers to it. A hit matched by name carries none.
80
+ */
81
+ docTags?: ITtscGraphDocTag[];
53
82
  /** Relative relevance; higher is a better match. */
54
83
  score: number;
55
84
  }
@@ -1,4 +1,5 @@
1
1
  import { ITtscGraphDecorator } from "./ITtscGraphDecorator";
2
+ import { ITtscGraphDocTag } from "./ITtscGraphDocTag";
2
3
  import { ITtscGraphEvidence } from "./ITtscGraphEvidence";
3
4
  import { TtscGraphNodeKind } from "./TtscGraphNodeKind";
4
5
  import { TtscGraphNodeModifier } from "./TtscGraphNodeModifier";
@@ -15,6 +16,16 @@ export interface ITtscGraphNode {
15
16
  id: string;
16
17
  /** What this node represents. */
17
18
  kind: TtscGraphNodeKind;
19
+ /**
20
+ * The artifact containing this one, by id.
21
+ *
22
+ * Present only on an artifact node — a section's document or enclosing
23
+ * section, a column's model. A declaration's containment is synthesized by
24
+ * the memory layer from its owner and its file, which an artifact has no
25
+ * equivalent of: a Prisma model has no file in its address, and an API
26
+ * operation has no file at all.
27
+ */
28
+ parent?: string;
18
29
  /** The simple, unqualified declared name (`create`, `OrderService`, `App`). */
19
30
  name: string;
20
31
  /**
@@ -90,6 +101,20 @@ export interface ITtscGraphNode {
90
101
  * (`@Controller`, `@Get`) a consumer interprets without re-parsing source.
91
102
  */
92
103
  decorators?: ITtscGraphDecorator[];
104
+ /**
105
+ * Documentation tags TypeScript does not recognize, in source order: raw
106
+ * facts (`@evidence docs/pricing.md#sale`, `@reference …`) a consumer
107
+ * interprets without re-parsing source.
108
+ *
109
+ * This is where a declaration says what outside the type system it answers
110
+ * to, and it is the only place the graph holds it: the other end of such a
111
+ * relation is a document section or an API operation, which is not a node.
112
+ *
113
+ * Read it only when `provenance.capabilities` lists `docTags`. Without that
114
+ * claim the field is absent because the producer never looked, which is a
115
+ * different fact from a declaration that carries none.
116
+ */
117
+ docTags?: ITtscGraphDocTag[];
93
118
  /**
94
119
  * The declaration head, cut by the producer where the compiler says the body
95
120
  * opens.
@@ -0,0 +1,23 @@
1
+ /**
2
+ * The node kinds that are published artifacts rather than TypeScript
3
+ * declarations.
4
+ *
5
+ * A citation whose target is a TypeScript symbol is a relation the checker
6
+ * resolved. A citation whose target is a document section, a data model field,
7
+ * or an API operation is one of these: a plugin parsed the artifact and
8
+ * published what it is, and the graph indexes that without interpreting any of
9
+ * it. What the linter decided about the citation — covered, excluded, missing —
10
+ * never travels; that is its product and it delivers it as a compile error.
11
+ */
12
+ export declare const TTSC_GRAPH_ARTIFACT_NODE_KINDS: readonly ["markdown_document", "markdown_section", "prisma_model", "prisma_column", "prisma_relation", "swagger_operation"];
13
+ /**
14
+ * Whether a node kind names a published artifact.
15
+ *
16
+ * It is the gate an id parser needs. An artifact's id is the address a citation
17
+ * writes — `docs/sale.md#pricing`, `prisma:Sale.price`, `POST:/orders` — and
18
+ * none of those follow the `path#qualifiedName:kind` grammar
19
+ * {@link TtscGraphNodeId} assumes: a Prisma address carries no path because a
20
+ * model name is unique across the schema folder, and an operation has no file
21
+ * at all.
22
+ */
23
+ export declare function isArtifactNodeKind(kind: string): boolean;
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TTSC_GRAPH_ARTIFACT_NODE_KINDS = void 0;
4
+ exports.isArtifactNodeKind = isArtifactNodeKind;
5
+ /**
6
+ * The node kinds that are published artifacts rather than TypeScript
7
+ * declarations.
8
+ *
9
+ * A citation whose target is a TypeScript symbol is a relation the checker
10
+ * resolved. A citation whose target is a document section, a data model field,
11
+ * or an API operation is one of these: a plugin parsed the artifact and
12
+ * published what it is, and the graph indexes that without interpreting any of
13
+ * it. What the linter decided about the citation — covered, excluded, missing —
14
+ * never travels; that is its product and it delivers it as a compile error.
15
+ */
16
+ exports.TTSC_GRAPH_ARTIFACT_NODE_KINDS = [
17
+ "markdown_document",
18
+ "markdown_section",
19
+ "prisma_model",
20
+ "prisma_column",
21
+ "prisma_relation",
22
+ "swagger_operation",
23
+ ];
24
+ /**
25
+ * Whether a node kind names a published artifact.
26
+ *
27
+ * It is the gate an id parser needs. An artifact's id is the address a citation
28
+ * writes — `docs/sale.md#pricing`, `prisma:Sale.price`, `POST:/orders` — and
29
+ * none of those follow the `path#qualifiedName:kind` grammar
30
+ * {@link TtscGraphNodeId} assumes: a Prisma address carries no path because a
31
+ * model name is unique across the schema folder, and an operation has no file
32
+ * at all.
33
+ */
34
+ function isArtifactNodeKind(kind) {
35
+ return exports.TTSC_GRAPH_ARTIFACT_NODE_KINDS.includes(kind);
36
+ }
37
+ //# sourceMappingURL=TtscGraphArtifactNodeKind.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TtscGraphArtifactNodeKind.js","sourceRoot":"","sources":["../../src/structures/TtscGraphArtifactNodeKind.ts"],"names":[],"mappings":";;;;AAEA;;;;;;;;;;GAUG;AACU,QAAA,8BAA8B,GAAG;IAC5C,mBAAmB;IACnB,kBAAkB;IAClB,cAAc;IACd,eAAe;IACf,iBAAiB;IACjB,mBAAmB;CAC4B,CAAC;AAElD;;;;;;;;;GASG;AACH,4BAAmC,IAAY;IAC7C,OAAQ,QAAA,8BAAoD,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC9E,CAAC"}
@@ -1,2 +1,2 @@
1
1
  /** Relationship kinds the native Go dump producer can write. */
2
- export type TtscGraphDumpEdgeKind = "exports" | "calls" | "accesses" | "instantiates" | "type_ref" | "extends" | "implements" | "overrides" | "renders";
2
+ export type TtscGraphDumpEdgeKind = "exports" | "calls" | "accesses" | "instantiates" | "type_ref" | "doc_ref" | "extends" | "implements" | "overrides" | "renders";
@@ -1,2 +1,10 @@
1
- /** Declaration kinds the native Go dump producer can write. */
2
- export type TtscGraphDumpNodeKind = "module" | "function" | "class" | "interface" | "type" | "enum" | "variable" | "method";
1
+ /**
2
+ * Node kinds the native Go dump producer can write.
3
+ *
4
+ * The last six are not declarations. A plugin materialized them from a Markdown
5
+ * document, a Prisma schema, or an API document — artifacts a citation can name
6
+ * that the type system holds nothing for — and their ids are the address a
7
+ * citation writes rather than the `path#name:kind` grammar, which is why an id
8
+ * is parsed only after its kind says it can be.
9
+ */
10
+ export type TtscGraphDumpNodeKind = "module" | "function" | "class" | "interface" | "type" | "enum" | "variable" | "method" | "markdown_document" | "markdown_section" | "prisma_model" | "prisma_column" | "prisma_relation" | "swagger_operation";
@@ -8,6 +8,13 @@
8
8
  * — `renders` is a JSX component use. Decorators are facts on their target node,
9
9
  * not edges.
10
10
  *
11
+ * `doc_ref` is a declaration's own documentation naming a symbol through an
12
+ * inline link. The checker resolves that name and counts it as a use, so it is
13
+ * a compiler fact like the rest; it is its own kind rather than a `type_ref`
14
+ * because a link is not a type position and may name a function. The tag around
15
+ * a link decides nothing — one under `@evidence`, under `@see`, and in ordinary
16
+ * prose are one relation.
17
+ *
11
18
  * `dispatches` is the runtime counterpart of `overrides`/`implements`: the
12
19
  * checker resolves a call to the declaration it names, and where that
13
20
  * declaration is abstract or an interface member, the code that runs is its
@@ -15,4 +22,4 @@
15
22
  * traversal that follows what executes emits it in place of the dead end. It is
16
23
  * trace-only and never appears in a native dump.
17
24
  */
18
- export type TtscGraphEdgeKind = "contains" | "exports" | "calls" | "accesses" | "instantiates" | "type_ref" | "extends" | "implements" | "overrides" | "dispatches" | "renders";
25
+ export type TtscGraphEdgeKind = "contains" | "exports" | "calls" | "accesses" | "instantiates" | "type_ref" | "doc_ref" | "extends" | "implements" | "overrides" | "dispatches" | "renders";
@@ -8,4 +8,4 @@
8
8
  *
9
9
  * Used as the `kind` discriminant on {@link ITtscGraphNode}.
10
10
  */
11
- export type TtscGraphNodeKind = "file" | "function" | "class" | "interface" | "type" | "enum" | "variable" | "method" | "property";
11
+ export type TtscGraphNodeKind = "file" | "function" | "class" | "interface" | "type" | "enum" | "variable" | "method" | "property" | "markdown_document" | "markdown_section" | "prisma_model" | "prisma_column" | "prisma_relation" | "swagger_operation";
@@ -1,5 +1,6 @@
1
1
  export * from "./ITtscGraphApplication";
2
2
  export * from "./ITtscGraphDecorator";
3
+ export * from "./ITtscGraphDocTag";
3
4
  export * from "./ITtscGraphDump";
4
5
  export * from "./ITtscGraphEdge";
5
6
  export * from "./ITtscGraphEvidence";
@@ -17,5 +18,6 @@ export * from "./ITtscGraphTour";
17
18
  export * from "./TtscGraphEdgeKind";
18
19
  export * from "./TtscGraphDumpEdgeKind";
19
20
  export * from "./TtscGraphDumpNodeKind";
21
+ export * from "./TtscGraphArtifactNodeKind";
20
22
  export * from "./TtscGraphNodeKind";
21
23
  export * from "./TtscGraphNodeModifier";
@@ -21,6 +21,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
21
21
  Object.defineProperty(exports, "__esModule", { value: true });
22
22
  __exportStar(require("./ITtscGraphApplication"), exports);
23
23
  __exportStar(require("./ITtscGraphDecorator"), exports);
24
+ __exportStar(require("./ITtscGraphDocTag"), exports);
24
25
  __exportStar(require("./ITtscGraphDump"), exports);
25
26
  __exportStar(require("./ITtscGraphEdge"), exports);
26
27
  __exportStar(require("./ITtscGraphEvidence"), exports);
@@ -38,6 +39,7 @@ __exportStar(require("./ITtscGraphTour"), exports);
38
39
  __exportStar(require("./TtscGraphEdgeKind"), exports);
39
40
  __exportStar(require("./TtscGraphDumpEdgeKind"), exports);
40
41
  __exportStar(require("./TtscGraphDumpNodeKind"), exports);
42
+ __exportStar(require("./TtscGraphArtifactNodeKind"), exports);
41
43
  __exportStar(require("./TtscGraphNodeKind"), exports);
42
44
  __exportStar(require("./TtscGraphNodeModifier"), exports);
43
45
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/structures/index.ts"],"names":[],"mappings":";AAAA,uEAAuE;AACvE,0EAA0E;AAC1E,8EAA8E;AAC9E,gFAAgF;AAChF,6BAA6B;;;;;;;;;;;;;;;;AAE7B,0DAAwC;AACxC,wDAAsC;AACtC,mDAAiC;AACjC,mDAAiC;AACjC,uDAAqC;AACrC,qDAAmC;AACnC,sDAAoC;AACpC,0DAAwC;AACxC,mDAAiC;AACjC,uDAAqC;AACrC,qDAAmC;AACnC,mDAAiC;AACjC,oDAAkC;AAClC,uDAAqC;AACrC,mDAAiC;AACjC,mDAAiC;AACjC,sDAAoC;AACpC,0DAAwC;AACxC,0DAAwC;AACxC,sDAAoC;AACpC,0DAAwC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/structures/index.ts"],"names":[],"mappings":";AAAA,uEAAuE;AACvE,0EAA0E;AAC1E,8EAA8E;AAC9E,gFAAgF;AAChF,6BAA6B;;;;;;;;;;;;;;;;AAE7B,0DAAwC;AACxC,wDAAsC;AACtC,qDAAmC;AACnC,mDAAiC;AACjC,mDAAiC;AACjC,uDAAqC;AACrC,qDAAmC;AACnC,sDAAoC;AACpC,0DAAwC;AACxC,mDAAiC;AACjC,uDAAqC;AACrC,qDAAmC;AACnC,mDAAiC;AACjC,oDAAkC;AAClC,uDAAqC;AACrC,mDAAiC;AACjC,mDAAiC;AACjC,sDAAoC;AACpC,0DAAwC;AACxC,0DAAwC;AACxC,8DAA4C;AAC5C,sDAAoC;AACpC,0DAAwC"}
package/lib/view.js CHANGED
@@ -10,6 +10,7 @@ const node_http_1 = __importDefault(require("node:http"));
10
10
  const node_path_1 = __importDefault(require("node:path"));
11
11
  const launcherArgs_1 = require("./launcherArgs");
12
12
  const loadGraph_1 = require("./model/loadGraph");
13
+ const publishedArtifacts_1 = require("./model/publishedArtifacts");
13
14
  const nativeExecutable_1 = require("./nativeExecutable");
14
15
  const reduce_1 = require("./reduce");
15
16
  const resolveGraphBinary_1 = require("./resolveGraphBinary");
@@ -58,7 +59,22 @@ function runView(argv) {
58
59
  let dumpStdout;
59
60
  let dumpStderr;
60
61
  try {
61
- dump = (0, node_child_process_1.spawnSync)(binary, ["dump", "--cwd", opts.cwd, "--tsconfig", opts.tsconfig], {
62
+ // The same artifacts the dump, the loader, and the resident session ask
63
+ // for. Without this the viewer draws a different graph from the one every
64
+ // other entry point answers with — and it already carries the colours for
65
+ // the nodes it would be missing.
66
+ const artifacts = (0, publishedArtifacts_1.publishArtifacts)({
67
+ cwd: opts.cwd,
68
+ tsconfig: opts.tsconfig,
69
+ });
70
+ dump = (0, node_child_process_1.spawnSync)(binary, [
71
+ "dump",
72
+ "--cwd",
73
+ opts.cwd,
74
+ "--tsconfig",
75
+ opts.tsconfig,
76
+ ...(artifacts.file === null ? [] : ["--artifacts", artifacts.file]),
77
+ ], {
62
78
  stdio: ["ignore", capture.stdoutFd, capture.stderrFd],
63
79
  windowsHide: true,
64
80
  });
package/lib/view.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"view.js","sourceRoot":"","sources":["../src/view.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"view.js","sourceRoot":"","sources":["../src/view.ts"],"names":[],"mappings":"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"}
@@ -102,19 +102,11 @@
102
102
  <span id="counts"></span>
103
103
  </header>
104
104
  <div id="graph"></div>
105
- <footer>
106
- <span class="dot"
107
- ><span class="swatch" style="background: #3fb950"></span
108
- >value-call</span
109
- >
110
- <span class="dot"
111
- ><span class="swatch" style="background: #f5b042"></span
112
- >type-ref</span
113
- >
114
- <span class="dot"
115
- ><span class="swatch" style="background: #6ea8ff"></span
116
- >heritage</span
117
- >
105
+ <!-- The edge-family swatches are prepended here from the one colour map
106
+ in legend.ts. They used to be written out by hand, so a new family
107
+ rendered in the graph with no entry beside it until someone opened
108
+ both files. -->
109
+ <footer id="legend">
118
110
  <span>node size = connection count · color = declaration kind</span>
119
111
  </footer>
120
112
  </div>