ttsc 0.30.4 → 0.31.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cmd/graphbench/main.go +2 -3
- package/cmd/graphdump/main.go +42 -16
- package/cmd/graphdump/run_declares_the_capability_its_output_carries_test.go +32 -18
- package/cmd/graphdump/run_reports_an_unknown_flag_without_exiting_the_process_test.go +10 -9
- package/cmd/graphdump/run_reports_an_unloadable_project_without_printing_a_dump_test.go +8 -7
- package/cmd/platform/command_operation_families_test.go +192 -0
- package/cmd/platform/main.go +11 -1
- package/cmd/ttsc/api_compile.go +166 -46
- package/cmd/ttsc/api_compile_branches_test.go +97 -10
- package/cmd/ttsc/api_transform.go +134 -46
- package/cmd/ttsc/api_transform_branches_test.go +10 -7
- package/cmd/ttsc/build.go +177 -68
- package/cmd/ttsc/build_branches_test.go +35 -7
- package/cmd/ttsc/cli_command_operation_families_test.go +1287 -0
- package/cmd/ttsc/cli_contract_helpers_test.go +82 -0
- package/cmd/ttsc/compiler_argument_cwd_test.go +57 -0
- package/cmd/ttsc/filter.go +31 -14
- package/cmd/ttsc/filter_resolves_flag_names_case_insensitively_test.go +10 -13
- package/cmd/ttsc/filter_strips_unknown_forwarded_flag_test.go +10 -16
- package/cmd/ttsc/flags_gen.go +2 -2
- package/cmd/ttsc/helpers_test.go +67 -10
- package/cmd/ttsc/main.go +122 -21
- package/cmd/ttsc/main_alias_branches_test.go +35 -9
- package/cmd/ttsc/testdata/cli_operation_families/TestAPITransformEnvelopeCarriesReferenceGraph/ambient.d.ts +1 -0
- package/cmd/ttsc/testdata/cli_operation_families/TestAPITransformEnvelopeCarriesReferenceGraph/main.ts +2 -0
- package/cmd/ttsc/testdata/cli_operation_families/TestAPITransformEnvelopeCarriesReferenceGraph/mytype.ts +1 -0
- package/cmd/ttsc/testdata/cli_operation_families/TestAPITransformEnvelopeCarriesReferenceGraph/tsconfig.base.json +3 -0
- package/cmd/ttsc/testdata/cli_operation_families/TestAPITransformEnvelopeCarriesReferenceGraph/tsconfig.json +5 -0
- package/cmd/ttsc/testdata/cli_operation_families/TestCLIAPICompileAndTransform/index.ts +1 -0
- package/cmd/ttsc/testdata/cli_operation_families/TestCLIAPICompileAndTransform/src/decorated/main.ts +10 -0
- package/cmd/ttsc/testdata/cli_operation_families/TestCLIAPICompileAndTransform/src/decorated/types.ts +3 -0
- package/cmd/ttsc/testdata/cli_operation_families/TestCLIAPICompileAndTransform/src/helpers.ts +1 -0
- package/cmd/ttsc/testdata/cli_operation_families/TestCLIAPICompileAndTransform/src/isolated.ts +1 -0
- package/cmd/ttsc/testdata/cli_operation_families/TestCLIAPICompileAndTransform/src/main.ts +7 -0
- package/cmd/ttsc/testdata/cli_operation_families/TestCLIAPICompileAndTransform/src/nested/model.ts +1 -0
- package/cmd/ttsc/testdata/cli_operation_families/TestCLIAPICompileAndTransform/tsconfig.json +14 -0
- package/cmd/ttsc/testdata/cli_operation_families/TestCLIAPITransformUsesCurrentDirectory/index.ts +1 -0
- package/cmd/ttsc/testdata/cli_operation_families/TestCLIAPITransformUsesCurrentDirectory/tsconfig.json +7 -0
- package/cmd/ttsc/testdata/cli_operation_families/TestCLIProjectBuildAllowsUnusedTypeParametersOnOverloadSignatures/index.ts +4 -0
- package/cmd/ttsc/testdata/cli_operation_families/TestCLIProjectBuildAllowsUnusedTypeParametersOnOverloadSignatures/tsconfig.json +11 -0
- package/cmd/ttsc/testdata/cli_operation_families/TestCLIProjectBuildBlocksSemanticDiagnostics/index.ts +2 -0
- package/cmd/ttsc/testdata/cli_operation_families/TestCLIProjectBuildBlocksSemanticDiagnostics/tsconfig.json +9 -0
- package/cmd/ttsc/testdata/cli_operation_families/TestCLIProjectBuildBlocksSyntacticDiagnostics/index.ts +2 -0
- package/cmd/ttsc/testdata/cli_operation_families/TestCLIProjectBuildBlocksSyntacticDiagnostics/tsconfig.json +8 -0
- package/cmd/ttsc/testdata/cli_operation_families/TestCLIProjectBuildBlocksUnusedParameters/index.ts +3 -0
- package/cmd/ttsc/testdata/cli_operation_families/TestCLIProjectBuildBlocksUnusedParameters/tsconfig.json +10 -0
- package/cmd/ttsc/testdata/cli_operation_families/TestCLIProjectBuildEmitErrorRejectsManifest/index.ts +1 -0
- package/cmd/ttsc/testdata/cli_operation_families/TestCLIProjectBuildEmitErrorRejectsManifest/tsconfig.json +1 -0
- package/cmd/ttsc/testdata/cli_operation_families/TestCLIReportsDiagnosticsWithoutEmit/index.ts +1 -0
- package/cmd/ttsc/testdata/cli_operation_families/TestCLIReportsDiagnosticsWithoutEmit/tsconfig.json +8 -0
- package/cmd/ttsc/testdata/cli_operation_families/shared-value-one/project/emit.json +8 -0
- package/cmd/ttsc/testdata/cli_operation_families/shared-value-one/project/flag-shaped.json +7 -0
- package/cmd/ttsc/testdata/cli_operation_families/shared-value-one/project/index.ts +2 -0
- package/cmd/ttsc/testdata/cli_operation_families/shared-value-one/project/nested/tsconfig.app.json +11 -0
- package/cmd/ttsc/testdata/cli_operation_families/shared-value-one/project/outside.json +8 -0
- package/cmd/ttsc/testdata/cli_operation_families/shared-value-one/project/tsconfig.json +8 -0
- package/cmd/ttscgraph/auxiliary_identity_state_tracks_retargets_not_source_contents_test.go +26 -15
- package/cmd/ttscgraph/disk_realpath_other.go +2 -0
- package/cmd/ttscgraph/dump.go +46 -29
- package/cmd/ttscgraph/prepared_projection.go +61 -0
- package/cmd/ttscgraph/projection_fixture_test.go +96 -0
- package/cmd/ttscgraph/run_dump_claims_artifacts_only_when_it_asked_test.go +30 -5
- package/cmd/ttscgraph/run_dump_declares_the_capability_its_output_carries_test.go +6 -1
- package/cmd/ttscgraph/run_dump_emits_only_checker_verified_member_relations_test.go +12 -5
- package/cmd/ttscgraph/run_dump_prints_the_graph_as_json_test.go +17 -12
- package/cmd/ttscgraph/run_help_version_and_bad_flags_exit_codes_test.go +8 -3
- package/cmd/ttscgraph/serve.go +116 -79
- package/cmd/ttscgraph/serve_adopts_a_republished_artifact_set_test.go +16 -167
- package/cmd/ttscgraph/serve_adopts_a_republished_set_over_the_shard_protocol_test.go +122 -0
- package/cmd/ttscgraph/serve_answers_a_project_that_implements_its_own_ambient_declaration_test.go +35 -7
- package/cmd/ttscgraph/serve_early_error_encode_failure_is_observable_test.go +5 -0
- package/cmd/ttscgraph/serve_error_response_still_names_its_mode_test.go +10 -5
- package/cmd/ttscgraph/serve_git_ignore_projection_test.go +150 -0
- package/cmd/ttscgraph/serve_keeps_a_startup_set_a_client_never_mentions_test.go +69 -0
- package/cmd/ttscgraph/serve_object_members_refresh_without_identity_collisions_test.go +82 -0
- package/cmd/ttscgraph/serve_phase_trace_accounts_for_load_failure_test.go +9 -3
- package/cmd/ttscgraph/serve_phase_trace_is_opt_in_and_payload_free_test.go +12 -6
- package/cmd/ttscgraph/serve_projects_an_artifact_no_source_owns_test.go +13 -16
- package/cmd/ttscgraph/serve_protocol_fails_the_stream_on_an_unaddressable_request_line_test.go +10 -9
- package/cmd/ttscgraph/serve_protocol_negotiates_incremental_shards_test.go +37 -2
- package/cmd/ttscgraph/serve_protocol_retries_session_creation_test.go +7 -2
- package/cmd/ttscgraph/serve_protocol_reuses_session_test.go +13 -3
- package/cmd/ttscgraph/serve_session_applies_source_edit_incrementally_test.go +12 -7
- package/cmd/ttscgraph/serve_session_fails_closed_on_deleted_config_test.go +12 -7
- package/cmd/ttscgraph/serve_session_fails_closed_on_invalid_config_test.go +8 -3
- package/cmd/ttscgraph/serve_session_keeps_base_url_fallback_unchanged_test.go +7 -2
- package/cmd/ttscgraph/serve_session_keeps_change_detection_live_after_initial_dump_error_test.go +66 -0
- package/cmd/ttscgraph/serve_session_keeps_esm_directory_candidate_unchanged_test.go +12 -3
- package/cmd/ttscgraph/serve_session_keeps_exports_blocked_file_candidates_unchanged_test.go +8 -3
- package/cmd/ttscgraph/serve_session_keeps_inactive_conditional_export_unchanged_test.go +12 -3
- package/cmd/ttscgraph/serve_session_keeps_lower_priority_module_candidate_unchanged_test.go +14 -8
- package/cmd/ttscgraph/serve_session_keeps_lower_priority_paths_pattern_unchanged_test.go +12 -3
- package/cmd/ttscgraph/serve_session_keeps_missing_literal_root_unchanged_test.go +7 -2
- package/cmd/ttscgraph/serve_session_keeps_nonlongest_root_dirs_candidate_unchanged_test.go +12 -3
- package/cmd/ttscgraph/serve_session_rebuilds_import_graph_change_test.go +17 -8
- package/cmd/ttscgraph/serve_session_reloads_commonjs_package_entry_for_esm_test.go +11 -2
- package/cmd/ttscgraph/serve_session_reloads_created_literal_root_test.go +7 -2
- package/cmd/ttscgraph/serve_session_reloads_extended_config_change_test.go +9 -4
- package/cmd/ttscgraph/serve_session_reloads_module_suffix_candidate_test.go +13 -4
- package/cmd/ttscgraph/serve_session_reloads_newly_resolved_conditional_export_test.go +13 -8
- package/cmd/ttscgraph/serve_session_reloads_newly_resolved_config_types_test.go +7 -2
- package/cmd/ttscgraph/serve_session_reloads_newly_resolved_excluded_import_test.go +11 -3
- package/cmd/ttscgraph/serve_session_reloads_newly_resolved_package_export_test.go +11 -2
- package/cmd/ttscgraph/serve_session_reloads_newly_resolved_package_import_test.go +11 -2
- package/cmd/ttscgraph/serve_session_reloads_newly_resolved_path_alias_test.go +11 -2
- package/cmd/ttscgraph/serve_session_reloads_newly_resolved_reference_path_test.go +11 -2
- package/cmd/ttscgraph/serve_session_reloads_newly_resolved_root_dirs_target_test.go +11 -2
- package/cmd/ttscgraph/serve_session_reloads_newly_resolved_type_reference_test.go +11 -2
- package/cmd/ttscgraph/serve_session_reloads_root_file_set_test.go +11 -5
- package/cmd/ttscgraph/serve_session_reloads_source_deleted_during_load_test.go +16 -9
- package/cmd/ttscgraph/serve_session_reloads_superseding_module_candidates_test.go +18 -13
- package/cmd/ttscgraph/serve_session_reloads_transitive_project_reference_test.go +14 -5
- package/cmd/ttscgraph/serve_session_reloads_when_program_plugin_linked_test.go +13 -8
- package/cmd/ttscgraph/serve_session_retries_a_pending_dump_before_unchanged_test.go +62 -0
- package/cmd/ttscgraph/serve_session_reuses_unchanged_preamble_source_test.go +21 -0
- package/cmd/ttscgraph/serve_session_reuses_unchanged_snapshot_test.go +12 -7
- package/cmd/ttscgraph/serve_session_revisits_source_edited_during_load_test.go +18 -8
- package/cmd/ttscgraph/serve_session_tolerates_os_invalid_resolution_candidate_test.go +13 -9
- package/cmd/ttscgraph/serve_session_tracks_all_module_specifier_forms_test.go +12 -3
- package/cmd/ttscgraph/serve_session_tracks_diamond_project_references_once_test.go +12 -8
- package/cmd/ttscgraph/serve_shards.go +356 -279
- package/cmd/ttscgraph/serve_shards_abandoned_generation_converges_on_retry_test.go +41 -16
- package/cmd/ttscgraph/serve_shards_delete_removed_source_test.go +14 -4
- package/cmd/ttscgraph/serve_shards_external_endpoints_test.go +18 -2
- package/cmd/ttscgraph/serve_shards_keep_source_distributed_dependencies_at_the_boundary_test.go +36 -5
- package/cmd/ttscgraph/serve_shards_match_full_dump_oracle_test.go +12 -3
- package/cmd/ttscgraph/serve_shards_merge_pending_and_new_edits_test.go +36 -3
- package/cmd/ttscgraph/serve_shards_prune_unreferenced_external_endpoints_test.go +18 -2
- package/cmd/ttscgraph/serve_shards_publish_created_source_test.go +16 -13
- package/cmd/ttscgraph/serve_shards_rebuild_declaration_edit_test.go +14 -4
- package/cmd/ttscgraph/serve_shards_refresh_cross_file_implementation_test.go +24 -5
- package/cmd/ttscgraph/serve_shards_refresh_dependent_diagnostics_test.go +30 -7
- package/cmd/ttscgraph/serve_shards_rename_moves_source_identity_test.go +14 -11
- package/cmd/ttscgraph/serve_shards_retry_preserves_committed_generation_test.go +17 -7
- package/cmd/ttscgraph/serve_shards_reuse_unaffected_sources_test.go +21 -7
- package/cmd/ttscgraph/serve_snapshot_proves_its_program_without_a_second_read_test.go +57 -16
- package/cmd/ttscgraph/serve_source_encoding_test.go +133 -0
- package/cmd/ttscserver/command_operation_families_test.go +207 -0
- package/cmd/ttscserver/main.go +121 -39
- package/cmd/ttscserver/resolve_launch_uses_native_flag_authority_test.go +147 -0
- package/cmd/ttscserver/run_lsp_forwards_execute_command_advertisement_flags_test.go +7 -0
- package/cmd/ttscserver/run_lsp_prefers_tsgo_flag_test.go +13 -1
- package/cmd/ttscserver/run_lsp_reports_getwd_error_test.go +5 -0
- package/cmd/ttscserver/run_lsp_reports_server_error_test.go +10 -3
- package/cmd/ttscserver/run_lsp_uses_native_plugin_manifest_source_test.go +13 -10
- package/cmd/ttscserver/run_lsp_uses_tsgo_environment_test.go +10 -3
- package/driver/authored_region_maps_positions_around_the_preamble_test.go +95 -0
- package/driver/build_information_uses_selected_output_identity_test.go +148 -0
- package/driver/check_observations.go +67 -0
- package/driver/config_discovery.go +93 -24
- package/driver/declaration_shape.go +9 -0
- package/driver/diagnostics_preamble.go +8 -7
- package/driver/emit_containment.go +29 -8
- package/driver/emit_plugin.go +106 -36
- package/driver/emit_plugin_output.go +26 -2
- package/driver/emit_provenance.go +155 -0
- package/driver/graph.go +54 -20
- package/driver/host.go +26 -3
- package/driver/input_observation.go +78 -16
- package/driver/input_observation_test.go +34 -11
- package/driver/lsp.go +401 -30
- package/driver/overlay.go +69 -2
- package/driver/plugins.go +256 -24
- package/driver/private_result.go +43 -0
- package/driver/program.go +439 -95
- package/driver/resolution_candidates.go +63 -14
- package/driver/resolution_candidates_test.go +28 -0
- package/driver/resolutioninputs/recorder.cjs +1149 -0
- package/driver/resolutioninputs/resolutioninputs.go +37 -0
- package/driver/rewrite.go +373 -420
- package/driver/session.go +80 -12
- package/driver/sourcemap_preamble.go +38 -16
- package/driver/transform_dependencies.go +38 -10
- package/driver/transform_dependencies_declares_every_file_without_a_contributor_test.go +9 -8
- package/driver/transform_dependencies_drops_a_self_reported_dependency_test.go +7 -6
- package/driver/transform_dependencies_keys_a_reported_path_like_the_envelope_test.go +9 -9
- package/driver/transform_dependencies_requires_every_contributor_to_declare_test.go +10 -5
- package/driver/transform_dependencies_stays_silent_for_an_undeclared_contributor_test.go +8 -6
- package/driver/transform_dependencies_withdraws_completeness_after_an_unusable_dependency_test.go +9 -5
- package/driver/transform_source_map.go +388 -0
- package/driver/windowsjunction/create_preserves_existing_directory_windows_test.go +48 -0
- package/driver/windowsjunction/create_treats_paths_as_data_windows_test.go +55 -0
- package/driver/windowsjunction/windowsjunction.go +17 -1
- package/go.mod +10 -10
- package/go.sum +10 -10
- package/internal/cwd/cwd.go +13 -0
- package/internal/e2etrace/artifact.go +147 -0
- package/internal/e2etrace/completion_hints.go +35 -0
- package/internal/e2etrace/completion_hints_test.go +76 -0
- package/internal/e2etrace/e2etrace.go +303 -0
- package/internal/e2etrace/output.go +50 -0
- package/internal/graph/artifacts.go +69 -12
- package/internal/graph/artifacts_index_what_a_plugin_published_test.go +19 -8
- package/internal/graph/artifacts_survive_a_partial_rebuild_test.go +11 -12
- package/internal/graph/assigned_implementations_of_declaration_file_symbols_leave_no_edge_source_test.go +10 -12
- package/internal/graph/assigned_implementations_of_node_modules_symbols_leave_no_edge_source_test.go +7 -1
- package/internal/graph/build.go +122 -38
- package/internal/graph/build_files_reuses_committed_cross_file_endpoints_test.go +9 -3
- package/internal/graph/build_keeps_source_distributed_dependencies_at_the_external_boundary_test.go +10 -1
- package/internal/graph/build_records_a_node_per_top_level_declaration_test.go +10 -4
- package/internal/graph/build_releases_the_scratch_it_no_longer_reads_test.go +22 -15
- package/internal/graph/decorators.go +18 -0
- package/internal/graph/decorators_capture_name_and_literal_arguments_test.go +9 -4
- package/internal/graph/diagnostics.go +21 -8
- package/internal/graph/doc_refs_are_the_use_the_checker_already_counts_test.go +25 -13
- package/internal/graph/doc_refs_resolve_documentation_links_test.go +19 -15
- package/internal/graph/doc_tags.go +28 -19
- package/internal/graph/doc_tags_are_claimed_before_they_are_read_test.go +16 -6
- package/internal/graph/doc_tags_capture_every_unrecognized_tag_test.go +9 -2
- package/internal/graph/doc_tags_read_only_what_the_parser_attached_test.go +12 -8
- package/internal/graph/doc_tags_stop_at_the_external_boundary_test.go +11 -1
- package/internal/graph/doc_tags_survive_line_endings_and_repeated_blocks_test.go +16 -6
- package/internal/graph/dump.go +200 -51
- package/internal/graph/dump_checkout_paths_are_stable_test.go +9 -2
- package/internal/graph/dump_diagnostics_ride_the_generation_that_built_it_test.go +10 -11
- package/internal/graph/dump_evidence_skips_leading_trivia_test.go +8 -2
- package/internal/graph/dump_is_a_function_of_the_source_test.go +12 -13
- package/internal/graph/dump_never_serializes_a_list_as_null_test.go +9 -9
- package/internal/graph/dump_path_mapper_caches_alias_resolution_test.go +10 -2
- package/internal/graph/dump_path_mapper_rejects_unportable_roots_and_collisions_test.go +53 -0
- package/internal/graph/{dump_paths_are_portable_and_injective_test.go → dump_path_mapper_uses_portable_coordinates_test.go} +8 -43
- package/internal/graph/dump_paths.go +61 -25
- package/internal/graph/dump_paths_canonicalize_windows_short_root_test.go +45 -8
- package/internal/graph/dump_rejects_provenance_only_path_errors_test.go +5 -0
- package/internal/graph/dump_serializes_the_full_graph_test.go +13 -19
- package/internal/graph/dump_symlink_project_publishes_matching_base_test.go +8 -0
- package/internal/graph/dump_uses_ecma_line_terminators_test.go +12 -6
- package/internal/graph/duplicate_variable_object_members_keep_first_declaration_test.go +11 -8
- package/internal/graph/edge_spans_point_to_resolved_usage_test.go +13 -5
- package/internal/graph/edges.go +44 -47
- package/internal/graph/edges_cover_class_level_references_test.go +14 -11
- package/internal/graph/enum_initializer_calls_are_edges_test.go +13 -3
- package/internal/graph/enum_members_carry_their_names_on_the_enum_node_test.go +19 -26
- package/internal/graph/exports.go +3 -5
- package/internal/graph/file_diagnostics_match_tsgo_code_and_location_test.go +9 -4
- package/internal/graph/file_diagnostics_report_code_column_and_message_test.go +11 -5
- package/internal/graph/function_locals_do_not_collide_test.go +27 -7
- package/internal/graph/gitignore.go +25 -12
- package/internal/graph/graph.go +167 -52
- package/internal/graph/heritage_edges_cover_implements_and_interface_extends_test.go +11 -3
- package/internal/graph/heritage_edges_keep_extends_and_implements_to_same_base_test.go +6 -0
- package/internal/graph/heritage_edges_record_extends_versus_implements_origin_test.go +9 -3
- package/internal/graph/heritage_edges_traverse_barrels_and_stop_at_external_leaves_test.go +11 -4
- package/internal/graph/line_model.go +44 -25
- package/internal/graph/literals.go +6 -7
- package/internal/graph/literals_are_absent_when_the_type_admits_more_than_it_can_name_test.go +10 -5
- package/internal/graph/literals_cover_enum_members_the_graph_has_no_nodes_for_test.go +15 -17
- package/internal/graph/literals_do_not_depend_on_declaration_line_wrapping_test.go +10 -9
- package/internal/graph/literals_render_every_value_in_typescript_source_form_test.go +11 -11
- package/internal/graph/literals_resolve_through_alias_indirection_test.go +11 -11
- package/internal/graph/member_relation_edges_follow_checker_validity_test.go +11 -2
- package/internal/graph/member_relation_edges_preserve_checker_boundaries_test.go +11 -1
- package/internal/graph/member_relation_edges_reject_checker_invalid_pairs_test.go +12 -7
- package/internal/graph/namespace_dotted_form_qualifies_deeply_test.go +12 -3
- package/internal/graph/namespace_members_become_qualified_nodes_and_edges_test.go +12 -2
- package/internal/graph/node_identity_is_position_invariant_test.go +8 -2
- package/internal/graph/node_ids_preserve_hash_bearing_components_test.go +10 -2
- package/internal/graph/node_modifiers_emit_union_strings_test.go +13 -12
- package/internal/graph/nodes_are_marked_exported_through_the_export_table_test.go +12 -14
- package/internal/graph/object_literal_declarations_resolve_calls_test.go +170 -0
- package/internal/graph/object_literal_members_ride_on_the_snapshot_test.go +14 -13
- package/internal/graph/object_member_signatures_preserve_literal_whitespace_test.go +11 -7
- package/internal/graph/object_members.go +100 -1
- package/internal/graph/overload_implementation_replaces_signature_test.go +13 -2
- package/internal/graph/property_member_edges_remain_owner_visible_test.go +9 -3
- package/internal/graph/provenance.go +172 -87
- package/internal/graph/resolve.go +46 -12
- package/internal/graph/resolve_prefers_implementation_declaration_test.go +10 -2
- package/internal/graph/resolve_unwraps_barrel_reexport_to_real_declaration_test.go +16 -20
- package/internal/graph/source.go +16 -6
- package/internal/graph/source_texts_cover_every_resident_program_source_test.go +11 -7
- package/internal/graph/type_ref_edges_cover_typeof_as_satisfies_test.go +21 -2
- package/internal/graph/type_ref_edges_resolve_named_types_across_files_test.go +8 -3
- package/internal/graph/value_access_edges_cover_properties_test.go +11 -3
- package/internal/graph/value_call_edges_attribute_function_assignments_to_members_test.go +10 -4
- package/internal/graph/value_call_edges_cover_jsx_components_test.go +12 -8
- package/internal/graph/value_call_edges_cover_methods_and_constructors_test.go +12 -9
- package/internal/graph/value_call_edges_cover_variable_bound_callables_test.go +9 -3
- package/internal/graph/value_call_edges_do_not_double_record_invoked_member_access_test.go +10 -3
- package/internal/graph/value_call_edges_record_construct_versus_call_origin_test.go +12 -9
- package/internal/graph/value_call_edges_resolve_across_files_and_dedupe_test.go +10 -3
- package/internal/graph/value_call_edges_skip_self_and_unresolved_test.go +16 -5
- package/internal/graph/wire_node_ids_share_alias_resolution_test.go +10 -4
- package/internal/graphsymbols/position_helpers_follow_ecma_line_terminators_test.go +16 -4
- package/internal/graphsymbols/provider.go +278 -113
- package/internal/lspserver/lsp_clean_didopen_refreshes_compiler_state_test.go +14 -12
- package/internal/lspserver/lsp_completion_gate_never_refuses_a_matching_line_test.go +7 -1
- package/internal/lspserver/lsp_completion_hints_longest_trigger_wins_test.go +30 -5
- package/internal/lspserver/lsp_completion_hints_nearest_trigger_wins_test.go +5 -0
- package/internal/lspserver/lsp_completion_merges_into_upstream_response_test.go +23 -10
- package/internal/lspserver/lsp_completion_nearest_hint_replaces_nearest_filter_test.go +7 -1
- package/internal/lspserver/lsp_completion_preserves_completion_list_extensions_test.go +13 -5
- package/internal/lspserver/lsp_completion_refuses_hints_inside_a_string_literal_test.go +11 -7
- package/internal/lspserver/lsp_completion_replaces_full_filter_in_rank_order_test.go +12 -2
- package/internal/lspserver/lsp_completion_request.go +5 -26
- package/internal/lspserver/lsp_completion_scope.go +13 -10
- package/internal/lspserver/lsp_completion_scope_bench_test.go +11 -5
- package/internal/lspserver/lsp_completion_scope_classifies_regex_statement_and_operator_boundaries_test.go +8 -1
- package/internal/lspserver/lsp_completion_scope_ignores_jsdoc_bytes_in_literals_test.go +11 -10
- package/internal/lspserver/lsp_completion_scope_refuses_regex_hints_test.go +7 -3
- package/internal/lspserver/lsp_completion_trigger_uses_last_rune_test.go +6 -0
- package/internal/lspserver/lsp_deleted_watched_file_withdraws_plugin_diagnostics_test.go +11 -10
- package/internal/lspserver/lsp_didsave_keeps_the_incremental_changed_uri_path_test.go +12 -9
- package/internal/lspserver/lsp_document_diagnostics_omits_cached_project_when_current_result_has_none_test.go +17 -5
- package/internal/lspserver/lsp_envelope.go +84 -11
- package/internal/lspserver/lsp_executable_project_input_change_requests_launcher_restart_test.go +12 -9
- package/internal/lspserver/lsp_external_watched_change_retains_program_test.go +8 -2
- package/internal/lspserver/lsp_frame.go +42 -10
- package/internal/lspserver/lsp_hints_absence_is_not_an_error_test.go +16 -15
- package/internal/lspserver/lsp_hints_refresh_coalesces_concurrent_requests_test.go +21 -12
- package/internal/lspserver/lsp_hints_refresh_ignores_a_superseded_generation_test.go +20 -12
- package/internal/lspserver/lsp_hints_refresh_keeps_each_producer_isolated_test.go +30 -9
- package/internal/lspserver/lsp_hints_refresh_replaces_the_session_snapshot_test.go +25 -18
- package/internal/lspserver/lsp_hints_refresh_scheduled_by_editor_events_test.go +12 -12
- package/internal/lspserver/lsp_hints_refresh_serves_completion_while_running_test.go +21 -8
- package/internal/lspserver/lsp_index_byte_from_bounds_its_search_start_test.go +9 -7
- package/internal/lspserver/lsp_initialize_constrains_position_encoding_to_utf16_test.go +57 -21
- package/internal/lspserver/lsp_late_completion_trigger_is_reported_once_test.go +16 -17
- package/internal/lspserver/lsp_native_completion_hints_decode_flat_lint_wire_test.go +8 -2
- package/internal/lspserver/lsp_native_completion_hints_grouped_compatibility_boundary_test.go +5 -0
- package/internal/lspserver/lsp_native_plugin_source.go +381 -202
- package/internal/lspserver/lsp_native_plugin_source_ends_the_session_on_a_selection_input_test.go +234 -0
- package/internal/lspserver/lsp_native_reply_policies_test.go +475 -0
- package/internal/lspserver/lsp_native_reply_policy.go +232 -0
- package/internal/lspserver/lsp_native_resident.go +171 -57
- package/internal/lspserver/lsp_plugin.go +372 -68
- package/internal/lspserver/lsp_plugin_completion_resolve_stays_local_test.go +13 -4
- package/internal/lspserver/lsp_plugin_selection_inputs.go +283 -0
- package/internal/lspserver/lsp_plugin_selection_inputs_follow_directory_case_semantics_windows_test.go +81 -0
- package/internal/lspserver/lsp_position_conversions_span_astral_and_combining_runes_test.go +33 -11
- package/internal/lspserver/lsp_project_context_transport_identity_test.go +14 -2
- package/internal/lspserver/lsp_project_diagnostics.go +25 -4
- package/internal/lspserver/lsp_project_diagnostics_capability_is_independent_test.go +13 -2
- package/internal/lspserver/lsp_project_diagnostics_program_input_overlap_refreshes_all_producers_test.go +14 -4
- package/internal/lspserver/lsp_project_diagnostics_refresh_accumulates_owner_freshness_test.go +8 -2
- package/internal/lspserver/lsp_project_diagnostics_refresh_keeps_each_producer_last_good_test.go +10 -5
- package/internal/lspserver/lsp_project_diagnostics_refreshes_only_input_owners_test.go +14 -2
- package/internal/lspserver/lsp_project_diagnostics_resume_preserves_generation_test.go +8 -2
- package/internal/lspserver/lsp_project_diagnostics_translates_relative_client_project_test.go +15 -11
- package/internal/lspserver/lsp_project_input_ownership_resolves_declared_spellings_test.go +17 -8
- package/internal/lspserver/lsp_project_input_path_key_windows.go +16 -16
- package/internal/lspserver/lsp_project_input_path_key_windows_test.go +34 -18
- package/internal/lspserver/lsp_project_input_registration.go +5 -1
- package/internal/lspserver/lsp_project_input_registration_rechecks_selection_baseline_test.go +10 -4
- package/internal/lspserver/lsp_project_input_registration_reconciles_rejected_pending_request_test.go +5 -0
- package/internal/lspserver/lsp_project_input_registration_shapes_patterns_test.go +9 -3
- package/internal/lspserver/lsp_project_input_watchers_anchor_missing_paths_test.go +8 -3
- package/internal/lspserver/lsp_project_inputs.go +203 -59
- package/internal/lspserver/lsp_project_inputs_match_missing_exact_and_glob_test.go +10 -6
- package/internal/lspserver/lsp_project_inputs_reject_invalid_and_foreign_snapshots_test.go +25 -2
- package/internal/lspserver/lsp_proxy.go +239 -80
- package/internal/lspserver/lsp_refresh.go +16 -1
- package/internal/lspserver/lsp_reload_directories_compare_immediate_topology_test.go +66 -19
- package/internal/lspserver/lsp_reload_directories_separate_glob_territory_test.go +26 -6
- package/internal/lspserver/lsp_reload_file_fingerprint_preserves_raw_symlink_target_test.go +12 -6
- package/internal/lspserver/lsp_reload_fingerprints_read_a_junction_as_a_link_test.go +76 -0
- package/internal/lspserver/lsp_resident_falls_back_when_serve_unsupported_test.go +20 -13
- package/internal/lspserver/lsp_resident_invalidation_broadcasts_program_input_overlap_test.go +9 -4
- package/internal/lspserver/lsp_resident_invalidation_targets_project_input_owners_test.go +6 -1
- package/internal/lspserver/lsp_resident_maps_verb_args_test.go +5 -0
- package/internal/lspserver/lsp_same_transport_entries_are_deduplicated_test.go +10 -1
- package/internal/lspserver/lsp_server.go +124 -21
- package/internal/lspserver/lsp_symbols.go +92 -13
- package/internal/lspserver/lsp_watched_file_changes_reach_compiler_caches_test.go +11 -10
- package/internal/sourceprocess/complete_group.go +70 -0
- package/internal/sourceprocess/complete_group_preserves_original_wait_and_requires_independent_absence_test.go +145 -0
- package/internal/sourceprocess/contain_unix.go +143 -0
- package/internal/sourceprocess/contain_windows.go +442 -0
- package/internal/sourceprocess/darwin_group_retirement_preserves_phase_evidence_test.go +287 -0
- package/internal/sourceprocess/observe_exit_darwin.go +57 -0
- package/internal/sourceprocess/observe_exit_linux.go +27 -0
- package/internal/sourceprocess/observe_exit_other.go +11 -0
- package/internal/sourceprocess/reap_linux.go +31 -0
- package/internal/sourceprocess/reap_other.go +10 -0
- package/internal/sourceprocess/request_preserves_native_command_inputs_test.go +86 -0
- package/internal/sourceprocess/run.go +216 -0
- package/internal/sourceprocess/target_windows.go +211 -0
- package/internal/sourceprocess/windows_job_accounting_rejects_invalid_boundary_test.go +97 -0
- package/internal/sourceprocess/windows_target_owns_suspended_admission_test.go +179 -0
- package/internal/watchhelper/run.go +32 -0
- package/internal/watchhelper/run_linux.go +323 -0
- package/internal/watchhelper/run_linux_test.go +418 -0
- package/internal/watchhelper/run_other.go +16 -0
- package/internal/watchhelper/watchhelper.go +100 -0
- package/lib/TtscCompiler.d.ts +118 -21
- package/lib/TtscCompiler.js +175 -179
- package/lib/TtscCompiler.js.map +1 -1
- package/lib/TtscService.d.ts +66 -18
- package/lib/TtscService.js +81 -24
- package/lib/TtscService.js.map +1 -1
- package/lib/TtscServiceRequestOptions.d.ts +21 -0
- package/lib/TtscServiceRequestOptions.js +3 -0
- package/lib/TtscServiceRequestOptions.js.map +1 -0
- package/lib/compiler/internal/CapturedProcessOutput.d.ts +61 -0
- package/lib/compiler/internal/CapturedProcessOutput.js +3 -0
- package/lib/compiler/internal/CapturedProcessOutput.js.map +1 -0
- package/lib/compiler/internal/CompilerArgumentsInspection.d.ts +53 -0
- package/lib/compiler/internal/CompilerArgumentsInspection.js +173 -0
- package/lib/compiler/internal/CompilerArgumentsInspection.js.map +1 -0
- package/lib/compiler/internal/EmitOwnershipIndex.d.ts +92 -0
- package/lib/compiler/internal/EmitOwnershipIndex.js +215 -0
- package/lib/compiler/internal/EmitOwnershipIndex.js.map +1 -0
- package/lib/compiler/internal/PrivateCompilerOutput.d.ts +67 -0
- package/lib/compiler/internal/PrivateCompilerOutput.js +245 -0
- package/lib/compiler/internal/PrivateCompilerOutput.js.map +1 -0
- package/lib/compiler/internal/ResidentCheckProcess.d.ts +127 -0
- package/lib/compiler/internal/ResidentCheckProcess.js +403 -0
- package/lib/compiler/internal/ResidentCheckProcess.js.map +1 -0
- package/lib/compiler/internal/ResidentCheckProcessOptions.d.ts +29 -0
- package/lib/compiler/internal/ResidentCheckProcessOptions.js +3 -0
- package/lib/compiler/internal/ResidentCheckProcessOptions.js.map +1 -0
- package/lib/compiler/internal/ResidentCheckRequest.d.ts +37 -0
- package/lib/compiler/internal/ResidentCheckRequest.js +3 -0
- package/lib/compiler/internal/ResidentCheckRequest.js.map +1 -0
- package/lib/compiler/internal/ResidentCheckResult.d.ts +23 -0
- package/lib/compiler/internal/ResidentCheckResult.js +3 -0
- package/lib/compiler/internal/ResidentCheckResult.js.map +1 -0
- package/lib/compiler/internal/ResidentCheckTelemetry.d.ts +33 -0
- package/lib/compiler/internal/ResidentCheckTelemetry.js +3 -0
- package/lib/compiler/internal/ResidentCheckTelemetry.js.map +1 -0
- package/lib/compiler/internal/ResidentReplyKind.d.ts +18 -0
- package/lib/compiler/internal/ResidentReplyKind.js +3 -0
- package/lib/compiler/internal/ResidentReplyKind.js.map +1 -0
- package/lib/compiler/internal/ResidentTransformProcess.d.ts +83 -0
- package/lib/compiler/internal/ResidentTransformProcess.js +261 -0
- package/lib/compiler/internal/ResidentTransformProcess.js.map +1 -0
- package/lib/compiler/internal/ResidentTransformProcessOptions.d.ts +27 -0
- package/lib/compiler/internal/ResidentTransformProcessOptions.js +3 -0
- package/lib/compiler/internal/ResidentTransformProcessOptions.js.map +1 -0
- package/lib/compiler/internal/ResidentTransformReply.d.ts +51 -0
- package/lib/compiler/internal/ResidentTransformReply.js +79 -0
- package/lib/compiler/internal/ResidentTransformReply.js.map +1 -0
- package/lib/compiler/internal/ResidentTransformRequestOptions.d.ts +16 -0
- package/lib/compiler/internal/ResidentTransformRequestOptions.js +3 -0
- package/lib/compiler/internal/ResidentTransformRequestOptions.js.map +1 -0
- package/lib/compiler/internal/ResidentTransformRequests.d.ts +102 -0
- package/lib/compiler/internal/ResidentTransformRequests.js +172 -0
- package/lib/compiler/internal/ResidentTransformRequests.js.map +1 -0
- package/lib/compiler/internal/StartedResidentTransform.d.ts +27 -0
- package/lib/compiler/internal/StartedResidentTransform.js +3 -0
- package/lib/compiler/internal/StartedResidentTransform.js.map +1 -0
- package/lib/compiler/internal/TransformProjectWorkerReply.d.ts +34 -0
- package/lib/compiler/internal/TransformProjectWorkerReply.js +3 -0
- package/lib/compiler/internal/TransformProjectWorkerReply.js.map +1 -0
- package/lib/compiler/internal/TransformProjectWorkerRequest.d.ts +39 -0
- package/lib/compiler/internal/TransformProjectWorkerRequest.js +3 -0
- package/lib/compiler/internal/TransformProjectWorkerRequest.js.map +1 -0
- package/lib/compiler/internal/build/BuildExecution.d.ts +359 -0
- package/lib/compiler/internal/build/BuildExecution.js +977 -0
- package/lib/compiler/internal/build/BuildExecution.js.map +1 -0
- package/lib/compiler/internal/build/BuildTiming.d.ts +99 -0
- package/lib/compiler/internal/build/BuildTiming.js +113 -0
- package/lib/compiler/internal/build/BuildTiming.js.map +1 -0
- package/lib/compiler/internal/build/CompilerDiagnostics.d.ts +82 -0
- package/lib/compiler/internal/build/CompilerDiagnostics.js +270 -0
- package/lib/compiler/internal/build/CompilerDiagnostics.js.map +1 -0
- package/lib/compiler/internal/build/NativePluginArguments.d.ts +114 -0
- package/lib/compiler/internal/build/NativePluginArguments.js +255 -0
- package/lib/compiler/internal/build/NativePluginArguments.js.map +1 -0
- package/lib/compiler/internal/build/PassthroughFlags.d.ts +137 -0
- package/lib/compiler/internal/build/PassthroughFlags.js +213 -0
- package/lib/compiler/internal/build/PassthroughFlags.js.map +1 -0
- package/lib/compiler/internal/build/PluginFailureDiagnostics.d.ts +48 -0
- package/lib/compiler/internal/build/PluginFailureDiagnostics.js +68 -0
- package/lib/compiler/internal/build/PluginFailureDiagnostics.js.map +1 -0
- package/lib/compiler/internal/build/ResidentCheckEntryPlan.d.ts +38 -0
- package/lib/compiler/internal/build/ResidentCheckEntryPlan.js +3 -0
- package/lib/compiler/internal/build/ResidentCheckEntryPlan.js.map +1 -0
- package/lib/compiler/internal/build/ResidentCheckWatchChange.d.ts +30 -0
- package/lib/compiler/internal/build/ResidentCheckWatchChange.js +3 -0
- package/lib/compiler/internal/build/ResidentCheckWatchChange.js.map +1 -0
- package/lib/compiler/internal/build/ResidentCheckWatchSession.d.ts +113 -0
- package/lib/compiler/internal/build/ResidentCheckWatchSession.js +378 -0
- package/lib/compiler/internal/build/ResidentCheckWatchSession.js.map +1 -0
- package/lib/compiler/internal/build/RunBuildOptions.d.ts +130 -0
- package/lib/compiler/internal/build/RunBuildOptions.js +3 -0
- package/lib/compiler/internal/build/RunBuildOptions.js.map +1 -0
- package/lib/compiler/internal/build/TsgoArguments.d.ts +168 -0
- package/lib/compiler/internal/build/TsgoArguments.js +324 -0
- package/lib/compiler/internal/build/TsgoArguments.js.map +1 -0
- package/lib/compiler/internal/build/appendBuildOutput.d.ts +41 -0
- package/lib/compiler/internal/build/appendBuildOutput.js +182 -0
- package/lib/compiler/internal/build/appendBuildOutput.js.map +1 -0
- package/lib/compiler/internal/build/bufferResidentCheckEntryRequests.d.ts +20 -0
- package/lib/compiler/internal/build/bufferResidentCheckEntryRequests.js +40 -0
- package/lib/compiler/internal/build/bufferResidentCheckEntryRequests.js.map +1 -0
- package/lib/compiler/internal/build/createProcessDiagnostic.d.ts +19 -0
- package/lib/compiler/internal/build/createProcessDiagnostic.js +30 -0
- package/lib/compiler/internal/build/createProcessDiagnostic.js.map +1 -0
- package/lib/compiler/internal/build/isAbsoluteLocalProjectInputPath.d.ts +22 -0
- package/lib/compiler/internal/build/isAbsoluteLocalProjectInputPath.js +59 -0
- package/lib/compiler/internal/build/isAbsoluteLocalProjectInputPath.js.map +1 -0
- package/lib/compiler/internal/build/mergeProjectInputSnapshots.d.ts +28 -0
- package/lib/compiler/internal/build/mergeProjectInputSnapshots.js +121 -0
- package/lib/compiler/internal/build/mergeProjectInputSnapshots.js.map +1 -0
- package/lib/compiler/internal/build/normalizeBuildOutput.d.ts +29 -0
- package/lib/compiler/internal/build/normalizeBuildOutput.js +72 -0
- package/lib/compiler/internal/build/normalizeBuildOutput.js.map +1 -0
- package/lib/compiler/internal/build/parseProjectInputSnapshot.d.ts +26 -0
- package/lib/compiler/internal/build/parseProjectInputSnapshot.js +68 -0
- package/lib/compiler/internal/build/parseProjectInputSnapshot.js.map +1 -0
- package/lib/compiler/internal/build/planResidentCheckEntries.d.ts +21 -0
- package/lib/compiler/internal/build/planResidentCheckEntries.js +45 -0
- package/lib/compiler/internal/build/planResidentCheckEntries.js.map +1 -0
- package/lib/compiler/internal/build/privateRuntimeRootDir.d.ts +20 -0
- package/lib/compiler/internal/build/privateRuntimeRootDir.js +35 -0
- package/lib/compiler/internal/build/privateRuntimeRootDir.js.map +1 -0
- package/lib/compiler/internal/build/residentCheckRequest.d.ts +22 -0
- package/lib/compiler/internal/build/residentCheckRequest.js +42 -0
- package/lib/compiler/internal/build/residentCheckRequest.js.map +1 -0
- package/lib/compiler/internal/build/runBuild.d.ts +22 -0
- package/lib/compiler/internal/build/runBuild.js +44 -0
- package/lib/compiler/internal/build/runBuild.js.map +1 -0
- package/lib/compiler/internal/build/runExternalEmitProvenance.d.ts +61 -0
- package/lib/compiler/internal/build/runExternalEmitProvenance.js +451 -0
- package/lib/compiler/internal/build/runExternalEmitProvenance.js.map +1 -0
- package/lib/compiler/internal/build/takeResidentCheckEntryRequest.d.ts +18 -0
- package/lib/compiler/internal/build/takeResidentCheckEntryRequest.js +28 -0
- package/lib/compiler/internal/build/takeResidentCheckEntryRequest.js.map +1 -0
- package/lib/compiler/internal/buildNativeCompiler.d.ts +16 -1
- package/lib/compiler/internal/buildNativeCompiler.js +14 -2
- package/lib/compiler/internal/buildNativeCompiler.js.map +1 -1
- package/lib/compiler/internal/captureProcessOutput.d.ts +23 -23
- package/lib/compiler/internal/captureProcessOutput.js +38 -26
- package/lib/compiler/internal/captureProcessOutput.js.map +1 -1
- package/lib/compiler/internal/compileProjectInMemory.d.ts +30 -7
- package/lib/compiler/internal/compileProjectInMemory.js +103 -83
- package/lib/compiler/internal/compileProjectInMemory.js.map +1 -1
- package/lib/compiler/internal/ensureExecutable.d.ts +15 -0
- package/lib/compiler/internal/ensureExecutable.js +40 -0
- package/lib/compiler/internal/ensureExecutable.js.map +1 -0
- package/lib/compiler/internal/findNearestGoMod.d.ts +23 -0
- package/lib/compiler/internal/findNearestGoMod.js +48 -0
- package/lib/compiler/internal/findNearestGoMod.js.map +1 -0
- package/lib/compiler/internal/isOutsideRelativePath.d.ts +18 -0
- package/lib/compiler/internal/isOutsideRelativePath.js +30 -0
- package/lib/compiler/internal/isOutsideRelativePath.js.map +1 -0
- package/lib/compiler/internal/outputText.d.ts +16 -0
- package/lib/compiler/internal/outputText.js +25 -0
- package/lib/compiler/internal/outputText.js.map +1 -0
- package/lib/compiler/internal/packageRootDir.d.ts +25 -0
- package/lib/compiler/internal/packageRootDir.js +47 -0
- package/lib/compiler/internal/packageRootDir.js.map +1 -0
- package/lib/compiler/internal/parseNativeTransformOutput.d.ts +88 -0
- package/lib/compiler/internal/parseNativeTransformOutput.js +552 -0
- package/lib/compiler/internal/parseNativeTransformOutput.js.map +1 -0
- package/lib/compiler/internal/project/CompilerProjectSelection.d.ts +80 -0
- package/lib/compiler/internal/project/CompilerProjectSelection.js +187 -0
- package/lib/compiler/internal/project/CompilerProjectSelection.js.map +1 -0
- package/lib/compiler/internal/project/ConfigJsonText.d.ts +50 -0
- package/lib/compiler/internal/project/ConfigJsonText.js +61 -0
- package/lib/compiler/internal/project/ConfigJsonText.js.map +1 -0
- package/lib/compiler/internal/project/compilerUsesCaseSensitiveFileNames.d.ts +48 -0
- package/lib/compiler/internal/project/compilerUsesCaseSensitiveFileNames.js +119 -0
- package/lib/compiler/internal/project/compilerUsesCaseSensitiveFileNames.js.map +1 -0
- package/lib/compiler/internal/project/createNativeProjectContextArgs.d.ts +11 -8
- package/lib/compiler/internal/project/createNativeProjectContextArgs.js +15 -17
- package/lib/compiler/internal/project/createNativeProjectContextArgs.js.map +1 -1
- package/lib/compiler/internal/project/createNativeProjectContextJson.d.ts +19 -0
- package/lib/compiler/internal/project/createNativeProjectContextJson.js +27 -0
- package/lib/compiler/internal/project/createNativeProjectContextJson.js.map +1 -0
- package/lib/compiler/internal/project/parseJsonc.d.ts +42 -0
- package/lib/compiler/internal/project/parseJsonc.js +317 -0
- package/lib/compiler/internal/project/parseJsonc.js.map +1 -0
- package/lib/compiler/internal/project/readJsonFile.d.ts +21 -0
- package/lib/compiler/internal/project/readJsonFile.js +38 -0
- package/lib/compiler/internal/project/readJsonFile.js.map +1 -0
- package/lib/compiler/internal/project/readJsoncFile.d.ts +20 -0
- package/lib/compiler/internal/project/readJsoncFile.js +47 -0
- package/lib/compiler/internal/project/readJsoncFile.js.map +1 -0
- package/lib/compiler/internal/project/readProjectConfig.d.ts +29 -2
- package/lib/compiler/internal/project/readProjectConfig.js +105 -168
- package/lib/compiler/internal/project/readProjectConfig.js.map +1 -1
- package/lib/compiler/internal/project/resolveOwningProjectConfig.d.ts +65 -0
- package/lib/compiler/internal/project/resolveOwningProjectConfig.js +248 -0
- package/lib/compiler/internal/project/resolveOwningProjectConfig.js.map +1 -0
- package/lib/compiler/internal/project/resolveProjectConfig.d.ts +17 -14
- package/lib/compiler/internal/project/resolveProjectConfig.js +19 -122
- package/lib/compiler/internal/project/resolveProjectConfig.js.map +1 -1
- package/lib/compiler/internal/project/resolveProjectIdentity.d.ts +32 -0
- package/lib/compiler/internal/project/resolveProjectIdentity.js +144 -0
- package/lib/compiler/internal/project/resolveProjectIdentity.js.map +1 -0
- package/lib/compiler/internal/project/resolveTsconfigExtends.d.ts +38 -0
- package/lib/compiler/internal/project/resolveTsconfigExtends.js +163 -0
- package/lib/compiler/internal/project/resolveTsconfigExtends.js.map +1 -0
- package/lib/compiler/internal/project/selectReferencedProject.d.ts +26 -0
- package/lib/compiler/internal/project/selectReferencedProject.js +48 -0
- package/lib/compiler/internal/project/selectReferencedProject.js.map +1 -0
- package/lib/compiler/internal/project/tsconfigExtendsFileCandidates.d.ts +34 -0
- package/lib/compiler/internal/project/tsconfigExtendsFileCandidates.js +55 -0
- package/lib/compiler/internal/project/tsconfigExtendsFileCandidates.js.map +1 -0
- package/lib/compiler/internal/readEffectiveCompilerOptions.d.ts +54 -0
- package/lib/compiler/internal/readEffectiveCompilerOptions.js +116 -0
- package/lib/compiler/internal/readEffectiveCompilerOptions.js.map +1 -0
- package/lib/compiler/internal/resolveBinary.d.ts +17 -1
- package/lib/compiler/internal/resolveBinary.js +24 -9
- package/lib/compiler/internal/resolveBinary.js.map +1 -1
- package/lib/compiler/internal/resolveTsgo.d.ts +22 -7
- package/lib/compiler/internal/resolveTsgo.js +25 -9
- package/lib/compiler/internal/resolveTsgo.js.map +1 -1
- package/lib/compiler/internal/runNativeCheckWithObservations.d.ts +41 -0
- package/lib/compiler/internal/runNativeCheckWithObservations.js +185 -0
- package/lib/compiler/internal/runNativeCheckWithObservations.js.map +1 -0
- package/lib/compiler/internal/runSingleFileEmit.d.ts +26 -5
- package/lib/compiler/internal/runSingleFileEmit.js +82 -27
- package/lib/compiler/internal/runSingleFileEmit.js.map +1 -1
- package/lib/compiler/internal/sharedHost/SEMANTIC_CONFIG_PATH_ENV.d.ts +2 -0
- package/lib/compiler/internal/sharedHost/SEMANTIC_CONFIG_PATH_ENV.js +6 -0
- package/lib/compiler/internal/sharedHost/SEMANTIC_CONFIG_PATH_ENV.js.map +1 -0
- package/lib/compiler/internal/sharedHost/SidecarEnvironment.d.ts +90 -0
- package/lib/compiler/internal/sharedHost/SidecarEnvironment.js +153 -0
- package/lib/compiler/internal/sharedHost/SidecarEnvironment.js.map +1 -0
- package/lib/compiler/internal/sharedHost/TSGO_ARGS_CWD_ENV.d.ts +7 -0
- package/lib/compiler/internal/sharedHost/TSGO_ARGS_CWD_ENV.js +11 -0
- package/lib/compiler/internal/sharedHost/TSGO_ARGS_CWD_ENV.js.map +1 -0
- package/lib/compiler/internal/sharedHost/TSGO_ARGS_ENV.d.ts +7 -0
- package/lib/compiler/internal/sharedHost/TSGO_ARGS_ENV.js +11 -0
- package/lib/compiler/internal/sharedHost/TSGO_ARGS_ENV.js.map +1 -0
- package/lib/compiler/internal/sharedHost/assertSharedHostCompatibility.d.ts +24 -0
- package/lib/compiler/internal/sharedHost/assertSharedHostCompatibility.js +46 -0
- package/lib/compiler/internal/sharedHost/assertSharedHostCompatibility.js.map +1 -0
- package/lib/compiler/internal/sharedHost/clearInheritedSemanticConfigPath.d.ts +15 -0
- package/lib/compiler/internal/sharedHost/clearInheritedSemanticConfigPath.js +23 -0
- package/lib/compiler/internal/sharedHost/clearInheritedSemanticConfigPath.js.map +1 -0
- package/lib/compiler/internal/sharedHost/clearInheritedTsgoArgs.d.ts +23 -0
- package/lib/compiler/internal/sharedHost/clearInheritedTsgoArgs.js +33 -0
- package/lib/compiler/internal/sharedHost/clearInheritedTsgoArgs.js.map +1 -0
- package/lib/compiler/internal/sharedHost/inheritedSidecarEnv.d.ts +27 -0
- package/lib/compiler/internal/sharedHost/inheritedSidecarEnv.js +41 -0
- package/lib/compiler/internal/sharedHost/inheritedSidecarEnv.js.map +1 -0
- package/lib/compiler/internal/sharedHost/isLinkedTransform.d.ts +16 -0
- package/lib/compiler/internal/sharedHost/isLinkedTransform.js +21 -0
- package/lib/compiler/internal/sharedHost/isLinkedTransform.js.map +1 -0
- package/lib/compiler/internal/sharedHost/linkedTransformPlugins.d.ts +19 -0
- package/lib/compiler/internal/sharedHost/linkedTransformPlugins.js +25 -0
- package/lib/compiler/internal/sharedHost/linkedTransformPlugins.js.map +1 -0
- package/lib/compiler/internal/sharedHost/publishLinkedTransformPlugins.d.ts +25 -0
- package/lib/compiler/internal/sharedHost/publishLinkedTransformPlugins.js +35 -0
- package/lib/compiler/internal/sharedHost/publishLinkedTransformPlugins.js.map +1 -0
- package/lib/compiler/internal/sharedHost/resolvePluginConfigDir.d.ts +26 -0
- package/lib/compiler/internal/sharedHost/resolvePluginConfigDir.js +36 -0
- package/lib/compiler/internal/sharedHost/resolvePluginConfigDir.js.map +1 -0
- package/lib/compiler/internal/sharedHost/selectSharedHostPlugin.d.ts +22 -0
- package/lib/compiler/internal/sharedHost/selectSharedHostPlugin.js +32 -0
- package/lib/compiler/internal/sharedHost/selectSharedHostPlugin.js.map +1 -0
- package/lib/compiler/internal/spawnNative.d.ts +15 -16
- package/lib/compiler/internal/spawnNative.js +17 -45
- package/lib/compiler/internal/spawnNative.js.map +1 -1
- package/lib/compiler/internal/startResidentTransform.d.ts +26 -17
- package/lib/compiler/internal/startResidentTransform.js +51 -36
- package/lib/compiler/internal/startResidentTransform.js.map +1 -1
- package/lib/compiler/internal/transformProjectInMemory.d.ts +42 -5
- package/lib/compiler/internal/transformProjectInMemory.js +189 -469
- package/lib/compiler/internal/transformProjectInMemory.js.map +1 -1
- package/lib/compiler/internal/transformProjectInWorker.d.ts +49 -0
- package/lib/compiler/internal/transformProjectInWorker.js +168 -0
- package/lib/compiler/internal/transformProjectInWorker.js.map +1 -0
- package/lib/compiler/internal/transformProjectWorker.js +37 -0
- package/lib/compiler/internal/transformProjectWorker.js.map +1 -0
- package/lib/flags/AnySubcommand.d.ts +18 -0
- package/lib/flags/AnySubcommand.js +3 -0
- package/lib/flags/AnySubcommand.js.map +1 -0
- package/lib/flags/COMPILER_ENUM_WHITESPACE.d.ts +2 -0
- package/lib/flags/COMPILER_ENUM_WHITESPACE.js +38 -0
- package/lib/flags/COMPILER_ENUM_WHITESPACE.js.map +1 -0
- package/lib/flags/COMPILER_OPTIONS.d.ts +6 -0
- package/lib/flags/COMPILER_OPTIONS.js +509 -0
- package/lib/flags/COMPILER_OPTIONS.js.map +1 -0
- package/lib/flags/COMPILER_OPTION_ASCII_FOLDS.d.ts +2 -0
- package/lib/flags/COMPILER_OPTION_ASCII_FOLDS.js +13 -0
- package/lib/flags/COMPILER_OPTION_ASCII_FOLDS.js.map +1 -0
- package/lib/flags/COMPILER_OPTION_KINDS.d.ts +2 -0
- package/lib/flags/COMPILER_OPTION_KINDS.js +14 -0
- package/lib/flags/COMPILER_OPTION_KINDS.js.map +1 -0
- package/lib/flags/CompilerOptionSpec.d.ts +27 -0
- package/lib/flags/CompilerOptionSpec.js +3 -0
- package/lib/flags/CompilerOptionSpec.js.map +1 -0
- package/lib/flags/FLAG_BY_TOKEN.d.ts +8 -0
- package/lib/flags/FLAG_BY_TOKEN.js +34 -0
- package/lib/flags/FLAG_BY_TOKEN.js.map +1 -0
- package/lib/flags/FLAG_SCHEMA.d.ts +35 -0
- package/lib/flags/{schema.js → FLAG_SCHEMA.js} +47 -153
- package/lib/flags/FLAG_SCHEMA.js.map +1 -0
- package/lib/flags/FlagKind.d.ts +22 -0
- package/lib/flags/FlagKind.js +3 -0
- package/lib/flags/FlagKind.js.map +1 -0
- package/lib/flags/FlagLayer.d.ts +19 -0
- package/lib/flags/FlagLayer.js +3 -0
- package/lib/flags/FlagLayer.js.map +1 -0
- package/lib/flags/FlagSpec.d.ts +104 -0
- package/lib/flags/FlagSpec.js +3 -0
- package/lib/flags/FlagSpec.js.map +1 -0
- package/lib/flags/ParseOptions.d.ts +92 -0
- package/lib/flags/ParseOptions.js +3 -0
- package/lib/flags/ParseOptions.js.map +1 -0
- package/lib/flags/ParseResult.d.ts +37 -0
- package/lib/flags/ParseResult.js +3 -0
- package/lib/flags/ParseResult.js.map +1 -0
- package/lib/flags/TtscSubcommand.d.ts +14 -0
- package/lib/flags/TtscSubcommand.js +3 -0
- package/lib/flags/TtscSubcommand.js.map +1 -0
- package/lib/flags/TtsxSubcommand.d.ts +13 -0
- package/lib/flags/TtsxSubcommand.js +3 -0
- package/lib/flags/TtsxSubcommand.js.map +1 -0
- package/lib/flags/ValueValidator.d.ts +14 -0
- package/lib/flags/ValueValidator.js +3 -0
- package/lib/flags/ValueValidator.js.map +1 -0
- package/lib/flags/buildGoAllowList.d.ts +18 -0
- package/lib/flags/buildGoAllowList.js +45 -0
- package/lib/flags/buildGoAllowList.js.map +1 -0
- package/lib/flags/flagsForSubcommand.d.ts +18 -0
- package/lib/flags/flagsForSubcommand.js +23 -0
- package/lib/flags/flagsForSubcommand.js.map +1 -0
- package/lib/flags/getBoolean.d.ts +19 -0
- package/lib/flags/getBoolean.js +27 -0
- package/lib/flags/getBoolean.js.map +1 -0
- package/lib/flags/getNumber.d.ts +16 -0
- package/lib/flags/getNumber.js +24 -0
- package/lib/flags/getNumber.js.map +1 -0
- package/lib/flags/getString.d.ts +16 -0
- package/lib/flags/getString.js +24 -0
- package/lib/flags/getString.js.map +1 -0
- package/lib/flags/getStringList.d.ts +19 -0
- package/lib/flags/getStringList.js +24 -0
- package/lib/flags/getStringList.js.map +1 -0
- package/lib/flags/normalizeCompilerEnumValue.d.ts +20 -0
- package/lib/flags/normalizeCompilerEnumValue.js +40 -0
- package/lib/flags/normalizeCompilerEnumValue.js.map +1 -0
- package/lib/flags/normalizeFlagToken.d.ts +28 -0
- package/lib/flags/normalizeFlagToken.js +38 -0
- package/lib/flags/normalizeFlagToken.js.map +1 -0
- package/lib/flags/parseFlags.d.ts +18 -0
- package/lib/flags/parseFlags.js +288 -0
- package/lib/flags/parseFlags.js.map +1 -0
- package/lib/flags/readCompilerOptionOccurrence.d.ts +34 -0
- package/lib/flags/readCompilerOptionOccurrence.js +81 -0
- package/lib/flags/readCompilerOptionOccurrence.js.map +1 -0
- package/lib/flags/readCompilerOptionValues.d.ts +33 -0
- package/lib/flags/readCompilerOptionValues.js +58 -0
- package/lib/flags/readCompilerOptionValues.js.map +1 -0
- package/lib/flags/resolveFlagSpec.d.ts +21 -0
- package/lib/flags/resolveFlagSpec.js +32 -0
- package/lib/flags/resolveFlagSpec.js.map +1 -0
- package/lib/index.d.ts +8 -3
- package/lib/index.js +10 -3
- package/lib/index.js.map +1 -1
- package/lib/internal/CanonicalTempDirectoryOperations.d.ts +73 -0
- package/lib/internal/CanonicalTempDirectoryOperations.js +3 -0
- package/lib/internal/CanonicalTempDirectoryOperations.js.map +1 -0
- package/lib/internal/CompilerContextSnapshot.d.ts +66 -0
- package/lib/internal/CompilerContextSnapshot.js +121 -0
- package/lib/internal/CompilerContextSnapshot.js.map +1 -0
- package/lib/internal/CompilerResultAdapter.d.ts +129 -0
- package/lib/internal/CompilerResultAdapter.js +247 -0
- package/lib/internal/CompilerResultAdapter.js.map +1 -0
- package/lib/internal/E2ETrace.d.ts +219 -0
- package/lib/internal/E2ETrace.js +541 -0
- package/lib/internal/E2ETrace.js.map +1 -0
- package/lib/internal/IJavaScriptRuntimeCapabilities.d.ts +48 -0
- package/lib/internal/IJavaScriptRuntimeCapabilities.js +3 -0
- package/lib/internal/IJavaScriptRuntimeCapabilities.js.map +1 -0
- package/lib/internal/OwnedNativeProcess.d.ts +66 -0
- package/lib/internal/OwnedNativeProcess.js +317 -0
- package/lib/internal/OwnedNativeProcess.js.map +1 -0
- package/lib/internal/OwnedSynchronousProcess.d.ts +158 -0
- package/lib/internal/OwnedSynchronousProcess.js +171 -0
- package/lib/internal/OwnedSynchronousProcess.js.map +1 -0
- package/lib/internal/RetireLockDirectoryOperations.d.ts +77 -0
- package/lib/internal/RetireLockDirectoryOperations.js +3 -0
- package/lib/internal/RetireLockDirectoryOperations.js.map +1 -0
- package/lib/internal/SafeCacheCleanupTarget.d.ts +39 -0
- package/lib/internal/SafeCacheCleanupTarget.js +3 -0
- package/lib/internal/SafeCacheCleanupTarget.js.map +1 -0
- package/lib/internal/SourceNativeRetirement.d.ts +384 -0
- package/lib/internal/SourceNativeRetirement.js +892 -0
- package/lib/internal/SourceNativeRetirement.js.map +1 -0
- package/lib/internal/SpawnSyncOutputFiles.d.ts +28 -0
- package/lib/internal/SpawnSyncOutputFiles.js +3 -0
- package/lib/internal/SpawnSyncOutputFiles.js.map +1 -0
- package/lib/internal/cacheEntryExists.d.ts +13 -0
- package/lib/internal/cacheEntryExists.js +32 -0
- package/lib/internal/cacheEntryExists.js.map +1 -0
- package/lib/internal/createCanonicalTempDirectory.d.ts +23 -13
- package/lib/internal/createCanonicalTempDirectory.js +31 -12
- package/lib/internal/createCanonicalTempDirectory.js.map +1 -1
- package/lib/internal/isContendedCandidateRename.d.ts +27 -0
- package/lib/internal/isContendedCandidateRename.js +37 -0
- package/lib/internal/isContendedCandidateRename.js.map +1 -0
- package/lib/internal/isSpawnSyncFdExhaustion.d.ts +16 -0
- package/lib/internal/isSpawnSyncFdExhaustion.js +23 -0
- package/lib/internal/isSpawnSyncFdExhaustion.js.map +1 -0
- package/lib/internal/javascriptRuntimeCapabilities.d.ts +20 -0
- package/lib/internal/javascriptRuntimeCapabilities.js +142 -0
- package/lib/internal/javascriptRuntimeCapabilities.js.map +1 -0
- package/lib/internal/nativeBinary.d.ts +11 -0
- package/lib/internal/nativeBinary.js +16 -0
- package/lib/internal/nativeBinary.js.map +1 -0
- package/lib/internal/parseWindowsDirectoryCaseSensitivity.d.ts +24 -0
- package/lib/internal/parseWindowsDirectoryCaseSensitivity.js +47 -0
- package/lib/internal/parseWindowsDirectoryCaseSensitivity.js.map +1 -0
- package/lib/internal/pathIdentity/FilesystemPathIdentity.d.ts +43 -0
- package/lib/internal/pathIdentity/FilesystemPathIdentity.js +3 -0
- package/lib/internal/pathIdentity/FilesystemPathIdentity.js.map +1 -0
- package/lib/internal/pathIdentity/FilesystemPathIdentityContext.d.ts +176 -0
- package/lib/internal/pathIdentity/FilesystemPathIdentityContext.js +3 -0
- package/lib/internal/pathIdentity/FilesystemPathIdentityContext.js.map +1 -0
- package/lib/internal/pathIdentity/FilesystemPathIdentityOperations.d.ts +100 -0
- package/lib/internal/pathIdentity/FilesystemPathIdentityOperations.js +3 -0
- package/lib/internal/pathIdentity/FilesystemPathIdentityOperations.js.map +1 -0
- package/lib/internal/pathIdentity/ProjectInputPathIdentity.d.ts +20 -0
- package/lib/internal/pathIdentity/ProjectInputPathIdentity.js +3 -0
- package/lib/internal/pathIdentity/ProjectInputPathIdentity.js.map +1 -0
- package/lib/internal/pathIdentity/ProjectInputPathIdentityContext.d.ts +20 -0
- package/lib/internal/pathIdentity/ProjectInputPathIdentityContext.js +3 -0
- package/lib/internal/pathIdentity/ProjectInputPathIdentityContext.js.map +1 -0
- package/lib/internal/pathIdentity/ProjectInputPathIdentityOperations.d.ts +20 -0
- package/lib/internal/pathIdentity/ProjectInputPathIdentityOperations.js +3 -0
- package/lib/internal/pathIdentity/ProjectInputPathIdentityOperations.js.map +1 -0
- package/lib/internal/pathIdentity/createFilesystemPathIdentityContext.d.ts +25 -0
- package/lib/internal/pathIdentity/createFilesystemPathIdentityContext.js +336 -0
- package/lib/internal/pathIdentity/createFilesystemPathIdentityContext.js.map +1 -0
- package/lib/internal/pathIdentity/createProjectInputPathIdentityContext.d.ts +28 -0
- package/lib/internal/pathIdentity/createProjectInputPathIdentityContext.js +33 -0
- package/lib/internal/pathIdentity/createProjectInputPathIdentityContext.js.map +1 -0
- package/lib/internal/pathIdentity/isFilesystemPathIdentityWithin.d.ts +20 -0
- package/lib/internal/pathIdentity/isFilesystemPathIdentityWithin.js +33 -0
- package/lib/internal/pathIdentity/isFilesystemPathIdentityWithin.js.map +1 -0
- package/lib/internal/pathIdentity/isProjectInputPathIdentityWithin.d.ts +15 -0
- package/lib/internal/pathIdentity/isProjectInputPathIdentityWithin.js +22 -0
- package/lib/internal/pathIdentity/isProjectInputPathIdentityWithin.js.map +1 -0
- package/lib/internal/pathIdentity/resolveFilesystemPath.d.ts +22 -0
- package/lib/internal/pathIdentity/resolveFilesystemPath.js +44 -0
- package/lib/internal/pathIdentity/resolveFilesystemPath.js.map +1 -0
- package/lib/internal/pathIdentity/resolvePhysicalPath.d.ts +21 -0
- package/lib/internal/pathIdentity/resolvePhysicalPath.js +35 -0
- package/lib/internal/pathIdentity/resolvePhysicalPath.js.map +1 -0
- package/lib/internal/pathIdentity/resolveProjectInputPath.d.ts +14 -0
- package/lib/internal/pathIdentity/resolveProjectInputPath.js +21 -0
- package/lib/internal/pathIdentity/resolveProjectInputPath.js.map +1 -0
- package/lib/internal/pluginSource.d.ts +26 -0
- package/lib/internal/pluginSource.js +43 -0
- package/lib/internal/pluginSource.js.map +1 -0
- package/lib/internal/projectInputPathIdentity.d.ts +27 -31
- package/lib/internal/projectInputPathIdentity.js +37 -275
- package/lib/internal/projectInputPathIdentity.js.map +1 -1
- package/lib/internal/resolveNodeBinary.d.ts +9 -7
- package/lib/internal/resolveNodeBinary.js +14 -144
- package/lib/internal/resolveNodeBinary.js.map +1 -1
- package/lib/internal/resolveSafeCacheCleanupTargets.d.ts +27 -8
- package/lib/internal/resolveSafeCacheCleanupTargets.js +44 -11
- package/lib/internal/resolveSafeCacheCleanupTargets.js.map +1 -1
- package/lib/internal/restoreCompilerError.d.ts +21 -0
- package/lib/internal/restoreCompilerError.js +164 -0
- package/lib/internal/restoreCompilerError.js.map +1 -0
- package/lib/internal/retireLockDirectory.d.ts +45 -0
- package/lib/internal/retireLockDirectory.js +152 -0
- package/lib/internal/retireLockDirectory.js.map +1 -0
- package/lib/internal/runHoldingLock.d.ts +30 -0
- package/lib/internal/runHoldingLock.js +53 -0
- package/lib/internal/runHoldingLock.js.map +1 -0
- package/lib/internal/runtimeExecutableIdentity.d.ts +20 -0
- package/lib/internal/runtimeExecutableIdentity.js +171 -0
- package/lib/internal/runtimeExecutableIdentity.js.map +1 -0
- package/lib/internal/serializeCompilerError.d.ts +28 -0
- package/lib/internal/serializeCompilerError.js +138 -0
- package/lib/internal/serializeCompilerError.js.map +1 -0
- package/lib/internal/spawnSyncResilient.d.ts +21 -10
- package/lib/internal/spawnSyncResilient.js +31 -147
- package/lib/internal/spawnSyncResilient.js.map +1 -1
- package/lib/internal/spawnSyncWithLowDescriptors.d.ts +30 -0
- package/lib/internal/spawnSyncWithLowDescriptors.js +194 -0
- package/lib/internal/spawnSyncWithLowDescriptors.js.map +1 -0
- package/lib/internal/tsconfig.d.ts +16 -0
- package/lib/internal/tsconfig.js +33 -0
- package/lib/internal/tsconfig.js.map +1 -0
- package/lib/launcher/internal/PendingResidentCheckWatchChanges.d.ts +56 -0
- package/lib/launcher/internal/PendingResidentCheckWatchChanges.js +97 -0
- package/lib/launcher/internal/PendingResidentCheckWatchChanges.js.map +1 -0
- package/lib/launcher/internal/TtscBuildMode.d.ts +14 -0
- package/lib/launcher/internal/TtscBuildMode.js +3 -0
- package/lib/launcher/internal/TtscBuildMode.js.map +1 -0
- package/lib/launcher/internal/TtsxEntryOptions.d.ts +50 -0
- package/lib/launcher/internal/TtsxEntryOptions.js +94 -0
- package/lib/launcher/internal/TtsxEntryOptions.js.map +1 -0
- package/lib/launcher/internal/assertNoSolutionBuild.d.ts +17 -10
- package/lib/launcher/internal/assertNoSolutionBuild.js +16 -9
- package/lib/launcher/internal/assertNoSolutionBuild.js.map +1 -1
- package/lib/launcher/internal/assertTtsxNoWatch.d.ts +25 -0
- package/lib/launcher/internal/assertTtsxNoWatch.js +46 -0
- package/lib/launcher/internal/assertTtsxNoWatch.js.map +1 -0
- package/lib/launcher/internal/buildSingleRootProject.d.ts +108 -0
- package/lib/launcher/internal/buildSingleRootProject.js +229 -0
- package/lib/launcher/internal/buildSingleRootProject.js.map +1 -0
- package/lib/launcher/internal/getCompilerVersionText.d.ts +14 -1
- package/lib/launcher/internal/getCompilerVersionText.js +21 -6
- package/lib/launcher/internal/getCompilerVersionText.js.map +1 -1
- package/lib/launcher/internal/inlineServedSourceMap.d.ts +35 -0
- package/lib/launcher/internal/inlineServedSourceMap.js +255 -0
- package/lib/launcher/internal/inlineServedSourceMap.js.map +1 -0
- package/lib/launcher/internal/linkVirtualEntry.d.ts +31 -0
- package/lib/launcher/internal/linkVirtualEntry.js +87 -0
- package/lib/launcher/internal/linkVirtualEntry.js.map +1 -0
- package/lib/launcher/internal/parseCommonJsExports.d.ts +17 -0
- package/lib/launcher/internal/{commonJsExportMetadata.js → parseCommonJsExports.js} +13 -3
- package/lib/launcher/internal/parseCommonJsExports.js.map +1 -0
- package/lib/launcher/internal/parseTtscBuildArgs.d.ts +34 -0
- package/lib/launcher/internal/parseTtscBuildArgs.js +97 -0
- package/lib/launcher/internal/parseTtscBuildArgs.js.map +1 -0
- package/lib/launcher/internal/parseTtsxCLI.d.ts +35 -0
- package/lib/launcher/internal/parseTtsxCLI.js +187 -0
- package/lib/launcher/internal/parseTtsxCLI.js.map +1 -0
- package/lib/launcher/internal/prepareExecution.d.ts +49 -5
- package/lib/launcher/internal/prepareExecution.js +360 -324
- package/lib/launcher/internal/prepareExecution.js.map +1 -1
- package/lib/launcher/internal/prepareTtscBuildMode.d.ts +23 -0
- package/lib/launcher/internal/prepareTtscBuildMode.js +58 -0
- package/lib/launcher/internal/prepareTtscBuildMode.js.map +1 -0
- package/lib/launcher/internal/resolveCacheDir.d.ts +12 -3
- package/lib/launcher/internal/resolveCacheDir.js +12 -3
- package/lib/launcher/internal/resolveCacheDir.js.map +1 -1
- package/lib/launcher/internal/resolveSingleFileOutput.d.ts +35 -0
- package/lib/launcher/internal/resolveSingleFileOutput.js +115 -0
- package/lib/launcher/internal/resolveSingleFileOutput.js.map +1 -0
- package/lib/launcher/internal/resolveTtscserverBinary.d.ts +15 -3
- package/lib/launcher/internal/resolveTtscserverBinary.js +19 -5
- package/lib/launcher/internal/resolveTtscserverBinary.js.map +1 -1
- package/lib/launcher/internal/runTtsc.d.ts +23 -23
- package/lib/launcher/internal/runTtsc.js +336 -286
- package/lib/launcher/internal/runTtsc.js.map +1 -1
- package/lib/launcher/internal/runTtsx.d.ts +32 -4
- package/lib/launcher/internal/runTtsx.js +286 -138
- package/lib/launcher/internal/runTtsx.js.map +1 -1
- package/lib/launcher/internal/runtime/CommonJsRuntimeSource.d.ts +92 -0
- package/lib/launcher/internal/runtime/CommonJsRuntimeSource.js +354 -0
- package/lib/launcher/internal/runtime/CommonJsRuntimeSource.js.map +1 -0
- package/lib/launcher/internal/runtime/DependencyBuildAdmission.d.ts +72 -0
- package/lib/launcher/internal/runtime/DependencyBuildAdmission.js +120 -0
- package/lib/launcher/internal/runtime/DependencyBuildAdmission.js.map +1 -0
- package/lib/launcher/internal/runtime/DependencyBuildGeneration.d.ts +185 -0
- package/lib/launcher/internal/runtime/DependencyBuildGeneration.js +153 -0
- package/lib/launcher/internal/runtime/DependencyBuildGeneration.js.map +1 -0
- package/lib/launcher/internal/runtime/DependencyBuildLockFence.d.ts +22 -0
- package/lib/launcher/internal/runtime/DependencyBuildLockFence.js +3 -0
- package/lib/launcher/internal/runtime/DependencyBuildLockFence.js.map +1 -0
- package/lib/launcher/internal/runtime/DependencyBuildLockLease.d.ts +22 -0
- package/lib/launcher/internal/runtime/DependencyBuildLockLease.js +3 -0
- package/lib/launcher/internal/runtime/DependencyBuildLockLease.js.map +1 -0
- package/lib/launcher/internal/runtime/DependencyBuildLockObservation.d.ts +41 -0
- package/lib/launcher/internal/runtime/DependencyBuildLockObservation.js +3 -0
- package/lib/launcher/internal/runtime/DependencyBuildLockObservation.js.map +1 -0
- package/lib/launcher/internal/runtime/DependencyBuildLockProtocol.d.ts +83 -0
- package/lib/launcher/internal/runtime/DependencyBuildLockProtocol.js +126 -0
- package/lib/launcher/internal/runtime/DependencyBuildLockProtocol.js.map +1 -0
- package/lib/launcher/internal/runtime/OwnedProjectSource.d.ts +112 -0
- package/lib/launcher/internal/runtime/OwnedProjectSource.js +59 -0
- package/lib/launcher/internal/runtime/OwnedProjectSource.js.map +1 -0
- package/lib/launcher/internal/runtime/OwningModuleOptions.d.ts +21 -0
- package/lib/launcher/internal/runtime/OwningModuleOptions.js +3 -0
- package/lib/launcher/internal/runtime/OwningModuleOptions.js.map +1 -0
- package/lib/launcher/internal/runtime/PluginDescriptorInputObservation.d.ts +89 -0
- package/lib/launcher/internal/runtime/PluginDescriptorInputObservation.js +115 -0
- package/lib/launcher/internal/runtime/PluginDescriptorInputObservation.js.map +1 -0
- package/lib/launcher/internal/runtime/ProcessOwnedDirectory.d.ts +168 -0
- package/lib/launcher/internal/runtime/ProcessOwnedDirectory.js +251 -0
- package/lib/launcher/internal/runtime/ProcessOwnedDirectory.js.map +1 -0
- package/lib/launcher/internal/runtime/ResolveResult.d.ts +24 -0
- package/lib/launcher/internal/runtime/ResolveResult.js +3 -0
- package/lib/launcher/internal/runtime/ResolveResult.js.map +1 -0
- package/lib/launcher/internal/runtime/RuntimeEmitProvenance.d.ts +38 -0
- package/lib/launcher/internal/runtime/RuntimeEmitProvenance.js +60 -0
- package/lib/launcher/internal/runtime/RuntimeEmitProvenance.js.map +1 -0
- package/lib/launcher/internal/runtime/RuntimeEntryPreparer.d.ts +22 -0
- package/lib/launcher/internal/runtime/RuntimeEntryPreparer.js +3 -0
- package/lib/launcher/internal/runtime/RuntimeEntryPreparer.js.map +1 -0
- package/lib/launcher/internal/runtime/RuntimeFilesystem.d.ts +52 -0
- package/lib/launcher/internal/runtime/RuntimeFilesystem.js +73 -0
- package/lib/launcher/internal/runtime/RuntimeFilesystem.js.map +1 -0
- package/lib/launcher/internal/runtime/RuntimeHookOptions.d.ts +22 -0
- package/lib/launcher/internal/runtime/RuntimeHookOptions.js +3 -0
- package/lib/launcher/internal/runtime/RuntimeHookOptions.js.map +1 -0
- package/lib/launcher/internal/runtime/RuntimeIsolatedEmit.d.ts +53 -0
- package/lib/launcher/internal/runtime/RuntimeIsolatedEmit.js +88 -0
- package/lib/launcher/internal/runtime/RuntimeIsolatedEmit.js.map +1 -0
- package/lib/launcher/internal/runtime/RuntimeLoaderCapabilities.d.ts +78 -0
- package/lib/launcher/internal/runtime/RuntimeLoaderCapabilities.js +256 -0
- package/lib/launcher/internal/runtime/RuntimeLoaderCapabilities.js.map +1 -0
- package/lib/launcher/internal/runtime/RuntimeManifest.d.ts +65 -0
- package/lib/launcher/internal/runtime/RuntimeManifest.js +3 -0
- package/lib/launcher/internal/runtime/RuntimeManifest.js.map +1 -0
- package/lib/launcher/internal/runtime/RuntimeManifestRegistry.d.ts +95 -0
- package/lib/launcher/internal/runtime/RuntimeManifestRegistry.js +268 -0
- package/lib/launcher/internal/runtime/RuntimeManifestRegistry.js.map +1 -0
- package/lib/launcher/internal/runtime/RuntimeModuleFormat.d.ts +60 -0
- package/lib/launcher/internal/runtime/RuntimeModuleFormat.js +249 -0
- package/lib/launcher/internal/runtime/RuntimeModuleFormat.js.map +1 -0
- package/lib/launcher/internal/runtime/RuntimeProjectOwnership.d.ts +50 -0
- package/lib/launcher/internal/runtime/RuntimeProjectOwnership.js +134 -0
- package/lib/launcher/internal/runtime/RuntimeProjectOwnership.js.map +1 -0
- package/lib/launcher/internal/runtime/TTSX_MINIMUM_NODE_VERSION.d.ts +11 -0
- package/lib/launcher/internal/runtime/TTSX_MINIMUM_NODE_VERSION.js +15 -0
- package/lib/launcher/internal/runtime/TTSX_MINIMUM_NODE_VERSION.js.map +1 -0
- package/lib/launcher/internal/runtime/acquireDependencyBuildLock.d.ts +22 -0
- package/lib/launcher/internal/runtime/acquireDependencyBuildLock.js +74 -0
- package/lib/launcher/internal/runtime/acquireDependencyBuildLock.js.map +1 -0
- package/lib/launcher/internal/runtime/checkNodeRuntimeSupport.d.ts +30 -0
- package/lib/launcher/internal/runtime/checkNodeRuntimeSupport.js +83 -0
- package/lib/launcher/internal/runtime/checkNodeRuntimeSupport.js.map +1 -0
- package/lib/launcher/internal/runtime/claimRuntimeProjectDirectory.d.ts +30 -0
- package/lib/launcher/internal/runtime/claimRuntimeProjectDirectory.js +52 -0
- package/lib/launcher/internal/runtime/claimRuntimeProjectDirectory.js.map +1 -0
- package/lib/launcher/internal/runtime/commonJsExportNames.d.ts +21 -0
- package/lib/launcher/internal/runtime/commonJsExportNames.js +68 -0
- package/lib/launcher/internal/runtime/commonJsExportNames.js.map +1 -0
- package/lib/launcher/internal/runtime/commonJsImportFacade.d.ts +32 -0
- package/lib/launcher/internal/runtime/commonJsImportFacade.js +56 -0
- package/lib/launcher/internal/runtime/commonJsImportFacade.js.map +1 -0
- package/lib/launcher/internal/runtime/dependencyCacheKey.d.ts +36 -0
- package/lib/launcher/internal/runtime/dependencyCacheKey.js +57 -0
- package/lib/launcher/internal/runtime/dependencyCacheKey.js.map +1 -0
- package/lib/launcher/internal/runtime/dependencyCacheRoot.d.ts +32 -0
- package/lib/launcher/internal/runtime/dependencyCacheRoot.js +98 -0
- package/lib/launcher/internal/runtime/dependencyCacheRoot.js.map +1 -0
- package/lib/launcher/internal/runtime/inspectDependencyBuildLock.d.ts +23 -0
- package/lib/launcher/internal/runtime/inspectDependencyBuildLock.js +126 -0
- package/lib/launcher/internal/runtime/inspectDependencyBuildLock.js.map +1 -0
- package/lib/launcher/internal/runtime/installRuntimeHooks.d.ts +58 -0
- package/lib/launcher/internal/runtime/installRuntimeHooks.js +1988 -0
- package/lib/launcher/internal/runtime/installRuntimeHooks.js.map +1 -0
- package/lib/launcher/internal/runtime/interopProbe.d.ts +8 -0
- package/lib/launcher/internal/runtime/interopProbe.js +3 -0
- package/lib/launcher/internal/runtime/interopProbe.js.map +1 -0
- package/lib/launcher/internal/runtime/isLocalProcessGone.d.ts +33 -0
- package/lib/launcher/internal/runtime/isLocalProcessGone.js +60 -0
- package/lib/launcher/internal/runtime/isLocalProcessGone.js.map +1 -0
- package/lib/launcher/internal/runtime/observeMappedDescriptorResolution.d.ts +28 -0
- package/lib/launcher/internal/runtime/observeMappedDescriptorResolution.js +50 -0
- package/lib/launcher/internal/runtime/observeMappedDescriptorResolution.js.map +1 -0
- package/lib/launcher/internal/runtime/projectModuleOptions.d.ts +16 -0
- package/lib/launcher/internal/runtime/projectModuleOptions.js +28 -0
- package/lib/launcher/internal/runtime/projectModuleOptions.js.map +1 -0
- package/lib/launcher/internal/runtime/readDependencyCache.d.ts +28 -0
- package/lib/launcher/internal/runtime/readDependencyCache.js +83 -0
- package/lib/launcher/internal/runtime/readDependencyCache.js.map +1 -0
- package/lib/launcher/internal/runtime/realPath.d.ts +22 -0
- package/lib/launcher/internal/runtime/realPath.js +37 -0
- package/lib/launcher/internal/runtime/realPath.js.map +1 -0
- package/lib/launcher/internal/runtime/reclaimDependencyBuildLock.d.ts +17 -0
- package/lib/launcher/internal/runtime/reclaimDependencyBuildLock.js +23 -0
- package/lib/launcher/internal/runtime/reclaimDependencyBuildLock.js.map +1 -0
- package/lib/launcher/internal/runtime/releaseDependencyBuildLock.d.ts +17 -0
- package/lib/launcher/internal/runtime/releaseDependencyBuildLock.js +23 -0
- package/lib/launcher/internal/runtime/releaseDependencyBuildLock.js.map +1 -0
- package/lib/launcher/internal/runtime/resolveRuntimeCleanTargets.d.ts +34 -0
- package/lib/launcher/internal/runtime/resolveRuntimeCleanTargets.js +88 -0
- package/lib/launcher/internal/runtime/resolveRuntimeCleanTargets.js.map +1 -0
- package/lib/launcher/internal/runtime/restoreStrippedNodeBuiltinScheme.d.ts +20 -0
- package/lib/launcher/internal/runtime/restoreStrippedNodeBuiltinScheme.js +30 -0
- package/lib/launcher/internal/runtime/restoreStrippedNodeBuiltinScheme.js.map +1 -0
- package/lib/launcher/internal/runtime/runtimeRunKey.d.ts +24 -0
- package/lib/launcher/internal/runtime/runtimeRunKey.js +36 -0
- package/lib/launcher/internal/runtime/runtimeRunKey.js.map +1 -0
- package/lib/launcher/internal/runtime/selectRuntimePluginPolicy.d.ts +21 -0
- package/lib/launcher/internal/runtime/selectRuntimePluginPolicy.js +29 -0
- package/lib/launcher/internal/runtime/selectRuntimePluginPolicy.js.map +1 -0
- package/lib/launcher/internal/runtime/withRuntimeDirectoryLock.d.ts +35 -0
- package/lib/launcher/internal/runtime/withRuntimeDirectoryLock.js +76 -0
- package/lib/launcher/internal/runtime/withRuntimeDirectoryLock.js.map +1 -0
- package/lib/launcher/internal/runtimeCompilerArgs.d.ts +35 -6
- package/lib/launcher/internal/runtimeCompilerArgs.js +87 -58
- package/lib/launcher/internal/runtimeCompilerArgs.js.map +1 -1
- package/lib/launcher/internal/runtimeEmitProfile.d.ts +39 -0
- package/lib/launcher/internal/runtimeEmitProfile.js +56 -0
- package/lib/launcher/internal/runtimeEmitProfile.js.map +1 -0
- package/lib/launcher/internal/runtimeHookPreload.js +4 -4
- package/lib/launcher/internal/runtimeHookPreload.js.map +1 -1
- package/lib/launcher/internal/runtimeOwnerPreload.d.ts +1 -0
- package/lib/launcher/internal/runtimeOwnerPreload.js +43 -0
- package/lib/launcher/internal/runtimeOwnerPreload.js.map +1 -0
- package/lib/launcher/internal/singleRootProjectConfig.d.ts +34 -0
- package/lib/launcher/internal/singleRootProjectConfig.js +39 -0
- package/lib/launcher/internal/singleRootProjectConfig.js.map +1 -0
- package/lib/launcher/internal/ttscserver/ILSPPluginSelectionInputs.d.ts +61 -0
- package/lib/launcher/internal/ttscserver/ILSPPluginSelectionInputs.js +3 -0
- package/lib/launcher/internal/ttscserver/ILSPPluginSelectionInputs.js.map +1 -0
- package/lib/launcher/internal/ttscserver/LSPProjectInputDigest.d.ts +95 -0
- package/lib/launcher/internal/ttscserver/LSPProjectInputDigest.js +270 -0
- package/lib/launcher/internal/ttscserver/LSPProjectInputDigest.js.map +1 -0
- package/lib/launcher/internal/ttscserver/captureLSPPluginSelectionInputs.d.ts +46 -0
- package/lib/launcher/internal/ttscserver/captureLSPPluginSelectionInputs.js +91 -0
- package/lib/launcher/internal/ttscserver/captureLSPPluginSelectionInputs.js.map +1 -0
- package/lib/launcher/internal/ttscserver/fingerprintInitialLSPProjectInputSnapshot.d.ts +21 -0
- package/lib/launcher/internal/ttscserver/fingerprintInitialLSPProjectInputSnapshot.js +39 -0
- package/lib/launcher/internal/ttscserver/fingerprintInitialLSPProjectInputSnapshot.js.map +1 -0
- package/lib/launcher/internal/ttscserver/initialLSPProjectInputSnapshotIsCurrent.d.ts +18 -0
- package/lib/launcher/internal/ttscserver/initialLSPProjectInputSnapshotIsCurrent.js +27 -0
- package/lib/launcher/internal/ttscserver/initialLSPProjectInputSnapshotIsCurrent.js.map +1 -0
- package/lib/launcher/internal/ttscserver/materializeLSPPluginManifest.d.ts +26 -0
- package/lib/launcher/internal/ttscserver/materializeLSPPluginManifest.js +62 -0
- package/lib/launcher/internal/ttscserver/materializeLSPPluginManifest.js.map +1 -0
- package/lib/launcher/internal/ttscserver/needsStdio.d.ts +17 -0
- package/lib/launcher/internal/ttscserver/needsStdio.js +36 -0
- package/lib/launcher/internal/ttscserver/needsStdio.js.map +1 -0
- package/lib/launcher/internal/ttscserver/runTtscserver.d.ts +25 -0
- package/lib/launcher/internal/ttscserver/runTtscserver.js +439 -0
- package/lib/launcher/internal/ttscserver/runTtscserver.js.map +1 -0
- package/lib/launcher/internal/watch/CompilerDirectoryWatchEventPlan.d.ts +29 -0
- package/lib/launcher/internal/watch/CompilerDirectoryWatchEventPlan.js +3 -0
- package/lib/launcher/internal/watch/CompilerDirectoryWatchEventPlan.js.map +1 -0
- package/lib/launcher/internal/watch/DirectoryWatcher.d.ts +44 -0
- package/lib/launcher/internal/watch/DirectoryWatcher.js +3 -0
- package/lib/launcher/internal/watch/DirectoryWatcher.js.map +1 -0
- package/lib/launcher/internal/watch/FseventsStreams.d.ts +87 -0
- package/lib/launcher/internal/watch/FseventsStreams.js +266 -0
- package/lib/launcher/internal/watch/FseventsStreams.js.map +1 -0
- package/lib/launcher/internal/watch/ProjectInputWatchRules.d.ts +92 -0
- package/lib/launcher/internal/watch/ProjectInputWatchRules.js +163 -0
- package/lib/launcher/internal/watch/ProjectInputWatchRules.js.map +1 -0
- package/lib/launcher/internal/watch/WatchInputChange.d.ts +29 -0
- package/lib/launcher/internal/watch/WatchInputChange.js +3 -0
- package/lib/launcher/internal/watch/WatchInputChange.js.map +1 -0
- package/lib/launcher/internal/watch/WatchPaths.d.ts +101 -0
- package/lib/launcher/internal/watch/WatchPaths.js +150 -0
- package/lib/launcher/internal/watch/WatchPaths.js.map +1 -0
- package/lib/launcher/internal/watch/WatchTopology.d.ts +384 -0
- package/lib/launcher/internal/{watchTopology.js → watch/WatchTopology.js} +726 -799
- package/lib/launcher/internal/watch/WatchTopology.js.map +1 -0
- package/lib/launcher/internal/watch/literalGlobRoot.d.ts +22 -0
- package/lib/launcher/internal/watch/literalGlobRoot.js +45 -0
- package/lib/launcher/internal/watch/literalGlobRoot.js.map +1 -0
- package/lib/launcher/internal/watch/planCompilerDirectoryWatchEvent.d.ts +40 -0
- package/lib/launcher/internal/watch/planCompilerDirectoryWatchEvent.js +69 -0
- package/lib/launcher/internal/watch/planCompilerDirectoryWatchEvent.js.map +1 -0
- package/lib/launcher/internal/watch/projectInputActiveWatchDirectories.d.ts +19 -0
- package/lib/launcher/internal/watch/projectInputActiveWatchDirectories.js +52 -0
- package/lib/launcher/internal/watch/projectInputActiveWatchDirectories.js.map +1 -0
- package/lib/launcher/internal/watch/projectInputAvailableWatchDirectory.d.ts +21 -0
- package/lib/launcher/internal/watch/projectInputAvailableWatchDirectory.js +55 -0
- package/lib/launcher/internal/watch/projectInputAvailableWatchDirectory.js.map +1 -0
- package/lib/launcher/internal/watch/projectInputEventShouldNotify.d.ts +21 -0
- package/lib/launcher/internal/watch/projectInputEventShouldNotify.js +23 -0
- package/lib/launcher/internal/watch/projectInputEventShouldNotify.js.map +1 -0
- package/lib/launcher/internal/watch/projectInputMembershipInvalidatesProgram.d.ts +27 -0
- package/lib/launcher/internal/watch/projectInputMembershipInvalidatesProgram.js +54 -0
- package/lib/launcher/internal/watch/projectInputMembershipInvalidatesProgram.js.map +1 -0
- package/lib/launcher/internal/watch/projectInputReloadEventShouldNotify.d.ts +26 -0
- package/lib/launcher/internal/watch/projectInputReloadEventShouldNotify.js +100 -0
- package/lib/launcher/internal/watch/projectInputReloadEventShouldNotify.js.map +1 -0
- package/lib/launcher/internal/watch/projectInputReplacementStrandsWatchers.d.ts +37 -0
- package/lib/launcher/internal/watch/projectInputReplacementStrandsWatchers.js +54 -0
- package/lib/launcher/internal/watch/projectInputReplacementStrandsWatchers.js.map +1 -0
- package/lib/launcher/internal/watch/projectInputTopologyMayAffect.d.ts +23 -0
- package/lib/launcher/internal/watch/projectInputTopologyMayAffect.js +67 -0
- package/lib/launcher/internal/watch/projectInputTopologyMayAffect.js.map +1 -0
- package/lib/launcher/internal/watch/projectInputWatchDirectories.d.ts +22 -0
- package/lib/launcher/internal/watch/projectInputWatchDirectories.js +30 -0
- package/lib/launcher/internal/watch/projectInputWatchDirectories.js.map +1 -0
- package/lib/launcher/internal/watch/reloadInputsForFailedTopologyRefresh.d.ts +22 -0
- package/lib/launcher/internal/watch/reloadInputsForFailedTopologyRefresh.js +45 -0
- package/lib/launcher/internal/watch/reloadInputsForFailedTopologyRefresh.js.map +1 -0
- package/lib/launcher/internal/watch/syncWatchers.d.ts +25 -0
- package/lib/launcher/internal/watch/syncWatchers.js +61 -0
- package/lib/launcher/internal/watch/syncWatchers.js.map +1 -0
- package/lib/launcher/internal/watch/watchDirectory.d.ts +28 -0
- package/lib/launcher/internal/watch/watchDirectory.js +46 -0
- package/lib/launcher/internal/watch/watchDirectory.js.map +1 -0
- package/lib/launcher/internal/watch/watchDirectoryThroughFsWatch.d.ts +28 -0
- package/lib/launcher/internal/watch/watchDirectoryThroughFsWatch.js +38 -0
- package/lib/launcher/internal/watch/watchDirectoryThroughFsWatch.js.map +1 -0
- package/lib/launcher/ttscserver.js +1 -1
- package/lib/launcher/ttscserver.js.map +1 -1
- package/lib/launcher/ttsx.js +2 -3
- package/lib/launcher/ttsx.js.map +1 -1
- package/lib/plugin/CapabilityPluginResolver.d.ts +140 -0
- package/lib/plugin/CapabilityPluginResolver.js +400 -0
- package/lib/plugin/CapabilityPluginResolver.js.map +1 -0
- package/lib/plugin/ITtscCapabilityPlugin.d.ts +87 -0
- package/lib/plugin/ITtscCapabilityPlugin.js +3 -0
- package/lib/plugin/ITtscCapabilityPlugin.js.map +1 -0
- package/lib/plugin/internal/CapabilityPluginResult.d.ts +66 -0
- package/lib/plugin/internal/CapabilityPluginResult.js +86 -0
- package/lib/plugin/internal/CapabilityPluginResult.js.map +1 -0
- package/lib/plugin/internal/CapabilityResolutionFormat.d.ts +114 -0
- package/lib/plugin/internal/CapabilityResolutionFormat.js +229 -0
- package/lib/plugin/internal/CapabilityResolutionFormat.js.map +1 -0
- package/lib/plugin/internal/ITtscCapabilityPluginSource.d.ts +35 -0
- package/lib/plugin/internal/ITtscCapabilityPluginSource.js +3 -0
- package/lib/plugin/internal/ITtscCapabilityPluginSource.js.map +1 -0
- package/lib/plugin/internal/ITtscCapabilityResolutionEntry.d.ts +49 -0
- package/lib/plugin/internal/ITtscCapabilityResolutionEntry.js +3 -0
- package/lib/plugin/internal/ITtscCapabilityResolutionEntry.js.map +1 -0
- package/lib/plugin/internal/ITtscCapabilityResolutionPlugin.d.ts +21 -0
- package/lib/plugin/internal/ITtscCapabilityResolutionPlugin.js +3 -0
- package/lib/plugin/internal/ITtscCapabilityResolutionPlugin.js.map +1 -0
- package/lib/plugin/internal/capabilityPluginWorker.d.ts +1 -0
- package/lib/plugin/internal/capabilityPluginWorker.js +178 -0
- package/lib/plugin/internal/capabilityPluginWorker.js.map +1 -0
- package/lib/plugin/internal/decodeCapabilityCommandReply.d.ts +23 -0
- package/lib/plugin/internal/decodeCapabilityCommandReply.js +25 -0
- package/lib/plugin/internal/decodeCapabilityCommandReply.js.map +1 -0
- package/lib/plugin/internal/load/COMMONJS_PLUGIN_DESCRIPTOR_SHIM_SOURCE.d.ts +15 -0
- package/lib/plugin/internal/load/COMMONJS_PLUGIN_DESCRIPTOR_SHIM_SOURCE.js +182 -0
- package/lib/plugin/internal/load/COMMONJS_PLUGIN_DESCRIPTOR_SHIM_SOURCE.js.map +1 -0
- package/lib/plugin/internal/load/PLUGIN_DESCRIPTOR_SHIM_SOURCE.d.ts +11 -0
- package/lib/plugin/internal/load/PLUGIN_DESCRIPTOR_SHIM_SOURCE.js +62 -0
- package/lib/plugin/internal/load/PLUGIN_DESCRIPTOR_SHIM_SOURCE.js.map +1 -0
- package/lib/plugin/internal/load/PluginDescriptorAdmission.d.ts +46 -0
- package/lib/plugin/internal/load/PluginDescriptorAdmission.js +72 -0
- package/lib/plugin/internal/load/PluginDescriptorAdmission.js.map +1 -0
- package/lib/plugin/internal/load/PluginDescriptorEvaluationCache.d.ts +154 -0
- package/lib/plugin/internal/load/PluginDescriptorEvaluationCache.js +317 -0
- package/lib/plugin/internal/load/PluginDescriptorEvaluationCache.js.map +1 -0
- package/lib/plugin/internal/load/PluginPackageResolution.d.ts +208 -0
- package/lib/plugin/internal/load/PluginPackageResolution.js +593 -0
- package/lib/plugin/internal/load/PluginPackageResolution.js.map +1 -0
- package/lib/plugin/internal/load/ProjectPluginEntries.d.ts +60 -0
- package/lib/plugin/internal/load/ProjectPluginEntries.js +164 -0
- package/lib/plugin/internal/load/ProjectPluginEntries.js.map +1 -0
- package/lib/plugin/internal/load/RESOLUTION_INPUT_RECORDER_PATH.d.ts +13 -0
- package/lib/plugin/internal/load/RESOLUTION_INPUT_RECORDER_PATH.js +21 -0
- package/lib/plugin/internal/load/RESOLUTION_INPUT_RECORDER_PATH.js.map +1 -0
- package/lib/plugin/internal/load/collectProjectHostInputs.d.ts +16 -0
- package/lib/plugin/internal/load/collectProjectHostInputs.js +66 -0
- package/lib/plugin/internal/load/collectProjectHostInputs.js.map +1 -0
- package/lib/plugin/internal/load/composePluginSources.d.ts +20 -0
- package/lib/plugin/internal/load/composePluginSources.js +95 -0
- package/lib/plugin/internal/load/composePluginSources.js.map +1 -0
- package/lib/plugin/internal/load/declaresHostInputReads.d.ts +24 -0
- package/lib/plugin/internal/load/declaresHostInputReads.js +48 -0
- package/lib/plugin/internal/load/declaresHostInputReads.js.map +1 -0
- package/lib/plugin/internal/load/hasProjectPluginEntries.d.ts +21 -0
- package/lib/plugin/internal/load/hasProjectPluginEntries.js +29 -0
- package/lib/plugin/internal/load/hasProjectPluginEntries.js.map +1 -0
- package/lib/plugin/internal/load/hashHostInputPaths.d.ts +17 -0
- package/lib/plugin/internal/load/hashHostInputPaths.js +46 -0
- package/lib/plugin/internal/load/hashHostInputPaths.js.map +1 -0
- package/lib/plugin/internal/load/isRelativePluginSpecifier.d.ts +22 -0
- package/lib/plugin/internal/load/isRelativePluginSpecifier.js +33 -0
- package/lib/plugin/internal/load/isRelativePluginSpecifier.js.map +1 -0
- package/lib/plugin/internal/load/loadProjectPlugins.d.ts +113 -0
- package/lib/plugin/internal/load/loadProjectPlugins.js +1615 -0
- package/lib/plugin/internal/load/loadProjectPlugins.js.map +1 -0
- package/lib/plugin/internal/load/moduleResolutionBaseSelects.d.ts +42 -0
- package/lib/plugin/internal/load/moduleResolutionBaseSelects.js +51 -0
- package/lib/plugin/internal/load/moduleResolutionBaseSelects.js.map +1 -0
- package/lib/plugin/internal/load/observeImportSearchRoots.d.ts +29 -0
- package/lib/plugin/internal/load/observeImportSearchRoots.js +38 -0
- package/lib/plugin/internal/load/observeImportSearchRoots.js.map +1 -0
- package/lib/plugin/internal/load/pluginLabel.d.ts +15 -0
- package/lib/plugin/internal/load/pluginLabel.js +25 -0
- package/lib/plugin/internal/load/pluginLabel.js.map +1 -0
- package/lib/plugin/internal/load/realpathHostInput.d.ts +14 -0
- package/lib/plugin/internal/load/realpathHostInput.js +29 -0
- package/lib/plugin/internal/load/realpathHostInput.js.map +1 -0
- package/lib/plugin/internal/load/realpathHostInputPaths.d.ts +17 -0
- package/lib/plugin/internal/load/realpathHostInputPaths.js +28 -0
- package/lib/plugin/internal/load/realpathHostInputPaths.js.map +1 -0
- package/lib/plugin/internal/load/rejectJsTransformFunctions.d.ts +13 -0
- package/lib/plugin/internal/load/rejectJsTransformFunctions.js +22 -0
- package/lib/plugin/internal/load/rejectJsTransformFunctions.js.map +1 -0
- package/lib/plugin/internal/load/requirePluginSource.d.ts +14 -0
- package/lib/plugin/internal/load/requirePluginSource.js +38 -0
- package/lib/plugin/internal/load/requirePluginSource.js.map +1 -0
- package/lib/plugin/internal/load/resolveNativeSource.d.ts +29 -0
- package/lib/plugin/internal/load/resolveNativeSource.js +37 -0
- package/lib/plugin/internal/load/resolveNativeSource.js.map +1 -0
- package/lib/plugin/internal/load/validatePluginContributors.d.ts +22 -0
- package/lib/plugin/internal/load/validatePluginContributors.js +86 -0
- package/lib/plugin/internal/load/validatePluginContributors.js.map +1 -0
- package/lib/plugin/internal/load/validatePluginSource.d.ts +14 -0
- package/lib/plugin/internal/load/validatePluginSource.js +21 -0
- package/lib/plugin/internal/load/validatePluginSource.js.map +1 -0
- package/lib/plugin/internal/load/visitImportMappedCandidates.d.ts +36 -0
- package/lib/plugin/internal/load/visitImportMappedCandidates.js +45 -0
- package/lib/plugin/internal/load/visitImportMappedCandidates.js.map +1 -0
- package/lib/plugin/internal/pluginDescriptorFailureReason.d.ts +23 -0
- package/lib/plugin/internal/pluginDescriptorFailureReason.js +43 -0
- package/lib/plugin/internal/pluginDescriptorFailureReason.js.map +1 -0
- package/lib/plugin/internal/pluginDescriptorProcessFailure.d.ts +28 -0
- package/lib/plugin/internal/pluginDescriptorProcessFailure.js +37 -0
- package/lib/plugin/internal/pluginDescriptorProcessFailure.js.map +1 -0
- package/lib/plugin/internal/readCapabilityResolution.d.ts +42 -0
- package/lib/plugin/internal/readCapabilityResolution.js +158 -0
- package/lib/plugin/internal/readCapabilityResolution.js.map +1 -0
- package/lib/plugin/internal/receiveCapabilityFailure.d.ts +21 -0
- package/lib/plugin/internal/receiveCapabilityFailure.js +28 -0
- package/lib/plugin/internal/receiveCapabilityFailure.js.map +1 -0
- package/lib/plugin/internal/source/CachePrunePolicy.d.ts +42 -0
- package/lib/plugin/internal/source/CachePrunePolicy.js +47 -0
- package/lib/plugin/internal/source/CachePrunePolicy.js.map +1 -0
- package/lib/plugin/internal/source/GoBuildCacheCoordination.d.ts +159 -0
- package/lib/plugin/internal/source/GoBuildCacheCoordination.js +475 -0
- package/lib/plugin/internal/source/GoBuildCacheCoordination.js.map +1 -0
- package/lib/plugin/internal/source/GoSourceInputs.d.ts +124 -0
- package/lib/plugin/internal/source/GoSourceInputs.js +180 -0
- package/lib/plugin/internal/source/GoSourceInputs.js.map +1 -0
- package/lib/plugin/internal/source/GoToolResolution.d.ts +125 -0
- package/lib/plugin/internal/source/GoToolResolution.js +278 -0
- package/lib/plugin/internal/source/GoToolResolution.js.map +1 -0
- package/lib/plugin/internal/source/IGoBuildCachePruneOptions.d.ts +30 -0
- package/lib/plugin/internal/source/IGoBuildCachePruneOptions.js +3 -0
- package/lib/plugin/internal/source/IGoBuildCachePruneOptions.js.map +1 -0
- package/lib/plugin/internal/source/IPluginCachePruneOptions.d.ts +33 -0
- package/lib/plugin/internal/source/IPluginCachePruneOptions.js +3 -0
- package/lib/plugin/internal/source/IPluginCachePruneOptions.js.map +1 -0
- package/lib/plugin/internal/source/IPluginModuleReplaceDirectory.d.ts +27 -0
- package/lib/plugin/internal/source/IPluginModuleReplaceDirectory.js +3 -0
- package/lib/plugin/internal/source/IPluginModuleReplaceDirectory.js.map +1 -0
- package/lib/plugin/internal/source/ITtscBuildContributor.d.ts +18 -0
- package/lib/plugin/internal/source/ITtscBuildContributor.js +3 -0
- package/lib/plugin/internal/source/ITtscBuildContributor.js.map +1 -0
- package/lib/plugin/internal/source/ITtscSourceBuildCachePaths.d.ts +25 -0
- package/lib/plugin/internal/source/ITtscSourceBuildCachePaths.js +3 -0
- package/lib/plugin/internal/source/ITtscSourceBuildCachePaths.js.map +1 -0
- package/lib/plugin/internal/source/NativeSourcePackages.d.ts +155 -0
- package/lib/plugin/internal/source/NativeSourcePackages.js +317 -0
- package/lib/plugin/internal/source/NativeSourcePackages.js.map +1 -0
- package/lib/plugin/internal/source/PluginBinaryUse.d.ts +66 -0
- package/lib/plugin/internal/source/PluginBinaryUse.js +163 -0
- package/lib/plugin/internal/source/PluginBinaryUse.js.map +1 -0
- package/lib/plugin/internal/source/PluginBinaryWaitResult.d.ts +34 -0
- package/lib/plugin/internal/source/PluginBinaryWaitResult.js +3 -0
- package/lib/plugin/internal/source/PluginBinaryWaitResult.js.map +1 -0
- package/lib/plugin/internal/source/PluginBuildEnvironmentReadings.d.ts +90 -0
- package/lib/plugin/internal/source/PluginBuildEnvironmentReadings.js +207 -0
- package/lib/plugin/internal/source/PluginBuildEnvironmentReadings.js.map +1 -0
- package/lib/plugin/internal/source/PluginBuildEnvironmentWitness.d.ts +128 -0
- package/lib/plugin/internal/source/PluginBuildEnvironmentWitness.js +209 -0
- package/lib/plugin/internal/source/PluginBuildEnvironmentWitness.js.map +1 -0
- package/lib/plugin/internal/source/PluginBuildLockFence.d.ts +25 -0
- package/lib/plugin/internal/source/PluginBuildLockFence.js +3 -0
- package/lib/plugin/internal/source/PluginBuildLockFence.js.map +1 -0
- package/lib/plugin/internal/source/PluginBuildLockLease.d.ts +29 -0
- package/lib/plugin/internal/source/PluginBuildLockLease.js +3 -0
- package/lib/plugin/internal/source/PluginBuildLockLease.js.map +1 -0
- package/lib/plugin/internal/source/PluginBuildLockObservation.d.ts +42 -0
- package/lib/plugin/internal/source/PluginBuildLockObservation.js +3 -0
- package/lib/plugin/internal/source/PluginBuildLockObservation.js.map +1 -0
- package/lib/plugin/internal/source/PluginBuildLockOwner.d.ts +126 -0
- package/lib/plugin/internal/source/PluginBuildLockOwner.js +165 -0
- package/lib/plugin/internal/source/PluginBuildLockOwner.js.map +1 -0
- package/lib/plugin/internal/source/PluginBuildLockProtocol.d.ts +234 -0
- package/lib/plugin/internal/source/PluginBuildLockProtocol.js +287 -0
- package/lib/plugin/internal/source/PluginBuildLockProtocol.js.map +1 -0
- package/lib/plugin/internal/source/SourceBuildCacheLayout.d.ts +183 -0
- package/lib/plugin/internal/source/SourceBuildCacheLayout.js +291 -0
- package/lib/plugin/internal/source/SourceBuildCacheLayout.js.map +1 -0
- package/lib/plugin/internal/source/SourceBuildFilesystemOperations.d.ts +32 -0
- package/lib/plugin/internal/source/SourceBuildFilesystemOperations.js +3 -0
- package/lib/plugin/internal/source/SourceBuildFilesystemOperations.js.map +1 -0
- package/lib/plugin/internal/source/SourcePluginAdmission.d.ts +80 -0
- package/lib/plugin/internal/source/SourcePluginAdmission.js +114 -0
- package/lib/plugin/internal/source/SourcePluginAdmission.js.map +1 -0
- package/lib/plugin/internal/source/SourcePluginWorkspace.d.ts +122 -0
- package/lib/plugin/internal/source/SourcePluginWorkspace.js +307 -0
- package/lib/plugin/internal/source/SourcePluginWorkspace.js.map +1 -0
- package/lib/plugin/internal/source/acquirePluginBuildLock.d.ts +35 -0
- package/lib/plugin/internal/source/acquirePluginBuildLock.js +176 -0
- package/lib/plugin/internal/source/acquirePluginBuildLock.js.map +1 -0
- package/lib/plugin/internal/source/autoQuoteGoModToken.d.ts +24 -0
- package/lib/plugin/internal/source/autoQuoteGoModToken.js +110 -0
- package/lib/plugin/internal/source/autoQuoteGoModToken.js.map +1 -0
- package/lib/plugin/internal/source/buildSourcePlugin.d.ts +86 -0
- package/lib/plugin/internal/source/buildSourcePlugin.js +857 -0
- package/lib/plugin/internal/source/buildSourcePlugin.js.map +1 -0
- package/lib/plugin/internal/source/collectPluginSourceDirectories.d.ts +30 -0
- package/lib/plugin/internal/source/collectPluginSourceDirectories.js +77 -0
- package/lib/plugin/internal/source/collectPluginSourceDirectories.js.map +1 -0
- package/lib/plugin/internal/source/collectPluginSourceFiles.d.ts +40 -0
- package/lib/plugin/internal/source/collectPluginSourceFiles.js +95 -0
- package/lib/plugin/internal/source/collectPluginSourceFiles.js.map +1 -0
- package/lib/plugin/internal/source/computeCacheKey.d.ts +73 -0
- package/lib/plugin/internal/source/computeCacheKey.js +113 -0
- package/lib/plugin/internal/source/computeCacheKey.js.map +1 -0
- package/lib/plugin/internal/source/copiesPluginSourceEntry.d.ts +33 -0
- package/lib/plugin/internal/source/copiesPluginSourceEntry.js +57 -0
- package/lib/plugin/internal/source/copiesPluginSourceEntry.js.map +1 -0
- package/lib/plugin/internal/source/createExternalSourceSnapshotLayout.d.ts +22 -0
- package/lib/plugin/internal/source/createExternalSourceSnapshotLayout.js +60 -0
- package/lib/plugin/internal/source/createExternalSourceSnapshotLayout.js.map +1 -0
- package/lib/plugin/internal/source/ensureExecutableGoToolchain.d.ts +25 -0
- package/lib/plugin/internal/source/ensureExecutableGoToolchain.js +96 -0
- package/lib/plugin/internal/source/ensureExecutableGoToolchain.js.map +1 -0
- package/lib/plugin/internal/source/formatDuration.d.ts +18 -0
- package/lib/plugin/internal/source/formatDuration.js +36 -0
- package/lib/plugin/internal/source/formatDuration.js.map +1 -0
- package/lib/plugin/internal/source/formatGoWorkPath.d.ts +35 -0
- package/lib/plugin/internal/source/formatGoWorkPath.js +42 -0
- package/lib/plugin/internal/source/formatGoWorkPath.js.map +1 -0
- package/lib/plugin/internal/source/hashPluginBuildEnvironment.d.ts +47 -0
- package/lib/plugin/internal/source/hashPluginBuildEnvironment.js +663 -0
- package/lib/plugin/internal/source/hashPluginBuildEnvironment.js.map +1 -0
- package/lib/plugin/internal/source/inspectPluginBuildLock.d.ts +29 -0
- package/lib/plugin/internal/source/inspectPluginBuildLock.js +285 -0
- package/lib/plugin/internal/source/inspectPluginBuildLock.js.map +1 -0
- package/lib/plugin/internal/source/isPathWithin.d.ts +16 -0
- package/lib/plugin/internal/source/isPathWithin.js +28 -0
- package/lib/plugin/internal/source/isPathWithin.js.map +1 -0
- package/lib/plugin/internal/source/legacyGlobalCacheTargets.d.ts +24 -0
- package/lib/plugin/internal/source/legacyGlobalCacheTargets.js +60 -0
- package/lib/plugin/internal/source/legacyGlobalCacheTargets.js.map +1 -0
- package/lib/plugin/internal/source/pluginBuildEnvironment.d.ts +31 -0
- package/lib/plugin/internal/source/pluginBuildEnvironment.js +47 -0
- package/lib/plugin/internal/source/pluginBuildEnvironment.js.map +1 -0
- package/lib/plugin/internal/source/pluginBuildEnvironmentWorker.d.ts +1 -0
- package/lib/plugin/internal/source/pluginBuildEnvironmentWorker.js +24 -0
- package/lib/plugin/internal/source/pluginBuildEnvironmentWorker.js.map +1 -0
- package/lib/plugin/internal/source/pluginBuildVersions.d.ts +31 -0
- package/lib/plugin/internal/source/pluginBuildVersions.js +65 -0
- package/lib/plugin/internal/source/pluginBuildVersions.js.map +1 -0
- package/lib/plugin/internal/source/pluginModuleReplaceDirectories.d.ts +40 -0
- package/lib/plugin/internal/source/pluginModuleReplaceDirectories.js +81 -0
- package/lib/plugin/internal/source/pluginModuleReplaceDirectories.js.map +1 -0
- package/lib/plugin/internal/source/pluginSourceCovers.d.ts +32 -0
- package/lib/plugin/internal/source/pluginSourceCovers.js +54 -0
- package/lib/plugin/internal/source/pluginSourceCovers.js.map +1 -0
- package/lib/plugin/internal/source/pluginSourceDigest.d.ts +40 -0
- package/lib/plugin/internal/source/pluginSourceDigest.js +60 -0
- package/lib/plugin/internal/source/pluginSourceDigest.js.map +1 -0
- package/lib/plugin/internal/source/pluginSourceFilesSignature.d.ts +38 -0
- package/lib/plugin/internal/source/pluginSourceFilesSignature.js +53 -0
- package/lib/plugin/internal/source/pluginSourceFilesSignature.js.map +1 -0
- package/lib/plugin/internal/source/pluginSourceState.d.ts +47 -0
- package/lib/plugin/internal/source/pluginSourceState.js +63 -0
- package/lib/plugin/internal/source/pluginSourceState.js.map +1 -0
- package/lib/plugin/internal/source/pluginSourceStateHolds.d.ts +34 -0
- package/lib/plugin/internal/source/pluginSourceStateHolds.js +45 -0
- package/lib/plugin/internal/source/pluginSourceStateHolds.js.map +1 -0
- package/lib/plugin/internal/source/processPluginBuildEnvironment.d.ts +33 -0
- package/lib/plugin/internal/source/processPluginBuildEnvironment.js +40 -0
- package/lib/plugin/internal/source/processPluginBuildEnvironment.js.map +1 -0
- package/lib/plugin/internal/source/pruneCacheFileRoot.d.ts +34 -0
- package/lib/plugin/internal/source/pruneCacheFileRoot.js +120 -0
- package/lib/plugin/internal/source/pruneCacheFileRoot.js.map +1 -0
- package/lib/plugin/internal/source/pruneGoBuildCacheRoot.d.ts +28 -0
- package/lib/plugin/internal/source/pruneGoBuildCacheRoot.js +185 -0
- package/lib/plugin/internal/source/pruneGoBuildCacheRoot.js.map +1 -0
- package/lib/plugin/internal/source/prunePluginCacheRoot.d.ts +46 -0
- package/lib/plugin/internal/source/prunePluginCacheRoot.js +446 -0
- package/lib/plugin/internal/source/prunePluginCacheRoot.js.map +1 -0
- package/lib/plugin/internal/source/prunesPluginSourceDirectory.d.ts +21 -0
- package/lib/plugin/internal/source/prunesPluginSourceDirectory.js +28 -0
- package/lib/plugin/internal/source/prunesPluginSourceDirectory.js.map +1 -0
- package/lib/plugin/internal/source/reclaimPluginBuildLock.d.ts +23 -0
- package/lib/plugin/internal/source/reclaimPluginBuildLock.js +48 -0
- package/lib/plugin/internal/source/reclaimPluginBuildLock.js.map +1 -0
- package/lib/plugin/internal/source/recordCacheFileUse.d.ts +22 -0
- package/lib/plugin/internal/source/recordCacheFileUse.js +43 -0
- package/lib/plugin/internal/source/recordCacheFileUse.js.map +1 -0
- package/lib/plugin/internal/source/releasePluginBuildLock.d.ts +33 -0
- package/lib/plugin/internal/source/releasePluginBuildLock.js +100 -0
- package/lib/plugin/internal/source/releasePluginBuildLock.js.map +1 -0
- package/lib/plugin/internal/source/resolveCleanTargets.d.ts +26 -0
- package/lib/plugin/internal/source/resolveCleanTargets.js +73 -0
- package/lib/plugin/internal/source/resolveCleanTargets.js.map +1 -0
- package/lib/plugin/internal/source/resolveGoCompiler.d.ts +29 -0
- package/lib/plugin/internal/source/resolveGoCompiler.js +62 -0
- package/lib/plugin/internal/source/resolveGoCompiler.js.map +1 -0
- package/lib/plugin/internal/source/resolvePluginCacheRoot.d.ts +21 -0
- package/lib/plugin/internal/source/resolvePluginCacheRoot.js +31 -0
- package/lib/plugin/internal/source/resolvePluginCacheRoot.js.map +1 -0
- package/lib/plugin/internal/source/resolvePluginGoModule.d.ts +34 -0
- package/lib/plugin/internal/source/resolvePluginGoModule.js +65 -0
- package/lib/plugin/internal/source/resolvePluginGoModule.js.map +1 -0
- package/lib/plugin/internal/source/resolveSourceBuildCachePaths.d.ts +21 -0
- package/lib/plugin/internal/source/resolveSourceBuildCachePaths.js +236 -0
- package/lib/plugin/internal/source/resolveSourceBuildCachePaths.js.map +1 -0
- package/lib/plugin/internal/source/selectPluginModuleReplaceDirectories.d.ts +29 -0
- package/lib/plugin/internal/source/selectPluginModuleReplaceDirectories.js +68 -0
- package/lib/plugin/internal/source/selectPluginModuleReplaceDirectories.js.map +1 -0
- package/lib/plugin/internal/source/spawnGoTool.d.ts +22 -0
- package/lib/plugin/internal/source/spawnGoTool.js +164 -0
- package/lib/plugin/internal/source/spawnGoTool.js.map +1 -0
- package/lib/plugin/internal/source/touchPluginCacheEntryInUse.d.ts +27 -0
- package/lib/plugin/internal/source/touchPluginCacheEntryInUse.js +48 -0
- package/lib/plugin/internal/source/touchPluginCacheEntryInUse.js.map +1 -0
- package/lib/plugin/internal/source/waitForPluginBinary.d.ts +36 -0
- package/lib/plugin/internal/source/waitForPluginBinary.js +94 -0
- package/lib/plugin/internal/source/waitForPluginBinary.js.map +1 -0
- package/lib/plugin/internal/source/windowsGoCommandArgs.d.ts +17 -0
- package/lib/plugin/internal/source/windowsGoCommandArgs.js +23 -0
- package/lib/plugin/internal/source/windowsGoCommandArgs.js.map +1 -0
- package/lib/plugin/internal/source/withGoBuildCacheLease.d.ts +37 -0
- package/lib/plugin/internal/source/withGoBuildCacheLease.js +87 -0
- package/lib/plugin/internal/source/withGoBuildCacheLease.js.map +1 -0
- package/lib/plugin/internal/writeCapabilityResolution.d.ts +80 -0
- package/lib/plugin/internal/writeCapabilityResolution.js +196 -0
- package/lib/plugin/internal/writeCapabilityResolution.js.map +1 -0
- package/lib/plugin/resolveCapabilityPlugins.d.ts +53 -32
- package/lib/plugin/resolveCapabilityPlugins.js +209 -38
- package/lib/plugin/resolveCapabilityPlugins.js.map +1 -1
- package/lib/register.js +20 -5
- package/lib/register.js.map +1 -1
- package/lib/structures/ITtscCompilerContext.d.ts +29 -11
- package/lib/structures/ITtscCompilerDiagnostic.d.ts +24 -7
- package/lib/structures/ITtscCompilerResult.d.ts +75 -25
- package/lib/structures/ITtscCompilerTransformation.d.ts +287 -64
- package/lib/structures/ITtscPlugin.d.ts +24 -8
- package/lib/structures/ITtscPluginCapabilities.d.ts +55 -5
- package/lib/structures/ITtscPluginContributor.d.ts +19 -8
- package/lib/structures/ITtscPluginFactoryContext.d.ts +12 -3
- package/lib/structures/ITtscProjectPluginConfig.d.ts +35 -10
- package/lib/structures/TtscPluginStage.d.ts +9 -0
- package/lib/structures/internal/ITtscLoadedNativePlugin.d.ts +19 -5
- package/lib/structures/internal/ITtscParsedProjectConfig.d.ts +29 -3
- package/lib/structures/internal/ITtscProjectIdentity.d.ts +21 -6
- package/lib/structures/internal/ITtscProjectInputSnapshot.d.ts +23 -8
- package/lib/structures/internal/ITtscProjectLocatorOptions.d.ts +18 -4
- package/lib/structures/internal/TtscBuildOptions.d.ts +33 -14
- package/lib/structures/internal/TtscBuildResult.d.ts +63 -4
- package/lib/structures/internal/TtscCommonOptions.d.ts +47 -14
- package/lib/structures/internal/TtscSingleFileEmitOptions.d.ts +46 -5
- package/package.json +26 -12
- package/shim/ast/enums_gen.go +4 -2
- package/shim/ast/go.mod +5 -5
- package/shim/ast/go.sum +10 -10
- package/shim/ast/lint.go +1088 -20
- package/shim/ast/parent.go +38 -22
- package/shim/ast/safe_text.go +48 -26
- package/shim/ast/shim.go +1307 -20
- package/shim/ast/test/next_jsdoc_comment_location_reaches_variable_statement_test.go +51 -0
- package/shim/ast/test/node_text_joins_multi_hop_qualified_name_test.go +24 -9
- package/shim/ast/test/node_text_joins_one_hop_qualified_name_test.go +9 -5
- package/shim/ast/test/node_text_returns_empty_for_nil_test.go +13 -5
- package/shim/ast/test/node_text_returns_identifier_text_test.go +12 -5
- package/shim/ast/test/node_text_skips_empty_qualified_left_test.go +35 -5
- package/shim/astnav/go.mod +5 -5
- package/shim/astnav/go.sum +12 -10
- package/shim/astnav/shim.go +9 -0
- package/shim/bundled/go.mod +7 -1
- package/shim/bundled/go.sum +12 -0
- package/shim/checker/enums_gen.go +4 -2
- package/shim/checker/extra-shim.json +6 -0
- package/shim/checker/go.mod +5 -5
- package/shim/checker/go.sum +10 -10
- package/shim/checker/node_builder_fields_gen.go +19 -0
- package/shim/checker/shim.go +827 -114
- package/shim/compiler/emit_sourcemap.go +68 -29
- package/shim/compiler/emitassemble.go +36 -2
- package/shim/compiler/emithook.go +13 -3
- package/shim/compiler/go.mod +5 -5
- package/shim/compiler/go.sum +10 -10
- package/shim/compiler/incremental.go +56 -20
- package/shim/compiler/resolution.go +92 -9
- package/shim/core/enums_gen.go +2 -2
- package/shim/core/go.mod +6 -1
- package/shim/core/go.sum +10 -0
- package/shim/core/modulekind.go +9 -0
- package/shim/core/shim.go +157 -6
- package/shim/diagnosticwriter/go.mod +10 -1
- package/shim/diagnosticwriter/go.sum +20 -0
- package/shim/diagnosticwriter/lint.go +188 -10
- package/shim/diagnosticwriter/shim.go +14 -0
- package/shim/lsp/go.mod +5 -5
- package/shim/lsp/go.sum +10 -10
- package/shim/lsp/shim.go +78 -2
- package/shim/parser/go.mod +10 -1
- package/shim/parser/go.sum +22 -0
- package/shim/printer/emithost.go +46 -1
- package/shim/printer/go.mod +5 -5
- package/shim/printer/go.sum +10 -10
- package/shim/printer/shim.go +114 -7
- package/shim/printer/sourcemap.go +55 -0
- package/shim/scanner/go.mod +10 -1
- package/shim/scanner/go.sum +20 -0
- package/shim/scanner/regexp.go +19 -4
- package/shim/scanner/shim.go +3 -0
- package/shim/stringutil/extra-shim.json +1 -0
- package/shim/stringutil/go.mod +5 -0
- package/shim/stringutil/go.sum +2 -0
- package/shim/stringutil/shim.go +119 -0
- package/shim/transformers/go.mod +5 -5
- package/shim/transformers/go.sum +12 -10
- package/shim/transformers/shim.go +12 -3
- package/shim/tsoptions/command_line_raw.go +44 -0
- package/shim/tsoptions/go.mod +10 -1
- package/shim/tsoptions/go.sum +22 -0
- package/shim/tsoptions/shim.go +1 -1
- package/shim/tspath/go.mod +1 -1
- package/shim/tspath/go.sum +6 -0
- package/shim/vfs/cachedvfs/go.mod +3 -1
- package/shim/vfs/cachedvfs/go.sum +12 -0
- package/shim/vfs/decode.go +26 -0
- package/shim/vfs/decode_test.go +42 -0
- package/shim/vfs/go.mod +7 -1
- package/shim/vfs/go.sum +12 -0
- package/shim/vfs/osvfs/go.mod +7 -1
- package/shim/vfs/osvfs/go.sum +12 -0
- package/src/TtscCompiler.ts +223 -234
- package/src/TtscService.ts +87 -31
- package/src/TtscServiceRequestOptions.ts +21 -0
- package/src/compiler/internal/CapturedProcessOutput.ts +69 -0
- package/src/compiler/internal/CompilerArgumentsInspection.ts +184 -0
- package/src/compiler/internal/EmitOwnershipIndex.ts +254 -0
- package/src/compiler/internal/PrivateCompilerOutput.ts +330 -0
- package/src/compiler/internal/ResidentCheckProcess.ts +445 -0
- package/src/compiler/internal/ResidentCheckProcessOptions.ts +32 -0
- package/src/compiler/internal/ResidentCheckRequest.ts +39 -0
- package/src/compiler/internal/ResidentCheckResult.ts +24 -0
- package/src/compiler/internal/ResidentCheckTelemetry.ts +36 -0
- package/src/compiler/internal/ResidentReplyKind.ts +18 -0
- package/src/compiler/internal/ResidentTransformProcess.ts +299 -0
- package/src/compiler/internal/ResidentTransformProcessOptions.ts +30 -0
- package/src/compiler/internal/ResidentTransformReply.ts +79 -0
- package/src/compiler/internal/ResidentTransformRequestOptions.ts +16 -0
- package/src/compiler/internal/ResidentTransformRequests.ts +198 -0
- package/src/compiler/internal/StartedResidentTransform.ts +29 -0
- package/src/compiler/internal/TransformProjectWorkerReply.ts +37 -0
- package/src/compiler/internal/TransformProjectWorkerRequest.ts +42 -0
- package/src/compiler/internal/build/BuildExecution.ts +1261 -0
- package/src/compiler/internal/build/BuildTiming.ts +145 -0
- package/src/compiler/internal/build/CompilerDiagnostics.ts +307 -0
- package/src/compiler/internal/build/NativePluginArguments.ts +302 -0
- package/src/compiler/internal/build/PassthroughFlags.ts +229 -0
- package/src/compiler/internal/build/PluginFailureDiagnostics.ts +70 -0
- package/src/compiler/internal/build/ResidentCheckEntryPlan.ts +42 -0
- package/src/compiler/internal/build/ResidentCheckWatchChange.ts +33 -0
- package/src/compiler/internal/build/ResidentCheckWatchSession.ts +501 -0
- package/src/compiler/internal/build/RunBuildOptions.ts +145 -0
- package/src/compiler/internal/build/TsgoArguments.ts +349 -0
- package/src/compiler/internal/build/appendBuildOutput.ts +218 -0
- package/src/compiler/internal/build/bufferResidentCheckEntryRequests.ts +52 -0
- package/src/compiler/internal/build/createProcessDiagnostic.ts +32 -0
- package/src/compiler/internal/build/isAbsoluteLocalProjectInputPath.ts +55 -0
- package/src/compiler/internal/build/mergeProjectInputSnapshots.ts +147 -0
- package/src/compiler/internal/build/normalizeBuildOutput.ts +89 -0
- package/src/compiler/internal/build/parseProjectInputSnapshot.ts +91 -0
- package/src/compiler/internal/build/planResidentCheckEntries.ts +55 -0
- package/src/compiler/internal/build/privateRuntimeRootDir.ts +33 -0
- package/src/compiler/internal/build/residentCheckRequest.ts +41 -0
- package/src/compiler/internal/build/runBuild.ts +61 -0
- package/src/compiler/internal/build/runExternalEmitProvenance.ts +566 -0
- package/src/compiler/internal/build/takeResidentCheckEntryRequest.ts +31 -0
- package/src/compiler/internal/buildNativeCompiler.ts +19 -2
- package/src/compiler/internal/captureProcessOutput.ts +37 -39
- package/src/compiler/internal/compileProjectInMemory.ts +139 -92
- package/src/compiler/internal/ensureExecutable.ts +32 -0
- package/src/compiler/internal/findNearestGoMod.ts +43 -0
- package/src/compiler/internal/isOutsideRelativePath.ts +26 -0
- package/src/compiler/internal/outputText.ts +21 -0
- package/src/compiler/internal/packageRootDir.ts +43 -0
- package/src/compiler/internal/parseNativeTransformOutput.ts +722 -0
- package/src/compiler/internal/project/CompilerProjectSelection.ts +204 -0
- package/src/compiler/internal/project/ConfigJsonText.ts +55 -0
- package/src/compiler/internal/project/compilerUsesCaseSensitiveFileNames.ts +124 -0
- package/src/compiler/internal/project/createNativeProjectContextArgs.ts +14 -19
- package/src/compiler/internal/project/createNativeProjectContextJson.ts +28 -0
- package/src/compiler/internal/project/parseJsonc.ts +318 -0
- package/src/compiler/internal/project/readJsonFile.ts +34 -0
- package/src/compiler/internal/project/readJsoncFile.ts +46 -0
- package/src/compiler/internal/project/readProjectConfig.ts +137 -200
- package/src/compiler/internal/project/resolveOwningProjectConfig.ts +278 -0
- package/src/compiler/internal/project/resolveProjectConfig.ts +18 -127
- package/src/compiler/internal/project/resolveProjectIdentity.ts +153 -0
- package/src/compiler/internal/project/resolveTsconfigExtends.ts +175 -0
- package/src/compiler/internal/project/selectReferencedProject.ts +54 -0
- package/src/compiler/internal/project/tsconfigExtendsFileCandidates.ts +54 -0
- package/src/compiler/internal/readEffectiveCompilerOptions.ts +126 -0
- package/src/compiler/internal/resolveBinary.ts +25 -9
- package/src/compiler/internal/resolveTsgo.ts +31 -11
- package/src/compiler/internal/runNativeCheckWithObservations.ts +211 -0
- package/src/compiler/internal/runSingleFileEmit.ts +92 -27
- package/src/compiler/internal/sharedHost/SEMANTIC_CONFIG_PATH_ENV.ts +2 -0
- package/src/compiler/internal/sharedHost/SidecarEnvironment.ts +151 -0
- package/src/compiler/internal/sharedHost/TSGO_ARGS_CWD_ENV.ts +7 -0
- package/src/compiler/internal/sharedHost/TSGO_ARGS_ENV.ts +7 -0
- package/src/compiler/internal/sharedHost/assertSharedHostCompatibility.ts +48 -0
- package/src/compiler/internal/sharedHost/clearInheritedSemanticConfigPath.ts +27 -0
- package/src/compiler/internal/sharedHost/clearInheritedTsgoArgs.ts +41 -0
- package/src/compiler/internal/sharedHost/inheritedSidecarEnv.ts +45 -0
- package/src/compiler/internal/sharedHost/isLinkedTransform.ts +19 -0
- package/src/compiler/internal/sharedHost/linkedTransformPlugins.ts +25 -0
- package/src/compiler/internal/sharedHost/publishLinkedTransformPlugins.ts +42 -0
- package/src/compiler/internal/sharedHost/resolvePluginConfigDir.ts +33 -0
- package/src/compiler/internal/sharedHost/selectSharedHostPlugin.ts +35 -0
- package/src/compiler/internal/spawnNative.ts +16 -39
- package/src/compiler/internal/startResidentTransform.ts +66 -53
- package/src/compiler/internal/transformProjectInMemory.ts +347 -635
- package/src/compiler/internal/transformProjectInWorker.ts +170 -0
- package/src/compiler/internal/transformProjectWorker.ts +43 -0
- package/src/flags/AnySubcommand.ts +19 -0
- package/src/flags/COMPILER_ENUM_WHITESPACE.ts +35 -0
- package/src/flags/COMPILER_OPTIONS.ts +512 -0
- package/src/flags/COMPILER_OPTION_ASCII_FOLDS.ts +13 -0
- package/src/flags/COMPILER_OPTION_KINDS.ts +14 -0
- package/src/flags/CompilerOptionSpec.ts +30 -0
- package/src/flags/FLAG_BY_TOKEN.ts +40 -0
- package/src/flags/{schema.ts → FLAG_SCHEMA.ts} +43 -318
- package/src/flags/FlagKind.ts +22 -0
- package/src/flags/FlagLayer.ts +24 -0
- package/src/flags/FlagSpec.ts +118 -0
- package/src/flags/ParseOptions.ts +103 -0
- package/src/flags/ParseResult.ts +44 -0
- package/src/flags/TtscSubcommand.ts +22 -0
- package/src/flags/TtsxSubcommand.ts +13 -0
- package/src/flags/ValueValidator.ts +14 -0
- package/src/flags/buildGoAllowList.ts +43 -0
- package/src/flags/flagsForSubcommand.ts +22 -0
- package/src/flags/getBoolean.ts +27 -0
- package/src/flags/getNumber.ts +24 -0
- package/src/flags/getString.ts +24 -0
- package/src/flags/getStringList.ts +24 -0
- package/src/flags/normalizeCompilerEnumValue.ts +41 -0
- package/src/flags/normalizeFlagToken.ts +38 -0
- package/src/flags/parseFlags.ts +371 -0
- package/src/flags/readCompilerOptionOccurrence.ts +107 -0
- package/src/flags/readCompilerOptionValues.ts +68 -0
- package/src/flags/resolveFlagSpec.ts +29 -0
- package/src/index.ts +9 -3
- package/src/internal/CanonicalTempDirectoryOperations.ts +73 -0
- package/src/internal/CompilerContextSnapshot.ts +139 -0
- package/src/internal/CompilerResultAdapter.ts +320 -0
- package/src/internal/E2ETrace.ts +674 -0
- package/src/internal/IJavaScriptRuntimeCapabilities.ts +50 -0
- package/src/internal/OwnedNativeProcess.ts +417 -0
- package/src/internal/OwnedSynchronousProcess.ts +220 -0
- package/src/internal/RetireLockDirectoryOperations.ts +81 -0
- package/src/internal/SafeCacheCleanupTarget.ts +41 -0
- package/src/internal/SourceNativeRetirement.ts +1109 -0
- package/src/internal/SpawnSyncOutputFiles.ts +29 -0
- package/src/internal/cacheEntryExists.ts +24 -0
- package/src/internal/createCanonicalTempDirectory.ts +35 -18
- package/src/internal/isContendedCandidateRename.ts +35 -0
- package/src/internal/isSpawnSyncFdExhaustion.ts +19 -0
- package/src/internal/javascriptRuntimeCapabilities.ts +166 -0
- package/src/internal/nativeBinary.ts +11 -0
- package/src/internal/parseWindowsDirectoryCaseSensitivity.ts +50 -0
- package/src/internal/pathIdentity/FilesystemPathIdentity.ts +44 -0
- package/src/internal/pathIdentity/FilesystemPathIdentityContext.ts +182 -0
- package/src/internal/pathIdentity/FilesystemPathIdentityOperations.ts +106 -0
- package/src/internal/pathIdentity/ProjectInputPathIdentity.ts +21 -0
- package/src/internal/pathIdentity/ProjectInputPathIdentityContext.ts +21 -0
- package/src/internal/pathIdentity/ProjectInputPathIdentityOperations.ts +22 -0
- package/src/internal/pathIdentity/createFilesystemPathIdentityContext.ts +437 -0
- package/src/internal/pathIdentity/createProjectInputPathIdentityContext.ts +34 -0
- package/src/internal/pathIdentity/isFilesystemPathIdentityWithin.ts +32 -0
- package/src/internal/pathIdentity/isProjectInputPathIdentityWithin.ts +22 -0
- package/src/internal/pathIdentity/resolveFilesystemPath.ts +43 -0
- package/src/internal/pathIdentity/resolvePhysicalPath.ts +31 -0
- package/src/internal/pathIdentity/resolveProjectInputPath.ts +18 -0
- package/src/internal/pluginSource.ts +26 -0
- package/src/internal/projectInputPathIdentity.ts +26 -387
- package/src/internal/resolveNodeBinary.ts +13 -165
- package/src/internal/resolveSafeCacheCleanupTargets.ts +51 -19
- package/src/internal/restoreCompilerError.ts +175 -0
- package/src/internal/retireLockDirectory.ts +166 -0
- package/src/internal/runHoldingLock.ts +55 -0
- package/src/internal/runtimeExecutableIdentity.ts +212 -0
- package/src/internal/serializeCompilerError.ts +145 -0
- package/src/internal/spawnSyncResilient.ts +36 -182
- package/src/internal/spawnSyncWithLowDescriptors.ts +227 -0
- package/src/internal/tsconfig.ts +16 -0
- package/src/launcher/internal/PendingResidentCheckWatchChanges.ts +94 -0
- package/src/launcher/internal/TtscBuildMode.ts +14 -0
- package/src/launcher/internal/TtsxEntryOptions.ts +92 -0
- package/src/launcher/internal/assertNoSolutionBuild.ts +17 -10
- package/src/launcher/internal/assertTtsxNoWatch.ts +49 -0
- package/src/launcher/internal/buildSingleRootProject.ts +303 -0
- package/src/launcher/internal/getCompilerVersionText.ts +20 -5
- package/src/launcher/internal/inlineServedSourceMap.ts +294 -0
- package/src/launcher/internal/linkVirtualEntry.ts +88 -0
- package/src/launcher/internal/{commonJsExportMetadata.ts → parseCommonJsExports.ts} +12 -2
- package/src/launcher/internal/parseTtscBuildArgs.ts +103 -0
- package/src/launcher/internal/parseTtsxCLI.ts +183 -0
- package/src/launcher/internal/prepareExecution.ts +474 -362
- package/src/launcher/internal/prepareTtscBuildMode.ts +64 -0
- package/src/launcher/internal/resolveCacheDir.ts +12 -3
- package/src/launcher/internal/resolveSingleFileOutput.ts +145 -0
- package/src/launcher/internal/resolveTtscserverBinary.ts +20 -5
- package/src/launcher/internal/runTtsc.ts +394 -326
- package/src/launcher/internal/runTtsx.ts +349 -151
- package/src/launcher/internal/runtime/CommonJsRuntimeSource.ts +365 -0
- package/src/launcher/internal/runtime/DependencyBuildAdmission.ts +159 -0
- package/src/launcher/internal/runtime/DependencyBuildGeneration.ts +236 -0
- package/src/launcher/internal/runtime/DependencyBuildLockFence.ts +22 -0
- package/src/launcher/internal/runtime/DependencyBuildLockLease.ts +22 -0
- package/src/launcher/internal/runtime/DependencyBuildLockObservation.ts +49 -0
- package/src/launcher/internal/runtime/DependencyBuildLockProtocol.ts +137 -0
- package/src/launcher/internal/runtime/OwnedProjectSource.ts +140 -0
- package/src/launcher/internal/runtime/OwningModuleOptions.ts +22 -0
- package/src/launcher/internal/runtime/PluginDescriptorInputObservation.ts +112 -0
- package/src/launcher/internal/runtime/ProcessOwnedDirectory.ts +325 -0
- package/src/launcher/internal/runtime/ResolveResult.ts +26 -0
- package/src/launcher/internal/runtime/RuntimeEmitProvenance.ts +58 -0
- package/src/launcher/internal/runtime/RuntimeEntryPreparer.ts +23 -0
- package/src/launcher/internal/runtime/RuntimeFilesystem.ts +64 -0
- package/src/launcher/internal/runtime/RuntimeHookOptions.ts +23 -0
- package/src/launcher/internal/runtime/RuntimeIsolatedEmit.ts +88 -0
- package/src/launcher/internal/runtime/RuntimeLoaderCapabilities.ts +256 -0
- package/src/launcher/internal/runtime/RuntimeManifest.ts +77 -0
- package/src/launcher/internal/runtime/RuntimeManifestRegistry.ts +309 -0
- package/src/launcher/internal/runtime/RuntimeModuleFormat.ts +275 -0
- package/src/launcher/internal/runtime/RuntimeProjectOwnership.ts +139 -0
- package/src/launcher/internal/runtime/TTSX_MINIMUM_NODE_VERSION.ts +11 -0
- package/src/launcher/internal/runtime/acquireDependencyBuildLock.ts +97 -0
- package/src/launcher/internal/runtime/checkNodeRuntimeSupport.ts +94 -0
- package/src/launcher/internal/runtime/claimRuntimeProjectDirectory.ts +54 -0
- package/src/launcher/internal/runtime/commonJsExportNames.ts +57 -0
- package/src/launcher/internal/runtime/commonJsImportFacade.ts +62 -0
- package/src/launcher/internal/runtime/dependencyCacheKey.ts +82 -0
- package/src/launcher/internal/runtime/dependencyCacheRoot.ts +112 -0
- package/src/launcher/internal/runtime/inspectDependencyBuildLock.ts +162 -0
- package/src/launcher/internal/runtime/installRuntimeHooks.ts +2442 -0
- package/src/launcher/internal/runtime/interopProbe.ts +8 -0
- package/src/launcher/internal/runtime/isLocalProcessGone.ts +67 -0
- package/src/launcher/internal/runtime/observeMappedDescriptorResolution.ts +74 -0
- package/src/launcher/internal/runtime/projectModuleOptions.ts +28 -0
- package/src/launcher/internal/runtime/readDependencyCache.ts +89 -0
- package/src/launcher/internal/runtime/realPath.ts +30 -0
- package/src/launcher/internal/runtime/reclaimDependencyBuildLock.ts +27 -0
- package/src/launcher/internal/runtime/releaseDependencyBuildLock.ts +27 -0
- package/src/launcher/internal/runtime/resolveRuntimeCleanTargets.ts +93 -0
- package/src/launcher/internal/runtime/restoreStrippedNodeBuiltinScheme.ts +32 -0
- package/src/launcher/internal/runtime/runtimeRunKey.ts +31 -0
- package/src/launcher/internal/runtime/selectRuntimePluginPolicy.ts +28 -0
- package/src/launcher/internal/runtime/withRuntimeDirectoryLock.ts +92 -0
- package/src/launcher/internal/runtimeCompilerArgs.ts +91 -62
- package/src/launcher/internal/runtimeEmitProfile.ts +70 -0
- package/src/launcher/internal/runtimeHookPreload.ts +3 -3
- package/src/launcher/internal/runtimeOwnerPreload.ts +43 -0
- package/src/launcher/internal/singleRootProjectConfig.ts +38 -0
- package/src/launcher/internal/ttscserver/ILSPPluginSelectionInputs.ts +65 -0
- package/src/launcher/internal/ttscserver/LSPProjectInputDigest.ts +331 -0
- package/src/launcher/internal/ttscserver/captureLSPPluginSelectionInputs.ts +107 -0
- package/src/launcher/internal/ttscserver/fingerprintInitialLSPProjectInputSnapshot.ts +41 -0
- package/src/launcher/internal/ttscserver/initialLSPProjectInputSnapshotIsCurrent.ts +36 -0
- package/src/launcher/internal/ttscserver/materializeLSPPluginManifest.ts +60 -0
- package/src/launcher/internal/ttscserver/needsStdio.ts +32 -0
- package/src/launcher/internal/ttscserver/runTtscserver.ts +592 -0
- package/src/launcher/internal/watch/CompilerDirectoryWatchEventPlan.ts +31 -0
- package/src/launcher/internal/watch/DirectoryWatcher.ts +45 -0
- package/src/launcher/internal/watch/FseventsStreams.ts +303 -0
- package/src/launcher/internal/watch/ProjectInputWatchRules.ts +179 -0
- package/src/launcher/internal/watch/WatchInputChange.ts +31 -0
- package/src/launcher/internal/watch/WatchPaths.ts +156 -0
- package/src/launcher/internal/{watchTopology.ts → watch/WatchTopology.ts} +867 -962
- package/src/launcher/internal/watch/literalGlobRoot.ts +40 -0
- package/src/launcher/internal/watch/planCompilerDirectoryWatchEvent.ts +83 -0
- package/src/launcher/internal/watch/projectInputActiveWatchDirectories.ts +47 -0
- package/src/launcher/internal/watch/projectInputAvailableWatchDirectory.ts +56 -0
- package/src/launcher/internal/watch/projectInputEventShouldNotify.ts +23 -0
- package/src/launcher/internal/watch/projectInputMembershipInvalidatesProgram.ts +63 -0
- package/src/launcher/internal/watch/projectInputReloadEventShouldNotify.ts +127 -0
- package/src/launcher/internal/watch/projectInputReplacementStrandsWatchers.ts +57 -0
- package/src/launcher/internal/watch/projectInputTopologyMayAffect.ts +73 -0
- package/src/launcher/internal/watch/projectInputWatchDirectories.ts +33 -0
- package/src/launcher/internal/watch/reloadInputsForFailedTopologyRefresh.ts +49 -0
- package/src/launcher/internal/watch/syncWatchers.ts +64 -0
- package/src/launcher/internal/watch/watchDirectory.ts +53 -0
- package/src/launcher/internal/watch/watchDirectoryThroughFsWatch.ts +47 -0
- package/src/launcher/ttscserver.ts +1 -1
- package/src/launcher/ttsx.ts +2 -3
- package/src/plugin/CapabilityPluginResolver.ts +549 -0
- package/src/plugin/ITtscCapabilityPlugin.ts +93 -0
- package/src/plugin/internal/CapabilityPluginResult.ts +99 -0
- package/src/plugin/internal/CapabilityResolutionFormat.ts +248 -0
- package/src/plugin/internal/ITtscCapabilityPluginSource.ts +37 -0
- package/src/plugin/internal/ITtscCapabilityResolutionEntry.ts +57 -0
- package/src/plugin/internal/ITtscCapabilityResolutionPlugin.ts +22 -0
- package/src/plugin/internal/capabilityPluginWorker.ts +216 -0
- package/src/plugin/internal/decodeCapabilityCommandReply.ts +27 -0
- package/src/plugin/internal/load/COMMONJS_PLUGIN_DESCRIPTOR_SHIM_SOURCE.ts +182 -0
- package/src/plugin/internal/load/PLUGIN_DESCRIPTOR_SHIM_SOURCE.ts +59 -0
- package/src/plugin/internal/load/PluginDescriptorAdmission.ts +75 -0
- package/src/plugin/internal/load/PluginDescriptorEvaluationCache.ts +432 -0
- package/src/plugin/internal/load/PluginPackageResolution.ts +711 -0
- package/src/plugin/internal/load/ProjectPluginEntries.ts +232 -0
- package/src/plugin/internal/load/RESOLUTION_INPUT_RECORDER_PATH.ts +34 -0
- package/src/plugin/internal/load/collectProjectHostInputs.ts +88 -0
- package/src/plugin/internal/load/composePluginSources.ts +121 -0
- package/src/plugin/internal/load/declaresHostInputReads.ts +52 -0
- package/src/plugin/internal/load/hasProjectPluginEntries.ts +33 -0
- package/src/plugin/internal/load/hashHostInputPaths.ts +44 -0
- package/src/plugin/internal/load/isRelativePluginSpecifier.ts +31 -0
- package/src/plugin/internal/load/loadProjectPlugins.ts +2242 -0
- package/src/plugin/internal/load/moduleResolutionBaseSelects.ts +59 -0
- package/src/plugin/internal/load/observeImportSearchRoots.ts +42 -0
- package/src/plugin/internal/load/pluginLabel.ts +28 -0
- package/src/plugin/internal/load/realpathHostInput.ts +22 -0
- package/src/plugin/internal/load/realpathHostInputPaths.ts +27 -0
- package/src/plugin/internal/load/rejectJsTransformFunctions.ts +23 -0
- package/src/plugin/internal/load/requirePluginSource.ts +34 -0
- package/src/plugin/internal/load/resolveNativeSource.ts +42 -0
- package/src/plugin/internal/load/validatePluginContributors.ts +102 -0
- package/src/plugin/internal/load/validatePluginSource.ts +19 -0
- package/src/plugin/internal/load/visitImportMappedCandidates.ts +63 -0
- package/src/plugin/internal/pluginDescriptorFailureReason.ts +35 -0
- package/src/plugin/internal/pluginDescriptorProcessFailure.ts +48 -0
- package/src/plugin/internal/readCapabilityResolution.ts +193 -0
- package/src/plugin/internal/receiveCapabilityFailure.ts +27 -0
- package/src/plugin/internal/source/CachePrunePolicy.ts +47 -0
- package/src/plugin/internal/source/GoBuildCacheCoordination.ts +588 -0
- package/src/plugin/internal/source/GoSourceInputs.ts +182 -0
- package/src/plugin/internal/source/GoToolResolution.ts +312 -0
- package/src/plugin/internal/source/IGoBuildCachePruneOptions.ts +34 -0
- package/src/plugin/internal/source/IPluginCachePruneOptions.ts +38 -0
- package/src/plugin/internal/source/IPluginModuleReplaceDirectory.ts +30 -0
- package/src/plugin/internal/source/ITtscBuildContributor.ts +19 -0
- package/src/plugin/internal/source/ITtscSourceBuildCachePaths.ts +28 -0
- package/src/plugin/internal/source/NativeSourcePackages.ts +368 -0
- package/src/plugin/internal/source/PluginBinaryUse.ts +159 -0
- package/src/plugin/internal/source/PluginBinaryWaitResult.ts +34 -0
- package/src/plugin/internal/source/PluginBuildEnvironmentReadings.ts +231 -0
- package/src/plugin/internal/source/PluginBuildEnvironmentWitness.ts +233 -0
- package/src/plugin/internal/source/PluginBuildLockFence.ts +26 -0
- package/src/plugin/internal/source/PluginBuildLockLease.ts +31 -0
- package/src/plugin/internal/source/PluginBuildLockObservation.ts +48 -0
- package/src/plugin/internal/source/PluginBuildLockOwner.ts +225 -0
- package/src/plugin/internal/source/PluginBuildLockProtocol.ts +342 -0
- package/src/plugin/internal/source/SourceBuildCacheLayout.ts +303 -0
- package/src/plugin/internal/source/SourceBuildFilesystemOperations.ts +32 -0
- package/src/plugin/internal/source/SourcePluginAdmission.ts +127 -0
- package/src/plugin/internal/source/SourcePluginWorkspace.ts +446 -0
- package/src/plugin/internal/source/acquirePluginBuildLock.ts +222 -0
- package/src/plugin/internal/source/autoQuoteGoModToken.ts +113 -0
- package/src/plugin/internal/source/buildSourcePlugin.ts +1197 -0
- package/src/plugin/internal/source/collectPluginSourceDirectories.ts +70 -0
- package/src/plugin/internal/source/collectPluginSourceFiles.ts +90 -0
- package/src/plugin/internal/source/computeCacheKey.ts +190 -0
- package/src/plugin/internal/source/copiesPluginSourceEntry.ts +52 -0
- package/src/plugin/internal/source/createExternalSourceSnapshotLayout.ts +66 -0
- package/src/plugin/internal/source/ensureExecutableGoToolchain.ts +87 -0
- package/src/plugin/internal/source/formatDuration.ts +32 -0
- package/src/plugin/internal/source/formatGoWorkPath.ts +42 -0
- package/src/plugin/internal/source/hashPluginBuildEnvironment.ts +803 -0
- package/src/plugin/internal/source/inspectPluginBuildLock.ts +330 -0
- package/src/plugin/internal/source/isPathWithin.ts +24 -0
- package/src/plugin/internal/source/legacyGlobalCacheTargets.ts +71 -0
- package/src/plugin/internal/source/pluginBuildEnvironment.ts +59 -0
- package/src/plugin/internal/source/pluginBuildEnvironmentWorker.ts +30 -0
- package/src/plugin/internal/source/pluginBuildVersions.ts +75 -0
- package/src/plugin/internal/source/pluginModuleReplaceDirectories.ts +96 -0
- package/src/plugin/internal/source/pluginSourceCovers.ts +54 -0
- package/src/plugin/internal/source/pluginSourceDigest.ts +55 -0
- package/src/plugin/internal/source/pluginSourceFilesSignature.ts +54 -0
- package/src/plugin/internal/source/pluginSourceState.ts +69 -0
- package/src/plugin/internal/source/pluginSourceStateHolds.ts +45 -0
- package/src/plugin/internal/source/processPluginBuildEnvironment.ts +40 -0
- package/src/plugin/internal/source/pruneCacheFileRoot.ts +134 -0
- package/src/plugin/internal/source/pruneGoBuildCacheRoot.ts +228 -0
- package/src/plugin/internal/source/prunePluginCacheRoot.ts +507 -0
- package/src/plugin/internal/source/prunesPluginSourceDirectory.ts +25 -0
- package/src/plugin/internal/source/reclaimPluginBuildLock.ts +63 -0
- package/src/plugin/internal/source/recordCacheFileUse.ts +35 -0
- package/src/plugin/internal/source/releasePluginBuildLock.ts +125 -0
- package/src/plugin/internal/source/resolveCleanTargets.ts +84 -0
- package/src/plugin/internal/source/resolveGoCompiler.ts +92 -0
- package/src/plugin/internal/source/resolvePluginCacheRoot.ts +32 -0
- package/src/plugin/internal/source/resolvePluginGoModule.ts +69 -0
- package/src/plugin/internal/source/resolveSourceBuildCachePaths.ts +276 -0
- package/src/plugin/internal/source/selectPluginModuleReplaceDirectories.ts +80 -0
- package/src/plugin/internal/source/spawnGoTool.ts +204 -0
- package/src/plugin/internal/source/touchPluginCacheEntryInUse.ts +44 -0
- package/src/plugin/internal/source/waitForPluginBinary.ts +123 -0
- package/src/plugin/internal/source/windowsGoCommandArgs.ts +19 -0
- package/src/plugin/internal/source/withGoBuildCacheLease.ts +101 -0
- package/src/plugin/internal/writeCapabilityResolution.ts +266 -0
- package/src/plugin/resolveCapabilityPlugins.ts +242 -77
- package/src/register.ts +20 -7
- package/src/structures/ITtscCompilerContext.ts +29 -11
- package/src/structures/ITtscCompilerDiagnostic.ts +24 -7
- package/src/structures/ITtscCompilerResult.ts +75 -25
- package/src/structures/ITtscCompilerTransformation.ts +304 -64
- package/src/structures/ITtscPlugin.ts +24 -8
- package/src/structures/ITtscPluginCapabilities.ts +58 -5
- package/src/structures/ITtscPluginContributor.ts +19 -8
- package/src/structures/ITtscPluginFactoryContext.ts +12 -3
- package/src/structures/ITtscProjectPluginConfig.ts +35 -10
- package/src/structures/TtscPluginStage.ts +9 -0
- package/src/structures/internal/ITtscLoadedNativePlugin.ts +27 -5
- package/src/structures/internal/ITtscParsedProjectConfig.ts +37 -3
- package/src/structures/internal/ITtscProjectIdentity.ts +27 -6
- package/src/structures/internal/ITtscProjectInputSnapshot.ts +31 -8
- package/src/structures/internal/ITtscProjectLocatorOptions.ts +21 -4
- package/src/structures/internal/TtscBuildOptions.ts +38 -14
- package/src/structures/internal/TtscBuildResult.ts +74 -4
- package/src/structures/internal/TtscCommonOptions.ts +59 -14
- package/src/structures/internal/TtscSingleFileEmitOptions.ts +55 -5
- package/tools/gen_shims/main.go +124 -11
- package/tools/gen_shims/package_load_admission_rejects_incomplete_results_test.go +61 -0
- package/tools/gen_shims/private_field_support_preserves_upstream_layout_test.go +104 -0
- package/tools/shim_audit/enum_generation_preserves_existing_family_members_test.go +182 -0
- package/tools/shim_audit/enum_generation_refuses_removed_public_members_test.go +93 -0
- package/tools/shim_audit/main.go +166 -31
- package/tools/shim_audit/main_test.go +35 -0
- package/tools/shim_audit/producer_exemptions_require_rationale_test.go +5 -0
- package/tools/shim_audit/producer_surface_includes_exposed_methods_test.go +5 -0
- package/tools/shim_audit/producer_surface_rejects_unproducible_reference_test.go +5 -0
- package/tools/shim_audit/shim_dir_coverage_rejects_unregistered_shims_test.go +71 -0
- package/utility/command.go +48 -0
- package/utility/flags_gen.go +2 -2
- package/utility/host.go +282 -66
- package/utility/preamble_output.go +245 -0
- package/utility/preamble_output_test.go +90 -0
- package/utility/serve.go +61 -18
- package/cmd/ttscgraph/serve_graph_snapshot_version_matches_typescript_client_test.go +0 -32
- package/cmd/ttscgraph/serve_protocol_version_matches_the_typescript_client_test.go +0 -48
- package/cmd/ttscgraph/serve_session_retries_failed_dump_test.go +0 -103
- package/internal/graph/dump_schema_version_matches_the_typescript_client_test.go +0 -48
- package/internal/graph/edge_kinds_names_every_declared_kind_test.go +0 -49
- package/internal/graph/graph_kind_contracts_match_their_producers_test.go +0 -121
- package/internal/lspserver/lsp_launcher_reload_directory_fingerprint_parity_windows_test.go +0 -94
- package/internal/lspserver/lsp_project_diagnostics_resident_unsupported_falls_back_test.go +0 -123
- package/lib/compiler/internal/paths.d.ts +0 -27
- package/lib/compiler/internal/paths.js +0 -70
- package/lib/compiler/internal/paths.js.map +0 -1
- package/lib/compiler/internal/project/readConfigJson.d.ts +0 -30
- package/lib/compiler/internal/project/readConfigJson.js +0 -208
- package/lib/compiler/internal/project/readConfigJson.js.map +0 -1
- package/lib/compiler/internal/residentCheckProcess.d.ts +0 -44
- package/lib/compiler/internal/residentCheckProcess.js +0 -213
- package/lib/compiler/internal/residentCheckProcess.js.map +0 -1
- package/lib/compiler/internal/residentTransformProcess.d.ts +0 -65
- package/lib/compiler/internal/residentTransformProcess.js +0 -330
- package/lib/compiler/internal/residentTransformProcess.js.map +0 -1
- package/lib/compiler/internal/resolveEmittedJavaScript.d.ts +0 -25
- package/lib/compiler/internal/resolveEmittedJavaScript.js +0 -165
- package/lib/compiler/internal/resolveEmittedJavaScript.js.map +0 -1
- package/lib/compiler/internal/runBuild.d.ts +0 -152
- package/lib/compiler/internal/runBuild.js +0 -1694
- package/lib/compiler/internal/runBuild.js.map +0 -1
- package/lib/compiler/internal/sharedHostHelpers.d.ts +0 -79
- package/lib/compiler/internal/sharedHostHelpers.js +0 -134
- package/lib/compiler/internal/sharedHostHelpers.js.map +0 -1
- package/lib/flags/parser.d.ts +0 -97
- package/lib/flags/parser.js +0 -293
- package/lib/flags/parser.js.map +0 -1
- package/lib/flags/schema.d.ts +0 -191
- package/lib/flags/schema.js.map +0 -1
- package/lib/internal/windowsDirectoryCaseSensitivity.d.ts +0 -10
- package/lib/internal/windowsDirectoryCaseSensitivity.js +0 -34
- package/lib/internal/windowsDirectoryCaseSensitivity.js.map +0 -1
- package/lib/launcher/internal/commonJsExportMetadata.d.ts +0 -7
- package/lib/launcher/internal/commonJsExportMetadata.js.map +0 -1
- package/lib/launcher/internal/registerRuntimeHooks.js +0 -59
- package/lib/launcher/internal/registerRuntimeHooks.js.map +0 -1
- package/lib/launcher/internal/runTtscserver.d.ts +0 -35
- package/lib/launcher/internal/runTtscserver.js +0 -661
- package/lib/launcher/internal/runTtscserver.js.map +0 -1
- package/lib/launcher/internal/runtimeHooks.d.ts +0 -198
- package/lib/launcher/internal/runtimeHooks.js +0 -2579
- package/lib/launcher/internal/runtimeHooks.js.map +0 -1
- package/lib/launcher/internal/servedSourceMap.d.ts +0 -25
- package/lib/launcher/internal/servedSourceMap.js +0 -164
- package/lib/launcher/internal/servedSourceMap.js.map +0 -1
- package/lib/launcher/internal/singleFileOutput.d.ts +0 -16
- package/lib/launcher/internal/singleFileOutput.js +0 -103
- package/lib/launcher/internal/singleFileOutput.js.map +0 -1
- package/lib/launcher/internal/watchTopology.d.ts +0 -329
- package/lib/launcher/internal/watchTopology.js.map +0 -1
- package/lib/plugin/internal/buildSourcePlugin.d.ts +0 -298
- package/lib/plugin/internal/buildSourcePlugin.js +0 -3087
- package/lib/plugin/internal/buildSourcePlugin.js.map +0 -1
- package/lib/plugin/internal/capabilityResolutionCache.d.ts +0 -76
- package/lib/plugin/internal/capabilityResolutionCache.js +0 -224
- package/lib/plugin/internal/capabilityResolutionCache.js.map +0 -1
- package/lib/plugin/internal/descriptorProcessFailure.d.ts +0 -36
- package/lib/plugin/internal/descriptorProcessFailure.js +0 -62
- package/lib/plugin/internal/descriptorProcessFailure.js.map +0 -1
- package/lib/plugin/internal/loadProjectPlugins.d.ts +0 -75
- package/lib/plugin/internal/loadProjectPlugins.js +0 -2405
- package/lib/plugin/internal/loadProjectPlugins.js.map +0 -1
- package/src/compiler/internal/paths.ts +0 -68
- package/src/compiler/internal/project/readConfigJson.ts +0 -209
- package/src/compiler/internal/residentCheckProcess.ts +0 -259
- package/src/compiler/internal/residentTransformProcess.ts +0 -406
- package/src/compiler/internal/resolveEmittedJavaScript.ts +0 -197
- package/src/compiler/internal/runBuild.ts +0 -2345
- package/src/compiler/internal/sharedHostHelpers.ts +0 -154
- package/src/flags/parser.ts +0 -459
- package/src/internal/windowsDirectoryCaseSensitivity.ts +0 -33
- package/src/launcher/internal/registerRuntimeHooks.ts +0 -68
- package/src/launcher/internal/runTtscserver.ts +0 -842
- package/src/launcher/internal/runtimeHooks.ts +0 -3197
- package/src/launcher/internal/servedSourceMap.ts +0 -183
- package/src/launcher/internal/singleFileOutput.ts +0 -133
- package/src/plugin/internal/buildSourcePlugin.ts +0 -3993
- package/src/plugin/internal/capabilityResolutionCache.ts +0 -305
- package/src/plugin/internal/descriptorProcessFailure.ts +0 -69
- package/src/plugin/internal/loadProjectPlugins.ts +0 -3073
- package/tools/shim_audit/shim_dir_coverage_test.go +0 -25
- /package/lib/{launcher/internal/registerRuntimeHooks.d.ts → compiler/internal/transformProjectWorker.d.ts} +0 -0
|
@@ -1,1694 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.ResidentCheckWatchSession = void 0;
|
|
7
|
-
exports.runBuild = runBuild;
|
|
8
|
-
exports.planResidentCheckEntries = planResidentCheckEntries;
|
|
9
|
-
exports.bufferResidentCheckEntryRequests = bufferResidentCheckEntryRequests;
|
|
10
|
-
exports.takeResidentCheckEntryRequest = takeResidentCheckEntryRequest;
|
|
11
|
-
exports.residentCheckRequest = residentCheckRequest;
|
|
12
|
-
exports.mergeProjectInputSnapshots = mergeProjectInputSnapshots;
|
|
13
|
-
exports.parseProjectInputSnapshot = parseProjectInputSnapshot;
|
|
14
|
-
exports.isAbsoluteLocalProjectInputPath = isAbsoluteLocalProjectInputPath;
|
|
15
|
-
exports.appendBuildOutput = appendBuildOutput;
|
|
16
|
-
exports.createProcessDiagnostic = createProcessDiagnostic;
|
|
17
|
-
exports.normalizeBuildOutput = normalizeBuildOutput;
|
|
18
|
-
const node_path_1 = __importDefault(require("node:path"));
|
|
19
|
-
const schema_1 = require("../../flags/schema");
|
|
20
|
-
const projectInputPathIdentity_1 = require("../../internal/projectInputPathIdentity");
|
|
21
|
-
const resolveNodeBinary_1 = require("../../internal/resolveNodeBinary");
|
|
22
|
-
const loadProjectPlugins_1 = require("../../plugin/internal/loadProjectPlugins");
|
|
23
|
-
const createNativeProjectContextArgs_1 = require("./project/createNativeProjectContextArgs");
|
|
24
|
-
const readProjectConfig_1 = require("./project/readProjectConfig");
|
|
25
|
-
const residentCheckProcess_1 = require("./residentCheckProcess");
|
|
26
|
-
const resolveBinary_1 = require("./resolveBinary");
|
|
27
|
-
const resolveTsgo_1 = require("./resolveTsgo");
|
|
28
|
-
const sharedHostHelpers_1 = require("./sharedHostHelpers");
|
|
29
|
-
const spawnNative_1 = require("./spawnNative");
|
|
30
|
-
/**
|
|
31
|
-
* Merge extra environment variables over `process.env`, always injecting
|
|
32
|
-
* `TTSC_NODE_BINARY` so child processes can re-invoke the same Node.js binary
|
|
33
|
-
* without searching `PATH`.
|
|
34
|
-
*/
|
|
35
|
-
function mergeEnv(extra, cwd = process.cwd()) {
|
|
36
|
-
const env = {
|
|
37
|
-
...process.env,
|
|
38
|
-
...extra,
|
|
39
|
-
};
|
|
40
|
-
const node = (0, resolveNodeBinary_1.resolveNodeBinary)(env, cwd);
|
|
41
|
-
if (node === undefined)
|
|
42
|
-
delete env.TTSC_NODE_BINARY;
|
|
43
|
-
else
|
|
44
|
-
env.TTSC_NODE_BINARY = node;
|
|
45
|
-
return env;
|
|
46
|
-
}
|
|
47
|
-
function createBuildTiming(options) {
|
|
48
|
-
return {
|
|
49
|
-
enabled: hasDiagnosticsFlag(options),
|
|
50
|
-
lines: [],
|
|
51
|
-
startedAt: process.hrtime.bigint(),
|
|
52
|
-
};
|
|
53
|
-
}
|
|
54
|
-
function hasDiagnosticsFlag(options) {
|
|
55
|
-
return (hasEnabledPassthroughFlag(options, "--diagnostics") ||
|
|
56
|
-
hasEnabledPassthroughFlag(options, "--extendedDiagnostics"));
|
|
57
|
-
}
|
|
58
|
-
function hasEnabledPassthroughFlag(options, flag) {
|
|
59
|
-
const passthrough = options.passthrough ?? [];
|
|
60
|
-
for (let i = 0; i < passthrough.length; i++) {
|
|
61
|
-
const token = passthrough[i];
|
|
62
|
-
// Identity, not spelling: the user forwards their own casing and ttsc must
|
|
63
|
-
// read `--DIAGNOSTICS` the way tsgo does.
|
|
64
|
-
if ((0, schema_1.resolveFlagSpec)(token)?.name !== flag)
|
|
65
|
-
continue;
|
|
66
|
-
const equalsIndex = token.indexOf("=");
|
|
67
|
-
if (equalsIndex !== -1) {
|
|
68
|
-
return token.slice(equalsIndex + 1).toLowerCase() !== "false";
|
|
69
|
-
}
|
|
70
|
-
if (i + 1 < passthrough.length && isBooleanLiteral(passthrough[i + 1])) {
|
|
71
|
-
return passthrough[i + 1].toLowerCase() !== "false";
|
|
72
|
-
}
|
|
73
|
-
return true;
|
|
74
|
-
}
|
|
75
|
-
return false;
|
|
76
|
-
}
|
|
77
|
-
function recordTiming(timing, label, startedAt) {
|
|
78
|
-
if (!timing.enabled)
|
|
79
|
-
return;
|
|
80
|
-
timing.lines.push(`${label}: ${formatTimingSeconds(hrtimeMs(startedAt))}`);
|
|
81
|
-
}
|
|
82
|
-
function appendTimingOutput(result, timing) {
|
|
83
|
-
if (!timing.enabled)
|
|
84
|
-
return result;
|
|
85
|
-
const lines = [
|
|
86
|
-
...timing.lines,
|
|
87
|
-
`ttsc total time: ${formatTimingSeconds(hrtimeMs(timing.startedAt))}`,
|
|
88
|
-
];
|
|
89
|
-
return {
|
|
90
|
-
...result,
|
|
91
|
-
stdout: appendStdout(result.stdout, lines.join("\n") + "\n"),
|
|
92
|
-
};
|
|
93
|
-
}
|
|
94
|
-
function appendStdout(stdout, text) {
|
|
95
|
-
if (stdout.length === 0 || stdout.endsWith("\n"))
|
|
96
|
-
return stdout + text;
|
|
97
|
-
return `${stdout}\n${text}`;
|
|
98
|
-
}
|
|
99
|
-
function hrtimeMs(startedAt) {
|
|
100
|
-
return Number(process.hrtime.bigint() - startedAt) / 1e6;
|
|
101
|
-
}
|
|
102
|
-
function formatTimingSeconds(ms) {
|
|
103
|
-
return `${(ms / 1000).toFixed(3)}s`;
|
|
104
|
-
}
|
|
105
|
-
/**
|
|
106
|
-
* Build the environment for a native plugin spawn. Injects `TTSC_TSGO_BINARY`
|
|
107
|
-
* and `TTSC_TTSX_BINARY` alongside the base env from `mergeEnv`, plus
|
|
108
|
-
* `TTSC_PLUGIN_CONFIG_DIR` when the caller declared a plugin config anchor (an
|
|
109
|
-
* embedder compiling through a generated wrapper tsconfig) so config-file
|
|
110
|
-
* discovery walks the real project instead of the wrapper's temp-dir ancestry.
|
|
111
|
-
* For transform-stage plugins, also passes `TTSC_LINKED_PLUGINS_JSON`
|
|
112
|
-
* containing any linked sources so they run inside the same process as the host
|
|
113
|
-
* plugin.
|
|
114
|
-
*/
|
|
115
|
-
function nativePluginEnv(extra, execution, plugin, tsgoArgs) {
|
|
116
|
-
const env = mergeEnv({
|
|
117
|
-
...(execution.pluginConfigDir === undefined
|
|
118
|
-
? {}
|
|
119
|
-
: { TTSC_PLUGIN_CONFIG_DIR: execution.pluginConfigDir }),
|
|
120
|
-
TTSC_TSGO_BINARY: process.env.TTSC_TSGO_BINARY ?? execution.tsgo.binary,
|
|
121
|
-
TTSC_TTSX_BINARY: process.env.TTSC_TTSX_BINARY ??
|
|
122
|
-
node_path_1.default.join(__dirname, "..", "..", "launcher", "ttsx.js"),
|
|
123
|
-
...extra,
|
|
124
|
-
}, execution.projectRoot);
|
|
125
|
-
// Forwarded tsgo argv is per-invocation state this host owns, exactly like
|
|
126
|
-
// the config anchor below: publish this run's payload, or drop whatever an
|
|
127
|
-
// ancestor ttsc process left behind when this lane forwards nothing.
|
|
128
|
-
if (tsgoArgs !== undefined) {
|
|
129
|
-
env[sharedHostHelpers_1.TSGO_ARGS_ENV] = tsgoArgs;
|
|
130
|
-
}
|
|
131
|
-
else {
|
|
132
|
-
(0, sharedHostHelpers_1.clearInheritedTsgoArgs)(env, extra);
|
|
133
|
-
}
|
|
134
|
-
(0, sharedHostHelpers_1.clearInheritedSemanticConfigPath)(env, extra);
|
|
135
|
-
// The anchor is per-invocation state owned by this host: when this run
|
|
136
|
-
// declared none (and the caller's env does not name one), drop any value
|
|
137
|
-
// inherited from an ancestor ttsc process so a nested build never
|
|
138
|
-
// mis-anchors its plugins at the outer project.
|
|
139
|
-
if (execution.pluginConfigDir === undefined &&
|
|
140
|
-
extra?.TTSC_PLUGIN_CONFIG_DIR === undefined) {
|
|
141
|
-
delete env.TTSC_PLUGIN_CONFIG_DIR;
|
|
142
|
-
}
|
|
143
|
-
if (plugin?.stage === "transform") {
|
|
144
|
-
const linked = (0, sharedHostHelpers_1.linkedTransformPlugins)(execution.nativePlugins);
|
|
145
|
-
if (linked.length !== 0) {
|
|
146
|
-
env.TTSC_LINKED_PLUGINS_JSON = serializeNativePlugins(linked);
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
return env;
|
|
150
|
-
}
|
|
151
|
-
/**
|
|
152
|
-
* Run `ttsc` against a tsconfig. Returns once the binary exits so the CLI can
|
|
153
|
-
* decide how to surface diagnostics. Does not throw on non-zero exit.
|
|
154
|
-
*/
|
|
155
|
-
function runBuild(options = {}) {
|
|
156
|
-
const timing = createBuildTiming(options);
|
|
157
|
-
const result = runBuildTimed(options, timing);
|
|
158
|
-
return appendTimingOutput(result, timing);
|
|
159
|
-
}
|
|
160
|
-
/**
|
|
161
|
-
* Analysis-only watch coordinator.
|
|
162
|
-
*
|
|
163
|
-
* The selected project and compatible check-stage processes stay resident
|
|
164
|
-
* across ordinary source/data edits. A config, root-set, contributor, or plugin
|
|
165
|
-
* topology transition calls for a full reset before the next cycle. Emit and
|
|
166
|
-
* transform lanes can pass through the coordinator, but compatibility checks
|
|
167
|
-
* keep them on the established one-shot path without starting sidecars.
|
|
168
|
-
*/
|
|
169
|
-
class ResidentCheckWatchSession {
|
|
170
|
-
execution;
|
|
171
|
-
pendingChanges = new Map();
|
|
172
|
-
projectInputs;
|
|
173
|
-
processes = new Map();
|
|
174
|
-
async run(options, change = {}) {
|
|
175
|
-
if (change.reload === true)
|
|
176
|
-
this.reset();
|
|
177
|
-
const timing = createBuildTiming(options);
|
|
178
|
-
const projectFree = runProjectFreeTerminalFlag(options);
|
|
179
|
-
if (projectFree !== null) {
|
|
180
|
-
this.reset();
|
|
181
|
-
return appendTimingOutput(projectFree, timing);
|
|
182
|
-
}
|
|
183
|
-
let execution = this.execution;
|
|
184
|
-
const reusedExecution = execution !== undefined;
|
|
185
|
-
let buildOptions;
|
|
186
|
-
if (execution === undefined) {
|
|
187
|
-
const setupStartedAt = process.hrtime.bigint();
|
|
188
|
-
execution = resolveExecutionContext(options);
|
|
189
|
-
const discoveryOptions = this.captureProjectInputs(options);
|
|
190
|
-
const prepared = prepareBuildExecution(discoveryOptions, timing, execution, setupStartedAt);
|
|
191
|
-
buildOptions = prepared.buildOptions;
|
|
192
|
-
if (prepared.result !== undefined) {
|
|
193
|
-
this.reset();
|
|
194
|
-
return appendTimingOutput(prepared.result, timing);
|
|
195
|
-
}
|
|
196
|
-
if (!residentCheckExecutionIsCompatible(buildOptions, execution)) {
|
|
197
|
-
this.reset();
|
|
198
|
-
return appendTimingOutput(runPreparedBuild(options, timing, execution, buildOptions), timing);
|
|
199
|
-
}
|
|
200
|
-
this.execution = execution;
|
|
201
|
-
}
|
|
202
|
-
else {
|
|
203
|
-
buildOptions = applyProjectNoEmit(options, execution);
|
|
204
|
-
}
|
|
205
|
-
if (reusedExecution &&
|
|
206
|
-
this.refreshProjectInputTopology(options, execution)) {
|
|
207
|
-
this.reset();
|
|
208
|
-
return this.run(options);
|
|
209
|
-
}
|
|
210
|
-
const checked = await this.runCheckPlugins(buildOptions, execution, timing, change);
|
|
211
|
-
let result;
|
|
212
|
-
if (checked.status !== 0) {
|
|
213
|
-
result = appendTypeScriptDiagnosticsAfterPluginFailure(checked, buildOptions, execution);
|
|
214
|
-
}
|
|
215
|
-
else if (checkPluginsReportTypeScriptDiagnostics(execution.nativePlugins)) {
|
|
216
|
-
result = checked;
|
|
217
|
-
}
|
|
218
|
-
else {
|
|
219
|
-
result = appendBuildOutput(checked, runTsgo(execution, ["--noEmit"], buildOptions));
|
|
220
|
-
}
|
|
221
|
-
return appendTimingOutput(result, timing);
|
|
222
|
-
}
|
|
223
|
-
/** Terminate every sidecar and discard the cached selection context. */
|
|
224
|
-
dispose() {
|
|
225
|
-
this.reset();
|
|
226
|
-
}
|
|
227
|
-
reset() {
|
|
228
|
-
for (const process of this.processes.values())
|
|
229
|
-
process.dispose();
|
|
230
|
-
this.processes.clear();
|
|
231
|
-
this.pendingChanges.clear();
|
|
232
|
-
this.execution = undefined;
|
|
233
|
-
this.projectInputs = undefined;
|
|
234
|
-
}
|
|
235
|
-
captureProjectInputs(options) {
|
|
236
|
-
const onProjectInputs = options.onProjectInputs;
|
|
237
|
-
if (onProjectInputs === undefined)
|
|
238
|
-
return options;
|
|
239
|
-
return {
|
|
240
|
-
...options,
|
|
241
|
-
onProjectInputs: (snapshot) => {
|
|
242
|
-
this.projectInputs = snapshot;
|
|
243
|
-
onProjectInputs(snapshot);
|
|
244
|
-
},
|
|
245
|
-
};
|
|
246
|
-
}
|
|
247
|
-
refreshProjectInputTopology(options, execution) {
|
|
248
|
-
if (options.onProjectInputs === undefined)
|
|
249
|
-
return false;
|
|
250
|
-
const next = discoverNativeProjectInputs(options, execution);
|
|
251
|
-
const changed = this.projectInputs !== undefined &&
|
|
252
|
-
!projectInputSnapshotsEqual(this.projectInputs, next);
|
|
253
|
-
this.projectInputs = next;
|
|
254
|
-
options.onProjectInputs(next);
|
|
255
|
-
return changed;
|
|
256
|
-
}
|
|
257
|
-
async runCheckPlugins(options, execution, timing, change) {
|
|
258
|
-
let out = {
|
|
259
|
-
diagnostics: [],
|
|
260
|
-
status: 0,
|
|
261
|
-
stderr: "",
|
|
262
|
-
stdout: "",
|
|
263
|
-
};
|
|
264
|
-
const tsgoArgs = createNativeTsgoArgs(options);
|
|
265
|
-
const checks = planResidentCheckEntries(execution.nativePlugins, (plugin) => createNativeCheckArgs(execution, options, plugin), tsgoArgs);
|
|
266
|
-
const request = residentCheckRequest(change, execution.projectRoot);
|
|
267
|
-
// Buffer the cycle for every resident plugin before running any of them.
|
|
268
|
-
// An earlier plugin may fail and short-circuit diagnostics, but a later
|
|
269
|
-
// sidecar must still receive every filesystem transition when it resumes.
|
|
270
|
-
bufferResidentCheckEntryRequests(this.pendingChanges, checks, request);
|
|
271
|
-
for (const { args, entryIndex, key, plugin } of checks) {
|
|
272
|
-
let result;
|
|
273
|
-
if (key === undefined) {
|
|
274
|
-
result = runNativePluginCommand(plugin, args, options, execution, "ttsc.check", timing, `ttsc check plugin ${plugin.name} time`, tsgoArgs);
|
|
275
|
-
}
|
|
276
|
-
else {
|
|
277
|
-
const startedAt = process.hrtime.bigint();
|
|
278
|
-
let resident = this.processes.get(key);
|
|
279
|
-
if (resident === undefined) {
|
|
280
|
-
resident = new residentCheckProcess_1.ResidentCheckProcess({
|
|
281
|
-
args: ["check-serve", ...args.slice(1)],
|
|
282
|
-
binary: plugin.binary,
|
|
283
|
-
cwd: execution.projectRoot,
|
|
284
|
-
env: nativePluginEnv(options.env, execution, plugin, tsgoArgs),
|
|
285
|
-
});
|
|
286
|
-
this.processes.set(key, resident);
|
|
287
|
-
}
|
|
288
|
-
try {
|
|
289
|
-
const reply = await resident.request(takeResidentCheckEntryRequest(this.pendingChanges, entryIndex));
|
|
290
|
-
result = normalizeBuildOutput({
|
|
291
|
-
status: reply.status,
|
|
292
|
-
stderr: reply.stderr,
|
|
293
|
-
stdout: reply.stdout,
|
|
294
|
-
}, execution.projectRoot);
|
|
295
|
-
}
|
|
296
|
-
catch {
|
|
297
|
-
resident.dispose();
|
|
298
|
-
this.processes.delete(key);
|
|
299
|
-
// The one-shot fallback observes the complete current filesystem,
|
|
300
|
-
// and a later sidecar starts cold, so neither needs old deltas.
|
|
301
|
-
// A capability-aware host may still disappear or violate framing.
|
|
302
|
-
// Preserve correctness by running the established one-shot command
|
|
303
|
-
// for this cycle; the next cycle gets one clean respawn attempt.
|
|
304
|
-
result = runNativePluginCommand(plugin, args, options, execution, "ttsc.check", { ...timing, enabled: false }, "");
|
|
305
|
-
}
|
|
306
|
-
recordTiming(timing, `ttsc check plugin ${plugin.name} time`, startedAt);
|
|
307
|
-
}
|
|
308
|
-
out = appendBuildOutput(out, result);
|
|
309
|
-
if (result.status !== 0)
|
|
310
|
-
return out;
|
|
311
|
-
}
|
|
312
|
-
return out;
|
|
313
|
-
}
|
|
314
|
-
}
|
|
315
|
-
exports.ResidentCheckWatchSession = ResidentCheckWatchSession;
|
|
316
|
-
function projectInputSnapshotsEqual(left, right) {
|
|
317
|
-
const leftReloadFiles = left.reloadFiles ?? [];
|
|
318
|
-
const rightReloadFiles = right.reloadFiles ?? [];
|
|
319
|
-
const leftReloadDirectories = left.reloadDirectories ?? [];
|
|
320
|
-
const rightReloadDirectories = right.reloadDirectories ?? [];
|
|
321
|
-
return (left.root === right.root &&
|
|
322
|
-
left.files.length === right.files.length &&
|
|
323
|
-
left.globs.length === right.globs.length &&
|
|
324
|
-
leftReloadDirectories.length === rightReloadDirectories.length &&
|
|
325
|
-
leftReloadFiles.length === rightReloadFiles.length &&
|
|
326
|
-
left.files.every((value, index) => value === right.files[index]) &&
|
|
327
|
-
left.globs.every((value, index) => value === right.globs[index]) &&
|
|
328
|
-
leftReloadDirectories.every((value, index) => value === rightReloadDirectories[index]) &&
|
|
329
|
-
leftReloadFiles.every((value, index) => value === rightReloadFiles[index]));
|
|
330
|
-
}
|
|
331
|
-
function residentCheckExecutionIsCompatible(options, execution) {
|
|
332
|
-
return (options.emit === false &&
|
|
333
|
-
options.fix !== true &&
|
|
334
|
-
options.format !== true &&
|
|
335
|
-
forwardsTerminalTsgoFlag(options) === false &&
|
|
336
|
-
execution.nativePlugins.every((plugin) => plugin.stage === "check"));
|
|
337
|
-
}
|
|
338
|
-
function residentCheckProcessKey(plugin, args, tsgoArgs) {
|
|
339
|
-
return `${plugin.binary}\0${plugin.name}\0${JSON.stringify(args)}\0${tsgoArgs ?? ""}`;
|
|
340
|
-
}
|
|
341
|
-
/**
|
|
342
|
-
* Plan every configured check entry while sharing resident processes only by
|
|
343
|
-
* binary/name/argument identity.
|
|
344
|
-
*/
|
|
345
|
-
function planResidentCheckEntries(plugins, createArgs,
|
|
346
|
-
// Part of the process identity even though it never appears in argv: the
|
|
347
|
-
// forwarded tsgo payload rides the environment, and a resident process holds
|
|
348
|
-
// the compiler options it was started with. Two cycles that forward different
|
|
349
|
-
// flags must not share one warm Program.
|
|
350
|
-
tsgoArgs) {
|
|
351
|
-
return plugins
|
|
352
|
-
.filter((candidate) => candidate.stage === "check")
|
|
353
|
-
.map((plugin, entryIndex) => {
|
|
354
|
-
const args = createArgs(plugin);
|
|
355
|
-
return {
|
|
356
|
-
args,
|
|
357
|
-
entryIndex,
|
|
358
|
-
key: plugin.capabilities?.residentCheck === true
|
|
359
|
-
? residentCheckProcessKey(plugin, args, tsgoArgs)
|
|
360
|
-
: undefined,
|
|
361
|
-
plugin,
|
|
362
|
-
};
|
|
363
|
-
});
|
|
364
|
-
}
|
|
365
|
-
/** Retain one complete change stream per configured resident check entry. */
|
|
366
|
-
function bufferResidentCheckEntryRequests(pending, checks, request) {
|
|
367
|
-
for (const check of checks) {
|
|
368
|
-
if (check.key === undefined)
|
|
369
|
-
continue;
|
|
370
|
-
pending.set(check.entryIndex, mergeResidentCheckRequests(pending.get(check.entryIndex), request));
|
|
371
|
-
}
|
|
372
|
-
}
|
|
373
|
-
/** Consume exactly one configured entry's buffered request. */
|
|
374
|
-
function takeResidentCheckEntryRequest(pending, entryIndex) {
|
|
375
|
-
const request = pending.get(entryIndex);
|
|
376
|
-
if (request === undefined) {
|
|
377
|
-
throw new Error(`ttsc: resident check entry ${String(entryIndex)} has no buffered request`);
|
|
378
|
-
}
|
|
379
|
-
pending.delete(entryIndex);
|
|
380
|
-
return request;
|
|
381
|
-
}
|
|
382
|
-
function residentCheckRequest(change, cwd) {
|
|
383
|
-
const normalize = (values) => [...new Set(values?.map((value) => node_path_1.default.resolve(cwd, value)) ?? [])].sort();
|
|
384
|
-
const changed = normalize(change.changed);
|
|
385
|
-
const external = normalize(change.external);
|
|
386
|
-
return {
|
|
387
|
-
...(change.invalidate === true ? { invalidate: true } : {}),
|
|
388
|
-
...(changed.length === 0 ? {} : { changed }),
|
|
389
|
-
...(external.length === 0 ? {} : { external }),
|
|
390
|
-
};
|
|
391
|
-
}
|
|
392
|
-
function mergeResidentCheckRequests(previous, current) {
|
|
393
|
-
const merge = (left, right) => [...new Set([...(left ?? []), ...(right ?? [])])].sort();
|
|
394
|
-
const changed = merge(previous?.changed, current.changed);
|
|
395
|
-
const external = merge(previous?.external, current.external);
|
|
396
|
-
return {
|
|
397
|
-
...(changed.length === 0 ? {} : { changed }),
|
|
398
|
-
...(external.length === 0 ? {} : { external }),
|
|
399
|
-
...(previous?.invalidate === true || current.invalidate === true
|
|
400
|
-
? { invalidate: true }
|
|
401
|
-
: {}),
|
|
402
|
-
};
|
|
403
|
-
}
|
|
404
|
-
function runBuildTimed(options, timing) {
|
|
405
|
-
const projectFree = runProjectFreeTerminalFlag(options);
|
|
406
|
-
if (projectFree !== null)
|
|
407
|
-
return projectFree;
|
|
408
|
-
const setupStartedAt = process.hrtime.bigint();
|
|
409
|
-
const execution = resolveExecutionContext(options);
|
|
410
|
-
return runBuildWithExecution(options, timing, execution, setupStartedAt);
|
|
411
|
-
}
|
|
412
|
-
function runBuildWithExecution(options, timing, execution, setupStartedAt) {
|
|
413
|
-
const prepared = prepareBuildExecution(options, timing, execution, setupStartedAt);
|
|
414
|
-
if (prepared.result !== undefined)
|
|
415
|
-
return prepared.result;
|
|
416
|
-
return runPreparedBuild(options, timing, execution, prepared.buildOptions);
|
|
417
|
-
}
|
|
418
|
-
function prepareBuildExecution(options, timing, execution, setupStartedAt) {
|
|
419
|
-
if (execution.nativePlugins.length > 0 ||
|
|
420
|
-
execution.pluginSetupFailure !== undefined) {
|
|
421
|
-
recordTiming(timing, "ttsc plugin setup time", setupStartedAt);
|
|
422
|
-
}
|
|
423
|
-
const buildOptions = applyProjectNoEmit(options, execution);
|
|
424
|
-
if (execution.pluginSetupFailure !== undefined) {
|
|
425
|
-
return {
|
|
426
|
-
buildOptions,
|
|
427
|
-
result: appendTypeScriptDiagnosticsAfterPluginFailure(execution.pluginSetupFailure, buildOptions, execution),
|
|
428
|
-
};
|
|
429
|
-
}
|
|
430
|
-
if (options.onProjectInputs !== undefined) {
|
|
431
|
-
options.onProjectInputs(discoverNativeProjectInputs(options, execution));
|
|
432
|
-
}
|
|
433
|
-
return { buildOptions };
|
|
434
|
-
}
|
|
435
|
-
function runPreparedBuild(options, timing, execution, buildOptions) {
|
|
436
|
-
if (execution.nativePlugins.length > 0) {
|
|
437
|
-
const compilers = execution.nativePlugins.filter((plugin) => plugin.stage === "transform");
|
|
438
|
-
const checked = runNativeCheckPlugins(buildOptions, execution, timing);
|
|
439
|
-
if (checked.status !== 0) {
|
|
440
|
-
return appendTypeScriptDiagnosticsAfterPluginFailure(checked, buildOptions, execution);
|
|
441
|
-
}
|
|
442
|
-
if (buildOptions.emit === false) {
|
|
443
|
-
if (buildOptions.format === true) {
|
|
444
|
-
// Format mode is write-only by contract: the lint sidecar
|
|
445
|
-
// already rewrote source files and reported nothing. Running
|
|
446
|
-
// tsgo --noEmit OR a transform compiler afterwards would either
|
|
447
|
-
// surface unrelated type errors as if they were format failures
|
|
448
|
-
// (tsgo path) or apply transform-stage rewrites on top of the
|
|
449
|
-
// formatted source (transform path), both of which break the
|
|
450
|
-
// documented "ttsc format only formats" guarantee. The
|
|
451
|
-
// short-circuit fires before either branch so format mode is a
|
|
452
|
-
// single concern regardless of how many compilers the project
|
|
453
|
-
// configures. Callers that want a recheck or a transform pass
|
|
454
|
-
// after format should run `ttsc check` / `ttsc build` as a
|
|
455
|
-
// separate invocation.
|
|
456
|
-
return checked;
|
|
457
|
-
}
|
|
458
|
-
if (compilers.length !== 0) {
|
|
459
|
-
(0, sharedHostHelpers_1.assertSharedHostCompatibility)(compilers, "emit");
|
|
460
|
-
const compiled = buildWithNativeCompilerPlugins(buildOptions, execution, compilers, timing);
|
|
461
|
-
const result = appendBuildOutput(checked, compiled);
|
|
462
|
-
return compiled.status === 0
|
|
463
|
-
? result
|
|
464
|
-
: appendTypeScriptDiagnosticsAfterPluginFailure(result, buildOptions, execution);
|
|
465
|
-
}
|
|
466
|
-
if (checkPluginsReportTypeScriptDiagnostics(execution.nativePlugins)) {
|
|
467
|
-
return checked;
|
|
468
|
-
}
|
|
469
|
-
return appendBuildOutput(checked, runTsgo(execution, ["--noEmit"], buildOptions));
|
|
470
|
-
}
|
|
471
|
-
let result;
|
|
472
|
-
if (compilers.length !== 0) {
|
|
473
|
-
(0, sharedHostHelpers_1.assertSharedHostCompatibility)(compilers, "emit");
|
|
474
|
-
const compiled = buildWithNativeCompilerPlugins(buildOptions, execution, compilers, timing);
|
|
475
|
-
result = appendBuildOutput(checked, compiled);
|
|
476
|
-
if (compiled.status !== 0) {
|
|
477
|
-
result = appendTypeScriptDiagnosticsAfterPluginFailure(result, buildOptions, execution);
|
|
478
|
-
}
|
|
479
|
-
}
|
|
480
|
-
else {
|
|
481
|
-
if (buildOptions.skipDiagnosticsCheck !== true &&
|
|
482
|
-
!checkPluginsReportTypeScriptDiagnostics(execution.nativePlugins) &&
|
|
483
|
-
!forwardsTerminalTsgoFlag(buildOptions)) {
|
|
484
|
-
const tsgoChecked = runTsgo(execution, ["--noEmit"], buildOptions);
|
|
485
|
-
if (tsgoChecked.status !== 0) {
|
|
486
|
-
return appendBuildOutput(checked, tsgoChecked);
|
|
487
|
-
}
|
|
488
|
-
}
|
|
489
|
-
const args = createTsgoBuildArgs(execution, buildOptions, {
|
|
490
|
-
listEmittedFiles: buildOptions.forceListEmittedFiles === true,
|
|
491
|
-
});
|
|
492
|
-
const emitted = runTsgoBuild(execution, buildOptions, args);
|
|
493
|
-
result = appendBuildOutput(checked, emitted);
|
|
494
|
-
}
|
|
495
|
-
return result;
|
|
496
|
-
}
|
|
497
|
-
if (buildOptions.format === true) {
|
|
498
|
-
// Format mode is write-only by contract — see the matching
|
|
499
|
-
// short-circuit in the with-native-plugins branch above. When no
|
|
500
|
-
// native plugin is loaded there is nothing for `ttsc format` to
|
|
501
|
-
// rewrite, so emit an empty success result rather than falling
|
|
502
|
-
// through to a tsgo pass that would surface unrelated type errors
|
|
503
|
-
// as if they were format failures.
|
|
504
|
-
return {
|
|
505
|
-
diagnostics: [],
|
|
506
|
-
status: 0,
|
|
507
|
-
stdout: "",
|
|
508
|
-
stderr: "",
|
|
509
|
-
};
|
|
510
|
-
}
|
|
511
|
-
const args = createTsgoBuildArgs(execution, buildOptions, {
|
|
512
|
-
// `--verbose` promises the emitted-file list on every lane, and the list
|
|
513
|
-
// only exists if tsgo is asked for it. ttsc adds the flag for itself here
|
|
514
|
-
// exactly as it does for `forceListEmittedFiles`, and strips the raw
|
|
515
|
-
// `TSFILE:` lines back out below.
|
|
516
|
-
listEmittedFiles: buildOptions.emit !== false &&
|
|
517
|
-
(buildOptions.forceListEmittedFiles === true ||
|
|
518
|
-
buildOptions.quiet === false),
|
|
519
|
-
noEmitOnError: buildOptions.emit !== false &&
|
|
520
|
-
buildOptions.skipDiagnosticsCheck !== true &&
|
|
521
|
-
!forwardsTerminalTsgoFlag(buildOptions),
|
|
522
|
-
});
|
|
523
|
-
return runTsgoBuild(execution, buildOptions, args);
|
|
524
|
-
}
|
|
525
|
-
/**
|
|
526
|
-
* Answer a forwarded terminal flag whose meaning precedes a project, when no
|
|
527
|
-
* project can be resolved.
|
|
528
|
-
*
|
|
529
|
-
* `ttsc --init` exists to write the starter `tsconfig.json`, and `ttsc --all` /
|
|
530
|
-
* `ttsc -?` only print tsgo's help — none of them needs a project, yet all
|
|
531
|
-
* three died in project resolution because that layer ran first and
|
|
532
|
-
* unconditionally. The classification is `FLAG_SCHEMA`'s (`terminal` +
|
|
533
|
-
* `projectFree`), so marking a further flag project-free needs no edit here.
|
|
534
|
-
*
|
|
535
|
-
* A resolvable project keeps the established lane untouched: the build path
|
|
536
|
-
* still forwards the flag with `-p <tsconfig>` from the project root, so `ttsc
|
|
537
|
-
* --init` inside an existing project still reports tsgo's TS5054 instead of
|
|
538
|
-
* writing a second config into the current directory. Returns `null` when this
|
|
539
|
-
* lane does not apply.
|
|
540
|
-
*/
|
|
541
|
-
function runProjectFreeTerminalFlag(options) {
|
|
542
|
-
if (!forwardsProjectFreeTerminalTsgoFlag(options))
|
|
543
|
-
return null;
|
|
544
|
-
if (options.resolvedProject !== undefined)
|
|
545
|
-
return null;
|
|
546
|
-
const cwd = node_path_1.default.resolve(options.cwd ?? process.cwd());
|
|
547
|
-
try {
|
|
548
|
-
(0, readProjectConfig_1.readProjectConfig)({
|
|
549
|
-
cwd,
|
|
550
|
-
projectRoot: options.projectRoot,
|
|
551
|
-
tsconfig: options.tsconfig,
|
|
552
|
-
});
|
|
553
|
-
return null;
|
|
554
|
-
}
|
|
555
|
-
catch {
|
|
556
|
-
// Any resolution failure takes this branch, not only "not found": a
|
|
557
|
-
// malformed config and an explicitly named missing `-p` path are equally
|
|
558
|
-
// beside the point for a flag whose meaning does not presuppose a project.
|
|
559
|
-
// Forward it to tsgo from the invocation directory instead of failing.
|
|
560
|
-
}
|
|
561
|
-
const tsgo = (0, resolveTsgo_1.resolveTsgo)({ ...options, cwd });
|
|
562
|
-
const res = (0, spawnNative_1.spawnNative)(tsgo.binary, [...(options.passthrough ?? [])], {
|
|
563
|
-
cwd,
|
|
564
|
-
env: mergeEnv(options.env, cwd),
|
|
565
|
-
encoding: "utf8",
|
|
566
|
-
});
|
|
567
|
-
if (res.error) {
|
|
568
|
-
throw new Error(`ttsc: failed to spawn ${tsgo.binary}: ${res.error.message}`);
|
|
569
|
-
}
|
|
570
|
-
return normalizeBuildOutput({
|
|
571
|
-
status: res.status ?? 1,
|
|
572
|
-
stdout: (0, spawnNative_1.outputText)(res.stdout),
|
|
573
|
-
stderr: (0, spawnNative_1.outputText)(res.stderr),
|
|
574
|
-
}, cwd);
|
|
575
|
-
}
|
|
576
|
-
/**
|
|
577
|
-
* A tsconfig-level `noEmit: true` is an analysis-only build unless the user
|
|
578
|
-
* explicitly asks `ttsc --emit` to override it. Treat it like CLI `--noEmit`
|
|
579
|
-
* before composing tsgo/native-host arguments so ttsc does not add emit-only
|
|
580
|
-
* guards around projects that cannot emit.
|
|
581
|
-
*/
|
|
582
|
-
function applyProjectNoEmit(options, execution) {
|
|
583
|
-
if (options.emit !== undefined || execution.projectNoEmit !== true) {
|
|
584
|
-
return options;
|
|
585
|
-
}
|
|
586
|
-
return { ...options, emit: false };
|
|
587
|
-
}
|
|
588
|
-
function checkPluginsReportTypeScriptDiagnostics(plugins) {
|
|
589
|
-
return plugins.some((plugin) => plugin.stage === "check" && plugin.reportsTypeScriptDiagnostics === true);
|
|
590
|
-
}
|
|
591
|
-
/**
|
|
592
|
-
* Preserve a failed plugin's output and status while collecting TypeScript
|
|
593
|
-
* diagnostics through an independent no-emit pass.
|
|
594
|
-
*
|
|
595
|
-
* A sidecar can fail before it loads the project Program, including when a Go
|
|
596
|
-
* panic or another runtime error terminates the process. The plugin failure
|
|
597
|
-
* must still block emit, but it must not hide unrelated errors in the user's
|
|
598
|
-
* TypeScript source. The fallback runs only after a plugin failure, skips modes
|
|
599
|
-
* whose contract intentionally omits diagnostics, and avoids appending a batch
|
|
600
|
-
* the plugin already reported itself.
|
|
601
|
-
*/
|
|
602
|
-
function appendTypeScriptDiagnosticsAfterPluginFailure(failure, options, execution) {
|
|
603
|
-
if (options.format === true ||
|
|
604
|
-
options.skipDiagnosticsCheck === true ||
|
|
605
|
-
forwardsTerminalTsgoFlag(options)) {
|
|
606
|
-
return failure;
|
|
607
|
-
}
|
|
608
|
-
const typechecked = runTsgo(execution, ["--noEmit"], createPluginFailureTypecheckOptions(options));
|
|
609
|
-
const fallback = filterReportedTypeScriptDiagnostics(failure, typechecked, execution.projectRoot);
|
|
610
|
-
if (fallback === null) {
|
|
611
|
-
return failure;
|
|
612
|
-
}
|
|
613
|
-
// Structured consumers (the public API's `IFailure.diagnostics`) never see
|
|
614
|
-
// stdout/stderr, so a plugin failure that reported no parsable diagnostics
|
|
615
|
-
// must be seeded as one before recovered TypeScript diagnostics are appended
|
|
616
|
-
// — otherwise the recovery would replace the plugin error with unrelated
|
|
617
|
-
// type errors instead of surfacing both.
|
|
618
|
-
const seeded = failure.diagnostics.length === 0
|
|
619
|
-
? { ...failure, diagnostics: [createProcessDiagnostic(failure)] }
|
|
620
|
-
: failure;
|
|
621
|
-
const status = failure.status;
|
|
622
|
-
return {
|
|
623
|
-
...appendBuildOutput(seeded, fallback),
|
|
624
|
-
status,
|
|
625
|
-
};
|
|
626
|
-
}
|
|
627
|
-
/**
|
|
628
|
-
* Make the recovery pass parseable regardless of the user's display flags. This
|
|
629
|
-
* is an internal second pass, so plain output is required to remove only
|
|
630
|
-
* diagnostics that the failed plugin already printed.
|
|
631
|
-
*/
|
|
632
|
-
function createPluginFailureTypecheckOptions(options) {
|
|
633
|
-
const passthrough = [];
|
|
634
|
-
for (let i = 0; i < (options.passthrough?.length ?? 0); i++) {
|
|
635
|
-
const token = options.passthrough[i];
|
|
636
|
-
if ((0, schema_1.resolveFlagSpec)(token)?.name === "--pretty") {
|
|
637
|
-
// `--pretty` is boolean: it owns a following token only when that token
|
|
638
|
-
// is the literal `true`/`false`, and the inline form carries its own.
|
|
639
|
-
if (!token.includes("=") &&
|
|
640
|
-
isBooleanLiteral(options.passthrough[i + 1] ?? "")) {
|
|
641
|
-
i++;
|
|
642
|
-
}
|
|
643
|
-
continue;
|
|
644
|
-
}
|
|
645
|
-
passthrough.push(token);
|
|
646
|
-
}
|
|
647
|
-
return {
|
|
648
|
-
...options,
|
|
649
|
-
passthrough,
|
|
650
|
-
structuredDiagnostics: true,
|
|
651
|
-
};
|
|
652
|
-
}
|
|
653
|
-
/** Return only fallback diagnostics the failed plugin did not already report. */
|
|
654
|
-
function filterReportedTypeScriptDiagnostics(failure, typechecked, cwd) {
|
|
655
|
-
if (typechecked.diagnostics.length === 0) {
|
|
656
|
-
return typechecked.status === 0 ? null : typechecked;
|
|
657
|
-
}
|
|
658
|
-
const diagnostics = typechecked.diagnostics.filter((diagnostic) => !failure.diagnostics.some((existing) => compilerDiagnosticsEqual(existing, diagnostic)));
|
|
659
|
-
if (diagnostics.length === 0)
|
|
660
|
-
return null;
|
|
661
|
-
if (diagnostics.length === typechecked.diagnostics.length)
|
|
662
|
-
return typechecked;
|
|
663
|
-
return {
|
|
664
|
-
...typechecked,
|
|
665
|
-
diagnostics,
|
|
666
|
-
stderr: filterCompilerDiagnosticText(typechecked.stderr, diagnostics, cwd),
|
|
667
|
-
stdout: filterCompilerDiagnosticText(typechecked.stdout, diagnostics, cwd),
|
|
668
|
-
};
|
|
669
|
-
}
|
|
670
|
-
/** Remove diagnostic lines absent from the selected structured result. */
|
|
671
|
-
function filterCompilerDiagnosticText(text, diagnostics, cwd) {
|
|
672
|
-
const out = [];
|
|
673
|
-
let keepContinuation = true;
|
|
674
|
-
for (const line of text.split(/\r?\n/)) {
|
|
675
|
-
const plain = stripAnsi(line);
|
|
676
|
-
const diagnostic = parseDiagnosticLine(plain, cwd);
|
|
677
|
-
if (diagnostic !== null) {
|
|
678
|
-
keepContinuation = diagnostics.some((selected) => compilerDiagnosticsEqual(selected, diagnostic));
|
|
679
|
-
if (keepContinuation)
|
|
680
|
-
out.push(line);
|
|
681
|
-
continue;
|
|
682
|
-
}
|
|
683
|
-
if (/^Found\s+\d+\s+errors?/i.test(plain))
|
|
684
|
-
continue;
|
|
685
|
-
if (!keepContinuation && /^\s+/.test(line))
|
|
686
|
-
continue;
|
|
687
|
-
keepContinuation = true;
|
|
688
|
-
out.push(line);
|
|
689
|
-
}
|
|
690
|
-
return out.join("\n");
|
|
691
|
-
}
|
|
692
|
-
/** Compare normalized compiler diagnostics before appending fallback output. */
|
|
693
|
-
function compilerDiagnosticsEqual(left, right) {
|
|
694
|
-
return (left.category === right.category &&
|
|
695
|
-
left.code === right.code &&
|
|
696
|
-
left.file === right.file &&
|
|
697
|
-
diagnosticPositionsEqual(left, right) &&
|
|
698
|
-
diagnosticHeadline(left.messageText) ===
|
|
699
|
-
diagnosticHeadline(right.messageText));
|
|
700
|
-
}
|
|
701
|
-
/** Compare offsets when available, otherwise compare rendered line/column. */
|
|
702
|
-
function diagnosticPositionsEqual(left, right) {
|
|
703
|
-
if (left.start !== undefined && right.start !== undefined) {
|
|
704
|
-
return left.start === right.start;
|
|
705
|
-
}
|
|
706
|
-
return left.line === right.line && left.character === right.character;
|
|
707
|
-
}
|
|
708
|
-
/** Remove pretty-rendered source context from a diagnostic message. */
|
|
709
|
-
function diagnosticHeadline(message) {
|
|
710
|
-
return message.split(/\r?\n/, 1)[0].trim();
|
|
711
|
-
}
|
|
712
|
-
/**
|
|
713
|
-
* Report whether the caller forwarded a print-and-exit tsgo flag
|
|
714
|
-
* (`--showConfig`, `--listFilesOnly`, `--all`, `--init`, `-?`), so ttsc can
|
|
715
|
-
* avoid adding compile-only flags to a command that is not going to compile.
|
|
716
|
-
*
|
|
717
|
-
* Schema-derived, and resolved by flag identity rather than by exact spelling:
|
|
718
|
-
* `resolveFlagSpec` applies the one normalization the parsing engine and the
|
|
719
|
-
* generated Go allow-lists use, so `--showconfig` classifies exactly like
|
|
720
|
-
* `--showConfig`. Adding a new terminal flag means editing `schema.ts` and
|
|
721
|
-
* re-running `pnpm run gen:flags`; this predicate needs no edit, and it grows
|
|
722
|
-
* no normalization of its own for the next consumer to forget.
|
|
723
|
-
*/
|
|
724
|
-
function forwardsTerminalTsgoFlag(options) {
|
|
725
|
-
return (options.passthrough?.some((token) => (0, schema_1.resolveFlagSpec)(token)?.terminal === true) ?? false);
|
|
726
|
-
}
|
|
727
|
-
/**
|
|
728
|
-
* Report whether the caller forwarded a terminal flag whose meaning does not
|
|
729
|
-
* presuppose a resolved project (`--init`, `--all`, `-?`).
|
|
730
|
-
*
|
|
731
|
-
* Derived from `FLAG_SCHEMA[*].projectFree`, through the same identity
|
|
732
|
-
* resolution as every other classification — never a literal list of flag names
|
|
733
|
-
* beside this branch, which is the shape that let terminal-flag awareness exist
|
|
734
|
-
* in one layer and be missing from the layer above it.
|
|
735
|
-
*/
|
|
736
|
-
function forwardsProjectFreeTerminalTsgoFlag(options) {
|
|
737
|
-
return (options.passthrough?.some((token) => {
|
|
738
|
-
const flag = (0, schema_1.resolveFlagSpec)(token);
|
|
739
|
-
return flag?.terminal === true && flag.projectFree === true;
|
|
740
|
-
}) ?? false);
|
|
741
|
-
}
|
|
742
|
-
/**
|
|
743
|
-
* Report whether the caller forwarded a flag ttsc adds to tsgo internally —
|
|
744
|
-
* e.g. `--listEmittedFiles` (ttsc adds it to learn emitted paths) or `--noEmit`
|
|
745
|
-
* (ttsc adds it for the pre-emit type-check). When the user also forwards the
|
|
746
|
-
* same flag, post-processing must keep the user-visible effect intact instead
|
|
747
|
-
* of stripping it as ttsc-internal noise.
|
|
748
|
-
*
|
|
749
|
-
* Schema-derived: `FLAG_SCHEMA[*].internalShadow === true`. RC-2 from the RCA
|
|
750
|
-
* (RCA section 3, `--listEmittedFiles` / `--showConfig` swallowed): the
|
|
751
|
-
* per-flag `passthrough.includes("…")` check is now one structural lookup
|
|
752
|
-
* against the schema, not one bespoke `if` per shadow flag.
|
|
753
|
-
*/
|
|
754
|
-
function forwardsInternalShadowFlag(options, flag) {
|
|
755
|
-
const passthrough = options.passthrough;
|
|
756
|
-
if (passthrough === undefined)
|
|
757
|
-
return false;
|
|
758
|
-
// Resolution covers the bare form (`--pretty`), the inline-value form
|
|
759
|
-
// (`--pretty=true`), and every casing tsgo accepts (`--PRETTY`) — the
|
|
760
|
-
// launcher forwards the user's own spelling verbatim, so comparing raw
|
|
761
|
-
// strings would miss a spelling tsgo honours.
|
|
762
|
-
return passthrough.some((token) => {
|
|
763
|
-
const spec = (0, schema_1.resolveFlagSpec)(token);
|
|
764
|
-
return spec?.internalShadow === true && spec.name === flag;
|
|
765
|
-
});
|
|
766
|
-
}
|
|
767
|
-
/**
|
|
768
|
-
* Dispatch a build through the shared-host native plugin. The host plugin is
|
|
769
|
-
* the one that owns the process (non-linked); all other transform plugins ride
|
|
770
|
-
* inside it via the `--plugins-json` flag.
|
|
771
|
-
*/
|
|
772
|
-
function buildWithNativeCompilerPlugins(options, execution, plugins, timing) {
|
|
773
|
-
const host = (0, sharedHostHelpers_1.selectSharedHostPlugin)(plugins);
|
|
774
|
-
return runNativePluginCommand(host, createNativeBuildArgs(execution, options, plugins), options, execution, "ttsc.build", timing, transformHostTimingLabel(plugins), createNativeBuildTsgoArgs(execution, options));
|
|
775
|
-
}
|
|
776
|
-
/**
|
|
777
|
-
* Run `tsgo -p <tsconfig> [extraArgs]` and return the normalized result. Used
|
|
778
|
-
* for the no-emit type-check pass that precedes file emission.
|
|
779
|
-
*/
|
|
780
|
-
function runTsgo(execution, extraArgs, options) {
|
|
781
|
-
const res = (0, spawnNative_1.spawnNative)(execution.tsgo.binary, [
|
|
782
|
-
"-p",
|
|
783
|
-
execution.tsconfig,
|
|
784
|
-
...extraArgs,
|
|
785
|
-
...createTsgoDiagnosticArgs(options),
|
|
786
|
-
...createTsgoThreadingArgs(options),
|
|
787
|
-
...(options.passthrough ?? []),
|
|
788
|
-
], {
|
|
789
|
-
cwd: execution.projectRoot,
|
|
790
|
-
env: mergeEnv(options.env, execution.projectRoot),
|
|
791
|
-
encoding: "utf8",
|
|
792
|
-
});
|
|
793
|
-
if (res.error) {
|
|
794
|
-
throw new Error("ttsc: failed to spawn " +
|
|
795
|
-
execution.tsgo.binary +
|
|
796
|
-
": " +
|
|
797
|
-
res.error.message);
|
|
798
|
-
}
|
|
799
|
-
return normalizeBuildOutput({
|
|
800
|
-
status: res.status ?? 1,
|
|
801
|
-
stdout: (0, spawnNative_1.outputText)(res.stdout),
|
|
802
|
-
stderr: (0, spawnNative_1.outputText)(res.stderr),
|
|
803
|
-
}, execution.projectRoot);
|
|
804
|
-
}
|
|
805
|
-
/**
|
|
806
|
-
* Run `tsgo` with the full emit arguments and parse `TSFILE:` lines from stdout
|
|
807
|
-
* into `emittedFiles`. The TSFILE lines are stripped before the result is
|
|
808
|
-
* returned so they do not appear in the user-facing output.
|
|
809
|
-
*/
|
|
810
|
-
function runTsgoBuild(execution, options, args) {
|
|
811
|
-
const res = (0, spawnNative_1.spawnNative)(execution.tsgo.binary, args, {
|
|
812
|
-
cwd: execution.projectRoot,
|
|
813
|
-
env: mergeEnv(options.env, execution.projectRoot),
|
|
814
|
-
encoding: "utf8",
|
|
815
|
-
});
|
|
816
|
-
if (res.error) {
|
|
817
|
-
throw new Error("ttsc.build: failed to spawn " +
|
|
818
|
-
execution.tsgo.binary +
|
|
819
|
-
": " +
|
|
820
|
-
res.error.message);
|
|
821
|
-
}
|
|
822
|
-
const result = {
|
|
823
|
-
status: res.status ?? 1,
|
|
824
|
-
stdout: (0, spawnNative_1.outputText)(res.stdout),
|
|
825
|
-
stderr: (0, spawnNative_1.outputText)(res.stderr),
|
|
826
|
-
};
|
|
827
|
-
const emittedFiles = parseEmittedFiles(result.stdout);
|
|
828
|
-
// The `TSFILE:` lines are tsgo's `--listEmittedFiles` output. ttsc adds that
|
|
829
|
-
// flag internally to learn the emitted paths and strips the lines back out
|
|
830
|
-
// as noise — but when the user themselves forwarded `--listEmittedFiles`,
|
|
831
|
-
// the listing is what they asked for, so it must survive to stdout.
|
|
832
|
-
// The lookup is schema-driven (FLAG_SCHEMA marks `--listEmittedFiles` with
|
|
833
|
-
// `internalShadow: true`); see `forwardsInternalShadowFlag` for the RC-2
|
|
834
|
-
// background.
|
|
835
|
-
const userListedEmitted = forwardsInternalShadowFlag(options, "--listEmittedFiles");
|
|
836
|
-
if (emittedFiles.length !== 0 && !userListedEmitted) {
|
|
837
|
-
result.stdout = stripEmittedFileLines(result.stdout);
|
|
838
|
-
}
|
|
839
|
-
if (options.quiet === false) {
|
|
840
|
-
result.stdout += verboseBuildSummary(execution, options, emittedFiles);
|
|
841
|
-
}
|
|
842
|
-
return normalizeBuildOutput({ ...result, emittedFiles }, execution.projectRoot);
|
|
843
|
-
}
|
|
844
|
-
/**
|
|
845
|
-
* The `--verbose` summary for the direct-tsgo lane, in the shape
|
|
846
|
-
* `cmd/ttsc/build.go` already prints on the native-host lane.
|
|
847
|
-
*
|
|
848
|
-
* Verbosity is a launcher-owned presentation concern: which lane `runBuild`
|
|
849
|
-
* selects is an implementation detail the user cannot see, so a documented flag
|
|
850
|
-
* must not change meaning with it. This lane never consumed `quiet` at all,
|
|
851
|
-
* which is why the flag was silent on every project without a ttsc plugin.
|
|
852
|
-
*
|
|
853
|
-
* `sites=0` is a fact about this lane rather than a placeholder: it runs
|
|
854
|
-
* precisely when the project declares no native plugin. A build that emitted
|
|
855
|
-
* nothing prints the header and `emitted=0 files`, so the summary never claims
|
|
856
|
-
* files that were not written.
|
|
857
|
-
*/
|
|
858
|
-
function verboseBuildSummary(execution, options, emittedFiles) {
|
|
859
|
-
const lines = [
|
|
860
|
-
`// ttsc: tsconfig=${execution.tsconfig} cwd=${execution.cwd} sites=0 emit=${options.emit !== false}`,
|
|
861
|
-
];
|
|
862
|
-
if (options.emit !== false) {
|
|
863
|
-
lines.push(`// ttsc: emitted=${emittedFiles.length} files`);
|
|
864
|
-
for (const file of emittedFiles) {
|
|
865
|
-
lines.push(` + ${node_path_1.default.relative(execution.cwd, file) || file}`);
|
|
866
|
-
}
|
|
867
|
-
}
|
|
868
|
-
return `${lines.join("\n")}\n`;
|
|
869
|
-
}
|
|
870
|
-
/** Build the argument list for a direct `tsgo` build invocation. */
|
|
871
|
-
function createTsgoBuildArgs(execution, options, flags) {
|
|
872
|
-
const args = ["-p", execution.tsconfig];
|
|
873
|
-
if (options.emit === true) {
|
|
874
|
-
args.push("--noEmit", "false", "--emitDeclarationOnly", "false");
|
|
875
|
-
if (execution.rewriteRelativeImportExtensionsForEmit) {
|
|
876
|
-
args.push("--rewriteRelativeImportExtensions");
|
|
877
|
-
}
|
|
878
|
-
// The ttsx runtime build asks for an external map when the project emits
|
|
879
|
-
// none, so its served emit carries a map to inline under the source URL.
|
|
880
|
-
// Pushed before passthrough so an explicit user `--sourceMap` still wins.
|
|
881
|
-
if (options.forceRuntimeSourceMap === true) {
|
|
882
|
-
args.push("--sourceMap", "true");
|
|
883
|
-
}
|
|
884
|
-
// Pushed before passthrough for the same reason: a user `--rootDir` still
|
|
885
|
-
// wins over the value ttsc pins for its own injected `outDir`.
|
|
886
|
-
args.push(...pinnedRootDirArgs(execution, options));
|
|
887
|
-
}
|
|
888
|
-
else if (options.emit === false) {
|
|
889
|
-
args.push("--noEmit");
|
|
890
|
-
}
|
|
891
|
-
if (options.outDir) {
|
|
892
|
-
args.push("--outDir", node_path_1.default.resolve(execution.cwd, options.outDir));
|
|
893
|
-
}
|
|
894
|
-
if (flags.listEmittedFiles) {
|
|
895
|
-
args.push("--listEmittedFiles");
|
|
896
|
-
}
|
|
897
|
-
args.push(...createTsgoDiagnosticArgs(options));
|
|
898
|
-
args.push(...createTsgoThreadingArgs(options));
|
|
899
|
-
args.push(...(options.passthrough ?? []));
|
|
900
|
-
args.push(...isolatedTsgoOutputArgs(options));
|
|
901
|
-
if (flags.noEmitOnError === true) {
|
|
902
|
-
args.push("--noEmitOnError");
|
|
903
|
-
}
|
|
904
|
-
return args;
|
|
905
|
-
}
|
|
906
|
-
/**
|
|
907
|
-
* The explicit `--rootDir` a caller-injected `outDir` needs, or nothing.
|
|
908
|
-
*
|
|
909
|
-
* See {@link RunBuildOptions.pinInferredRootDir} for why an injected `outDir`
|
|
910
|
-
* needs one at all. Three conditions gate it, and each one is load-bearing:
|
|
911
|
-
*
|
|
912
|
-
* - The caller injected the `outDir` itself, so a user `--outDir` keeps tsgo's
|
|
913
|
-
* own TS5011 answer;
|
|
914
|
-
* - This pass emits, because a no-emit pass has no layout to pin (tsgo skips the
|
|
915
|
-
* check for `noEmit` too);
|
|
916
|
-
* - The project declares no `rootDir` of its own, so a declared layout is never
|
|
917
|
-
* overridden.
|
|
918
|
-
*
|
|
919
|
-
* `execution.projectRoot` is the directory of the tsconfig ttsc resolved and
|
|
920
|
-
* hands tsgo as `-p`, which is exactly the directory tsgo infers, and it is
|
|
921
|
-
* spelled the way tsgo will spell the input file names it compares against it —
|
|
922
|
-
* both come from the same `fs.realpathSync` pass. Resolving it any further (a
|
|
923
|
-
* Windows 8.3 expansion, say) would leave the comparison lexically mixed, and
|
|
924
|
-
* `ContainsPath` is lexical: every input would count as outside `rootDir` and
|
|
925
|
-
* tsgo would emit it beside the user's source instead of under `outDir`.
|
|
926
|
-
*/
|
|
927
|
-
function pinnedRootDirArgs(execution, options) {
|
|
928
|
-
if (options.pinInferredRootDir !== true)
|
|
929
|
-
return [];
|
|
930
|
-
if (options.emit !== true)
|
|
931
|
-
return [];
|
|
932
|
-
if (typeof execution.project.compilerOptions.rootDir === "string")
|
|
933
|
-
return [];
|
|
934
|
-
return ["--rootDir", execution.projectRoot];
|
|
935
|
-
}
|
|
936
|
-
/**
|
|
937
|
-
* Return `["--pretty", "false"]` when structured diagnostics are requested so
|
|
938
|
-
* that the output can be parsed line-by-line, or an empty array otherwise.
|
|
939
|
-
*
|
|
940
|
-
* When the user explicitly forwarded `--pretty` (any value), the internal
|
|
941
|
-
* `--pretty false` shadow is dropped so the user wins on the surface. ttsc's
|
|
942
|
-
* own diagnostic parser will then see pretty-formatted output and fall back to
|
|
943
|
-
* surfacing it verbatim — the RC-2 contract that `--pretty`'s `internalShadow:
|
|
944
|
-
* true` flag in `FLAG_SCHEMA` declares. Without this guard the order in
|
|
945
|
-
* `runTsgo` (internal flags first, passthrough last) would still let the user's
|
|
946
|
-
* `--pretty true` override at the tsgo level, but ttsc would have already
|
|
947
|
-
* committed to a structured-diagnostics post-process that no longer matches the
|
|
948
|
-
* actual output.
|
|
949
|
-
*/
|
|
950
|
-
function createTsgoDiagnosticArgs(options) {
|
|
951
|
-
if (options.structuredDiagnostics !== true)
|
|
952
|
-
return [];
|
|
953
|
-
if (forwardsInternalShadowFlag(options, "--pretty"))
|
|
954
|
-
return [];
|
|
955
|
-
return ["--pretty", "false"];
|
|
956
|
-
}
|
|
957
|
-
/**
|
|
958
|
-
* Forward the `--singleThreaded` / `--checkers` knobs to a `tsgo` invocation.
|
|
959
|
-
* tsgo accepts both flags natively, so the no-plugin build lane only has to
|
|
960
|
-
* pass them through; the type-check and emit passes share this so the checker
|
|
961
|
-
* pool size stays consistent across both.
|
|
962
|
-
*/
|
|
963
|
-
function createTsgoThreadingArgs(options) {
|
|
964
|
-
const args = [];
|
|
965
|
-
if (options.singleThreaded === true) {
|
|
966
|
-
args.push("--singleThreaded");
|
|
967
|
-
}
|
|
968
|
-
if (options.checkers !== undefined) {
|
|
969
|
-
args.push("--checkers", String(options.checkers));
|
|
970
|
-
}
|
|
971
|
-
return args;
|
|
972
|
-
}
|
|
973
|
-
/** Build the argument list for a native plugin `build`/`check` invocation. */
|
|
974
|
-
function createNativeBuildArgs(execution, options, plugins) {
|
|
975
|
-
const args = [
|
|
976
|
-
options.emit === false ? "check" : "build",
|
|
977
|
-
"--tsconfig=" + execution.tsconfig,
|
|
978
|
-
"--plugins-json=" + serializeNativePlugins(plugins),
|
|
979
|
-
"--cwd=" + execution.projectRoot,
|
|
980
|
-
];
|
|
981
|
-
if ((0, sharedHostHelpers_1.selectSharedHostPlugin)(plugins).capabilities?.projectContextArgs === true) {
|
|
982
|
-
args.push(...(0, createNativeProjectContextArgs_1.createNativeProjectContextArgs)(execution.project, execution.pluginConfigDir));
|
|
983
|
-
}
|
|
984
|
-
if (options.emit === true) {
|
|
985
|
-
args.push("--emit");
|
|
986
|
-
}
|
|
987
|
-
if (options.outDir) {
|
|
988
|
-
args.push("--outDir=" + node_path_1.default.resolve(execution.cwd, options.outDir));
|
|
989
|
-
}
|
|
990
|
-
// Third-party transform hosts already treat the `check` subcommand as a
|
|
991
|
-
// quiet no-emit pass. Keep ttsc-owned build modifiers off that lane so older
|
|
992
|
-
// strict hosts do not reject unknown optional flags before analysis starts.
|
|
993
|
-
if (options.emit !== false) {
|
|
994
|
-
if (options.quiet === false) {
|
|
995
|
-
args.push("--verbose");
|
|
996
|
-
}
|
|
997
|
-
else if (options.quiet === true) {
|
|
998
|
-
args.push("--quiet");
|
|
999
|
-
}
|
|
1000
|
-
}
|
|
1001
|
-
return args;
|
|
1002
|
-
}
|
|
1003
|
-
/**
|
|
1004
|
-
* The forwarded-tsgo payload for a native `build`/`check` emit invocation.
|
|
1005
|
-
*
|
|
1006
|
-
* The sidecar builds its Program in-process, so the pinned `rootDir` has to
|
|
1007
|
-
* travel the same channel every other tsgo option takes to it — the host flag
|
|
1008
|
-
* set does not declare `--rootDir`, and `filterHostArgs` would strip it.
|
|
1009
|
-
*/
|
|
1010
|
-
function createNativeBuildTsgoArgs(execution, options) {
|
|
1011
|
-
return createNativeTsgoArgs(options, pinnedRootDirArgs(execution, options));
|
|
1012
|
-
}
|
|
1013
|
-
/** Build the argument list for a native plugin check/fix/format invocation. */
|
|
1014
|
-
function createNativeCheckArgs(execution, options, plugin) {
|
|
1015
|
-
const args = [
|
|
1016
|
-
nativeCheckSubcommand(options),
|
|
1017
|
-
"--tsconfig=" + execution.tsconfig,
|
|
1018
|
-
"--plugins-json=" + serializeNativePlugins(execution.nativePlugins),
|
|
1019
|
-
"--cwd=" + execution.projectRoot,
|
|
1020
|
-
];
|
|
1021
|
-
if (plugin.capabilities?.projectContextArgs === true) {
|
|
1022
|
-
args.push(...(0, createNativeProjectContextArgs_1.createNativeProjectContextArgs)(execution.project, execution.pluginConfigDir));
|
|
1023
|
-
}
|
|
1024
|
-
if (options.outDir) {
|
|
1025
|
-
args.push("--outDir=" + node_path_1.default.resolve(execution.cwd, options.outDir));
|
|
1026
|
-
}
|
|
1027
|
-
if (options.quiet === false) {
|
|
1028
|
-
args.push("--verbose");
|
|
1029
|
-
}
|
|
1030
|
-
else if (options.quiet === true) {
|
|
1031
|
-
args.push("--quiet");
|
|
1032
|
-
}
|
|
1033
|
-
args.push(...createNativeCheckThreadingArgs(options, plugin));
|
|
1034
|
-
args.push(...createNativeCheckDiagnosticsArgs(options, plugin));
|
|
1035
|
-
return args;
|
|
1036
|
-
}
|
|
1037
|
-
function createNativeProjectInputsArgs(execution, plugin) {
|
|
1038
|
-
const args = [
|
|
1039
|
-
"project-inputs",
|
|
1040
|
-
"--tsconfig=" + execution.tsconfig,
|
|
1041
|
-
"--plugins-json=" + serializeNativePlugins(execution.nativePlugins),
|
|
1042
|
-
"--cwd=" + execution.projectRoot,
|
|
1043
|
-
];
|
|
1044
|
-
if (plugin.capabilities?.projectContextArgs === true) {
|
|
1045
|
-
args.push(...(0, createNativeProjectContextArgs_1.createNativeProjectContextArgs)(execution.project, execution.pluginConfigDir));
|
|
1046
|
-
}
|
|
1047
|
-
return args;
|
|
1048
|
-
}
|
|
1049
|
-
// `--singleThreaded` / `--checkers` are forwarded to native check-stage hosts
|
|
1050
|
-
// only when the host is one ttsc itself owns (currently `@ttsc/lint`). #113
|
|
1051
|
-
// forwarded both flags as bare CLI tokens to every native sidecar, then
|
|
1052
|
-
// commit ad3443a reverted that across the board because a third-party host
|
|
1053
|
-
// built before #113 has no `singleThreaded` / `checkers` flag in its
|
|
1054
|
-
// `flag.FlagSet` and would exit 2 on the unknown flag — so
|
|
1055
|
-
// `ttsc --singleThreaded` failed deterministically on every typia/nestia
|
|
1056
|
-
// transform-plugin project.
|
|
1057
|
-
//
|
|
1058
|
-
// The performance ceiling that caused, though, is real: format/check passes
|
|
1059
|
-
// through the lint sidecar are dominated by parallel parse + parallel rule
|
|
1060
|
-
// walk, and with the threading knob silently dropped, MT and ST runs of
|
|
1061
|
-
// `ttsc format` produced identical wall-clock numbers — the benchmark cell
|
|
1062
|
-
// became a non-measurement. The lint sidecar is built and shipped from this
|
|
1063
|
-
// repo, accepts both flags via `parseSubcommandFlags`, and threads them down
|
|
1064
|
-
// to `loadProgram` (parse phase) and `engine.SetSerial` (rule walk). The host
|
|
1065
|
-
// opts in through `capabilities.threadingArgs`, so a third-party check-stage
|
|
1066
|
-
// plugin keeps the strict-host behavior from ad3443a unless it declares the
|
|
1067
|
-
// same contract. Transform-stage hosts are never reached by this path (they go
|
|
1068
|
-
// through `createNativeBuildArgs`), so the typia/nestia regression remains
|
|
1069
|
-
// pinned by `test_plugin_corpus_single_threaded_flag_does_not_break_a_native_plugin_build`.
|
|
1070
|
-
function createNativeCheckThreadingArgs(options, plugin) {
|
|
1071
|
-
if (!nativeHostAcceptsThreadingArgs(plugin))
|
|
1072
|
-
return [];
|
|
1073
|
-
const args = [];
|
|
1074
|
-
if (options.singleThreaded === true) {
|
|
1075
|
-
args.push("--singleThreaded");
|
|
1076
|
-
}
|
|
1077
|
-
if (options.checkers !== undefined) {
|
|
1078
|
-
args.push("--checkers=" + String(options.checkers));
|
|
1079
|
-
}
|
|
1080
|
-
return args;
|
|
1081
|
-
}
|
|
1082
|
-
/**
|
|
1083
|
-
* Return true when the loaded native check-stage host has declared
|
|
1084
|
-
* `capabilities.threadingArgs` in its plugin descriptor.
|
|
1085
|
-
*
|
|
1086
|
-
* The lint sidecar (`packages/lint/src/index.ts::createTtscPlugin`) opts in
|
|
1087
|
-
* because its `parseSubcommandFlags` handler accepts `--singleThreaded` and
|
|
1088
|
-
* `--checkers` directly and threads them into `loadProgram` (parse phase) and
|
|
1089
|
-
* `engine.SetSerial` (rule walk). Any other check-stage host that has not
|
|
1090
|
-
* declared the capability is treated as a third-party binary whose flag set is
|
|
1091
|
-
* unknown, matching the conservative default from commit ad3443a.
|
|
1092
|
-
*
|
|
1093
|
-
* The capability flag replaces the prior `plugin.name === "@ttsc/lint"` string
|
|
1094
|
-
* check: routing on a descriptor field instead of the plugin name lets the next
|
|
1095
|
-
* first-party check-stage plugin opt in without ttsc needing to learn its name.
|
|
1096
|
-
* See `ITtscPluginCapabilities` and issue #125 for the broader CLI-parser
|
|
1097
|
-
* cleanup this is the quick-win step of.
|
|
1098
|
-
*/
|
|
1099
|
-
function nativeHostAcceptsThreadingArgs(plugin) {
|
|
1100
|
-
return plugin.capabilities?.threadingArgs === true;
|
|
1101
|
-
}
|
|
1102
|
-
function createNativeCheckDiagnosticsArgs(options, plugin) {
|
|
1103
|
-
if (!nativeHostAcceptsDiagnosticsTiming(plugin))
|
|
1104
|
-
return [];
|
|
1105
|
-
if (!hasDiagnosticsFlag(options))
|
|
1106
|
-
return [];
|
|
1107
|
-
return ["--diagnostics"];
|
|
1108
|
-
}
|
|
1109
|
-
function nativeHostAcceptsDiagnosticsTiming(plugin) {
|
|
1110
|
-
return plugin.capabilities?.diagnosticsTiming === true;
|
|
1111
|
-
}
|
|
1112
|
-
function transformHostTimingLabel(plugins) {
|
|
1113
|
-
return (`ttsc transform host [` +
|
|
1114
|
-
`${plugins.map((plugin) => plugin.name).join(", ")}] time`);
|
|
1115
|
-
}
|
|
1116
|
-
/**
|
|
1117
|
-
* Forward the tsgo flags ttsc did not recognize to a native sidecar as one
|
|
1118
|
-
* JSON-encoded payload. The sidecar replays them through tsgo's own option
|
|
1119
|
-
* parser onto `CompilerOptions`, so a flag like `ttsc --strict` reaches a
|
|
1120
|
-
* plugin build the same way it reaches the plain tsgo lane.
|
|
1121
|
-
*
|
|
1122
|
-
* The payload travels in the `TTSC_TSGO_ARGS` environment variable, not on the
|
|
1123
|
-
* sidecar's command line. #113 shipped it as a `--tsgo-args` flag, which is an
|
|
1124
|
-
* addition to a plugin protocol third-party hosts had already frozen: a Go
|
|
1125
|
-
* `flag.FlagSet` created with `flag.ContinueOnError` treats an undeclared flag
|
|
1126
|
-
* as fatal, so every pre-#113 sidecar answered `flag provided but not defined:
|
|
1127
|
-
* -tsgo-args` and exited 2. That took down `ttsc --strict`, `ttsc
|
|
1128
|
-
* --declaration`, `ttsx --strict` and — because {@link isolatedTsgoOutputArgs}
|
|
1129
|
-
* makes this payload non-empty on its own — plain `ttsc <file.ts>`, on every
|
|
1130
|
-
* project carrying a typia/nestia-era transform host (issue #1188).
|
|
1131
|
-
*
|
|
1132
|
-
* The environment is the channel ttsc already uses for host-owned payloads that
|
|
1133
|
-
* must not collide with a third-party flag set (`TTSC_LINKED_PLUGINS_JSON`,
|
|
1134
|
-
* `TTSC_PLUGIN_CONFIG_DIR`). It reaches those hosts without any change on their
|
|
1135
|
-
* side, because `buildSourcePlugin.ts::sourceBuildWorkspaceReplacements` builds
|
|
1136
|
-
* every source plugin against the installed ttsc's own driver, and
|
|
1137
|
-
* `driver.LoadProgram` reads the variable whenever the caller supplied no
|
|
1138
|
-
* explicit argv. It is strictly better than the capability gate `ad3443a` used
|
|
1139
|
-
* for `--singleThreaded` / `--checkers`: that one drops the flag for hosts that
|
|
1140
|
-
* cannot take it, which is acceptable for a threading knob and not for
|
|
1141
|
-
* `--strict`.
|
|
1142
|
-
*
|
|
1143
|
-
* Returns the JSON payload, or `undefined` when this lane forwards nothing.
|
|
1144
|
-
*/
|
|
1145
|
-
function createNativeTsgoArgs(options, leading = []) {
|
|
1146
|
-
const passthrough = [
|
|
1147
|
-
// Ahead of the user's own flags, so the same precedence holds here as on
|
|
1148
|
-
// the direct tsgo lane: whatever the user forwarded wins.
|
|
1149
|
-
...leading,
|
|
1150
|
-
...(nativeTsgoPassthroughArgs(options) ?? []),
|
|
1151
|
-
...isolatedTsgoOutputArgs(options),
|
|
1152
|
-
];
|
|
1153
|
-
if (passthrough.length === 0) {
|
|
1154
|
-
return undefined;
|
|
1155
|
-
}
|
|
1156
|
-
return JSON.stringify(passthrough);
|
|
1157
|
-
}
|
|
1158
|
-
function isolatedTsgoOutputArgs(options) {
|
|
1159
|
-
const target = "isolateOutputsTo" in options &&
|
|
1160
|
-
typeof options.isolateOutputsTo === "string"
|
|
1161
|
-
? node_path_1.default.resolve(options.isolateOutputsTo)
|
|
1162
|
-
: undefined;
|
|
1163
|
-
if (target === undefined)
|
|
1164
|
-
return [];
|
|
1165
|
-
return [
|
|
1166
|
-
"--outFile",
|
|
1167
|
-
"null",
|
|
1168
|
-
"--declarationDir",
|
|
1169
|
-
"null",
|
|
1170
|
-
"--tsBuildInfoFile",
|
|
1171
|
-
"null",
|
|
1172
|
-
"--outDir",
|
|
1173
|
-
target,
|
|
1174
|
-
];
|
|
1175
|
-
}
|
|
1176
|
-
function nativeTsgoPassthroughArgs(options) {
|
|
1177
|
-
const passthrough = options.passthrough;
|
|
1178
|
-
if (passthrough === undefined)
|
|
1179
|
-
return undefined;
|
|
1180
|
-
const out = [];
|
|
1181
|
-
for (let i = 0; i < passthrough.length; i++) {
|
|
1182
|
-
const token = passthrough[i];
|
|
1183
|
-
if (isDiagnosticsPassthroughFlag(token)) {
|
|
1184
|
-
if (!token.includes("=") &&
|
|
1185
|
-
i + 1 < passthrough.length &&
|
|
1186
|
-
isBooleanLiteral(passthrough[i + 1])) {
|
|
1187
|
-
i++;
|
|
1188
|
-
}
|
|
1189
|
-
continue;
|
|
1190
|
-
}
|
|
1191
|
-
out.push(token);
|
|
1192
|
-
}
|
|
1193
|
-
return out;
|
|
1194
|
-
}
|
|
1195
|
-
function isDiagnosticsPassthroughFlag(token) {
|
|
1196
|
-
const name = (0, schema_1.resolveFlagSpec)(token)?.name;
|
|
1197
|
-
return name === "--diagnostics" || name === "--extendedDiagnostics";
|
|
1198
|
-
}
|
|
1199
|
-
function isBooleanLiteral(token) {
|
|
1200
|
-
const normalized = token.toLowerCase();
|
|
1201
|
-
return normalized === "true" || normalized === "false";
|
|
1202
|
-
}
|
|
1203
|
-
/**
|
|
1204
|
-
* Decide which native plugin subcommand the lint sidecar should run for the
|
|
1205
|
-
* current `runBuild` invocation. The launcher selects exactly one of `fix` /
|
|
1206
|
-
* `format` / `check` via subcommand dispatch, so at most one of the
|
|
1207
|
-
* `options.fix` / `options.format` booleans is true.
|
|
1208
|
-
*/
|
|
1209
|
-
function nativeCheckSubcommand(options) {
|
|
1210
|
-
if (options.format === true)
|
|
1211
|
-
return "format";
|
|
1212
|
-
if (options.fix === true)
|
|
1213
|
-
return "fix";
|
|
1214
|
-
return "check";
|
|
1215
|
-
}
|
|
1216
|
-
/**
|
|
1217
|
-
* Serialize the plugin list to a compact JSON string for `--plugins-json=`.
|
|
1218
|
-
* Only the fields the native binary protocol requires are included.
|
|
1219
|
-
*/
|
|
1220
|
-
function serializeNativePlugins(plugins) {
|
|
1221
|
-
return JSON.stringify(plugins.map((plugin) => ({
|
|
1222
|
-
config: plugin.config,
|
|
1223
|
-
name: plugin.name,
|
|
1224
|
-
stage: plugin.stage,
|
|
1225
|
-
})));
|
|
1226
|
-
}
|
|
1227
|
-
/**
|
|
1228
|
-
* Run every check-stage plugin in order, short-circuiting on the first non-zero
|
|
1229
|
-
* exit. Aggregates diagnostics and output across all check plugins.
|
|
1230
|
-
*/
|
|
1231
|
-
function runNativeCheckPlugins(options, execution, timing) {
|
|
1232
|
-
let out = {
|
|
1233
|
-
diagnostics: [],
|
|
1234
|
-
status: 0,
|
|
1235
|
-
stdout: "",
|
|
1236
|
-
stderr: "",
|
|
1237
|
-
};
|
|
1238
|
-
for (const plugin of execution.nativePlugins.filter((plugin) => plugin.stage === "check")) {
|
|
1239
|
-
const result = runNativePluginCommand(plugin, createNativeCheckArgs(execution, options, plugin), options, execution, "ttsc.check", timing, `ttsc check plugin ${plugin.name} time`, createNativeTsgoArgs(options));
|
|
1240
|
-
out = appendBuildOutput(out, result);
|
|
1241
|
-
if (result.status !== 0) {
|
|
1242
|
-
return out;
|
|
1243
|
-
}
|
|
1244
|
-
}
|
|
1245
|
-
return out;
|
|
1246
|
-
}
|
|
1247
|
-
function discoverNativeProjectInputs(options, execution) {
|
|
1248
|
-
const snapshots = [];
|
|
1249
|
-
for (const plugin of execution.nativePlugins.filter((candidate) => candidate.stage === "check" &&
|
|
1250
|
-
candidate.capabilities?.projectInputs === true)) {
|
|
1251
|
-
const res = (0, spawnNative_1.spawnNative)(plugin.binary, createNativeProjectInputsArgs(execution, plugin), {
|
|
1252
|
-
cwd: execution.projectRoot,
|
|
1253
|
-
env: nativePluginEnv(options.env, execution, plugin),
|
|
1254
|
-
encoding: "utf8",
|
|
1255
|
-
});
|
|
1256
|
-
if (res.error) {
|
|
1257
|
-
throw new Error(`ttsc.project-inputs: failed to spawn ${plugin.binary}: ${res.error.message}`);
|
|
1258
|
-
}
|
|
1259
|
-
const stdout = (0, spawnNative_1.outputText)(res.stdout).trim();
|
|
1260
|
-
if (res.status !== 0) {
|
|
1261
|
-
const detail = (0, spawnNative_1.outputText)(res.stderr).trim() || stdout;
|
|
1262
|
-
throw new Error(`ttsc.project-inputs: ${plugin.name ?? plugin.binary} failed${detail ? `: ${detail}` : ""}`);
|
|
1263
|
-
}
|
|
1264
|
-
const snapshot = parseProjectInputSnapshot(stdout, plugin);
|
|
1265
|
-
snapshots.push(snapshot);
|
|
1266
|
-
}
|
|
1267
|
-
return mergeProjectInputSnapshots(execution.projectRoot, snapshots);
|
|
1268
|
-
}
|
|
1269
|
-
function arraysEqual(left, right) {
|
|
1270
|
-
return (left.length === right.length && left.every((item, i) => item === right[i]));
|
|
1271
|
-
}
|
|
1272
|
-
/**
|
|
1273
|
-
* Keep every declared spelling of one identity, ordered without regard to which
|
|
1274
|
-
* producer ran first.
|
|
1275
|
-
*
|
|
1276
|
-
* Two contributors can name the same file through different aliases, and each
|
|
1277
|
-
* alias is a path a watcher has to observe: keeping only one of them would
|
|
1278
|
-
* discard the link whose retarget the other spelling exists to catch. Insertion
|
|
1279
|
-
* order is not canonical, so the caller sorts the flattened result.
|
|
1280
|
-
*/
|
|
1281
|
-
function retainDeclaredSpelling(target, key, declared) {
|
|
1282
|
-
const previous = target.get(key);
|
|
1283
|
-
if (previous === undefined) {
|
|
1284
|
-
target.set(key, [declared]);
|
|
1285
|
-
return;
|
|
1286
|
-
}
|
|
1287
|
-
if (previous.includes(declared))
|
|
1288
|
-
return;
|
|
1289
|
-
previous.push(declared);
|
|
1290
|
-
}
|
|
1291
|
-
function mergeProjectInputSnapshots(fallbackRoot, snapshots, identities = (0, projectInputPathIdentity_1.createProjectInputPathIdentityContext)()) {
|
|
1292
|
-
const files = new Map();
|
|
1293
|
-
const globs = new Map();
|
|
1294
|
-
const reloadDirectories = new Map();
|
|
1295
|
-
const reloadFiles = new Map();
|
|
1296
|
-
// Deduplicated on the same identity keys, but holding what the contributors
|
|
1297
|
-
// wrote. Normalization resolves a declaration through its symlinks, which is
|
|
1298
|
-
// right for every comparison and wrong for the watcher that has to observe
|
|
1299
|
-
// the link itself being retargeted.
|
|
1300
|
-
const declaredFiles = new Map();
|
|
1301
|
-
const declaredGlobs = new Map();
|
|
1302
|
-
const declaredReloadDirectories = new Map();
|
|
1303
|
-
const declaredReloadFiles = new Map();
|
|
1304
|
-
const rootIdentity = identities.resolve(fallbackRoot);
|
|
1305
|
-
for (const snapshot of snapshots) {
|
|
1306
|
-
const candidateRoot = identities.resolve(snapshot.root);
|
|
1307
|
-
if (rootIdentity.key !== candidateRoot.key) {
|
|
1308
|
-
throw new Error(`ttsc.project-inputs: plugin root ${candidateRoot.path} differs from the selected project root ${rootIdentity.path}`);
|
|
1309
|
-
}
|
|
1310
|
-
for (const file of snapshot.files) {
|
|
1311
|
-
const identity = identities.resolve(file);
|
|
1312
|
-
files.set(identity.key, identity.path);
|
|
1313
|
-
retainDeclaredSpelling(declaredFiles, identity.key, node_path_1.default.resolve(file));
|
|
1314
|
-
}
|
|
1315
|
-
for (const glob of snapshot.globs) {
|
|
1316
|
-
const identity = identities.resolve(glob);
|
|
1317
|
-
globs.set(identity.key, identity.path.split(node_path_1.default.sep).join("/"));
|
|
1318
|
-
retainDeclaredSpelling(declaredGlobs, identity.key, node_path_1.default.resolve(glob).split(node_path_1.default.sep).join("/"));
|
|
1319
|
-
}
|
|
1320
|
-
for (const reloadFile of snapshot.reloadFiles ?? []) {
|
|
1321
|
-
const identity = identities.resolve(reloadFile);
|
|
1322
|
-
reloadFiles.set(identity.key, identity.path);
|
|
1323
|
-
retainDeclaredSpelling(declaredReloadFiles, identity.key, node_path_1.default.resolve(reloadFile));
|
|
1324
|
-
}
|
|
1325
|
-
for (const reloadDirectory of snapshot.reloadDirectories ?? []) {
|
|
1326
|
-
const identity = identities.resolve(reloadDirectory);
|
|
1327
|
-
reloadDirectories.set(identity.key, identity.path);
|
|
1328
|
-
retainDeclaredSpelling(declaredReloadDirectories, identity.key, node_path_1.default.resolve(reloadDirectory));
|
|
1329
|
-
}
|
|
1330
|
-
}
|
|
1331
|
-
const normalized = {
|
|
1332
|
-
root: rootIdentity.path,
|
|
1333
|
-
files: [...files.values()].sort(),
|
|
1334
|
-
globs: [...globs.values()].sort(),
|
|
1335
|
-
reloadDirectories: [...reloadDirectories.values()].sort(),
|
|
1336
|
-
reloadFiles: [...reloadFiles.values()].sort(),
|
|
1337
|
-
};
|
|
1338
|
-
const declared = {
|
|
1339
|
-
files: [...declaredFiles.values()].flat().sort(),
|
|
1340
|
-
globs: [...declaredGlobs.values()].flat().sort(),
|
|
1341
|
-
reloadDirectories: [...declaredReloadDirectories.values()].flat().sort(),
|
|
1342
|
-
reloadFiles: [...declaredReloadFiles.values()].flat().sort(),
|
|
1343
|
-
};
|
|
1344
|
-
// Carried only when it says something the normalized arrays do not. A tree
|
|
1345
|
-
// with no alias on any declaration produces the same four lists, and a
|
|
1346
|
-
// consumer that has to scan both would pay twice for one population.
|
|
1347
|
-
return arraysEqual(declared.files, normalized.files) &&
|
|
1348
|
-
arraysEqual(declared.globs, normalized.globs) &&
|
|
1349
|
-
arraysEqual(declared.reloadDirectories, normalized.reloadDirectories) &&
|
|
1350
|
-
arraysEqual(declared.reloadFiles, normalized.reloadFiles)
|
|
1351
|
-
? normalized
|
|
1352
|
-
: { ...normalized, declared };
|
|
1353
|
-
}
|
|
1354
|
-
function parseProjectInputSnapshot(text, plugin) {
|
|
1355
|
-
let value;
|
|
1356
|
-
try {
|
|
1357
|
-
value = JSON.parse(text);
|
|
1358
|
-
}
|
|
1359
|
-
catch (error) {
|
|
1360
|
-
throw new Error(`ttsc.project-inputs: ${plugin.name ?? plugin.binary} returned invalid JSON: ${error instanceof Error ? error.message : String(error)}`);
|
|
1361
|
-
}
|
|
1362
|
-
if (typeof value !== "object" ||
|
|
1363
|
-
value === null ||
|
|
1364
|
-
typeof value.root !== "string" ||
|
|
1365
|
-
!isStringArray(value.files) ||
|
|
1366
|
-
!isStringArray(value.globs) ||
|
|
1367
|
-
(value.reloadDirectories !==
|
|
1368
|
-
undefined &&
|
|
1369
|
-
!isStringArray(value.reloadDirectories)) ||
|
|
1370
|
-
(value.reloadFiles !== undefined &&
|
|
1371
|
-
!isStringArray(value.reloadFiles))) {
|
|
1372
|
-
throw new Error(`ttsc.project-inputs: ${plugin.name ?? plugin.binary} returned an invalid snapshot`);
|
|
1373
|
-
}
|
|
1374
|
-
const snapshot = value;
|
|
1375
|
-
const invalid = [
|
|
1376
|
-
["root", snapshot.root],
|
|
1377
|
-
...snapshot.files.map((file) => ["file", file]),
|
|
1378
|
-
...snapshot.globs.map((glob) => ["glob", glob]),
|
|
1379
|
-
...(snapshot.reloadDirectories ?? []).map((directory) => ["reload directory", directory]),
|
|
1380
|
-
...(snapshot.reloadFiles ?? []).map((file) => ["reload file", file]),
|
|
1381
|
-
].find(([, location]) => location.length === 0 || !isAbsoluteLocalProjectInputPath(location));
|
|
1382
|
-
if (invalid !== undefined) {
|
|
1383
|
-
throw new Error(`ttsc.project-inputs: ${plugin.name ?? plugin.binary} returned an invalid snapshot: ${invalid[0]} ${JSON.stringify(invalid[1])} is not an absolute local path`);
|
|
1384
|
-
}
|
|
1385
|
-
return {
|
|
1386
|
-
...snapshot,
|
|
1387
|
-
reloadDirectories: snapshot.reloadDirectories ?? [],
|
|
1388
|
-
reloadFiles: snapshot.reloadFiles ?? [],
|
|
1389
|
-
};
|
|
1390
|
-
}
|
|
1391
|
-
function isAbsoluteLocalProjectInputPath(location, platform = process.platform) {
|
|
1392
|
-
if (location.includes("\0"))
|
|
1393
|
-
return false;
|
|
1394
|
-
if (platform !== "win32")
|
|
1395
|
-
return node_path_1.default.posix.isAbsolute(location);
|
|
1396
|
-
const normalized = location.replaceAll("/", "\\");
|
|
1397
|
-
if (/^[A-Za-z]:\\/.test(normalized))
|
|
1398
|
-
return true;
|
|
1399
|
-
if (normalized.startsWith("\\\\?\\")) {
|
|
1400
|
-
const extended = normalized.slice(4);
|
|
1401
|
-
if (/^[A-Za-z]:\\/.test(extended))
|
|
1402
|
-
return true;
|
|
1403
|
-
if (extended.toLowerCase().startsWith("unc\\")) {
|
|
1404
|
-
return isWindowsUncProjectInputPath(`\\\\${extended.slice(4)}`);
|
|
1405
|
-
}
|
|
1406
|
-
return false;
|
|
1407
|
-
}
|
|
1408
|
-
if (normalized.startsWith("\\\\.\\"))
|
|
1409
|
-
return false;
|
|
1410
|
-
return isWindowsUncProjectInputPath(normalized);
|
|
1411
|
-
}
|
|
1412
|
-
function isWindowsUncProjectInputPath(location) {
|
|
1413
|
-
const matched = /^\\\\([^\\]+)\\([^\\]+)(?:\\|$)/.exec(location);
|
|
1414
|
-
return (matched !== null &&
|
|
1415
|
-
isWindowsUncVolumeSegment(matched[1]) &&
|
|
1416
|
-
isWindowsUncVolumeSegment(matched[2]));
|
|
1417
|
-
}
|
|
1418
|
-
function isWindowsUncVolumeSegment(segment) {
|
|
1419
|
-
return segment !== "." && segment !== ".." && !/[\0<>:"/\\|?*]/.test(segment);
|
|
1420
|
-
}
|
|
1421
|
-
function isStringArray(value) {
|
|
1422
|
-
return (Array.isArray(value) && value.every((item) => typeof item === "string"));
|
|
1423
|
-
}
|
|
1424
|
-
/**
|
|
1425
|
-
* Spawn a single native plugin binary with the given args and return the
|
|
1426
|
-
* normalized build result. `label` is used in the thrown error message so the
|
|
1427
|
-
* caller's context (e.g. `"ttsc.check"` or `"ttsc.build"`) is preserved.
|
|
1428
|
-
*/
|
|
1429
|
-
function runNativePluginCommand(plugin, args, options, execution, label, timing, timingLabel, tsgoArgs) {
|
|
1430
|
-
const startedAt = process.hrtime.bigint();
|
|
1431
|
-
const res = (0, spawnNative_1.spawnNative)(plugin.binary, args, {
|
|
1432
|
-
cwd: execution.projectRoot,
|
|
1433
|
-
env: nativePluginEnv(options.env, execution, plugin, tsgoArgs),
|
|
1434
|
-
encoding: "utf8",
|
|
1435
|
-
});
|
|
1436
|
-
recordTiming(timing, timingLabel, startedAt);
|
|
1437
|
-
if (res.error) {
|
|
1438
|
-
throw new Error(`${label}: failed to spawn ${plugin.binary}: ${res.error.message}`);
|
|
1439
|
-
}
|
|
1440
|
-
return normalizeBuildOutput({
|
|
1441
|
-
status: res.status ?? 1,
|
|
1442
|
-
stdout: (0, spawnNative_1.outputText)(res.stdout),
|
|
1443
|
-
stderr: (0, spawnNative_1.outputText)(res.stderr),
|
|
1444
|
-
}, execution.projectRoot);
|
|
1445
|
-
}
|
|
1446
|
-
/**
|
|
1447
|
-
* Merge two `TtscBuildResult` values into one.
|
|
1448
|
-
*
|
|
1449
|
-
* - `status`: the right status wins unless it is 0 (failure propagates).
|
|
1450
|
-
* - `diagnostics`: concatenated left then right.
|
|
1451
|
-
* - `emittedFiles`: right wins when present, otherwise left is kept.
|
|
1452
|
-
* - `stdout`/`stderr`: concatenated left then right.
|
|
1453
|
-
*/
|
|
1454
|
-
function appendBuildOutput(left, right) {
|
|
1455
|
-
return normalizeBuildOutput({
|
|
1456
|
-
diagnostics: [...left.diagnostics, ...right.diagnostics],
|
|
1457
|
-
emittedFiles: right.emittedFiles !== undefined ? right.emittedFiles : left.emittedFiles,
|
|
1458
|
-
status: right.status !== 0 ? right.status : left.status,
|
|
1459
|
-
stdout: left.stdout + right.stdout,
|
|
1460
|
-
stderr: left.stderr + right.stderr,
|
|
1461
|
-
});
|
|
1462
|
-
}
|
|
1463
|
-
/**
|
|
1464
|
-
* Synthesize one structured diagnostic from a non-zero process result that
|
|
1465
|
-
* produced no parsable diagnostics, carrying the captured stderr/stdout as the
|
|
1466
|
-
* message. Shared by the public API result mapping and the plugin-failure
|
|
1467
|
-
* recovery pass so the failure text is never dropped from structured output.
|
|
1468
|
-
*/
|
|
1469
|
-
function createProcessDiagnostic(result) {
|
|
1470
|
-
const messageText = (result.stderr || result.stdout).trim() ||
|
|
1471
|
-
`ttsc exited with status ${result.status}`;
|
|
1472
|
-
return {
|
|
1473
|
-
category: "error",
|
|
1474
|
-
code: "TTSC_PROCESS",
|
|
1475
|
-
file: null,
|
|
1476
|
-
messageText,
|
|
1477
|
-
};
|
|
1478
|
-
}
|
|
1479
|
-
/**
|
|
1480
|
-
* Resolve all runtime context needed for a build: cwd, tsconfig path, project
|
|
1481
|
-
* root, tsgo binary location, and the loaded native plugin list. Centralised
|
|
1482
|
-
* here so every code path in `runBuild` shares the same resolution logic.
|
|
1483
|
-
*/
|
|
1484
|
-
function resolveExecutionContext(options) {
|
|
1485
|
-
const cwd = node_path_1.default.resolve(options.cwd ?? process.cwd());
|
|
1486
|
-
const project = options.resolvedProject ??
|
|
1487
|
-
(0, readProjectConfig_1.readProjectConfig)({
|
|
1488
|
-
cwd,
|
|
1489
|
-
projectRoot: options.projectRoot,
|
|
1490
|
-
tsconfig: options.tsconfig,
|
|
1491
|
-
});
|
|
1492
|
-
const tsconfig = project.path;
|
|
1493
|
-
const projectRoot = project.root;
|
|
1494
|
-
const tsgo = (0, resolveTsgo_1.resolveTsgo)({ ...options, cwd: projectRoot });
|
|
1495
|
-
let pluginSetupFailure;
|
|
1496
|
-
let nativePlugins = [];
|
|
1497
|
-
try {
|
|
1498
|
-
if ((0, loadProjectPlugins_1.hasProjectPluginEntries)(project, options.plugins)) {
|
|
1499
|
-
nativePlugins = (0, loadProjectPlugins_1.loadProjectPlugins)({
|
|
1500
|
-
binary: (0, resolveBinary_1.resolveBinary)(options) ?? "",
|
|
1501
|
-
cacheDir: options.cacheDir ?? options.env?.TTSC_CACHE_DIR,
|
|
1502
|
-
cwd,
|
|
1503
|
-
entries: options.plugins,
|
|
1504
|
-
env: (0, sharedHostHelpers_1.inheritedSidecarEnv)(options.env),
|
|
1505
|
-
onWatchInputs: options.onWatchInputs,
|
|
1506
|
-
pluginConfigDir: options.pluginConfigDir,
|
|
1507
|
-
projectRoot,
|
|
1508
|
-
tsconfig,
|
|
1509
|
-
}).nativePlugins;
|
|
1510
|
-
}
|
|
1511
|
-
else {
|
|
1512
|
-
options.onWatchInputs?.([]);
|
|
1513
|
-
}
|
|
1514
|
-
}
|
|
1515
|
-
catch (error) {
|
|
1516
|
-
pluginSetupFailure = {
|
|
1517
|
-
diagnostics: [],
|
|
1518
|
-
status: 2,
|
|
1519
|
-
stdout: "",
|
|
1520
|
-
stderr: `${error instanceof Error ? error.message : String(error)}\n`,
|
|
1521
|
-
};
|
|
1522
|
-
}
|
|
1523
|
-
return {
|
|
1524
|
-
cwd,
|
|
1525
|
-
nativePlugins,
|
|
1526
|
-
pluginConfigDir: (0, sharedHostHelpers_1.resolvePluginConfigDir)({
|
|
1527
|
-
cwd,
|
|
1528
|
-
pluginConfigDir: options.pluginConfigDir,
|
|
1529
|
-
}),
|
|
1530
|
-
pluginSetupFailure,
|
|
1531
|
-
project,
|
|
1532
|
-
projectNoEmit: project.compilerOptions.noEmit === true,
|
|
1533
|
-
projectRoot,
|
|
1534
|
-
rewriteRelativeImportExtensionsForEmit: options.emit === true &&
|
|
1535
|
-
project.compilerOptions.allowImportingTsExtensions === true,
|
|
1536
|
-
tsgo,
|
|
1537
|
-
tsconfig,
|
|
1538
|
-
};
|
|
1539
|
-
}
|
|
1540
|
-
/**
|
|
1541
|
-
* Extract `TSFILE: <path>` lines from tsgo stdout and return the absolute
|
|
1542
|
-
* paths. tsgo emits these when `--listEmittedFiles` is passed.
|
|
1543
|
-
*/
|
|
1544
|
-
function parseEmittedFiles(stdout) {
|
|
1545
|
-
const out = [];
|
|
1546
|
-
for (const line of stdout.split(/\r?\n/)) {
|
|
1547
|
-
const match = line.match(/^TSFILE:\s*(.+)$/);
|
|
1548
|
-
if (match?.[1]) {
|
|
1549
|
-
out.push(node_path_1.default.resolve(match[1].trim()));
|
|
1550
|
-
}
|
|
1551
|
-
}
|
|
1552
|
-
return out;
|
|
1553
|
-
}
|
|
1554
|
-
/**
|
|
1555
|
-
* Remove `TSFILE:` lines from tsgo stdout so they do not appear in the
|
|
1556
|
-
* user-facing output after they have been parsed into `emittedFiles`.
|
|
1557
|
-
*/
|
|
1558
|
-
function stripEmittedFileLines(stdout) {
|
|
1559
|
-
return stdout
|
|
1560
|
-
.split(/\r?\n/)
|
|
1561
|
-
.filter((line) => !/^TSFILE:\s*/.test(line))
|
|
1562
|
-
.join("\n")
|
|
1563
|
-
.replace(/\n+$/, "");
|
|
1564
|
-
}
|
|
1565
|
-
/**
|
|
1566
|
-
* Normalise a raw spawn result into a `TtscBuildResult`.
|
|
1567
|
-
*
|
|
1568
|
-
* When `diagnostics` is absent they are parsed from the text output. When the
|
|
1569
|
-
* process exited non-zero but stderr is empty and stdout is non-empty, stdout
|
|
1570
|
-
* is moved to stderr so the error is visible to callers who only check stderr.
|
|
1571
|
-
*/
|
|
1572
|
-
function normalizeBuildOutput(result, cwd) {
|
|
1573
|
-
const diagnostics = result.diagnostics ?? parseCompilerDiagnostics(result, cwd);
|
|
1574
|
-
if (result.status === 0 || result.stderr.trim().length !== 0) {
|
|
1575
|
-
return { ...result, diagnostics };
|
|
1576
|
-
}
|
|
1577
|
-
if (result.stdout.trim().length === 0) {
|
|
1578
|
-
return { ...result, diagnostics };
|
|
1579
|
-
}
|
|
1580
|
-
return {
|
|
1581
|
-
diagnostics,
|
|
1582
|
-
emittedFiles: result.emittedFiles,
|
|
1583
|
-
status: result.status,
|
|
1584
|
-
stdout: "",
|
|
1585
|
-
stderr: result.stdout,
|
|
1586
|
-
};
|
|
1587
|
-
}
|
|
1588
|
-
/**
|
|
1589
|
-
* Parse structured diagnostics from the combined stderr+stdout text when the
|
|
1590
|
-
* caller did not supply pre-parsed diagnostics. ANSI escape codes are stripped
|
|
1591
|
-
* and `TSFILE:` / `Found N errors` summary lines are skipped.
|
|
1592
|
-
*/
|
|
1593
|
-
function parseCompilerDiagnostics(result, cwd) {
|
|
1594
|
-
const lines = stripAnsi(`${result.stderr}\n${result.stdout}`).split(/\r?\n/);
|
|
1595
|
-
const out = [];
|
|
1596
|
-
let current;
|
|
1597
|
-
for (const line of lines) {
|
|
1598
|
-
if (line.length === 0 || /^TSFILE:\s*/.test(line)) {
|
|
1599
|
-
continue;
|
|
1600
|
-
}
|
|
1601
|
-
if (/^Found\s+\d+\s+errors?/i.test(line)) {
|
|
1602
|
-
continue;
|
|
1603
|
-
}
|
|
1604
|
-
const diagnostic = parseDiagnosticLine(line, cwd);
|
|
1605
|
-
if (diagnostic !== null) {
|
|
1606
|
-
current = diagnostic;
|
|
1607
|
-
out.push(current);
|
|
1608
|
-
continue;
|
|
1609
|
-
}
|
|
1610
|
-
if (current !== undefined && /^\s+/.test(line)) {
|
|
1611
|
-
current.messageText += `\n${line.trimEnd()}`;
|
|
1612
|
-
}
|
|
1613
|
-
}
|
|
1614
|
-
return out;
|
|
1615
|
-
}
|
|
1616
|
-
/**
|
|
1617
|
-
* Try to parse a single line as a TypeScript compiler diagnostic in one of
|
|
1618
|
-
* three formats:
|
|
1619
|
-
*
|
|
1620
|
-
* - `file:line:col - category TSxxxx: message` (colon-separated, tsgo style)
|
|
1621
|
-
* - `file(line,col): category TSxxxx: message` (paren style, classic tsc)
|
|
1622
|
-
* - `category TSxxxx: message` (global, no file)
|
|
1623
|
-
*
|
|
1624
|
-
* Returns `null` when the line does not match any format.
|
|
1625
|
-
*/
|
|
1626
|
-
function parseDiagnosticLine(line, cwd) {
|
|
1627
|
-
const colonMatch = line.match(/^(.+):(\d+):(\d+)\s+-\s+(error|warning|suggestion|message)\s+([A-Z]+)?(\d+|[A-Z][A-Z0-9_-]*):\s+(.+)$/i);
|
|
1628
|
-
if (colonMatch) {
|
|
1629
|
-
return {
|
|
1630
|
-
category: normalizeDiagnosticCategory(colonMatch[4]),
|
|
1631
|
-
character: Number(colonMatch[3]),
|
|
1632
|
-
code: normalizeDiagnosticCode(colonMatch[6]),
|
|
1633
|
-
file: normalizeDiagnosticFile(colonMatch[1], cwd),
|
|
1634
|
-
line: Number(colonMatch[2]),
|
|
1635
|
-
messageText: colonMatch[7],
|
|
1636
|
-
};
|
|
1637
|
-
}
|
|
1638
|
-
const fileMatch = line.match(/^(.+?)\((\d+),(\d+)\):\s+(error|warning|suggestion|message)\s+([A-Z]+)?(\d+|[A-Z][A-Z0-9_-]*):\s+(.+)$/i);
|
|
1639
|
-
if (fileMatch) {
|
|
1640
|
-
return {
|
|
1641
|
-
category: normalizeDiagnosticCategory(fileMatch[4]),
|
|
1642
|
-
character: Number(fileMatch[3]),
|
|
1643
|
-
code: normalizeDiagnosticCode(fileMatch[6]),
|
|
1644
|
-
file: normalizeDiagnosticFile(fileMatch[1], cwd),
|
|
1645
|
-
line: Number(fileMatch[2]),
|
|
1646
|
-
messageText: fileMatch[7],
|
|
1647
|
-
};
|
|
1648
|
-
}
|
|
1649
|
-
const globalMatch = line.match(/^(error|warning|suggestion|message)\s+([A-Z]+)?(\d+|[A-Z][A-Z0-9_-]*):\s+(.+)$/i);
|
|
1650
|
-
if (!globalMatch) {
|
|
1651
|
-
return null;
|
|
1652
|
-
}
|
|
1653
|
-
return {
|
|
1654
|
-
category: normalizeDiagnosticCategory(globalMatch[1]),
|
|
1655
|
-
code: normalizeDiagnosticCode(globalMatch[3]),
|
|
1656
|
-
file: null,
|
|
1657
|
-
messageText: globalMatch[4],
|
|
1658
|
-
};
|
|
1659
|
-
}
|
|
1660
|
-
/**
|
|
1661
|
-
* Return an absolute file path. When `file` is already absolute it is returned
|
|
1662
|
-
* unchanged; relative paths are resolved against `cwd` when available.
|
|
1663
|
-
*/
|
|
1664
|
-
function normalizeDiagnosticFile(file, cwd) {
|
|
1665
|
-
if (node_path_1.default.isAbsolute(file) || cwd === undefined) {
|
|
1666
|
-
return file;
|
|
1667
|
-
}
|
|
1668
|
-
return node_path_1.default.resolve(cwd, file);
|
|
1669
|
-
}
|
|
1670
|
-
/**
|
|
1671
|
-
* Map a raw category string (`"error"`, `"warning"`, `"suggestion"`,
|
|
1672
|
-
* `"message"`) to the canonical `ITtscCompilerDiagnostic.Category`. Any
|
|
1673
|
-
* unrecognised value is coerced to `"error"`.
|
|
1674
|
-
*/
|
|
1675
|
-
function normalizeDiagnosticCategory(value) {
|
|
1676
|
-
const lowered = value.toLowerCase();
|
|
1677
|
-
return lowered === "warning" ||
|
|
1678
|
-
lowered === "suggestion" ||
|
|
1679
|
-
lowered === "message"
|
|
1680
|
-
? lowered
|
|
1681
|
-
: "error";
|
|
1682
|
-
}
|
|
1683
|
-
/**
|
|
1684
|
-
* Parse a diagnostic code as a number when it is all digits (TS numeric codes
|
|
1685
|
-
* like `2322`), or keep it as a string for plugin-defined alphanumeric codes.
|
|
1686
|
-
*/
|
|
1687
|
-
function normalizeDiagnosticCode(value) {
|
|
1688
|
-
return /^\d+$/.test(value) ? Number(value) : value;
|
|
1689
|
-
}
|
|
1690
|
-
/** Strip ANSI escape sequences from `text` for line-by-line diagnostic parsing. */
|
|
1691
|
-
function stripAnsi(text) {
|
|
1692
|
-
return text.replace(/\x1b\[[0-9;?]*[ -/]*[@-~]/g, "");
|
|
1693
|
-
}
|
|
1694
|
-
//# sourceMappingURL=runBuild.js.map
|