ttsc 0.19.0 → 0.19.2

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 (37) hide show
  1. package/README.md +68 -186
  2. package/cmd/graphdump/main.go +21 -1
  3. package/cmd/ttsc/api_compile.go +3 -13
  4. package/cmd/ttsc/api_transform.go +13 -0
  5. package/cmd/ttscgraph/dump.go +40 -1
  6. package/cmd/ttscgraph/serve.go +194 -25
  7. package/cmd/ttscgraph/serve_error_response_still_names_its_mode_test.go +73 -0
  8. package/cmd/ttscgraph/serve_protocol_fails_the_stream_on_an_unaddressable_request_line_test.go +43 -0
  9. package/cmd/ttscgraph/serve_protocol_version_matches_the_typescript_client_test.go +48 -0
  10. package/cmd/ttscgraph/serve_snapshot_proves_its_program_without_a_second_read_test.go +109 -0
  11. package/driver/graph.go +133 -0
  12. package/internal/graph/diagnostics.go +6 -5
  13. package/internal/graph/dump.go +69 -17
  14. package/internal/graph/dump_diagnostics_ride_the_generation_that_built_it_test.go +79 -0
  15. package/internal/graph/dump_evidence_skips_leading_trivia_test.go +1 -1
  16. package/internal/graph/dump_is_a_function_of_the_source_test.go +1 -1
  17. package/internal/graph/dump_never_serializes_a_list_as_null_test.go +76 -0
  18. package/internal/graph/dump_schema_version_matches_the_typescript_client_test.go +48 -0
  19. package/internal/graph/dump_serializes_the_full_graph_test.go +21 -7
  20. package/internal/graph/node_modifiers_emit_union_strings_test.go +1 -1
  21. package/internal/graph/provenance.go +312 -0
  22. package/lib/TtscCompiler.js +9 -4
  23. package/lib/TtscCompiler.js.map +1 -1
  24. package/lib/compiler/internal/transformProjectInMemory.d.ts +4 -0
  25. package/lib/compiler/internal/transformProjectInMemory.js +67 -12
  26. package/lib/compiler/internal/transformProjectInMemory.js.map +1 -1
  27. package/lib/structures/ITtscCompilerTransformation.d.ts +98 -0
  28. package/package.json +8 -8
  29. package/shim/compiler/incremental.go +58 -0
  30. package/shim/core/shim.go +5 -0
  31. package/src/TtscCompiler.ts +19 -4
  32. package/src/compiler/internal/transformProjectInMemory.ts +106 -12
  33. package/src/structures/ITtscCompilerTransformation.ts +107 -0
  34. package/tools/shim_audit/baseline.json +2 -1
  35. package/tools/shim_audit/main.go +17 -0
  36. package/utility/host.go +17 -15
  37. package/cmd/ttscgraph/serve_protocol_rejects_invalid_request_line_test.go +0 -43
@@ -0,0 +1,312 @@
1
+ package graph
2
+
3
+ import (
4
+ "crypto/sha256"
5
+ "encoding/hex"
6
+ "sort"
7
+
8
+ shimcore "github.com/microsoft/typescript-go/shim/core"
9
+
10
+ "github.com/samchon/ttsc/packages/ttsc/driver"
11
+ )
12
+
13
+ // DumpSchemaVersion is the version of the Dump body shape. It moves when a
14
+ // field is added, removed, or given a new meaning, independently of the serve
15
+ // envelope's protocol version: a one-shot `ttscgraph dump` written to a file has
16
+ // a schema but never rode the protocol.
17
+ const DumpSchemaVersion = 1
18
+
19
+ // The capabilities a snapshot can declare. Each names one class of evidence a
20
+ // consumer may rely on when, and only when, the snapshot lists it.
21
+ const (
22
+ // CapabilityUniverse means Universe fingerprints the build inputs: the
23
+ // config chain and the root file set are complete for this program.
24
+ CapabilityUniverse = "universe"
25
+ // CapabilitySourceDigests means Sources covers every file the program
26
+ // loaded, each with the digest of the text the checker read.
27
+ CapabilitySourceDigests = "sourceDigests"
28
+ // CapabilityDiskDigests means Sources also carries each file's on-disk
29
+ // digest, so an empty one genuinely means the file could not be read.
30
+ //
31
+ // It is separate from CapabilitySourceDigests because a producer can know
32
+ // what the checker read without having hashed the disk, and the two claims
33
+ // fail differently: without this, an empty diskDigest is "did not look",
34
+ // which a consumer would otherwise read as "vanished or virtual".
35
+ CapabilityDiskDigests = "diskDigests"
36
+ // CapabilityDiagnostics means Diagnostics is the compiler's complete
37
+ // findings for this generation, as opposed to not having been collected.
38
+ CapabilityDiagnostics = "diagnostics"
39
+ )
40
+
41
+ // Provenance is the snapshot's evidence about the program that produced it.
42
+ //
43
+ // The graph's whole claim is that its nodes, edges, spans, and diagnostics came
44
+ // from one Program. Without this, a consumer holding a dump can only re-read the
45
+ // disk and hope nothing moved in between — a reconstruction that cannot be made
46
+ // sound from the client side, because a write that lands and reverts between the
47
+ // build and the re-read is invisible to it. Provenance replaces the hope with
48
+ // evidence the compiler already had: it names the producer, fingerprints the
49
+ // build universe, and digests every source the checker actually read.
50
+ //
51
+ // It carries no source body text. A digest is the opposite of inlining: 32 bytes
52
+ // per file that let a consumer prove byte-identity against text it read itself.
53
+ type Provenance struct {
54
+ // SchemaVersion is DumpSchemaVersion at the time the dump was produced.
55
+ SchemaVersion int `json:"schemaVersion"`
56
+
57
+ // Capabilities names what this snapshot actually proves, so a consumer
58
+ // degrades against a statement instead of a guess.
59
+ //
60
+ // An empty list is not the same claim as a missing one. Universe is empty
61
+ // both when a producer fingerprinted the build and found nothing, and when it
62
+ // never looked; only a capability distinguishes those, and a consumer that
63
+ // cannot tell them apart will read "no configs" as "no config changed".
64
+ Capabilities []string `json:"capabilities"`
65
+
66
+ // Producer identifies the binary and the checker behind the facts.
67
+ Producer Producer `json:"producer"`
68
+
69
+ // Universe fingerprints the inputs that decide which files are in the
70
+ // program at all, as opposed to what is inside them.
71
+ Universe Universe `json:"universe"`
72
+
73
+ // Sources digests every file the program loaded, ordered by file.
74
+ Sources []SourceDigest `json:"sources"`
75
+ }
76
+
77
+ // Producer identifies what built a snapshot.
78
+ //
79
+ // Tool and Version are two fields rather than one because more than one binary
80
+ // in this repository can produce a dump, and they do not share a version line:
81
+ // the shipped `ttscgraph` is stamped at release, while the internal viewer tool
82
+ // is not versioned at all. Folding the name into the version field would hand a
83
+ // consumer that parses a version the string "graphdump".
84
+ type Producer struct {
85
+ // Tool is the producing binary's name, such as "ttscgraph".
86
+ Tool string `json:"tool"`
87
+
88
+ // Version is the producing binary's build version, as its `--version` prints
89
+ // it. It is stamped at release; a local build reports the dev placeholder, and
90
+ // a tool that carries no version reports "".
91
+ Version string `json:"version"`
92
+
93
+ // Typescript is the TypeScript version typescript-go implements, in the form
94
+ // `tsc --version` prints.
95
+ Typescript string `json:"typescript"`
96
+ }
97
+
98
+ // Universe fingerprints the build universe: the inputs that decide which files
99
+ // the program contains. A change to any of them can add or drop whole files, so
100
+ // a consumer that reuses facts across snapshots must treat a universe change as
101
+ // invalidating everything, not just the file that moved.
102
+ type Universe struct {
103
+ // Configs digests the tsconfig chain — the project's own config and every
104
+ // file it extends — one entry per file, ordered by file.
105
+ //
106
+ // The config chain stays a universe input regardless of what any single
107
+ // source contains: compiler options change the meaning of code the checker
108
+ // resolves without any source file changing.
109
+ Configs []FileDigest `json:"configs"`
110
+
111
+ // Roots is the resolved root file set, one entry per (config, file) pair,
112
+ // ordered by config then file. A root that a config names but that does not
113
+ // exist on disk is still listed: its absence is part of the fingerprint, and
114
+ // creating it later changes the program.
115
+ Roots []RootFile `json:"roots"`
116
+ }
117
+
118
+ // RootFile is one root file attributed to the config that named it. Project
119
+ // references mean two configs can name the same file, and they are not the same
120
+ // input, so the pair is the unit rather than the bare path.
121
+ type RootFile struct {
122
+ // Config is the tsconfig that named this root, project-relative.
123
+ Config string `json:"config"`
124
+
125
+ // File is the root file, project-relative.
126
+ File string `json:"file"`
127
+ }
128
+
129
+ // FileDigest pairs a file with the SHA-256 of its bytes, hex-encoded.
130
+ type FileDigest struct {
131
+ // File is project-relative.
132
+ File string `json:"file"`
133
+
134
+ // Digest is the hex-encoded SHA-256 of the file's on-disk bytes.
135
+ Digest string `json:"digest"`
136
+ }
137
+
138
+ // SourceDigest is the manifest entry for one source file the program loaded.
139
+ //
140
+ // It carries two digests on purpose, because "the bytes the checker read" and
141
+ // "the bytes on disk" are not always the same string, and a consumer needs to
142
+ // know which one it is comparing against:
143
+ //
144
+ // - Checker digests the exact text the checker resolved against. It is the
145
+ // ground truth for the facts: every node, edge, and span in this dump was
146
+ // computed from these bytes.
147
+ // - Disk digests the file's on-disk bytes as of this snapshot. It is what a
148
+ // consumer that opens the file itself can reproduce.
149
+ //
150
+ // They diverge when a SourcePreamble plugin injects text ahead of the file
151
+ // before tsgo parses it, which a real plugin project does on every build. A
152
+ // single digest would then be a lie in one direction or the other: matched
153
+ // against the checker it would never equal a consumer's read, and matched
154
+ // against the disk it would not describe the text the facts came from. Publishing
155
+ // both lets a consumer verify its own read against Disk and still know, from
156
+ // Checker != Disk, that the checker saw augmented text and byte-identity with
157
+ // the facts is not available for that file.
158
+ //
159
+ // Both are digests. Neither is text: the wire never carries a file's bytes, and
160
+ // the field names say digest so that stays true by reading.
161
+ type SourceDigest struct {
162
+ // File is project-relative.
163
+ File string `json:"file"`
164
+
165
+ // Checker is the hex-encoded SHA-256 of the text the checker resolved
166
+ // against.
167
+ Checker string `json:"checkerDigest"`
168
+
169
+ // Disk is the hex-encoded SHA-256 of the file's on-disk bytes at snapshot
170
+ // time, or "" when the file could not be read — it vanished mid-load, or it
171
+ // is a virtual source with no on-disk identity. An empty Disk means a
172
+ // consumer cannot reproduce this file's bytes and must not claim it did.
173
+ //
174
+ // Read this only when the snapshot declares CapabilityDiskDigests. Without
175
+ // that claim every Disk is empty because the producer never hashed the disk,
176
+ // which is a different fact from a file that could not be read.
177
+ Disk string `json:"diskDigest"`
178
+ }
179
+
180
+ // Diagnostic is one compiler diagnostic riding the snapshot that produced the
181
+ // facts. Positions are 1-based, matching what tsgo reports.
182
+ type Diagnostic struct {
183
+ // File is project-relative.
184
+ File string `json:"file"`
185
+
186
+ // Line is the 1-based line.
187
+ Line int `json:"line"`
188
+
189
+ // Column is the 1-based column.
190
+ Column int `json:"column"`
191
+
192
+ // Code is the TypeScript diagnostic code, such as 2322.
193
+ Code int `json:"code"`
194
+
195
+ // Category is "error" or "warning", the two severities the driver
196
+ // distinguishes: an error fails the build, a warning does not.
197
+ Category string `json:"category"`
198
+
199
+ // Message is the diagnostic text, without the code prefix.
200
+ Message string `json:"message"`
201
+ }
202
+
203
+ // Digest hex-encodes a raw SHA-256 sum for the wire.
204
+ func Digest(sum [sha256.Size]byte) string { return hex.EncodeToString(sum[:]) }
205
+
206
+ // TypescriptVersion reports the TypeScript version the linked checker
207
+ // implements.
208
+ func TypescriptVersion() string { return shimcore.Version() }
209
+
210
+ // NewProvenance assembles the evidence for a snapshot. project relativizes every
211
+ // path; texts maps a source file's absolute path to the text the checker read
212
+ // (as SourceTexts returns it); disk maps a source file's absolute path to the
213
+ // hex digest of its on-disk bytes, and a path absent from it is reported with an
214
+ // empty Disk. configs and roots come from the same capture that produced texts.
215
+ func NewProvenance(
216
+ project string,
217
+ producer Producer,
218
+ capabilities []string,
219
+ configs []FileDigest,
220
+ roots []RootFile,
221
+ texts map[string]string,
222
+ disk map[string]string,
223
+ ) Provenance {
224
+ ctx := newDumpContext(project, nil)
225
+ sources := make([]SourceDigest, 0, len(texts))
226
+ for path, text := range texts {
227
+ sources = append(sources, SourceDigest{
228
+ File: ctx.rel(path),
229
+ Checker: Digest(sha256.Sum256([]byte(text))),
230
+ Disk: disk[path],
231
+ })
232
+ }
233
+ sort.Slice(sources, func(i, j int) bool { return sources[i].File < sources[j].File })
234
+
235
+ relConfigs := make([]FileDigest, 0, len(configs))
236
+ for _, config := range configs {
237
+ relConfigs = append(relConfigs, FileDigest{File: ctx.rel(config.File), Digest: config.Digest})
238
+ }
239
+ sort.Slice(relConfigs, func(i, j int) bool { return relConfigs[i].File < relConfigs[j].File })
240
+
241
+ relRoots := make([]RootFile, 0, len(roots))
242
+ for _, root := range roots {
243
+ relRoots = append(relRoots, RootFile{Config: ctx.rel(root.Config), File: ctx.rel(root.File)})
244
+ }
245
+ sort.Slice(relRoots, func(i, j int) bool {
246
+ if relRoots[i].Config != relRoots[j].Config {
247
+ return relRoots[i].Config < relRoots[j].Config
248
+ }
249
+ return relRoots[i].File < relRoots[j].File
250
+ })
251
+
252
+ // Copy before sorting: the caller's slice is a shared package-level constant,
253
+ // and sorting in place would reorder it under every other reader. The copy of
254
+ // a nil is an empty list, which is what the wire wants anyway.
255
+ declared := append([]string{}, capabilities...)
256
+ sort.Strings(declared)
257
+
258
+ return Provenance{
259
+ SchemaVersion: DumpSchemaVersion,
260
+ Capabilities: declared,
261
+ Producer: producer,
262
+ Universe: Universe{Configs: relConfigs, Roots: relRoots},
263
+ Sources: sources,
264
+ }
265
+ }
266
+
267
+ // NewDiagnostics projects the resident program's compiler diagnostics onto the
268
+ // wire shape, relativized against project and ordered by file, line, column,
269
+ // then code so a snapshot is byte-stable.
270
+ //
271
+ // This is one Program.Diagnostics() call over the already-warm checker rather
272
+ // than a second compile, but it is not free: it forces the semantic check of
273
+ // every file the graph would otherwise only have bound. Callers that do not
274
+ // publish diagnostics should not call it.
275
+ func NewDiagnostics(prog *driver.Program, project string) []Diagnostic {
276
+ ctx := newDumpContext(project, nil)
277
+ raw := prog.Diagnostics()
278
+ out := make([]Diagnostic, 0, len(raw))
279
+ for _, diagnostic := range raw {
280
+ out = append(out, Diagnostic{
281
+ File: ctx.rel(diagnostic.File),
282
+ Line: diagnostic.Line,
283
+ Column: diagnostic.Column,
284
+ Code: int(diagnostic.Code),
285
+ Category: diagnosticCategory(diagnostic.Severity),
286
+ Message: diagnostic.Message,
287
+ })
288
+ }
289
+ sort.Slice(out, func(i, j int) bool {
290
+ if out[i].File != out[j].File {
291
+ return out[i].File < out[j].File
292
+ }
293
+ if out[i].Line != out[j].Line {
294
+ return out[i].Line < out[j].Line
295
+ }
296
+ if out[i].Column != out[j].Column {
297
+ return out[i].Column < out[j].Column
298
+ }
299
+ return out[i].Code < out[j].Code
300
+ })
301
+ return out
302
+ }
303
+
304
+ // diagnosticCategory names a severity the way tsc labels it. The driver
305
+ // distinguishes exactly two, and SeverityError is the zero value, so anything
306
+ // that is not an explicit warning is an error.
307
+ func diagnosticCategory(severity driver.Severity) string {
308
+ if severity == driver.SeverityWarning {
309
+ return "warning"
310
+ }
311
+ return "error"
312
+ }
@@ -320,20 +320,25 @@ function toCompilerResult(project) {
320
320
  };
321
321
  }
322
322
  function toCompilerTransformation(project) {
323
- const { dependencies, result, typescript } = project;
324
- const dependencyField = dependencies === undefined ? {} : { dependencies };
323
+ const { dependencies, dependenciesComplete, graph, result, typescript, volatile, } = project;
324
+ const advisoryFields = {
325
+ ...(dependencies === undefined ? {} : { dependencies }),
326
+ ...(dependenciesComplete === undefined ? {} : { dependenciesComplete }),
327
+ ...(graph === undefined ? {} : { graph }),
328
+ ...(volatile === undefined ? {} : { volatile }),
329
+ };
325
330
  if (result.status === 0 && !hasErrorDiagnostics(result.diagnostics)) {
326
331
  return {
327
332
  ...(result.diagnostics.length === 0
328
333
  ? {}
329
334
  : { diagnostics: result.diagnostics }),
330
- ...dependencyField,
335
+ ...advisoryFields,
331
336
  type: "success",
332
337
  typescript,
333
338
  };
334
339
  }
335
340
  return {
336
- ...dependencyField,
341
+ ...advisoryFields,
337
342
  diagnostics: result.diagnostics.length === 0
338
343
  ? [(0, runBuild_1.createProcessDiagnostic)(result)]
339
344
  : result.diagnostics,
@@ -1 +1 @@
1
- {"version":3,"file":"TtscCompiler.js","sourceRoot":"","sources":["../src/TtscCompiler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TtscCompiler.js","sourceRoot":"","sources":["../src/TtscCompiler.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import type { ITtscCompilerContext } from "../../structures/ITtscCompilerContext";
2
+ import type { ITtscCompilerTransformation } from "../../structures/ITtscCompilerTransformation";
2
3
  import type { TtscBuildResult } from "../../structures/internal/TtscBuildResult";
3
4
  /**
4
5
  * Transform a project and capture TypeScript source output in memory.
@@ -17,6 +18,9 @@ import type { TtscBuildResult } from "../../structures/internal/TtscBuildResult"
17
18
  */
18
19
  export declare function transformProjectInMemory(options: ITtscCompilerContext): {
19
20
  dependencies?: Record<string, string[]>;
21
+ dependenciesComplete?: string[];
22
+ graph?: ITtscCompilerTransformation.IReferenceGraph;
20
23
  result: TtscBuildResult;
21
24
  typescript: Record<string, string>;
25
+ volatile?: string[];
22
26
  };
@@ -66,9 +66,7 @@ function transformProjectWithNativeHost(options, project) {
66
66
  }
67
67
  const output = parseNativeTransformOutput((0, spawnNative_1.outputText)(res.stdout), (0, spawnNative_1.outputText)(res.stderr));
68
68
  return {
69
- ...(output.dependencies === undefined
70
- ? {}
71
- : { dependencies: output.dependencies }),
69
+ ...envelopeSideChannels(output),
72
70
  result: {
73
71
  diagnostics: output.diagnostics,
74
72
  status: res.status ?? 1,
@@ -104,9 +102,7 @@ function transformProjectWithPlugins(options, cwd, project) {
104
102
  if (transformers.length === 0) {
105
103
  const transformed = transformProjectWithNativeHost(options, project);
106
104
  return {
107
- ...(transformed.dependencies === undefined
108
- ? {}
109
- : { dependencies: transformed.dependencies }),
105
+ ...envelopeSideChannels(transformed),
110
106
  result: (0, runBuild_1.appendBuildOutput)(checked, transformed.result),
111
107
  typescript: transformed.typescript,
112
108
  };
@@ -127,12 +123,28 @@ function transformProjectWithPlugins(options, cwd, project) {
127
123
  stdout: "",
128
124
  stderr: (0, spawnNative_1.outputText)(res.stderr),
129
125
  };
126
+ return {
127
+ ...envelopeSideChannels(output),
128
+ result: (0, runBuild_1.appendBuildOutput)(checked, result),
129
+ typescript: output.typescript,
130
+ };
131
+ }
132
+ /**
133
+ * Collect the optional advisory envelope fields (`dependencies`,
134
+ * `dependenciesComplete`, `graph`, `volatile`) into a spreadable object,
135
+ * omitting absent fields so downstream result shapes stay free of `undefined`
136
+ * keys.
137
+ */
138
+ function envelopeSideChannels(output) {
130
139
  return {
131
140
  ...(output.dependencies === undefined
132
141
  ? {}
133
142
  : { dependencies: output.dependencies }),
134
- result: (0, runBuild_1.appendBuildOutput)(checked, result),
135
- typescript: output.typescript,
143
+ ...(output.dependenciesComplete === undefined
144
+ ? {}
145
+ : { dependenciesComplete: output.dependenciesComplete }),
146
+ ...(output.graph === undefined ? {} : { graph: output.graph }),
147
+ ...(output.volatile === undefined ? {} : { volatile: output.volatile }),
136
148
  };
137
149
  }
138
150
  /**
@@ -247,10 +259,14 @@ function nativePluginEnv(options, tsgoBinary, nativePlugins, plugin) {
247
259
  * treated as a protocol error and throws with the stderr/stdout context. JSON
248
260
  * parse errors are also wrapped with the same context message.
249
261
  *
250
- * The optional `dependencies` field (per-file consulted-source lists, see
251
- * `ITtscCompilerTransformation`) is forwarded when well-formed; entries that
252
- * are not string arrays are dropped rather than failing the transform — the
253
- * field is advisory watch metadata, not output.
262
+ * The optional `dependencies`, `dependenciesComplete`, `graph`, and `volatile`
263
+ * fields (see `ITtscCompilerTransformation`) are forwarded when well-formed;
264
+ * entries that do not match the expected shape are dropped rather than failing
265
+ * the transform — the fields are advisory invalidation metadata, not output.
266
+ *
267
+ * Dropping a malformed `dependenciesComplete` member is the safe direction on
268
+ * purpose: an unlisted file keeps the sound host-owned bound, so a garbled
269
+ * declaration costs over-invalidation, never a stale output.
254
270
  */
255
271
  function parseNativeTransformOutput(stdout, stderr) {
256
272
  try {
@@ -259,8 +275,14 @@ function parseNativeTransformOutput(stdout, stderr) {
259
275
  throw new Error("ttsc: native transform host did not return a TypeScript source map");
260
276
  }
261
277
  const dependencies = parseDependencyLists(parsed.dependencies);
278
+ const dependenciesComplete = parseFileList(parsed.dependenciesComplete);
279
+ const graph = parseReferenceGraph(parsed.graph);
280
+ const volatile = parseFileList(parsed.volatile);
262
281
  return {
263
282
  ...(dependencies === undefined ? {} : { dependencies }),
283
+ ...(dependenciesComplete === undefined ? {} : { dependenciesComplete }),
284
+ ...(graph === undefined ? {} : { graph }),
285
+ ...(volatile === undefined ? {} : { volatile }),
264
286
  diagnostics: Array.isArray(parsed.diagnostics) ? parsed.diagnostics : [],
265
287
  typescript: parsed.typescript,
266
288
  };
@@ -293,6 +315,39 @@ function parseDependencyLists(value) {
293
315
  }
294
316
  return Object.keys(output).length === 0 ? undefined : output;
295
317
  }
318
+ /**
319
+ * Normalize the optional `graph` envelope section with the same tolerance as
320
+ * `dependencies`: non-object sections are dropped, edge entries that are not
321
+ * string arrays are dropped, and non-string list members are filtered. A
322
+ * section carrying nothing usable collapses to `undefined`.
323
+ */
324
+ function parseReferenceGraph(value) {
325
+ if (typeof value !== "object" || value === null || Array.isArray(value)) {
326
+ return undefined;
327
+ }
328
+ const section = value;
329
+ const edges = parseDependencyLists(section.edges) ?? {};
330
+ const globals = parseFileList(section.globals) ?? [];
331
+ const configs = parseFileList(section.configs) ?? [];
332
+ if (Object.keys(edges).length === 0 &&
333
+ globals.length === 0 &&
334
+ configs.length === 0) {
335
+ return undefined;
336
+ }
337
+ return { configs, edges, globals };
338
+ }
339
+ /**
340
+ * Normalize an optional string-list envelope field (`dependenciesComplete`,
341
+ * `volatile`, and the `globals`/`configs` graph sections), or `undefined` when
342
+ * absent or carrying nothing usable.
343
+ */
344
+ function parseFileList(value) {
345
+ if (!Array.isArray(value)) {
346
+ return undefined;
347
+ }
348
+ const files = value.filter((entry) => typeof entry === "string" && entry.length !== 0);
349
+ return files.length === 0 ? undefined : files;
350
+ }
296
351
  /** Type guard: true when `value` is a non-null, non-array object of strings. */
297
352
  function isTextRecord(value) {
298
353
  return (typeof value === "object" &&
@@ -1 +1 @@
1
- {"version":3,"file":"transformProjectInMemory.js","sourceRoot":"","sources":["../../../src/compiler/internal/transformProjectInMemory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transformProjectInMemory.js","sourceRoot":"","sources":["../../../src/compiler/internal/transformProjectInMemory.ts"],"names":[],"mappings":"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"}