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
@@ -1,2345 +0,0 @@
1
- import fs from "node:fs";
2
- import path from "node:path";
3
-
4
- import { resolveFlagSpec } from "../../flags/schema";
5
- import {
6
- type ProjectInputPathIdentityContext,
7
- createProjectInputPathIdentityContext,
8
- } from "../../internal/projectInputPathIdentity";
9
- import { resolveNodeBinary } from "../../internal/resolveNodeBinary";
10
- import {
11
- hasProjectPluginEntries,
12
- loadProjectPlugins,
13
- } from "../../plugin/internal/loadProjectPlugins";
14
- import type { ITtscCompilerDiagnostic } from "../../structures/ITtscCompilerDiagnostic";
15
- import type { ITtscLoadedNativePlugin } from "../../structures/internal/ITtscLoadedNativePlugin";
16
- import type { ITtscParsedProjectConfig } from "../../structures/internal/ITtscParsedProjectConfig";
17
- import type { ITtscProjectInputSnapshot } from "../../structures/internal/ITtscProjectInputSnapshot";
18
- import type { TtscBuildOptions } from "../../structures/internal/TtscBuildOptions";
19
- import type { TtscBuildResult } from "../../structures/internal/TtscBuildResult";
20
- import type { TtscCommonOptions } from "../../structures/internal/TtscCommonOptions";
21
- import { createNativeProjectContextArgs } from "./project/createNativeProjectContextArgs";
22
- import { readProjectConfig } from "./project/readProjectConfig";
23
- import {
24
- ResidentCheckProcess,
25
- type ResidentCheckRequest,
26
- } from "./residentCheckProcess";
27
- import { resolveBinary } from "./resolveBinary";
28
- import { resolveTsgo } from "./resolveTsgo";
29
- import {
30
- TSGO_ARGS_ENV,
31
- assertSharedHostCompatibility,
32
- clearInheritedSemanticConfigPath,
33
- clearInheritedTsgoArgs,
34
- inheritedSidecarEnv,
35
- linkedTransformPlugins,
36
- resolvePluginConfigDir,
37
- selectSharedHostPlugin,
38
- } from "./sharedHostHelpers";
39
- import { outputText, spawnNative } from "./spawnNative";
40
-
41
- export type RunBuildOptions = TtscBuildOptions & {
42
- skipDiagnosticsCheck?: boolean;
43
- forceListEmittedFiles?: boolean;
44
- /** Keep every compiler-owned side product inside this private directory. */
45
- isolateOutputsTo?: string;
46
- /**
47
- * Hand tsgo the `rootDir` it would otherwise infer, for a build whose
48
- * `outDir` this process injected rather than the project declaring it.
49
- *
50
- * Tsgo answers an inferred common source directory with TS5011 the moment an
51
- * `outDir` is in play, so injecting one turns a project that declares no
52
- * output at all — the `noEmit` check-only shape `tsgo`, `ttsc`, and `ttsc
53
- * --emit` all accept — into one that must configure the layout of output the
54
- * user never asked for and never sees (issue #1172).
55
- *
56
- * The pinned value is the one tsgo itself infers: with a config file in play
57
- * its common source directory is that file's directory, never the computed
58
- * common directory of the input files (`outputpaths.GetCommonSourceDirectory`
59
- * consults the file list only for a config-less program). Pinning it
60
- * therefore silences the demand without moving a single output, and it is the
61
- * same source root `prepareExecution.ts::resolveRuntimeSourceRoot`,
62
- * `runtimeHooks.ts::resolveDependencySourceRoot`, and
63
- * `watchTopology.ts::inferPerSourceCompilerOutputs` already model on the
64
- * JavaScript side.
65
- *
66
- * Ignored when the project declares its own `rootDir`: that project already
67
- * satisfies tsgo, and overriding it would relocate the emit out from under
68
- * every consumer that mirrors the declared root.
69
- *
70
- * Never set for a user-supplied `--outDir`. That outDir is the user's own
71
- * request, and TS5011 is then tsgo's genuine answer to it.
72
- */
73
- pinInferredRootDir?: boolean;
74
- /**
75
- * Receives selected native-plugin source roots after the project resolves.
76
- * The watch launcher uses these roots to invalidate a sidecar when its Go
77
- * implementation changes between rebuilds.
78
- */
79
- onWatchInputs?: (inputs: readonly string[]) => void;
80
- /**
81
- * Receives the reconciled project-rule filesystem dependency snapshot. Called
82
- * only by watch launchers; ordinary builds do not probe the optional sidecar
83
- * command.
84
- */
85
- onProjectInputs?: (inputs: ITtscProjectInputSnapshot) => void;
86
- /**
87
- * Emit an external source map from the direct tsgo build lane even when the
88
- * project configures none. Set by the ttsx runtime builds so a served emit
89
- * carries a map to inline under the source URL (issue #353). Applied only to
90
- * the plain tsgo emit — never forwarded to a native plugin host, whose own
91
- * emit honours the project's `sourceMap` setting.
92
- */
93
- forceRuntimeSourceMap?: boolean;
94
- /** Retain an already selected project's lexical identity across API lanes. */
95
- resolvedProject?: ITtscParsedProjectConfig;
96
- };
97
-
98
- type BuildTiming = {
99
- enabled: boolean;
100
- lines: string[];
101
- startedAt: bigint;
102
- };
103
-
104
- /**
105
- * Merge extra environment variables over `process.env`, always injecting
106
- * `TTSC_NODE_BINARY` so child processes can re-invoke the same Node.js binary
107
- * without searching `PATH`.
108
- */
109
- function mergeEnv(
110
- extra?: NodeJS.ProcessEnv,
111
- cwd: string = process.cwd(),
112
- ): NodeJS.ProcessEnv {
113
- const env: NodeJS.ProcessEnv = {
114
- ...process.env,
115
- ...extra,
116
- };
117
- const node = resolveNodeBinary(env, cwd);
118
- if (node === undefined) delete env.TTSC_NODE_BINARY;
119
- else env.TTSC_NODE_BINARY = node;
120
- return env;
121
- }
122
-
123
- function createBuildTiming(options: TtscCommonOptions): BuildTiming {
124
- return {
125
- enabled: hasDiagnosticsFlag(options),
126
- lines: [],
127
- startedAt: process.hrtime.bigint(),
128
- };
129
- }
130
-
131
- function hasDiagnosticsFlag(options: TtscCommonOptions): boolean {
132
- return (
133
- hasEnabledPassthroughFlag(options, "--diagnostics") ||
134
- hasEnabledPassthroughFlag(options, "--extendedDiagnostics")
135
- );
136
- }
137
-
138
- function hasEnabledPassthroughFlag(
139
- options: TtscCommonOptions,
140
- flag: string,
141
- ): boolean {
142
- const passthrough = options.passthrough ?? [];
143
- for (let i = 0; i < passthrough.length; i++) {
144
- const token = passthrough[i]!;
145
- // Identity, not spelling: the user forwards their own casing and ttsc must
146
- // read `--DIAGNOSTICS` the way tsgo does.
147
- if (resolveFlagSpec(token)?.name !== flag) continue;
148
- const equalsIndex = token.indexOf("=");
149
- if (equalsIndex !== -1) {
150
- return token.slice(equalsIndex + 1).toLowerCase() !== "false";
151
- }
152
- if (i + 1 < passthrough.length && isBooleanLiteral(passthrough[i + 1]!)) {
153
- return passthrough[i + 1]!.toLowerCase() !== "false";
154
- }
155
- return true;
156
- }
157
- return false;
158
- }
159
-
160
- function recordTiming(
161
- timing: BuildTiming,
162
- label: string,
163
- startedAt: bigint,
164
- ): void {
165
- if (!timing.enabled) return;
166
- timing.lines.push(`${label}: ${formatTimingSeconds(hrtimeMs(startedAt))}`);
167
- }
168
-
169
- function appendTimingOutput(
170
- result: TtscBuildResult,
171
- timing: BuildTiming,
172
- ): TtscBuildResult {
173
- if (!timing.enabled) return result;
174
- const lines = [
175
- ...timing.lines,
176
- `ttsc total time: ${formatTimingSeconds(hrtimeMs(timing.startedAt))}`,
177
- ];
178
- return {
179
- ...result,
180
- stdout: appendStdout(result.stdout, lines.join("\n") + "\n"),
181
- };
182
- }
183
-
184
- function appendStdout(stdout: string, text: string): string {
185
- if (stdout.length === 0 || stdout.endsWith("\n")) return stdout + text;
186
- return `${stdout}\n${text}`;
187
- }
188
-
189
- function hrtimeMs(startedAt: bigint): number {
190
- return Number(process.hrtime.bigint() - startedAt) / 1e6;
191
- }
192
-
193
- function formatTimingSeconds(ms: number): string {
194
- return `${(ms / 1000).toFixed(3)}s`;
195
- }
196
-
197
- /**
198
- * Build the environment for a native plugin spawn. Injects `TTSC_TSGO_BINARY`
199
- * and `TTSC_TTSX_BINARY` alongside the base env from `mergeEnv`, plus
200
- * `TTSC_PLUGIN_CONFIG_DIR` when the caller declared a plugin config anchor (an
201
- * embedder compiling through a generated wrapper tsconfig) so config-file
202
- * discovery walks the real project instead of the wrapper's temp-dir ancestry.
203
- * For transform-stage plugins, also passes `TTSC_LINKED_PLUGINS_JSON`
204
- * containing any linked sources so they run inside the same process as the host
205
- * plugin.
206
- */
207
- function nativePluginEnv(
208
- extra: NodeJS.ProcessEnv | undefined,
209
- execution: ReturnType<typeof resolveExecutionContext>,
210
- plugin?: ITtscLoadedNativePlugin,
211
- tsgoArgs?: string,
212
- ): NodeJS.ProcessEnv {
213
- const env = mergeEnv(
214
- {
215
- ...(execution.pluginConfigDir === undefined
216
- ? {}
217
- : { TTSC_PLUGIN_CONFIG_DIR: execution.pluginConfigDir }),
218
- TTSC_TSGO_BINARY: process.env.TTSC_TSGO_BINARY ?? execution.tsgo.binary,
219
- TTSC_TTSX_BINARY:
220
- process.env.TTSC_TTSX_BINARY ??
221
- path.join(__dirname, "..", "..", "launcher", "ttsx.js"),
222
- ...extra,
223
- },
224
- execution.projectRoot,
225
- );
226
- // Forwarded tsgo argv is per-invocation state this host owns, exactly like
227
- // the config anchor below: publish this run's payload, or drop whatever an
228
- // ancestor ttsc process left behind when this lane forwards nothing.
229
- if (tsgoArgs !== undefined) {
230
- env[TSGO_ARGS_ENV] = tsgoArgs;
231
- } else {
232
- clearInheritedTsgoArgs(env, extra);
233
- }
234
- clearInheritedSemanticConfigPath(env, extra);
235
- // The anchor is per-invocation state owned by this host: when this run
236
- // declared none (and the caller's env does not name one), drop any value
237
- // inherited from an ancestor ttsc process so a nested build never
238
- // mis-anchors its plugins at the outer project.
239
- if (
240
- execution.pluginConfigDir === undefined &&
241
- extra?.TTSC_PLUGIN_CONFIG_DIR === undefined
242
- ) {
243
- delete env.TTSC_PLUGIN_CONFIG_DIR;
244
- }
245
- if (plugin?.stage === "transform") {
246
- const linked = linkedTransformPlugins(execution.nativePlugins);
247
- if (linked.length !== 0) {
248
- env.TTSC_LINKED_PLUGINS_JSON = serializeNativePlugins(linked);
249
- }
250
- }
251
- return env;
252
- }
253
-
254
- /**
255
- * Run `ttsc` against a tsconfig. Returns once the binary exits so the CLI can
256
- * decide how to surface diagnostics. Does not throw on non-zero exit.
257
- */
258
- export function runBuild(options: RunBuildOptions = {}): TtscBuildResult {
259
- const timing = createBuildTiming(options);
260
- const result = runBuildTimed(options, timing);
261
- return appendTimingOutput(result, timing);
262
- }
263
-
264
- export type ResidentCheckWatchChange = {
265
- /** Re-resolve project, plugin, contributor, and Program topology. */
266
- reload?: boolean;
267
- /** Retain the sidecar and execution selection but cold-load its Program. */
268
- invalidate?: boolean;
269
- /** Local compiler or data paths changed since the prior cycle. */
270
- changed?: readonly string[];
271
- /** Subset of changed paths declared by ProjectRules as external inputs. */
272
- external?: readonly string[];
273
- };
274
-
275
- /**
276
- * Analysis-only watch coordinator.
277
- *
278
- * The selected project and compatible check-stage processes stay resident
279
- * across ordinary source/data edits. A config, root-set, contributor, or plugin
280
- * topology transition calls for a full reset before the next cycle. Emit and
281
- * transform lanes can pass through the coordinator, but compatibility checks
282
- * keep them on the established one-shot path without starting sidecars.
283
- */
284
- export class ResidentCheckWatchSession {
285
- private execution: ReturnType<typeof resolveExecutionContext> | undefined;
286
- private readonly pendingChanges = new Map<number, ResidentCheckRequest>();
287
- private projectInputs: ITtscProjectInputSnapshot | undefined;
288
- private readonly processes = new Map<string, ResidentCheckProcess>();
289
-
290
- public async run(
291
- options: RunBuildOptions,
292
- change: ResidentCheckWatchChange = {},
293
- ): Promise<TtscBuildResult> {
294
- if (change.reload === true) this.reset();
295
-
296
- const timing = createBuildTiming(options);
297
- const projectFree = runProjectFreeTerminalFlag(options);
298
- if (projectFree !== null) {
299
- this.reset();
300
- return appendTimingOutput(projectFree, timing);
301
- }
302
-
303
- let execution = this.execution;
304
- const reusedExecution = execution !== undefined;
305
- let buildOptions: RunBuildOptions;
306
- if (execution === undefined) {
307
- const setupStartedAt = process.hrtime.bigint();
308
- execution = resolveExecutionContext(options);
309
- const discoveryOptions = this.captureProjectInputs(options);
310
- const prepared = prepareBuildExecution(
311
- discoveryOptions,
312
- timing,
313
- execution,
314
- setupStartedAt,
315
- );
316
- buildOptions = prepared.buildOptions;
317
- if (prepared.result !== undefined) {
318
- this.reset();
319
- return appendTimingOutput(prepared.result, timing);
320
- }
321
- if (!residentCheckExecutionIsCompatible(buildOptions, execution)) {
322
- this.reset();
323
- return appendTimingOutput(
324
- runPreparedBuild(options, timing, execution, buildOptions),
325
- timing,
326
- );
327
- }
328
- this.execution = execution;
329
- } else {
330
- buildOptions = applyProjectNoEmit(options, execution);
331
- }
332
- if (
333
- reusedExecution &&
334
- this.refreshProjectInputTopology(options, execution)
335
- ) {
336
- this.reset();
337
- return this.run(options);
338
- }
339
-
340
- const checked = await this.runCheckPlugins(
341
- buildOptions,
342
- execution,
343
- timing,
344
- change,
345
- );
346
- let result: TtscBuildResult;
347
- if (checked.status !== 0) {
348
- result = appendTypeScriptDiagnosticsAfterPluginFailure(
349
- checked,
350
- buildOptions,
351
- execution,
352
- );
353
- } else if (
354
- checkPluginsReportTypeScriptDiagnostics(execution.nativePlugins)
355
- ) {
356
- result = checked;
357
- } else {
358
- result = appendBuildOutput(
359
- checked,
360
- runTsgo(execution, ["--noEmit"], buildOptions),
361
- );
362
- }
363
- return appendTimingOutput(result, timing);
364
- }
365
-
366
- /** Terminate every sidecar and discard the cached selection context. */
367
- public dispose(): void {
368
- this.reset();
369
- }
370
-
371
- private reset(): void {
372
- for (const process of this.processes.values()) process.dispose();
373
- this.processes.clear();
374
- this.pendingChanges.clear();
375
- this.execution = undefined;
376
- this.projectInputs = undefined;
377
- }
378
-
379
- private captureProjectInputs(options: RunBuildOptions): RunBuildOptions {
380
- const onProjectInputs = options.onProjectInputs;
381
- if (onProjectInputs === undefined) return options;
382
- return {
383
- ...options,
384
- onProjectInputs: (snapshot) => {
385
- this.projectInputs = snapshot;
386
- onProjectInputs(snapshot);
387
- },
388
- };
389
- }
390
-
391
- private refreshProjectInputTopology(
392
- options: RunBuildOptions,
393
- execution: ReturnType<typeof resolveExecutionContext>,
394
- ): boolean {
395
- if (options.onProjectInputs === undefined) return false;
396
- const next = discoverNativeProjectInputs(options, execution);
397
- const changed =
398
- this.projectInputs !== undefined &&
399
- !projectInputSnapshotsEqual(this.projectInputs, next);
400
- this.projectInputs = next;
401
- options.onProjectInputs(next);
402
- return changed;
403
- }
404
-
405
- private async runCheckPlugins(
406
- options: RunBuildOptions,
407
- execution: ReturnType<typeof resolveExecutionContext>,
408
- timing: BuildTiming,
409
- change: ResidentCheckWatchChange,
410
- ): Promise<TtscBuildResult> {
411
- let out: TtscBuildResult = {
412
- diagnostics: [],
413
- status: 0,
414
- stderr: "",
415
- stdout: "",
416
- };
417
- const tsgoArgs = createNativeTsgoArgs(options);
418
- const checks = planResidentCheckEntries(
419
- execution.nativePlugins,
420
- (plugin) => createNativeCheckArgs(execution, options, plugin),
421
- tsgoArgs,
422
- );
423
- const request = residentCheckRequest(change, execution.projectRoot);
424
- // Buffer the cycle for every resident plugin before running any of them.
425
- // An earlier plugin may fail and short-circuit diagnostics, but a later
426
- // sidecar must still receive every filesystem transition when it resumes.
427
- bufferResidentCheckEntryRequests(this.pendingChanges, checks, request);
428
-
429
- for (const { args, entryIndex, key, plugin } of checks) {
430
- let result: TtscBuildResult;
431
- if (key === undefined) {
432
- result = runNativePluginCommand(
433
- plugin,
434
- args,
435
- options,
436
- execution,
437
- "ttsc.check",
438
- timing,
439
- `ttsc check plugin ${plugin.name} time`,
440
- tsgoArgs,
441
- );
442
- } else {
443
- const startedAt = process.hrtime.bigint();
444
- let resident = this.processes.get(key);
445
- if (resident === undefined) {
446
- resident = new ResidentCheckProcess({
447
- args: ["check-serve", ...args.slice(1)],
448
- binary: plugin.binary,
449
- cwd: execution.projectRoot,
450
- env: nativePluginEnv(options.env, execution, plugin, tsgoArgs),
451
- });
452
- this.processes.set(key, resident);
453
- }
454
- try {
455
- const reply = await resident.request(
456
- takeResidentCheckEntryRequest(this.pendingChanges, entryIndex),
457
- );
458
- result = normalizeBuildOutput(
459
- {
460
- status: reply.status,
461
- stderr: reply.stderr,
462
- stdout: reply.stdout,
463
- },
464
- execution.projectRoot,
465
- );
466
- } catch {
467
- resident.dispose();
468
- this.processes.delete(key);
469
- // The one-shot fallback observes the complete current filesystem,
470
- // and a later sidecar starts cold, so neither needs old deltas.
471
- // A capability-aware host may still disappear or violate framing.
472
- // Preserve correctness by running the established one-shot command
473
- // for this cycle; the next cycle gets one clean respawn attempt.
474
- result = runNativePluginCommand(
475
- plugin,
476
- args,
477
- options,
478
- execution,
479
- "ttsc.check",
480
- { ...timing, enabled: false },
481
- "",
482
- );
483
- }
484
- recordTiming(
485
- timing,
486
- `ttsc check plugin ${plugin.name} time`,
487
- startedAt,
488
- );
489
- }
490
- out = appendBuildOutput(out, result);
491
- if (result.status !== 0) return out;
492
- }
493
- return out;
494
- }
495
- }
496
-
497
- function projectInputSnapshotsEqual(
498
- left: ITtscProjectInputSnapshot,
499
- right: ITtscProjectInputSnapshot,
500
- ): boolean {
501
- const leftReloadFiles = left.reloadFiles ?? [];
502
- const rightReloadFiles = right.reloadFiles ?? [];
503
- const leftReloadDirectories = left.reloadDirectories ?? [];
504
- const rightReloadDirectories = right.reloadDirectories ?? [];
505
- return (
506
- left.root === right.root &&
507
- left.files.length === right.files.length &&
508
- left.globs.length === right.globs.length &&
509
- leftReloadDirectories.length === rightReloadDirectories.length &&
510
- leftReloadFiles.length === rightReloadFiles.length &&
511
- left.files.every((value, index) => value === right.files[index]) &&
512
- left.globs.every((value, index) => value === right.globs[index]) &&
513
- leftReloadDirectories.every(
514
- (value, index) => value === rightReloadDirectories[index],
515
- ) &&
516
- leftReloadFiles.every((value, index) => value === rightReloadFiles[index])
517
- );
518
- }
519
-
520
- function residentCheckExecutionIsCompatible(
521
- options: RunBuildOptions,
522
- execution: ReturnType<typeof resolveExecutionContext>,
523
- ): boolean {
524
- return (
525
- options.emit === false &&
526
- options.fix !== true &&
527
- options.format !== true &&
528
- forwardsTerminalTsgoFlag(options) === false &&
529
- execution.nativePlugins.every((plugin) => plugin.stage === "check")
530
- );
531
- }
532
-
533
- function residentCheckProcessKey(
534
- plugin: ITtscLoadedNativePlugin,
535
- args: readonly string[],
536
- tsgoArgs?: string,
537
- ): string {
538
- return `${plugin.binary}\0${plugin.name}\0${JSON.stringify(args)}\0${tsgoArgs ?? ""}`;
539
- }
540
-
541
- export type ResidentCheckEntryPlan = {
542
- args: string[];
543
- entryIndex: number;
544
- key: string | undefined;
545
- plugin: ITtscLoadedNativePlugin;
546
- };
547
-
548
- /**
549
- * Plan every configured check entry while sharing resident processes only by
550
- * binary/name/argument identity.
551
- */
552
- export function planResidentCheckEntries(
553
- plugins: readonly ITtscLoadedNativePlugin[],
554
- createArgs: (plugin: ITtscLoadedNativePlugin) => string[],
555
- // Part of the process identity even though it never appears in argv: the
556
- // forwarded tsgo payload rides the environment, and a resident process holds
557
- // the compiler options it was started with. Two cycles that forward different
558
- // flags must not share one warm Program.
559
- tsgoArgs?: string,
560
- ): ResidentCheckEntryPlan[] {
561
- return plugins
562
- .filter((candidate) => candidate.stage === "check")
563
- .map((plugin, entryIndex) => {
564
- const args = createArgs(plugin);
565
- return {
566
- args,
567
- entryIndex,
568
- key:
569
- plugin.capabilities?.residentCheck === true
570
- ? residentCheckProcessKey(plugin, args, tsgoArgs)
571
- : undefined,
572
- plugin,
573
- };
574
- });
575
- }
576
-
577
- /** Retain one complete change stream per configured resident check entry. */
578
- export function bufferResidentCheckEntryRequests(
579
- pending: Map<number, ResidentCheckRequest>,
580
- checks: readonly ResidentCheckEntryPlan[],
581
- request: ResidentCheckRequest,
582
- ): void {
583
- for (const check of checks) {
584
- if (check.key === undefined) continue;
585
- pending.set(
586
- check.entryIndex,
587
- mergeResidentCheckRequests(pending.get(check.entryIndex), request),
588
- );
589
- }
590
- }
591
-
592
- /** Consume exactly one configured entry's buffered request. */
593
- export function takeResidentCheckEntryRequest(
594
- pending: Map<number, ResidentCheckRequest>,
595
- entryIndex: number,
596
- ): ResidentCheckRequest {
597
- const request = pending.get(entryIndex);
598
- if (request === undefined) {
599
- throw new Error(
600
- `ttsc: resident check entry ${String(entryIndex)} has no buffered request`,
601
- );
602
- }
603
- pending.delete(entryIndex);
604
- return request;
605
- }
606
-
607
- export function residentCheckRequest(
608
- change: ResidentCheckWatchChange,
609
- cwd: string,
610
- ): ResidentCheckRequest {
611
- const normalize = (values: readonly string[] | undefined): string[] =>
612
- [...new Set(values?.map((value) => path.resolve(cwd, value)) ?? [])].sort();
613
- const changed = normalize(change.changed);
614
- const external = normalize(change.external);
615
- return {
616
- ...(change.invalidate === true ? { invalidate: true } : {}),
617
- ...(changed.length === 0 ? {} : { changed }),
618
- ...(external.length === 0 ? {} : { external }),
619
- };
620
- }
621
-
622
- function mergeResidentCheckRequests(
623
- previous: ResidentCheckRequest | undefined,
624
- current: ResidentCheckRequest,
625
- ): ResidentCheckRequest {
626
- const merge = (
627
- left: readonly string[] | undefined,
628
- right: readonly string[] | undefined,
629
- ): string[] => [...new Set([...(left ?? []), ...(right ?? [])])].sort();
630
- const changed = merge(previous?.changed, current.changed);
631
- const external = merge(previous?.external, current.external);
632
- return {
633
- ...(changed.length === 0 ? {} : { changed }),
634
- ...(external.length === 0 ? {} : { external }),
635
- ...(previous?.invalidate === true || current.invalidate === true
636
- ? { invalidate: true }
637
- : {}),
638
- };
639
- }
640
-
641
- function runBuildTimed(
642
- options: RunBuildOptions,
643
- timing: BuildTiming,
644
- ): TtscBuildResult {
645
- const projectFree = runProjectFreeTerminalFlag(options);
646
- if (projectFree !== null) return projectFree;
647
- const setupStartedAt = process.hrtime.bigint();
648
- const execution = resolveExecutionContext(options);
649
- return runBuildWithExecution(options, timing, execution, setupStartedAt);
650
- }
651
-
652
- function runBuildWithExecution(
653
- options: RunBuildOptions,
654
- timing: BuildTiming,
655
- execution: ReturnType<typeof resolveExecutionContext>,
656
- setupStartedAt: bigint,
657
- ): TtscBuildResult {
658
- const prepared = prepareBuildExecution(
659
- options,
660
- timing,
661
- execution,
662
- setupStartedAt,
663
- );
664
- if (prepared.result !== undefined) return prepared.result;
665
- return runPreparedBuild(options, timing, execution, prepared.buildOptions);
666
- }
667
-
668
- function prepareBuildExecution(
669
- options: RunBuildOptions,
670
- timing: BuildTiming,
671
- execution: ReturnType<typeof resolveExecutionContext>,
672
- setupStartedAt: bigint,
673
- ): { buildOptions: RunBuildOptions; result?: TtscBuildResult } {
674
- if (
675
- execution.nativePlugins.length > 0 ||
676
- execution.pluginSetupFailure !== undefined
677
- ) {
678
- recordTiming(timing, "ttsc plugin setup time", setupStartedAt);
679
- }
680
- const buildOptions = applyProjectNoEmit(options, execution);
681
- if (execution.pluginSetupFailure !== undefined) {
682
- return {
683
- buildOptions,
684
- result: appendTypeScriptDiagnosticsAfterPluginFailure(
685
- execution.pluginSetupFailure,
686
- buildOptions,
687
- execution,
688
- ),
689
- };
690
- }
691
- if (options.onProjectInputs !== undefined) {
692
- options.onProjectInputs(discoverNativeProjectInputs(options, execution));
693
- }
694
- return { buildOptions };
695
- }
696
-
697
- function runPreparedBuild(
698
- options: RunBuildOptions,
699
- timing: BuildTiming,
700
- execution: ReturnType<typeof resolveExecutionContext>,
701
- buildOptions: RunBuildOptions,
702
- ): TtscBuildResult {
703
- if (execution.nativePlugins.length > 0) {
704
- const compilers = execution.nativePlugins.filter(
705
- (plugin) => plugin.stage === "transform",
706
- );
707
- const checked = runNativeCheckPlugins(buildOptions, execution, timing);
708
- if (checked.status !== 0) {
709
- return appendTypeScriptDiagnosticsAfterPluginFailure(
710
- checked,
711
- buildOptions,
712
- execution,
713
- );
714
- }
715
-
716
- if (buildOptions.emit === false) {
717
- if (buildOptions.format === true) {
718
- // Format mode is write-only by contract: the lint sidecar
719
- // already rewrote source files and reported nothing. Running
720
- // tsgo --noEmit OR a transform compiler afterwards would either
721
- // surface unrelated type errors as if they were format failures
722
- // (tsgo path) or apply transform-stage rewrites on top of the
723
- // formatted source (transform path), both of which break the
724
- // documented "ttsc format only formats" guarantee. The
725
- // short-circuit fires before either branch so format mode is a
726
- // single concern regardless of how many compilers the project
727
- // configures. Callers that want a recheck or a transform pass
728
- // after format should run `ttsc check` / `ttsc build` as a
729
- // separate invocation.
730
- return checked;
731
- }
732
- if (compilers.length !== 0) {
733
- assertSharedHostCompatibility(compilers, "emit");
734
- const compiled = buildWithNativeCompilerPlugins(
735
- buildOptions,
736
- execution,
737
- compilers,
738
- timing,
739
- );
740
- const result = appendBuildOutput(checked, compiled);
741
- return compiled.status === 0
742
- ? result
743
- : appendTypeScriptDiagnosticsAfterPluginFailure(
744
- result,
745
- buildOptions,
746
- execution,
747
- );
748
- }
749
- if (checkPluginsReportTypeScriptDiagnostics(execution.nativePlugins)) {
750
- return checked;
751
- }
752
- return appendBuildOutput(
753
- checked,
754
- runTsgo(execution, ["--noEmit"], buildOptions),
755
- );
756
- }
757
-
758
- let result: TtscBuildResult;
759
- if (compilers.length !== 0) {
760
- assertSharedHostCompatibility(compilers, "emit");
761
- const compiled = buildWithNativeCompilerPlugins(
762
- buildOptions,
763
- execution,
764
- compilers,
765
- timing,
766
- );
767
- result = appendBuildOutput(checked, compiled);
768
- if (compiled.status !== 0) {
769
- result = appendTypeScriptDiagnosticsAfterPluginFailure(
770
- result,
771
- buildOptions,
772
- execution,
773
- );
774
- }
775
- } else {
776
- if (
777
- buildOptions.skipDiagnosticsCheck !== true &&
778
- !checkPluginsReportTypeScriptDiagnostics(execution.nativePlugins) &&
779
- !forwardsTerminalTsgoFlag(buildOptions)
780
- ) {
781
- const tsgoChecked = runTsgo(execution, ["--noEmit"], buildOptions);
782
- if (tsgoChecked.status !== 0) {
783
- return appendBuildOutput(checked, tsgoChecked);
784
- }
785
- }
786
- const args = createTsgoBuildArgs(execution, buildOptions, {
787
- listEmittedFiles: buildOptions.forceListEmittedFiles === true,
788
- });
789
- const emitted = runTsgoBuild(execution, buildOptions, args);
790
- result = appendBuildOutput(checked, emitted);
791
- }
792
-
793
- return result;
794
- }
795
-
796
- if (buildOptions.format === true) {
797
- // Format mode is write-only by contract — see the matching
798
- // short-circuit in the with-native-plugins branch above. When no
799
- // native plugin is loaded there is nothing for `ttsc format` to
800
- // rewrite, so emit an empty success result rather than falling
801
- // through to a tsgo pass that would surface unrelated type errors
802
- // as if they were format failures.
803
- return {
804
- diagnostics: [],
805
- status: 0,
806
- stdout: "",
807
- stderr: "",
808
- };
809
- }
810
-
811
- const args = createTsgoBuildArgs(execution, buildOptions, {
812
- // `--verbose` promises the emitted-file list on every lane, and the list
813
- // only exists if tsgo is asked for it. ttsc adds the flag for itself here
814
- // exactly as it does for `forceListEmittedFiles`, and strips the raw
815
- // `TSFILE:` lines back out below.
816
- listEmittedFiles:
817
- buildOptions.emit !== false &&
818
- (buildOptions.forceListEmittedFiles === true ||
819
- buildOptions.quiet === false),
820
- noEmitOnError:
821
- buildOptions.emit !== false &&
822
- buildOptions.skipDiagnosticsCheck !== true &&
823
- !forwardsTerminalTsgoFlag(buildOptions),
824
- });
825
- return runTsgoBuild(execution, buildOptions, args);
826
- }
827
-
828
- /**
829
- * Answer a forwarded terminal flag whose meaning precedes a project, when no
830
- * project can be resolved.
831
- *
832
- * `ttsc --init` exists to write the starter `tsconfig.json`, and `ttsc --all` /
833
- * `ttsc -?` only print tsgo's help — none of them needs a project, yet all
834
- * three died in project resolution because that layer ran first and
835
- * unconditionally. The classification is `FLAG_SCHEMA`'s (`terminal` +
836
- * `projectFree`), so marking a further flag project-free needs no edit here.
837
- *
838
- * A resolvable project keeps the established lane untouched: the build path
839
- * still forwards the flag with `-p <tsconfig>` from the project root, so `ttsc
840
- * --init` inside an existing project still reports tsgo's TS5054 instead of
841
- * writing a second config into the current directory. Returns `null` when this
842
- * lane does not apply.
843
- */
844
- function runProjectFreeTerminalFlag(
845
- options: RunBuildOptions,
846
- ): TtscBuildResult | null {
847
- if (!forwardsProjectFreeTerminalTsgoFlag(options)) return null;
848
- if (options.resolvedProject !== undefined) return null;
849
- const cwd = path.resolve(options.cwd ?? process.cwd());
850
- try {
851
- readProjectConfig({
852
- cwd,
853
- projectRoot: options.projectRoot,
854
- tsconfig: options.tsconfig,
855
- });
856
- return null;
857
- } catch {
858
- // Any resolution failure takes this branch, not only "not found": a
859
- // malformed config and an explicitly named missing `-p` path are equally
860
- // beside the point for a flag whose meaning does not presuppose a project.
861
- // Forward it to tsgo from the invocation directory instead of failing.
862
- }
863
- const tsgo = resolveTsgo({ ...options, cwd });
864
- const res = spawnNative(tsgo.binary, [...(options.passthrough ?? [])], {
865
- cwd,
866
- env: mergeEnv(options.env, cwd),
867
- encoding: "utf8",
868
- });
869
- if (res.error) {
870
- throw new Error(
871
- `ttsc: failed to spawn ${tsgo.binary}: ${res.error.message}`,
872
- );
873
- }
874
- return normalizeBuildOutput(
875
- {
876
- status: res.status ?? 1,
877
- stdout: outputText(res.stdout),
878
- stderr: outputText(res.stderr),
879
- },
880
- cwd,
881
- );
882
- }
883
-
884
- /**
885
- * A tsconfig-level `noEmit: true` is an analysis-only build unless the user
886
- * explicitly asks `ttsc --emit` to override it. Treat it like CLI `--noEmit`
887
- * before composing tsgo/native-host arguments so ttsc does not add emit-only
888
- * guards around projects that cannot emit.
889
- */
890
- function applyProjectNoEmit(
891
- options: RunBuildOptions,
892
- execution: ReturnType<typeof resolveExecutionContext>,
893
- ): RunBuildOptions {
894
- if (options.emit !== undefined || execution.projectNoEmit !== true) {
895
- return options;
896
- }
897
- return { ...options, emit: false };
898
- }
899
-
900
- function checkPluginsReportTypeScriptDiagnostics(
901
- plugins: readonly ITtscLoadedNativePlugin[],
902
- ): boolean {
903
- return plugins.some(
904
- (plugin) =>
905
- plugin.stage === "check" && plugin.reportsTypeScriptDiagnostics === true,
906
- );
907
- }
908
-
909
- /**
910
- * Preserve a failed plugin's output and status while collecting TypeScript
911
- * diagnostics through an independent no-emit pass.
912
- *
913
- * A sidecar can fail before it loads the project Program, including when a Go
914
- * panic or another runtime error terminates the process. The plugin failure
915
- * must still block emit, but it must not hide unrelated errors in the user's
916
- * TypeScript source. The fallback runs only after a plugin failure, skips modes
917
- * whose contract intentionally omits diagnostics, and avoids appending a batch
918
- * the plugin already reported itself.
919
- */
920
- function appendTypeScriptDiagnosticsAfterPluginFailure(
921
- failure: TtscBuildResult,
922
- options: RunBuildOptions,
923
- execution: ReturnType<typeof resolveExecutionContext>,
924
- ): TtscBuildResult {
925
- if (
926
- options.format === true ||
927
- options.skipDiagnosticsCheck === true ||
928
- forwardsTerminalTsgoFlag(options)
929
- ) {
930
- return failure;
931
- }
932
- const typechecked = runTsgo(
933
- execution,
934
- ["--noEmit"],
935
- createPluginFailureTypecheckOptions(options),
936
- );
937
- const fallback = filterReportedTypeScriptDiagnostics(
938
- failure,
939
- typechecked,
940
- execution.projectRoot,
941
- );
942
- if (fallback === null) {
943
- return failure;
944
- }
945
- // Structured consumers (the public API's `IFailure.diagnostics`) never see
946
- // stdout/stderr, so a plugin failure that reported no parsable diagnostics
947
- // must be seeded as one before recovered TypeScript diagnostics are appended
948
- // — otherwise the recovery would replace the plugin error with unrelated
949
- // type errors instead of surfacing both.
950
- const seeded =
951
- failure.diagnostics.length === 0
952
- ? { ...failure, diagnostics: [createProcessDiagnostic(failure)] }
953
- : failure;
954
- const status = failure.status;
955
- return {
956
- ...appendBuildOutput(seeded, fallback),
957
- status,
958
- };
959
- }
960
-
961
- /**
962
- * Make the recovery pass parseable regardless of the user's display flags. This
963
- * is an internal second pass, so plain output is required to remove only
964
- * diagnostics that the failed plugin already printed.
965
- */
966
- function createPluginFailureTypecheckOptions(
967
- options: RunBuildOptions,
968
- ): RunBuildOptions {
969
- const passthrough: string[] = [];
970
- for (let i = 0; i < (options.passthrough?.length ?? 0); i++) {
971
- const token = options.passthrough![i]!;
972
- if (resolveFlagSpec(token)?.name === "--pretty") {
973
- // `--pretty` is boolean: it owns a following token only when that token
974
- // is the literal `true`/`false`, and the inline form carries its own.
975
- if (
976
- !token.includes("=") &&
977
- isBooleanLiteral(options.passthrough![i + 1] ?? "")
978
- ) {
979
- i++;
980
- }
981
- continue;
982
- }
983
- passthrough.push(token);
984
- }
985
- return {
986
- ...options,
987
- passthrough,
988
- structuredDiagnostics: true,
989
- };
990
- }
991
-
992
- /** Return only fallback diagnostics the failed plugin did not already report. */
993
- function filterReportedTypeScriptDiagnostics(
994
- failure: TtscBuildResult,
995
- typechecked: TtscBuildResult,
996
- cwd: string,
997
- ): TtscBuildResult | null {
998
- if (typechecked.diagnostics.length === 0) {
999
- return typechecked.status === 0 ? null : typechecked;
1000
- }
1001
- const diagnostics = typechecked.diagnostics.filter(
1002
- (diagnostic) =>
1003
- !failure.diagnostics.some((existing) =>
1004
- compilerDiagnosticsEqual(existing, diagnostic),
1005
- ),
1006
- );
1007
- if (diagnostics.length === 0) return null;
1008
- if (diagnostics.length === typechecked.diagnostics.length) return typechecked;
1009
- return {
1010
- ...typechecked,
1011
- diagnostics,
1012
- stderr: filterCompilerDiagnosticText(typechecked.stderr, diagnostics, cwd),
1013
- stdout: filterCompilerDiagnosticText(typechecked.stdout, diagnostics, cwd),
1014
- };
1015
- }
1016
-
1017
- /** Remove diagnostic lines absent from the selected structured result. */
1018
- function filterCompilerDiagnosticText(
1019
- text: string,
1020
- diagnostics: readonly ITtscCompilerDiagnostic[],
1021
- cwd: string,
1022
- ): string {
1023
- const out: string[] = [];
1024
- let keepContinuation = true;
1025
- for (const line of text.split(/\r?\n/)) {
1026
- const plain = stripAnsi(line);
1027
- const diagnostic = parseDiagnosticLine(plain, cwd);
1028
- if (diagnostic !== null) {
1029
- keepContinuation = diagnostics.some((selected) =>
1030
- compilerDiagnosticsEqual(selected, diagnostic),
1031
- );
1032
- if (keepContinuation) out.push(line);
1033
- continue;
1034
- }
1035
- if (/^Found\s+\d+\s+errors?/i.test(plain)) continue;
1036
- if (!keepContinuation && /^\s+/.test(line)) continue;
1037
- keepContinuation = true;
1038
- out.push(line);
1039
- }
1040
- return out.join("\n");
1041
- }
1042
-
1043
- /** Compare normalized compiler diagnostics before appending fallback output. */
1044
- function compilerDiagnosticsEqual(
1045
- left: ITtscCompilerDiagnostic,
1046
- right: ITtscCompilerDiagnostic,
1047
- ): boolean {
1048
- return (
1049
- left.category === right.category &&
1050
- left.code === right.code &&
1051
- left.file === right.file &&
1052
- diagnosticPositionsEqual(left, right) &&
1053
- diagnosticHeadline(left.messageText) ===
1054
- diagnosticHeadline(right.messageText)
1055
- );
1056
- }
1057
-
1058
- /** Compare offsets when available, otherwise compare rendered line/column. */
1059
- function diagnosticPositionsEqual(
1060
- left: ITtscCompilerDiagnostic,
1061
- right: ITtscCompilerDiagnostic,
1062
- ): boolean {
1063
- if (left.start !== undefined && right.start !== undefined) {
1064
- return left.start === right.start;
1065
- }
1066
- return left.line === right.line && left.character === right.character;
1067
- }
1068
-
1069
- /** Remove pretty-rendered source context from a diagnostic message. */
1070
- function diagnosticHeadline(message: string): string {
1071
- return message.split(/\r?\n/, 1)[0]!.trim();
1072
- }
1073
-
1074
- /**
1075
- * Report whether the caller forwarded a print-and-exit tsgo flag
1076
- * (`--showConfig`, `--listFilesOnly`, `--all`, `--init`, `-?`), so ttsc can
1077
- * avoid adding compile-only flags to a command that is not going to compile.
1078
- *
1079
- * Schema-derived, and resolved by flag identity rather than by exact spelling:
1080
- * `resolveFlagSpec` applies the one normalization the parsing engine and the
1081
- * generated Go allow-lists use, so `--showconfig` classifies exactly like
1082
- * `--showConfig`. Adding a new terminal flag means editing `schema.ts` and
1083
- * re-running `pnpm run gen:flags`; this predicate needs no edit, and it grows
1084
- * no normalization of its own for the next consumer to forget.
1085
- */
1086
- function forwardsTerminalTsgoFlag(options: TtscCommonOptions): boolean {
1087
- return (
1088
- options.passthrough?.some(
1089
- (token) => resolveFlagSpec(token)?.terminal === true,
1090
- ) ?? false
1091
- );
1092
- }
1093
-
1094
- /**
1095
- * Report whether the caller forwarded a terminal flag whose meaning does not
1096
- * presuppose a resolved project (`--init`, `--all`, `-?`).
1097
- *
1098
- * Derived from `FLAG_SCHEMA[*].projectFree`, through the same identity
1099
- * resolution as every other classification — never a literal list of flag names
1100
- * beside this branch, which is the shape that let terminal-flag awareness exist
1101
- * in one layer and be missing from the layer above it.
1102
- */
1103
- function forwardsProjectFreeTerminalTsgoFlag(
1104
- options: TtscCommonOptions,
1105
- ): boolean {
1106
- return (
1107
- options.passthrough?.some((token) => {
1108
- const flag = resolveFlagSpec(token);
1109
- return flag?.terminal === true && flag.projectFree === true;
1110
- }) ?? false
1111
- );
1112
- }
1113
-
1114
- /**
1115
- * Report whether the caller forwarded a flag ttsc adds to tsgo internally —
1116
- * e.g. `--listEmittedFiles` (ttsc adds it to learn emitted paths) or `--noEmit`
1117
- * (ttsc adds it for the pre-emit type-check). When the user also forwards the
1118
- * same flag, post-processing must keep the user-visible effect intact instead
1119
- * of stripping it as ttsc-internal noise.
1120
- *
1121
- * Schema-derived: `FLAG_SCHEMA[*].internalShadow === true`. RC-2 from the RCA
1122
- * (RCA section 3, `--listEmittedFiles` / `--showConfig` swallowed): the
1123
- * per-flag `passthrough.includes("…")` check is now one structural lookup
1124
- * against the schema, not one bespoke `if` per shadow flag.
1125
- */
1126
- function forwardsInternalShadowFlag(
1127
- options: TtscCommonOptions,
1128
- flag: string,
1129
- ): boolean {
1130
- const passthrough = options.passthrough;
1131
- if (passthrough === undefined) return false;
1132
- // Resolution covers the bare form (`--pretty`), the inline-value form
1133
- // (`--pretty=true`), and every casing tsgo accepts (`--PRETTY`) — the
1134
- // launcher forwards the user's own spelling verbatim, so comparing raw
1135
- // strings would miss a spelling tsgo honours.
1136
- return passthrough.some((token) => {
1137
- const spec = resolveFlagSpec(token);
1138
- return spec?.internalShadow === true && spec.name === flag;
1139
- });
1140
- }
1141
-
1142
- /**
1143
- * Dispatch a build through the shared-host native plugin. The host plugin is
1144
- * the one that owns the process (non-linked); all other transform plugins ride
1145
- * inside it via the `--plugins-json` flag.
1146
- */
1147
- function buildWithNativeCompilerPlugins(
1148
- options: RunBuildOptions,
1149
- execution: ReturnType<typeof resolveExecutionContext>,
1150
- plugins: readonly ITtscLoadedNativePlugin[],
1151
- timing: BuildTiming,
1152
- ): TtscBuildResult {
1153
- const host = selectSharedHostPlugin(plugins);
1154
- return runNativePluginCommand(
1155
- host,
1156
- createNativeBuildArgs(execution, options, plugins),
1157
- options,
1158
- execution,
1159
- "ttsc.build",
1160
- timing,
1161
- transformHostTimingLabel(plugins),
1162
- createNativeBuildTsgoArgs(execution, options),
1163
- );
1164
- }
1165
-
1166
- /**
1167
- * Run `tsgo -p <tsconfig> [extraArgs]` and return the normalized result. Used
1168
- * for the no-emit type-check pass that precedes file emission.
1169
- */
1170
- function runTsgo(
1171
- execution: ReturnType<typeof resolveExecutionContext>,
1172
- extraArgs: readonly string[],
1173
- options: RunBuildOptions,
1174
- ): TtscBuildResult {
1175
- const res = spawnNative(
1176
- execution.tsgo.binary,
1177
- [
1178
- "-p",
1179
- execution.tsconfig,
1180
- ...extraArgs,
1181
- ...createTsgoDiagnosticArgs(options),
1182
- ...createTsgoThreadingArgs(options),
1183
- ...(options.passthrough ?? []),
1184
- ],
1185
- {
1186
- cwd: execution.projectRoot,
1187
- env: mergeEnv(options.env, execution.projectRoot),
1188
- encoding: "utf8",
1189
- },
1190
- );
1191
- if (res.error) {
1192
- throw new Error(
1193
- "ttsc: failed to spawn " +
1194
- execution.tsgo.binary +
1195
- ": " +
1196
- res.error.message,
1197
- );
1198
- }
1199
- return normalizeBuildOutput(
1200
- {
1201
- status: res.status ?? 1,
1202
- stdout: outputText(res.stdout),
1203
- stderr: outputText(res.stderr),
1204
- },
1205
- execution.projectRoot,
1206
- );
1207
- }
1208
-
1209
- /**
1210
- * Run `tsgo` with the full emit arguments and parse `TSFILE:` lines from stdout
1211
- * into `emittedFiles`. The TSFILE lines are stripped before the result is
1212
- * returned so they do not appear in the user-facing output.
1213
- */
1214
- function runTsgoBuild(
1215
- execution: ReturnType<typeof resolveExecutionContext>,
1216
- options: RunBuildOptions,
1217
- args: readonly string[],
1218
- ): TtscBuildResult {
1219
- const res = spawnNative(execution.tsgo.binary, args, {
1220
- cwd: execution.projectRoot,
1221
- env: mergeEnv(options.env, execution.projectRoot),
1222
- encoding: "utf8",
1223
- });
1224
- if (res.error) {
1225
- throw new Error(
1226
- "ttsc.build: failed to spawn " +
1227
- execution.tsgo.binary +
1228
- ": " +
1229
- res.error.message,
1230
- );
1231
- }
1232
- const result = {
1233
- status: res.status ?? 1,
1234
- stdout: outputText(res.stdout),
1235
- stderr: outputText(res.stderr),
1236
- };
1237
- const emittedFiles = parseEmittedFiles(result.stdout);
1238
- // The `TSFILE:` lines are tsgo's `--listEmittedFiles` output. ttsc adds that
1239
- // flag internally to learn the emitted paths and strips the lines back out
1240
- // as noise — but when the user themselves forwarded `--listEmittedFiles`,
1241
- // the listing is what they asked for, so it must survive to stdout.
1242
- // The lookup is schema-driven (FLAG_SCHEMA marks `--listEmittedFiles` with
1243
- // `internalShadow: true`); see `forwardsInternalShadowFlag` for the RC-2
1244
- // background.
1245
- const userListedEmitted = forwardsInternalShadowFlag(
1246
- options,
1247
- "--listEmittedFiles",
1248
- );
1249
- if (emittedFiles.length !== 0 && !userListedEmitted) {
1250
- result.stdout = stripEmittedFileLines(result.stdout);
1251
- }
1252
- if (options.quiet === false) {
1253
- result.stdout += verboseBuildSummary(execution, options, emittedFiles);
1254
- }
1255
- return normalizeBuildOutput(
1256
- { ...result, emittedFiles },
1257
- execution.projectRoot,
1258
- );
1259
- }
1260
-
1261
- /**
1262
- * The `--verbose` summary for the direct-tsgo lane, in the shape
1263
- * `cmd/ttsc/build.go` already prints on the native-host lane.
1264
- *
1265
- * Verbosity is a launcher-owned presentation concern: which lane `runBuild`
1266
- * selects is an implementation detail the user cannot see, so a documented flag
1267
- * must not change meaning with it. This lane never consumed `quiet` at all,
1268
- * which is why the flag was silent on every project without a ttsc plugin.
1269
- *
1270
- * `sites=0` is a fact about this lane rather than a placeholder: it runs
1271
- * precisely when the project declares no native plugin. A build that emitted
1272
- * nothing prints the header and `emitted=0 files`, so the summary never claims
1273
- * files that were not written.
1274
- */
1275
- function verboseBuildSummary(
1276
- execution: ReturnType<typeof resolveExecutionContext>,
1277
- options: RunBuildOptions,
1278
- emittedFiles: readonly string[],
1279
- ): string {
1280
- const lines = [
1281
- `// ttsc: tsconfig=${execution.tsconfig} cwd=${execution.cwd} sites=0 emit=${options.emit !== false}`,
1282
- ];
1283
- if (options.emit !== false) {
1284
- lines.push(`// ttsc: emitted=${emittedFiles.length} files`);
1285
- for (const file of emittedFiles) {
1286
- lines.push(` + ${path.relative(execution.cwd, file) || file}`);
1287
- }
1288
- }
1289
- return `${lines.join("\n")}\n`;
1290
- }
1291
-
1292
- /** Build the argument list for a direct `tsgo` build invocation. */
1293
- function createTsgoBuildArgs(
1294
- execution: ReturnType<typeof resolveExecutionContext>,
1295
- options: RunBuildOptions,
1296
- flags: { listEmittedFiles: boolean; noEmitOnError?: boolean },
1297
- ): string[] {
1298
- const args = ["-p", execution.tsconfig];
1299
- if (options.emit === true) {
1300
- args.push("--noEmit", "false", "--emitDeclarationOnly", "false");
1301
- if (execution.rewriteRelativeImportExtensionsForEmit) {
1302
- args.push("--rewriteRelativeImportExtensions");
1303
- }
1304
- // The ttsx runtime build asks for an external map when the project emits
1305
- // none, so its served emit carries a map to inline under the source URL.
1306
- // Pushed before passthrough so an explicit user `--sourceMap` still wins.
1307
- if (options.forceRuntimeSourceMap === true) {
1308
- args.push("--sourceMap", "true");
1309
- }
1310
- // Pushed before passthrough for the same reason: a user `--rootDir` still
1311
- // wins over the value ttsc pins for its own injected `outDir`.
1312
- args.push(...pinnedRootDirArgs(execution, options));
1313
- } else if (options.emit === false) {
1314
- args.push("--noEmit");
1315
- }
1316
- if (options.outDir) {
1317
- args.push("--outDir", path.resolve(execution.cwd, options.outDir));
1318
- }
1319
- if (flags.listEmittedFiles) {
1320
- args.push("--listEmittedFiles");
1321
- }
1322
- args.push(...createTsgoDiagnosticArgs(options));
1323
- args.push(...createTsgoThreadingArgs(options));
1324
- args.push(...(options.passthrough ?? []));
1325
- args.push(...isolatedTsgoOutputArgs(options));
1326
- if (flags.noEmitOnError === true) {
1327
- args.push("--noEmitOnError");
1328
- }
1329
- return args;
1330
- }
1331
-
1332
- /**
1333
- * The explicit `--rootDir` a caller-injected `outDir` needs, or nothing.
1334
- *
1335
- * See {@link RunBuildOptions.pinInferredRootDir} for why an injected `outDir`
1336
- * needs one at all. Three conditions gate it, and each one is load-bearing:
1337
- *
1338
- * - The caller injected the `outDir` itself, so a user `--outDir` keeps tsgo's
1339
- * own TS5011 answer;
1340
- * - This pass emits, because a no-emit pass has no layout to pin (tsgo skips the
1341
- * check for `noEmit` too);
1342
- * - The project declares no `rootDir` of its own, so a declared layout is never
1343
- * overridden.
1344
- *
1345
- * `execution.projectRoot` is the directory of the tsconfig ttsc resolved and
1346
- * hands tsgo as `-p`, which is exactly the directory tsgo infers, and it is
1347
- * spelled the way tsgo will spell the input file names it compares against it —
1348
- * both come from the same `fs.realpathSync` pass. Resolving it any further (a
1349
- * Windows 8.3 expansion, say) would leave the comparison lexically mixed, and
1350
- * `ContainsPath` is lexical: every input would count as outside `rootDir` and
1351
- * tsgo would emit it beside the user's source instead of under `outDir`.
1352
- */
1353
- function pinnedRootDirArgs(
1354
- execution: ReturnType<typeof resolveExecutionContext>,
1355
- options: RunBuildOptions,
1356
- ): string[] {
1357
- if (options.pinInferredRootDir !== true) return [];
1358
- if (options.emit !== true) return [];
1359
- if (typeof execution.project.compilerOptions.rootDir === "string") return [];
1360
- return ["--rootDir", execution.projectRoot];
1361
- }
1362
-
1363
- /**
1364
- * Return `["--pretty", "false"]` when structured diagnostics are requested so
1365
- * that the output can be parsed line-by-line, or an empty array otherwise.
1366
- *
1367
- * When the user explicitly forwarded `--pretty` (any value), the internal
1368
- * `--pretty false` shadow is dropped so the user wins on the surface. ttsc's
1369
- * own diagnostic parser will then see pretty-formatted output and fall back to
1370
- * surfacing it verbatim — the RC-2 contract that `--pretty`'s `internalShadow:
1371
- * true` flag in `FLAG_SCHEMA` declares. Without this guard the order in
1372
- * `runTsgo` (internal flags first, passthrough last) would still let the user's
1373
- * `--pretty true` override at the tsgo level, but ttsc would have already
1374
- * committed to a structured-diagnostics post-process that no longer matches the
1375
- * actual output.
1376
- */
1377
- function createTsgoDiagnosticArgs(options: TtscCommonOptions): string[] {
1378
- if (options.structuredDiagnostics !== true) return [];
1379
- if (forwardsInternalShadowFlag(options, "--pretty")) return [];
1380
- return ["--pretty", "false"];
1381
- }
1382
-
1383
- /**
1384
- * Forward the `--singleThreaded` / `--checkers` knobs to a `tsgo` invocation.
1385
- * tsgo accepts both flags natively, so the no-plugin build lane only has to
1386
- * pass them through; the type-check and emit passes share this so the checker
1387
- * pool size stays consistent across both.
1388
- */
1389
- function createTsgoThreadingArgs(options: TtscCommonOptions): string[] {
1390
- const args: string[] = [];
1391
- if (options.singleThreaded === true) {
1392
- args.push("--singleThreaded");
1393
- }
1394
- if (options.checkers !== undefined) {
1395
- args.push("--checkers", String(options.checkers));
1396
- }
1397
- return args;
1398
- }
1399
-
1400
- /** Build the argument list for a native plugin `build`/`check` invocation. */
1401
- function createNativeBuildArgs(
1402
- execution: ReturnType<typeof resolveExecutionContext>,
1403
- options: RunBuildOptions,
1404
- plugins: readonly ITtscLoadedNativePlugin[],
1405
- ): string[] {
1406
- const args = [
1407
- options.emit === false ? "check" : "build",
1408
- "--tsconfig=" + execution.tsconfig,
1409
- "--plugins-json=" + serializeNativePlugins(plugins),
1410
- "--cwd=" + execution.projectRoot,
1411
- ];
1412
- if (
1413
- selectSharedHostPlugin(plugins).capabilities?.projectContextArgs === true
1414
- ) {
1415
- args.push(
1416
- ...createNativeProjectContextArgs(
1417
- execution.project,
1418
- execution.pluginConfigDir,
1419
- ),
1420
- );
1421
- }
1422
- if (options.emit === true) {
1423
- args.push("--emit");
1424
- }
1425
- if (options.outDir) {
1426
- args.push("--outDir=" + path.resolve(execution.cwd, options.outDir));
1427
- }
1428
- // Third-party transform hosts already treat the `check` subcommand as a
1429
- // quiet no-emit pass. Keep ttsc-owned build modifiers off that lane so older
1430
- // strict hosts do not reject unknown optional flags before analysis starts.
1431
- if (options.emit !== false) {
1432
- if (options.quiet === false) {
1433
- args.push("--verbose");
1434
- } else if (options.quiet === true) {
1435
- args.push("--quiet");
1436
- }
1437
- }
1438
- return args;
1439
- }
1440
-
1441
- /**
1442
- * The forwarded-tsgo payload for a native `build`/`check` emit invocation.
1443
- *
1444
- * The sidecar builds its Program in-process, so the pinned `rootDir` has to
1445
- * travel the same channel every other tsgo option takes to it — the host flag
1446
- * set does not declare `--rootDir`, and `filterHostArgs` would strip it.
1447
- */
1448
- function createNativeBuildTsgoArgs(
1449
- execution: ReturnType<typeof resolveExecutionContext>,
1450
- options: RunBuildOptions,
1451
- ): string | undefined {
1452
- return createNativeTsgoArgs(options, pinnedRootDirArgs(execution, options));
1453
- }
1454
-
1455
- /** Build the argument list for a native plugin check/fix/format invocation. */
1456
- function createNativeCheckArgs(
1457
- execution: ReturnType<typeof resolveExecutionContext>,
1458
- options: TtscBuildOptions,
1459
- plugin: ITtscLoadedNativePlugin,
1460
- ): string[] {
1461
- const args = [
1462
- nativeCheckSubcommand(options),
1463
- "--tsconfig=" + execution.tsconfig,
1464
- "--plugins-json=" + serializeNativePlugins(execution.nativePlugins),
1465
- "--cwd=" + execution.projectRoot,
1466
- ];
1467
- if (plugin.capabilities?.projectContextArgs === true) {
1468
- args.push(
1469
- ...createNativeProjectContextArgs(
1470
- execution.project,
1471
- execution.pluginConfigDir,
1472
- ),
1473
- );
1474
- }
1475
- if (options.outDir) {
1476
- args.push("--outDir=" + path.resolve(execution.cwd, options.outDir));
1477
- }
1478
- if (options.quiet === false) {
1479
- args.push("--verbose");
1480
- } else if (options.quiet === true) {
1481
- args.push("--quiet");
1482
- }
1483
- args.push(...createNativeCheckThreadingArgs(options, plugin));
1484
- args.push(...createNativeCheckDiagnosticsArgs(options, plugin));
1485
- return args;
1486
- }
1487
-
1488
- function createNativeProjectInputsArgs(
1489
- execution: ReturnType<typeof resolveExecutionContext>,
1490
- plugin: ITtscLoadedNativePlugin,
1491
- ): string[] {
1492
- const args = [
1493
- "project-inputs",
1494
- "--tsconfig=" + execution.tsconfig,
1495
- "--plugins-json=" + serializeNativePlugins(execution.nativePlugins),
1496
- "--cwd=" + execution.projectRoot,
1497
- ];
1498
- if (plugin.capabilities?.projectContextArgs === true) {
1499
- args.push(
1500
- ...createNativeProjectContextArgs(
1501
- execution.project,
1502
- execution.pluginConfigDir,
1503
- ),
1504
- );
1505
- }
1506
- return args;
1507
- }
1508
-
1509
- // `--singleThreaded` / `--checkers` are forwarded to native check-stage hosts
1510
- // only when the host is one ttsc itself owns (currently `@ttsc/lint`). #113
1511
- // forwarded both flags as bare CLI tokens to every native sidecar, then
1512
- // commit ad3443a reverted that across the board because a third-party host
1513
- // built before #113 has no `singleThreaded` / `checkers` flag in its
1514
- // `flag.FlagSet` and would exit 2 on the unknown flag — so
1515
- // `ttsc --singleThreaded` failed deterministically on every typia/nestia
1516
- // transform-plugin project.
1517
- //
1518
- // The performance ceiling that caused, though, is real: format/check passes
1519
- // through the lint sidecar are dominated by parallel parse + parallel rule
1520
- // walk, and with the threading knob silently dropped, MT and ST runs of
1521
- // `ttsc format` produced identical wall-clock numbers — the benchmark cell
1522
- // became a non-measurement. The lint sidecar is built and shipped from this
1523
- // repo, accepts both flags via `parseSubcommandFlags`, and threads them down
1524
- // to `loadProgram` (parse phase) and `engine.SetSerial` (rule walk). The host
1525
- // opts in through `capabilities.threadingArgs`, so a third-party check-stage
1526
- // plugin keeps the strict-host behavior from ad3443a unless it declares the
1527
- // same contract. Transform-stage hosts are never reached by this path (they go
1528
- // through `createNativeBuildArgs`), so the typia/nestia regression remains
1529
- // pinned by `test_plugin_corpus_single_threaded_flag_does_not_break_a_native_plugin_build`.
1530
- function createNativeCheckThreadingArgs(
1531
- options: TtscCommonOptions,
1532
- plugin: ITtscLoadedNativePlugin,
1533
- ): string[] {
1534
- if (!nativeHostAcceptsThreadingArgs(plugin)) return [];
1535
- const args: string[] = [];
1536
- if (options.singleThreaded === true) {
1537
- args.push("--singleThreaded");
1538
- }
1539
- if (options.checkers !== undefined) {
1540
- args.push("--checkers=" + String(options.checkers));
1541
- }
1542
- return args;
1543
- }
1544
-
1545
- /**
1546
- * Return true when the loaded native check-stage host has declared
1547
- * `capabilities.threadingArgs` in its plugin descriptor.
1548
- *
1549
- * The lint sidecar (`packages/lint/src/index.ts::createTtscPlugin`) opts in
1550
- * because its `parseSubcommandFlags` handler accepts `--singleThreaded` and
1551
- * `--checkers` directly and threads them into `loadProgram` (parse phase) and
1552
- * `engine.SetSerial` (rule walk). Any other check-stage host that has not
1553
- * declared the capability is treated as a third-party binary whose flag set is
1554
- * unknown, matching the conservative default from commit ad3443a.
1555
- *
1556
- * The capability flag replaces the prior `plugin.name === "@ttsc/lint"` string
1557
- * check: routing on a descriptor field instead of the plugin name lets the next
1558
- * first-party check-stage plugin opt in without ttsc needing to learn its name.
1559
- * See `ITtscPluginCapabilities` and issue #125 for the broader CLI-parser
1560
- * cleanup this is the quick-win step of.
1561
- */
1562
- function nativeHostAcceptsThreadingArgs(
1563
- plugin: ITtscLoadedNativePlugin,
1564
- ): boolean {
1565
- return plugin.capabilities?.threadingArgs === true;
1566
- }
1567
-
1568
- function createNativeCheckDiagnosticsArgs(
1569
- options: TtscCommonOptions,
1570
- plugin: ITtscLoadedNativePlugin,
1571
- ): string[] {
1572
- if (!nativeHostAcceptsDiagnosticsTiming(plugin)) return [];
1573
- if (!hasDiagnosticsFlag(options)) return [];
1574
- return ["--diagnostics"];
1575
- }
1576
-
1577
- function nativeHostAcceptsDiagnosticsTiming(
1578
- plugin: ITtscLoadedNativePlugin,
1579
- ): boolean {
1580
- return plugin.capabilities?.diagnosticsTiming === true;
1581
- }
1582
-
1583
- function transformHostTimingLabel(
1584
- plugins: readonly ITtscLoadedNativePlugin[],
1585
- ): string {
1586
- return (
1587
- `ttsc transform host [` +
1588
- `${plugins.map((plugin) => plugin.name).join(", ")}] time`
1589
- );
1590
- }
1591
-
1592
- /**
1593
- * Forward the tsgo flags ttsc did not recognize to a native sidecar as one
1594
- * JSON-encoded payload. The sidecar replays them through tsgo's own option
1595
- * parser onto `CompilerOptions`, so a flag like `ttsc --strict` reaches a
1596
- * plugin build the same way it reaches the plain tsgo lane.
1597
- *
1598
- * The payload travels in the `TTSC_TSGO_ARGS` environment variable, not on the
1599
- * sidecar's command line. #113 shipped it as a `--tsgo-args` flag, which is an
1600
- * addition to a plugin protocol third-party hosts had already frozen: a Go
1601
- * `flag.FlagSet` created with `flag.ContinueOnError` treats an undeclared flag
1602
- * as fatal, so every pre-#113 sidecar answered `flag provided but not defined:
1603
- * -tsgo-args` and exited 2. That took down `ttsc --strict`, `ttsc
1604
- * --declaration`, `ttsx --strict` and — because {@link isolatedTsgoOutputArgs}
1605
- * makes this payload non-empty on its own — plain `ttsc <file.ts>`, on every
1606
- * project carrying a typia/nestia-era transform host (issue #1188).
1607
- *
1608
- * The environment is the channel ttsc already uses for host-owned payloads that
1609
- * must not collide with a third-party flag set (`TTSC_LINKED_PLUGINS_JSON`,
1610
- * `TTSC_PLUGIN_CONFIG_DIR`). It reaches those hosts without any change on their
1611
- * side, because `buildSourcePlugin.ts::sourceBuildWorkspaceReplacements` builds
1612
- * every source plugin against the installed ttsc's own driver, and
1613
- * `driver.LoadProgram` reads the variable whenever the caller supplied no
1614
- * explicit argv. It is strictly better than the capability gate `ad3443a` used
1615
- * for `--singleThreaded` / `--checkers`: that one drops the flag for hosts that
1616
- * cannot take it, which is acceptable for a threading knob and not for
1617
- * `--strict`.
1618
- *
1619
- * Returns the JSON payload, or `undefined` when this lane forwards nothing.
1620
- */
1621
- function createNativeTsgoArgs(
1622
- options: TtscCommonOptions,
1623
- leading: readonly string[] = [],
1624
- ): string | undefined {
1625
- const passthrough = [
1626
- // Ahead of the user's own flags, so the same precedence holds here as on
1627
- // the direct tsgo lane: whatever the user forwarded wins.
1628
- ...leading,
1629
- ...(nativeTsgoPassthroughArgs(options) ?? []),
1630
- ...isolatedTsgoOutputArgs(options),
1631
- ];
1632
- if (passthrough.length === 0) {
1633
- return undefined;
1634
- }
1635
- return JSON.stringify(passthrough);
1636
- }
1637
-
1638
- function isolatedTsgoOutputArgs(options: TtscCommonOptions): string[] {
1639
- const target =
1640
- "isolateOutputsTo" in options &&
1641
- typeof options.isolateOutputsTo === "string"
1642
- ? path.resolve(options.isolateOutputsTo)
1643
- : undefined;
1644
- if (target === undefined) return [];
1645
- return [
1646
- "--outFile",
1647
- "null",
1648
- "--declarationDir",
1649
- "null",
1650
- "--tsBuildInfoFile",
1651
- "null",
1652
- "--outDir",
1653
- target,
1654
- ];
1655
- }
1656
-
1657
- function nativeTsgoPassthroughArgs(
1658
- options: TtscCommonOptions,
1659
- ): readonly string[] | undefined {
1660
- const passthrough = options.passthrough;
1661
- if (passthrough === undefined) return undefined;
1662
- const out: string[] = [];
1663
- for (let i = 0; i < passthrough.length; i++) {
1664
- const token = passthrough[i]!;
1665
- if (isDiagnosticsPassthroughFlag(token)) {
1666
- if (
1667
- !token.includes("=") &&
1668
- i + 1 < passthrough.length &&
1669
- isBooleanLiteral(passthrough[i + 1]!)
1670
- ) {
1671
- i++;
1672
- }
1673
- continue;
1674
- }
1675
- out.push(token);
1676
- }
1677
- return out;
1678
- }
1679
-
1680
- function isDiagnosticsPassthroughFlag(token: string): boolean {
1681
- const name = resolveFlagSpec(token)?.name;
1682
- return name === "--diagnostics" || name === "--extendedDiagnostics";
1683
- }
1684
-
1685
- function isBooleanLiteral(token: string): boolean {
1686
- const normalized = token.toLowerCase();
1687
- return normalized === "true" || normalized === "false";
1688
- }
1689
-
1690
- /**
1691
- * Decide which native plugin subcommand the lint sidecar should run for the
1692
- * current `runBuild` invocation. The launcher selects exactly one of `fix` /
1693
- * `format` / `check` via subcommand dispatch, so at most one of the
1694
- * `options.fix` / `options.format` booleans is true.
1695
- */
1696
- function nativeCheckSubcommand(options: TtscBuildOptions): string {
1697
- if (options.format === true) return "format";
1698
- if (options.fix === true) return "fix";
1699
- return "check";
1700
- }
1701
-
1702
- /**
1703
- * Serialize the plugin list to a compact JSON string for `--plugins-json=`.
1704
- * Only the fields the native binary protocol requires are included.
1705
- */
1706
- function serializeNativePlugins(
1707
- plugins: readonly ITtscLoadedNativePlugin[],
1708
- ): string {
1709
- return JSON.stringify(
1710
- plugins.map((plugin) => ({
1711
- config: plugin.config,
1712
- name: plugin.name,
1713
- stage: plugin.stage,
1714
- })),
1715
- );
1716
- }
1717
-
1718
- /**
1719
- * Run every check-stage plugin in order, short-circuiting on the first non-zero
1720
- * exit. Aggregates diagnostics and output across all check plugins.
1721
- */
1722
- function runNativeCheckPlugins(
1723
- options: TtscBuildOptions,
1724
- execution: ReturnType<typeof resolveExecutionContext>,
1725
- timing: BuildTiming,
1726
- ): TtscBuildResult {
1727
- let out: TtscBuildResult = {
1728
- diagnostics: [],
1729
- status: 0,
1730
- stdout: "",
1731
- stderr: "",
1732
- };
1733
- for (const plugin of execution.nativePlugins.filter(
1734
- (plugin) => plugin.stage === "check",
1735
- )) {
1736
- const result = runNativePluginCommand(
1737
- plugin,
1738
- createNativeCheckArgs(execution, options, plugin),
1739
- options,
1740
- execution,
1741
- "ttsc.check",
1742
- timing,
1743
- `ttsc check plugin ${plugin.name} time`,
1744
- createNativeTsgoArgs(options),
1745
- );
1746
- out = appendBuildOutput(out, result);
1747
- if (result.status !== 0) {
1748
- return out;
1749
- }
1750
- }
1751
- return out;
1752
- }
1753
-
1754
- function discoverNativeProjectInputs(
1755
- options: TtscBuildOptions,
1756
- execution: ReturnType<typeof resolveExecutionContext>,
1757
- ): ITtscProjectInputSnapshot {
1758
- const snapshots: ITtscProjectInputSnapshot[] = [];
1759
- for (const plugin of execution.nativePlugins.filter(
1760
- (candidate) =>
1761
- candidate.stage === "check" &&
1762
- candidate.capabilities?.projectInputs === true,
1763
- )) {
1764
- const res = spawnNative(
1765
- plugin.binary,
1766
- createNativeProjectInputsArgs(execution, plugin),
1767
- {
1768
- cwd: execution.projectRoot,
1769
- env: nativePluginEnv(options.env, execution, plugin),
1770
- encoding: "utf8",
1771
- },
1772
- );
1773
- if (res.error) {
1774
- throw new Error(
1775
- `ttsc.project-inputs: failed to spawn ${plugin.binary}: ${res.error.message}`,
1776
- );
1777
- }
1778
- const stdout = outputText(res.stdout).trim();
1779
- if (res.status !== 0) {
1780
- const detail = outputText(res.stderr).trim() || stdout;
1781
- throw new Error(
1782
- `ttsc.project-inputs: ${plugin.name ?? plugin.binary} failed${detail ? `: ${detail}` : ""}`,
1783
- );
1784
- }
1785
- const snapshot = parseProjectInputSnapshot(stdout, plugin);
1786
- snapshots.push(snapshot);
1787
- }
1788
- return mergeProjectInputSnapshots(execution.projectRoot, snapshots);
1789
- }
1790
-
1791
- function arraysEqual(
1792
- left: readonly string[],
1793
- right: readonly string[],
1794
- ): boolean {
1795
- return (
1796
- left.length === right.length && left.every((item, i) => item === right[i])
1797
- );
1798
- }
1799
-
1800
- /**
1801
- * Keep every declared spelling of one identity, ordered without regard to which
1802
- * producer ran first.
1803
- *
1804
- * Two contributors can name the same file through different aliases, and each
1805
- * alias is a path a watcher has to observe: keeping only one of them would
1806
- * discard the link whose retarget the other spelling exists to catch. Insertion
1807
- * order is not canonical, so the caller sorts the flattened result.
1808
- */
1809
- function retainDeclaredSpelling(
1810
- target: Map<string, string[]>,
1811
- key: string,
1812
- declared: string,
1813
- ): void {
1814
- const previous = target.get(key);
1815
- if (previous === undefined) {
1816
- target.set(key, [declared]);
1817
- return;
1818
- }
1819
- if (previous.includes(declared)) return;
1820
- previous.push(declared);
1821
- }
1822
-
1823
- export function mergeProjectInputSnapshots(
1824
- fallbackRoot: string,
1825
- snapshots: readonly ITtscProjectInputSnapshot[],
1826
- identities: ProjectInputPathIdentityContext = createProjectInputPathIdentityContext(),
1827
- ): ITtscProjectInputSnapshot {
1828
- const files = new Map<string, string>();
1829
- const globs = new Map<string, string>();
1830
- const reloadDirectories = new Map<string, string>();
1831
- const reloadFiles = new Map<string, string>();
1832
- // Deduplicated on the same identity keys, but holding what the contributors
1833
- // wrote. Normalization resolves a declaration through its symlinks, which is
1834
- // right for every comparison and wrong for the watcher that has to observe
1835
- // the link itself being retargeted.
1836
- const declaredFiles = new Map<string, string[]>();
1837
- const declaredGlobs = new Map<string, string[]>();
1838
- const declaredReloadDirectories = new Map<string, string[]>();
1839
- const declaredReloadFiles = new Map<string, string[]>();
1840
- const rootIdentity = identities.resolve(fallbackRoot);
1841
- for (const snapshot of snapshots) {
1842
- const candidateRoot = identities.resolve(snapshot.root);
1843
- if (rootIdentity.key !== candidateRoot.key) {
1844
- throw new Error(
1845
- `ttsc.project-inputs: plugin root ${candidateRoot.path} differs from the selected project root ${rootIdentity.path}`,
1846
- );
1847
- }
1848
- for (const file of snapshot.files) {
1849
- const identity = identities.resolve(file);
1850
- files.set(identity.key, identity.path);
1851
- retainDeclaredSpelling(declaredFiles, identity.key, path.resolve(file));
1852
- }
1853
- for (const glob of snapshot.globs) {
1854
- const identity = identities.resolve(glob);
1855
- globs.set(identity.key, identity.path.split(path.sep).join("/"));
1856
- retainDeclaredSpelling(
1857
- declaredGlobs,
1858
- identity.key,
1859
- path.resolve(glob).split(path.sep).join("/"),
1860
- );
1861
- }
1862
- for (const reloadFile of snapshot.reloadFiles ?? []) {
1863
- const identity = identities.resolve(reloadFile);
1864
- reloadFiles.set(identity.key, identity.path);
1865
- retainDeclaredSpelling(
1866
- declaredReloadFiles,
1867
- identity.key,
1868
- path.resolve(reloadFile),
1869
- );
1870
- }
1871
- for (const reloadDirectory of snapshot.reloadDirectories ?? []) {
1872
- const identity = identities.resolve(reloadDirectory);
1873
- reloadDirectories.set(identity.key, identity.path);
1874
- retainDeclaredSpelling(
1875
- declaredReloadDirectories,
1876
- identity.key,
1877
- path.resolve(reloadDirectory),
1878
- );
1879
- }
1880
- }
1881
- const normalized = {
1882
- root: rootIdentity.path,
1883
- files: [...files.values()].sort(),
1884
- globs: [...globs.values()].sort(),
1885
- reloadDirectories: [...reloadDirectories.values()].sort(),
1886
- reloadFiles: [...reloadFiles.values()].sort(),
1887
- };
1888
- const declared = {
1889
- files: [...declaredFiles.values()].flat().sort(),
1890
- globs: [...declaredGlobs.values()].flat().sort(),
1891
- reloadDirectories: [...declaredReloadDirectories.values()].flat().sort(),
1892
- reloadFiles: [...declaredReloadFiles.values()].flat().sort(),
1893
- };
1894
- // Carried only when it says something the normalized arrays do not. A tree
1895
- // with no alias on any declaration produces the same four lists, and a
1896
- // consumer that has to scan both would pay twice for one population.
1897
- return arraysEqual(declared.files, normalized.files) &&
1898
- arraysEqual(declared.globs, normalized.globs) &&
1899
- arraysEqual(declared.reloadDirectories, normalized.reloadDirectories) &&
1900
- arraysEqual(declared.reloadFiles, normalized.reloadFiles)
1901
- ? normalized
1902
- : { ...normalized, declared };
1903
- }
1904
-
1905
- export function parseProjectInputSnapshot(
1906
- text: string,
1907
- plugin: ITtscLoadedNativePlugin,
1908
- ): ITtscProjectInputSnapshot {
1909
- let value: unknown;
1910
- try {
1911
- value = JSON.parse(text);
1912
- } catch (error) {
1913
- throw new Error(
1914
- `ttsc.project-inputs: ${plugin.name ?? plugin.binary} returned invalid JSON: ${
1915
- error instanceof Error ? error.message : String(error)
1916
- }`,
1917
- );
1918
- }
1919
- if (
1920
- typeof value !== "object" ||
1921
- value === null ||
1922
- typeof (value as { root?: unknown }).root !== "string" ||
1923
- !isStringArray((value as { files?: unknown }).files) ||
1924
- !isStringArray((value as { globs?: unknown }).globs) ||
1925
- ((value as { reloadDirectories?: unknown }).reloadDirectories !==
1926
- undefined &&
1927
- !isStringArray(
1928
- (value as { reloadDirectories?: unknown }).reloadDirectories,
1929
- )) ||
1930
- ((value as { reloadFiles?: unknown }).reloadFiles !== undefined &&
1931
- !isStringArray((value as { reloadFiles?: unknown }).reloadFiles))
1932
- ) {
1933
- throw new Error(
1934
- `ttsc.project-inputs: ${plugin.name ?? plugin.binary} returned an invalid snapshot`,
1935
- );
1936
- }
1937
- const snapshot = value as unknown as ITtscProjectInputSnapshot;
1938
- const invalid = [
1939
- ["root", snapshot.root],
1940
- ...snapshot.files.map((file) => ["file", file] as const),
1941
- ...snapshot.globs.map((glob) => ["glob", glob] as const),
1942
- ...(snapshot.reloadDirectories ?? []).map(
1943
- (directory) => ["reload directory", directory] as const,
1944
- ),
1945
- ...(snapshot.reloadFiles ?? []).map(
1946
- (file) => ["reload file", file] as const,
1947
- ),
1948
- ].find(
1949
- ([, location]) =>
1950
- location.length === 0 || !isAbsoluteLocalProjectInputPath(location),
1951
- );
1952
- if (invalid !== undefined) {
1953
- throw new Error(
1954
- `ttsc.project-inputs: ${plugin.name ?? plugin.binary} returned an invalid snapshot: ${invalid[0]} ${JSON.stringify(invalid[1])} is not an absolute local path`,
1955
- );
1956
- }
1957
- return {
1958
- ...snapshot,
1959
- reloadDirectories: snapshot.reloadDirectories ?? [],
1960
- reloadFiles: snapshot.reloadFiles ?? [],
1961
- };
1962
- }
1963
-
1964
- export function isAbsoluteLocalProjectInputPath(
1965
- location: string,
1966
- platform: NodeJS.Platform = process.platform,
1967
- ): boolean {
1968
- if (location.includes("\0")) return false;
1969
- if (platform !== "win32") return path.posix.isAbsolute(location);
1970
- const normalized = location.replaceAll("/", "\\");
1971
- if (/^[A-Za-z]:\\/.test(normalized)) return true;
1972
- if (normalized.startsWith("\\\\?\\")) {
1973
- const extended = normalized.slice(4);
1974
- if (/^[A-Za-z]:\\/.test(extended)) return true;
1975
- if (extended.toLowerCase().startsWith("unc\\")) {
1976
- return isWindowsUncProjectInputPath(`\\\\${extended.slice(4)}`);
1977
- }
1978
- return false;
1979
- }
1980
- if (normalized.startsWith("\\\\.\\")) return false;
1981
- return isWindowsUncProjectInputPath(normalized);
1982
- }
1983
-
1984
- function isWindowsUncProjectInputPath(location: string): boolean {
1985
- const matched = /^\\\\([^\\]+)\\([^\\]+)(?:\\|$)/.exec(location);
1986
- return (
1987
- matched !== null &&
1988
- isWindowsUncVolumeSegment(matched[1]!) &&
1989
- isWindowsUncVolumeSegment(matched[2]!)
1990
- );
1991
- }
1992
-
1993
- function isWindowsUncVolumeSegment(segment: string): boolean {
1994
- return segment !== "." && segment !== ".." && !/[\0<>:"/\\|?*]/.test(segment);
1995
- }
1996
-
1997
- function isStringArray(value: unknown): value is string[] {
1998
- return (
1999
- Array.isArray(value) && value.every((item) => typeof item === "string")
2000
- );
2001
- }
2002
-
2003
- /**
2004
- * Spawn a single native plugin binary with the given args and return the
2005
- * normalized build result. `label` is used in the thrown error message so the
2006
- * caller's context (e.g. `"ttsc.check"` or `"ttsc.build"`) is preserved.
2007
- */
2008
- function runNativePluginCommand(
2009
- plugin: ITtscLoadedNativePlugin,
2010
- args: readonly string[],
2011
- options: TtscBuildOptions,
2012
- execution: ReturnType<typeof resolveExecutionContext>,
2013
- label: string,
2014
- timing: BuildTiming,
2015
- timingLabel: string,
2016
- tsgoArgs?: string,
2017
- ): TtscBuildResult {
2018
- const startedAt = process.hrtime.bigint();
2019
- const res = spawnNative(plugin.binary, args, {
2020
- cwd: execution.projectRoot,
2021
- env: nativePluginEnv(options.env, execution, plugin, tsgoArgs),
2022
- encoding: "utf8",
2023
- });
2024
- recordTiming(timing, timingLabel, startedAt);
2025
- if (res.error) {
2026
- throw new Error(
2027
- `${label}: failed to spawn ${plugin.binary}: ${res.error.message}`,
2028
- );
2029
- }
2030
- return normalizeBuildOutput(
2031
- {
2032
- status: res.status ?? 1,
2033
- stdout: outputText(res.stdout),
2034
- stderr: outputText(res.stderr),
2035
- },
2036
- execution.projectRoot,
2037
- );
2038
- }
2039
-
2040
- /**
2041
- * Merge two `TtscBuildResult` values into one.
2042
- *
2043
- * - `status`: the right status wins unless it is 0 (failure propagates).
2044
- * - `diagnostics`: concatenated left then right.
2045
- * - `emittedFiles`: right wins when present, otherwise left is kept.
2046
- * - `stdout`/`stderr`: concatenated left then right.
2047
- */
2048
- export function appendBuildOutput(
2049
- left: TtscBuildResult,
2050
- right: TtscBuildResult,
2051
- ): TtscBuildResult {
2052
- return normalizeBuildOutput({
2053
- diagnostics: [...left.diagnostics, ...right.diagnostics],
2054
- emittedFiles:
2055
- right.emittedFiles !== undefined ? right.emittedFiles : left.emittedFiles,
2056
- status: right.status !== 0 ? right.status : left.status,
2057
- stdout: left.stdout + right.stdout,
2058
- stderr: left.stderr + right.stderr,
2059
- });
2060
- }
2061
-
2062
- /**
2063
- * Synthesize one structured diagnostic from a non-zero process result that
2064
- * produced no parsable diagnostics, carrying the captured stderr/stdout as the
2065
- * message. Shared by the public API result mapping and the plugin-failure
2066
- * recovery pass so the failure text is never dropped from structured output.
2067
- */
2068
- export function createProcessDiagnostic(
2069
- result: TtscBuildResult,
2070
- ): ITtscCompilerDiagnostic {
2071
- const messageText =
2072
- (result.stderr || result.stdout).trim() ||
2073
- `ttsc exited with status ${result.status}`;
2074
- return {
2075
- category: "error",
2076
- code: "TTSC_PROCESS",
2077
- file: null,
2078
- messageText,
2079
- };
2080
- }
2081
-
2082
- /**
2083
- * Resolve all runtime context needed for a build: cwd, tsconfig path, project
2084
- * root, tsgo binary location, and the loaded native plugin list. Centralised
2085
- * here so every code path in `runBuild` shares the same resolution logic.
2086
- */
2087
- function resolveExecutionContext(
2088
- options: TtscCommonOptions & {
2089
- emit?: boolean;
2090
- onWatchInputs?: (inputs: readonly string[]) => void;
2091
- resolvedProject?: ITtscParsedProjectConfig;
2092
- tsconfig?: string;
2093
- },
2094
- ) {
2095
- const cwd = path.resolve(options.cwd ?? process.cwd());
2096
- const project =
2097
- options.resolvedProject ??
2098
- readProjectConfig({
2099
- cwd,
2100
- projectRoot: options.projectRoot,
2101
- tsconfig: options.tsconfig,
2102
- });
2103
- const tsconfig = project.path;
2104
- const projectRoot = project.root;
2105
- const tsgo = resolveTsgo({ ...options, cwd: projectRoot });
2106
- let pluginSetupFailure: TtscBuildResult | undefined;
2107
- let nativePlugins: ITtscLoadedNativePlugin[] = [];
2108
- try {
2109
- if (hasProjectPluginEntries(project, options.plugins)) {
2110
- nativePlugins = loadProjectPlugins({
2111
- binary: resolveBinary(options) ?? "",
2112
- cacheDir: options.cacheDir ?? options.env?.TTSC_CACHE_DIR,
2113
- cwd,
2114
- entries: options.plugins,
2115
- env: inheritedSidecarEnv(options.env),
2116
- onWatchInputs: options.onWatchInputs,
2117
- pluginConfigDir: options.pluginConfigDir,
2118
- projectRoot,
2119
- tsconfig,
2120
- }).nativePlugins;
2121
- } else {
2122
- options.onWatchInputs?.([]);
2123
- }
2124
- } catch (error) {
2125
- pluginSetupFailure = {
2126
- diagnostics: [],
2127
- status: 2,
2128
- stdout: "",
2129
- stderr: `${error instanceof Error ? error.message : String(error)}\n`,
2130
- };
2131
- }
2132
- return {
2133
- cwd,
2134
- nativePlugins,
2135
- pluginConfigDir: resolvePluginConfigDir({
2136
- cwd,
2137
- pluginConfigDir: options.pluginConfigDir,
2138
- }),
2139
- pluginSetupFailure,
2140
- project,
2141
- projectNoEmit: project.compilerOptions.noEmit === true,
2142
- projectRoot,
2143
- rewriteRelativeImportExtensionsForEmit:
2144
- options.emit === true &&
2145
- project.compilerOptions.allowImportingTsExtensions === true,
2146
- tsgo,
2147
- tsconfig,
2148
- };
2149
- }
2150
-
2151
- /**
2152
- * Extract `TSFILE: <path>` lines from tsgo stdout and return the absolute
2153
- * paths. tsgo emits these when `--listEmittedFiles` is passed.
2154
- */
2155
- function parseEmittedFiles(stdout: string): string[] {
2156
- const out: string[] = [];
2157
- for (const line of stdout.split(/\r?\n/)) {
2158
- const match = line.match(/^TSFILE:\s*(.+)$/);
2159
- if (match?.[1]) {
2160
- out.push(path.resolve(match[1].trim()));
2161
- }
2162
- }
2163
- return out;
2164
- }
2165
-
2166
- /**
2167
- * Remove `TSFILE:` lines from tsgo stdout so they do not appear in the
2168
- * user-facing output after they have been parsed into `emittedFiles`.
2169
- */
2170
- function stripEmittedFileLines(stdout: string): string {
2171
- return stdout
2172
- .split(/\r?\n/)
2173
- .filter((line) => !/^TSFILE:\s*/.test(line))
2174
- .join("\n")
2175
- .replace(/\n+$/, "");
2176
- }
2177
-
2178
- /**
2179
- * `TtscBuildResult` with `diagnostics` made optional. Used internally when
2180
- * diagnostics are parsed lazily from stdout/stderr by `normalizeBuildOutput`.
2181
- */
2182
- type PartialBuildResult = Omit<TtscBuildResult, "diagnostics"> & {
2183
- diagnostics?: ITtscCompilerDiagnostic[];
2184
- };
2185
-
2186
- /**
2187
- * Normalise a raw spawn result into a `TtscBuildResult`.
2188
- *
2189
- * When `diagnostics` is absent they are parsed from the text output. When the
2190
- * process exited non-zero but stderr is empty and stdout is non-empty, stdout
2191
- * is moved to stderr so the error is visible to callers who only check stderr.
2192
- */
2193
- export function normalizeBuildOutput(
2194
- result: PartialBuildResult,
2195
- cwd?: string,
2196
- ): TtscBuildResult {
2197
- const diagnostics =
2198
- result.diagnostics ?? parseCompilerDiagnostics(result, cwd);
2199
- if (result.status === 0 || result.stderr.trim().length !== 0) {
2200
- return { ...result, diagnostics };
2201
- }
2202
- if (result.stdout.trim().length === 0) {
2203
- return { ...result, diagnostics };
2204
- }
2205
- return {
2206
- diagnostics,
2207
- emittedFiles: result.emittedFiles,
2208
- status: result.status,
2209
- stdout: "",
2210
- stderr: result.stdout,
2211
- };
2212
- }
2213
-
2214
- /**
2215
- * Parse structured diagnostics from the combined stderr+stdout text when the
2216
- * caller did not supply pre-parsed diagnostics. ANSI escape codes are stripped
2217
- * and `TSFILE:` / `Found N errors` summary lines are skipped.
2218
- */
2219
- function parseCompilerDiagnostics(
2220
- result: Pick<TtscBuildResult, "stderr" | "stdout">,
2221
- cwd: string | undefined,
2222
- ): ITtscCompilerDiagnostic[] {
2223
- const lines = stripAnsi(`${result.stderr}\n${result.stdout}`).split(/\r?\n/);
2224
- const out: ITtscCompilerDiagnostic[] = [];
2225
- let current: ITtscCompilerDiagnostic | undefined;
2226
- for (const line of lines) {
2227
- if (line.length === 0 || /^TSFILE:\s*/.test(line)) {
2228
- continue;
2229
- }
2230
- if (/^Found\s+\d+\s+errors?/i.test(line)) {
2231
- continue;
2232
- }
2233
-
2234
- const diagnostic = parseDiagnosticLine(line, cwd);
2235
- if (diagnostic !== null) {
2236
- current = diagnostic;
2237
- out.push(current);
2238
- continue;
2239
- }
2240
-
2241
- if (current !== undefined && /^\s+/.test(line)) {
2242
- current.messageText += `\n${line.trimEnd()}`;
2243
- }
2244
- }
2245
- return out;
2246
- }
2247
-
2248
- /**
2249
- * Try to parse a single line as a TypeScript compiler diagnostic in one of
2250
- * three formats:
2251
- *
2252
- * - `file:line:col - category TSxxxx: message` (colon-separated, tsgo style)
2253
- * - `file(line,col): category TSxxxx: message` (paren style, classic tsc)
2254
- * - `category TSxxxx: message` (global, no file)
2255
- *
2256
- * Returns `null` when the line does not match any format.
2257
- */
2258
- function parseDiagnosticLine(
2259
- line: string,
2260
- cwd: string | undefined,
2261
- ): ITtscCompilerDiagnostic | null {
2262
- const colonMatch = line.match(
2263
- /^(.+):(\d+):(\d+)\s+-\s+(error|warning|suggestion|message)\s+([A-Z]+)?(\d+|[A-Z][A-Z0-9_-]*):\s+(.+)$/i,
2264
- );
2265
- if (colonMatch) {
2266
- return {
2267
- category: normalizeDiagnosticCategory(colonMatch[4]!),
2268
- character: Number(colonMatch[3]),
2269
- code: normalizeDiagnosticCode(colonMatch[6]!),
2270
- file: normalizeDiagnosticFile(colonMatch[1]!, cwd),
2271
- line: Number(colonMatch[2]),
2272
- messageText: colonMatch[7]!,
2273
- };
2274
- }
2275
-
2276
- const fileMatch = line.match(
2277
- /^(.+?)\((\d+),(\d+)\):\s+(error|warning|suggestion|message)\s+([A-Z]+)?(\d+|[A-Z][A-Z0-9_-]*):\s+(.+)$/i,
2278
- );
2279
- if (fileMatch) {
2280
- return {
2281
- category: normalizeDiagnosticCategory(fileMatch[4]!),
2282
- character: Number(fileMatch[3]),
2283
- code: normalizeDiagnosticCode(fileMatch[6]!),
2284
- file: normalizeDiagnosticFile(fileMatch[1]!, cwd),
2285
- line: Number(fileMatch[2]),
2286
- messageText: fileMatch[7]!,
2287
- };
2288
- }
2289
-
2290
- const globalMatch = line.match(
2291
- /^(error|warning|suggestion|message)\s+([A-Z]+)?(\d+|[A-Z][A-Z0-9_-]*):\s+(.+)$/i,
2292
- );
2293
- if (!globalMatch) {
2294
- return null;
2295
- }
2296
- return {
2297
- category: normalizeDiagnosticCategory(globalMatch[1]!),
2298
- code: normalizeDiagnosticCode(globalMatch[3]!),
2299
- file: null,
2300
- messageText: globalMatch[4]!,
2301
- };
2302
- }
2303
-
2304
- /**
2305
- * Return an absolute file path. When `file` is already absolute it is returned
2306
- * unchanged; relative paths are resolved against `cwd` when available.
2307
- */
2308
- function normalizeDiagnosticFile(
2309
- file: string,
2310
- cwd: string | undefined,
2311
- ): string {
2312
- if (path.isAbsolute(file) || cwd === undefined) {
2313
- return file;
2314
- }
2315
- return path.resolve(cwd, file);
2316
- }
2317
-
2318
- /**
2319
- * Map a raw category string (`"error"`, `"warning"`, `"suggestion"`,
2320
- * `"message"`) to the canonical `ITtscCompilerDiagnostic.Category`. Any
2321
- * unrecognised value is coerced to `"error"`.
2322
- */
2323
- function normalizeDiagnosticCategory(
2324
- value: string,
2325
- ): ITtscCompilerDiagnostic.Category {
2326
- const lowered = value.toLowerCase();
2327
- return lowered === "warning" ||
2328
- lowered === "suggestion" ||
2329
- lowered === "message"
2330
- ? lowered
2331
- : "error";
2332
- }
2333
-
2334
- /**
2335
- * Parse a diagnostic code as a number when it is all digits (TS numeric codes
2336
- * like `2322`), or keep it as a string for plugin-defined alphanumeric codes.
2337
- */
2338
- function normalizeDiagnosticCode(value: string): number | string {
2339
- return /^\d+$/.test(value) ? Number(value) : value;
2340
- }
2341
-
2342
- /** Strip ANSI escape sequences from `text` for line-by-line diagnostic parsing. */
2343
- function stripAnsi(text: string): string {
2344
- return text.replace(/\x1b\[[0-9;?]*[ -/]*[@-~]/g, "");
2345
- }