ttsc 0.30.4 → 0.31.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 (2089) hide show
  1. package/cmd/graphbench/main.go +2 -3
  2. package/cmd/graphdump/main.go +42 -16
  3. package/cmd/graphdump/run_declares_the_capability_its_output_carries_test.go +32 -18
  4. package/cmd/graphdump/run_reports_an_unknown_flag_without_exiting_the_process_test.go +10 -9
  5. package/cmd/graphdump/run_reports_an_unloadable_project_without_printing_a_dump_test.go +8 -7
  6. package/cmd/platform/command_operation_families_test.go +192 -0
  7. package/cmd/platform/main.go +11 -1
  8. package/cmd/ttsc/api_compile.go +166 -46
  9. package/cmd/ttsc/api_compile_branches_test.go +97 -10
  10. package/cmd/ttsc/api_transform.go +134 -46
  11. package/cmd/ttsc/api_transform_branches_test.go +10 -7
  12. package/cmd/ttsc/build.go +177 -68
  13. package/cmd/ttsc/build_branches_test.go +35 -7
  14. package/cmd/ttsc/cli_command_operation_families_test.go +1287 -0
  15. package/cmd/ttsc/cli_contract_helpers_test.go +82 -0
  16. package/cmd/ttsc/compiler_argument_cwd_test.go +57 -0
  17. package/cmd/ttsc/filter.go +31 -14
  18. package/cmd/ttsc/filter_resolves_flag_names_case_insensitively_test.go +10 -13
  19. package/cmd/ttsc/filter_strips_unknown_forwarded_flag_test.go +10 -16
  20. package/cmd/ttsc/flags_gen.go +2 -2
  21. package/cmd/ttsc/helpers_test.go +67 -10
  22. package/cmd/ttsc/main.go +122 -21
  23. package/cmd/ttsc/main_alias_branches_test.go +35 -9
  24. package/cmd/ttsc/testdata/cli_operation_families/TestAPITransformEnvelopeCarriesReferenceGraph/ambient.d.ts +1 -0
  25. package/cmd/ttsc/testdata/cli_operation_families/TestAPITransformEnvelopeCarriesReferenceGraph/main.ts +2 -0
  26. package/cmd/ttsc/testdata/cli_operation_families/TestAPITransformEnvelopeCarriesReferenceGraph/mytype.ts +1 -0
  27. package/cmd/ttsc/testdata/cli_operation_families/TestAPITransformEnvelopeCarriesReferenceGraph/tsconfig.base.json +3 -0
  28. package/cmd/ttsc/testdata/cli_operation_families/TestAPITransformEnvelopeCarriesReferenceGraph/tsconfig.json +5 -0
  29. package/cmd/ttsc/testdata/cli_operation_families/TestCLIAPICompileAndTransform/index.ts +1 -0
  30. package/cmd/ttsc/testdata/cli_operation_families/TestCLIAPICompileAndTransform/src/decorated/main.ts +10 -0
  31. package/cmd/ttsc/testdata/cli_operation_families/TestCLIAPICompileAndTransform/src/decorated/types.ts +3 -0
  32. package/cmd/ttsc/testdata/cli_operation_families/TestCLIAPICompileAndTransform/src/helpers.ts +1 -0
  33. package/cmd/ttsc/testdata/cli_operation_families/TestCLIAPICompileAndTransform/src/isolated.ts +1 -0
  34. package/cmd/ttsc/testdata/cli_operation_families/TestCLIAPICompileAndTransform/src/main.ts +7 -0
  35. package/cmd/ttsc/testdata/cli_operation_families/TestCLIAPICompileAndTransform/src/nested/model.ts +1 -0
  36. package/cmd/ttsc/testdata/cli_operation_families/TestCLIAPICompileAndTransform/tsconfig.json +14 -0
  37. package/cmd/ttsc/testdata/cli_operation_families/TestCLIAPITransformUsesCurrentDirectory/index.ts +1 -0
  38. package/cmd/ttsc/testdata/cli_operation_families/TestCLIAPITransformUsesCurrentDirectory/tsconfig.json +7 -0
  39. package/cmd/ttsc/testdata/cli_operation_families/TestCLIProjectBuildAllowsUnusedTypeParametersOnOverloadSignatures/index.ts +4 -0
  40. package/cmd/ttsc/testdata/cli_operation_families/TestCLIProjectBuildAllowsUnusedTypeParametersOnOverloadSignatures/tsconfig.json +11 -0
  41. package/cmd/ttsc/testdata/cli_operation_families/TestCLIProjectBuildBlocksSemanticDiagnostics/index.ts +2 -0
  42. package/cmd/ttsc/testdata/cli_operation_families/TestCLIProjectBuildBlocksSemanticDiagnostics/tsconfig.json +9 -0
  43. package/cmd/ttsc/testdata/cli_operation_families/TestCLIProjectBuildBlocksSyntacticDiagnostics/index.ts +2 -0
  44. package/cmd/ttsc/testdata/cli_operation_families/TestCLIProjectBuildBlocksSyntacticDiagnostics/tsconfig.json +8 -0
  45. package/cmd/ttsc/testdata/cli_operation_families/TestCLIProjectBuildBlocksUnusedParameters/index.ts +3 -0
  46. package/cmd/ttsc/testdata/cli_operation_families/TestCLIProjectBuildBlocksUnusedParameters/tsconfig.json +10 -0
  47. package/cmd/ttsc/testdata/cli_operation_families/TestCLIProjectBuildEmitErrorRejectsManifest/index.ts +1 -0
  48. package/cmd/ttsc/testdata/cli_operation_families/TestCLIProjectBuildEmitErrorRejectsManifest/tsconfig.json +1 -0
  49. package/cmd/ttsc/testdata/cli_operation_families/TestCLIReportsDiagnosticsWithoutEmit/index.ts +1 -0
  50. package/cmd/ttsc/testdata/cli_operation_families/TestCLIReportsDiagnosticsWithoutEmit/tsconfig.json +8 -0
  51. package/cmd/ttsc/testdata/cli_operation_families/shared-value-one/project/emit.json +8 -0
  52. package/cmd/ttsc/testdata/cli_operation_families/shared-value-one/project/flag-shaped.json +7 -0
  53. package/cmd/ttsc/testdata/cli_operation_families/shared-value-one/project/index.ts +2 -0
  54. package/cmd/ttsc/testdata/cli_operation_families/shared-value-one/project/nested/tsconfig.app.json +11 -0
  55. package/cmd/ttsc/testdata/cli_operation_families/shared-value-one/project/outside.json +8 -0
  56. package/cmd/ttsc/testdata/cli_operation_families/shared-value-one/project/tsconfig.json +8 -0
  57. package/cmd/ttscgraph/auxiliary_identity_state_tracks_retargets_not_source_contents_test.go +26 -15
  58. package/cmd/ttscgraph/disk_realpath_other.go +2 -0
  59. package/cmd/ttscgraph/dump.go +46 -29
  60. package/cmd/ttscgraph/prepared_projection.go +61 -0
  61. package/cmd/ttscgraph/projection_fixture_test.go +96 -0
  62. package/cmd/ttscgraph/run_dump_claims_artifacts_only_when_it_asked_test.go +30 -5
  63. package/cmd/ttscgraph/run_dump_declares_the_capability_its_output_carries_test.go +6 -1
  64. package/cmd/ttscgraph/run_dump_emits_only_checker_verified_member_relations_test.go +12 -5
  65. package/cmd/ttscgraph/run_dump_prints_the_graph_as_json_test.go +17 -12
  66. package/cmd/ttscgraph/run_help_version_and_bad_flags_exit_codes_test.go +8 -3
  67. package/cmd/ttscgraph/serve.go +116 -79
  68. package/cmd/ttscgraph/serve_adopts_a_republished_artifact_set_test.go +16 -167
  69. package/cmd/ttscgraph/serve_adopts_a_republished_set_over_the_shard_protocol_test.go +122 -0
  70. package/cmd/ttscgraph/serve_answers_a_project_that_implements_its_own_ambient_declaration_test.go +35 -7
  71. package/cmd/ttscgraph/serve_early_error_encode_failure_is_observable_test.go +5 -0
  72. package/cmd/ttscgraph/serve_error_response_still_names_its_mode_test.go +10 -5
  73. package/cmd/ttscgraph/serve_git_ignore_projection_test.go +150 -0
  74. package/cmd/ttscgraph/serve_keeps_a_startup_set_a_client_never_mentions_test.go +69 -0
  75. package/cmd/ttscgraph/serve_object_members_refresh_without_identity_collisions_test.go +82 -0
  76. package/cmd/ttscgraph/serve_phase_trace_accounts_for_load_failure_test.go +9 -3
  77. package/cmd/ttscgraph/serve_phase_trace_is_opt_in_and_payload_free_test.go +12 -6
  78. package/cmd/ttscgraph/serve_projects_an_artifact_no_source_owns_test.go +13 -16
  79. package/cmd/ttscgraph/serve_protocol_fails_the_stream_on_an_unaddressable_request_line_test.go +10 -9
  80. package/cmd/ttscgraph/serve_protocol_negotiates_incremental_shards_test.go +37 -2
  81. package/cmd/ttscgraph/serve_protocol_retries_session_creation_test.go +7 -2
  82. package/cmd/ttscgraph/serve_protocol_reuses_session_test.go +13 -3
  83. package/cmd/ttscgraph/serve_session_applies_source_edit_incrementally_test.go +12 -7
  84. package/cmd/ttscgraph/serve_session_fails_closed_on_deleted_config_test.go +12 -7
  85. package/cmd/ttscgraph/serve_session_fails_closed_on_invalid_config_test.go +8 -3
  86. package/cmd/ttscgraph/serve_session_keeps_base_url_fallback_unchanged_test.go +7 -2
  87. package/cmd/ttscgraph/serve_session_keeps_change_detection_live_after_initial_dump_error_test.go +66 -0
  88. package/cmd/ttscgraph/serve_session_keeps_esm_directory_candidate_unchanged_test.go +12 -3
  89. package/cmd/ttscgraph/serve_session_keeps_exports_blocked_file_candidates_unchanged_test.go +8 -3
  90. package/cmd/ttscgraph/serve_session_keeps_inactive_conditional_export_unchanged_test.go +12 -3
  91. package/cmd/ttscgraph/serve_session_keeps_lower_priority_module_candidate_unchanged_test.go +14 -8
  92. package/cmd/ttscgraph/serve_session_keeps_lower_priority_paths_pattern_unchanged_test.go +12 -3
  93. package/cmd/ttscgraph/serve_session_keeps_missing_literal_root_unchanged_test.go +7 -2
  94. package/cmd/ttscgraph/serve_session_keeps_nonlongest_root_dirs_candidate_unchanged_test.go +12 -3
  95. package/cmd/ttscgraph/serve_session_rebuilds_import_graph_change_test.go +17 -8
  96. package/cmd/ttscgraph/serve_session_reloads_commonjs_package_entry_for_esm_test.go +11 -2
  97. package/cmd/ttscgraph/serve_session_reloads_created_literal_root_test.go +7 -2
  98. package/cmd/ttscgraph/serve_session_reloads_extended_config_change_test.go +9 -4
  99. package/cmd/ttscgraph/serve_session_reloads_module_suffix_candidate_test.go +13 -4
  100. package/cmd/ttscgraph/serve_session_reloads_newly_resolved_conditional_export_test.go +13 -8
  101. package/cmd/ttscgraph/serve_session_reloads_newly_resolved_config_types_test.go +7 -2
  102. package/cmd/ttscgraph/serve_session_reloads_newly_resolved_excluded_import_test.go +11 -3
  103. package/cmd/ttscgraph/serve_session_reloads_newly_resolved_package_export_test.go +11 -2
  104. package/cmd/ttscgraph/serve_session_reloads_newly_resolved_package_import_test.go +11 -2
  105. package/cmd/ttscgraph/serve_session_reloads_newly_resolved_path_alias_test.go +11 -2
  106. package/cmd/ttscgraph/serve_session_reloads_newly_resolved_reference_path_test.go +11 -2
  107. package/cmd/ttscgraph/serve_session_reloads_newly_resolved_root_dirs_target_test.go +11 -2
  108. package/cmd/ttscgraph/serve_session_reloads_newly_resolved_type_reference_test.go +11 -2
  109. package/cmd/ttscgraph/serve_session_reloads_root_file_set_test.go +11 -5
  110. package/cmd/ttscgraph/serve_session_reloads_source_deleted_during_load_test.go +16 -9
  111. package/cmd/ttscgraph/serve_session_reloads_superseding_module_candidates_test.go +18 -13
  112. package/cmd/ttscgraph/serve_session_reloads_transitive_project_reference_test.go +14 -5
  113. package/cmd/ttscgraph/serve_session_reloads_when_program_plugin_linked_test.go +13 -8
  114. package/cmd/ttscgraph/serve_session_retries_a_pending_dump_before_unchanged_test.go +62 -0
  115. package/cmd/ttscgraph/serve_session_reuses_unchanged_preamble_source_test.go +21 -0
  116. package/cmd/ttscgraph/serve_session_reuses_unchanged_snapshot_test.go +12 -7
  117. package/cmd/ttscgraph/serve_session_revisits_source_edited_during_load_test.go +18 -8
  118. package/cmd/ttscgraph/serve_session_tolerates_os_invalid_resolution_candidate_test.go +13 -9
  119. package/cmd/ttscgraph/serve_session_tracks_all_module_specifier_forms_test.go +12 -3
  120. package/cmd/ttscgraph/serve_session_tracks_diamond_project_references_once_test.go +12 -8
  121. package/cmd/ttscgraph/serve_shards.go +356 -279
  122. package/cmd/ttscgraph/serve_shards_abandoned_generation_converges_on_retry_test.go +41 -16
  123. package/cmd/ttscgraph/serve_shards_delete_removed_source_test.go +14 -4
  124. package/cmd/ttscgraph/serve_shards_external_endpoints_test.go +18 -2
  125. package/cmd/ttscgraph/serve_shards_keep_source_distributed_dependencies_at_the_boundary_test.go +36 -5
  126. package/cmd/ttscgraph/serve_shards_match_full_dump_oracle_test.go +12 -3
  127. package/cmd/ttscgraph/serve_shards_merge_pending_and_new_edits_test.go +36 -3
  128. package/cmd/ttscgraph/serve_shards_prune_unreferenced_external_endpoints_test.go +18 -2
  129. package/cmd/ttscgraph/serve_shards_publish_created_source_test.go +16 -13
  130. package/cmd/ttscgraph/serve_shards_rebuild_declaration_edit_test.go +14 -4
  131. package/cmd/ttscgraph/serve_shards_refresh_cross_file_implementation_test.go +24 -5
  132. package/cmd/ttscgraph/serve_shards_refresh_dependent_diagnostics_test.go +30 -7
  133. package/cmd/ttscgraph/serve_shards_rename_moves_source_identity_test.go +14 -11
  134. package/cmd/ttscgraph/serve_shards_retry_preserves_committed_generation_test.go +17 -7
  135. package/cmd/ttscgraph/serve_shards_reuse_unaffected_sources_test.go +21 -7
  136. package/cmd/ttscgraph/serve_snapshot_proves_its_program_without_a_second_read_test.go +57 -16
  137. package/cmd/ttscgraph/serve_source_encoding_test.go +133 -0
  138. package/cmd/ttscserver/command_operation_families_test.go +207 -0
  139. package/cmd/ttscserver/main.go +121 -39
  140. package/cmd/ttscserver/resolve_launch_uses_native_flag_authority_test.go +147 -0
  141. package/cmd/ttscserver/run_lsp_forwards_execute_command_advertisement_flags_test.go +7 -0
  142. package/cmd/ttscserver/run_lsp_prefers_tsgo_flag_test.go +13 -1
  143. package/cmd/ttscserver/run_lsp_reports_getwd_error_test.go +5 -0
  144. package/cmd/ttscserver/run_lsp_reports_server_error_test.go +10 -3
  145. package/cmd/ttscserver/run_lsp_uses_native_plugin_manifest_source_test.go +13 -10
  146. package/cmd/ttscserver/run_lsp_uses_tsgo_environment_test.go +10 -3
  147. package/driver/authored_region_maps_positions_around_the_preamble_test.go +95 -0
  148. package/driver/build_information_uses_selected_output_identity_test.go +148 -0
  149. package/driver/check_observations.go +67 -0
  150. package/driver/config_discovery.go +93 -24
  151. package/driver/declaration_shape.go +9 -0
  152. package/driver/diagnostics_preamble.go +8 -7
  153. package/driver/emit_containment.go +29 -8
  154. package/driver/emit_plugin.go +106 -36
  155. package/driver/emit_plugin_output.go +26 -2
  156. package/driver/emit_provenance.go +155 -0
  157. package/driver/graph.go +54 -20
  158. package/driver/host.go +26 -3
  159. package/driver/input_observation.go +78 -16
  160. package/driver/input_observation_test.go +34 -11
  161. package/driver/lsp.go +401 -30
  162. package/driver/overlay.go +69 -2
  163. package/driver/plugins.go +256 -24
  164. package/driver/private_result.go +43 -0
  165. package/driver/program.go +439 -95
  166. package/driver/resolution_candidates.go +63 -14
  167. package/driver/resolution_candidates_test.go +28 -0
  168. package/driver/resolutioninputs/recorder.cjs +1149 -0
  169. package/driver/resolutioninputs/resolutioninputs.go +37 -0
  170. package/driver/rewrite.go +373 -420
  171. package/driver/session.go +80 -12
  172. package/driver/sourcemap_preamble.go +38 -16
  173. package/driver/transform_dependencies.go +38 -10
  174. package/driver/transform_dependencies_declares_every_file_without_a_contributor_test.go +9 -8
  175. package/driver/transform_dependencies_drops_a_self_reported_dependency_test.go +7 -6
  176. package/driver/transform_dependencies_keys_a_reported_path_like_the_envelope_test.go +9 -9
  177. package/driver/transform_dependencies_requires_every_contributor_to_declare_test.go +10 -5
  178. package/driver/transform_dependencies_stays_silent_for_an_undeclared_contributor_test.go +8 -6
  179. package/driver/transform_dependencies_withdraws_completeness_after_an_unusable_dependency_test.go +9 -5
  180. package/driver/transform_source_map.go +388 -0
  181. package/driver/windowsjunction/create_preserves_existing_directory_windows_test.go +48 -0
  182. package/driver/windowsjunction/create_treats_paths_as_data_windows_test.go +55 -0
  183. package/driver/windowsjunction/windowsjunction.go +17 -1
  184. package/go.mod +10 -10
  185. package/go.sum +10 -10
  186. package/internal/cwd/cwd.go +13 -0
  187. package/internal/e2etrace/artifact.go +147 -0
  188. package/internal/e2etrace/completion_hints.go +35 -0
  189. package/internal/e2etrace/completion_hints_test.go +76 -0
  190. package/internal/e2etrace/e2etrace.go +303 -0
  191. package/internal/e2etrace/output.go +50 -0
  192. package/internal/graph/artifacts.go +69 -12
  193. package/internal/graph/artifacts_index_what_a_plugin_published_test.go +19 -8
  194. package/internal/graph/artifacts_survive_a_partial_rebuild_test.go +11 -12
  195. package/internal/graph/assigned_implementations_of_declaration_file_symbols_leave_no_edge_source_test.go +10 -12
  196. package/internal/graph/assigned_implementations_of_node_modules_symbols_leave_no_edge_source_test.go +7 -1
  197. package/internal/graph/build.go +122 -38
  198. package/internal/graph/build_files_reuses_committed_cross_file_endpoints_test.go +9 -3
  199. package/internal/graph/build_keeps_source_distributed_dependencies_at_the_external_boundary_test.go +10 -1
  200. package/internal/graph/build_records_a_node_per_top_level_declaration_test.go +10 -4
  201. package/internal/graph/build_releases_the_scratch_it_no_longer_reads_test.go +22 -15
  202. package/internal/graph/decorators.go +18 -0
  203. package/internal/graph/decorators_capture_name_and_literal_arguments_test.go +9 -4
  204. package/internal/graph/diagnostics.go +21 -8
  205. package/internal/graph/doc_refs_are_the_use_the_checker_already_counts_test.go +25 -13
  206. package/internal/graph/doc_refs_resolve_documentation_links_test.go +19 -15
  207. package/internal/graph/doc_tags.go +28 -19
  208. package/internal/graph/doc_tags_are_claimed_before_they_are_read_test.go +16 -6
  209. package/internal/graph/doc_tags_capture_every_unrecognized_tag_test.go +9 -2
  210. package/internal/graph/doc_tags_read_only_what_the_parser_attached_test.go +12 -8
  211. package/internal/graph/doc_tags_stop_at_the_external_boundary_test.go +11 -1
  212. package/internal/graph/doc_tags_survive_line_endings_and_repeated_blocks_test.go +16 -6
  213. package/internal/graph/dump.go +200 -51
  214. package/internal/graph/dump_checkout_paths_are_stable_test.go +9 -2
  215. package/internal/graph/dump_diagnostics_ride_the_generation_that_built_it_test.go +10 -11
  216. package/internal/graph/dump_evidence_skips_leading_trivia_test.go +8 -2
  217. package/internal/graph/dump_is_a_function_of_the_source_test.go +12 -13
  218. package/internal/graph/dump_never_serializes_a_list_as_null_test.go +9 -9
  219. package/internal/graph/dump_path_mapper_caches_alias_resolution_test.go +10 -2
  220. package/internal/graph/dump_path_mapper_rejects_unportable_roots_and_collisions_test.go +53 -0
  221. package/internal/graph/{dump_paths_are_portable_and_injective_test.go → dump_path_mapper_uses_portable_coordinates_test.go} +8 -43
  222. package/internal/graph/dump_paths.go +61 -25
  223. package/internal/graph/dump_paths_canonicalize_windows_short_root_test.go +45 -8
  224. package/internal/graph/dump_rejects_provenance_only_path_errors_test.go +5 -0
  225. package/internal/graph/dump_serializes_the_full_graph_test.go +13 -19
  226. package/internal/graph/dump_symlink_project_publishes_matching_base_test.go +8 -0
  227. package/internal/graph/dump_uses_ecma_line_terminators_test.go +12 -6
  228. package/internal/graph/duplicate_variable_object_members_keep_first_declaration_test.go +11 -8
  229. package/internal/graph/edge_spans_point_to_resolved_usage_test.go +13 -5
  230. package/internal/graph/edges.go +44 -47
  231. package/internal/graph/edges_cover_class_level_references_test.go +14 -11
  232. package/internal/graph/enum_initializer_calls_are_edges_test.go +13 -3
  233. package/internal/graph/enum_members_carry_their_names_on_the_enum_node_test.go +19 -26
  234. package/internal/graph/exports.go +3 -5
  235. package/internal/graph/file_diagnostics_match_tsgo_code_and_location_test.go +9 -4
  236. package/internal/graph/file_diagnostics_report_code_column_and_message_test.go +11 -5
  237. package/internal/graph/function_locals_do_not_collide_test.go +27 -7
  238. package/internal/graph/gitignore.go +25 -12
  239. package/internal/graph/graph.go +167 -52
  240. package/internal/graph/heritage_edges_cover_implements_and_interface_extends_test.go +11 -3
  241. package/internal/graph/heritage_edges_keep_extends_and_implements_to_same_base_test.go +6 -0
  242. package/internal/graph/heritage_edges_record_extends_versus_implements_origin_test.go +9 -3
  243. package/internal/graph/heritage_edges_traverse_barrels_and_stop_at_external_leaves_test.go +11 -4
  244. package/internal/graph/line_model.go +44 -25
  245. package/internal/graph/literals.go +6 -7
  246. package/internal/graph/literals_are_absent_when_the_type_admits_more_than_it_can_name_test.go +10 -5
  247. package/internal/graph/literals_cover_enum_members_the_graph_has_no_nodes_for_test.go +15 -17
  248. package/internal/graph/literals_do_not_depend_on_declaration_line_wrapping_test.go +10 -9
  249. package/internal/graph/literals_render_every_value_in_typescript_source_form_test.go +11 -11
  250. package/internal/graph/literals_resolve_through_alias_indirection_test.go +11 -11
  251. package/internal/graph/member_relation_edges_follow_checker_validity_test.go +11 -2
  252. package/internal/graph/member_relation_edges_preserve_checker_boundaries_test.go +11 -1
  253. package/internal/graph/member_relation_edges_reject_checker_invalid_pairs_test.go +12 -7
  254. package/internal/graph/namespace_dotted_form_qualifies_deeply_test.go +12 -3
  255. package/internal/graph/namespace_members_become_qualified_nodes_and_edges_test.go +12 -2
  256. package/internal/graph/node_identity_is_position_invariant_test.go +8 -2
  257. package/internal/graph/node_ids_preserve_hash_bearing_components_test.go +10 -2
  258. package/internal/graph/node_modifiers_emit_union_strings_test.go +13 -12
  259. package/internal/graph/nodes_are_marked_exported_through_the_export_table_test.go +12 -14
  260. package/internal/graph/object_literal_declarations_resolve_calls_test.go +170 -0
  261. package/internal/graph/object_literal_members_ride_on_the_snapshot_test.go +14 -13
  262. package/internal/graph/object_member_signatures_preserve_literal_whitespace_test.go +11 -7
  263. package/internal/graph/object_members.go +100 -1
  264. package/internal/graph/overload_implementation_replaces_signature_test.go +13 -2
  265. package/internal/graph/property_member_edges_remain_owner_visible_test.go +9 -3
  266. package/internal/graph/provenance.go +172 -87
  267. package/internal/graph/resolve.go +46 -12
  268. package/internal/graph/resolve_prefers_implementation_declaration_test.go +10 -2
  269. package/internal/graph/resolve_unwraps_barrel_reexport_to_real_declaration_test.go +16 -20
  270. package/internal/graph/source.go +16 -6
  271. package/internal/graph/source_texts_cover_every_resident_program_source_test.go +11 -7
  272. package/internal/graph/type_ref_edges_cover_typeof_as_satisfies_test.go +21 -2
  273. package/internal/graph/type_ref_edges_resolve_named_types_across_files_test.go +8 -3
  274. package/internal/graph/value_access_edges_cover_properties_test.go +11 -3
  275. package/internal/graph/value_call_edges_attribute_function_assignments_to_members_test.go +10 -4
  276. package/internal/graph/value_call_edges_cover_jsx_components_test.go +12 -8
  277. package/internal/graph/value_call_edges_cover_methods_and_constructors_test.go +12 -9
  278. package/internal/graph/value_call_edges_cover_variable_bound_callables_test.go +9 -3
  279. package/internal/graph/value_call_edges_do_not_double_record_invoked_member_access_test.go +10 -3
  280. package/internal/graph/value_call_edges_record_construct_versus_call_origin_test.go +12 -9
  281. package/internal/graph/value_call_edges_resolve_across_files_and_dedupe_test.go +10 -3
  282. package/internal/graph/value_call_edges_skip_self_and_unresolved_test.go +16 -5
  283. package/internal/graph/wire_node_ids_share_alias_resolution_test.go +10 -4
  284. package/internal/graphsymbols/position_helpers_follow_ecma_line_terminators_test.go +16 -4
  285. package/internal/graphsymbols/provider.go +278 -113
  286. package/internal/lspserver/lsp_clean_didopen_refreshes_compiler_state_test.go +14 -12
  287. package/internal/lspserver/lsp_completion_gate_never_refuses_a_matching_line_test.go +7 -1
  288. package/internal/lspserver/lsp_completion_hints_longest_trigger_wins_test.go +30 -5
  289. package/internal/lspserver/lsp_completion_hints_nearest_trigger_wins_test.go +5 -0
  290. package/internal/lspserver/lsp_completion_merges_into_upstream_response_test.go +23 -10
  291. package/internal/lspserver/lsp_completion_nearest_hint_replaces_nearest_filter_test.go +7 -1
  292. package/internal/lspserver/lsp_completion_preserves_completion_list_extensions_test.go +13 -5
  293. package/internal/lspserver/lsp_completion_refuses_hints_inside_a_string_literal_test.go +11 -7
  294. package/internal/lspserver/lsp_completion_replaces_full_filter_in_rank_order_test.go +12 -2
  295. package/internal/lspserver/lsp_completion_request.go +5 -26
  296. package/internal/lspserver/lsp_completion_scope.go +13 -10
  297. package/internal/lspserver/lsp_completion_scope_bench_test.go +11 -5
  298. package/internal/lspserver/lsp_completion_scope_classifies_regex_statement_and_operator_boundaries_test.go +8 -1
  299. package/internal/lspserver/lsp_completion_scope_ignores_jsdoc_bytes_in_literals_test.go +11 -10
  300. package/internal/lspserver/lsp_completion_scope_refuses_regex_hints_test.go +7 -3
  301. package/internal/lspserver/lsp_completion_trigger_uses_last_rune_test.go +6 -0
  302. package/internal/lspserver/lsp_deleted_watched_file_withdraws_plugin_diagnostics_test.go +11 -10
  303. package/internal/lspserver/lsp_didsave_keeps_the_incremental_changed_uri_path_test.go +12 -9
  304. package/internal/lspserver/lsp_document_diagnostics_omits_cached_project_when_current_result_has_none_test.go +17 -5
  305. package/internal/lspserver/lsp_envelope.go +84 -11
  306. package/internal/lspserver/lsp_executable_project_input_change_requests_launcher_restart_test.go +12 -9
  307. package/internal/lspserver/lsp_external_watched_change_retains_program_test.go +8 -2
  308. package/internal/lspserver/lsp_frame.go +42 -10
  309. package/internal/lspserver/lsp_hints_absence_is_not_an_error_test.go +16 -15
  310. package/internal/lspserver/lsp_hints_refresh_coalesces_concurrent_requests_test.go +21 -12
  311. package/internal/lspserver/lsp_hints_refresh_ignores_a_superseded_generation_test.go +20 -12
  312. package/internal/lspserver/lsp_hints_refresh_keeps_each_producer_isolated_test.go +30 -9
  313. package/internal/lspserver/lsp_hints_refresh_replaces_the_session_snapshot_test.go +25 -18
  314. package/internal/lspserver/lsp_hints_refresh_scheduled_by_editor_events_test.go +12 -12
  315. package/internal/lspserver/lsp_hints_refresh_serves_completion_while_running_test.go +21 -8
  316. package/internal/lspserver/lsp_index_byte_from_bounds_its_search_start_test.go +9 -7
  317. package/internal/lspserver/lsp_initialize_constrains_position_encoding_to_utf16_test.go +57 -21
  318. package/internal/lspserver/lsp_late_completion_trigger_is_reported_once_test.go +16 -17
  319. package/internal/lspserver/lsp_native_completion_hints_decode_flat_lint_wire_test.go +8 -2
  320. package/internal/lspserver/lsp_native_completion_hints_grouped_compatibility_boundary_test.go +5 -0
  321. package/internal/lspserver/lsp_native_plugin_source.go +381 -202
  322. package/internal/lspserver/lsp_native_plugin_source_ends_the_session_on_a_selection_input_test.go +234 -0
  323. package/internal/lspserver/lsp_native_reply_policies_test.go +475 -0
  324. package/internal/lspserver/lsp_native_reply_policy.go +232 -0
  325. package/internal/lspserver/lsp_native_resident.go +171 -57
  326. package/internal/lspserver/lsp_plugin.go +372 -68
  327. package/internal/lspserver/lsp_plugin_completion_resolve_stays_local_test.go +13 -4
  328. package/internal/lspserver/lsp_plugin_selection_inputs.go +283 -0
  329. package/internal/lspserver/lsp_plugin_selection_inputs_follow_directory_case_semantics_windows_test.go +81 -0
  330. package/internal/lspserver/lsp_position_conversions_span_astral_and_combining_runes_test.go +33 -11
  331. package/internal/lspserver/lsp_project_context_transport_identity_test.go +14 -2
  332. package/internal/lspserver/lsp_project_diagnostics.go +25 -4
  333. package/internal/lspserver/lsp_project_diagnostics_capability_is_independent_test.go +13 -2
  334. package/internal/lspserver/lsp_project_diagnostics_program_input_overlap_refreshes_all_producers_test.go +14 -4
  335. package/internal/lspserver/lsp_project_diagnostics_refresh_accumulates_owner_freshness_test.go +8 -2
  336. package/internal/lspserver/lsp_project_diagnostics_refresh_keeps_each_producer_last_good_test.go +10 -5
  337. package/internal/lspserver/lsp_project_diagnostics_refreshes_only_input_owners_test.go +14 -2
  338. package/internal/lspserver/lsp_project_diagnostics_resume_preserves_generation_test.go +8 -2
  339. package/internal/lspserver/lsp_project_diagnostics_translates_relative_client_project_test.go +15 -11
  340. package/internal/lspserver/lsp_project_input_ownership_resolves_declared_spellings_test.go +17 -8
  341. package/internal/lspserver/lsp_project_input_path_key_windows.go +16 -16
  342. package/internal/lspserver/lsp_project_input_path_key_windows_test.go +34 -18
  343. package/internal/lspserver/lsp_project_input_registration.go +5 -1
  344. package/internal/lspserver/lsp_project_input_registration_rechecks_selection_baseline_test.go +10 -4
  345. package/internal/lspserver/lsp_project_input_registration_reconciles_rejected_pending_request_test.go +5 -0
  346. package/internal/lspserver/lsp_project_input_registration_shapes_patterns_test.go +9 -3
  347. package/internal/lspserver/lsp_project_input_watchers_anchor_missing_paths_test.go +8 -3
  348. package/internal/lspserver/lsp_project_inputs.go +203 -59
  349. package/internal/lspserver/lsp_project_inputs_match_missing_exact_and_glob_test.go +10 -6
  350. package/internal/lspserver/lsp_project_inputs_reject_invalid_and_foreign_snapshots_test.go +25 -2
  351. package/internal/lspserver/lsp_proxy.go +239 -80
  352. package/internal/lspserver/lsp_refresh.go +16 -1
  353. package/internal/lspserver/lsp_reload_directories_compare_immediate_topology_test.go +66 -19
  354. package/internal/lspserver/lsp_reload_directories_separate_glob_territory_test.go +26 -6
  355. package/internal/lspserver/lsp_reload_file_fingerprint_preserves_raw_symlink_target_test.go +12 -6
  356. package/internal/lspserver/lsp_reload_fingerprints_read_a_junction_as_a_link_test.go +76 -0
  357. package/internal/lspserver/lsp_resident_falls_back_when_serve_unsupported_test.go +20 -13
  358. package/internal/lspserver/lsp_resident_invalidation_broadcasts_program_input_overlap_test.go +9 -4
  359. package/internal/lspserver/lsp_resident_invalidation_targets_project_input_owners_test.go +6 -1
  360. package/internal/lspserver/lsp_resident_maps_verb_args_test.go +5 -0
  361. package/internal/lspserver/lsp_same_transport_entries_are_deduplicated_test.go +10 -1
  362. package/internal/lspserver/lsp_server.go +124 -21
  363. package/internal/lspserver/lsp_symbols.go +92 -13
  364. package/internal/lspserver/lsp_watched_file_changes_reach_compiler_caches_test.go +11 -10
  365. package/internal/sourceprocess/complete_group.go +70 -0
  366. package/internal/sourceprocess/complete_group_preserves_original_wait_and_requires_independent_absence_test.go +145 -0
  367. package/internal/sourceprocess/contain_unix.go +143 -0
  368. package/internal/sourceprocess/contain_windows.go +439 -0
  369. package/internal/sourceprocess/darwin_group_retirement_preserves_phase_evidence_test.go +287 -0
  370. package/internal/sourceprocess/observe_exit_darwin.go +57 -0
  371. package/internal/sourceprocess/observe_exit_linux.go +27 -0
  372. package/internal/sourceprocess/observe_exit_other.go +11 -0
  373. package/internal/sourceprocess/reap_linux.go +31 -0
  374. package/internal/sourceprocess/reap_other.go +10 -0
  375. package/internal/sourceprocess/request_preserves_native_command_inputs_test.go +86 -0
  376. package/internal/sourceprocess/run.go +216 -0
  377. package/internal/sourceprocess/started_windows.go +41 -0
  378. package/internal/sourceprocess/target_windows.go +211 -0
  379. package/internal/sourceprocess/windows_job_accounting_rejects_invalid_boundary_test.go +97 -0
  380. package/internal/sourceprocess/windows_started_publication_distinguishes_pending_from_refusal_test.go +76 -0
  381. package/internal/sourceprocess/windows_target_owns_suspended_admission_test.go +179 -0
  382. package/internal/watchhelper/run.go +42 -0
  383. package/internal/watchhelper/run_linux.go +323 -0
  384. package/internal/watchhelper/run_linux_test.go +418 -0
  385. package/internal/watchhelper/run_other.go +16 -0
  386. package/internal/watchhelper/run_windows.go +471 -0
  387. package/internal/watchhelper/watchhelper.go +106 -0
  388. package/internal/watchhelper/windows_notifications_preserve_mutations_without_access_noise_test.go +506 -0
  389. package/lib/TtscCompiler.d.ts +118 -21
  390. package/lib/TtscCompiler.js +175 -179
  391. package/lib/TtscCompiler.js.map +1 -1
  392. package/lib/TtscService.d.ts +66 -18
  393. package/lib/TtscService.js +81 -24
  394. package/lib/TtscService.js.map +1 -1
  395. package/lib/TtscServiceRequestOptions.d.ts +21 -0
  396. package/lib/TtscServiceRequestOptions.js +3 -0
  397. package/lib/TtscServiceRequestOptions.js.map +1 -0
  398. package/lib/compiler/internal/CapturedProcessOutput.d.ts +61 -0
  399. package/lib/compiler/internal/CapturedProcessOutput.js +3 -0
  400. package/lib/compiler/internal/CapturedProcessOutput.js.map +1 -0
  401. package/lib/compiler/internal/CompilerArgumentsInspection.d.ts +53 -0
  402. package/lib/compiler/internal/CompilerArgumentsInspection.js +173 -0
  403. package/lib/compiler/internal/CompilerArgumentsInspection.js.map +1 -0
  404. package/lib/compiler/internal/EmitOwnershipIndex.d.ts +92 -0
  405. package/lib/compiler/internal/EmitOwnershipIndex.js +215 -0
  406. package/lib/compiler/internal/EmitOwnershipIndex.js.map +1 -0
  407. package/lib/compiler/internal/PrivateCompilerOutput.d.ts +67 -0
  408. package/lib/compiler/internal/PrivateCompilerOutput.js +245 -0
  409. package/lib/compiler/internal/PrivateCompilerOutput.js.map +1 -0
  410. package/lib/compiler/internal/ResidentCheckProcess.d.ts +127 -0
  411. package/lib/compiler/internal/ResidentCheckProcess.js +403 -0
  412. package/lib/compiler/internal/ResidentCheckProcess.js.map +1 -0
  413. package/lib/compiler/internal/ResidentCheckProcessOptions.d.ts +29 -0
  414. package/lib/compiler/internal/ResidentCheckProcessOptions.js +3 -0
  415. package/lib/compiler/internal/ResidentCheckProcessOptions.js.map +1 -0
  416. package/lib/compiler/internal/ResidentCheckRequest.d.ts +37 -0
  417. package/lib/compiler/internal/ResidentCheckRequest.js +3 -0
  418. package/lib/compiler/internal/ResidentCheckRequest.js.map +1 -0
  419. package/lib/compiler/internal/ResidentCheckResult.d.ts +23 -0
  420. package/lib/compiler/internal/ResidentCheckResult.js +3 -0
  421. package/lib/compiler/internal/ResidentCheckResult.js.map +1 -0
  422. package/lib/compiler/internal/ResidentCheckTelemetry.d.ts +33 -0
  423. package/lib/compiler/internal/ResidentCheckTelemetry.js +3 -0
  424. package/lib/compiler/internal/ResidentCheckTelemetry.js.map +1 -0
  425. package/lib/compiler/internal/ResidentReplyKind.d.ts +18 -0
  426. package/lib/compiler/internal/ResidentReplyKind.js +3 -0
  427. package/lib/compiler/internal/ResidentReplyKind.js.map +1 -0
  428. package/lib/compiler/internal/ResidentTransformProcess.d.ts +83 -0
  429. package/lib/compiler/internal/ResidentTransformProcess.js +261 -0
  430. package/lib/compiler/internal/ResidentTransformProcess.js.map +1 -0
  431. package/lib/compiler/internal/ResidentTransformProcessOptions.d.ts +27 -0
  432. package/lib/compiler/internal/ResidentTransformProcessOptions.js +3 -0
  433. package/lib/compiler/internal/ResidentTransformProcessOptions.js.map +1 -0
  434. package/lib/compiler/internal/ResidentTransformReply.d.ts +51 -0
  435. package/lib/compiler/internal/ResidentTransformReply.js +79 -0
  436. package/lib/compiler/internal/ResidentTransformReply.js.map +1 -0
  437. package/lib/compiler/internal/ResidentTransformRequestOptions.d.ts +16 -0
  438. package/lib/compiler/internal/ResidentTransformRequestOptions.js +3 -0
  439. package/lib/compiler/internal/ResidentTransformRequestOptions.js.map +1 -0
  440. package/lib/compiler/internal/ResidentTransformRequests.d.ts +102 -0
  441. package/lib/compiler/internal/ResidentTransformRequests.js +172 -0
  442. package/lib/compiler/internal/ResidentTransformRequests.js.map +1 -0
  443. package/lib/compiler/internal/StartedResidentTransform.d.ts +27 -0
  444. package/lib/compiler/internal/StartedResidentTransform.js +3 -0
  445. package/lib/compiler/internal/StartedResidentTransform.js.map +1 -0
  446. package/lib/compiler/internal/TransformProjectWorkerReply.d.ts +34 -0
  447. package/lib/compiler/internal/TransformProjectWorkerReply.js +3 -0
  448. package/lib/compiler/internal/TransformProjectWorkerReply.js.map +1 -0
  449. package/lib/compiler/internal/TransformProjectWorkerRequest.d.ts +39 -0
  450. package/lib/compiler/internal/TransformProjectWorkerRequest.js +3 -0
  451. package/lib/compiler/internal/TransformProjectWorkerRequest.js.map +1 -0
  452. package/lib/compiler/internal/build/BuildExecution.d.ts +359 -0
  453. package/lib/compiler/internal/build/BuildExecution.js +977 -0
  454. package/lib/compiler/internal/build/BuildExecution.js.map +1 -0
  455. package/lib/compiler/internal/build/BuildTiming.d.ts +99 -0
  456. package/lib/compiler/internal/build/BuildTiming.js +113 -0
  457. package/lib/compiler/internal/build/BuildTiming.js.map +1 -0
  458. package/lib/compiler/internal/build/CompilerDiagnostics.d.ts +82 -0
  459. package/lib/compiler/internal/build/CompilerDiagnostics.js +270 -0
  460. package/lib/compiler/internal/build/CompilerDiagnostics.js.map +1 -0
  461. package/lib/compiler/internal/build/NativePluginArguments.d.ts +114 -0
  462. package/lib/compiler/internal/build/NativePluginArguments.js +255 -0
  463. package/lib/compiler/internal/build/NativePluginArguments.js.map +1 -0
  464. package/lib/compiler/internal/build/PassthroughFlags.d.ts +137 -0
  465. package/lib/compiler/internal/build/PassthroughFlags.js +213 -0
  466. package/lib/compiler/internal/build/PassthroughFlags.js.map +1 -0
  467. package/lib/compiler/internal/build/PluginFailureDiagnostics.d.ts +48 -0
  468. package/lib/compiler/internal/build/PluginFailureDiagnostics.js +68 -0
  469. package/lib/compiler/internal/build/PluginFailureDiagnostics.js.map +1 -0
  470. package/lib/compiler/internal/build/ResidentCheckEntryPlan.d.ts +38 -0
  471. package/lib/compiler/internal/build/ResidentCheckEntryPlan.js +3 -0
  472. package/lib/compiler/internal/build/ResidentCheckEntryPlan.js.map +1 -0
  473. package/lib/compiler/internal/build/ResidentCheckWatchChange.d.ts +30 -0
  474. package/lib/compiler/internal/build/ResidentCheckWatchChange.js +3 -0
  475. package/lib/compiler/internal/build/ResidentCheckWatchChange.js.map +1 -0
  476. package/lib/compiler/internal/build/ResidentCheckWatchSession.d.ts +113 -0
  477. package/lib/compiler/internal/build/ResidentCheckWatchSession.js +378 -0
  478. package/lib/compiler/internal/build/ResidentCheckWatchSession.js.map +1 -0
  479. package/lib/compiler/internal/build/RunBuildOptions.d.ts +130 -0
  480. package/lib/compiler/internal/build/RunBuildOptions.js +3 -0
  481. package/lib/compiler/internal/build/RunBuildOptions.js.map +1 -0
  482. package/lib/compiler/internal/build/TsgoArguments.d.ts +168 -0
  483. package/lib/compiler/internal/build/TsgoArguments.js +324 -0
  484. package/lib/compiler/internal/build/TsgoArguments.js.map +1 -0
  485. package/lib/compiler/internal/build/appendBuildOutput.d.ts +41 -0
  486. package/lib/compiler/internal/build/appendBuildOutput.js +182 -0
  487. package/lib/compiler/internal/build/appendBuildOutput.js.map +1 -0
  488. package/lib/compiler/internal/build/bufferResidentCheckEntryRequests.d.ts +20 -0
  489. package/lib/compiler/internal/build/bufferResidentCheckEntryRequests.js +40 -0
  490. package/lib/compiler/internal/build/bufferResidentCheckEntryRequests.js.map +1 -0
  491. package/lib/compiler/internal/build/createProcessDiagnostic.d.ts +19 -0
  492. package/lib/compiler/internal/build/createProcessDiagnostic.js +30 -0
  493. package/lib/compiler/internal/build/createProcessDiagnostic.js.map +1 -0
  494. package/lib/compiler/internal/build/isAbsoluteLocalProjectInputPath.d.ts +22 -0
  495. package/lib/compiler/internal/build/isAbsoluteLocalProjectInputPath.js +59 -0
  496. package/lib/compiler/internal/build/isAbsoluteLocalProjectInputPath.js.map +1 -0
  497. package/lib/compiler/internal/build/mergeProjectInputSnapshots.d.ts +28 -0
  498. package/lib/compiler/internal/build/mergeProjectInputSnapshots.js +121 -0
  499. package/lib/compiler/internal/build/mergeProjectInputSnapshots.js.map +1 -0
  500. package/lib/compiler/internal/build/normalizeBuildOutput.d.ts +29 -0
  501. package/lib/compiler/internal/build/normalizeBuildOutput.js +72 -0
  502. package/lib/compiler/internal/build/normalizeBuildOutput.js.map +1 -0
  503. package/lib/compiler/internal/build/parseProjectInputSnapshot.d.ts +26 -0
  504. package/lib/compiler/internal/build/parseProjectInputSnapshot.js +68 -0
  505. package/lib/compiler/internal/build/parseProjectInputSnapshot.js.map +1 -0
  506. package/lib/compiler/internal/build/planResidentCheckEntries.d.ts +21 -0
  507. package/lib/compiler/internal/build/planResidentCheckEntries.js +45 -0
  508. package/lib/compiler/internal/build/planResidentCheckEntries.js.map +1 -0
  509. package/lib/compiler/internal/build/privateRuntimeRootDir.d.ts +20 -0
  510. package/lib/compiler/internal/build/privateRuntimeRootDir.js +35 -0
  511. package/lib/compiler/internal/build/privateRuntimeRootDir.js.map +1 -0
  512. package/lib/compiler/internal/build/residentCheckRequest.d.ts +22 -0
  513. package/lib/compiler/internal/build/residentCheckRequest.js +42 -0
  514. package/lib/compiler/internal/build/residentCheckRequest.js.map +1 -0
  515. package/lib/compiler/internal/build/runBuild.d.ts +22 -0
  516. package/lib/compiler/internal/build/runBuild.js +44 -0
  517. package/lib/compiler/internal/build/runBuild.js.map +1 -0
  518. package/lib/compiler/internal/build/runExternalEmitProvenance.d.ts +61 -0
  519. package/lib/compiler/internal/build/runExternalEmitProvenance.js +451 -0
  520. package/lib/compiler/internal/build/runExternalEmitProvenance.js.map +1 -0
  521. package/lib/compiler/internal/build/takeResidentCheckEntryRequest.d.ts +18 -0
  522. package/lib/compiler/internal/build/takeResidentCheckEntryRequest.js +28 -0
  523. package/lib/compiler/internal/build/takeResidentCheckEntryRequest.js.map +1 -0
  524. package/lib/compiler/internal/buildNativeCompiler.d.ts +16 -1
  525. package/lib/compiler/internal/buildNativeCompiler.js +14 -2
  526. package/lib/compiler/internal/buildNativeCompiler.js.map +1 -1
  527. package/lib/compiler/internal/captureProcessOutput.d.ts +23 -23
  528. package/lib/compiler/internal/captureProcessOutput.js +38 -26
  529. package/lib/compiler/internal/captureProcessOutput.js.map +1 -1
  530. package/lib/compiler/internal/compileProjectInMemory.d.ts +30 -7
  531. package/lib/compiler/internal/compileProjectInMemory.js +103 -83
  532. package/lib/compiler/internal/compileProjectInMemory.js.map +1 -1
  533. package/lib/compiler/internal/ensureExecutable.d.ts +15 -0
  534. package/lib/compiler/internal/ensureExecutable.js +40 -0
  535. package/lib/compiler/internal/ensureExecutable.js.map +1 -0
  536. package/lib/compiler/internal/findNearestGoMod.d.ts +23 -0
  537. package/lib/compiler/internal/findNearestGoMod.js +48 -0
  538. package/lib/compiler/internal/findNearestGoMod.js.map +1 -0
  539. package/lib/compiler/internal/isOutsideRelativePath.d.ts +18 -0
  540. package/lib/compiler/internal/isOutsideRelativePath.js +30 -0
  541. package/lib/compiler/internal/isOutsideRelativePath.js.map +1 -0
  542. package/lib/compiler/internal/outputText.d.ts +16 -0
  543. package/lib/compiler/internal/outputText.js +25 -0
  544. package/lib/compiler/internal/outputText.js.map +1 -0
  545. package/lib/compiler/internal/packageRootDir.d.ts +25 -0
  546. package/lib/compiler/internal/packageRootDir.js +47 -0
  547. package/lib/compiler/internal/packageRootDir.js.map +1 -0
  548. package/lib/compiler/internal/parseNativeTransformOutput.d.ts +88 -0
  549. package/lib/compiler/internal/parseNativeTransformOutput.js +552 -0
  550. package/lib/compiler/internal/parseNativeTransformOutput.js.map +1 -0
  551. package/lib/compiler/internal/project/CompilerProjectSelection.d.ts +80 -0
  552. package/lib/compiler/internal/project/CompilerProjectSelection.js +187 -0
  553. package/lib/compiler/internal/project/CompilerProjectSelection.js.map +1 -0
  554. package/lib/compiler/internal/project/ConfigJsonText.d.ts +50 -0
  555. package/lib/compiler/internal/project/ConfigJsonText.js +61 -0
  556. package/lib/compiler/internal/project/ConfigJsonText.js.map +1 -0
  557. package/lib/compiler/internal/project/compilerUsesCaseSensitiveFileNames.d.ts +48 -0
  558. package/lib/compiler/internal/project/compilerUsesCaseSensitiveFileNames.js +119 -0
  559. package/lib/compiler/internal/project/compilerUsesCaseSensitiveFileNames.js.map +1 -0
  560. package/lib/compiler/internal/project/createNativeProjectContextArgs.d.ts +11 -8
  561. package/lib/compiler/internal/project/createNativeProjectContextArgs.js +15 -17
  562. package/lib/compiler/internal/project/createNativeProjectContextArgs.js.map +1 -1
  563. package/lib/compiler/internal/project/createNativeProjectContextJson.d.ts +19 -0
  564. package/lib/compiler/internal/project/createNativeProjectContextJson.js +27 -0
  565. package/lib/compiler/internal/project/createNativeProjectContextJson.js.map +1 -0
  566. package/lib/compiler/internal/project/parseJsonc.d.ts +42 -0
  567. package/lib/compiler/internal/project/parseJsonc.js +317 -0
  568. package/lib/compiler/internal/project/parseJsonc.js.map +1 -0
  569. package/lib/compiler/internal/project/readJsonFile.d.ts +21 -0
  570. package/lib/compiler/internal/project/readJsonFile.js +38 -0
  571. package/lib/compiler/internal/project/readJsonFile.js.map +1 -0
  572. package/lib/compiler/internal/project/readJsoncFile.d.ts +20 -0
  573. package/lib/compiler/internal/project/readJsoncFile.js +47 -0
  574. package/lib/compiler/internal/project/readJsoncFile.js.map +1 -0
  575. package/lib/compiler/internal/project/readProjectConfig.d.ts +29 -2
  576. package/lib/compiler/internal/project/readProjectConfig.js +105 -168
  577. package/lib/compiler/internal/project/readProjectConfig.js.map +1 -1
  578. package/lib/compiler/internal/project/resolveOwningProjectConfig.d.ts +65 -0
  579. package/lib/compiler/internal/project/resolveOwningProjectConfig.js +248 -0
  580. package/lib/compiler/internal/project/resolveOwningProjectConfig.js.map +1 -0
  581. package/lib/compiler/internal/project/resolveProjectConfig.d.ts +17 -14
  582. package/lib/compiler/internal/project/resolveProjectConfig.js +19 -122
  583. package/lib/compiler/internal/project/resolveProjectConfig.js.map +1 -1
  584. package/lib/compiler/internal/project/resolveProjectIdentity.d.ts +32 -0
  585. package/lib/compiler/internal/project/resolveProjectIdentity.js +144 -0
  586. package/lib/compiler/internal/project/resolveProjectIdentity.js.map +1 -0
  587. package/lib/compiler/internal/project/resolveTsconfigExtends.d.ts +38 -0
  588. package/lib/compiler/internal/project/resolveTsconfigExtends.js +163 -0
  589. package/lib/compiler/internal/project/resolveTsconfigExtends.js.map +1 -0
  590. package/lib/compiler/internal/project/selectReferencedProject.d.ts +26 -0
  591. package/lib/compiler/internal/project/selectReferencedProject.js +48 -0
  592. package/lib/compiler/internal/project/selectReferencedProject.js.map +1 -0
  593. package/lib/compiler/internal/project/tsconfigExtendsFileCandidates.d.ts +34 -0
  594. package/lib/compiler/internal/project/tsconfigExtendsFileCandidates.js +55 -0
  595. package/lib/compiler/internal/project/tsconfigExtendsFileCandidates.js.map +1 -0
  596. package/lib/compiler/internal/readEffectiveCompilerOptions.d.ts +54 -0
  597. package/lib/compiler/internal/readEffectiveCompilerOptions.js +116 -0
  598. package/lib/compiler/internal/readEffectiveCompilerOptions.js.map +1 -0
  599. package/lib/compiler/internal/resolveBinary.d.ts +17 -1
  600. package/lib/compiler/internal/resolveBinary.js +24 -9
  601. package/lib/compiler/internal/resolveBinary.js.map +1 -1
  602. package/lib/compiler/internal/resolveTsgo.d.ts +22 -7
  603. package/lib/compiler/internal/resolveTsgo.js +25 -9
  604. package/lib/compiler/internal/resolveTsgo.js.map +1 -1
  605. package/lib/compiler/internal/runNativeCheckWithObservations.d.ts +41 -0
  606. package/lib/compiler/internal/runNativeCheckWithObservations.js +185 -0
  607. package/lib/compiler/internal/runNativeCheckWithObservations.js.map +1 -0
  608. package/lib/compiler/internal/runSingleFileEmit.d.ts +26 -5
  609. package/lib/compiler/internal/runSingleFileEmit.js +82 -27
  610. package/lib/compiler/internal/runSingleFileEmit.js.map +1 -1
  611. package/lib/compiler/internal/sharedHost/SEMANTIC_CONFIG_PATH_ENV.d.ts +2 -0
  612. package/lib/compiler/internal/sharedHost/SEMANTIC_CONFIG_PATH_ENV.js +6 -0
  613. package/lib/compiler/internal/sharedHost/SEMANTIC_CONFIG_PATH_ENV.js.map +1 -0
  614. package/lib/compiler/internal/sharedHost/SidecarEnvironment.d.ts +90 -0
  615. package/lib/compiler/internal/sharedHost/SidecarEnvironment.js +153 -0
  616. package/lib/compiler/internal/sharedHost/SidecarEnvironment.js.map +1 -0
  617. package/lib/compiler/internal/sharedHost/TSGO_ARGS_CWD_ENV.d.ts +7 -0
  618. package/lib/compiler/internal/sharedHost/TSGO_ARGS_CWD_ENV.js +11 -0
  619. package/lib/compiler/internal/sharedHost/TSGO_ARGS_CWD_ENV.js.map +1 -0
  620. package/lib/compiler/internal/sharedHost/TSGO_ARGS_ENV.d.ts +7 -0
  621. package/lib/compiler/internal/sharedHost/TSGO_ARGS_ENV.js +11 -0
  622. package/lib/compiler/internal/sharedHost/TSGO_ARGS_ENV.js.map +1 -0
  623. package/lib/compiler/internal/sharedHost/assertSharedHostCompatibility.d.ts +24 -0
  624. package/lib/compiler/internal/sharedHost/assertSharedHostCompatibility.js +46 -0
  625. package/lib/compiler/internal/sharedHost/assertSharedHostCompatibility.js.map +1 -0
  626. package/lib/compiler/internal/sharedHost/clearInheritedSemanticConfigPath.d.ts +15 -0
  627. package/lib/compiler/internal/sharedHost/clearInheritedSemanticConfigPath.js +23 -0
  628. package/lib/compiler/internal/sharedHost/clearInheritedSemanticConfigPath.js.map +1 -0
  629. package/lib/compiler/internal/sharedHost/clearInheritedTsgoArgs.d.ts +23 -0
  630. package/lib/compiler/internal/sharedHost/clearInheritedTsgoArgs.js +33 -0
  631. package/lib/compiler/internal/sharedHost/clearInheritedTsgoArgs.js.map +1 -0
  632. package/lib/compiler/internal/sharedHost/inheritedSidecarEnv.d.ts +27 -0
  633. package/lib/compiler/internal/sharedHost/inheritedSidecarEnv.js +41 -0
  634. package/lib/compiler/internal/sharedHost/inheritedSidecarEnv.js.map +1 -0
  635. package/lib/compiler/internal/sharedHost/isLinkedTransform.d.ts +16 -0
  636. package/lib/compiler/internal/sharedHost/isLinkedTransform.js +21 -0
  637. package/lib/compiler/internal/sharedHost/isLinkedTransform.js.map +1 -0
  638. package/lib/compiler/internal/sharedHost/linkedTransformPlugins.d.ts +19 -0
  639. package/lib/compiler/internal/sharedHost/linkedTransformPlugins.js +25 -0
  640. package/lib/compiler/internal/sharedHost/linkedTransformPlugins.js.map +1 -0
  641. package/lib/compiler/internal/sharedHost/publishLinkedTransformPlugins.d.ts +25 -0
  642. package/lib/compiler/internal/sharedHost/publishLinkedTransformPlugins.js +35 -0
  643. package/lib/compiler/internal/sharedHost/publishLinkedTransformPlugins.js.map +1 -0
  644. package/lib/compiler/internal/sharedHost/resolvePluginConfigDir.d.ts +26 -0
  645. package/lib/compiler/internal/sharedHost/resolvePluginConfigDir.js +36 -0
  646. package/lib/compiler/internal/sharedHost/resolvePluginConfigDir.js.map +1 -0
  647. package/lib/compiler/internal/sharedHost/selectSharedHostPlugin.d.ts +22 -0
  648. package/lib/compiler/internal/sharedHost/selectSharedHostPlugin.js +32 -0
  649. package/lib/compiler/internal/sharedHost/selectSharedHostPlugin.js.map +1 -0
  650. package/lib/compiler/internal/spawnNative.d.ts +15 -16
  651. package/lib/compiler/internal/spawnNative.js +17 -45
  652. package/lib/compiler/internal/spawnNative.js.map +1 -1
  653. package/lib/compiler/internal/startResidentTransform.d.ts +26 -17
  654. package/lib/compiler/internal/startResidentTransform.js +51 -36
  655. package/lib/compiler/internal/startResidentTransform.js.map +1 -1
  656. package/lib/compiler/internal/transformProjectInMemory.d.ts +42 -5
  657. package/lib/compiler/internal/transformProjectInMemory.js +189 -469
  658. package/lib/compiler/internal/transformProjectInMemory.js.map +1 -1
  659. package/lib/compiler/internal/transformProjectInWorker.d.ts +49 -0
  660. package/lib/compiler/internal/transformProjectInWorker.js +168 -0
  661. package/lib/compiler/internal/transformProjectInWorker.js.map +1 -0
  662. package/lib/compiler/internal/transformProjectWorker.js +37 -0
  663. package/lib/compiler/internal/transformProjectWorker.js.map +1 -0
  664. package/lib/flags/AnySubcommand.d.ts +18 -0
  665. package/lib/flags/AnySubcommand.js +3 -0
  666. package/lib/flags/AnySubcommand.js.map +1 -0
  667. package/lib/flags/COMPILER_ENUM_WHITESPACE.d.ts +2 -0
  668. package/lib/flags/COMPILER_ENUM_WHITESPACE.js +38 -0
  669. package/lib/flags/COMPILER_ENUM_WHITESPACE.js.map +1 -0
  670. package/lib/flags/COMPILER_OPTIONS.d.ts +6 -0
  671. package/lib/flags/COMPILER_OPTIONS.js +509 -0
  672. package/lib/flags/COMPILER_OPTIONS.js.map +1 -0
  673. package/lib/flags/COMPILER_OPTION_ASCII_FOLDS.d.ts +2 -0
  674. package/lib/flags/COMPILER_OPTION_ASCII_FOLDS.js +13 -0
  675. package/lib/flags/COMPILER_OPTION_ASCII_FOLDS.js.map +1 -0
  676. package/lib/flags/COMPILER_OPTION_KINDS.d.ts +2 -0
  677. package/lib/flags/COMPILER_OPTION_KINDS.js +14 -0
  678. package/lib/flags/COMPILER_OPTION_KINDS.js.map +1 -0
  679. package/lib/flags/CompilerOptionSpec.d.ts +27 -0
  680. package/lib/flags/CompilerOptionSpec.js +3 -0
  681. package/lib/flags/CompilerOptionSpec.js.map +1 -0
  682. package/lib/flags/FLAG_BY_TOKEN.d.ts +8 -0
  683. package/lib/flags/FLAG_BY_TOKEN.js +34 -0
  684. package/lib/flags/FLAG_BY_TOKEN.js.map +1 -0
  685. package/lib/flags/FLAG_SCHEMA.d.ts +35 -0
  686. package/lib/flags/{schema.js → FLAG_SCHEMA.js} +47 -153
  687. package/lib/flags/FLAG_SCHEMA.js.map +1 -0
  688. package/lib/flags/FlagKind.d.ts +22 -0
  689. package/lib/flags/FlagKind.js +3 -0
  690. package/lib/flags/FlagKind.js.map +1 -0
  691. package/lib/flags/FlagLayer.d.ts +19 -0
  692. package/lib/flags/FlagLayer.js +3 -0
  693. package/lib/flags/FlagLayer.js.map +1 -0
  694. package/lib/flags/FlagSpec.d.ts +104 -0
  695. package/lib/flags/FlagSpec.js +3 -0
  696. package/lib/flags/FlagSpec.js.map +1 -0
  697. package/lib/flags/ParseOptions.d.ts +92 -0
  698. package/lib/flags/ParseOptions.js +3 -0
  699. package/lib/flags/ParseOptions.js.map +1 -0
  700. package/lib/flags/ParseResult.d.ts +37 -0
  701. package/lib/flags/ParseResult.js +3 -0
  702. package/lib/flags/ParseResult.js.map +1 -0
  703. package/lib/flags/TtscSubcommand.d.ts +14 -0
  704. package/lib/flags/TtscSubcommand.js +3 -0
  705. package/lib/flags/TtscSubcommand.js.map +1 -0
  706. package/lib/flags/TtsxSubcommand.d.ts +13 -0
  707. package/lib/flags/TtsxSubcommand.js +3 -0
  708. package/lib/flags/TtsxSubcommand.js.map +1 -0
  709. package/lib/flags/ValueValidator.d.ts +14 -0
  710. package/lib/flags/ValueValidator.js +3 -0
  711. package/lib/flags/ValueValidator.js.map +1 -0
  712. package/lib/flags/buildGoAllowList.d.ts +18 -0
  713. package/lib/flags/buildGoAllowList.js +45 -0
  714. package/lib/flags/buildGoAllowList.js.map +1 -0
  715. package/lib/flags/flagsForSubcommand.d.ts +18 -0
  716. package/lib/flags/flagsForSubcommand.js +23 -0
  717. package/lib/flags/flagsForSubcommand.js.map +1 -0
  718. package/lib/flags/getBoolean.d.ts +19 -0
  719. package/lib/flags/getBoolean.js +27 -0
  720. package/lib/flags/getBoolean.js.map +1 -0
  721. package/lib/flags/getNumber.d.ts +16 -0
  722. package/lib/flags/getNumber.js +24 -0
  723. package/lib/flags/getNumber.js.map +1 -0
  724. package/lib/flags/getString.d.ts +16 -0
  725. package/lib/flags/getString.js +24 -0
  726. package/lib/flags/getString.js.map +1 -0
  727. package/lib/flags/getStringList.d.ts +19 -0
  728. package/lib/flags/getStringList.js +24 -0
  729. package/lib/flags/getStringList.js.map +1 -0
  730. package/lib/flags/normalizeCompilerEnumValue.d.ts +20 -0
  731. package/lib/flags/normalizeCompilerEnumValue.js +40 -0
  732. package/lib/flags/normalizeCompilerEnumValue.js.map +1 -0
  733. package/lib/flags/normalizeFlagToken.d.ts +28 -0
  734. package/lib/flags/normalizeFlagToken.js +38 -0
  735. package/lib/flags/normalizeFlagToken.js.map +1 -0
  736. package/lib/flags/parseFlags.d.ts +18 -0
  737. package/lib/flags/parseFlags.js +288 -0
  738. package/lib/flags/parseFlags.js.map +1 -0
  739. package/lib/flags/readCompilerOptionOccurrence.d.ts +34 -0
  740. package/lib/flags/readCompilerOptionOccurrence.js +81 -0
  741. package/lib/flags/readCompilerOptionOccurrence.js.map +1 -0
  742. package/lib/flags/readCompilerOptionValues.d.ts +33 -0
  743. package/lib/flags/readCompilerOptionValues.js +58 -0
  744. package/lib/flags/readCompilerOptionValues.js.map +1 -0
  745. package/lib/flags/resolveFlagSpec.d.ts +21 -0
  746. package/lib/flags/resolveFlagSpec.js +32 -0
  747. package/lib/flags/resolveFlagSpec.js.map +1 -0
  748. package/lib/index.d.ts +8 -3
  749. package/lib/index.js +10 -3
  750. package/lib/index.js.map +1 -1
  751. package/lib/internal/CanonicalTempDirectoryOperations.d.ts +73 -0
  752. package/lib/internal/CanonicalTempDirectoryOperations.js +3 -0
  753. package/lib/internal/CanonicalTempDirectoryOperations.js.map +1 -0
  754. package/lib/internal/CompilerContextSnapshot.d.ts +66 -0
  755. package/lib/internal/CompilerContextSnapshot.js +121 -0
  756. package/lib/internal/CompilerContextSnapshot.js.map +1 -0
  757. package/lib/internal/CompilerResultAdapter.d.ts +129 -0
  758. package/lib/internal/CompilerResultAdapter.js +247 -0
  759. package/lib/internal/CompilerResultAdapter.js.map +1 -0
  760. package/lib/internal/E2ETrace.d.ts +219 -0
  761. package/lib/internal/E2ETrace.js +541 -0
  762. package/lib/internal/E2ETrace.js.map +1 -0
  763. package/lib/internal/IJavaScriptRuntimeCapabilities.d.ts +48 -0
  764. package/lib/internal/IJavaScriptRuntimeCapabilities.js +3 -0
  765. package/lib/internal/IJavaScriptRuntimeCapabilities.js.map +1 -0
  766. package/lib/internal/OwnedNativeProcess.d.ts +66 -0
  767. package/lib/internal/OwnedNativeProcess.js +317 -0
  768. package/lib/internal/OwnedNativeProcess.js.map +1 -0
  769. package/lib/internal/OwnedSynchronousProcess.d.ts +158 -0
  770. package/lib/internal/OwnedSynchronousProcess.js +171 -0
  771. package/lib/internal/OwnedSynchronousProcess.js.map +1 -0
  772. package/lib/internal/RetireLockDirectoryOperations.d.ts +77 -0
  773. package/lib/internal/RetireLockDirectoryOperations.js +3 -0
  774. package/lib/internal/RetireLockDirectoryOperations.js.map +1 -0
  775. package/lib/internal/SafeCacheCleanupTarget.d.ts +39 -0
  776. package/lib/internal/SafeCacheCleanupTarget.js +3 -0
  777. package/lib/internal/SafeCacheCleanupTarget.js.map +1 -0
  778. package/lib/internal/SourceNativeRetirement.d.ts +384 -0
  779. package/lib/internal/SourceNativeRetirement.js +892 -0
  780. package/lib/internal/SourceNativeRetirement.js.map +1 -0
  781. package/lib/internal/SpawnSyncOutputFiles.d.ts +28 -0
  782. package/lib/internal/SpawnSyncOutputFiles.js +3 -0
  783. package/lib/internal/SpawnSyncOutputFiles.js.map +1 -0
  784. package/lib/internal/cacheEntryExists.d.ts +13 -0
  785. package/lib/internal/cacheEntryExists.js +32 -0
  786. package/lib/internal/cacheEntryExists.js.map +1 -0
  787. package/lib/internal/createCanonicalTempDirectory.d.ts +23 -13
  788. package/lib/internal/createCanonicalTempDirectory.js +31 -12
  789. package/lib/internal/createCanonicalTempDirectory.js.map +1 -1
  790. package/lib/internal/isContendedCandidateRename.d.ts +27 -0
  791. package/lib/internal/isContendedCandidateRename.js +37 -0
  792. package/lib/internal/isContendedCandidateRename.js.map +1 -0
  793. package/lib/internal/isSpawnSyncFdExhaustion.d.ts +16 -0
  794. package/lib/internal/isSpawnSyncFdExhaustion.js +23 -0
  795. package/lib/internal/isSpawnSyncFdExhaustion.js.map +1 -0
  796. package/lib/internal/javascriptRuntimeCapabilities.d.ts +20 -0
  797. package/lib/internal/javascriptRuntimeCapabilities.js +142 -0
  798. package/lib/internal/javascriptRuntimeCapabilities.js.map +1 -0
  799. package/lib/internal/nativeBinary.d.ts +11 -0
  800. package/lib/internal/nativeBinary.js +16 -0
  801. package/lib/internal/nativeBinary.js.map +1 -0
  802. package/lib/internal/parseWindowsDirectoryCaseSensitivity.d.ts +24 -0
  803. package/lib/internal/parseWindowsDirectoryCaseSensitivity.js +47 -0
  804. package/lib/internal/parseWindowsDirectoryCaseSensitivity.js.map +1 -0
  805. package/lib/internal/pathIdentity/FilesystemPathIdentity.d.ts +43 -0
  806. package/lib/internal/pathIdentity/FilesystemPathIdentity.js +3 -0
  807. package/lib/internal/pathIdentity/FilesystemPathIdentity.js.map +1 -0
  808. package/lib/internal/pathIdentity/FilesystemPathIdentityContext.d.ts +176 -0
  809. package/lib/internal/pathIdentity/FilesystemPathIdentityContext.js +3 -0
  810. package/lib/internal/pathIdentity/FilesystemPathIdentityContext.js.map +1 -0
  811. package/lib/internal/pathIdentity/FilesystemPathIdentityOperations.d.ts +100 -0
  812. package/lib/internal/pathIdentity/FilesystemPathIdentityOperations.js +3 -0
  813. package/lib/internal/pathIdentity/FilesystemPathIdentityOperations.js.map +1 -0
  814. package/lib/internal/pathIdentity/ProjectInputPathIdentity.d.ts +20 -0
  815. package/lib/internal/pathIdentity/ProjectInputPathIdentity.js +3 -0
  816. package/lib/internal/pathIdentity/ProjectInputPathIdentity.js.map +1 -0
  817. package/lib/internal/pathIdentity/ProjectInputPathIdentityContext.d.ts +20 -0
  818. package/lib/internal/pathIdentity/ProjectInputPathIdentityContext.js +3 -0
  819. package/lib/internal/pathIdentity/ProjectInputPathIdentityContext.js.map +1 -0
  820. package/lib/internal/pathIdentity/ProjectInputPathIdentityOperations.d.ts +20 -0
  821. package/lib/internal/pathIdentity/ProjectInputPathIdentityOperations.js +3 -0
  822. package/lib/internal/pathIdentity/ProjectInputPathIdentityOperations.js.map +1 -0
  823. package/lib/internal/pathIdentity/createFilesystemPathIdentityContext.d.ts +25 -0
  824. package/lib/internal/pathIdentity/createFilesystemPathIdentityContext.js +336 -0
  825. package/lib/internal/pathIdentity/createFilesystemPathIdentityContext.js.map +1 -0
  826. package/lib/internal/pathIdentity/createProjectInputPathIdentityContext.d.ts +28 -0
  827. package/lib/internal/pathIdentity/createProjectInputPathIdentityContext.js +33 -0
  828. package/lib/internal/pathIdentity/createProjectInputPathIdentityContext.js.map +1 -0
  829. package/lib/internal/pathIdentity/isFilesystemPathIdentityWithin.d.ts +20 -0
  830. package/lib/internal/pathIdentity/isFilesystemPathIdentityWithin.js +33 -0
  831. package/lib/internal/pathIdentity/isFilesystemPathIdentityWithin.js.map +1 -0
  832. package/lib/internal/pathIdentity/isProjectInputPathIdentityWithin.d.ts +15 -0
  833. package/lib/internal/pathIdentity/isProjectInputPathIdentityWithin.js +22 -0
  834. package/lib/internal/pathIdentity/isProjectInputPathIdentityWithin.js.map +1 -0
  835. package/lib/internal/pathIdentity/resolveFilesystemPath.d.ts +22 -0
  836. package/lib/internal/pathIdentity/resolveFilesystemPath.js +44 -0
  837. package/lib/internal/pathIdentity/resolveFilesystemPath.js.map +1 -0
  838. package/lib/internal/pathIdentity/resolvePhysicalPath.d.ts +21 -0
  839. package/lib/internal/pathIdentity/resolvePhysicalPath.js +35 -0
  840. package/lib/internal/pathIdentity/resolvePhysicalPath.js.map +1 -0
  841. package/lib/internal/pathIdentity/resolveProjectInputPath.d.ts +14 -0
  842. package/lib/internal/pathIdentity/resolveProjectInputPath.js +21 -0
  843. package/lib/internal/pathIdentity/resolveProjectInputPath.js.map +1 -0
  844. package/lib/internal/pluginSource.d.ts +26 -0
  845. package/lib/internal/pluginSource.js +43 -0
  846. package/lib/internal/pluginSource.js.map +1 -0
  847. package/lib/internal/projectInputPathIdentity.d.ts +27 -31
  848. package/lib/internal/projectInputPathIdentity.js +37 -275
  849. package/lib/internal/projectInputPathIdentity.js.map +1 -1
  850. package/lib/internal/resolveNodeBinary.d.ts +9 -7
  851. package/lib/internal/resolveNodeBinary.js +14 -144
  852. package/lib/internal/resolveNodeBinary.js.map +1 -1
  853. package/lib/internal/resolveSafeCacheCleanupTargets.d.ts +27 -8
  854. package/lib/internal/resolveSafeCacheCleanupTargets.js +44 -11
  855. package/lib/internal/resolveSafeCacheCleanupTargets.js.map +1 -1
  856. package/lib/internal/restoreCompilerError.d.ts +21 -0
  857. package/lib/internal/restoreCompilerError.js +164 -0
  858. package/lib/internal/restoreCompilerError.js.map +1 -0
  859. package/lib/internal/retireLockDirectory.d.ts +45 -0
  860. package/lib/internal/retireLockDirectory.js +152 -0
  861. package/lib/internal/retireLockDirectory.js.map +1 -0
  862. package/lib/internal/runHoldingLock.d.ts +30 -0
  863. package/lib/internal/runHoldingLock.js +53 -0
  864. package/lib/internal/runHoldingLock.js.map +1 -0
  865. package/lib/internal/runtimeExecutableIdentity.d.ts +20 -0
  866. package/lib/internal/runtimeExecutableIdentity.js +171 -0
  867. package/lib/internal/runtimeExecutableIdentity.js.map +1 -0
  868. package/lib/internal/serializeCompilerError.d.ts +28 -0
  869. package/lib/internal/serializeCompilerError.js +138 -0
  870. package/lib/internal/serializeCompilerError.js.map +1 -0
  871. package/lib/internal/spawnSyncResilient.d.ts +21 -10
  872. package/lib/internal/spawnSyncResilient.js +31 -147
  873. package/lib/internal/spawnSyncResilient.js.map +1 -1
  874. package/lib/internal/spawnSyncWithLowDescriptors.d.ts +30 -0
  875. package/lib/internal/spawnSyncWithLowDescriptors.js +194 -0
  876. package/lib/internal/spawnSyncWithLowDescriptors.js.map +1 -0
  877. package/lib/internal/tsconfig.d.ts +16 -0
  878. package/lib/internal/tsconfig.js +33 -0
  879. package/lib/internal/tsconfig.js.map +1 -0
  880. package/lib/launcher/internal/PendingResidentCheckWatchChanges.d.ts +56 -0
  881. package/lib/launcher/internal/PendingResidentCheckWatchChanges.js +97 -0
  882. package/lib/launcher/internal/PendingResidentCheckWatchChanges.js.map +1 -0
  883. package/lib/launcher/internal/TtscBuildMode.d.ts +14 -0
  884. package/lib/launcher/internal/TtscBuildMode.js +3 -0
  885. package/lib/launcher/internal/TtscBuildMode.js.map +1 -0
  886. package/lib/launcher/internal/TtsxEntryOptions.d.ts +50 -0
  887. package/lib/launcher/internal/TtsxEntryOptions.js +94 -0
  888. package/lib/launcher/internal/TtsxEntryOptions.js.map +1 -0
  889. package/lib/launcher/internal/assertNoSolutionBuild.d.ts +17 -10
  890. package/lib/launcher/internal/assertNoSolutionBuild.js +16 -9
  891. package/lib/launcher/internal/assertNoSolutionBuild.js.map +1 -1
  892. package/lib/launcher/internal/assertTtsxNoWatch.d.ts +25 -0
  893. package/lib/launcher/internal/assertTtsxNoWatch.js +46 -0
  894. package/lib/launcher/internal/assertTtsxNoWatch.js.map +1 -0
  895. package/lib/launcher/internal/buildSingleRootProject.d.ts +108 -0
  896. package/lib/launcher/internal/buildSingleRootProject.js +229 -0
  897. package/lib/launcher/internal/buildSingleRootProject.js.map +1 -0
  898. package/lib/launcher/internal/getCompilerVersionText.d.ts +14 -1
  899. package/lib/launcher/internal/getCompilerVersionText.js +21 -6
  900. package/lib/launcher/internal/getCompilerVersionText.js.map +1 -1
  901. package/lib/launcher/internal/inlineServedSourceMap.d.ts +35 -0
  902. package/lib/launcher/internal/inlineServedSourceMap.js +255 -0
  903. package/lib/launcher/internal/inlineServedSourceMap.js.map +1 -0
  904. package/lib/launcher/internal/linkVirtualEntry.d.ts +31 -0
  905. package/lib/launcher/internal/linkVirtualEntry.js +87 -0
  906. package/lib/launcher/internal/linkVirtualEntry.js.map +1 -0
  907. package/lib/launcher/internal/parseCommonJsExports.d.ts +17 -0
  908. package/lib/launcher/internal/{commonJsExportMetadata.js → parseCommonJsExports.js} +13 -3
  909. package/lib/launcher/internal/parseCommonJsExports.js.map +1 -0
  910. package/lib/launcher/internal/parseTtscBuildArgs.d.ts +34 -0
  911. package/lib/launcher/internal/parseTtscBuildArgs.js +97 -0
  912. package/lib/launcher/internal/parseTtscBuildArgs.js.map +1 -0
  913. package/lib/launcher/internal/parseTtsxCLI.d.ts +35 -0
  914. package/lib/launcher/internal/parseTtsxCLI.js +187 -0
  915. package/lib/launcher/internal/parseTtsxCLI.js.map +1 -0
  916. package/lib/launcher/internal/prepareExecution.d.ts +49 -5
  917. package/lib/launcher/internal/prepareExecution.js +360 -324
  918. package/lib/launcher/internal/prepareExecution.js.map +1 -1
  919. package/lib/launcher/internal/prepareTtscBuildMode.d.ts +23 -0
  920. package/lib/launcher/internal/prepareTtscBuildMode.js +58 -0
  921. package/lib/launcher/internal/prepareTtscBuildMode.js.map +1 -0
  922. package/lib/launcher/internal/resolveCacheDir.d.ts +12 -3
  923. package/lib/launcher/internal/resolveCacheDir.js +12 -3
  924. package/lib/launcher/internal/resolveCacheDir.js.map +1 -1
  925. package/lib/launcher/internal/resolveSingleFileOutput.d.ts +35 -0
  926. package/lib/launcher/internal/resolveSingleFileOutput.js +115 -0
  927. package/lib/launcher/internal/resolveSingleFileOutput.js.map +1 -0
  928. package/lib/launcher/internal/resolveTtscserverBinary.d.ts +15 -3
  929. package/lib/launcher/internal/resolveTtscserverBinary.js +19 -5
  930. package/lib/launcher/internal/resolveTtscserverBinary.js.map +1 -1
  931. package/lib/launcher/internal/runTtsc.d.ts +23 -23
  932. package/lib/launcher/internal/runTtsc.js +336 -286
  933. package/lib/launcher/internal/runTtsc.js.map +1 -1
  934. package/lib/launcher/internal/runTtsx.d.ts +32 -4
  935. package/lib/launcher/internal/runTtsx.js +286 -138
  936. package/lib/launcher/internal/runTtsx.js.map +1 -1
  937. package/lib/launcher/internal/runtime/CommonJsRuntimeSource.d.ts +92 -0
  938. package/lib/launcher/internal/runtime/CommonJsRuntimeSource.js +354 -0
  939. package/lib/launcher/internal/runtime/CommonJsRuntimeSource.js.map +1 -0
  940. package/lib/launcher/internal/runtime/DependencyBuildAdmission.d.ts +72 -0
  941. package/lib/launcher/internal/runtime/DependencyBuildAdmission.js +120 -0
  942. package/lib/launcher/internal/runtime/DependencyBuildAdmission.js.map +1 -0
  943. package/lib/launcher/internal/runtime/DependencyBuildGeneration.d.ts +185 -0
  944. package/lib/launcher/internal/runtime/DependencyBuildGeneration.js +153 -0
  945. package/lib/launcher/internal/runtime/DependencyBuildGeneration.js.map +1 -0
  946. package/lib/launcher/internal/runtime/DependencyBuildLockFence.d.ts +22 -0
  947. package/lib/launcher/internal/runtime/DependencyBuildLockFence.js +3 -0
  948. package/lib/launcher/internal/runtime/DependencyBuildLockFence.js.map +1 -0
  949. package/lib/launcher/internal/runtime/DependencyBuildLockLease.d.ts +22 -0
  950. package/lib/launcher/internal/runtime/DependencyBuildLockLease.js +3 -0
  951. package/lib/launcher/internal/runtime/DependencyBuildLockLease.js.map +1 -0
  952. package/lib/launcher/internal/runtime/DependencyBuildLockObservation.d.ts +41 -0
  953. package/lib/launcher/internal/runtime/DependencyBuildLockObservation.js +3 -0
  954. package/lib/launcher/internal/runtime/DependencyBuildLockObservation.js.map +1 -0
  955. package/lib/launcher/internal/runtime/DependencyBuildLockProtocol.d.ts +83 -0
  956. package/lib/launcher/internal/runtime/DependencyBuildLockProtocol.js +126 -0
  957. package/lib/launcher/internal/runtime/DependencyBuildLockProtocol.js.map +1 -0
  958. package/lib/launcher/internal/runtime/OwnedProjectSource.d.ts +112 -0
  959. package/lib/launcher/internal/runtime/OwnedProjectSource.js +59 -0
  960. package/lib/launcher/internal/runtime/OwnedProjectSource.js.map +1 -0
  961. package/lib/launcher/internal/runtime/OwningModuleOptions.d.ts +21 -0
  962. package/lib/launcher/internal/runtime/OwningModuleOptions.js +3 -0
  963. package/lib/launcher/internal/runtime/OwningModuleOptions.js.map +1 -0
  964. package/lib/launcher/internal/runtime/PluginDescriptorInputObservation.d.ts +89 -0
  965. package/lib/launcher/internal/runtime/PluginDescriptorInputObservation.js +115 -0
  966. package/lib/launcher/internal/runtime/PluginDescriptorInputObservation.js.map +1 -0
  967. package/lib/launcher/internal/runtime/ProcessOwnedDirectory.d.ts +168 -0
  968. package/lib/launcher/internal/runtime/ProcessOwnedDirectory.js +251 -0
  969. package/lib/launcher/internal/runtime/ProcessOwnedDirectory.js.map +1 -0
  970. package/lib/launcher/internal/runtime/ResolveResult.d.ts +24 -0
  971. package/lib/launcher/internal/runtime/ResolveResult.js +3 -0
  972. package/lib/launcher/internal/runtime/ResolveResult.js.map +1 -0
  973. package/lib/launcher/internal/runtime/RuntimeEmitProvenance.d.ts +38 -0
  974. package/lib/launcher/internal/runtime/RuntimeEmitProvenance.js +60 -0
  975. package/lib/launcher/internal/runtime/RuntimeEmitProvenance.js.map +1 -0
  976. package/lib/launcher/internal/runtime/RuntimeEntryPreparer.d.ts +22 -0
  977. package/lib/launcher/internal/runtime/RuntimeEntryPreparer.js +3 -0
  978. package/lib/launcher/internal/runtime/RuntimeEntryPreparer.js.map +1 -0
  979. package/lib/launcher/internal/runtime/RuntimeFilesystem.d.ts +52 -0
  980. package/lib/launcher/internal/runtime/RuntimeFilesystem.js +73 -0
  981. package/lib/launcher/internal/runtime/RuntimeFilesystem.js.map +1 -0
  982. package/lib/launcher/internal/runtime/RuntimeHookOptions.d.ts +22 -0
  983. package/lib/launcher/internal/runtime/RuntimeHookOptions.js +3 -0
  984. package/lib/launcher/internal/runtime/RuntimeHookOptions.js.map +1 -0
  985. package/lib/launcher/internal/runtime/RuntimeIsolatedEmit.d.ts +53 -0
  986. package/lib/launcher/internal/runtime/RuntimeIsolatedEmit.js +88 -0
  987. package/lib/launcher/internal/runtime/RuntimeIsolatedEmit.js.map +1 -0
  988. package/lib/launcher/internal/runtime/RuntimeLoaderCapabilities.d.ts +78 -0
  989. package/lib/launcher/internal/runtime/RuntimeLoaderCapabilities.js +256 -0
  990. package/lib/launcher/internal/runtime/RuntimeLoaderCapabilities.js.map +1 -0
  991. package/lib/launcher/internal/runtime/RuntimeManifest.d.ts +65 -0
  992. package/lib/launcher/internal/runtime/RuntimeManifest.js +3 -0
  993. package/lib/launcher/internal/runtime/RuntimeManifest.js.map +1 -0
  994. package/lib/launcher/internal/runtime/RuntimeManifestRegistry.d.ts +95 -0
  995. package/lib/launcher/internal/runtime/RuntimeManifestRegistry.js +268 -0
  996. package/lib/launcher/internal/runtime/RuntimeManifestRegistry.js.map +1 -0
  997. package/lib/launcher/internal/runtime/RuntimeModuleFormat.d.ts +60 -0
  998. package/lib/launcher/internal/runtime/RuntimeModuleFormat.js +249 -0
  999. package/lib/launcher/internal/runtime/RuntimeModuleFormat.js.map +1 -0
  1000. package/lib/launcher/internal/runtime/RuntimeProjectOwnership.d.ts +50 -0
  1001. package/lib/launcher/internal/runtime/RuntimeProjectOwnership.js +134 -0
  1002. package/lib/launcher/internal/runtime/RuntimeProjectOwnership.js.map +1 -0
  1003. package/lib/launcher/internal/runtime/TTSX_MINIMUM_NODE_VERSION.d.ts +11 -0
  1004. package/lib/launcher/internal/runtime/TTSX_MINIMUM_NODE_VERSION.js +15 -0
  1005. package/lib/launcher/internal/runtime/TTSX_MINIMUM_NODE_VERSION.js.map +1 -0
  1006. package/lib/launcher/internal/runtime/acquireDependencyBuildLock.d.ts +22 -0
  1007. package/lib/launcher/internal/runtime/acquireDependencyBuildLock.js +74 -0
  1008. package/lib/launcher/internal/runtime/acquireDependencyBuildLock.js.map +1 -0
  1009. package/lib/launcher/internal/runtime/checkNodeRuntimeSupport.d.ts +30 -0
  1010. package/lib/launcher/internal/runtime/checkNodeRuntimeSupport.js +83 -0
  1011. package/lib/launcher/internal/runtime/checkNodeRuntimeSupport.js.map +1 -0
  1012. package/lib/launcher/internal/runtime/claimRuntimeProjectDirectory.d.ts +30 -0
  1013. package/lib/launcher/internal/runtime/claimRuntimeProjectDirectory.js +52 -0
  1014. package/lib/launcher/internal/runtime/claimRuntimeProjectDirectory.js.map +1 -0
  1015. package/lib/launcher/internal/runtime/commonJsExportNames.d.ts +21 -0
  1016. package/lib/launcher/internal/runtime/commonJsExportNames.js +68 -0
  1017. package/lib/launcher/internal/runtime/commonJsExportNames.js.map +1 -0
  1018. package/lib/launcher/internal/runtime/commonJsImportFacade.d.ts +32 -0
  1019. package/lib/launcher/internal/runtime/commonJsImportFacade.js +56 -0
  1020. package/lib/launcher/internal/runtime/commonJsImportFacade.js.map +1 -0
  1021. package/lib/launcher/internal/runtime/dependencyCacheKey.d.ts +36 -0
  1022. package/lib/launcher/internal/runtime/dependencyCacheKey.js +57 -0
  1023. package/lib/launcher/internal/runtime/dependencyCacheKey.js.map +1 -0
  1024. package/lib/launcher/internal/runtime/dependencyCacheRoot.d.ts +32 -0
  1025. package/lib/launcher/internal/runtime/dependencyCacheRoot.js +98 -0
  1026. package/lib/launcher/internal/runtime/dependencyCacheRoot.js.map +1 -0
  1027. package/lib/launcher/internal/runtime/inspectDependencyBuildLock.d.ts +23 -0
  1028. package/lib/launcher/internal/runtime/inspectDependencyBuildLock.js +126 -0
  1029. package/lib/launcher/internal/runtime/inspectDependencyBuildLock.js.map +1 -0
  1030. package/lib/launcher/internal/runtime/installRuntimeHooks.d.ts +58 -0
  1031. package/lib/launcher/internal/runtime/installRuntimeHooks.js +1988 -0
  1032. package/lib/launcher/internal/runtime/installRuntimeHooks.js.map +1 -0
  1033. package/lib/launcher/internal/runtime/interopProbe.d.ts +8 -0
  1034. package/lib/launcher/internal/runtime/interopProbe.js +3 -0
  1035. package/lib/launcher/internal/runtime/interopProbe.js.map +1 -0
  1036. package/lib/launcher/internal/runtime/isLocalProcessGone.d.ts +33 -0
  1037. package/lib/launcher/internal/runtime/isLocalProcessGone.js +60 -0
  1038. package/lib/launcher/internal/runtime/isLocalProcessGone.js.map +1 -0
  1039. package/lib/launcher/internal/runtime/observeMappedDescriptorResolution.d.ts +28 -0
  1040. package/lib/launcher/internal/runtime/observeMappedDescriptorResolution.js +50 -0
  1041. package/lib/launcher/internal/runtime/observeMappedDescriptorResolution.js.map +1 -0
  1042. package/lib/launcher/internal/runtime/projectModuleOptions.d.ts +16 -0
  1043. package/lib/launcher/internal/runtime/projectModuleOptions.js +28 -0
  1044. package/lib/launcher/internal/runtime/projectModuleOptions.js.map +1 -0
  1045. package/lib/launcher/internal/runtime/readDependencyCache.d.ts +28 -0
  1046. package/lib/launcher/internal/runtime/readDependencyCache.js +83 -0
  1047. package/lib/launcher/internal/runtime/readDependencyCache.js.map +1 -0
  1048. package/lib/launcher/internal/runtime/realPath.d.ts +22 -0
  1049. package/lib/launcher/internal/runtime/realPath.js +37 -0
  1050. package/lib/launcher/internal/runtime/realPath.js.map +1 -0
  1051. package/lib/launcher/internal/runtime/reclaimDependencyBuildLock.d.ts +17 -0
  1052. package/lib/launcher/internal/runtime/reclaimDependencyBuildLock.js +23 -0
  1053. package/lib/launcher/internal/runtime/reclaimDependencyBuildLock.js.map +1 -0
  1054. package/lib/launcher/internal/runtime/releaseDependencyBuildLock.d.ts +17 -0
  1055. package/lib/launcher/internal/runtime/releaseDependencyBuildLock.js +23 -0
  1056. package/lib/launcher/internal/runtime/releaseDependencyBuildLock.js.map +1 -0
  1057. package/lib/launcher/internal/runtime/resolveRuntimeCleanTargets.d.ts +34 -0
  1058. package/lib/launcher/internal/runtime/resolveRuntimeCleanTargets.js +88 -0
  1059. package/lib/launcher/internal/runtime/resolveRuntimeCleanTargets.js.map +1 -0
  1060. package/lib/launcher/internal/runtime/restoreStrippedNodeBuiltinScheme.d.ts +20 -0
  1061. package/lib/launcher/internal/runtime/restoreStrippedNodeBuiltinScheme.js +30 -0
  1062. package/lib/launcher/internal/runtime/restoreStrippedNodeBuiltinScheme.js.map +1 -0
  1063. package/lib/launcher/internal/runtime/runtimeRunKey.d.ts +24 -0
  1064. package/lib/launcher/internal/runtime/runtimeRunKey.js +36 -0
  1065. package/lib/launcher/internal/runtime/runtimeRunKey.js.map +1 -0
  1066. package/lib/launcher/internal/runtime/selectRuntimePluginPolicy.d.ts +21 -0
  1067. package/lib/launcher/internal/runtime/selectRuntimePluginPolicy.js +29 -0
  1068. package/lib/launcher/internal/runtime/selectRuntimePluginPolicy.js.map +1 -0
  1069. package/lib/launcher/internal/runtime/withRuntimeDirectoryLock.d.ts +35 -0
  1070. package/lib/launcher/internal/runtime/withRuntimeDirectoryLock.js +76 -0
  1071. package/lib/launcher/internal/runtime/withRuntimeDirectoryLock.js.map +1 -0
  1072. package/lib/launcher/internal/runtimeCompilerArgs.d.ts +35 -6
  1073. package/lib/launcher/internal/runtimeCompilerArgs.js +87 -58
  1074. package/lib/launcher/internal/runtimeCompilerArgs.js.map +1 -1
  1075. package/lib/launcher/internal/runtimeEmitProfile.d.ts +39 -0
  1076. package/lib/launcher/internal/runtimeEmitProfile.js +56 -0
  1077. package/lib/launcher/internal/runtimeEmitProfile.js.map +1 -0
  1078. package/lib/launcher/internal/runtimeHookPreload.js +4 -4
  1079. package/lib/launcher/internal/runtimeHookPreload.js.map +1 -1
  1080. package/lib/launcher/internal/runtimeOwnerPreload.d.ts +1 -0
  1081. package/lib/launcher/internal/runtimeOwnerPreload.js +43 -0
  1082. package/lib/launcher/internal/runtimeOwnerPreload.js.map +1 -0
  1083. package/lib/launcher/internal/singleRootProjectConfig.d.ts +34 -0
  1084. package/lib/launcher/internal/singleRootProjectConfig.js +39 -0
  1085. package/lib/launcher/internal/singleRootProjectConfig.js.map +1 -0
  1086. package/lib/launcher/internal/ttscserver/ILSPPluginSelectionInputs.d.ts +61 -0
  1087. package/lib/launcher/internal/ttscserver/ILSPPluginSelectionInputs.js +3 -0
  1088. package/lib/launcher/internal/ttscserver/ILSPPluginSelectionInputs.js.map +1 -0
  1089. package/lib/launcher/internal/ttscserver/LSPProjectInputDigest.d.ts +95 -0
  1090. package/lib/launcher/internal/ttscserver/LSPProjectInputDigest.js +270 -0
  1091. package/lib/launcher/internal/ttscserver/LSPProjectInputDigest.js.map +1 -0
  1092. package/lib/launcher/internal/ttscserver/captureLSPPluginSelectionInputs.d.ts +46 -0
  1093. package/lib/launcher/internal/ttscserver/captureLSPPluginSelectionInputs.js +91 -0
  1094. package/lib/launcher/internal/ttscserver/captureLSPPluginSelectionInputs.js.map +1 -0
  1095. package/lib/launcher/internal/ttscserver/fingerprintInitialLSPProjectInputSnapshot.d.ts +21 -0
  1096. package/lib/launcher/internal/ttscserver/fingerprintInitialLSPProjectInputSnapshot.js +39 -0
  1097. package/lib/launcher/internal/ttscserver/fingerprintInitialLSPProjectInputSnapshot.js.map +1 -0
  1098. package/lib/launcher/internal/ttscserver/initialLSPProjectInputSnapshotIsCurrent.d.ts +18 -0
  1099. package/lib/launcher/internal/ttscserver/initialLSPProjectInputSnapshotIsCurrent.js +27 -0
  1100. package/lib/launcher/internal/ttscserver/initialLSPProjectInputSnapshotIsCurrent.js.map +1 -0
  1101. package/lib/launcher/internal/ttscserver/materializeLSPPluginManifest.d.ts +26 -0
  1102. package/lib/launcher/internal/ttscserver/materializeLSPPluginManifest.js +62 -0
  1103. package/lib/launcher/internal/ttscserver/materializeLSPPluginManifest.js.map +1 -0
  1104. package/lib/launcher/internal/ttscserver/needsStdio.d.ts +17 -0
  1105. package/lib/launcher/internal/ttscserver/needsStdio.js +36 -0
  1106. package/lib/launcher/internal/ttscserver/needsStdio.js.map +1 -0
  1107. package/lib/launcher/internal/ttscserver/runTtscserver.d.ts +25 -0
  1108. package/lib/launcher/internal/ttscserver/runTtscserver.js +439 -0
  1109. package/lib/launcher/internal/ttscserver/runTtscserver.js.map +1 -0
  1110. package/lib/launcher/internal/watch/CompilerDirectoryWatchEventPlan.d.ts +29 -0
  1111. package/lib/launcher/internal/watch/CompilerDirectoryWatchEventPlan.js +3 -0
  1112. package/lib/launcher/internal/watch/CompilerDirectoryWatchEventPlan.js.map +1 -0
  1113. package/lib/launcher/internal/watch/DirectoryWatcher.d.ts +44 -0
  1114. package/lib/launcher/internal/watch/DirectoryWatcher.js +3 -0
  1115. package/lib/launcher/internal/watch/DirectoryWatcher.js.map +1 -0
  1116. package/lib/launcher/internal/watch/FseventsStreams.d.ts +87 -0
  1117. package/lib/launcher/internal/watch/FseventsStreams.js +266 -0
  1118. package/lib/launcher/internal/watch/FseventsStreams.js.map +1 -0
  1119. package/lib/launcher/internal/watch/ProjectInputWatchRules.d.ts +92 -0
  1120. package/lib/launcher/internal/watch/ProjectInputWatchRules.js +163 -0
  1121. package/lib/launcher/internal/watch/ProjectInputWatchRules.js.map +1 -0
  1122. package/lib/launcher/internal/watch/WatchInputChange.d.ts +29 -0
  1123. package/lib/launcher/internal/watch/WatchInputChange.js +3 -0
  1124. package/lib/launcher/internal/watch/WatchInputChange.js.map +1 -0
  1125. package/lib/launcher/internal/watch/WatchPaths.d.ts +101 -0
  1126. package/lib/launcher/internal/watch/WatchPaths.js +150 -0
  1127. package/lib/launcher/internal/watch/WatchPaths.js.map +1 -0
  1128. package/lib/launcher/internal/watch/WatchTopology.d.ts +384 -0
  1129. package/lib/launcher/internal/{watchTopology.js → watch/WatchTopology.js} +726 -799
  1130. package/lib/launcher/internal/watch/WatchTopology.js.map +1 -0
  1131. package/lib/launcher/internal/watch/literalGlobRoot.d.ts +22 -0
  1132. package/lib/launcher/internal/watch/literalGlobRoot.js +45 -0
  1133. package/lib/launcher/internal/watch/literalGlobRoot.js.map +1 -0
  1134. package/lib/launcher/internal/watch/planCompilerDirectoryWatchEvent.d.ts +40 -0
  1135. package/lib/launcher/internal/watch/planCompilerDirectoryWatchEvent.js +69 -0
  1136. package/lib/launcher/internal/watch/planCompilerDirectoryWatchEvent.js.map +1 -0
  1137. package/lib/launcher/internal/watch/projectInputActiveWatchDirectories.d.ts +19 -0
  1138. package/lib/launcher/internal/watch/projectInputActiveWatchDirectories.js +52 -0
  1139. package/lib/launcher/internal/watch/projectInputActiveWatchDirectories.js.map +1 -0
  1140. package/lib/launcher/internal/watch/projectInputAvailableWatchDirectory.d.ts +21 -0
  1141. package/lib/launcher/internal/watch/projectInputAvailableWatchDirectory.js +55 -0
  1142. package/lib/launcher/internal/watch/projectInputAvailableWatchDirectory.js.map +1 -0
  1143. package/lib/launcher/internal/watch/projectInputEventShouldNotify.d.ts +21 -0
  1144. package/lib/launcher/internal/watch/projectInputEventShouldNotify.js +23 -0
  1145. package/lib/launcher/internal/watch/projectInputEventShouldNotify.js.map +1 -0
  1146. package/lib/launcher/internal/watch/projectInputMembershipInvalidatesProgram.d.ts +27 -0
  1147. package/lib/launcher/internal/watch/projectInputMembershipInvalidatesProgram.js +54 -0
  1148. package/lib/launcher/internal/watch/projectInputMembershipInvalidatesProgram.js.map +1 -0
  1149. package/lib/launcher/internal/watch/projectInputReloadEventShouldNotify.d.ts +26 -0
  1150. package/lib/launcher/internal/watch/projectInputReloadEventShouldNotify.js +100 -0
  1151. package/lib/launcher/internal/watch/projectInputReloadEventShouldNotify.js.map +1 -0
  1152. package/lib/launcher/internal/watch/projectInputReplacementStrandsWatchers.d.ts +37 -0
  1153. package/lib/launcher/internal/watch/projectInputReplacementStrandsWatchers.js +54 -0
  1154. package/lib/launcher/internal/watch/projectInputReplacementStrandsWatchers.js.map +1 -0
  1155. package/lib/launcher/internal/watch/projectInputTopologyMayAffect.d.ts +23 -0
  1156. package/lib/launcher/internal/watch/projectInputTopologyMayAffect.js +67 -0
  1157. package/lib/launcher/internal/watch/projectInputTopologyMayAffect.js.map +1 -0
  1158. package/lib/launcher/internal/watch/projectInputWatchDirectories.d.ts +22 -0
  1159. package/lib/launcher/internal/watch/projectInputWatchDirectories.js +30 -0
  1160. package/lib/launcher/internal/watch/projectInputWatchDirectories.js.map +1 -0
  1161. package/lib/launcher/internal/watch/reloadInputsForFailedTopologyRefresh.d.ts +22 -0
  1162. package/lib/launcher/internal/watch/reloadInputsForFailedTopologyRefresh.js +45 -0
  1163. package/lib/launcher/internal/watch/reloadInputsForFailedTopologyRefresh.js.map +1 -0
  1164. package/lib/launcher/internal/watch/syncWatchers.d.ts +25 -0
  1165. package/lib/launcher/internal/watch/syncWatchers.js +61 -0
  1166. package/lib/launcher/internal/watch/syncWatchers.js.map +1 -0
  1167. package/lib/launcher/internal/watch/watchDirectory.d.ts +28 -0
  1168. package/lib/launcher/internal/watch/watchDirectory.js +46 -0
  1169. package/lib/launcher/internal/watch/watchDirectory.js.map +1 -0
  1170. package/lib/launcher/internal/watch/watchDirectoryThroughFsWatch.d.ts +28 -0
  1171. package/lib/launcher/internal/watch/watchDirectoryThroughFsWatch.js +38 -0
  1172. package/lib/launcher/internal/watch/watchDirectoryThroughFsWatch.js.map +1 -0
  1173. package/lib/launcher/ttscserver.js +1 -1
  1174. package/lib/launcher/ttscserver.js.map +1 -1
  1175. package/lib/launcher/ttsx.js +2 -3
  1176. package/lib/launcher/ttsx.js.map +1 -1
  1177. package/lib/plugin/CapabilityPluginResolver.d.ts +140 -0
  1178. package/lib/plugin/CapabilityPluginResolver.js +400 -0
  1179. package/lib/plugin/CapabilityPluginResolver.js.map +1 -0
  1180. package/lib/plugin/ITtscCapabilityPlugin.d.ts +87 -0
  1181. package/lib/plugin/ITtscCapabilityPlugin.js +3 -0
  1182. package/lib/plugin/ITtscCapabilityPlugin.js.map +1 -0
  1183. package/lib/plugin/internal/CapabilityPluginResult.d.ts +66 -0
  1184. package/lib/plugin/internal/CapabilityPluginResult.js +86 -0
  1185. package/lib/plugin/internal/CapabilityPluginResult.js.map +1 -0
  1186. package/lib/plugin/internal/CapabilityResolutionFormat.d.ts +114 -0
  1187. package/lib/plugin/internal/CapabilityResolutionFormat.js +229 -0
  1188. package/lib/plugin/internal/CapabilityResolutionFormat.js.map +1 -0
  1189. package/lib/plugin/internal/ITtscCapabilityPluginSource.d.ts +35 -0
  1190. package/lib/plugin/internal/ITtscCapabilityPluginSource.js +3 -0
  1191. package/lib/plugin/internal/ITtscCapabilityPluginSource.js.map +1 -0
  1192. package/lib/plugin/internal/ITtscCapabilityResolutionEntry.d.ts +49 -0
  1193. package/lib/plugin/internal/ITtscCapabilityResolutionEntry.js +3 -0
  1194. package/lib/plugin/internal/ITtscCapabilityResolutionEntry.js.map +1 -0
  1195. package/lib/plugin/internal/ITtscCapabilityResolutionPlugin.d.ts +21 -0
  1196. package/lib/plugin/internal/ITtscCapabilityResolutionPlugin.js +3 -0
  1197. package/lib/plugin/internal/ITtscCapabilityResolutionPlugin.js.map +1 -0
  1198. package/lib/plugin/internal/capabilityPluginWorker.d.ts +1 -0
  1199. package/lib/plugin/internal/capabilityPluginWorker.js +178 -0
  1200. package/lib/plugin/internal/capabilityPluginWorker.js.map +1 -0
  1201. package/lib/plugin/internal/decodeCapabilityCommandReply.d.ts +23 -0
  1202. package/lib/plugin/internal/decodeCapabilityCommandReply.js +25 -0
  1203. package/lib/plugin/internal/decodeCapabilityCommandReply.js.map +1 -0
  1204. package/lib/plugin/internal/load/COMMONJS_PLUGIN_DESCRIPTOR_SHIM_SOURCE.d.ts +15 -0
  1205. package/lib/plugin/internal/load/COMMONJS_PLUGIN_DESCRIPTOR_SHIM_SOURCE.js +182 -0
  1206. package/lib/plugin/internal/load/COMMONJS_PLUGIN_DESCRIPTOR_SHIM_SOURCE.js.map +1 -0
  1207. package/lib/plugin/internal/load/PLUGIN_DESCRIPTOR_SHIM_SOURCE.d.ts +11 -0
  1208. package/lib/plugin/internal/load/PLUGIN_DESCRIPTOR_SHIM_SOURCE.js +62 -0
  1209. package/lib/plugin/internal/load/PLUGIN_DESCRIPTOR_SHIM_SOURCE.js.map +1 -0
  1210. package/lib/plugin/internal/load/PluginDescriptorAdmission.d.ts +46 -0
  1211. package/lib/plugin/internal/load/PluginDescriptorAdmission.js +72 -0
  1212. package/lib/plugin/internal/load/PluginDescriptorAdmission.js.map +1 -0
  1213. package/lib/plugin/internal/load/PluginDescriptorEvaluationCache.d.ts +154 -0
  1214. package/lib/plugin/internal/load/PluginDescriptorEvaluationCache.js +317 -0
  1215. package/lib/plugin/internal/load/PluginDescriptorEvaluationCache.js.map +1 -0
  1216. package/lib/plugin/internal/load/PluginPackageResolution.d.ts +208 -0
  1217. package/lib/plugin/internal/load/PluginPackageResolution.js +593 -0
  1218. package/lib/plugin/internal/load/PluginPackageResolution.js.map +1 -0
  1219. package/lib/plugin/internal/load/ProjectPluginEntries.d.ts +60 -0
  1220. package/lib/plugin/internal/load/ProjectPluginEntries.js +164 -0
  1221. package/lib/plugin/internal/load/ProjectPluginEntries.js.map +1 -0
  1222. package/lib/plugin/internal/load/RESOLUTION_INPUT_RECORDER_PATH.d.ts +13 -0
  1223. package/lib/plugin/internal/load/RESOLUTION_INPUT_RECORDER_PATH.js +21 -0
  1224. package/lib/plugin/internal/load/RESOLUTION_INPUT_RECORDER_PATH.js.map +1 -0
  1225. package/lib/plugin/internal/load/collectProjectHostInputs.d.ts +16 -0
  1226. package/lib/plugin/internal/load/collectProjectHostInputs.js +66 -0
  1227. package/lib/plugin/internal/load/collectProjectHostInputs.js.map +1 -0
  1228. package/lib/plugin/internal/load/composePluginSources.d.ts +20 -0
  1229. package/lib/plugin/internal/load/composePluginSources.js +95 -0
  1230. package/lib/plugin/internal/load/composePluginSources.js.map +1 -0
  1231. package/lib/plugin/internal/load/declaresHostInputReads.d.ts +24 -0
  1232. package/lib/plugin/internal/load/declaresHostInputReads.js +48 -0
  1233. package/lib/plugin/internal/load/declaresHostInputReads.js.map +1 -0
  1234. package/lib/plugin/internal/load/hasProjectPluginEntries.d.ts +21 -0
  1235. package/lib/plugin/internal/load/hasProjectPluginEntries.js +29 -0
  1236. package/lib/plugin/internal/load/hasProjectPluginEntries.js.map +1 -0
  1237. package/lib/plugin/internal/load/hashHostInputPaths.d.ts +17 -0
  1238. package/lib/plugin/internal/load/hashHostInputPaths.js +46 -0
  1239. package/lib/plugin/internal/load/hashHostInputPaths.js.map +1 -0
  1240. package/lib/plugin/internal/load/isRelativePluginSpecifier.d.ts +22 -0
  1241. package/lib/plugin/internal/load/isRelativePluginSpecifier.js +33 -0
  1242. package/lib/plugin/internal/load/isRelativePluginSpecifier.js.map +1 -0
  1243. package/lib/plugin/internal/load/loadProjectPlugins.d.ts +112 -0
  1244. package/lib/plugin/internal/load/loadProjectPlugins.js +1640 -0
  1245. package/lib/plugin/internal/load/loadProjectPlugins.js.map +1 -0
  1246. package/lib/plugin/internal/load/moduleResolutionBaseSelects.d.ts +42 -0
  1247. package/lib/plugin/internal/load/moduleResolutionBaseSelects.js +51 -0
  1248. package/lib/plugin/internal/load/moduleResolutionBaseSelects.js.map +1 -0
  1249. package/lib/plugin/internal/load/observeImportSearchRoots.d.ts +29 -0
  1250. package/lib/plugin/internal/load/observeImportSearchRoots.js +38 -0
  1251. package/lib/plugin/internal/load/observeImportSearchRoots.js.map +1 -0
  1252. package/lib/plugin/internal/load/pluginLabel.d.ts +15 -0
  1253. package/lib/plugin/internal/load/pluginLabel.js +25 -0
  1254. package/lib/plugin/internal/load/pluginLabel.js.map +1 -0
  1255. package/lib/plugin/internal/load/realpathHostInput.d.ts +14 -0
  1256. package/lib/plugin/internal/load/realpathHostInput.js +29 -0
  1257. package/lib/plugin/internal/load/realpathHostInput.js.map +1 -0
  1258. package/lib/plugin/internal/load/realpathHostInputPaths.d.ts +17 -0
  1259. package/lib/plugin/internal/load/realpathHostInputPaths.js +28 -0
  1260. package/lib/plugin/internal/load/realpathHostInputPaths.js.map +1 -0
  1261. package/lib/plugin/internal/load/rejectJsTransformFunctions.d.ts +13 -0
  1262. package/lib/plugin/internal/load/rejectJsTransformFunctions.js +22 -0
  1263. package/lib/plugin/internal/load/rejectJsTransformFunctions.js.map +1 -0
  1264. package/lib/plugin/internal/load/requirePluginSource.d.ts +14 -0
  1265. package/lib/plugin/internal/load/requirePluginSource.js +38 -0
  1266. package/lib/plugin/internal/load/requirePluginSource.js.map +1 -0
  1267. package/lib/plugin/internal/load/resolveNativeSource.d.ts +29 -0
  1268. package/lib/plugin/internal/load/resolveNativeSource.js +37 -0
  1269. package/lib/plugin/internal/load/resolveNativeSource.js.map +1 -0
  1270. package/lib/plugin/internal/load/validatePluginContributors.d.ts +22 -0
  1271. package/lib/plugin/internal/load/validatePluginContributors.js +86 -0
  1272. package/lib/plugin/internal/load/validatePluginContributors.js.map +1 -0
  1273. package/lib/plugin/internal/load/validatePluginSource.d.ts +14 -0
  1274. package/lib/plugin/internal/load/validatePluginSource.js +21 -0
  1275. package/lib/plugin/internal/load/validatePluginSource.js.map +1 -0
  1276. package/lib/plugin/internal/load/visitImportMappedCandidates.d.ts +36 -0
  1277. package/lib/plugin/internal/load/visitImportMappedCandidates.js +45 -0
  1278. package/lib/plugin/internal/load/visitImportMappedCandidates.js.map +1 -0
  1279. package/lib/plugin/internal/pluginDescriptorFailureReason.d.ts +23 -0
  1280. package/lib/plugin/internal/pluginDescriptorFailureReason.js +43 -0
  1281. package/lib/plugin/internal/pluginDescriptorFailureReason.js.map +1 -0
  1282. package/lib/plugin/internal/pluginDescriptorProcessFailure.d.ts +28 -0
  1283. package/lib/plugin/internal/pluginDescriptorProcessFailure.js +37 -0
  1284. package/lib/plugin/internal/pluginDescriptorProcessFailure.js.map +1 -0
  1285. package/lib/plugin/internal/readCapabilityResolution.d.ts +42 -0
  1286. package/lib/plugin/internal/readCapabilityResolution.js +158 -0
  1287. package/lib/plugin/internal/readCapabilityResolution.js.map +1 -0
  1288. package/lib/plugin/internal/receiveCapabilityFailure.d.ts +21 -0
  1289. package/lib/plugin/internal/receiveCapabilityFailure.js +28 -0
  1290. package/lib/plugin/internal/receiveCapabilityFailure.js.map +1 -0
  1291. package/lib/plugin/internal/source/CachePrunePolicy.d.ts +42 -0
  1292. package/lib/plugin/internal/source/CachePrunePolicy.js +47 -0
  1293. package/lib/plugin/internal/source/CachePrunePolicy.js.map +1 -0
  1294. package/lib/plugin/internal/source/GoBuildCacheCoordination.d.ts +159 -0
  1295. package/lib/plugin/internal/source/GoBuildCacheCoordination.js +475 -0
  1296. package/lib/plugin/internal/source/GoBuildCacheCoordination.js.map +1 -0
  1297. package/lib/plugin/internal/source/GoEnvironmentReading.d.ts +42 -0
  1298. package/lib/plugin/internal/source/GoEnvironmentReading.js +110 -0
  1299. package/lib/plugin/internal/source/GoEnvironmentReading.js.map +1 -0
  1300. package/lib/plugin/internal/source/GoSourceInputs.d.ts +124 -0
  1301. package/lib/plugin/internal/source/GoSourceInputs.js +180 -0
  1302. package/lib/plugin/internal/source/GoSourceInputs.js.map +1 -0
  1303. package/lib/plugin/internal/source/GoToolResolution.d.ts +125 -0
  1304. package/lib/plugin/internal/source/GoToolResolution.js +278 -0
  1305. package/lib/plugin/internal/source/GoToolResolution.js.map +1 -0
  1306. package/lib/plugin/internal/source/IGoBuildCachePruneOptions.d.ts +30 -0
  1307. package/lib/plugin/internal/source/IGoBuildCachePruneOptions.js +3 -0
  1308. package/lib/plugin/internal/source/IGoBuildCachePruneOptions.js.map +1 -0
  1309. package/lib/plugin/internal/source/IPluginCachePruneOptions.d.ts +33 -0
  1310. package/lib/plugin/internal/source/IPluginCachePruneOptions.js +3 -0
  1311. package/lib/plugin/internal/source/IPluginCachePruneOptions.js.map +1 -0
  1312. package/lib/plugin/internal/source/IPluginModuleReplaceDirectory.d.ts +27 -0
  1313. package/lib/plugin/internal/source/IPluginModuleReplaceDirectory.js +3 -0
  1314. package/lib/plugin/internal/source/IPluginModuleReplaceDirectory.js.map +1 -0
  1315. package/lib/plugin/internal/source/ITtscBuildContributor.d.ts +18 -0
  1316. package/lib/plugin/internal/source/ITtscBuildContributor.js +3 -0
  1317. package/lib/plugin/internal/source/ITtscBuildContributor.js.map +1 -0
  1318. package/lib/plugin/internal/source/ITtscSourceBuildCachePaths.d.ts +25 -0
  1319. package/lib/plugin/internal/source/ITtscSourceBuildCachePaths.js +3 -0
  1320. package/lib/plugin/internal/source/ITtscSourceBuildCachePaths.js.map +1 -0
  1321. package/lib/plugin/internal/source/NativeSourcePackages.d.ts +155 -0
  1322. package/lib/plugin/internal/source/NativeSourcePackages.js +330 -0
  1323. package/lib/plugin/internal/source/NativeSourcePackages.js.map +1 -0
  1324. package/lib/plugin/internal/source/PluginBinaryUse.d.ts +66 -0
  1325. package/lib/plugin/internal/source/PluginBinaryUse.js +163 -0
  1326. package/lib/plugin/internal/source/PluginBinaryUse.js.map +1 -0
  1327. package/lib/plugin/internal/source/PluginBinaryWaitResult.d.ts +34 -0
  1328. package/lib/plugin/internal/source/PluginBinaryWaitResult.js +3 -0
  1329. package/lib/plugin/internal/source/PluginBinaryWaitResult.js.map +1 -0
  1330. package/lib/plugin/internal/source/PluginBuildEnvironmentReadings.d.ts +111 -0
  1331. package/lib/plugin/internal/source/PluginBuildEnvironmentReadings.js +243 -0
  1332. package/lib/plugin/internal/source/PluginBuildEnvironmentReadings.js.map +1 -0
  1333. package/lib/plugin/internal/source/PluginBuildEnvironmentWitness.d.ts +130 -0
  1334. package/lib/plugin/internal/source/PluginBuildEnvironmentWitness.js +215 -0
  1335. package/lib/plugin/internal/source/PluginBuildEnvironmentWitness.js.map +1 -0
  1336. package/lib/plugin/internal/source/PluginBuildLockFence.d.ts +25 -0
  1337. package/lib/plugin/internal/source/PluginBuildLockFence.js +3 -0
  1338. package/lib/plugin/internal/source/PluginBuildLockFence.js.map +1 -0
  1339. package/lib/plugin/internal/source/PluginBuildLockLease.d.ts +29 -0
  1340. package/lib/plugin/internal/source/PluginBuildLockLease.js +3 -0
  1341. package/lib/plugin/internal/source/PluginBuildLockLease.js.map +1 -0
  1342. package/lib/plugin/internal/source/PluginBuildLockObservation.d.ts +42 -0
  1343. package/lib/plugin/internal/source/PluginBuildLockObservation.js +3 -0
  1344. package/lib/plugin/internal/source/PluginBuildLockObservation.js.map +1 -0
  1345. package/lib/plugin/internal/source/PluginBuildLockOwner.d.ts +126 -0
  1346. package/lib/plugin/internal/source/PluginBuildLockOwner.js +165 -0
  1347. package/lib/plugin/internal/source/PluginBuildLockOwner.js.map +1 -0
  1348. package/lib/plugin/internal/source/PluginBuildLockProtocol.d.ts +234 -0
  1349. package/lib/plugin/internal/source/PluginBuildLockProtocol.js +287 -0
  1350. package/lib/plugin/internal/source/PluginBuildLockProtocol.js.map +1 -0
  1351. package/lib/plugin/internal/source/SourceBuildCacheLayout.d.ts +183 -0
  1352. package/lib/plugin/internal/source/SourceBuildCacheLayout.js +291 -0
  1353. package/lib/plugin/internal/source/SourceBuildCacheLayout.js.map +1 -0
  1354. package/lib/plugin/internal/source/SourceBuildFilesystemOperations.d.ts +32 -0
  1355. package/lib/plugin/internal/source/SourceBuildFilesystemOperations.js +3 -0
  1356. package/lib/plugin/internal/source/SourceBuildFilesystemOperations.js.map +1 -0
  1357. package/lib/plugin/internal/source/SourcePluginAdmission.d.ts +80 -0
  1358. package/lib/plugin/internal/source/SourcePluginAdmission.js +114 -0
  1359. package/lib/plugin/internal/source/SourcePluginAdmission.js.map +1 -0
  1360. package/lib/plugin/internal/source/SourcePluginWorkspace.d.ts +153 -0
  1361. package/lib/plugin/internal/source/SourcePluginWorkspace.js +394 -0
  1362. package/lib/plugin/internal/source/SourcePluginWorkspace.js.map +1 -0
  1363. package/lib/plugin/internal/source/acquirePluginBuildLock.d.ts +35 -0
  1364. package/lib/plugin/internal/source/acquirePluginBuildLock.js +176 -0
  1365. package/lib/plugin/internal/source/acquirePluginBuildLock.js.map +1 -0
  1366. package/lib/plugin/internal/source/autoQuoteGoModToken.d.ts +24 -0
  1367. package/lib/plugin/internal/source/autoQuoteGoModToken.js +110 -0
  1368. package/lib/plugin/internal/source/autoQuoteGoModToken.js.map +1 -0
  1369. package/lib/plugin/internal/source/buildSourcePlugin.d.ts +89 -0
  1370. package/lib/plugin/internal/source/buildSourcePlugin.js +862 -0
  1371. package/lib/plugin/internal/source/buildSourcePlugin.js.map +1 -0
  1372. package/lib/plugin/internal/source/collectPluginSourceDirectories.d.ts +30 -0
  1373. package/lib/plugin/internal/source/collectPluginSourceDirectories.js +77 -0
  1374. package/lib/plugin/internal/source/collectPluginSourceDirectories.js.map +1 -0
  1375. package/lib/plugin/internal/source/collectPluginSourceFiles.d.ts +40 -0
  1376. package/lib/plugin/internal/source/collectPluginSourceFiles.js +95 -0
  1377. package/lib/plugin/internal/source/collectPluginSourceFiles.js.map +1 -0
  1378. package/lib/plugin/internal/source/computeCacheKey.d.ts +75 -0
  1379. package/lib/plugin/internal/source/computeCacheKey.js +122 -0
  1380. package/lib/plugin/internal/source/computeCacheKey.js.map +1 -0
  1381. package/lib/plugin/internal/source/copiesPluginSourceEntry.d.ts +33 -0
  1382. package/lib/plugin/internal/source/copiesPluginSourceEntry.js +57 -0
  1383. package/lib/plugin/internal/source/copiesPluginSourceEntry.js.map +1 -0
  1384. package/lib/plugin/internal/source/createExternalSourceSnapshotLayout.d.ts +22 -0
  1385. package/lib/plugin/internal/source/createExternalSourceSnapshotLayout.js +60 -0
  1386. package/lib/plugin/internal/source/createExternalSourceSnapshotLayout.js.map +1 -0
  1387. package/lib/plugin/internal/source/ensureExecutableGoToolchain.d.ts +25 -0
  1388. package/lib/plugin/internal/source/ensureExecutableGoToolchain.js +96 -0
  1389. package/lib/plugin/internal/source/ensureExecutableGoToolchain.js.map +1 -0
  1390. package/lib/plugin/internal/source/formatDuration.d.ts +18 -0
  1391. package/lib/plugin/internal/source/formatDuration.js +36 -0
  1392. package/lib/plugin/internal/source/formatDuration.js.map +1 -0
  1393. package/lib/plugin/internal/source/formatGoWorkPath.d.ts +35 -0
  1394. package/lib/plugin/internal/source/formatGoWorkPath.js +42 -0
  1395. package/lib/plugin/internal/source/formatGoWorkPath.js.map +1 -0
  1396. package/lib/plugin/internal/source/hashPluginBuildEnvironment.d.ts +47 -0
  1397. package/lib/plugin/internal/source/hashPluginBuildEnvironment.js +597 -0
  1398. package/lib/plugin/internal/source/hashPluginBuildEnvironment.js.map +1 -0
  1399. package/lib/plugin/internal/source/inspectPluginBuildLock.d.ts +29 -0
  1400. package/lib/plugin/internal/source/inspectPluginBuildLock.js +285 -0
  1401. package/lib/plugin/internal/source/inspectPluginBuildLock.js.map +1 -0
  1402. package/lib/plugin/internal/source/isPathWithin.d.ts +16 -0
  1403. package/lib/plugin/internal/source/isPathWithin.js +28 -0
  1404. package/lib/plugin/internal/source/isPathWithin.js.map +1 -0
  1405. package/lib/plugin/internal/source/legacyGlobalCacheTargets.d.ts +24 -0
  1406. package/lib/plugin/internal/source/legacyGlobalCacheTargets.js +60 -0
  1407. package/lib/plugin/internal/source/legacyGlobalCacheTargets.js.map +1 -0
  1408. package/lib/plugin/internal/source/pluginBuildEnvironment.d.ts +31 -0
  1409. package/lib/plugin/internal/source/pluginBuildEnvironment.js +47 -0
  1410. package/lib/plugin/internal/source/pluginBuildEnvironment.js.map +1 -0
  1411. package/lib/plugin/internal/source/pluginBuildEnvironmentWorker.d.ts +1 -0
  1412. package/lib/plugin/internal/source/pluginBuildEnvironmentWorker.js +24 -0
  1413. package/lib/plugin/internal/source/pluginBuildEnvironmentWorker.js.map +1 -0
  1414. package/lib/plugin/internal/source/pluginBuildVersions.d.ts +31 -0
  1415. package/lib/plugin/internal/source/pluginBuildVersions.js +65 -0
  1416. package/lib/plugin/internal/source/pluginBuildVersions.js.map +1 -0
  1417. package/lib/plugin/internal/source/pluginModuleReplaceDirectories.d.ts +41 -0
  1418. package/lib/plugin/internal/source/pluginModuleReplaceDirectories.js +74 -0
  1419. package/lib/plugin/internal/source/pluginModuleReplaceDirectories.js.map +1 -0
  1420. package/lib/plugin/internal/source/pluginSourceCovers.d.ts +32 -0
  1421. package/lib/plugin/internal/source/pluginSourceCovers.js +54 -0
  1422. package/lib/plugin/internal/source/pluginSourceCovers.js.map +1 -0
  1423. package/lib/plugin/internal/source/pluginSourceDigest.d.ts +40 -0
  1424. package/lib/plugin/internal/source/pluginSourceDigest.js +60 -0
  1425. package/lib/plugin/internal/source/pluginSourceDigest.js.map +1 -0
  1426. package/lib/plugin/internal/source/pluginSourceFilesSignature.d.ts +38 -0
  1427. package/lib/plugin/internal/source/pluginSourceFilesSignature.js +53 -0
  1428. package/lib/plugin/internal/source/pluginSourceFilesSignature.js.map +1 -0
  1429. package/lib/plugin/internal/source/pluginSourceState.d.ts +47 -0
  1430. package/lib/plugin/internal/source/pluginSourceState.js +63 -0
  1431. package/lib/plugin/internal/source/pluginSourceState.js.map +1 -0
  1432. package/lib/plugin/internal/source/pluginSourceStateHolds.d.ts +34 -0
  1433. package/lib/plugin/internal/source/pluginSourceStateHolds.js +45 -0
  1434. package/lib/plugin/internal/source/pluginSourceStateHolds.js.map +1 -0
  1435. package/lib/plugin/internal/source/processPluginBuildEnvironment.d.ts +33 -0
  1436. package/lib/plugin/internal/source/processPluginBuildEnvironment.js +40 -0
  1437. package/lib/plugin/internal/source/processPluginBuildEnvironment.js.map +1 -0
  1438. package/lib/plugin/internal/source/pruneCacheFileRoot.d.ts +34 -0
  1439. package/lib/plugin/internal/source/pruneCacheFileRoot.js +120 -0
  1440. package/lib/plugin/internal/source/pruneCacheFileRoot.js.map +1 -0
  1441. package/lib/plugin/internal/source/pruneGoBuildCacheRoot.d.ts +28 -0
  1442. package/lib/plugin/internal/source/pruneGoBuildCacheRoot.js +185 -0
  1443. package/lib/plugin/internal/source/pruneGoBuildCacheRoot.js.map +1 -0
  1444. package/lib/plugin/internal/source/prunePluginCacheRoot.d.ts +46 -0
  1445. package/lib/plugin/internal/source/prunePluginCacheRoot.js +446 -0
  1446. package/lib/plugin/internal/source/prunePluginCacheRoot.js.map +1 -0
  1447. package/lib/plugin/internal/source/prunesPluginSourceDirectory.d.ts +21 -0
  1448. package/lib/plugin/internal/source/prunesPluginSourceDirectory.js +28 -0
  1449. package/lib/plugin/internal/source/prunesPluginSourceDirectory.js.map +1 -0
  1450. package/lib/plugin/internal/source/reclaimPluginBuildLock.d.ts +23 -0
  1451. package/lib/plugin/internal/source/reclaimPluginBuildLock.js +48 -0
  1452. package/lib/plugin/internal/source/reclaimPluginBuildLock.js.map +1 -0
  1453. package/lib/plugin/internal/source/recordCacheFileUse.d.ts +22 -0
  1454. package/lib/plugin/internal/source/recordCacheFileUse.js +43 -0
  1455. package/lib/plugin/internal/source/recordCacheFileUse.js.map +1 -0
  1456. package/lib/plugin/internal/source/releasePluginBuildLock.d.ts +33 -0
  1457. package/lib/plugin/internal/source/releasePluginBuildLock.js +100 -0
  1458. package/lib/plugin/internal/source/releasePluginBuildLock.js.map +1 -0
  1459. package/lib/plugin/internal/source/resolveCleanTargets.d.ts +26 -0
  1460. package/lib/plugin/internal/source/resolveCleanTargets.js +73 -0
  1461. package/lib/plugin/internal/source/resolveCleanTargets.js.map +1 -0
  1462. package/lib/plugin/internal/source/resolveGoCompiler.d.ts +29 -0
  1463. package/lib/plugin/internal/source/resolveGoCompiler.js +62 -0
  1464. package/lib/plugin/internal/source/resolveGoCompiler.js.map +1 -0
  1465. package/lib/plugin/internal/source/resolvePluginCacheRoot.d.ts +21 -0
  1466. package/lib/plugin/internal/source/resolvePluginCacheRoot.js +31 -0
  1467. package/lib/plugin/internal/source/resolvePluginCacheRoot.js.map +1 -0
  1468. package/lib/plugin/internal/source/resolvePluginGoModule.d.ts +34 -0
  1469. package/lib/plugin/internal/source/resolvePluginGoModule.js +65 -0
  1470. package/lib/plugin/internal/source/resolvePluginGoModule.js.map +1 -0
  1471. package/lib/plugin/internal/source/resolveSourceBuildCachePaths.d.ts +21 -0
  1472. package/lib/plugin/internal/source/resolveSourceBuildCachePaths.js +236 -0
  1473. package/lib/plugin/internal/source/resolveSourceBuildCachePaths.js.map +1 -0
  1474. package/lib/plugin/internal/source/selectPluginModuleReplaceDirectories.d.ts +29 -0
  1475. package/lib/plugin/internal/source/selectPluginModuleReplaceDirectories.js +68 -0
  1476. package/lib/plugin/internal/source/selectPluginModuleReplaceDirectories.js.map +1 -0
  1477. package/lib/plugin/internal/source/spawnGoTool.d.ts +22 -0
  1478. package/lib/plugin/internal/source/spawnGoTool.js +164 -0
  1479. package/lib/plugin/internal/source/spawnGoTool.js.map +1 -0
  1480. package/lib/plugin/internal/source/touchPluginCacheEntryInUse.d.ts +27 -0
  1481. package/lib/plugin/internal/source/touchPluginCacheEntryInUse.js +48 -0
  1482. package/lib/plugin/internal/source/touchPluginCacheEntryInUse.js.map +1 -0
  1483. package/lib/plugin/internal/source/waitForPluginBinary.d.ts +36 -0
  1484. package/lib/plugin/internal/source/waitForPluginBinary.js +94 -0
  1485. package/lib/plugin/internal/source/waitForPluginBinary.js.map +1 -0
  1486. package/lib/plugin/internal/source/windowsGoCommandArgs.d.ts +17 -0
  1487. package/lib/plugin/internal/source/windowsGoCommandArgs.js +23 -0
  1488. package/lib/plugin/internal/source/windowsGoCommandArgs.js.map +1 -0
  1489. package/lib/plugin/internal/source/withGoBuildCacheLease.d.ts +37 -0
  1490. package/lib/plugin/internal/source/withGoBuildCacheLease.js +87 -0
  1491. package/lib/plugin/internal/source/withGoBuildCacheLease.js.map +1 -0
  1492. package/lib/plugin/internal/writeCapabilityResolution.d.ts +80 -0
  1493. package/lib/plugin/internal/writeCapabilityResolution.js +196 -0
  1494. package/lib/plugin/internal/writeCapabilityResolution.js.map +1 -0
  1495. package/lib/plugin/resolveCapabilityPlugins.d.ts +53 -32
  1496. package/lib/plugin/resolveCapabilityPlugins.js +209 -38
  1497. package/lib/plugin/resolveCapabilityPlugins.js.map +1 -1
  1498. package/lib/register.js +20 -5
  1499. package/lib/register.js.map +1 -1
  1500. package/lib/structures/ITtscCompilerContext.d.ts +29 -11
  1501. package/lib/structures/ITtscCompilerDiagnostic.d.ts +24 -7
  1502. package/lib/structures/ITtscCompilerResult.d.ts +75 -25
  1503. package/lib/structures/ITtscCompilerTransformation.d.ts +287 -64
  1504. package/lib/structures/ITtscPlugin.d.ts +24 -8
  1505. package/lib/structures/ITtscPluginCapabilities.d.ts +55 -5
  1506. package/lib/structures/ITtscPluginContributor.d.ts +19 -8
  1507. package/lib/structures/ITtscPluginFactoryContext.d.ts +12 -3
  1508. package/lib/structures/ITtscProjectPluginConfig.d.ts +35 -10
  1509. package/lib/structures/TtscPluginStage.d.ts +9 -0
  1510. package/lib/structures/internal/ITtscLoadedNativePlugin.d.ts +19 -5
  1511. package/lib/structures/internal/ITtscParsedProjectConfig.d.ts +29 -3
  1512. package/lib/structures/internal/ITtscProjectIdentity.d.ts +21 -6
  1513. package/lib/structures/internal/ITtscProjectInputSnapshot.d.ts +23 -8
  1514. package/lib/structures/internal/ITtscProjectLocatorOptions.d.ts +18 -4
  1515. package/lib/structures/internal/TtscBuildOptions.d.ts +33 -14
  1516. package/lib/structures/internal/TtscBuildResult.d.ts +63 -4
  1517. package/lib/structures/internal/TtscCommonOptions.d.ts +47 -14
  1518. package/lib/structures/internal/TtscSingleFileEmitOptions.d.ts +46 -5
  1519. package/package.json +26 -12
  1520. package/shim/ast/enums_gen.go +4 -2
  1521. package/shim/ast/go.mod +5 -5
  1522. package/shim/ast/go.sum +10 -10
  1523. package/shim/ast/lint.go +1088 -20
  1524. package/shim/ast/parent.go +38 -22
  1525. package/shim/ast/safe_text.go +48 -26
  1526. package/shim/ast/shim.go +1307 -20
  1527. package/shim/ast/test/next_jsdoc_comment_location_reaches_variable_statement_test.go +51 -0
  1528. package/shim/ast/test/node_text_joins_multi_hop_qualified_name_test.go +24 -9
  1529. package/shim/ast/test/node_text_joins_one_hop_qualified_name_test.go +9 -5
  1530. package/shim/ast/test/node_text_returns_empty_for_nil_test.go +13 -5
  1531. package/shim/ast/test/node_text_returns_identifier_text_test.go +12 -5
  1532. package/shim/ast/test/node_text_skips_empty_qualified_left_test.go +35 -5
  1533. package/shim/astnav/go.mod +5 -5
  1534. package/shim/astnav/go.sum +12 -10
  1535. package/shim/astnav/shim.go +9 -0
  1536. package/shim/bundled/go.mod +7 -1
  1537. package/shim/bundled/go.sum +12 -0
  1538. package/shim/checker/enums_gen.go +4 -2
  1539. package/shim/checker/extra-shim.json +6 -0
  1540. package/shim/checker/go.mod +5 -5
  1541. package/shim/checker/go.sum +10 -10
  1542. package/shim/checker/node_builder_fields_gen.go +19 -0
  1543. package/shim/checker/shim.go +827 -114
  1544. package/shim/compiler/emit_sourcemap.go +68 -29
  1545. package/shim/compiler/emitassemble.go +36 -2
  1546. package/shim/compiler/emithook.go +13 -3
  1547. package/shim/compiler/go.mod +5 -5
  1548. package/shim/compiler/go.sum +10 -10
  1549. package/shim/compiler/incremental.go +56 -20
  1550. package/shim/compiler/resolution.go +92 -9
  1551. package/shim/core/enums_gen.go +2 -2
  1552. package/shim/core/go.mod +6 -1
  1553. package/shim/core/go.sum +10 -0
  1554. package/shim/core/modulekind.go +9 -0
  1555. package/shim/core/shim.go +157 -6
  1556. package/shim/diagnosticwriter/go.mod +10 -1
  1557. package/shim/diagnosticwriter/go.sum +20 -0
  1558. package/shim/diagnosticwriter/lint.go +188 -10
  1559. package/shim/diagnosticwriter/shim.go +14 -0
  1560. package/shim/lsp/go.mod +5 -5
  1561. package/shim/lsp/go.sum +10 -10
  1562. package/shim/lsp/shim.go +78 -2
  1563. package/shim/parser/go.mod +10 -1
  1564. package/shim/parser/go.sum +22 -0
  1565. package/shim/printer/emithost.go +46 -1
  1566. package/shim/printer/go.mod +5 -5
  1567. package/shim/printer/go.sum +10 -10
  1568. package/shim/printer/shim.go +114 -7
  1569. package/shim/printer/sourcemap.go +55 -0
  1570. package/shim/scanner/go.mod +10 -1
  1571. package/shim/scanner/go.sum +20 -0
  1572. package/shim/scanner/regexp.go +19 -4
  1573. package/shim/scanner/shim.go +3 -0
  1574. package/shim/stringutil/extra-shim.json +1 -0
  1575. package/shim/stringutil/go.mod +5 -0
  1576. package/shim/stringutil/go.sum +2 -0
  1577. package/shim/stringutil/shim.go +119 -0
  1578. package/shim/transformers/go.mod +5 -5
  1579. package/shim/transformers/go.sum +12 -10
  1580. package/shim/transformers/shim.go +12 -3
  1581. package/shim/tsoptions/command_line_raw.go +44 -0
  1582. package/shim/tsoptions/go.mod +10 -1
  1583. package/shim/tsoptions/go.sum +22 -0
  1584. package/shim/tsoptions/shim.go +1 -1
  1585. package/shim/tspath/go.mod +1 -1
  1586. package/shim/tspath/go.sum +6 -0
  1587. package/shim/vfs/cachedvfs/go.mod +3 -1
  1588. package/shim/vfs/cachedvfs/go.sum +12 -0
  1589. package/shim/vfs/decode.go +26 -0
  1590. package/shim/vfs/decode_test.go +42 -0
  1591. package/shim/vfs/go.mod +7 -1
  1592. package/shim/vfs/go.sum +12 -0
  1593. package/shim/vfs/osvfs/go.mod +7 -1
  1594. package/shim/vfs/osvfs/go.sum +12 -0
  1595. package/src/TtscCompiler.ts +223 -234
  1596. package/src/TtscService.ts +87 -31
  1597. package/src/TtscServiceRequestOptions.ts +21 -0
  1598. package/src/compiler/internal/CapturedProcessOutput.ts +69 -0
  1599. package/src/compiler/internal/CompilerArgumentsInspection.ts +184 -0
  1600. package/src/compiler/internal/EmitOwnershipIndex.ts +254 -0
  1601. package/src/compiler/internal/PrivateCompilerOutput.ts +330 -0
  1602. package/src/compiler/internal/ResidentCheckProcess.ts +445 -0
  1603. package/src/compiler/internal/ResidentCheckProcessOptions.ts +32 -0
  1604. package/src/compiler/internal/ResidentCheckRequest.ts +39 -0
  1605. package/src/compiler/internal/ResidentCheckResult.ts +24 -0
  1606. package/src/compiler/internal/ResidentCheckTelemetry.ts +36 -0
  1607. package/src/compiler/internal/ResidentReplyKind.ts +18 -0
  1608. package/src/compiler/internal/ResidentTransformProcess.ts +299 -0
  1609. package/src/compiler/internal/ResidentTransformProcessOptions.ts +30 -0
  1610. package/src/compiler/internal/ResidentTransformReply.ts +79 -0
  1611. package/src/compiler/internal/ResidentTransformRequestOptions.ts +16 -0
  1612. package/src/compiler/internal/ResidentTransformRequests.ts +198 -0
  1613. package/src/compiler/internal/StartedResidentTransform.ts +29 -0
  1614. package/src/compiler/internal/TransformProjectWorkerReply.ts +37 -0
  1615. package/src/compiler/internal/TransformProjectWorkerRequest.ts +42 -0
  1616. package/src/compiler/internal/build/BuildExecution.ts +1261 -0
  1617. package/src/compiler/internal/build/BuildTiming.ts +145 -0
  1618. package/src/compiler/internal/build/CompilerDiagnostics.ts +307 -0
  1619. package/src/compiler/internal/build/NativePluginArguments.ts +302 -0
  1620. package/src/compiler/internal/build/PassthroughFlags.ts +229 -0
  1621. package/src/compiler/internal/build/PluginFailureDiagnostics.ts +70 -0
  1622. package/src/compiler/internal/build/ResidentCheckEntryPlan.ts +42 -0
  1623. package/src/compiler/internal/build/ResidentCheckWatchChange.ts +33 -0
  1624. package/src/compiler/internal/build/ResidentCheckWatchSession.ts +501 -0
  1625. package/src/compiler/internal/build/RunBuildOptions.ts +145 -0
  1626. package/src/compiler/internal/build/TsgoArguments.ts +349 -0
  1627. package/src/compiler/internal/build/appendBuildOutput.ts +218 -0
  1628. package/src/compiler/internal/build/bufferResidentCheckEntryRequests.ts +52 -0
  1629. package/src/compiler/internal/build/createProcessDiagnostic.ts +32 -0
  1630. package/src/compiler/internal/build/isAbsoluteLocalProjectInputPath.ts +55 -0
  1631. package/src/compiler/internal/build/mergeProjectInputSnapshots.ts +147 -0
  1632. package/src/compiler/internal/build/normalizeBuildOutput.ts +89 -0
  1633. package/src/compiler/internal/build/parseProjectInputSnapshot.ts +91 -0
  1634. package/src/compiler/internal/build/planResidentCheckEntries.ts +55 -0
  1635. package/src/compiler/internal/build/privateRuntimeRootDir.ts +33 -0
  1636. package/src/compiler/internal/build/residentCheckRequest.ts +41 -0
  1637. package/src/compiler/internal/build/runBuild.ts +61 -0
  1638. package/src/compiler/internal/build/runExternalEmitProvenance.ts +566 -0
  1639. package/src/compiler/internal/build/takeResidentCheckEntryRequest.ts +31 -0
  1640. package/src/compiler/internal/buildNativeCompiler.ts +19 -2
  1641. package/src/compiler/internal/captureProcessOutput.ts +37 -39
  1642. package/src/compiler/internal/compileProjectInMemory.ts +139 -92
  1643. package/src/compiler/internal/ensureExecutable.ts +32 -0
  1644. package/src/compiler/internal/findNearestGoMod.ts +43 -0
  1645. package/src/compiler/internal/isOutsideRelativePath.ts +26 -0
  1646. package/src/compiler/internal/outputText.ts +21 -0
  1647. package/src/compiler/internal/packageRootDir.ts +43 -0
  1648. package/src/compiler/internal/parseNativeTransformOutput.ts +722 -0
  1649. package/src/compiler/internal/project/CompilerProjectSelection.ts +204 -0
  1650. package/src/compiler/internal/project/ConfigJsonText.ts +55 -0
  1651. package/src/compiler/internal/project/compilerUsesCaseSensitiveFileNames.ts +124 -0
  1652. package/src/compiler/internal/project/createNativeProjectContextArgs.ts +14 -19
  1653. package/src/compiler/internal/project/createNativeProjectContextJson.ts +28 -0
  1654. package/src/compiler/internal/project/parseJsonc.ts +318 -0
  1655. package/src/compiler/internal/project/readJsonFile.ts +34 -0
  1656. package/src/compiler/internal/project/readJsoncFile.ts +46 -0
  1657. package/src/compiler/internal/project/readProjectConfig.ts +137 -200
  1658. package/src/compiler/internal/project/resolveOwningProjectConfig.ts +278 -0
  1659. package/src/compiler/internal/project/resolveProjectConfig.ts +18 -127
  1660. package/src/compiler/internal/project/resolveProjectIdentity.ts +153 -0
  1661. package/src/compiler/internal/project/resolveTsconfigExtends.ts +175 -0
  1662. package/src/compiler/internal/project/selectReferencedProject.ts +54 -0
  1663. package/src/compiler/internal/project/tsconfigExtendsFileCandidates.ts +54 -0
  1664. package/src/compiler/internal/readEffectiveCompilerOptions.ts +126 -0
  1665. package/src/compiler/internal/resolveBinary.ts +25 -9
  1666. package/src/compiler/internal/resolveTsgo.ts +31 -11
  1667. package/src/compiler/internal/runNativeCheckWithObservations.ts +211 -0
  1668. package/src/compiler/internal/runSingleFileEmit.ts +92 -27
  1669. package/src/compiler/internal/sharedHost/SEMANTIC_CONFIG_PATH_ENV.ts +2 -0
  1670. package/src/compiler/internal/sharedHost/SidecarEnvironment.ts +151 -0
  1671. package/src/compiler/internal/sharedHost/TSGO_ARGS_CWD_ENV.ts +7 -0
  1672. package/src/compiler/internal/sharedHost/TSGO_ARGS_ENV.ts +7 -0
  1673. package/src/compiler/internal/sharedHost/assertSharedHostCompatibility.ts +48 -0
  1674. package/src/compiler/internal/sharedHost/clearInheritedSemanticConfigPath.ts +27 -0
  1675. package/src/compiler/internal/sharedHost/clearInheritedTsgoArgs.ts +41 -0
  1676. package/src/compiler/internal/sharedHost/inheritedSidecarEnv.ts +45 -0
  1677. package/src/compiler/internal/sharedHost/isLinkedTransform.ts +19 -0
  1678. package/src/compiler/internal/sharedHost/linkedTransformPlugins.ts +25 -0
  1679. package/src/compiler/internal/sharedHost/publishLinkedTransformPlugins.ts +42 -0
  1680. package/src/compiler/internal/sharedHost/resolvePluginConfigDir.ts +33 -0
  1681. package/src/compiler/internal/sharedHost/selectSharedHostPlugin.ts +35 -0
  1682. package/src/compiler/internal/spawnNative.ts +16 -39
  1683. package/src/compiler/internal/startResidentTransform.ts +66 -53
  1684. package/src/compiler/internal/transformProjectInMemory.ts +347 -635
  1685. package/src/compiler/internal/transformProjectInWorker.ts +170 -0
  1686. package/src/compiler/internal/transformProjectWorker.ts +43 -0
  1687. package/src/flags/AnySubcommand.ts +19 -0
  1688. package/src/flags/COMPILER_ENUM_WHITESPACE.ts +35 -0
  1689. package/src/flags/COMPILER_OPTIONS.ts +512 -0
  1690. package/src/flags/COMPILER_OPTION_ASCII_FOLDS.ts +13 -0
  1691. package/src/flags/COMPILER_OPTION_KINDS.ts +14 -0
  1692. package/src/flags/CompilerOptionSpec.ts +30 -0
  1693. package/src/flags/FLAG_BY_TOKEN.ts +40 -0
  1694. package/src/flags/{schema.ts → FLAG_SCHEMA.ts} +43 -318
  1695. package/src/flags/FlagKind.ts +22 -0
  1696. package/src/flags/FlagLayer.ts +24 -0
  1697. package/src/flags/FlagSpec.ts +118 -0
  1698. package/src/flags/ParseOptions.ts +103 -0
  1699. package/src/flags/ParseResult.ts +44 -0
  1700. package/src/flags/TtscSubcommand.ts +22 -0
  1701. package/src/flags/TtsxSubcommand.ts +13 -0
  1702. package/src/flags/ValueValidator.ts +14 -0
  1703. package/src/flags/buildGoAllowList.ts +43 -0
  1704. package/src/flags/flagsForSubcommand.ts +22 -0
  1705. package/src/flags/getBoolean.ts +27 -0
  1706. package/src/flags/getNumber.ts +24 -0
  1707. package/src/flags/getString.ts +24 -0
  1708. package/src/flags/getStringList.ts +24 -0
  1709. package/src/flags/normalizeCompilerEnumValue.ts +41 -0
  1710. package/src/flags/normalizeFlagToken.ts +38 -0
  1711. package/src/flags/parseFlags.ts +371 -0
  1712. package/src/flags/readCompilerOptionOccurrence.ts +107 -0
  1713. package/src/flags/readCompilerOptionValues.ts +68 -0
  1714. package/src/flags/resolveFlagSpec.ts +29 -0
  1715. package/src/index.ts +9 -3
  1716. package/src/internal/CanonicalTempDirectoryOperations.ts +73 -0
  1717. package/src/internal/CompilerContextSnapshot.ts +139 -0
  1718. package/src/internal/CompilerResultAdapter.ts +320 -0
  1719. package/src/internal/E2ETrace.ts +674 -0
  1720. package/src/internal/IJavaScriptRuntimeCapabilities.ts +50 -0
  1721. package/src/internal/OwnedNativeProcess.ts +417 -0
  1722. package/src/internal/OwnedSynchronousProcess.ts +220 -0
  1723. package/src/internal/RetireLockDirectoryOperations.ts +81 -0
  1724. package/src/internal/SafeCacheCleanupTarget.ts +41 -0
  1725. package/src/internal/SourceNativeRetirement.ts +1109 -0
  1726. package/src/internal/SpawnSyncOutputFiles.ts +29 -0
  1727. package/src/internal/cacheEntryExists.ts +24 -0
  1728. package/src/internal/createCanonicalTempDirectory.ts +35 -18
  1729. package/src/internal/isContendedCandidateRename.ts +35 -0
  1730. package/src/internal/isSpawnSyncFdExhaustion.ts +19 -0
  1731. package/src/internal/javascriptRuntimeCapabilities.ts +166 -0
  1732. package/src/internal/nativeBinary.ts +11 -0
  1733. package/src/internal/parseWindowsDirectoryCaseSensitivity.ts +50 -0
  1734. package/src/internal/pathIdentity/FilesystemPathIdentity.ts +44 -0
  1735. package/src/internal/pathIdentity/FilesystemPathIdentityContext.ts +182 -0
  1736. package/src/internal/pathIdentity/FilesystemPathIdentityOperations.ts +106 -0
  1737. package/src/internal/pathIdentity/ProjectInputPathIdentity.ts +21 -0
  1738. package/src/internal/pathIdentity/ProjectInputPathIdentityContext.ts +21 -0
  1739. package/src/internal/pathIdentity/ProjectInputPathIdentityOperations.ts +22 -0
  1740. package/src/internal/pathIdentity/createFilesystemPathIdentityContext.ts +437 -0
  1741. package/src/internal/pathIdentity/createProjectInputPathIdentityContext.ts +34 -0
  1742. package/src/internal/pathIdentity/isFilesystemPathIdentityWithin.ts +32 -0
  1743. package/src/internal/pathIdentity/isProjectInputPathIdentityWithin.ts +22 -0
  1744. package/src/internal/pathIdentity/resolveFilesystemPath.ts +43 -0
  1745. package/src/internal/pathIdentity/resolvePhysicalPath.ts +31 -0
  1746. package/src/internal/pathIdentity/resolveProjectInputPath.ts +18 -0
  1747. package/src/internal/pluginSource.ts +26 -0
  1748. package/src/internal/projectInputPathIdentity.ts +26 -387
  1749. package/src/internal/resolveNodeBinary.ts +13 -165
  1750. package/src/internal/resolveSafeCacheCleanupTargets.ts +51 -19
  1751. package/src/internal/restoreCompilerError.ts +175 -0
  1752. package/src/internal/retireLockDirectory.ts +166 -0
  1753. package/src/internal/runHoldingLock.ts +55 -0
  1754. package/src/internal/runtimeExecutableIdentity.ts +212 -0
  1755. package/src/internal/serializeCompilerError.ts +145 -0
  1756. package/src/internal/spawnSyncResilient.ts +36 -182
  1757. package/src/internal/spawnSyncWithLowDescriptors.ts +227 -0
  1758. package/src/internal/tsconfig.ts +16 -0
  1759. package/src/launcher/internal/PendingResidentCheckWatchChanges.ts +94 -0
  1760. package/src/launcher/internal/TtscBuildMode.ts +14 -0
  1761. package/src/launcher/internal/TtsxEntryOptions.ts +92 -0
  1762. package/src/launcher/internal/assertNoSolutionBuild.ts +17 -10
  1763. package/src/launcher/internal/assertTtsxNoWatch.ts +49 -0
  1764. package/src/launcher/internal/buildSingleRootProject.ts +303 -0
  1765. package/src/launcher/internal/getCompilerVersionText.ts +20 -5
  1766. package/src/launcher/internal/inlineServedSourceMap.ts +294 -0
  1767. package/src/launcher/internal/linkVirtualEntry.ts +88 -0
  1768. package/src/launcher/internal/{commonJsExportMetadata.ts → parseCommonJsExports.ts} +12 -2
  1769. package/src/launcher/internal/parseTtscBuildArgs.ts +103 -0
  1770. package/src/launcher/internal/parseTtsxCLI.ts +183 -0
  1771. package/src/launcher/internal/prepareExecution.ts +474 -362
  1772. package/src/launcher/internal/prepareTtscBuildMode.ts +64 -0
  1773. package/src/launcher/internal/resolveCacheDir.ts +12 -3
  1774. package/src/launcher/internal/resolveSingleFileOutput.ts +145 -0
  1775. package/src/launcher/internal/resolveTtscserverBinary.ts +20 -5
  1776. package/src/launcher/internal/runTtsc.ts +394 -326
  1777. package/src/launcher/internal/runTtsx.ts +349 -151
  1778. package/src/launcher/internal/runtime/CommonJsRuntimeSource.ts +365 -0
  1779. package/src/launcher/internal/runtime/DependencyBuildAdmission.ts +159 -0
  1780. package/src/launcher/internal/runtime/DependencyBuildGeneration.ts +236 -0
  1781. package/src/launcher/internal/runtime/DependencyBuildLockFence.ts +22 -0
  1782. package/src/launcher/internal/runtime/DependencyBuildLockLease.ts +22 -0
  1783. package/src/launcher/internal/runtime/DependencyBuildLockObservation.ts +49 -0
  1784. package/src/launcher/internal/runtime/DependencyBuildLockProtocol.ts +137 -0
  1785. package/src/launcher/internal/runtime/OwnedProjectSource.ts +140 -0
  1786. package/src/launcher/internal/runtime/OwningModuleOptions.ts +22 -0
  1787. package/src/launcher/internal/runtime/PluginDescriptorInputObservation.ts +112 -0
  1788. package/src/launcher/internal/runtime/ProcessOwnedDirectory.ts +325 -0
  1789. package/src/launcher/internal/runtime/ResolveResult.ts +26 -0
  1790. package/src/launcher/internal/runtime/RuntimeEmitProvenance.ts +58 -0
  1791. package/src/launcher/internal/runtime/RuntimeEntryPreparer.ts +23 -0
  1792. package/src/launcher/internal/runtime/RuntimeFilesystem.ts +64 -0
  1793. package/src/launcher/internal/runtime/RuntimeHookOptions.ts +23 -0
  1794. package/src/launcher/internal/runtime/RuntimeIsolatedEmit.ts +88 -0
  1795. package/src/launcher/internal/runtime/RuntimeLoaderCapabilities.ts +256 -0
  1796. package/src/launcher/internal/runtime/RuntimeManifest.ts +77 -0
  1797. package/src/launcher/internal/runtime/RuntimeManifestRegistry.ts +309 -0
  1798. package/src/launcher/internal/runtime/RuntimeModuleFormat.ts +275 -0
  1799. package/src/launcher/internal/runtime/RuntimeProjectOwnership.ts +139 -0
  1800. package/src/launcher/internal/runtime/TTSX_MINIMUM_NODE_VERSION.ts +11 -0
  1801. package/src/launcher/internal/runtime/acquireDependencyBuildLock.ts +97 -0
  1802. package/src/launcher/internal/runtime/checkNodeRuntimeSupport.ts +94 -0
  1803. package/src/launcher/internal/runtime/claimRuntimeProjectDirectory.ts +54 -0
  1804. package/src/launcher/internal/runtime/commonJsExportNames.ts +57 -0
  1805. package/src/launcher/internal/runtime/commonJsImportFacade.ts +62 -0
  1806. package/src/launcher/internal/runtime/dependencyCacheKey.ts +82 -0
  1807. package/src/launcher/internal/runtime/dependencyCacheRoot.ts +112 -0
  1808. package/src/launcher/internal/runtime/inspectDependencyBuildLock.ts +162 -0
  1809. package/src/launcher/internal/runtime/installRuntimeHooks.ts +2442 -0
  1810. package/src/launcher/internal/runtime/interopProbe.ts +8 -0
  1811. package/src/launcher/internal/runtime/isLocalProcessGone.ts +67 -0
  1812. package/src/launcher/internal/runtime/observeMappedDescriptorResolution.ts +74 -0
  1813. package/src/launcher/internal/runtime/projectModuleOptions.ts +28 -0
  1814. package/src/launcher/internal/runtime/readDependencyCache.ts +89 -0
  1815. package/src/launcher/internal/runtime/realPath.ts +30 -0
  1816. package/src/launcher/internal/runtime/reclaimDependencyBuildLock.ts +27 -0
  1817. package/src/launcher/internal/runtime/releaseDependencyBuildLock.ts +27 -0
  1818. package/src/launcher/internal/runtime/resolveRuntimeCleanTargets.ts +93 -0
  1819. package/src/launcher/internal/runtime/restoreStrippedNodeBuiltinScheme.ts +32 -0
  1820. package/src/launcher/internal/runtime/runtimeRunKey.ts +31 -0
  1821. package/src/launcher/internal/runtime/selectRuntimePluginPolicy.ts +28 -0
  1822. package/src/launcher/internal/runtime/withRuntimeDirectoryLock.ts +92 -0
  1823. package/src/launcher/internal/runtimeCompilerArgs.ts +91 -62
  1824. package/src/launcher/internal/runtimeEmitProfile.ts +70 -0
  1825. package/src/launcher/internal/runtimeHookPreload.ts +3 -3
  1826. package/src/launcher/internal/runtimeOwnerPreload.ts +43 -0
  1827. package/src/launcher/internal/singleRootProjectConfig.ts +38 -0
  1828. package/src/launcher/internal/ttscserver/ILSPPluginSelectionInputs.ts +65 -0
  1829. package/src/launcher/internal/ttscserver/LSPProjectInputDigest.ts +331 -0
  1830. package/src/launcher/internal/ttscserver/captureLSPPluginSelectionInputs.ts +107 -0
  1831. package/src/launcher/internal/ttscserver/fingerprintInitialLSPProjectInputSnapshot.ts +41 -0
  1832. package/src/launcher/internal/ttscserver/initialLSPProjectInputSnapshotIsCurrent.ts +36 -0
  1833. package/src/launcher/internal/ttscserver/materializeLSPPluginManifest.ts +60 -0
  1834. package/src/launcher/internal/ttscserver/needsStdio.ts +32 -0
  1835. package/src/launcher/internal/ttscserver/runTtscserver.ts +592 -0
  1836. package/src/launcher/internal/watch/CompilerDirectoryWatchEventPlan.ts +31 -0
  1837. package/src/launcher/internal/watch/DirectoryWatcher.ts +45 -0
  1838. package/src/launcher/internal/watch/FseventsStreams.ts +303 -0
  1839. package/src/launcher/internal/watch/ProjectInputWatchRules.ts +179 -0
  1840. package/src/launcher/internal/watch/WatchInputChange.ts +31 -0
  1841. package/src/launcher/internal/watch/WatchPaths.ts +156 -0
  1842. package/src/launcher/internal/{watchTopology.ts → watch/WatchTopology.ts} +867 -962
  1843. package/src/launcher/internal/watch/literalGlobRoot.ts +40 -0
  1844. package/src/launcher/internal/watch/planCompilerDirectoryWatchEvent.ts +83 -0
  1845. package/src/launcher/internal/watch/projectInputActiveWatchDirectories.ts +47 -0
  1846. package/src/launcher/internal/watch/projectInputAvailableWatchDirectory.ts +56 -0
  1847. package/src/launcher/internal/watch/projectInputEventShouldNotify.ts +23 -0
  1848. package/src/launcher/internal/watch/projectInputMembershipInvalidatesProgram.ts +63 -0
  1849. package/src/launcher/internal/watch/projectInputReloadEventShouldNotify.ts +127 -0
  1850. package/src/launcher/internal/watch/projectInputReplacementStrandsWatchers.ts +57 -0
  1851. package/src/launcher/internal/watch/projectInputTopologyMayAffect.ts +73 -0
  1852. package/src/launcher/internal/watch/projectInputWatchDirectories.ts +33 -0
  1853. package/src/launcher/internal/watch/reloadInputsForFailedTopologyRefresh.ts +49 -0
  1854. package/src/launcher/internal/watch/syncWatchers.ts +64 -0
  1855. package/src/launcher/internal/watch/watchDirectory.ts +53 -0
  1856. package/src/launcher/internal/watch/watchDirectoryThroughFsWatch.ts +47 -0
  1857. package/src/launcher/ttscserver.ts +1 -1
  1858. package/src/launcher/ttsx.ts +2 -3
  1859. package/src/plugin/CapabilityPluginResolver.ts +549 -0
  1860. package/src/plugin/ITtscCapabilityPlugin.ts +93 -0
  1861. package/src/plugin/internal/CapabilityPluginResult.ts +99 -0
  1862. package/src/plugin/internal/CapabilityResolutionFormat.ts +248 -0
  1863. package/src/plugin/internal/ITtscCapabilityPluginSource.ts +37 -0
  1864. package/src/plugin/internal/ITtscCapabilityResolutionEntry.ts +57 -0
  1865. package/src/plugin/internal/ITtscCapabilityResolutionPlugin.ts +22 -0
  1866. package/src/plugin/internal/capabilityPluginWorker.ts +216 -0
  1867. package/src/plugin/internal/decodeCapabilityCommandReply.ts +27 -0
  1868. package/src/plugin/internal/load/COMMONJS_PLUGIN_DESCRIPTOR_SHIM_SOURCE.ts +182 -0
  1869. package/src/plugin/internal/load/PLUGIN_DESCRIPTOR_SHIM_SOURCE.ts +59 -0
  1870. package/src/plugin/internal/load/PluginDescriptorAdmission.ts +75 -0
  1871. package/src/plugin/internal/load/PluginDescriptorEvaluationCache.ts +432 -0
  1872. package/src/plugin/internal/load/PluginPackageResolution.ts +711 -0
  1873. package/src/plugin/internal/load/ProjectPluginEntries.ts +232 -0
  1874. package/src/plugin/internal/load/RESOLUTION_INPUT_RECORDER_PATH.ts +34 -0
  1875. package/src/plugin/internal/load/collectProjectHostInputs.ts +88 -0
  1876. package/src/plugin/internal/load/composePluginSources.ts +121 -0
  1877. package/src/plugin/internal/load/declaresHostInputReads.ts +52 -0
  1878. package/src/plugin/internal/load/hasProjectPluginEntries.ts +33 -0
  1879. package/src/plugin/internal/load/hashHostInputPaths.ts +44 -0
  1880. package/src/plugin/internal/load/isRelativePluginSpecifier.ts +31 -0
  1881. package/src/plugin/internal/load/loadProjectPlugins.ts +2334 -0
  1882. package/src/plugin/internal/load/moduleResolutionBaseSelects.ts +59 -0
  1883. package/src/plugin/internal/load/observeImportSearchRoots.ts +42 -0
  1884. package/src/plugin/internal/load/pluginLabel.ts +28 -0
  1885. package/src/plugin/internal/load/realpathHostInput.ts +22 -0
  1886. package/src/plugin/internal/load/realpathHostInputPaths.ts +27 -0
  1887. package/src/plugin/internal/load/rejectJsTransformFunctions.ts +23 -0
  1888. package/src/plugin/internal/load/requirePluginSource.ts +34 -0
  1889. package/src/plugin/internal/load/resolveNativeSource.ts +42 -0
  1890. package/src/plugin/internal/load/validatePluginContributors.ts +102 -0
  1891. package/src/plugin/internal/load/validatePluginSource.ts +19 -0
  1892. package/src/plugin/internal/load/visitImportMappedCandidates.ts +63 -0
  1893. package/src/plugin/internal/pluginDescriptorFailureReason.ts +35 -0
  1894. package/src/plugin/internal/pluginDescriptorProcessFailure.ts +48 -0
  1895. package/src/plugin/internal/readCapabilityResolution.ts +193 -0
  1896. package/src/plugin/internal/receiveCapabilityFailure.ts +27 -0
  1897. package/src/plugin/internal/source/CachePrunePolicy.ts +47 -0
  1898. package/src/plugin/internal/source/GoBuildCacheCoordination.ts +588 -0
  1899. package/src/plugin/internal/source/GoEnvironmentReading.ts +109 -0
  1900. package/src/plugin/internal/source/GoSourceInputs.ts +182 -0
  1901. package/src/plugin/internal/source/GoToolResolution.ts +312 -0
  1902. package/src/plugin/internal/source/IGoBuildCachePruneOptions.ts +34 -0
  1903. package/src/plugin/internal/source/IPluginCachePruneOptions.ts +38 -0
  1904. package/src/plugin/internal/source/IPluginModuleReplaceDirectory.ts +30 -0
  1905. package/src/plugin/internal/source/ITtscBuildContributor.ts +19 -0
  1906. package/src/plugin/internal/source/ITtscSourceBuildCachePaths.ts +28 -0
  1907. package/src/plugin/internal/source/NativeSourcePackages.ts +428 -0
  1908. package/src/plugin/internal/source/PluginBinaryUse.ts +159 -0
  1909. package/src/plugin/internal/source/PluginBinaryWaitResult.ts +34 -0
  1910. package/src/plugin/internal/source/PluginBuildEnvironmentReadings.ts +273 -0
  1911. package/src/plugin/internal/source/PluginBuildEnvironmentWitness.ts +243 -0
  1912. package/src/plugin/internal/source/PluginBuildLockFence.ts +26 -0
  1913. package/src/plugin/internal/source/PluginBuildLockLease.ts +31 -0
  1914. package/src/plugin/internal/source/PluginBuildLockObservation.ts +48 -0
  1915. package/src/plugin/internal/source/PluginBuildLockOwner.ts +225 -0
  1916. package/src/plugin/internal/source/PluginBuildLockProtocol.ts +342 -0
  1917. package/src/plugin/internal/source/SourceBuildCacheLayout.ts +303 -0
  1918. package/src/plugin/internal/source/SourceBuildFilesystemOperations.ts +32 -0
  1919. package/src/plugin/internal/source/SourcePluginAdmission.ts +127 -0
  1920. package/src/plugin/internal/source/SourcePluginWorkspace.ts +564 -0
  1921. package/src/plugin/internal/source/acquirePluginBuildLock.ts +222 -0
  1922. package/src/plugin/internal/source/autoQuoteGoModToken.ts +113 -0
  1923. package/src/plugin/internal/source/buildSourcePlugin.ts +1225 -0
  1924. package/src/plugin/internal/source/collectPluginSourceDirectories.ts +70 -0
  1925. package/src/plugin/internal/source/collectPluginSourceFiles.ts +90 -0
  1926. package/src/plugin/internal/source/computeCacheKey.ts +208 -0
  1927. package/src/plugin/internal/source/copiesPluginSourceEntry.ts +52 -0
  1928. package/src/plugin/internal/source/createExternalSourceSnapshotLayout.ts +66 -0
  1929. package/src/plugin/internal/source/ensureExecutableGoToolchain.ts +87 -0
  1930. package/src/plugin/internal/source/formatDuration.ts +32 -0
  1931. package/src/plugin/internal/source/formatGoWorkPath.ts +42 -0
  1932. package/src/plugin/internal/source/hashPluginBuildEnvironment.ts +735 -0
  1933. package/src/plugin/internal/source/inspectPluginBuildLock.ts +330 -0
  1934. package/src/plugin/internal/source/isPathWithin.ts +24 -0
  1935. package/src/plugin/internal/source/legacyGlobalCacheTargets.ts +71 -0
  1936. package/src/plugin/internal/source/pluginBuildEnvironment.ts +59 -0
  1937. package/src/plugin/internal/source/pluginBuildEnvironmentWorker.ts +30 -0
  1938. package/src/plugin/internal/source/pluginBuildVersions.ts +75 -0
  1939. package/src/plugin/internal/source/pluginModuleReplaceDirectories.ts +84 -0
  1940. package/src/plugin/internal/source/pluginSourceCovers.ts +54 -0
  1941. package/src/plugin/internal/source/pluginSourceDigest.ts +55 -0
  1942. package/src/plugin/internal/source/pluginSourceFilesSignature.ts +54 -0
  1943. package/src/plugin/internal/source/pluginSourceState.ts +69 -0
  1944. package/src/plugin/internal/source/pluginSourceStateHolds.ts +45 -0
  1945. package/src/plugin/internal/source/processPluginBuildEnvironment.ts +40 -0
  1946. package/src/plugin/internal/source/pruneCacheFileRoot.ts +134 -0
  1947. package/src/plugin/internal/source/pruneGoBuildCacheRoot.ts +228 -0
  1948. package/src/plugin/internal/source/prunePluginCacheRoot.ts +507 -0
  1949. package/src/plugin/internal/source/prunesPluginSourceDirectory.ts +25 -0
  1950. package/src/plugin/internal/source/reclaimPluginBuildLock.ts +63 -0
  1951. package/src/plugin/internal/source/recordCacheFileUse.ts +35 -0
  1952. package/src/plugin/internal/source/releasePluginBuildLock.ts +125 -0
  1953. package/src/plugin/internal/source/resolveCleanTargets.ts +84 -0
  1954. package/src/plugin/internal/source/resolveGoCompiler.ts +92 -0
  1955. package/src/plugin/internal/source/resolvePluginCacheRoot.ts +32 -0
  1956. package/src/plugin/internal/source/resolvePluginGoModule.ts +69 -0
  1957. package/src/plugin/internal/source/resolveSourceBuildCachePaths.ts +276 -0
  1958. package/src/plugin/internal/source/selectPluginModuleReplaceDirectories.ts +80 -0
  1959. package/src/plugin/internal/source/spawnGoTool.ts +204 -0
  1960. package/src/plugin/internal/source/touchPluginCacheEntryInUse.ts +44 -0
  1961. package/src/plugin/internal/source/waitForPluginBinary.ts +123 -0
  1962. package/src/plugin/internal/source/windowsGoCommandArgs.ts +19 -0
  1963. package/src/plugin/internal/source/withGoBuildCacheLease.ts +101 -0
  1964. package/src/plugin/internal/writeCapabilityResolution.ts +266 -0
  1965. package/src/plugin/resolveCapabilityPlugins.ts +242 -77
  1966. package/src/register.ts +20 -7
  1967. package/src/structures/ITtscCompilerContext.ts +29 -11
  1968. package/src/structures/ITtscCompilerDiagnostic.ts +24 -7
  1969. package/src/structures/ITtscCompilerResult.ts +75 -25
  1970. package/src/structures/ITtscCompilerTransformation.ts +304 -64
  1971. package/src/structures/ITtscPlugin.ts +24 -8
  1972. package/src/structures/ITtscPluginCapabilities.ts +58 -5
  1973. package/src/structures/ITtscPluginContributor.ts +19 -8
  1974. package/src/structures/ITtscPluginFactoryContext.ts +12 -3
  1975. package/src/structures/ITtscProjectPluginConfig.ts +35 -10
  1976. package/src/structures/TtscPluginStage.ts +9 -0
  1977. package/src/structures/internal/ITtscLoadedNativePlugin.ts +27 -5
  1978. package/src/structures/internal/ITtscParsedProjectConfig.ts +37 -3
  1979. package/src/structures/internal/ITtscProjectIdentity.ts +27 -6
  1980. package/src/structures/internal/ITtscProjectInputSnapshot.ts +31 -8
  1981. package/src/structures/internal/ITtscProjectLocatorOptions.ts +21 -4
  1982. package/src/structures/internal/TtscBuildOptions.ts +38 -14
  1983. package/src/structures/internal/TtscBuildResult.ts +74 -4
  1984. package/src/structures/internal/TtscCommonOptions.ts +59 -14
  1985. package/src/structures/internal/TtscSingleFileEmitOptions.ts +55 -5
  1986. package/tools/gen_shims/main.go +124 -11
  1987. package/tools/gen_shims/package_load_admission_rejects_incomplete_results_test.go +61 -0
  1988. package/tools/gen_shims/private_field_support_preserves_upstream_layout_test.go +104 -0
  1989. package/tools/shim_audit/enum_generation_preserves_existing_family_members_test.go +182 -0
  1990. package/tools/shim_audit/enum_generation_refuses_removed_public_members_test.go +93 -0
  1991. package/tools/shim_audit/main.go +166 -31
  1992. package/tools/shim_audit/main_test.go +35 -0
  1993. package/tools/shim_audit/producer_exemptions_require_rationale_test.go +5 -0
  1994. package/tools/shim_audit/producer_surface_includes_exposed_methods_test.go +5 -0
  1995. package/tools/shim_audit/producer_surface_rejects_unproducible_reference_test.go +5 -0
  1996. package/tools/shim_audit/shim_dir_coverage_rejects_unregistered_shims_test.go +71 -0
  1997. package/utility/command.go +48 -0
  1998. package/utility/flags_gen.go +2 -2
  1999. package/utility/host.go +282 -66
  2000. package/utility/preamble_output.go +245 -0
  2001. package/utility/preamble_output_test.go +90 -0
  2002. package/utility/serve.go +61 -18
  2003. package/cmd/ttscgraph/serve_graph_snapshot_version_matches_typescript_client_test.go +0 -32
  2004. package/cmd/ttscgraph/serve_protocol_version_matches_the_typescript_client_test.go +0 -48
  2005. package/cmd/ttscgraph/serve_session_retries_failed_dump_test.go +0 -103
  2006. package/internal/graph/dump_schema_version_matches_the_typescript_client_test.go +0 -48
  2007. package/internal/graph/edge_kinds_names_every_declared_kind_test.go +0 -49
  2008. package/internal/graph/graph_kind_contracts_match_their_producers_test.go +0 -121
  2009. package/internal/lspserver/lsp_launcher_reload_directory_fingerprint_parity_windows_test.go +0 -94
  2010. package/internal/lspserver/lsp_project_diagnostics_resident_unsupported_falls_back_test.go +0 -123
  2011. package/lib/compiler/internal/paths.d.ts +0 -27
  2012. package/lib/compiler/internal/paths.js +0 -70
  2013. package/lib/compiler/internal/paths.js.map +0 -1
  2014. package/lib/compiler/internal/project/readConfigJson.d.ts +0 -30
  2015. package/lib/compiler/internal/project/readConfigJson.js +0 -208
  2016. package/lib/compiler/internal/project/readConfigJson.js.map +0 -1
  2017. package/lib/compiler/internal/residentCheckProcess.d.ts +0 -44
  2018. package/lib/compiler/internal/residentCheckProcess.js +0 -213
  2019. package/lib/compiler/internal/residentCheckProcess.js.map +0 -1
  2020. package/lib/compiler/internal/residentTransformProcess.d.ts +0 -65
  2021. package/lib/compiler/internal/residentTransformProcess.js +0 -330
  2022. package/lib/compiler/internal/residentTransformProcess.js.map +0 -1
  2023. package/lib/compiler/internal/resolveEmittedJavaScript.d.ts +0 -25
  2024. package/lib/compiler/internal/resolveEmittedJavaScript.js +0 -165
  2025. package/lib/compiler/internal/resolveEmittedJavaScript.js.map +0 -1
  2026. package/lib/compiler/internal/runBuild.d.ts +0 -152
  2027. package/lib/compiler/internal/runBuild.js +0 -1694
  2028. package/lib/compiler/internal/runBuild.js.map +0 -1
  2029. package/lib/compiler/internal/sharedHostHelpers.d.ts +0 -79
  2030. package/lib/compiler/internal/sharedHostHelpers.js +0 -134
  2031. package/lib/compiler/internal/sharedHostHelpers.js.map +0 -1
  2032. package/lib/flags/parser.d.ts +0 -97
  2033. package/lib/flags/parser.js +0 -293
  2034. package/lib/flags/parser.js.map +0 -1
  2035. package/lib/flags/schema.d.ts +0 -191
  2036. package/lib/flags/schema.js.map +0 -1
  2037. package/lib/internal/windowsDirectoryCaseSensitivity.d.ts +0 -10
  2038. package/lib/internal/windowsDirectoryCaseSensitivity.js +0 -34
  2039. package/lib/internal/windowsDirectoryCaseSensitivity.js.map +0 -1
  2040. package/lib/launcher/internal/commonJsExportMetadata.d.ts +0 -7
  2041. package/lib/launcher/internal/commonJsExportMetadata.js.map +0 -1
  2042. package/lib/launcher/internal/registerRuntimeHooks.js +0 -59
  2043. package/lib/launcher/internal/registerRuntimeHooks.js.map +0 -1
  2044. package/lib/launcher/internal/runTtscserver.d.ts +0 -35
  2045. package/lib/launcher/internal/runTtscserver.js +0 -661
  2046. package/lib/launcher/internal/runTtscserver.js.map +0 -1
  2047. package/lib/launcher/internal/runtimeHooks.d.ts +0 -198
  2048. package/lib/launcher/internal/runtimeHooks.js +0 -2579
  2049. package/lib/launcher/internal/runtimeHooks.js.map +0 -1
  2050. package/lib/launcher/internal/servedSourceMap.d.ts +0 -25
  2051. package/lib/launcher/internal/servedSourceMap.js +0 -164
  2052. package/lib/launcher/internal/servedSourceMap.js.map +0 -1
  2053. package/lib/launcher/internal/singleFileOutput.d.ts +0 -16
  2054. package/lib/launcher/internal/singleFileOutput.js +0 -103
  2055. package/lib/launcher/internal/singleFileOutput.js.map +0 -1
  2056. package/lib/launcher/internal/watchTopology.d.ts +0 -329
  2057. package/lib/launcher/internal/watchTopology.js.map +0 -1
  2058. package/lib/plugin/internal/buildSourcePlugin.d.ts +0 -298
  2059. package/lib/plugin/internal/buildSourcePlugin.js +0 -3087
  2060. package/lib/plugin/internal/buildSourcePlugin.js.map +0 -1
  2061. package/lib/plugin/internal/capabilityResolutionCache.d.ts +0 -76
  2062. package/lib/plugin/internal/capabilityResolutionCache.js +0 -224
  2063. package/lib/plugin/internal/capabilityResolutionCache.js.map +0 -1
  2064. package/lib/plugin/internal/descriptorProcessFailure.d.ts +0 -36
  2065. package/lib/plugin/internal/descriptorProcessFailure.js +0 -62
  2066. package/lib/plugin/internal/descriptorProcessFailure.js.map +0 -1
  2067. package/lib/plugin/internal/loadProjectPlugins.d.ts +0 -75
  2068. package/lib/plugin/internal/loadProjectPlugins.js +0 -2405
  2069. package/lib/plugin/internal/loadProjectPlugins.js.map +0 -1
  2070. package/src/compiler/internal/paths.ts +0 -68
  2071. package/src/compiler/internal/project/readConfigJson.ts +0 -209
  2072. package/src/compiler/internal/residentCheckProcess.ts +0 -259
  2073. package/src/compiler/internal/residentTransformProcess.ts +0 -406
  2074. package/src/compiler/internal/resolveEmittedJavaScript.ts +0 -197
  2075. package/src/compiler/internal/runBuild.ts +0 -2345
  2076. package/src/compiler/internal/sharedHostHelpers.ts +0 -154
  2077. package/src/flags/parser.ts +0 -459
  2078. package/src/internal/windowsDirectoryCaseSensitivity.ts +0 -33
  2079. package/src/launcher/internal/registerRuntimeHooks.ts +0 -68
  2080. package/src/launcher/internal/runTtscserver.ts +0 -842
  2081. package/src/launcher/internal/runtimeHooks.ts +0 -3197
  2082. package/src/launcher/internal/servedSourceMap.ts +0 -183
  2083. package/src/launcher/internal/singleFileOutput.ts +0 -133
  2084. package/src/plugin/internal/buildSourcePlugin.ts +0 -3993
  2085. package/src/plugin/internal/capabilityResolutionCache.ts +0 -305
  2086. package/src/plugin/internal/descriptorProcessFailure.ts +0 -69
  2087. package/src/plugin/internal/loadProjectPlugins.ts +0 -3073
  2088. package/tools/shim_audit/shim_dir_coverage_test.go +0 -25
  2089. /package/lib/{launcher/internal/registerRuntimeHooks.d.ts → compiler/internal/transformProjectWorker.d.ts} +0 -0
@@ -0,0 +1,1225 @@
1
+ import crypto from "node:crypto";
2
+ import fs from "node:fs";
3
+ import path from "node:path";
4
+
5
+ import { SidecarEnvironment } from "../../../compiler/internal/sharedHost/SidecarEnvironment";
6
+ import { E2ETrace } from "../../../internal/E2ETrace";
7
+ import { OwnedSynchronousProcess } from "../../../internal/OwnedSynchronousProcess";
8
+ import { SourceNativeRetirement } from "../../../internal/SourceNativeRetirement";
9
+ import { createCanonicalTempDirectory } from "../../../internal/createCanonicalTempDirectory";
10
+ import { runHoldingLock } from "../../../internal/runHoldingLock";
11
+ import { GoSourceInputs } from "./GoSourceInputs";
12
+ import { GoToolResolution } from "./GoToolResolution";
13
+ import type { IPluginModuleReplaceDirectory } from "./IPluginModuleReplaceDirectory";
14
+ import type { ITtscBuildContributor } from "./ITtscBuildContributor";
15
+ import type { ITtscSourceBuildCachePaths } from "./ITtscSourceBuildCachePaths";
16
+ import { NativeSourcePackages } from "./NativeSourcePackages";
17
+ import { PluginBinaryUse } from "./PluginBinaryUse";
18
+ import { PluginBuildEnvironmentWitness } from "./PluginBuildEnvironmentWitness";
19
+ import type { PluginBuildLockLease } from "./PluginBuildLockLease";
20
+ import { PluginBuildLockProtocol } from "./PluginBuildLockProtocol";
21
+ import { SourceBuildCacheLayout } from "./SourceBuildCacheLayout";
22
+ import type { SourceBuildFilesystemOperations } from "./SourceBuildFilesystemOperations";
23
+ import { SourcePluginAdmission } from "./SourcePluginAdmission";
24
+ import { SourcePluginWorkspace } from "./SourcePluginWorkspace";
25
+ import { acquirePluginBuildLock } from "./acquirePluginBuildLock";
26
+ import { computeCacheKey } from "./computeCacheKey";
27
+ import { copiesPluginSourceEntry } from "./copiesPluginSourceEntry";
28
+ import { createExternalSourceSnapshotLayout } from "./createExternalSourceSnapshotLayout";
29
+ import { ensureExecutableGoToolchain } from "./ensureExecutableGoToolchain";
30
+ import { pluginModuleReplaceDirectories } from "./pluginModuleReplaceDirectories";
31
+ import { pluginSourceDigest } from "./pluginSourceDigest";
32
+ import { pruneGoBuildCacheRoot } from "./pruneGoBuildCacheRoot";
33
+ import { prunePluginCacheRoot } from "./prunePluginCacheRoot";
34
+ import { reclaimPluginBuildLock } from "./reclaimPluginBuildLock";
35
+ import { releasePluginBuildLock } from "./releasePluginBuildLock";
36
+ import { resolveGoCompiler } from "./resolveGoCompiler";
37
+ import { resolvePluginGoModule } from "./resolvePluginGoModule";
38
+ import { resolveSourceBuildCachePaths } from "./resolveSourceBuildCachePaths";
39
+ import { spawnGoTool } from "./spawnGoTool";
40
+ import { waitForPluginBinary } from "./waitForPluginBinary";
41
+ import { withGoBuildCacheLease } from "./withGoBuildCacheLease";
42
+
43
+ /**
44
+ * Build one Go source plugin into a cached executable.
45
+ *
46
+ * `opts.env` is the effective environment for this build; the caller merges
47
+ * inherited and constructor layers using native environment-name identity so a
48
+ * programmatic `TtscCompiler` instance can pin its own Go toolchain
49
+ * (`TTSC_GO_BINARY`), Go build cache (`TTSC_GO_CACHE_DIR`), and Go build
50
+ * variables (`GOFLAGS`, `CGO_*`, …) without mutating the shared `process.env`.
51
+ * CLI callers omit it and inherit `process.env`, so ambient behavior is
52
+ * unchanged.
53
+ *
54
+ * The cache key includes source and toolchain readings. Before publication the
55
+ * scratch inputs are compared with their recorded digests and the external
56
+ * toolchain witness is checked. Caller-supplied digests must describe the
57
+ * intended inputs; metadata-based witnesses and sequential observations do not
58
+ * pin files against concurrent changes. Detected differences fail publication.
59
+ * A changed toolchain discards the owned attempt, then takes a new reading and
60
+ * executes or admits under its new key, for at most three epochs. Source
61
+ * readings and request variables stay fixed; native, source and cleanup
62
+ * failures do not retry. Only the successful epoch publishes caller digests.
63
+ * The Go-owned object cache retains Go's tool/action identity semantics; these
64
+ * attempts discard ttsc's failed binary and scratch, not Go's object entries.
65
+ * Optional loader-required package ownership enters the key. Its cold producer
66
+ * admits the entry and linked sources through Go metadata in the actual
67
+ * materialized workspace before compilation; legacy cache artifacts have a
68
+ * different key. Existing binary hits trust the cache producer and key rather
69
+ * than rehashing executable bytes. Default caches are managed locally, while
70
+ * explicit roots retain caller-managed pruning policy. Every returned cache key
71
+ * registers a reader token retained by this process until exit; registration
72
+ * shares the builder/collector lease, and other consumers register independent
73
+ * readers. Failure to establish ownership propagates. Private opt-in tracing
74
+ * records the mandatory key-creation and pre-build witness gates and adds one
75
+ * diagnostic observation after Go returns. That diagnostic read adds metadata
76
+ * work, not publication permission. A discarded epoch is separately recorded
77
+ * when the bounded build owner starts again.
78
+ *
79
+ * Explicit worker scopes check cancellation between build phases, copied source
80
+ * entries and native commands, including reader admission and final
81
+ * publication. Observed cancellation releases held leases and scratch without
82
+ * starting a new post-build maintenance pass. Native calls and delegated
83
+ * hashing can delay observation; these checkpoints do not impose a hard
84
+ * execution deadline.
85
+ *
86
+ * @evidence contracts/common.md#principled-implementation Each of at most three toolchain epochs compares materialized source digests and checks its own pre-read witness before build, publication or cache adoption. A changed epoch publishes nothing and starts again only after its scratch and key lease finish; first source readings and request variables remain fixed. Caller digest maps receive only successful authority. Opted-in cancellation guards stage, copy-entry, native-command, reader and publication admission, while cleanup still finishes. Metadata observations are not an atomic snapshot, and existing executable bytes remain trusted cache-producer output.
87
+ * @evidence contracts/common.md#clear-and-simple-design One owner sequences target resolution, key creation, cache selection and fenced build coordination; private helpers own scratch materialization, Go workspace semantics and publication cleanup.
88
+ * @evidence contracts/common.md#prohibited-implementation-shortcuts A changed witness is never overwritten or accepted. A fresh epoch takes a new toolchain reading and performs the actual build or qualified adoption; source, native and cleanup failures stay terminal. No selected SDK tool is warmed by a special command, and no foreign environment or memo is rebased. Shared Go objects retain their owner's toolID/actionID contract; same-version custom tool semantics beyond that contract are not newly guaranteed.
89
+ * @evidence contracts/common.md#meaningful-documentation Native paragraphs explain effective environment, recorded-input comparisons and their trust/observation limits, reader registration and managed versus explicit roots; option-map comments state their reading provenance with blank member separation.
90
+ * @evidence contracts/portability.md#os-neutral-implementation Node path/physical-cache/temp APIs preserve native identities; executable resolution and Windows command handling are isolated owners, and the binary filename explicitly follows its executable platform.
91
+ * @evidence contracts/performance.md#efficient-algorithms At most three epochs redo native toolchain observation, key construction, materialization and guarded admission; each can run one Go build, preceded by one batched package metadata command when the loader requires ownership admission. The shared compiler reader can itself make three version observations, hence at most nine such cold observations for a persistently moving compiler and no build when its key witness fails. Full-file bytes, entries, path/sort text, contributors, external trees and witness populations drive work. Scoped cancellation is sampled between phases/entries/commands and does not bound native calls or delegated hashing. First source digest readings are reused across epochs, while each scratch is independently checked. Existing lock contention has its separate wait budget and native Go compiler work remains delegated.
92
+ * @evidence contracts/performance.md#reuse-equivalent-work Existing binaries and concurrent builders share the version/platform/source/environment key with reader admission before return, assuming trustworthy cache producers and supplied digest maps. Fixed trimpath compilation removes disposable snapshot paths from Go object identities. Shared load readings and sequential source/toolchain comparisons reject observed changes; metadata reuse and unobserved concurrent mutation remain the underlying witnesses' limits.
93
+ * @evidence contracts/performance.md#bound-retention-and-release-resources Scratch directories and build/cache leases have finally-based cleanup, including cancellation; cancelled work admits no new post-build prune pass. Scratch removal or lease cleanup can fail, and selected synchronous child settlement does not join arbitrary descendants. Repeated commands can repeat external tool effects; only ttsc-owned failed outputs are discarded, and Go-owned object entries retain their existing lifetime. Pending binary cleanup is best-effort. Reader tokens and their process map grow with distinct physical keys until process exit. Managed pruning attempts age/LRU reclamation while protecting live, unknown and selected entries, so it is not a hard disk bound; explicit roots remain caller-managed.
94
+ */
95
+ export function buildSourcePlugin(opts: {
96
+ source: string;
97
+ pluginName: string;
98
+ baseDir: string;
99
+ cacheDir?: string;
100
+ contributors?: readonly ITtscBuildContributor[];
101
+ env?: NodeJS.ProcessEnv;
102
+
103
+ /** Loader-required ownership of the entry and named linked packages. */
104
+ packageOwnership?: readonly {
105
+ entry: string;
106
+ kind: "executable" | "linked";
107
+ }[];
108
+
109
+ /**
110
+ * Digests of the environment each build directory is keyed on, shared by
111
+ * every build of the load and filled with this build's (`computeCacheKey`),
112
+ * so the load reports its plugin sources' states from the same reading.
113
+ */
114
+ environmentDigests?: Map<string, string>;
115
+
116
+ filesystem?: Partial<SourceBuildFilesystemOperations>;
117
+ label?: string;
118
+ overlayDirs?: readonly string[];
119
+ quiet?: boolean;
120
+
121
+ /**
122
+ * Digests of the source directories the caller's load already read, shared by
123
+ * every build of the load and filled with each directory this build keys on
124
+ * (`computeCacheKey`), so the load can report exactly what its binaries were
125
+ * built from.
126
+ */
127
+ sourceDigests?: Map<string, string>;
128
+
129
+ /** Pinned-tool manifest readers shared only by this loader request. */
130
+ goModReaders?: Map<string, SourcePluginWorkspace.GoModReader>;
131
+
132
+ ttscVersion: string;
133
+ tsgoVersion: string;
134
+ }): string {
135
+ OwnedSynchronousProcess.checkpoint();
136
+ const env = SidecarEnvironment.merge(opts.env ?? process.env);
137
+ // Source authority belongs to the request, not to a discarded toolchain
138
+ // epoch. Keep its first readings even when the toolchain is read again.
139
+ const sourceDigests = new Map(opts.sourceDigests);
140
+ for (let attempt = 0; ; attempt += 1) {
141
+ OwnedSynchronousProcess.checkpoint();
142
+ const environmentDigests = new Map(opts.environmentDigests);
143
+ try {
144
+ const binary = buildSourcePluginAttempt(
145
+ attempt === 0 ? opts : { ...opts, goModReaders: undefined },
146
+ env,
147
+ sourceDigests,
148
+ environmentDigests,
149
+ );
150
+ OwnedSynchronousProcess.checkpoint();
151
+ for (const [directory, digest] of sourceDigests)
152
+ opts.sourceDigests?.set(directory, digest);
153
+ for (const [directory, digest] of environmentDigests)
154
+ opts.environmentDigests?.set(directory, digest);
155
+ return binary;
156
+ } catch (error) {
157
+ if (
158
+ !(error instanceof PluginBuildEnvironmentChangedError) ||
159
+ !error.retryable ||
160
+ attempt === 2
161
+ )
162
+ throw error;
163
+ E2ETrace.capabilityResolution(
164
+ "plugin-build-environment-epoch-discarded",
165
+ {
166
+ pluginName: opts.pluginName,
167
+ attempt: attempt + 1,
168
+ },
169
+ );
170
+ }
171
+ }
172
+ }
173
+
174
+ /** One fresh toolchain reading and its guarded cache admission or build. */
175
+ function buildSourcePluginAttempt(
176
+ opts: Parameters<typeof buildSourcePlugin>[0],
177
+ env: NodeJS.ProcessEnv,
178
+ sourceDigests: Map<string, string>,
179
+ environmentDigests: Map<string, string>,
180
+ ): string {
181
+ OwnedSynchronousProcess.checkpoint();
182
+ const { dir, entry, source } = resolveSourceBuildTarget(opts);
183
+ const overlayDirs = [
184
+ ...(opts.overlayDirs ?? SourcePluginWorkspace.findTtscOverlayDirs()),
185
+ ].sort();
186
+ const contributors = opts.contributors ?? [];
187
+ const compiler = resolveGoCompiler(env);
188
+ const goBinary = GoToolResolution.resolveGoToolForBuild(
189
+ compiler.binary,
190
+ env,
191
+ dir,
192
+ );
193
+ ensureExecutableGoToolchain(goBinary, compiler.bundled);
194
+ OwnedSynchronousProcess.checkpoint();
195
+ // The digest of every directory the key covers, as the key read it, which
196
+ // the build proves against what it compiled.
197
+ const goModReader = SourcePluginWorkspace.createGoModReader(
198
+ goBinary,
199
+ opts.pluginName,
200
+ env,
201
+ opts.goModReaders,
202
+ );
203
+ const environmentWitness: PluginBuildEnvironmentWitness.Record = new Map();
204
+ const key = computeCacheKey({
205
+ contributors,
206
+ packageOwnership: opts.packageOwnership,
207
+ dir,
208
+ entry,
209
+ env,
210
+ environmentWitness,
211
+ goModReader,
212
+ filesystem: opts.filesystem,
213
+ goBinary,
214
+ overlayDirs,
215
+ environmentDigests,
216
+ sourceDigests,
217
+ ttscVersion: opts.ttscVersion,
218
+ tsgoVersion: opts.tsgoVersion,
219
+ });
220
+ OwnedSynchronousProcess.checkpoint();
221
+ const unchanged = PluginBuildEnvironmentWitness.holds(
222
+ environmentWitness,
223
+ "key-created",
224
+ );
225
+ if (process.env.TTSC_E2E_TRACE) {
226
+ E2ETrace.capabilityResolution("plugin-build-environment-key-created", {
227
+ pluginName: opts.pluginName,
228
+ goBinary,
229
+ key,
230
+ dir,
231
+ entry,
232
+ sourceDigestsJson: JSON.stringify(Object.fromEntries(sourceDigests)),
233
+ overlayDirsJson: JSON.stringify(overlayDirs),
234
+ contributorNamesJson: JSON.stringify(
235
+ contributors.map((contributor) => contributor.name),
236
+ ),
237
+ unchanged,
238
+ });
239
+ }
240
+ if (!unchanged) throw pluginBuildEnvironmentChanged(opts.pluginName);
241
+ OwnedSynchronousProcess.checkpoint();
242
+ const paths = resolveSourceBuildCachePaths(opts.baseDir, opts.cacheDir, env);
243
+ SourcePluginAdmission.requireCachesOutsideSources(
244
+ [paths.root, paths.goBuildRoot],
245
+ [...sourceDigests.keys()],
246
+ );
247
+ const managePluginCache = !opts.cacheDir && !env.TTSC_CACHE_DIR;
248
+ if (managePluginCache) {
249
+ SourceBuildCacheLayout.markDefaultWorkspaceCacheRoot(paths.root);
250
+ }
251
+ const manageGoBuildCache = shouldManageSourceBuildCaches(
252
+ paths,
253
+ opts.cacheDir,
254
+ env,
255
+ );
256
+ const pluginRoot = managePluginCache
257
+ ? SourceBuildCacheLayout.canonicalPluginCacheRoot(paths.pluginRoot)
258
+ : paths.pluginRoot;
259
+ OwnedSynchronousProcess.checkpoint();
260
+ SourceBuildCacheLayout.maybePruneSourceBuildCaches(
261
+ { ...paths, pluginRoot },
262
+ opts.cacheDir,
263
+ env,
264
+ );
265
+ const cacheDir = managePluginCache
266
+ ? canonicalPluginCacheEntry(pluginRoot, key)
267
+ : path.join(pluginRoot, key);
268
+ const binaryName = process.platform === "win32" ? "plugin.exe" : "plugin";
269
+ const binaryPath = path.join(cacheDir, binaryName);
270
+ const retirementRoot = PluginBuildLockProtocol.pluginBuildLockProtocolDir(
271
+ `${cacheDir}.lock`,
272
+ );
273
+ SourceNativeRetirement.assertAvailable(retirementRoot);
274
+ OwnedSynchronousProcess.checkpoint();
275
+ if (
276
+ !SourceNativeRetirement.isProtected(retirementRoot) &&
277
+ fs.existsSync(binaryPath) &&
278
+ PluginBinaryUse.holds(cacheDir)
279
+ ) {
280
+ requireBuildEnvironment(environmentWitness, opts.pluginName, "cache-hit");
281
+ OwnedSynchronousProcess.checkpoint();
282
+ E2ETrace.capabilityResolution("plugin-build-cache-admission", {
283
+ pluginName: opts.pluginName,
284
+ key,
285
+ cacheDir,
286
+ binaryPath,
287
+ outcome: "held-binary",
288
+ });
289
+ touchCacheEntry(cacheDir);
290
+ return binaryPath;
291
+ }
292
+ fs.mkdirSync(cacheDir, { recursive: true });
293
+ const label = opts.label ?? "source plugin";
294
+ const quiet = opts.quiet === true;
295
+ let compiled = false;
296
+ const built = buildUnderPluginLock(
297
+ cacheDir,
298
+ binaryPath,
299
+ {
300
+ label,
301
+ pluginName: opts.pluginName,
302
+ quiet,
303
+ },
304
+ () =>
305
+ requireBuildEnvironment(
306
+ environmentWitness,
307
+ opts.pluginName,
308
+ "lock-adoption",
309
+ ),
310
+ () => {
311
+ OwnedSynchronousProcess.checkpoint();
312
+ compiled = true;
313
+ E2ETrace.capabilityResolution("plugin-build-cache-admission", {
314
+ pluginName: opts.pluginName,
315
+ key,
316
+ cacheDir,
317
+ binaryPath,
318
+ outcome: "compile-owned",
319
+ });
320
+ // GC owns the same key lease before deleting a binary entry. It may have
321
+ // removed this directory before acquisition, so recreate and validate it
322
+ // only after this build has entered its protected publication interval.
323
+ if (managePluginCache) canonicalPluginCacheEntry(pluginRoot, key);
324
+ else fs.mkdirSync(cacheDir, { recursive: true });
325
+ return compileSourcePlugin({
326
+ binaryPath,
327
+ cacheDir,
328
+ contributors,
329
+ packageOwnership: opts.packageOwnership,
330
+ dir,
331
+ entry,
332
+ env,
333
+ environmentWitness,
334
+ goBinary,
335
+ goModReader,
336
+ normalizeGoToolPermissions: compiler.bundled,
337
+ key,
338
+ keyedDigests: sourceDigests,
339
+ label,
340
+ goBuildCacheRoot: paths.goBuildRoot,
341
+ manageGoBuildCache,
342
+ overlayDirs,
343
+ pluginName: opts.pluginName,
344
+ quiet,
345
+ source,
346
+ });
347
+ },
348
+ );
349
+ OwnedSynchronousProcess.checkpoint();
350
+ E2ETrace.capabilityResolution("plugin-build-cache-admission", {
351
+ pluginName: opts.pluginName,
352
+ key,
353
+ cacheDir,
354
+ binaryPath,
355
+ outcome: compiled ? "compile-returned" : "lock-adopted",
356
+ });
357
+ if (managePluginCache) {
358
+ // The pre-build daily pass cannot account for the binary this cold build
359
+ // just published. Attempt size-policy maintenance after publication, once this
360
+ // process has released its per-key build lock.
361
+ OwnedSynchronousProcess.checkpoint();
362
+ prunePluginCacheRoot(pluginRoot, {
363
+ force: true,
364
+ protectedEntries: [cacheDir],
365
+ });
366
+ }
367
+ return built;
368
+ }
369
+
370
+ /**
371
+ * A rejected toolchain epoch whose owned build can be attempted again only
372
+ * after cleanup. Other failures never acquire this retry authority.
373
+ *
374
+ * The subtype separates strict witness failure from source, native compiler and
375
+ * filesystem failures. It does not authorize reuse of changed output; cleanup
376
+ * can revoke retry permission without replacing the original error. Native
377
+ * observation remains with witness and cleanup owners, and the build owner
378
+ * chooses the bounded algorithm and owns this call-local error.
379
+ */
380
+ class PluginBuildEnvironmentChangedError extends Error {
381
+ /** A cleanup failure revokes permission to start another epoch. */
382
+ retryable = true;
383
+ }
384
+
385
+ function pluginBuildEnvironmentChanged(
386
+ pluginName: string,
387
+ ): PluginBuildEnvironmentChangedError {
388
+ return new PluginBuildEnvironmentChangedError(
389
+ `ttsc: the Go toolchain of plugin "${pluginName}" changed while it ` +
390
+ `was being built, so the binary was not cached under the key of its ` +
391
+ `earlier toolchain. Build again once the change is complete.`,
392
+ );
393
+ }
394
+
395
+ function requireBuildEnvironment(
396
+ witness: PluginBuildEnvironmentWitness.Record,
397
+ pluginName: string,
398
+ observation: string,
399
+ ): void {
400
+ if (!PluginBuildEnvironmentWitness.holds(witness, observation))
401
+ throw pluginBuildEnvironmentChanged(pluginName);
402
+ }
403
+
404
+ const CONTRIBUTIONS_FILE_NAME = "ttsc_contributions.go";
405
+
406
+ const CONTRIB_DIRNAME = "contrib";
407
+
408
+ /** Run the actual `go build` and publish the binary; assumes the lock is held. */
409
+ function compileSourcePlugin(opts: {
410
+ binaryPath: string;
411
+ cacheDir: string;
412
+ contributors: readonly ITtscBuildContributor[];
413
+ packageOwnership?: readonly {
414
+ entry: string;
415
+ kind: "executable" | "linked";
416
+ }[];
417
+ dir: string;
418
+ entry: string;
419
+ env: NodeJS.ProcessEnv;
420
+
421
+ /** The toolchain paths the key read, with their metadata at that read. */
422
+ environmentWitness: PluginBuildEnvironmentWitness.Record;
423
+
424
+ goBinary: string;
425
+ goBuildCacheRoot: string;
426
+ manageGoBuildCache: boolean;
427
+ normalizeGoToolPermissions: boolean;
428
+ goModReader: SourcePluginWorkspace.GoModReader;
429
+ key: string;
430
+
431
+ /** The digest of every directory the key covers, as the key read it. */
432
+ keyedDigests: ReadonlyMap<string, string>;
433
+
434
+ label: string;
435
+ overlayDirs: readonly string[];
436
+ pluginName: string;
437
+ quiet: boolean;
438
+ source: string;
439
+ }): string {
440
+ OwnedSynchronousProcess.checkpoint();
441
+ if (!opts.quiet) {
442
+ const extra =
443
+ opts.contributors.length === 0
444
+ ? ""
445
+ : ` + ${opts.contributors.length} contributor(s): ${opts.contributors
446
+ .map((c) => c.name)
447
+ .join(", ")}`;
448
+ process.stderr.write(
449
+ `ttsc: building ${opts.label} "${opts.pluginName}" from ${opts.source}${extra} ` +
450
+ `(a cold Go cache can take several minutes) ` +
451
+ `See https://ttsc.dev/docs/ttsc/compile#plugin-cache to persist it across builds.\n`,
452
+ );
453
+ }
454
+
455
+ const scratchDir = createCanonicalTempDirectory(`ttsc-plugin-${opts.key}-`);
456
+ let taskFailure: { error: unknown } | undefined;
457
+ try {
458
+ SourceNativeRetirement.register({
459
+ fenceRoot: scratchDir,
460
+ retainedPaths: [scratchDir],
461
+ });
462
+ SourceNativeRetirement.register({
463
+ fenceRoot: opts.cacheDir,
464
+ retainedPaths: [opts.cacheDir],
465
+ });
466
+ SourceNativeRetirement.register({
467
+ fenceRoot: PluginBuildLockProtocol.pluginBuildLockProtocolDir(
468
+ `${opts.cacheDir}.lock`,
469
+ ),
470
+ retainedPaths: [scratchDir, opts.cacheDir, opts.goBuildCacheRoot],
471
+ });
472
+ OwnedSynchronousProcess.checkpoint();
473
+ SourcePluginWorkspace.materialize(opts.dir, scratchDir);
474
+ requireKeyedSource(
475
+ opts.dir,
476
+ scratchDir,
477
+ opts.keyedDigests,
478
+ opts.pluginName,
479
+ );
480
+ const replacements = pluginModuleReplaceDirectories(
481
+ opts.dir,
482
+ opts.env,
483
+ opts.goBinary,
484
+ opts.goModReader,
485
+ );
486
+ OwnedSynchronousProcess.checkpoint();
487
+ // Every source the build would otherwise read in place, an overlay and
488
+ // each replace target outside the module, is copied and proven against the
489
+ // key before Go reads it, as the module and its contributors are: a check
490
+ // after the build cannot tell a source that held still from one that
491
+ // changed and changed back while Go was reading it.
492
+ const external = snapshotExternalSources(
493
+ scratchDir,
494
+ [
495
+ ...opts.overlayDirs,
496
+ ...replacements.map((replacement) => replacement.directory),
497
+ ],
498
+ opts.keyedDigests,
499
+ opts.pluginName,
500
+ );
501
+ OwnedSynchronousProcess.checkpoint();
502
+ anchorReplaceDirectories(
503
+ replacements.map((replacement) => ({
504
+ ...replacement,
505
+ directory: external.get(path.resolve(replacement.directory))!,
506
+ })),
507
+ scratchDir,
508
+ opts.goBinary,
509
+ opts.env,
510
+ );
511
+ const goModReader = opts.goModReader;
512
+ OwnedSynchronousProcess.checkpoint();
513
+ if (opts.contributors.length > 0) {
514
+ mergeContributors({
515
+ contributors: opts.contributors,
516
+ entry: opts.entry,
517
+ goModReader,
518
+ keyedDigests: opts.keyedDigests,
519
+ pluginName: opts.pluginName,
520
+ scratchDir,
521
+ });
522
+ }
523
+ SourcePluginWorkspace.writeGoWork(
524
+ scratchDir,
525
+ opts.overlayDirs.map(
526
+ (directory) => external.get(path.resolve(directory))!,
527
+ ),
528
+ opts.goBinary,
529
+ opts.pluginName,
530
+ opts.env,
531
+ goModReader,
532
+ );
533
+ OwnedSynchronousProcess.checkpoint();
534
+ const scratchBinaryName =
535
+ process.platform === "win32" ? ".ttsc-plugin.exe" : ".ttsc-plugin";
536
+ let attemptedGoBuildCacheRoot: string | undefined;
537
+ try {
538
+ withGoBuildCacheLease(
539
+ opts.goBuildCacheRoot,
540
+ opts.manageGoBuildCache,
541
+ (goBuildCacheRoot) => {
542
+ OwnedSynchronousProcess.checkpoint();
543
+ attemptedGoBuildCacheRoot = goBuildCacheRoot;
544
+ requireBuildEnvironment(
545
+ opts.environmentWitness,
546
+ opts.pluginName,
547
+ "go-starting",
548
+ );
549
+ if (process.env.TTSC_E2E_TRACE) {
550
+ E2ETrace.capabilityResolution(
551
+ "plugin-build-environment-go-starting",
552
+ {
553
+ pluginName: opts.pluginName,
554
+ goBinary: opts.goBinary,
555
+ unchanged: true,
556
+ },
557
+ );
558
+ }
559
+ if (opts.packageOwnership !== undefined) {
560
+ const observations = NativeSourcePackages.read({
561
+ cwd: scratchDir,
562
+ entries: opts.packageOwnership.map((input) => input.entry),
563
+ env: GoSourceInputs.goBuildEnv(
564
+ opts.goBinary,
565
+ goBuildCacheRoot,
566
+ opts.env,
567
+ ),
568
+ goBinary: opts.goBinary,
569
+ pluginName: opts.pluginName,
570
+ });
571
+ opts.packageOwnership.forEach((input, index) => {
572
+ NativeSourcePackages.kind(
573
+ observations[index]!,
574
+ `${opts.pluginName} ${input.entry}`,
575
+ input.kind,
576
+ );
577
+ });
578
+ }
579
+ runGoBuild(
580
+ scratchDir,
581
+ opts.entry,
582
+ scratchBinaryName,
583
+ opts.pluginName,
584
+ opts.goBinary,
585
+ goBuildCacheRoot,
586
+ opts.env,
587
+ opts.normalizeGoToolPermissions,
588
+ );
589
+ OwnedSynchronousProcess.checkpoint();
590
+ if (process.env.TTSC_E2E_TRACE) {
591
+ E2ETrace.capabilityResolution(
592
+ "plugin-build-environment-go-returned",
593
+ {
594
+ pluginName: opts.pluginName,
595
+ goBinary: opts.goBinary,
596
+ unchanged: PluginBuildEnvironmentWitness.holds(
597
+ opts.environmentWitness,
598
+ "go-returned",
599
+ ),
600
+ },
601
+ );
602
+ }
603
+ },
604
+ );
605
+ } finally {
606
+ if (
607
+ !OwnedSynchronousProcess.cancelled() &&
608
+ SourceNativeRetirement.canRelease() &&
609
+ opts.manageGoBuildCache &&
610
+ attemptedGoBuildCacheRoot !== undefined
611
+ ) {
612
+ // The daily pre-build pass cannot see objects the build is about to
613
+ // add, including objects left behind by a failed compile. Enforce the
614
+ // size policy after every actual cold-build attempt so churn cannot
615
+ // grow the cache unchecked behind a fresh daily marker. Cancellation
616
+ // still releases the lease and scratch, but admits no new maintenance.
617
+ pruneGoBuildCacheRoot(attemptedGoBuildCacheRoot, { force: true });
618
+ }
619
+ }
620
+ // The toolchain was read for the key before the lock wait and the build,
621
+ // and Go ran it by path. Every path the key's environment read must still
622
+ // hold the metadata it was read with, or the binary may be another
623
+ // toolchain's. Change time also detects reverted writes when native
624
+ // metadata distinguishes those edits; the witness
625
+ // documents that premise rather than certifying a second byte comparison.
626
+ if (
627
+ !PluginBuildEnvironmentWitness.holds(
628
+ opts.environmentWitness,
629
+ "publication",
630
+ )
631
+ ) {
632
+ E2ETrace.capabilityResolution(
633
+ "plugin-build-environment-publication-refused",
634
+ {
635
+ pluginName: opts.pluginName,
636
+ goBinary: opts.goBinary,
637
+ GOTOOLCHAIN: opts.env?.GOTOOLCHAIN,
638
+ GOROOT: opts.env?.GOROOT,
639
+ GOENV: opts.env?.GOENV,
640
+ GOFLAGS: opts.env?.GOFLAGS,
641
+ CGO_ENABLED: opts.env?.CGO_ENABLED,
642
+ CC: opts.env?.CC,
643
+ CXX: opts.env?.CXX,
644
+ },
645
+ );
646
+ throw pluginBuildEnvironmentChanged(opts.pluginName);
647
+ }
648
+ const builtBinary = path.join(scratchDir, scratchBinaryName);
649
+ OwnedSynchronousProcess.checkpoint();
650
+ publishBuiltBinary(builtBinary, opts.binaryPath);
651
+ touchCacheEntry(opts.cacheDir);
652
+ return opts.binaryPath;
653
+ } catch (error) {
654
+ taskFailure = { error };
655
+ throw error;
656
+ } finally {
657
+ SourceNativeRetirement.releaseResource(
658
+ scratchDir,
659
+ () => {
660
+ fs.rmSync(scratchDir, { recursive: true, force: true });
661
+ SourceNativeRetirement.forget(opts.cacheDir);
662
+ },
663
+ taskFailure,
664
+ );
665
+ }
666
+ }
667
+
668
+ /**
669
+ * Build a source plugin while holding an exclusive cross-process lock for its
670
+ * cache key, so concurrent fan-out (parallel suites, a benchmark, a worker
671
+ * pool) shares a successful publication instead of building once per process. A
672
+ * discarded transaction can rebuild under the same content key after a fresh
673
+ * reading; the lock serializes each attempt rather than promising one build for
674
+ * the key's entire lifetime.
675
+ *
676
+ * `<cacheDir>.lock.v3` is a persistent coordination directory. The adjacent
677
+ * legacy `.lock` and older `.lock.v2` paths are separate namespaces: an old
678
+ * holder or reclaimer cannot remove a v3 successor. A contender writes a
679
+ * non-empty candidate and atomically renames it to `current`; only one rename
680
+ * wins. The winner builds and publishes while every loser polls and reuses the
681
+ * resulting binary. A loser distinguishes two ways a generation stops
682
+ * blocking:
683
+ *
684
+ * - `released`: the holder retired `current` itself — it published, or its build
685
+ * threw and its `finally` freed the key. The loser simply retries the
686
+ * ordinary acquisition; nothing is stale and nothing is reported.
687
+ * - `abandoned`: `current` still exists but its qualified same-host owner is
688
+ * provably absent. Unknown metadata is inconclusive regardless of its age.
689
+ * Only an actual abandonment observation permits retirement of that
690
+ * generation. One monotonic admission budget covers every retry; expiration
691
+ * throws without retiring a live or inconclusive owner.
692
+ *
693
+ * Retired generations remain as non-empty tombstones while their holder or
694
+ * registered observers may still use the corresponding lease/fence. Release and
695
+ * reclaim both rename `current` to the observed generation's deterministic
696
+ * tombstone path. Once generation A is retired, a stale observer or old
697
+ * finalizer for A cannot rename successor B there because replacing the
698
+ * non-empty tombstone fails atomically. Pruning must prove the holder and every
699
+ * recorded observer gone before removing that history. The persistent root
700
+ * itself is retained, and `publishBuiltBinary`'s atomic rename remains defense
701
+ * in depth.
702
+ */
703
+ function buildUnderPluginLock(
704
+ cacheDir: string,
705
+ binaryPath: string,
706
+ lockInfo: {
707
+ label: string;
708
+ pluginName: string;
709
+ quiet: boolean;
710
+ },
711
+ validateAdoption: () => void,
712
+ build: () => string,
713
+ ): string {
714
+ const lockDir = `${cacheDir}.lock`;
715
+ const retirementRoot =
716
+ PluginBuildLockProtocol.pluginBuildLockProtocolDir(lockDir);
717
+ const startedAt = performance.now();
718
+ for (;;) {
719
+ OwnedSynchronousProcess.checkpoint();
720
+ SourceNativeRetirement.assertAvailable(retirementRoot);
721
+ if (
722
+ !SourceNativeRetirement.isProtected(retirementRoot) &&
723
+ fs.existsSync(binaryPath) &&
724
+ PluginBinaryUse.holds(cacheDir)
725
+ ) {
726
+ validateAdoption();
727
+ OwnedSynchronousProcess.checkpoint();
728
+ touchCacheEntry(cacheDir);
729
+ return binaryPath;
730
+ }
731
+ const remaining =
732
+ PluginBuildLockProtocol.PLUGIN_BUILD_LOCK_WAIT_MS -
733
+ (performance.now() - startedAt);
734
+ if (remaining <= 0) {
735
+ throw new Error(
736
+ `ttsc: timed out waiting for ${lockInfo.label} "${lockInfo.pluginName}" ` +
737
+ `at ${lockDir}; no active generation was retired` +
738
+ (SourceNativeRetirement.describeProtection(retirementRoot) ?? ""),
739
+ );
740
+ }
741
+ let lease: PluginBuildLockLease | null;
742
+ // Registration must serialize with the public collector even when its
743
+ // scheduling is caller-managed. A failed ownership primitive cannot
744
+ // safely return a pathname that another collector may remove.
745
+ lease = acquirePluginBuildLock(lockDir);
746
+ if (lease === null) {
747
+ const waited = waitForPluginBinary({
748
+ binaryPath,
749
+ lockDir,
750
+ lockInfo,
751
+ timeoutMs: Math.max(
752
+ 0,
753
+ PluginBuildLockProtocol.PLUGIN_BUILD_LOCK_WAIT_MS -
754
+ (performance.now() - startedAt),
755
+ ),
756
+ });
757
+ if (waited.outcome === "published") {
758
+ // Publication is not reader admission: reacquire the key to register
759
+ // this consumer before returning the shared executable pathname.
760
+ OwnedSynchronousProcess.sleep(Math.min(10, remaining));
761
+ continue;
762
+ }
763
+ if (waited.outcome === "abandoned") {
764
+ // Retire only the generation that produced this observation. Losing
765
+ // the rename race means another waiter (or the holder's normal
766
+ // finalizer) already made progress, so do not report a stale result as
767
+ // an abandonment.
768
+ if (reclaimPluginBuildLock(lockDir, waited.fence)) {
769
+ reportPluginLockSteal(lockDir, binaryPath, lockInfo, waited.reason);
770
+ }
771
+ }
772
+ // "released" needs no repair: the holder freed the key normally (its
773
+ // build published or failed), so retry the ordinary atomic acquisition.
774
+ // Reporting a steal or force-removing the path here would misclassify a
775
+ // routine handoff as abandonment.
776
+ continue;
777
+ }
778
+ const held = lease;
779
+ let buildFailure: unknown;
780
+ return runHoldingLock(
781
+ () => {
782
+ try {
783
+ OwnedSynchronousProcess.checkpoint();
784
+ // Re-check under the lock: a previous holder may have just published.
785
+ if (fs.existsSync(binaryPath)) {
786
+ validateAdoption();
787
+ OwnedSynchronousProcess.checkpoint();
788
+ PluginBinaryUse.retain(cacheDir);
789
+ touchCacheEntry(cacheDir);
790
+ return binaryPath;
791
+ }
792
+ const binary = build();
793
+ OwnedSynchronousProcess.checkpoint();
794
+ PluginBinaryUse.retain(cacheDir);
795
+ return binary;
796
+ } catch (error) {
797
+ buildFailure = error;
798
+ throw error;
799
+ }
800
+ },
801
+ () => releasePluginBuildLock(lockDir, held),
802
+ (error) => {
803
+ if (buildFailure instanceof PluginBuildEnvironmentChangedError)
804
+ buildFailure.retryable = false;
805
+ reportPluginLockRelease(lockDir, lockInfo, error);
806
+ },
807
+ );
808
+ }
809
+ }
810
+
811
+ function reportPluginLockRelease(
812
+ lockDir: string,
813
+ lockInfo: {
814
+ label: string;
815
+ pluginName: string;
816
+ },
817
+ error: unknown,
818
+ ): void {
819
+ process.stderr.write(
820
+ `ttsc: could not finish cleanup for the ${lockInfo.label} "${lockInfo.pluginName}" ` +
821
+ `cache lock at ${lockDir} (${error instanceof Error ? error.message : String(error)}); ` +
822
+ `unconfirmed ownership or completion may defer later cache work\n`,
823
+ );
824
+ }
825
+
826
+ function reportPluginLockSteal(
827
+ lockDir: string,
828
+ binaryPath: string,
829
+ lockInfo: {
830
+ label: string;
831
+ pluginName: string;
832
+ quiet: boolean;
833
+ },
834
+ reason: string,
835
+ ): void {
836
+ if (lockInfo.quiet) return;
837
+ process.stderr.write(
838
+ `ttsc: reclaiming abandoned ${lockInfo.label} "${lockInfo.pluginName}" ` +
839
+ `cache lock at ${lockDir}; binary=${binaryPath} (${reason})\n`,
840
+ );
841
+ }
842
+
843
+ /**
844
+ * Copy every contributor's Go source into a sub-package of the host module and
845
+ * synthesize a blank-import file alongside the host's entry package so each
846
+ * contributor's `init()` runs before `main`.
847
+ *
848
+ * - Sources land at `<scratch>/<CONTRIB_DIRNAME>/<name>/` (recursive copy with
849
+ * the same pruning rules used for the host source).
850
+ * - The entry directory receives `<CONTRIBUTIONS_FILE_NAME>` containing one
851
+ * blank-import per contributor. The host's module path is read from the
852
+ * materialized go.mod, so the import path is always correct for the host
853
+ * plugin's actual module declaration.
854
+ * - Contributors that ship their own `go.mod` are rejected — the design relies on
855
+ * the contributor living inside the host's module so that workspace overlay
856
+ * rules and the host's dependency declarations govern module resolution. This
857
+ * is a module-ownership rule, not a sandbox preventing arbitrary imports or
858
+ * proving dependency content from the manifest alone.
859
+ */
860
+ function mergeContributors(opts: {
861
+ contributors: readonly ITtscBuildContributor[];
862
+ entry: string;
863
+ goModReader: SourcePluginWorkspace.GoModReader;
864
+ keyedDigests: ReadonlyMap<string, string>;
865
+ pluginName: string;
866
+ scratchDir: string;
867
+ }): void {
868
+ const hostModulePath = opts.goModReader.read(opts.scratchDir).modulePath;
869
+ if (hostModulePath === null || hostModulePath === "") {
870
+ throw new Error(
871
+ `ttsc: plugin "${opts.pluginName}" cannot accept contributors because its module ` +
872
+ `root has no resolvable go.mod module path`,
873
+ );
874
+ }
875
+ const contribRoot = path.join(opts.scratchDir, CONTRIB_DIRNAME);
876
+ // Refuse to merge when the host plugin's own source already owns a
877
+ // `contrib/` directory. We'd otherwise silently merge contributor
878
+ // files into a pre-populated host package and ship a hybrid binary
879
+ // whose contents nobody declared. Loud failure is the only safe
880
+ // option — the host plugin must rename its directory or the
881
+ // contributor system must use a different sub-package root.
882
+ if (fs.existsSync(contribRoot)) {
883
+ throw new Error(
884
+ `ttsc: plugin "${opts.pluginName}" already ships a ${CONTRIB_DIRNAME}/ directory in its source; ` +
885
+ `contributor merge would silently overwrite. Rename the host plugin's directory to a different name.`,
886
+ );
887
+ }
888
+ fs.mkdirSync(contribRoot, { recursive: true });
889
+ // Sort contributors by name so the synthesized `ttsc_contributions.go`
890
+ // emits blank imports in a deterministic order independent of
891
+ // declaration order. The cache key is already sort-stable
892
+ // (`computeCacheKey` sorts contributors by name), so without this
893
+ // matching sort the SAME cache key could correspond to two distinct
894
+ // binaries whose `init()` sequence across contributors differs by
895
+ // import order.
896
+ const sortedContributors = [...opts.contributors].sort((a, b) =>
897
+ a.name < b.name ? -1 : a.name > b.name ? 1 : 0,
898
+ );
899
+ const imports: string[] = [];
900
+ for (const contributor of sortedContributors) {
901
+ OwnedSynchronousProcess.checkpoint();
902
+ SourcePluginAdmission.requireContributorPackage(
903
+ opts.pluginName,
904
+ contributor,
905
+ );
906
+ const target = path.join(contribRoot, contributor.name);
907
+ if (fs.existsSync(target)) {
908
+ // Defensive: validatePluginContributors already rejects duplicate
909
+ // names, and the contribRoot-existence guard above blocks the
910
+ // host plugin from pre-shipping a `contrib/` directory. Reaching
911
+ // this branch implies an upstream contract break. Fail loud
912
+ // rather than overwrite.
913
+ throw new Error(
914
+ `ttsc: plugin "${opts.pluginName}" contributor "${contributor.name}" target ${target} already exists; ` +
915
+ `contributor names must be unique within one plugin build`,
916
+ );
917
+ }
918
+ fs.cpSync(contributor.source, target, {
919
+ recursive: true,
920
+ filter: (src) => copiesPluginSourceEntry(contributor.source, src),
921
+ });
922
+ requireKeyedSource(
923
+ contributor.source,
924
+ target,
925
+ opts.keyedDigests,
926
+ opts.pluginName,
927
+ );
928
+ imports.push(`${hostModulePath}/${CONTRIB_DIRNAME}/${contributor.name}`);
929
+ }
930
+ const entryDir = path.resolve(opts.scratchDir, opts.entry);
931
+ fs.mkdirSync(entryDir, { recursive: true });
932
+ const contributionsPath = path.join(entryDir, CONTRIBUTIONS_FILE_NAME);
933
+ // Same reasoning as the contribRoot guard: when entry resolves to the
934
+ // module root (`entry === "."`), entryDir == scratchDir and a
935
+ // pre-existing `ttsc_contributions.go` from the host plugin's own
936
+ // source would be silently overwritten by the generator below.
937
+ if (fs.existsSync(contributionsPath)) {
938
+ throw new Error(
939
+ `ttsc: plugin "${opts.pluginName}" already ships ${CONTRIBUTIONS_FILE_NAME} in its entry package; ` +
940
+ `that filename is reserved for the contributor blank-import generator. Rename the host's file.`,
941
+ );
942
+ }
943
+ writeContributionsFile(contributionsPath, imports);
944
+ }
945
+
946
+ function writeContributionsFile(filePath: string, imports: string[]): void {
947
+ const importLines = imports
948
+ .map((spec) => `\t_ ${JSON.stringify(spec)}`)
949
+ .join("\n");
950
+ const body = `// Code generated by ttsc — DO NOT EDIT.
951
+ //
952
+ // This file is synthesized by ttsc's plugin builder when the host plugin
953
+ // descriptor declares "contributors". The blank imports below pull each
954
+ // contributor sub-package into the build so its init() runs before main.
955
+
956
+ package main
957
+
958
+ import (
959
+ ${importLines}
960
+ )
961
+ `;
962
+ fs.writeFileSync(filePath, body, "utf8");
963
+ }
964
+
965
+ function publishBuiltBinary(builtBinary: string, binaryPath: string): void {
966
+ OwnedSynchronousProcess.checkpoint();
967
+ const pending = `${binaryPath}.${process.pid}.${Date.now()}-${Math.random()
968
+ .toString(16)
969
+ .slice(2)}.tmp`;
970
+ try {
971
+ fs.copyFileSync(builtBinary, pending);
972
+ if (process.platform !== "win32") {
973
+ fs.chmodSync(pending, 0o755);
974
+ }
975
+ try {
976
+ OwnedSynchronousProcess.checkpoint();
977
+ fs.renameSync(pending, binaryPath);
978
+ } catch (error) {
979
+ const code = (error as NodeJS.ErrnoException).code;
980
+ if (
981
+ (code === "EEXIST" || code === "EPERM" || code === "EACCES") &&
982
+ fs.existsSync(binaryPath)
983
+ ) {
984
+ return;
985
+ }
986
+ throw error;
987
+ }
988
+ } finally {
989
+ // Copy and permission failures can leave the same pending entry as a
990
+ // failed rename. Cleanup is best-effort so it preserves the build error.
991
+ try {
992
+ fs.rmSync(pending, { force: true });
993
+ } catch {}
994
+ // Best-effort sweep of any leftover `.tmp` siblings from a prior
995
+ // crash between copyFileSync and renameSync. Same-directory pending
996
+ // names guarantee the rename stays a same-filesystem atomic op, so
997
+ // we accept the GC cost rather than move pending files to os.tmpdir.
998
+ pruneOrphanPendingBinaries(binaryPath);
999
+ }
1000
+ }
1001
+
1002
+ function pruneOrphanPendingBinaries(binaryPath: string): void {
1003
+ // Only sweep pending files owned by THIS process. Concurrent ttsc
1004
+ // invocations (two `ttsc --watch` shells against the same project)
1005
+ // may have their own `<binary>.<their-pid>.*.tmp` mid-flight, and
1006
+ // deleting them would race their renameSync into ENOENT.
1007
+ try {
1008
+ const dir = path.dirname(binaryPath);
1009
+ const prefix = `${path.basename(binaryPath)}.${process.pid}.`;
1010
+ for (const name of fs.readdirSync(dir)) {
1011
+ if (name.startsWith(prefix) && name.endsWith(".tmp")) {
1012
+ fs.rmSync(path.join(dir, name), { force: true });
1013
+ }
1014
+ }
1015
+ } catch {
1016
+ // Best-effort; never mask the underlying publish outcome.
1017
+ }
1018
+ }
1019
+
1020
+ function resolveSourceBuildTarget(opts: {
1021
+ source: string;
1022
+ pluginName: string;
1023
+ baseDir: string;
1024
+ }): {
1025
+ dir: string;
1026
+ entry: string;
1027
+ source: string;
1028
+ } {
1029
+ const source = path.isAbsolute(opts.source)
1030
+ ? opts.source
1031
+ : path.resolve(opts.baseDir, opts.source);
1032
+ if (!fs.existsSync(source)) {
1033
+ throw new Error(
1034
+ `ttsc: plugin "${opts.pluginName}" source does not exist: ${source}`,
1035
+ );
1036
+ }
1037
+ const { entry, moduleRoot } = resolvePluginGoModule(source, opts.pluginName);
1038
+ return { dir: moduleRoot, entry, source };
1039
+ }
1040
+
1041
+ /**
1042
+ * The path, below a build's scratch directory, of the tree holding its copies
1043
+ * of the sources outside the module.
1044
+ */
1045
+ const EXTERNAL_SOURCES_DIRECTORY = path.join(".ttsc", "external");
1046
+
1047
+ /**
1048
+ * Copy each source directory outside the module into the scratch directory and
1049
+ * prove the copy against the key's digest, returning each copy by the directory
1050
+ * it was taken from.
1051
+ *
1052
+ * The copies translate each volume's common source ancestor below one root,
1053
+ * omitting unrelated absolute ancestry that can exceed a native cwd limit.
1054
+ * Uniform translation preserves relative paths between two of them, such as a
1055
+ * driver's `replace` of the shims beside it, still names the copy of what it
1056
+ * named. A directory below another is copied with it and again on its own path,
1057
+ * which is the same place.
1058
+ */
1059
+ function snapshotExternalSources(
1060
+ scratchDir: string,
1061
+ directories: readonly string[],
1062
+ keyedDigests: ReadonlyMap<string, string>,
1063
+ pluginName: string,
1064
+ ): Map<string, string> {
1065
+ const root = path.join(scratchDir, EXTERNAL_SOURCES_DIRECTORY);
1066
+ const copies = createExternalSourceSnapshotLayout(root, directories);
1067
+ for (const [directory, copy] of copies) {
1068
+ OwnedSynchronousProcess.checkpoint();
1069
+ SourcePluginWorkspace.materialize(directory, copy);
1070
+ requireKeyedSource(directory, copy, keyedDigests, pluginName);
1071
+ }
1072
+ return copies;
1073
+ }
1074
+
1075
+ /**
1076
+ * Point every `replace` target outside the module at the build's copy of it.
1077
+ *
1078
+ * The build runs in a scratch copy of the module, where `../dep` names a
1079
+ * sibling of the copy instead of the module's sibling that `go build` in the
1080
+ * module compiles, and an absolute target would be read in place. The copy's
1081
+ * `go.mod` is rewritten to the absolute directory of the proven copy through
1082
+ * `go mod edit`, Go's own editor of the file. A target inside the module moved
1083
+ * with the copy and is left as it is.
1084
+ */
1085
+ function anchorReplaceDirectories(
1086
+ replacements: readonly IPluginModuleReplaceDirectory[],
1087
+ scratchDir: string,
1088
+ goBinary: string,
1089
+ env: NodeJS.ProcessEnv,
1090
+ ): void {
1091
+ for (const replacement of replacements) {
1092
+ OwnedSynchronousProcess.checkpoint();
1093
+ const old =
1094
+ replacement.version === undefined
1095
+ ? replacement.modulePath
1096
+ : `${replacement.modulePath}@${replacement.version}`;
1097
+ const result = spawnGoTool(
1098
+ goBinary,
1099
+ ["mod", "edit", `-replace=${old}=${replacement.directory}`],
1100
+ {
1101
+ cwd: scratchDir,
1102
+ encoding: "utf8",
1103
+ env: GoSourceInputs.goBuildEnv(goBinary, undefined, env),
1104
+ windowsHide: true,
1105
+ },
1106
+ );
1107
+ OwnedSynchronousProcess.checkpoint();
1108
+ if (result.error !== undefined || result.status !== 0)
1109
+ throw new Error(
1110
+ `ttsc: anchoring the replacement of ${old} failed: ${
1111
+ result.error?.message ?? (result.stderr || result.stdout)
1112
+ }`,
1113
+ );
1114
+ }
1115
+ }
1116
+
1117
+ /**
1118
+ * Require the sources a build compiled to be the ones its key digested.
1119
+ *
1120
+ * The key reads each source directory before the build, which copies the module
1121
+ * and its contributors after any wait for the build lock and snapshots overlays
1122
+ * and outside replace targets before Go starts. A source edited in between is
1123
+ * built into the binary, which would then be published, permanently, under the
1124
+ * key of the state before the edit, and served once the source returned to it.
1125
+ * The copy is digested by the rule the key used (`pluginSourceDigest`), and a
1126
+ * difference publishes nothing.
1127
+ *
1128
+ * @param source The directory the key covers.
1129
+ * @param compiled What the build compiled from it: its copy, or itself.
1130
+ * @throws When the two differ, naming the directory.
1131
+ */
1132
+ function requireKeyedSource(
1133
+ source: string,
1134
+ compiled: string,
1135
+ keyedDigests: ReadonlyMap<string, string>,
1136
+ pluginName: string,
1137
+ ): void {
1138
+ OwnedSynchronousProcess.checkpoint();
1139
+ const keyed = keyedDigests.get(path.resolve(source));
1140
+ if (keyed === undefined || pluginSourceDigest(compiled) === keyed) return;
1141
+ throw new Error(
1142
+ `ttsc: plugin "${pluginName}" source ${source} changed while it was being ` +
1143
+ `built, so the binary was not cached under the key of its earlier state. ` +
1144
+ `Build again once the edit is complete.`,
1145
+ );
1146
+ }
1147
+
1148
+ function runGoBuild(
1149
+ cwd: string,
1150
+ entry: string,
1151
+ binaryName: string,
1152
+ pluginName: string,
1153
+ goBinary: string,
1154
+ goBuildCacheRoot: string,
1155
+ env: NodeJS.ProcessEnv,
1156
+ normalizeGoToolPermissions: boolean,
1157
+ ): void {
1158
+ OwnedSynchronousProcess.checkpoint();
1159
+ ensureExecutableGoToolchain(goBinary, normalizeGoToolPermissions);
1160
+ const result = spawnGoTool(
1161
+ goBinary,
1162
+ ["build", ...GoSourceInputs.BUILD_FLAGS, "-o", binaryName, entry],
1163
+ {
1164
+ cwd,
1165
+ encoding: "utf8",
1166
+ env: GoSourceInputs.goBuildEnv(goBinary, goBuildCacheRoot, env),
1167
+ windowsHide: true,
1168
+ },
1169
+ );
1170
+ OwnedSynchronousProcess.checkpoint();
1171
+ if (result.error) {
1172
+ throw new Error(
1173
+ SourcePluginWorkspace.goSpawnFailureMessage(
1174
+ `building plugin "${pluginName}"`,
1175
+ pluginName,
1176
+ goBinary,
1177
+ cwd,
1178
+ result.error,
1179
+ ),
1180
+ );
1181
+ }
1182
+ if (result.status !== 0) {
1183
+ throw new Error(
1184
+ `ttsc: building plugin "${pluginName}" via "go build" failed:\n${result.stderr || result.stdout}`,
1185
+ );
1186
+ }
1187
+ }
1188
+
1189
+ /** Report whether this invocation owns and automatically maintains both caches. */
1190
+ function shouldManageSourceBuildCaches(
1191
+ paths: ITtscSourceBuildCachePaths,
1192
+ cacheDir: string | undefined,
1193
+ env: NodeJS.ProcessEnv,
1194
+ ): boolean {
1195
+ return (
1196
+ !cacheDir && !env.TTSC_CACHE_DIR && paths.goBuildRootSource === "ttsc-cache"
1197
+ );
1198
+ }
1199
+
1200
+ function touchCacheEntry(cacheDir: string): void {
1201
+ try {
1202
+ fs.mkdirSync(cacheDir, { recursive: true });
1203
+ SourceBuildCacheLayout.replaceCacheMetadataFile(
1204
+ path.join(cacheDir, SourceBuildCacheLayout.CACHE_LAST_USED_FILE),
1205
+ `${Date.now()}\n`,
1206
+ );
1207
+ } catch {
1208
+ // Cache hits must not fail because metadata touch failed.
1209
+ }
1210
+ }
1211
+
1212
+ /** Create one content-addressed cache entry without following a leaf alias. */
1213
+ function canonicalPluginCacheEntry(root: string, key: string): string {
1214
+ const directory = path.join(root, key);
1215
+ fs.mkdirSync(directory, { recursive: true });
1216
+ const stats = fs.lstatSync(directory);
1217
+ if (!stats.isDirectory() || stats.isSymbolicLink()) {
1218
+ throw new Error(`ttsc: unsafe plugin cache entry: ${directory}`);
1219
+ }
1220
+ const physicalDirectory = fs.realpathSync.native(directory);
1221
+ if (path.dirname(physicalDirectory) !== root) {
1222
+ throw new Error(`ttsc: plugin cache entry escaped its root: ${directory}`);
1223
+ }
1224
+ return physicalDirectory;
1225
+ }