ttsc 0.21.0 → 0.23.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 (119) hide show
  1. package/cmd/ttscserver/main.go +79 -3
  2. package/cmd/ttscserver/run_lsp_uses_native_plugin_manifest_source_test.go +96 -16
  3. package/driver/lsp.go +4 -0
  4. package/go.mod +1 -1
  5. package/internal/lspserver/lsp_document_diagnostics_omits_cached_project_when_current_result_has_none_test.go +48 -0
  6. package/internal/lspserver/lsp_executable_project_input_change_requests_launcher_restart_test.go +98 -0
  7. package/internal/lspserver/lsp_external_watched_change_retains_program_test.go +53 -0
  8. package/internal/lspserver/lsp_hints_refresh_scheduled_by_editor_events_test.go +9 -0
  9. package/internal/lspserver/lsp_launcher_reload_directory_fingerprint_parity_windows_test.go +94 -0
  10. package/internal/lspserver/lsp_native_plugin_source.go +171 -55
  11. package/internal/lspserver/lsp_native_resident.go +110 -9
  12. package/internal/lspserver/lsp_plugin.go +6 -0
  13. package/internal/lspserver/lsp_project_context_transport_identity_test.go +43 -0
  14. package/internal/lspserver/lsp_project_diagnostics.go +235 -0
  15. package/internal/lspserver/lsp_project_diagnostics_capability_is_independent_test.go +67 -0
  16. package/internal/lspserver/lsp_project_diagnostics_program_input_overlap_refreshes_all_producers_test.go +78 -0
  17. package/internal/lspserver/lsp_project_diagnostics_refresh_accumulates_owner_freshness_test.go +65 -0
  18. package/internal/lspserver/lsp_project_diagnostics_refresh_keeps_each_producer_last_good_test.go +90 -0
  19. package/internal/lspserver/lsp_project_diagnostics_refreshes_only_input_owners_test.go +62 -0
  20. package/internal/lspserver/lsp_project_diagnostics_resident_unsupported_falls_back_test.go +123 -0
  21. package/internal/lspserver/lsp_project_diagnostics_resume_preserves_generation_test.go +52 -0
  22. package/internal/lspserver/lsp_project_diagnostics_translates_relative_client_project_test.go +90 -0
  23. package/internal/lspserver/lsp_project_input_glob_path_other.go +16 -0
  24. package/internal/lspserver/lsp_project_input_glob_path_windows.go +36 -0
  25. package/internal/lspserver/lsp_project_input_ownership_resolves_declared_spellings_test.go +95 -0
  26. package/internal/lspserver/lsp_project_input_path_key_other.go +17 -0
  27. package/internal/lspserver/lsp_project_input_path_key_windows.go +228 -0
  28. package/internal/lspserver/lsp_project_input_path_key_windows_test.go +460 -0
  29. package/internal/lspserver/lsp_project_input_registration.go +504 -0
  30. package/internal/lspserver/lsp_project_input_registration_rechecks_selection_baseline_test.go +71 -0
  31. package/internal/lspserver/lsp_project_input_registration_reconciles_rejected_pending_request_test.go +268 -0
  32. package/internal/lspserver/lsp_project_input_registration_shapes_patterns_test.go +94 -0
  33. package/internal/lspserver/lsp_project_input_watchers_anchor_missing_paths_test.go +48 -0
  34. package/internal/lspserver/lsp_project_inputs.go +1012 -0
  35. package/internal/lspserver/lsp_project_inputs_match_missing_exact_and_glob_test.go +129 -0
  36. package/internal/lspserver/lsp_project_inputs_reject_invalid_and_foreign_snapshots_test.go +110 -0
  37. package/internal/lspserver/lsp_proxy.go +591 -28
  38. package/internal/lspserver/lsp_reload_directories_compare_immediate_topology_test.go +188 -0
  39. package/internal/lspserver/lsp_reload_directories_separate_glob_territory_test.go +181 -0
  40. package/internal/lspserver/lsp_reload_file_fingerprint_preserves_raw_symlink_target_test.go +47 -0
  41. package/internal/lspserver/lsp_resident_falls_back_when_serve_unsupported_test.go +1 -1
  42. package/internal/lspserver/lsp_resident_invalidation_broadcasts_program_input_overlap_test.go +60 -0
  43. package/internal/lspserver/lsp_resident_invalidation_targets_project_input_owners_test.go +51 -0
  44. package/internal/lspserver/lsp_same_transport_entries_are_deduplicated_test.go +66 -0
  45. package/lib/compiler/internal/project/readProjectConfig.d.ts +5 -3
  46. package/lib/compiler/internal/project/readProjectConfig.js +46 -14
  47. package/lib/compiler/internal/project/readProjectConfig.js.map +1 -1
  48. package/lib/compiler/internal/residentCheckProcess.d.ts +46 -0
  49. package/lib/compiler/internal/residentCheckProcess.js +227 -0
  50. package/lib/compiler/internal/residentCheckProcess.js.map +1 -0
  51. package/lib/compiler/internal/resolveEmittedJavaScript.d.ts +2 -1
  52. package/lib/compiler/internal/resolveEmittedJavaScript.js +35 -18
  53. package/lib/compiler/internal/resolveEmittedJavaScript.js.map +1 -1
  54. package/lib/compiler/internal/runBuild.d.ts +64 -1
  55. package/lib/compiler/internal/runBuild.js +484 -7
  56. package/lib/compiler/internal/runBuild.js.map +1 -1
  57. package/lib/compiler/internal/runSingleFileEmit.js +1 -0
  58. package/lib/compiler/internal/runSingleFileEmit.js.map +1 -1
  59. package/lib/flags/parser.js +13 -17
  60. package/lib/flags/parser.js.map +1 -1
  61. package/lib/flags/schema.d.ts +10 -3
  62. package/lib/flags/schema.js +99 -0
  63. package/lib/flags/schema.js.map +1 -1
  64. package/lib/internal/projectInputPathIdentity.d.ts +31 -0
  65. package/lib/internal/projectInputPathIdentity.js +276 -0
  66. package/lib/internal/projectInputPathIdentity.js.map +1 -0
  67. package/lib/internal/windowsDirectoryCaseSensitivity.d.ts +10 -0
  68. package/lib/internal/windowsDirectoryCaseSensitivity.js +34 -0
  69. package/lib/internal/windowsDirectoryCaseSensitivity.js.map +1 -0
  70. package/lib/launcher/internal/runTtsc.d.ts +17 -0
  71. package/lib/launcher/internal/runTtsc.js +126 -88
  72. package/lib/launcher/internal/runTtsc.js.map +1 -1
  73. package/lib/launcher/internal/runTtscserver.d.ts +13 -1
  74. package/lib/launcher/internal/runTtscserver.js +468 -47
  75. package/lib/launcher/internal/runTtscserver.js.map +1 -1
  76. package/lib/launcher/internal/runTtsx.js +61 -7
  77. package/lib/launcher/internal/runTtsx.js.map +1 -1
  78. package/lib/launcher/internal/runtimeHooks.d.ts +6 -5
  79. package/lib/launcher/internal/runtimeHooks.js +7 -15
  80. package/lib/launcher/internal/runtimeHooks.js.map +1 -1
  81. package/lib/launcher/internal/singleFileOutput.d.ts +16 -0
  82. package/lib/launcher/internal/singleFileOutput.js +103 -0
  83. package/lib/launcher/internal/singleFileOutput.js.map +1 -0
  84. package/lib/launcher/internal/watchTopology.d.ts +288 -2
  85. package/lib/launcher/internal/watchTopology.js +1921 -54
  86. package/lib/launcher/internal/watchTopology.js.map +1 -1
  87. package/lib/plugin/internal/descriptorProcessFailure.d.ts +32 -0
  88. package/lib/plugin/internal/descriptorProcessFailure.js +73 -0
  89. package/lib/plugin/internal/descriptorProcessFailure.js.map +1 -0
  90. package/lib/plugin/internal/loadProjectPlugins.d.ts +1 -0
  91. package/lib/plugin/internal/loadProjectPlugins.js +34 -8
  92. package/lib/plugin/internal/loadProjectPlugins.js.map +1 -1
  93. package/lib/structures/ITtscPluginCapabilities.d.ts +31 -0
  94. package/lib/structures/internal/ITtscProjectInputSnapshot.d.ts +29 -0
  95. package/lib/structures/internal/ITtscProjectInputSnapshot.js +3 -0
  96. package/lib/structures/internal/ITtscProjectInputSnapshot.js.map +1 -0
  97. package/lib/structures/internal/TtscSingleFileEmitOptions.d.ts +5 -0
  98. package/package.json +12 -8
  99. package/src/compiler/internal/project/readProjectConfig.ts +62 -8
  100. package/src/compiler/internal/residentCheckProcess.ts +279 -0
  101. package/src/compiler/internal/resolveEmittedJavaScript.ts +43 -21
  102. package/src/compiler/internal/runBuild.ts +728 -12
  103. package/src/compiler/internal/runSingleFileEmit.ts +1 -0
  104. package/src/flags/parser.ts +17 -17
  105. package/src/flags/schema.ts +112 -3
  106. package/src/internal/projectInputPathIdentity.ts +377 -0
  107. package/src/internal/windowsDirectoryCaseSensitivity.ts +33 -0
  108. package/src/launcher/internal/runTtsc.ts +148 -117
  109. package/src/launcher/internal/runTtscserver.ts +633 -56
  110. package/src/launcher/internal/runTtsx.ts +87 -10
  111. package/src/launcher/internal/runtimeHooks.ts +16 -16
  112. package/src/launcher/internal/singleFileOutput.ts +133 -0
  113. package/src/launcher/internal/watchTopology.ts +2494 -74
  114. package/src/plugin/internal/descriptorProcessFailure.ts +100 -0
  115. package/src/plugin/internal/loadProjectPlugins.ts +49 -8
  116. package/src/structures/ITtscPluginCapabilities.ts +34 -0
  117. package/src/structures/internal/ITtscProjectInputSnapshot.ts +29 -0
  118. package/src/structures/internal/TtscSingleFileEmitOptions.ts +5 -0
  119. package/tools/shim_audit/baseline.json +0 -9
@@ -4,16 +4,25 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.runTtscserver = runTtscserver;
7
+ exports.materializeLSPPluginManifest = materializeLSPPluginManifest;
8
+ exports.fingerprintInitialLSPProjectInputSnapshot = fingerprintInitialLSPProjectInputSnapshot;
9
+ exports.initialLSPProjectInputSnapshotIsCurrent = initialLSPProjectInputSnapshotIsCurrent;
7
10
  exports.needsStdio = needsStdio;
8
11
  const node_child_process_1 = require("node:child_process");
12
+ const node_crypto_1 = require("node:crypto");
9
13
  const node_fs_1 = __importDefault(require("node:fs"));
10
14
  const node_os_1 = __importDefault(require("node:os"));
11
15
  const node_path_1 = __importDefault(require("node:path"));
16
+ const createNativeProjectContextArgs_1 = require("../../compiler/internal/project/createNativeProjectContextArgs");
12
17
  const readProjectConfig_1 = require("../../compiler/internal/project/readProjectConfig");
13
18
  const resolveBinary_1 = require("../../compiler/internal/resolveBinary");
14
19
  const resolveTsgo_1 = require("../../compiler/internal/resolveTsgo");
20
+ const projectInputPathIdentity_1 = require("../../internal/projectInputPathIdentity");
15
21
  const loadProjectPlugins_1 = require("../../plugin/internal/loadProjectPlugins");
16
22
  const resolveTtscserverBinary_1 = require("./resolveTtscserverBinary");
23
+ const LSP_SELECTION_STABILITY_ATTEMPTS = 3;
24
+ const LSP_PROJECT_INPUT_TIMEOUT_MS = 30_000;
25
+ const LSP_PROJECT_INPUT_MAX_BUFFER = 4 * 1024 * 1024;
17
26
  /**
18
27
  * Drive the ttscserver native binary from a node launcher. The launcher is
19
28
  * deliberately thin: argument parsing, version banners, and help text are owned
@@ -22,7 +31,7 @@ const resolveTtscserverBinary_1 = require("./resolveTtscserverBinary");
22
31
  *
23
32
  * - Resolve the platform binary,
24
33
  * - Resolve the project TypeScript-Go binary for the native wrapper,
25
- * - Resolve the project config and build the LSP plugin manifest environment,
34
+ * - Resolve the project config and materialize the private LSP plugin manifest,
26
35
  * - Inject the Node/ttsx helper paths used by disk-backed LSP sidecars,
27
36
  * - Inject `--stdio` when the first arg is not a meta-command,
28
37
  * - Delegate to the binary with inherited stdio so OS-level signals reach the
@@ -39,19 +48,25 @@ function runTtscserver(argv = process.argv.slice(2)) {
39
48
  }
40
49
  ensureExecutable(binary);
41
50
  const args = needsStdio(argv) ? ["--stdio", ...argv] : [...argv];
42
- let env;
51
+ let execution;
43
52
  try {
44
- env = resolveTtscserverEnv(args);
53
+ execution = resolveTtscserverEnv(args);
45
54
  }
46
55
  catch (error) {
47
56
  process.stderr.write(`ttscserver: ${stripTtscPrefix(formatError(error))}\n`);
48
57
  return 1;
49
58
  }
50
- const result = (0, node_child_process_1.spawnSync)(binary, args, {
51
- stdio: "inherit",
52
- env,
53
- windowsHide: true,
54
- });
59
+ let result;
60
+ try {
61
+ result = (0, node_child_process_1.spawnSync)(binary, [...execution.args, ...args], {
62
+ stdio: "inherit",
63
+ env: execution.env,
64
+ windowsHide: true,
65
+ });
66
+ }
67
+ finally {
68
+ execution.dispose();
69
+ }
55
70
  if (result.error) {
56
71
  process.stderr.write(`ttscserver: ${result.error.message}\n`);
57
72
  return 1;
@@ -71,39 +86,91 @@ function runTtscserver(argv = process.argv.slice(2)) {
71
86
  /**
72
87
  * Build the environment for the native binary. In `--stdio` (LSP) mode the Go
73
88
  * binary needs the project tsgo binary plus any LSP-capable plugin sidecars the
74
- * JS loader resolved from config. Inject those paths through environment
75
- * variables so the native host can stay focused on proxying tsgo and
76
- * dispatching sidecar verbs. Skip `TTSC_TSGO_BINARY` injection when the caller
77
- * already provided the variable or passed an explicit `--tsgo` option.
89
+ * JS loader resolved from config. Pass the manifest through a private temporary
90
+ * file and inject canonical helper paths so the native host and every later
91
+ * sidecar refresh use the same launch context.
78
92
  */
79
93
  function resolveTtscserverEnv(argv) {
80
94
  if (!argv.includes("--stdio")) {
81
95
  // Non-LSP invocations (--version, --help) do not shell out to tsgo.
82
- return process.env;
96
+ return { args: [], dispose() { }, env: process.env };
83
97
  }
84
98
  const context = resolveLspExecutionContext(argv);
99
+ const env = lspSidecarEnvironment({
100
+ pluginConfigOrigin: context.projectContext?.pluginConfigOrigin,
101
+ tsgoBinary: context.tsgoBinary,
102
+ });
103
+ delete env.TTSC_LSP_PLUGINS_JSON;
104
+ delete env.TTSC_LSP_PLUGINS_FILE;
105
+ const lspPlugins = context.nativePlugins.filter((plugin) => plugin.capabilities?.lsp === true);
106
+ if (lspPlugins.length === 0) {
107
+ // Nothing would be lost by an older native host, so keep it startable.
108
+ return { args: [], dispose() { }, env };
109
+ }
110
+ const transport = materializeLSPPluginManifest({
111
+ initialProjectInputs: Object.fromEntries(context.initialProjectInputs),
112
+ plugins: serializeNativePlugins(context.nativePlugins),
113
+ projectContext: context.projectContext,
114
+ lspPlugins: lspPlugins.map((plugin) => ({
115
+ binary: plugin.binary,
116
+ ...(plugin.capabilities?.projectInputs === true
117
+ ? { initialProjectInputKey: lspPluginTransportKey(plugin) }
118
+ : {}),
119
+ name: plugin.name,
120
+ projectDiagnostics: plugin.capabilities?.projectDiagnostics === true,
121
+ projectInputs: plugin.capabilities?.projectInputs === true,
122
+ projectContextArgs: plugin.capabilities?.projectContextArgs === true,
123
+ stage: plugin.stage,
124
+ })),
125
+ });
126
+ // Deliver the manifest as an explicit flag rather than an inherited variable.
127
+ // A native host that predates the flag rejects the invocation instead of
128
+ // starting without the plugins this project declared, and nothing downstream
129
+ // of the host inherits either a path to the manifest or its payload.
130
+ return {
131
+ args: ["--lsp-plugins-file", transport.path],
132
+ dispose: transport.dispose,
133
+ env,
134
+ };
135
+ }
136
+ function materializeLSPPluginManifest(manifest) {
137
+ const directory = node_fs_1.default.mkdtempSync(node_path_1.default.join(node_os_1.default.tmpdir(), "ttsc-lsp-"));
138
+ const location = node_path_1.default.join(directory, "plugins.json");
139
+ try {
140
+ node_fs_1.default.writeFileSync(location, JSON.stringify(manifest), {
141
+ encoding: "utf8",
142
+ flag: "wx",
143
+ mode: 0o600,
144
+ });
145
+ }
146
+ catch (error) {
147
+ node_fs_1.default.rmSync(directory, { force: true, recursive: true });
148
+ throw error;
149
+ }
150
+ let disposed = false;
151
+ return {
152
+ dispose() {
153
+ if (disposed)
154
+ return;
155
+ disposed = true;
156
+ node_fs_1.default.rmSync(directory, { force: true, recursive: true });
157
+ },
158
+ path: location,
159
+ };
160
+ }
161
+ function lspSidecarEnvironment(options) {
85
162
  const env = {
86
163
  ...process.env,
87
164
  TTSC_NODE_BINARY: process.env.TTSC_NODE_BINARY ?? process.execPath,
165
+ TTSC_TSGO_BINARY: options.tsgoBinary,
88
166
  TTSC_TTSX_BINARY: process.env.TTSC_TTSX_BINARY ??
89
167
  node_path_1.default.join(__dirname, "..", "..", "launcher", "ttsx.js"),
90
168
  };
91
- delete env.TTSC_LSP_PLUGINS_JSON;
92
- if (!process.env.TTSC_TSGO_BINARY && !hasTsgoOption(argv)) {
93
- env.TTSC_TSGO_BINARY = context.tsgoBinary;
169
+ if (options.pluginConfigOrigin === undefined) {
170
+ delete env.TTSC_PLUGIN_CONFIG_DIR;
94
171
  }
95
- const lspPlugins = context.nativePlugins.filter((plugin) => plugin.capabilities?.lsp === true);
96
- if (lspPlugins.length > 0) {
97
- env.TTSC_LSP_PLUGINS_JSON = JSON.stringify({
98
- plugins: serializeNativePlugins(context.nativePlugins),
99
- projectContext: context.projectContext,
100
- lspPlugins: lspPlugins.map((plugin) => ({
101
- binary: plugin.binary,
102
- name: plugin.name,
103
- projectContextArgs: plugin.capabilities?.projectContextArgs === true,
104
- stage: plugin.stage,
105
- })),
106
- });
172
+ else {
173
+ env.TTSC_PLUGIN_CONFIG_DIR = options.pluginConfigOrigin;
107
174
  }
108
175
  return env;
109
176
  }
@@ -114,9 +181,9 @@ function resolveLspExecutionContext(argv) {
114
181
  process.env.TTSC_PLUGIN_CONFIG_DIR === ""
115
182
  ? undefined
116
183
  : node_path_1.default.resolve(cwd, process.env.TTSC_PLUGIN_CONFIG_DIR);
117
- let project;
184
+ let initialProject;
118
185
  try {
119
- project = (0, readProjectConfig_1.readProjectConfig)({ cwd, tsconfig });
186
+ initialProject = (0, readProjectConfig_1.readProjectConfig)({ cwd, tsconfig });
120
187
  }
121
188
  catch (error) {
122
189
  if (tsconfig) {
@@ -128,35 +195,389 @@ function resolveLspExecutionContext(argv) {
128
195
  resolveFrom: __filename,
129
196
  });
130
197
  return {
198
+ initialProjectInputs: new Map(),
131
199
  nativePlugins: [],
132
200
  tsgoBinary: tsgo.binary,
133
201
  };
134
202
  }
135
- const tsgo = (0, resolveTsgo_1.resolveTsgo)({
136
- binary: optionValue(argv, "--tsgo"),
137
- cwd: project.root,
138
- resolveFrom: __filename,
139
- });
140
- const loaded = (0, loadProjectPlugins_1.hasProjectPluginEntries)(project)
203
+ let project = initialProject;
204
+ for (let attempt = 1; attempt <= LSP_SELECTION_STABILITY_ATTEMPTS; attempt++) {
205
+ const loaded = loadLSPProjectPlugins(project, cwd, pluginConfigOrigin);
206
+ const selectedProject = loaded.project;
207
+ const tsgo = (0, resolveTsgo_1.resolveTsgo)({
208
+ binary: optionValue(argv, "--tsgo"),
209
+ cwd: selectedProject.root,
210
+ resolveFrom: __filename,
211
+ });
212
+ const initialProjectInputs = captureInitialLSPProjectInputs({
213
+ nativePlugins: loaded.nativePlugins,
214
+ pluginConfigOrigin,
215
+ project: selectedProject,
216
+ tsgoBinary: tsgo.binary,
217
+ });
218
+ const confirmationProject = (0, readProjectConfig_1.readProjectConfig)({ cwd, tsconfig });
219
+ const confirmation = loadLSPProjectPlugins(confirmationProject, cwd, pluginConfigOrigin);
220
+ const confirmedProject = confirmation.project;
221
+ const confirmedTsgo = (0, resolveTsgo_1.resolveTsgo)({
222
+ binary: optionValue(argv, "--tsgo"),
223
+ cwd: confirmedProject.root,
224
+ resolveFrom: __filename,
225
+ });
226
+ const confirmedProjectInputs = captureInitialLSPProjectInputs({
227
+ nativePlugins: confirmation.nativePlugins,
228
+ pluginConfigOrigin,
229
+ project: confirmedProject,
230
+ tsgoBinary: confirmedTsgo.binary,
231
+ });
232
+ if (lspSelectionSignature(selectedProject, loaded.nativePlugins) ===
233
+ lspSelectionSignature(confirmedProject, confirmation.nativePlugins) &&
234
+ initialLSPProjectInputsEqual(initialProjectInputs, confirmedProjectInputs) &&
235
+ [...confirmedProjectInputs.values()].every(initialLSPProjectInputSnapshotIsCurrent)) {
236
+ return {
237
+ initialProjectInputs: confirmedProjectInputs,
238
+ nativePlugins: confirmation.nativePlugins,
239
+ projectContext: {
240
+ ...confirmedProject.identity,
241
+ ...(pluginConfigOrigin === undefined ? {} : { pluginConfigOrigin }),
242
+ },
243
+ tsgoBinary: confirmedTsgo.binary,
244
+ };
245
+ }
246
+ project = confirmedProject;
247
+ }
248
+ throw new Error(`ttscserver: project plugin selection remained unstable across ${LSP_SELECTION_STABILITY_ATTEMPTS} bounded startup attempts`);
249
+ }
250
+ function loadLSPProjectPlugins(project, cwd, pluginConfigOrigin) {
251
+ return (0, loadProjectPlugins_1.hasProjectPluginEntries)(project)
141
252
  ? (0, loadProjectPlugins_1.loadProjectPlugins)({
142
253
  binary: (0, resolveBinary_1.resolveBinary)() ?? "",
143
254
  cwd,
144
255
  pluginConfigDir: pluginConfigOrigin,
145
- projectRoot: project.root,
146
- tsconfig: project.path,
256
+ tsconfig: project.identity.logicalConfigPath,
147
257
  })
148
- : { nativePlugins: [] };
258
+ : { nativePlugins: [], project };
259
+ }
260
+ function captureInitialLSPProjectInputs(options) {
261
+ const snapshots = new Map();
262
+ const pluginsJSON = JSON.stringify(serializeNativePlugins(options.nativePlugins));
263
+ for (const plugin of options.nativePlugins) {
264
+ if (plugin.capabilities?.lsp !== true ||
265
+ plugin.capabilities.projectInputs !== true) {
266
+ continue;
267
+ }
268
+ const transportKey = lspPluginTransportKey(plugin);
269
+ if (snapshots.has(transportKey))
270
+ continue;
271
+ const args = [
272
+ "project-inputs",
273
+ "--tsconfig=" + options.project.path,
274
+ "--plugins-json=" + pluginsJSON,
275
+ "--cwd=" + options.project.root,
276
+ ];
277
+ if (plugin.capabilities.projectContextArgs === true) {
278
+ args.push(...(0, createNativeProjectContextArgs_1.createNativeProjectContextArgs)(options.project, options.pluginConfigOrigin));
279
+ }
280
+ const env = lspSidecarEnvironment({
281
+ pluginConfigOrigin: options.pluginConfigOrigin,
282
+ tsgoBinary: options.tsgoBinary,
283
+ });
284
+ const result = (0, node_child_process_1.spawnSync)(plugin.binary, args, {
285
+ cwd: options.project.root,
286
+ encoding: "utf8",
287
+ env,
288
+ maxBuffer: LSP_PROJECT_INPUT_MAX_BUFFER,
289
+ timeout: LSP_PROJECT_INPUT_TIMEOUT_MS,
290
+ windowsHide: true,
291
+ });
292
+ if (result.error) {
293
+ throw new Error(`ttscserver: ${plugin.name ?? plugin.binary} project-inputs failed: ${result.error.message}`);
294
+ }
295
+ const stdout = result.stdout.trim();
296
+ if (result.status !== 0) {
297
+ const detail = result.stderr.trim() || stdout;
298
+ throw new Error(`ttscserver: ${plugin.name ?? plugin.binary} project-inputs failed${detail ? `: ${detail}` : ""}`);
299
+ }
300
+ snapshots.set(transportKey, fingerprintInitialLSPProjectInputSnapshot(parseInitialLSPProjectInputSnapshot(stdout, plugin)));
301
+ }
302
+ return snapshots;
303
+ }
304
+ function lspPluginTransportKey(plugin) {
305
+ return (plugin.binary +
306
+ "\0" +
307
+ (plugin.capabilities?.projectContextArgs === true ? "1" : "0"));
308
+ }
309
+ function initialLSPProjectInputsEqual(left, right) {
310
+ if (left.size !== right.size)
311
+ return false;
312
+ for (const [key, leftSnapshot] of left) {
313
+ const rightSnapshot = right.get(key);
314
+ if (rightSnapshot === undefined ||
315
+ initialLSPProjectInputSnapshotSignature(leftSnapshot) !==
316
+ initialLSPProjectInputSnapshotSignature(rightSnapshot)) {
317
+ return false;
318
+ }
319
+ }
320
+ return true;
321
+ }
322
+ function initialLSPProjectInputSnapshotSignature(snapshot) {
323
+ const sorted = (values) => [...(values ?? [])].sort();
324
+ const reloadDirectories = sorted(snapshot.reloadDirectories);
325
+ const reloadFiles = sorted(snapshot.reloadFiles);
326
+ return JSON.stringify({
327
+ files: sorted(snapshot.files),
328
+ globs: sorted(snapshot.globs),
329
+ reloadDirectories: reloadDirectories.map((directory) => [
330
+ directory,
331
+ snapshot.reloadDirectoryDigests[directory],
332
+ ]),
333
+ reloadFiles: reloadFiles.map((file) => [
334
+ file,
335
+ snapshot.reloadFileDigests[file],
336
+ ]),
337
+ root: snapshot.root,
338
+ });
339
+ }
340
+ function parseInitialLSPProjectInputSnapshot(text, plugin) {
341
+ let value;
342
+ try {
343
+ value = JSON.parse(text);
344
+ }
345
+ catch (error) {
346
+ throw new Error(`ttscserver: ${plugin.name ?? plugin.binary} project-inputs returned invalid JSON: ${error instanceof Error ? error.message : String(error)}`);
347
+ }
348
+ if (value === null ||
349
+ typeof value !== "object" ||
350
+ typeof value.root !== "string" ||
351
+ !Array.isArray(value.files) ||
352
+ !Array.isArray(value.globs) ||
353
+ (value.reloadFiles !== undefined &&
354
+ !Array.isArray(value.reloadFiles)) ||
355
+ (value.reloadDirectories !== undefined &&
356
+ !Array.isArray(value.reloadDirectories))) {
357
+ throw new Error(`ttscserver: ${plugin.name ?? plugin.binary} project-inputs returned a malformed snapshot`);
358
+ }
359
+ return value;
360
+ }
361
+ function fingerprintInitialLSPProjectInputSnapshot(snapshot) {
362
+ const reloadDirectoryDigests = {};
363
+ const reloadFileDigests = {};
364
+ for (const directory of snapshot.reloadDirectories ?? []) {
365
+ reloadDirectoryDigests[directory] =
366
+ lspProjectInputReloadDirectoryDigest(directory);
367
+ }
368
+ for (const file of snapshot.reloadFiles ?? []) {
369
+ reloadFileDigests[file] = lspProjectInputFileDigest(realLSPProjectInputEntryPath(file));
370
+ }
149
371
  return {
150
- nativePlugins: loaded.nativePlugins,
151
- projectContext: {
152
- ...project.identity,
153
- ...(pluginConfigOrigin === undefined ? {} : { pluginConfigOrigin }),
154
- },
155
- tsgoBinary: tsgo.binary,
372
+ ...snapshot,
373
+ reloadDirectoryDigests,
374
+ reloadFileDigests,
156
375
  };
157
376
  }
158
- function hasTsgoOption(argv) {
159
- return argv.some((arg) => arg === "--tsgo" || arg.startsWith("--tsgo="));
377
+ function initialLSPProjectInputSnapshotIsCurrent(snapshot) {
378
+ return ((snapshot.reloadDirectories ?? []).every((directory) => snapshot.reloadDirectoryDigests[directory] ===
379
+ lspProjectInputReloadDirectoryDigest(directory)) &&
380
+ (snapshot.reloadFiles ?? []).every((file) => snapshot.reloadFileDigests[file] ===
381
+ lspProjectInputFileDigest(realLSPProjectInputEntryPath(file))));
382
+ }
383
+ function lspSelectionSignature(project, plugins) {
384
+ return JSON.stringify({
385
+ identity: project.identity,
386
+ plugins: plugins.map((plugin) => ({
387
+ binary: plugin.binary,
388
+ capabilities: plugin.capabilities,
389
+ config: plugin.config,
390
+ contributors: plugin.contributors,
391
+ kind: plugin.kind,
392
+ name: plugin.name,
393
+ source: plugin.source,
394
+ stage: plugin.stage,
395
+ })),
396
+ });
397
+ }
398
+ function lspProjectInputReloadDirectoryDigest(location) {
399
+ const identities = (0, projectInputPathIdentity_1.createProjectInputPathIdentityContext)();
400
+ const identity = lspProjectInputPhysicalPathIdentity(location, identities);
401
+ return (0, node_crypto_1.createHash)("sha256")
402
+ .update(Buffer.concat([
403
+ Buffer.from("directory\0"),
404
+ identity,
405
+ Buffer.from([0]),
406
+ Buffer.from(lspProjectInputDirectoryTopologyDigest(process.platform === "win32"
407
+ ? identities.resolve(location).path
408
+ : identity)),
409
+ ]))
410
+ .digest("hex");
411
+ }
412
+ function lspProjectInputPhysicalPathIdentity(location, identities) {
413
+ if (process.platform === "win32") {
414
+ return Buffer.from(identities.resolve(location).path.replaceAll("\\", "/"), "utf8");
415
+ }
416
+ let existing = node_path_1.default.resolve(location);
417
+ const missing = [];
418
+ while (true) {
419
+ try {
420
+ const realpath = node_fs_1.default.realpathSync.native ?? node_fs_1.default.realpathSync;
421
+ let physical = realpath(Buffer.from(existing), {
422
+ encoding: "buffer",
423
+ });
424
+ for (const segment of missing) {
425
+ physical = Buffer.concat([
426
+ physical,
427
+ physical.at(-1) === 0x2f ? Buffer.alloc(0) : Buffer.from("/"),
428
+ segment,
429
+ ]);
430
+ }
431
+ return physical;
432
+ }
433
+ catch (error) {
434
+ if (error instanceof Error &&
435
+ "code" in error &&
436
+ error.code !== "ENOENT" &&
437
+ error.code !== "ENOTDIR") {
438
+ throw error;
439
+ }
440
+ const parent = node_path_1.default.dirname(existing);
441
+ if (parent === existing)
442
+ return Buffer.from(existing);
443
+ missing.unshift(Buffer.from(node_path_1.default.basename(existing)));
444
+ existing = parent;
445
+ }
446
+ }
447
+ }
448
+ function lspProjectInputDirectoryTopologyDigest(location) {
449
+ const entries = [];
450
+ try {
451
+ if (process.platform === "win32") {
452
+ const directory = typeof location === "string" ? location : location.toString("utf8");
453
+ for (const entry of node_fs_1.default.readdirSync(directory, { withFileTypes: true })) {
454
+ let target = Buffer.alloc(0);
455
+ if (entry.isSymbolicLink()) {
456
+ try {
457
+ target = Buffer.from(node_fs_1.default.readlinkSync(node_path_1.default.join(directory, entry.name)), "utf8");
458
+ }
459
+ catch {
460
+ target = Buffer.from("<unreadable>");
461
+ }
462
+ }
463
+ entries.push(lspProjectInputDirectoryRecord(Buffer.from(entry.name), entry, target));
464
+ }
465
+ }
466
+ else {
467
+ for (const entry of node_fs_1.default.readdirSync(location, {
468
+ encoding: "buffer",
469
+ withFileTypes: true,
470
+ })) {
471
+ let target = Buffer.alloc(0);
472
+ if (entry.isSymbolicLink()) {
473
+ try {
474
+ target = node_fs_1.default.readlinkSync(Buffer.concat([
475
+ Buffer.isBuffer(location) ? location : Buffer.from(location),
476
+ Buffer.from(node_path_1.default.sep),
477
+ entry.name,
478
+ ]), { encoding: "buffer" });
479
+ }
480
+ catch {
481
+ target = Buffer.from("<unreadable>");
482
+ }
483
+ }
484
+ entries.push(lspProjectInputDirectoryRecord(entry.name, entry, target));
485
+ }
486
+ }
487
+ }
488
+ catch {
489
+ return (0, node_crypto_1.createHash)("sha256").update("missing\0").digest("hex");
490
+ }
491
+ entries.sort(Buffer.compare);
492
+ const serialized = Buffer.concat(entries.flatMap((entry, index) => index === 0 ? [entry] : [Buffer.from([0]), entry]));
493
+ return (0, node_crypto_1.createHash)("sha256").update(serialized).digest("hex");
494
+ }
495
+ function lspProjectInputDirectoryRecord(name, entry, target) {
496
+ const kind = entry.isDirectory()
497
+ ? "directory"
498
+ : entry.isFile()
499
+ ? "file"
500
+ : entry.isSymbolicLink()
501
+ ? "symlink"
502
+ : "other";
503
+ return Buffer.concat([name, Buffer.from("\0" + kind + "\0"), target]);
504
+ }
505
+ function lspProjectInputFileDigest(location) {
506
+ try {
507
+ const info = node_fs_1.default.lstatSync(location);
508
+ if (info.isSymbolicLink()) {
509
+ let target = Buffer.from("<unreadable>");
510
+ try {
511
+ target = node_fs_1.default.readlinkSync(Buffer.from(location), {
512
+ encoding: "buffer",
513
+ });
514
+ }
515
+ catch {
516
+ // Preserve the same explicit unreadable state as the Go validator.
517
+ }
518
+ let content = Buffer.from("missing\0");
519
+ try {
520
+ content = Buffer.concat([
521
+ Buffer.from("file\0"),
522
+ node_fs_1.default.readFileSync(location),
523
+ ]);
524
+ }
525
+ catch {
526
+ // A dangling or unreadable target remains part of the symlink state.
527
+ }
528
+ return (0, node_crypto_1.createHash)("sha256")
529
+ .update(Buffer.concat([
530
+ Buffer.from("symlink\0"),
531
+ target,
532
+ Buffer.from([0]),
533
+ content,
534
+ ]))
535
+ .digest("hex");
536
+ }
537
+ if (info.isFile()) {
538
+ return (0, node_crypto_1.createHash)("sha256")
539
+ .update(Buffer.concat([Buffer.from("file\0"), node_fs_1.default.readFileSync(location)]))
540
+ .digest("hex");
541
+ }
542
+ return (0, node_crypto_1.createHash)("sha256").update("other\0").digest("hex");
543
+ }
544
+ catch {
545
+ return (0, node_crypto_1.createHash)("sha256").update("missing\0").digest("hex");
546
+ }
547
+ }
548
+ /**
549
+ * Physical path of a location whose leaf may not exist yet.
550
+ *
551
+ * Both ends go through the shared spelling rule rather than `path.resolve`
552
+ * alone. Windows hands back extended-length paths from a native realpath, and a
553
+ * record written as `\?\C:\project` never matches a lookup for `C:\project`
554
+ * even though one file is meant — the split identity every other consumer on
555
+ * this branch was taught to avoid.
556
+ */
557
+ function realLSPProjectInputPath(location) {
558
+ const absolute = (0, projectInputPathIdentity_1.resolveProjectInputPath)(location);
559
+ let probe = absolute;
560
+ const suffix = [];
561
+ for (;;) {
562
+ try {
563
+ let resolved = (0, projectInputPathIdentity_1.resolveProjectInputPath)(node_fs_1.default.realpathSync.native(probe));
564
+ for (let index = suffix.length - 1; index >= 0; index--) {
565
+ resolved = node_path_1.default.join(resolved, suffix[index]);
566
+ }
567
+ return node_path_1.default.normalize(resolved);
568
+ }
569
+ catch {
570
+ const parent = node_path_1.default.dirname(probe);
571
+ if (parent === probe)
572
+ return node_path_1.default.normalize(absolute);
573
+ suffix.push(node_path_1.default.basename(probe));
574
+ probe = parent;
575
+ }
576
+ }
577
+ }
578
+ function realLSPProjectInputEntryPath(location) {
579
+ const absolute = (0, projectInputPathIdentity_1.resolveProjectInputPath)(location);
580
+ return node_path_1.default.join(realLSPProjectInputPath(node_path_1.default.dirname(absolute)), node_path_1.default.basename(absolute));
160
581
  }
161
582
  function optionValue(argv, name) {
162
583
  for (let i = 0; i < argv.length; i++) {
@@ -1 +1 @@
1
- {"version":3,"file":"runTtscserver.js","sourceRoot":"","sources":["../../../src/launcher/internal/runTtscserver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runTtscserver.js","sourceRoot":"","sources":["../../../src/launcher/internal/runTtscserver.ts"],"names":[],"mappings":"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"}