ttsc 0.30.4 → 0.31.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +439 -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/started_windows.go +41 -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_started_publication_distinguishes_pending_from_refusal_test.go +76 -0
- package/internal/sourceprocess/windows_target_owns_suspended_admission_test.go +179 -0
- package/internal/watchhelper/run.go +42 -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/run_windows.go +471 -0
- package/internal/watchhelper/watchhelper.go +106 -0
- package/internal/watchhelper/windows_notifications_preserve_mutations_without_access_noise_test.go +506 -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 +112 -0
- package/lib/plugin/internal/load/loadProjectPlugins.js +1640 -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/GoEnvironmentReading.d.ts +42 -0
- package/lib/plugin/internal/source/GoEnvironmentReading.js +110 -0
- package/lib/plugin/internal/source/GoEnvironmentReading.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 +330 -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 +111 -0
- package/lib/plugin/internal/source/PluginBuildEnvironmentReadings.js +243 -0
- package/lib/plugin/internal/source/PluginBuildEnvironmentReadings.js.map +1 -0
- package/lib/plugin/internal/source/PluginBuildEnvironmentWitness.d.ts +130 -0
- package/lib/plugin/internal/source/PluginBuildEnvironmentWitness.js +215 -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 +153 -0
- package/lib/plugin/internal/source/SourcePluginWorkspace.js +394 -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 +89 -0
- package/lib/plugin/internal/source/buildSourcePlugin.js +862 -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 +75 -0
- package/lib/plugin/internal/source/computeCacheKey.js +122 -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 +597 -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 +41 -0
- package/lib/plugin/internal/source/pluginModuleReplaceDirectories.js +74 -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 +2334 -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/GoEnvironmentReading.ts +109 -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 +428 -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 +273 -0
- package/src/plugin/internal/source/PluginBuildEnvironmentWitness.ts +243 -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 +564 -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 +1225 -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 +208 -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 +735 -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 +84 -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
|
@@ -0,0 +1,1988 @@
|
|
|
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.installRuntimeHooks = installRuntimeHooks;
|
|
7
|
+
const node_crypto_1 = __importDefault(require("node:crypto"));
|
|
8
|
+
const node_fs_1 = __importDefault(require("node:fs"));
|
|
9
|
+
const node_module_1 = require("node:module");
|
|
10
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
11
|
+
const node_url_1 = require("node:url");
|
|
12
|
+
const EmitOwnershipIndex_1 = require("../../../compiler/internal/EmitOwnershipIndex");
|
|
13
|
+
const privateRuntimeRootDir_1 = require("../../../compiler/internal/build/privateRuntimeRootDir");
|
|
14
|
+
const runBuild_1 = require("../../../compiler/internal/build/runBuild");
|
|
15
|
+
const readProjectConfig_1 = require("../../../compiler/internal/project/readProjectConfig");
|
|
16
|
+
const resolveOwningProjectConfig_1 = require("../../../compiler/internal/project/resolveOwningProjectConfig");
|
|
17
|
+
const resolveTsgo_1 = require("../../../compiler/internal/resolveTsgo");
|
|
18
|
+
const spawnNative_1 = require("../../../compiler/internal/spawnNative");
|
|
19
|
+
const E2ETrace_1 = require("../../../internal/E2ETrace");
|
|
20
|
+
const createCanonicalTempDirectory_1 = require("../../../internal/createCanonicalTempDirectory");
|
|
21
|
+
const runtimeExecutableIdentity_1 = require("../../../internal/runtimeExecutableIdentity");
|
|
22
|
+
const moduleResolutionBaseSelects_1 = require("../../../plugin/internal/load/moduleResolutionBaseSelects");
|
|
23
|
+
const recordCacheFileUse_1 = require("../../../plugin/internal/source/recordCacheFileUse");
|
|
24
|
+
const buildSingleRootProject_1 = require("../buildSingleRootProject");
|
|
25
|
+
const inlineServedSourceMap_1 = require("../inlineServedSourceMap");
|
|
26
|
+
const runtimeCompilerArgs_1 = require("../runtimeCompilerArgs");
|
|
27
|
+
const CommonJsRuntimeSource_1 = require("./CommonJsRuntimeSource");
|
|
28
|
+
const DependencyBuildAdmission_1 = require("./DependencyBuildAdmission");
|
|
29
|
+
const DependencyBuildGeneration_1 = require("./DependencyBuildGeneration");
|
|
30
|
+
const OwnedProjectSource_1 = require("./OwnedProjectSource");
|
|
31
|
+
const PluginDescriptorInputObservation_1 = require("./PluginDescriptorInputObservation");
|
|
32
|
+
const RuntimeEmitProvenance_1 = require("./RuntimeEmitProvenance");
|
|
33
|
+
const RuntimeFilesystem_1 = require("./RuntimeFilesystem");
|
|
34
|
+
const RuntimeIsolatedEmit_1 = require("./RuntimeIsolatedEmit");
|
|
35
|
+
const RuntimeLoaderCapabilities_1 = require("./RuntimeLoaderCapabilities");
|
|
36
|
+
const RuntimeManifestRegistry_1 = require("./RuntimeManifestRegistry");
|
|
37
|
+
const RuntimeProjectOwnership_1 = require("./RuntimeProjectOwnership");
|
|
38
|
+
const RuntimeModuleFormat_1 = require("./RuntimeModuleFormat");
|
|
39
|
+
const checkNodeRuntimeSupport_1 = require("./checkNodeRuntimeSupport");
|
|
40
|
+
const commonJsExportNames_1 = require("./commonJsExportNames");
|
|
41
|
+
const commonJsImportFacade_1 = require("./commonJsImportFacade");
|
|
42
|
+
const dependencyCacheKey_1 = require("./dependencyCacheKey");
|
|
43
|
+
const dependencyCacheRoot_1 = require("./dependencyCacheRoot");
|
|
44
|
+
const observeMappedDescriptorResolution_1 = require("./observeMappedDescriptorResolution");
|
|
45
|
+
const projectModuleOptions_1 = require("./projectModuleOptions");
|
|
46
|
+
const readDependencyCache_1 = require("./readDependencyCache");
|
|
47
|
+
const realPath_1 = require("./realPath");
|
|
48
|
+
const restoreStrippedNodeBuiltinScheme_1 = require("./restoreStrippedNodeBuiltinScheme");
|
|
49
|
+
const selectRuntimePluginPolicy_1 = require("./selectRuntimePluginPolicy");
|
|
50
|
+
/**
|
|
51
|
+
* Install the source-loading hooks on the current (main) thread. Idempotent:
|
|
52
|
+
* the preload on `NODE_OPTIONS` installs them in the entry process and in every
|
|
53
|
+
* child process the program spawns, and `ttsc/register` may install them again
|
|
54
|
+
* in a process that already has them.
|
|
55
|
+
*
|
|
56
|
+
* Prepared entries use their owner's build, including its selected transform
|
|
57
|
+
* plugins, under source URLs so `__dirname`/`import.meta.url` keep source-tree
|
|
58
|
+
* coordinates. Callback-prepared and direct prebuilt entry admission are
|
|
59
|
+
* distinct from dependency builds and orphan recovery; this installer does not
|
|
60
|
+
* certify that every dynamically loaded module has passed an entry type-check
|
|
61
|
+
* gate. Three load paths:
|
|
62
|
+
*
|
|
63
|
+
* 1. A `.ts` belonging to the entry project: serve the pre-built emitted JS
|
|
64
|
+
* (transform plugins already applied) under the producer's captured physical
|
|
65
|
+
* source-to-written-output ownership.
|
|
66
|
+
* 2. Any other raw `.ts` dependency (a published or workspace package that ships
|
|
67
|
+
* source): build its own owning `tsconfig.json` once via `runBuild` and
|
|
68
|
+
* serve the emit. A real build (not a type-strip) is required because Node's
|
|
69
|
+
* type-stripping cannot do cross-file type-only elision; a value-shaped
|
|
70
|
+
* import of a type+namespace merge survives stripping and dangles at run
|
|
71
|
+
* time.
|
|
72
|
+
* 3. No owning tsconfig: use an isolated tsgo emit in the runtime module format,
|
|
73
|
+
* lowering standard decorators and CommonJS imports/exports. Type stripping
|
|
74
|
+
* remains recovery when no compiler emit is available.
|
|
75
|
+
*
|
|
76
|
+
* The hooks are synchronous and run on the main thread (not a loader worker):
|
|
77
|
+
* that is what lets a CommonJS `require("./x")` chain reach them and what makes
|
|
78
|
+
* `require.resolve(..., { paths })` inside `runBuild`'s plugin loader behave.
|
|
79
|
+
*
|
|
80
|
+
* Both graphs go through `registerHooks`, the supported customization API. A
|
|
81
|
+
* CommonJS module an ESM `import` reaches may need an ESM facade that loads it
|
|
82
|
+
* through the CommonJS loader (`commonJsImportFacade`): handed to the ESM
|
|
83
|
+
* loader with source, the module's own `require()` bypasses the hooks on some
|
|
84
|
+
* releases, so a nested `require("./x.js")` backed only by `x.ts` failed there.
|
|
85
|
+
* Capability and entry predicates also admit direct CommonJS source lanes. One
|
|
86
|
+
* reach the API lacks on some releases is `require.resolve`, which is probed
|
|
87
|
+
* before installation. Served CommonJS bodies receive an owned require function
|
|
88
|
+
* whose resolve member applies the same source policy on those releases. Its
|
|
89
|
+
* copied extension registry advertises the supported source extensions; foreign
|
|
90
|
+
* resolver methods and global extension registries are never replaced.
|
|
91
|
+
*
|
|
92
|
+
* Direct descriptor evaluation records user preloads after hook installation.
|
|
93
|
+
* Only the generated CommonJS output sibling takes Node's native resolve/load
|
|
94
|
+
* path; its synchronous bootstrap suspends recording of implementation imports.
|
|
95
|
+
* This does not certify startup inputs read before the hooks were installed.
|
|
96
|
+
*
|
|
97
|
+
* @evidence contracts/common.md#principled-implementation Resolution preserves successful Node decisions, rescues source spellings only after documented resolution fails, and serves only outputs whose ownership index names the exact source. CommonJS facades delegate native evaluation and project detected own named exports under the selected namespace capability; an owned module-local require supplies source resolution when native require.resolve bypasses public hooks.
|
|
98
|
+
* @evidence contracts/common.md#clear-and-simple-design One synchronous hook owner coordinates source selection, emission ownership and descriptor observation; the entry, owning-project and orphan lanes remain explicit because they have distinct compilation premises. Private helpers carry those policies without a second foreign-resolver layer.
|
|
99
|
+
* @evidence contracts/common.md#prohibited-implementation-shortcuts Public registerHooks handles resolution and loading; installation mutates neither Module._resolveFilename nor require.extensions. Source-extension recovery implements emitted-to-source spelling under the runtime contract, and module-local require adaptation addresses the probed public-hook difference without replacing Node methods.
|
|
100
|
+
* @evidence contracts/common.md#meaningful-documentation Native paragraphs describe the three serving lanes, compile gates, source identity, capability-based local adaptation and extension-registry ownership; helper comments state ownership and failure effects with descriptive prose separated from tags.
|
|
101
|
+
* @evidence contracts/portability.md#os-neutral-implementation Node URL conversion, native filesystem paths and physical resolution preserve OS spelling boundaries. Actual public-hook probes select runtime capabilities, native emit uses executable arguments without shell interpolation, and unresolved filesystem observation refuses reusable descriptor proof.
|
|
102
|
+
* @evidence contracts/performance.md#efficient-algorithms Source ownership indexes replace repeated whole-emit scans with indexed source/native-identity queries. Export discovery processes source/emit bytes, reexport edges, native resolution and Set/name unions under traversal-local seen sets; separate roots can repeat traversal. Config-chain validation reads discovered inputs. Compiler identity brackets and streams executable bytes on valid lookups, refusing failed observations. Native build/name-scan/orphan paths add compilation, path/metadata/IO cost; recursive graphs remain subject to stack limits.
|
|
103
|
+
* @evidence contracts/performance.md#reuse-equivalent-work Entry emits and dependency generations are shared within the current run; project/root keys include the same captured plugin policy compilation consumes, root keys also include source bytes, and orphan keys include source bytes, format, lowering policy and content-proven compiler identity. Nearest-config selection revalidates candidate existence. Project and failed-build memos still use a helper-instance module-evaluation snapshot and do not certify arbitrary mid-run config or dependency edits.
|
|
104
|
+
* @evidence contracts/performance.md#bound-retention-and-release-resources This installed helper retains hooks, callback and memoized module roles/builds, growing with distinct projects, roots and export scans without an eviction cap. Synchronous isolated output/publication staging paths attempt cleanup; failed native removal can propagate or add a causal cleanup error rather than certify release. WeakMap indexes do not independently retain their build keys. Node module caches and cross-process generations have their separate retention owners.
|
|
105
|
+
*/
|
|
106
|
+
function installRuntimeHooks(options = {}) {
|
|
107
|
+
if (options.prepareEntry !== undefined) {
|
|
108
|
+
prepareRuntimeEntry = options.prepareEntry;
|
|
109
|
+
}
|
|
110
|
+
if (installed) {
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
assertNodeRuntimeSupport();
|
|
114
|
+
// Probed before the runtime's hooks exist, so nothing the probes load is
|
|
115
|
+
// served or recorded as an input of the program.
|
|
116
|
+
nativeRequireResolveHooks =
|
|
117
|
+
RuntimeLoaderCapabilities_1.RuntimeLoaderCapabilities.requireResolveConsultsHooks();
|
|
118
|
+
CommonJsRuntimeSource_1.CommonJsRuntimeSource.configure(resolveCommonJsRequest, !nativeRequireResolveHooks);
|
|
119
|
+
RuntimeLoaderCapabilities_1.RuntimeLoaderCapabilities.commonJsNamespaceCarriesModuleExports();
|
|
120
|
+
// Error stacks use the served source maps. This supported switch is applied
|
|
121
|
+
// only after the required public loader capabilities have been established.
|
|
122
|
+
if (typeof process.setSourceMapsEnabled === "function") {
|
|
123
|
+
process.setSourceMapsEnabled(true);
|
|
124
|
+
}
|
|
125
|
+
(0, node_module_1.registerHooks)({ load, resolve });
|
|
126
|
+
PluginDescriptorInputObservation_1.PluginDescriptorInputObservation.begin(true);
|
|
127
|
+
installed = true;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Actual public-hook coverage determines whether module-local resolve needs
|
|
131
|
+
* adaptation.
|
|
132
|
+
*/
|
|
133
|
+
let nativeRequireResolveHooks = true;
|
|
134
|
+
/**
|
|
135
|
+
* Preserve native resolution first and apply the existing source policy to an
|
|
136
|
+
* owned require.
|
|
137
|
+
*/
|
|
138
|
+
function resolveCommonJsRequest(native, specifier, options, filename) {
|
|
139
|
+
if (nativeRequireResolveHooks || typeof specifier !== "string")
|
|
140
|
+
return native(specifier, options);
|
|
141
|
+
const parents = node_path_1.default.isAbsolute(specifier)
|
|
142
|
+
? [undefined]
|
|
143
|
+
: options?.paths === undefined
|
|
144
|
+
? [(0, node_url_1.pathToFileURL)(filename).href]
|
|
145
|
+
: Array.isArray(options.paths) &&
|
|
146
|
+
options.paths.every((entry) => typeof entry === "string")
|
|
147
|
+
? options.paths.map((entry) => (0, node_url_1.pathToFileURL)(node_path_1.default.join(node_path_1.default.resolve(entry), "index.js")).href)
|
|
148
|
+
: [];
|
|
149
|
+
const observations = parents.map((parent) => observePluginDescriptorResolutionCandidates(specifier, parent));
|
|
150
|
+
let selected;
|
|
151
|
+
try {
|
|
152
|
+
try {
|
|
153
|
+
const resolved = native(specifier, options);
|
|
154
|
+
if (node_path_1.default.isAbsolute(resolved))
|
|
155
|
+
selected = (0, node_url_1.pathToFileURL)(resolved).href;
|
|
156
|
+
if (selected !== undefined)
|
|
157
|
+
recordPluginDescriptorResolution(specifier, parents[0], selected);
|
|
158
|
+
return resolved;
|
|
159
|
+
}
|
|
160
|
+
catch (error) {
|
|
161
|
+
for (const parent of parents) {
|
|
162
|
+
const rescued = probeRescuableSpecifier(specifier, parent);
|
|
163
|
+
if (rescued === null)
|
|
164
|
+
continue;
|
|
165
|
+
selected = rescued;
|
|
166
|
+
recordPluginDescriptorResolution(specifier, parent, rescued);
|
|
167
|
+
return (0, node_url_1.fileURLToPath)(rescued);
|
|
168
|
+
}
|
|
169
|
+
throw error;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
finally {
|
|
173
|
+
for (const observation of observations)
|
|
174
|
+
observation.commit(selected);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
/** Source/JS extensions probed when an extensionless relative import fails. */
|
|
178
|
+
const RESOLVABLE_EXTENSIONS = [
|
|
179
|
+
".ts",
|
|
180
|
+
".tsx",
|
|
181
|
+
".mts",
|
|
182
|
+
".cts",
|
|
183
|
+
".js",
|
|
184
|
+
".mjs",
|
|
185
|
+
".cjs",
|
|
186
|
+
];
|
|
187
|
+
/** Union of the ttsx rescue probes and Node's built-in CommonJS probes. */
|
|
188
|
+
const DESCRIPTOR_PROBE_EXTENSIONS = [
|
|
189
|
+
...RESOLVABLE_EXTENSIONS,
|
|
190
|
+
".json",
|
|
191
|
+
".node",
|
|
192
|
+
];
|
|
193
|
+
/** TypeScript source extensions these hooks compile. */
|
|
194
|
+
const TYPESCRIPT_EXTENSIONS = [".ts", ".tsx", ".mts", ".cts"];
|
|
195
|
+
/**
|
|
196
|
+
* Throw an actionable version error when the current Node.js cannot run the
|
|
197
|
+
* ttsx source runtime. Guards the hook-installation boundary directly (a child
|
|
198
|
+
* or grandchild that inherits the runtime preload under an unsupported Node) so
|
|
199
|
+
* the failure is diagnosed here instead of surfacing as a bare `TypeError:
|
|
200
|
+
* registerHooks is not a function`.
|
|
201
|
+
*/
|
|
202
|
+
function assertNodeRuntimeSupport() {
|
|
203
|
+
const message = (0, checkNodeRuntimeSupport_1.checkNodeRuntimeSupport)(process.versions.node);
|
|
204
|
+
if (message !== null) {
|
|
205
|
+
throw new Error(message);
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
let installed = false;
|
|
209
|
+
let prepareRuntimeEntry;
|
|
210
|
+
/** TypeScript URLs resolved at a JavaScript-to-TypeScript entry boundary. */
|
|
211
|
+
const runtimeEntryUrls = new Set();
|
|
212
|
+
/**
|
|
213
|
+
* The process entry, where Node's ESM loader opens it: resolved with no parent
|
|
214
|
+
* and without the `require` condition, as an `--import` preload makes Node run
|
|
215
|
+
* every entry. A CommonJS entry is handed to Node with its source rather than
|
|
216
|
+
* as the facade, so Node loads it as the main module.
|
|
217
|
+
*/
|
|
218
|
+
const esmEntryUrls = new Set();
|
|
219
|
+
/**
|
|
220
|
+
* CommonJS modules the ESM loader evaluates from their source on a runtime
|
|
221
|
+
* whose `require` is then Node's narrower one
|
|
222
|
+
* (`RuntimeLoaderCapabilities.hookedCommonJsImportKeepsRequire`).
|
|
223
|
+
*/
|
|
224
|
+
const narrowRequireUrls = new Set();
|
|
225
|
+
/**
|
|
226
|
+
* Modules a {@link narrowRequireUrls} module asks for. That `require` loads
|
|
227
|
+
* through the ESM loader and accepts only a module Node evaluates as CommonJS,
|
|
228
|
+
* so a CommonJS module it asks for is handed to Node with its source, never as
|
|
229
|
+
* the facade, which is an ES module.
|
|
230
|
+
*/
|
|
231
|
+
const narrowRequestedUrls = new Set();
|
|
232
|
+
/**
|
|
233
|
+
* Rescue an extensionless or directory relative specifier that Node's resolver
|
|
234
|
+
* rejected. Only runs after `nextResolve` throws, so a successful resolution is
|
|
235
|
+
* never perturbed; a genuinely missing module finds no candidate and the
|
|
236
|
+
* original error is rethrown, preserving `ERR_MODULE_NOT_FOUND`.
|
|
237
|
+
*/
|
|
238
|
+
function resolve(specifier, context, nextResolve) {
|
|
239
|
+
// The generated file belongs to the evaluator. Other roots, including user
|
|
240
|
+
// --import preloads, retain ordinary resolution and input observations.
|
|
241
|
+
if (isDescriptorEvaluatorBootstrap(specifier))
|
|
242
|
+
return nextResolve(specifier, context);
|
|
243
|
+
const candidates = observePluginDescriptorResolutionCandidates(specifier, context.parentURL);
|
|
244
|
+
// The URL the resolution settled on, or `undefined` while it has not: a
|
|
245
|
+
// resolution that throws probed every candidate, so all of them are kept.
|
|
246
|
+
let selected;
|
|
247
|
+
try {
|
|
248
|
+
let result;
|
|
249
|
+
try {
|
|
250
|
+
result = rememberRuntimeEntry((0, restoreStrippedNodeBuiltinScheme_1.restoreStrippedNodeBuiltinScheme)(specifier, nextResolve(specifier, context)), context);
|
|
251
|
+
}
|
|
252
|
+
catch (error) {
|
|
253
|
+
const rescued = probeRescuableSpecifier(specifier, context.parentURL);
|
|
254
|
+
if (rescued === null) {
|
|
255
|
+
throw error;
|
|
256
|
+
}
|
|
257
|
+
result = rememberRuntimeEntry({ shortCircuit: true, url: rescued }, context);
|
|
258
|
+
}
|
|
259
|
+
selected = result.url;
|
|
260
|
+
recordPluginDescriptorResolution(specifier, context.parentURL, result.url);
|
|
261
|
+
const moduleApi = CommonJsRuntimeSource_1.CommonJsRuntimeSource.moduleSource();
|
|
262
|
+
if (!nativeRequireResolveHooks &&
|
|
263
|
+
result.url === "node:module" &&
|
|
264
|
+
context.parentURL !== moduleApi.url &&
|
|
265
|
+
!isDescriptorEvaluatorBootstrap(context.parentURL ?? ""))
|
|
266
|
+
return { shortCircuit: true, url: moduleApi.url };
|
|
267
|
+
rememberCommonJsImportRole(result.url, context);
|
|
268
|
+
return result;
|
|
269
|
+
}
|
|
270
|
+
finally {
|
|
271
|
+
candidates.commit(selected);
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
/**
|
|
275
|
+
* Fingerprint every path whose state can redirect one descriptor import, and
|
|
276
|
+
* report the ones the resolution could have read once it settles.
|
|
277
|
+
*
|
|
278
|
+
* The fingerprints are taken before the real resolver runs. Reporting
|
|
279
|
+
* candidates only after the descriptor finished would pair an earlier
|
|
280
|
+
* descriptor result with later file state when a higher-priority candidate
|
|
281
|
+
* appeared during evaluation. They are reported only when the resolution
|
|
282
|
+
* settles, because a bare specifier's search stops at the first root whose
|
|
283
|
+
* package it selects (`moduleResolutionBaseSelects`): the roots after it were
|
|
284
|
+
* never read, and a missing candidate there, proven absent by the metadata of a
|
|
285
|
+
* directory as busy as a home directory, would cost the descriptor its cache
|
|
286
|
+
* proof for a path that cannot have steered it. A resolution that fails read
|
|
287
|
+
* every root, so `commit(undefined)` reports them all.
|
|
288
|
+
*/
|
|
289
|
+
function observePluginDescriptorResolutionCandidates(specifier, parentURL) {
|
|
290
|
+
const inactive = { commit: () => undefined };
|
|
291
|
+
if (process.env.TTSC_PLUGIN_DESCRIPTOR_INPUTS_ACTIVE !== "1")
|
|
292
|
+
return inactive;
|
|
293
|
+
if ((0, node_module_1.isBuiltin)(specifier) || specifier.startsWith("node:"))
|
|
294
|
+
return inactive;
|
|
295
|
+
const parent = runtimeFilePath(parentURL);
|
|
296
|
+
if (parent === undefined)
|
|
297
|
+
return inactive;
|
|
298
|
+
// Mapped targets use the shared recorder's earlier witnesses. A later
|
|
299
|
+
// candidate read cannot replace a proof withdrawn during this window.
|
|
300
|
+
if (specifier.startsWith("#")) {
|
|
301
|
+
const observation = (0, observeMappedDescriptorResolution_1.observeMappedDescriptorResolution)(specifier, parent, DESCRIPTOR_PROBE_EXTENSIONS);
|
|
302
|
+
return {
|
|
303
|
+
commit: (selectedURL) => {
|
|
304
|
+
appendPluginDescriptorInputs(observation
|
|
305
|
+
.commit(selectedURL === undefined ? undefined : runtimeFilePath(selectedURL))
|
|
306
|
+
.map((record) => `${JSON.stringify({ parent, ...record })}\n`));
|
|
307
|
+
},
|
|
308
|
+
};
|
|
309
|
+
}
|
|
310
|
+
// Candidates of a relative or absolute specifier, and those of each search
|
|
311
|
+
// root of a bare one, in search order.
|
|
312
|
+
const local = [];
|
|
313
|
+
const roots = [];
|
|
314
|
+
let lines = local;
|
|
315
|
+
const recorded = new Set();
|
|
316
|
+
const record = (candidate) => {
|
|
317
|
+
const resolved = node_path_1.default.resolve(candidate);
|
|
318
|
+
if (recorded.has(resolved))
|
|
319
|
+
return;
|
|
320
|
+
recorded.add(resolved);
|
|
321
|
+
lines.push(...observePluginDescriptorInput({
|
|
322
|
+
parent,
|
|
323
|
+
resolved,
|
|
324
|
+
}));
|
|
325
|
+
};
|
|
326
|
+
const commit = (selectedURL) => {
|
|
327
|
+
const selected = selectedURL === undefined ? undefined : runtimeFilePath(selectedURL);
|
|
328
|
+
const reached = roots.findIndex((root) => (0, moduleResolutionBaseSelects_1.moduleResolutionBaseSelects)(root.directory, selected, DESCRIPTOR_PROBE_EXTENSIONS));
|
|
329
|
+
appendPluginDescriptorInputs([
|
|
330
|
+
...local,
|
|
331
|
+
...(reached === -1 ? roots : roots.slice(0, reached + 1)).flatMap((root) => root.lines),
|
|
332
|
+
]);
|
|
333
|
+
};
|
|
334
|
+
const recordManifestTargets = (value, directory, allowBare = false) => {
|
|
335
|
+
if (typeof value === "string") {
|
|
336
|
+
if (value !== "" &&
|
|
337
|
+
(allowBare || value.startsWith("./") || value.startsWith("../"))) {
|
|
338
|
+
recordBase(node_path_1.default.resolve(directory, value));
|
|
339
|
+
}
|
|
340
|
+
return;
|
|
341
|
+
}
|
|
342
|
+
if (Array.isArray(value)) {
|
|
343
|
+
for (const item of value) {
|
|
344
|
+
recordManifestTargets(item, directory, allowBare);
|
|
345
|
+
}
|
|
346
|
+
return;
|
|
347
|
+
}
|
|
348
|
+
if (value !== null && typeof value === "object") {
|
|
349
|
+
for (const item of Object.values(value)) {
|
|
350
|
+
recordManifestTargets(item, directory, allowBare);
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
};
|
|
354
|
+
const recordPackageManifests = (file) => {
|
|
355
|
+
for (let directory = node_path_1.default.dirname(file);; directory = node_path_1.default.dirname(directory)) {
|
|
356
|
+
const manifest = node_path_1.default.join(directory, "package.json");
|
|
357
|
+
record(manifest);
|
|
358
|
+
if (RuntimeFilesystem_1.RuntimeFilesystem.isFile(manifest))
|
|
359
|
+
return;
|
|
360
|
+
const parentDirectory = node_path_1.default.dirname(directory);
|
|
361
|
+
if (parentDirectory === directory)
|
|
362
|
+
return;
|
|
363
|
+
}
|
|
364
|
+
};
|
|
365
|
+
const localBases = (value) => {
|
|
366
|
+
if (value.startsWith("file:"))
|
|
367
|
+
return [(0, node_url_1.fileURLToPath)(value)];
|
|
368
|
+
const raw = node_path_1.default.resolve(node_path_1.default.dirname(parent), value);
|
|
369
|
+
const suffixStart = value.search(/[?#]/);
|
|
370
|
+
if (suffixStart === -1)
|
|
371
|
+
return [raw];
|
|
372
|
+
const pathname = value.slice(0, suffixStart);
|
|
373
|
+
return pathname === ""
|
|
374
|
+
? [raw]
|
|
375
|
+
: [...new Set([raw, node_path_1.default.resolve(node_path_1.default.dirname(parent), pathname)])];
|
|
376
|
+
};
|
|
377
|
+
const bases = new Set();
|
|
378
|
+
const recordBase = (base) => {
|
|
379
|
+
const resolvedBase = node_path_1.default.resolve(base);
|
|
380
|
+
if (bases.has(resolvedBase))
|
|
381
|
+
return;
|
|
382
|
+
bases.add(resolvedBase);
|
|
383
|
+
record(resolvedBase);
|
|
384
|
+
for (const candidate of typescriptSourcesForJavaScriptSpecifier(resolvedBase)) {
|
|
385
|
+
record(candidate);
|
|
386
|
+
}
|
|
387
|
+
for (const extension of DESCRIPTOR_PROBE_EXTENSIONS) {
|
|
388
|
+
record(resolvedBase + extension);
|
|
389
|
+
}
|
|
390
|
+
const manifestFile = node_path_1.default.join(resolvedBase, "package.json");
|
|
391
|
+
record(manifestFile);
|
|
392
|
+
for (const extension of DESCRIPTOR_PROBE_EXTENSIONS) {
|
|
393
|
+
record(node_path_1.default.join(resolvedBase, `index${extension}`));
|
|
394
|
+
}
|
|
395
|
+
try {
|
|
396
|
+
const manifest = JSON.parse(node_fs_1.default.readFileSync(manifestFile, "utf8").replace(/^\uFEFF/, ""));
|
|
397
|
+
recordManifestTargets(manifest.exports, resolvedBase);
|
|
398
|
+
recordManifestTargets(manifest.module, resolvedBase, true);
|
|
399
|
+
recordManifestTargets(manifest.main, resolvedBase, true);
|
|
400
|
+
}
|
|
401
|
+
catch {
|
|
402
|
+
// The real resolver owns malformed package diagnostics.
|
|
403
|
+
}
|
|
404
|
+
};
|
|
405
|
+
if (specifier.startsWith(".") ||
|
|
406
|
+
node_path_1.default.isAbsolute(specifier) ||
|
|
407
|
+
specifier.startsWith("file:")) {
|
|
408
|
+
try {
|
|
409
|
+
for (const base of localBases(specifier)) {
|
|
410
|
+
recordPackageManifests(base);
|
|
411
|
+
if (RuntimeFilesystem_1.RuntimeFilesystem.isFile(base))
|
|
412
|
+
record(base);
|
|
413
|
+
else
|
|
414
|
+
recordBase(base);
|
|
415
|
+
}
|
|
416
|
+
}
|
|
417
|
+
catch {
|
|
418
|
+
// The real resolver owns invalid URL spellings.
|
|
419
|
+
}
|
|
420
|
+
return { commit };
|
|
421
|
+
}
|
|
422
|
+
const parts = specifier.split("/");
|
|
423
|
+
const packageParts = parts[0]?.startsWith("@")
|
|
424
|
+
? parts.slice(0, 2)
|
|
425
|
+
: parts.slice(0, 1);
|
|
426
|
+
if (packageParts.some((part) => part === undefined || part === "")) {
|
|
427
|
+
return { commit };
|
|
428
|
+
}
|
|
429
|
+
const packageName = packageParts.join("/");
|
|
430
|
+
const subpath = parts.slice(packageParts.length);
|
|
431
|
+
for (const searchPath of (0, node_module_1.createRequire)(parent).resolve.paths(specifier) ??
|
|
432
|
+
[]) {
|
|
433
|
+
const packageDirectory = node_path_1.default.join(searchPath, packageName);
|
|
434
|
+
const root = { directory: packageDirectory, lines: [] };
|
|
435
|
+
roots.push(root);
|
|
436
|
+
lines = root.lines;
|
|
437
|
+
recordBase(packageDirectory);
|
|
438
|
+
if (subpath.length !== 0) {
|
|
439
|
+
recordBase(node_path_1.default.join(packageDirectory, ...subpath));
|
|
440
|
+
}
|
|
441
|
+
// CommonJS resolution continues past an existing but unusable package
|
|
442
|
+
// directory. Fingerprint every search root before the resolver runs so a
|
|
443
|
+
// farther selected package retains evaluation-time hashes for its
|
|
444
|
+
// superseding candidates.
|
|
445
|
+
}
|
|
446
|
+
return { commit };
|
|
447
|
+
}
|
|
448
|
+
/**
|
|
449
|
+
* Report one resolved descriptor edge to the parent loader. The channel is
|
|
450
|
+
* active for direct-evaluator user preloads after hook installation. The exact
|
|
451
|
+
* generated evaluator entry bypasses these hooks and suspends recording only
|
|
452
|
+
* while its synchronous implementation imports load; descriptor imports then
|
|
453
|
+
* resume it.
|
|
454
|
+
*/
|
|
455
|
+
function recordPluginDescriptorResolution(specifier, parentURL, resolvedURL) {
|
|
456
|
+
if (process.env.TTSC_PLUGIN_DESCRIPTOR_INPUTS_ACTIVE !== "1")
|
|
457
|
+
return;
|
|
458
|
+
const resolved = runtimeFilePath(resolvedURL);
|
|
459
|
+
if (resolved === undefined)
|
|
460
|
+
return;
|
|
461
|
+
const parent = runtimeFilePath(parentURL);
|
|
462
|
+
recordPluginDescriptorInput({
|
|
463
|
+
...(parent === undefined ? {} : { parent }),
|
|
464
|
+
resolved,
|
|
465
|
+
specifier,
|
|
466
|
+
});
|
|
467
|
+
for (let directory = node_path_1.default.dirname(resolved);; directory = node_path_1.default.dirname(directory)) {
|
|
468
|
+
const manifest = node_path_1.default.join(directory, "package.json");
|
|
469
|
+
recordPluginDescriptorInput({
|
|
470
|
+
...(parent === undefined ? {} : { parent }),
|
|
471
|
+
resolved: manifest,
|
|
472
|
+
});
|
|
473
|
+
if (RuntimeFilesystem_1.RuntimeFilesystem.isFile(manifest))
|
|
474
|
+
break;
|
|
475
|
+
const parentDirectory = node_path_1.default.dirname(directory);
|
|
476
|
+
if (parentDirectory === directory)
|
|
477
|
+
break;
|
|
478
|
+
}
|
|
479
|
+
}
|
|
480
|
+
function recordPluginDescriptorInput(record) {
|
|
481
|
+
appendPluginDescriptorInputs(observePluginDescriptorInput(record));
|
|
482
|
+
}
|
|
483
|
+
/**
|
|
484
|
+
* Observe one path and every symbolic link among its lexical ancestors, as the
|
|
485
|
+
* lines `appendPluginDescriptorInputs` reports, without reporting them yet.
|
|
486
|
+
*/
|
|
487
|
+
function observePluginDescriptorInput(record) {
|
|
488
|
+
if (process.env.TTSC_PLUGIN_DESCRIPTOR_INPUTS_ACTIVE !== "1")
|
|
489
|
+
return [];
|
|
490
|
+
const lines = [];
|
|
491
|
+
const observe = (line) => {
|
|
492
|
+
if (line !== undefined)
|
|
493
|
+
lines.push(line);
|
|
494
|
+
else
|
|
495
|
+
PluginDescriptorInputObservation_1.PluginDescriptorInputObservation.invalidate();
|
|
496
|
+
};
|
|
497
|
+
observe(observePluginDescriptorInputOnce(record));
|
|
498
|
+
const resolved = node_path_1.default.resolve(record.resolved);
|
|
499
|
+
const parsed = node_path_1.default.parse(resolved);
|
|
500
|
+
let current = parsed.root;
|
|
501
|
+
const relative = node_path_1.default.relative(parsed.root, resolved);
|
|
502
|
+
for (const segment of relative.split(node_path_1.default.sep).slice(0, -1)) {
|
|
503
|
+
if (segment === "")
|
|
504
|
+
continue;
|
|
505
|
+
current = node_path_1.default.join(current, segment);
|
|
506
|
+
try {
|
|
507
|
+
if (node_fs_1.default.lstatSync(current).isSymbolicLink()) {
|
|
508
|
+
observe(observePluginDescriptorInputOnce({ resolved: current }));
|
|
509
|
+
}
|
|
510
|
+
}
|
|
511
|
+
catch {
|
|
512
|
+
break;
|
|
513
|
+
}
|
|
514
|
+
}
|
|
515
|
+
return lines;
|
|
516
|
+
}
|
|
517
|
+
/** Report observed lines to the parent loader, in the order given. */
|
|
518
|
+
function appendPluginDescriptorInputs(lines) {
|
|
519
|
+
if (lines.length === 0)
|
|
520
|
+
return;
|
|
521
|
+
if (process.env.TTSC_PLUGIN_DESCRIPTOR_INPUTS_ACTIVE !== "1")
|
|
522
|
+
return;
|
|
523
|
+
PluginDescriptorInputObservation_1.PluginDescriptorInputObservation.record(lines);
|
|
524
|
+
const out = process.env.TTSC_PLUGIN_DESCRIPTOR_INPUTS_OUT;
|
|
525
|
+
if (out === undefined || out.length === 0) {
|
|
526
|
+
PluginDescriptorInputObservation_1.PluginDescriptorInputObservation.invalidate();
|
|
527
|
+
return;
|
|
528
|
+
}
|
|
529
|
+
try {
|
|
530
|
+
node_fs_1.default.appendFileSync(out, lines.join(""), "utf8");
|
|
531
|
+
}
|
|
532
|
+
catch {
|
|
533
|
+
PluginDescriptorInputObservation_1.PluginDescriptorInputObservation.invalidate();
|
|
534
|
+
}
|
|
535
|
+
}
|
|
536
|
+
/** Observe one path without recursively revisiting its lexical ancestors. */
|
|
537
|
+
function observePluginDescriptorInputOnce(record) {
|
|
538
|
+
try {
|
|
539
|
+
const beforeSignature = pluginDescriptorInputMetadataSignature(record.resolved);
|
|
540
|
+
const observedHash = pluginDescriptorInputHash(record.resolved);
|
|
541
|
+
const observedRealpath = pluginDescriptorInputRealpath(record.resolved);
|
|
542
|
+
const afterSignature = pluginDescriptorInputMetadataSignature(record.resolved);
|
|
543
|
+
const unstable = record.unstable === true ||
|
|
544
|
+
beforeSignature === undefined ||
|
|
545
|
+
afterSignature === undefined ||
|
|
546
|
+
beforeSignature !== afterSignature ||
|
|
547
|
+
(record.hash !== undefined && record.hash !== observedHash) ||
|
|
548
|
+
(record.realpath !== undefined && record.realpath !== observedRealpath) ||
|
|
549
|
+
(record.signature !== undefined && record.signature !== afterSignature);
|
|
550
|
+
return `${JSON.stringify({
|
|
551
|
+
...record,
|
|
552
|
+
hash: observedHash,
|
|
553
|
+
realpath: observedRealpath,
|
|
554
|
+
...(unstable ? { unstable: true } : { signature: afterSignature }),
|
|
555
|
+
})}\n`;
|
|
556
|
+
}
|
|
557
|
+
catch {
|
|
558
|
+
// Dependency reporting is advisory to cache reuse; the selected entry is
|
|
559
|
+
// still retained by the parent if this side channel cannot observe it.
|
|
560
|
+
return undefined;
|
|
561
|
+
}
|
|
562
|
+
}
|
|
563
|
+
function pluginDescriptorInputRealpath(file) {
|
|
564
|
+
try {
|
|
565
|
+
return node_fs_1.default.realpathSync.native(file);
|
|
566
|
+
}
|
|
567
|
+
catch {
|
|
568
|
+
return null;
|
|
569
|
+
}
|
|
570
|
+
}
|
|
571
|
+
/** Metadata identity that exposes content-preserving A-B-A replacement. */
|
|
572
|
+
function pluginDescriptorInputMetadataSignature(file) {
|
|
573
|
+
const requested = node_path_1.default.resolve(file);
|
|
574
|
+
let current = requested;
|
|
575
|
+
for (;;) {
|
|
576
|
+
try {
|
|
577
|
+
const link = node_fs_1.default.lstatSync(current, { bigint: true });
|
|
578
|
+
let target = link;
|
|
579
|
+
if (link.isSymbolicLink()) {
|
|
580
|
+
try {
|
|
581
|
+
target = node_fs_1.default.statSync(current, { bigint: true });
|
|
582
|
+
}
|
|
583
|
+
catch {
|
|
584
|
+
// A broken link's own metadata cannot expose its target appearing
|
|
585
|
+
// and disappearing during evaluation. Decline cache proof instead.
|
|
586
|
+
return undefined;
|
|
587
|
+
}
|
|
588
|
+
}
|
|
589
|
+
return [
|
|
590
|
+
node_path_1.default.relative(current, requested),
|
|
591
|
+
link.dev,
|
|
592
|
+
link.ino,
|
|
593
|
+
link.mode,
|
|
594
|
+
link.size,
|
|
595
|
+
link.mtimeNs,
|
|
596
|
+
link.ctimeNs,
|
|
597
|
+
target.dev,
|
|
598
|
+
target.ino,
|
|
599
|
+
target.mode,
|
|
600
|
+
target.size,
|
|
601
|
+
target.mtimeNs,
|
|
602
|
+
target.ctimeNs,
|
|
603
|
+
].join(":");
|
|
604
|
+
}
|
|
605
|
+
catch (error) {
|
|
606
|
+
if (!RuntimeFilesystem_1.RuntimeFilesystem.isMissingPathError(error))
|
|
607
|
+
return undefined;
|
|
608
|
+
const parent = node_path_1.default.dirname(current);
|
|
609
|
+
if (parent === current)
|
|
610
|
+
return undefined;
|
|
611
|
+
current = parent;
|
|
612
|
+
}
|
|
613
|
+
}
|
|
614
|
+
}
|
|
615
|
+
function pluginDescriptorInputHash(file) {
|
|
616
|
+
try {
|
|
617
|
+
if (node_fs_1.default.statSync(file).isDirectory()) {
|
|
618
|
+
return pluginDescriptorDirectoryHash();
|
|
619
|
+
}
|
|
620
|
+
return node_crypto_1.default
|
|
621
|
+
.createHash("sha256")
|
|
622
|
+
.update(node_fs_1.default.readFileSync(file))
|
|
623
|
+
.digest("hex");
|
|
624
|
+
}
|
|
625
|
+
catch {
|
|
626
|
+
return null;
|
|
627
|
+
}
|
|
628
|
+
}
|
|
629
|
+
/** Stable public fingerprint for an existing directory candidate's kind. */
|
|
630
|
+
function pluginDescriptorDirectoryHash() {
|
|
631
|
+
return node_crypto_1.default
|
|
632
|
+
.createHash("sha256")
|
|
633
|
+
.update("ttsc:host-input:directory\0")
|
|
634
|
+
.digest("hex");
|
|
635
|
+
}
|
|
636
|
+
function runtimeFilePath(value) {
|
|
637
|
+
if (value === undefined)
|
|
638
|
+
return undefined;
|
|
639
|
+
if (value.startsWith("file:")) {
|
|
640
|
+
try {
|
|
641
|
+
return node_path_1.default.resolve((0, node_url_1.fileURLToPath)(value));
|
|
642
|
+
}
|
|
643
|
+
catch {
|
|
644
|
+
return undefined;
|
|
645
|
+
}
|
|
646
|
+
}
|
|
647
|
+
return node_path_1.default.isAbsolute(value) ? node_path_1.default.resolve(value) : undefined;
|
|
648
|
+
}
|
|
649
|
+
/**
|
|
650
|
+
* Record what a resolution that did not go through `require()` means for how a
|
|
651
|
+
* CommonJS module it reaches is handed to Node: the process entry, or a module
|
|
652
|
+
* a narrow `require` asked for ({@link narrowRequestedUrls}).
|
|
653
|
+
*/
|
|
654
|
+
function rememberCommonJsImportRole(url, context) {
|
|
655
|
+
if (hasCondition(context, "require"))
|
|
656
|
+
return;
|
|
657
|
+
if (context.parentURL === undefined)
|
|
658
|
+
esmEntryUrls.add(url);
|
|
659
|
+
else if (narrowRequireUrls.has(context.parentURL))
|
|
660
|
+
narrowRequestedUrls.add(url);
|
|
661
|
+
}
|
|
662
|
+
/** Remember an ESM root until its synchronous load hook prepares the project. */
|
|
663
|
+
function rememberRuntimeEntry(result, context) {
|
|
664
|
+
if (result.url.startsWith("file:") &&
|
|
665
|
+
isTypeScriptSource((0, node_url_1.fileURLToPath)(result.url)) &&
|
|
666
|
+
(context.parentURL === undefined ||
|
|
667
|
+
!context.parentURL.startsWith("file:") ||
|
|
668
|
+
!isTypeScriptSource((0, node_url_1.fileURLToPath)(context.parentURL)))) {
|
|
669
|
+
runtimeEntryUrls.add(result.url);
|
|
670
|
+
}
|
|
671
|
+
return result;
|
|
672
|
+
}
|
|
673
|
+
const builtProjects = new Map();
|
|
674
|
+
const commonJsNameScanSources = new Map();
|
|
675
|
+
function load(url, context, nextLoad) {
|
|
676
|
+
const moduleApi = CommonJsRuntimeSource_1.CommonJsRuntimeSource.moduleSource();
|
|
677
|
+
if (url === moduleApi.url)
|
|
678
|
+
return { shortCircuit: true, format: "module", source: moduleApi.source };
|
|
679
|
+
// Preserve Node's file-entry evaluation without facade/export-name scans of
|
|
680
|
+
// the owned bootstrap or observations of its temporary path and manifests.
|
|
681
|
+
if (isDescriptorEvaluatorBootstrap(url))
|
|
682
|
+
return nextLoad(url, context);
|
|
683
|
+
if (!url.startsWith("file:")) {
|
|
684
|
+
return nextLoad(url, context);
|
|
685
|
+
}
|
|
686
|
+
const filename = (0, node_url_1.fileURLToPath)(url);
|
|
687
|
+
if (!isTypeScriptSource(filename)) {
|
|
688
|
+
return loadJavaScript(url, filename, context, nextLoad);
|
|
689
|
+
}
|
|
690
|
+
const served = resolveServedSource(filename, url, runtimeEntryUrls.delete(url) || isProcessEntry(filename));
|
|
691
|
+
const format = RuntimeModuleFormat_1.RuntimeModuleFormat.moduleFormat(filename, served.moduleOptions);
|
|
692
|
+
// An ESM import of a CommonJS source gets the facade, which loads the module
|
|
693
|
+
// through the CommonJS loader, through the selected public CommonJS load boundary
|
|
694
|
+
// (`commonJsImportFacade`); entry predicates can instead admit served source.
|
|
695
|
+
if (format === "commonjs" && !hasCondition(context, "require")) {
|
|
696
|
+
if (servesCommonJsFromSource(url)) {
|
|
697
|
+
E2ETrace_1.E2ETrace.runtimePreparation(served.source, filename, format, "ttsx-commonjs-source-import", {
|
|
698
|
+
emittedFile: served.emittedFile,
|
|
699
|
+
moduleOptions: served.moduleOptions,
|
|
700
|
+
sourceFile: served.sourceFile,
|
|
701
|
+
selectedTsconfig: served.selectedTsconfig,
|
|
702
|
+
buildScope: served.buildScope,
|
|
703
|
+
});
|
|
704
|
+
return {
|
|
705
|
+
format,
|
|
706
|
+
shortCircuit: true,
|
|
707
|
+
source: CommonJsRuntimeSource_1.CommonJsRuntimeSource.prepare(served.source, filename),
|
|
708
|
+
};
|
|
709
|
+
}
|
|
710
|
+
return {
|
|
711
|
+
format: "module",
|
|
712
|
+
shortCircuit: true,
|
|
713
|
+
source: (0, commonJsImportFacade_1.commonJsImportFacade)(url, filename, runtimeCommonJsExportNames(served.sourceFile ?? filename, served.source), RuntimeLoaderCapabilities_1.RuntimeLoaderCapabilities.commonJsNamespaceCarriesModuleExports()),
|
|
714
|
+
};
|
|
715
|
+
}
|
|
716
|
+
if (format === "commonjs")
|
|
717
|
+
E2ETrace_1.E2ETrace.runtimePreparation(served.source, filename, format, "ttsx-commonjs-source-load", {
|
|
718
|
+
emittedFile: served.emittedFile,
|
|
719
|
+
moduleOptions: served.moduleOptions,
|
|
720
|
+
sourceFile: served.sourceFile,
|
|
721
|
+
selectedTsconfig: served.selectedTsconfig,
|
|
722
|
+
buildScope: served.buildScope,
|
|
723
|
+
});
|
|
724
|
+
else if (process.env.TTSC_E2E_TRACE)
|
|
725
|
+
E2ETrace_1.E2ETrace.runtimePreparation(served.source, filename, format, "ttsx-esm-source-load", {
|
|
726
|
+
emittedFile: served.emittedFile,
|
|
727
|
+
moduleOptions: served.moduleOptions,
|
|
728
|
+
sourceFile: served.sourceFile,
|
|
729
|
+
selectedTsconfig: served.selectedTsconfig,
|
|
730
|
+
buildScope: served.buildScope,
|
|
731
|
+
});
|
|
732
|
+
return {
|
|
733
|
+
format,
|
|
734
|
+
shortCircuit: true,
|
|
735
|
+
source: format === "commonjs"
|
|
736
|
+
? CommonJsRuntimeSource_1.CommonJsRuntimeSource.prepare(served.source, filename)
|
|
737
|
+
: served.source,
|
|
738
|
+
};
|
|
739
|
+
}
|
|
740
|
+
/**
|
|
741
|
+
* Load a JavaScript module, handing a CommonJS one an ESM import reaches to the
|
|
742
|
+
* CommonJS loader through the facade where Node would otherwise evaluate it
|
|
743
|
+
* with its narrower `require`. A runtime that gives a hook-served CommonJS
|
|
744
|
+
* module that `require` gives it to every CommonJS module an import reaches
|
|
745
|
+
* once any load hook exists, so without the facade such a module had no
|
|
746
|
+
* `require.cache`, `require.extensions` or `require.resolve.paths`, and could
|
|
747
|
+
* not `require()` a TypeScript source.
|
|
748
|
+
*/
|
|
749
|
+
function loadJavaScript(url, filename, context, nextLoad) {
|
|
750
|
+
const loaded = nextLoad(url, context);
|
|
751
|
+
if (loaded.format !== "commonjs")
|
|
752
|
+
return loaded;
|
|
753
|
+
const source = typeof loaded.source === "string"
|
|
754
|
+
? loaded.source
|
|
755
|
+
: loaded.source !== undefined && loaded.source !== null
|
|
756
|
+
? Buffer.from(loaded.source).toString("utf8")
|
|
757
|
+
: readFileOrNull(filename);
|
|
758
|
+
if (source === null)
|
|
759
|
+
return loaded;
|
|
760
|
+
if (hasCondition(context, "require") ||
|
|
761
|
+
RuntimeLoaderCapabilities_1.RuntimeLoaderCapabilities.hookedCommonJsImportKeepsRequire() ||
|
|
762
|
+
servesCommonJsFromSource(url)) {
|
|
763
|
+
const preparedSource = (0, inlineServedSourceMap_1.inlineServedSourceMap)(source, filename, filename);
|
|
764
|
+
E2ETrace_1.E2ETrace.runtimePreparation(preparedSource, filename, loaded.format, "ttsx-commonjs-javascript-load");
|
|
765
|
+
return {
|
|
766
|
+
...loaded,
|
|
767
|
+
shortCircuit: true,
|
|
768
|
+
source: CommonJsRuntimeSource_1.CommonJsRuntimeSource.prepare(preparedSource, filename),
|
|
769
|
+
};
|
|
770
|
+
}
|
|
771
|
+
return {
|
|
772
|
+
format: "module",
|
|
773
|
+
shortCircuit: true,
|
|
774
|
+
source: (0, commonJsImportFacade_1.commonJsImportFacade)(url, filename, runtimeCommonJsExportNames(filename, source), RuntimeLoaderCapabilities_1.RuntimeLoaderCapabilities.commonJsNamespaceCarriesModuleExports()),
|
|
775
|
+
};
|
|
776
|
+
}
|
|
777
|
+
/**
|
|
778
|
+
* Whether a CommonJS module an ESM import reached is handed to Node with its
|
|
779
|
+
* source rather than as the facade: the process entry, which Node then loads as
|
|
780
|
+
* the main module, and a module a narrow `require` asked for. Where the source
|
|
781
|
+
* gets Node's narrower `require`, the module is recorded, so a CommonJS module
|
|
782
|
+
* it asks for is handed over the same way.
|
|
783
|
+
*/
|
|
784
|
+
function servesCommonJsFromSource(url) {
|
|
785
|
+
if (!esmEntryUrls.has(url) && !narrowRequestedUrls.has(url))
|
|
786
|
+
return false;
|
|
787
|
+
if (!RuntimeLoaderCapabilities_1.RuntimeLoaderCapabilities.hookedCommonJsImportKeepsRequire())
|
|
788
|
+
narrowRequireUrls.add(url);
|
|
789
|
+
return true;
|
|
790
|
+
}
|
|
791
|
+
/** Scan both facade lanes from source paths using their actual require policy. */
|
|
792
|
+
function runtimeCommonJsExportNames(filename, source) {
|
|
793
|
+
return (0, commonJsExportNames_1.commonJsExportNames)(source, filename, (target) => isTypeScriptSource(target)
|
|
794
|
+
? emitCommonJsForNameScan(target)
|
|
795
|
+
: readFileOrNull(target), (parent, specifier) => {
|
|
796
|
+
const native = (0, node_module_1.createRequire)(parent).resolve;
|
|
797
|
+
return resolveCommonJsRequest(native, specifier, undefined, parent);
|
|
798
|
+
});
|
|
799
|
+
}
|
|
800
|
+
/**
|
|
801
|
+
* Whether a hook context carries `condition`. The conditions arrive as an array
|
|
802
|
+
* on some releases and as a set on others.
|
|
803
|
+
*/
|
|
804
|
+
function hasCondition(context, condition) {
|
|
805
|
+
for (const entry of context.conditions ?? [])
|
|
806
|
+
if (entry === condition)
|
|
807
|
+
return true;
|
|
808
|
+
return false;
|
|
809
|
+
}
|
|
810
|
+
/**
|
|
811
|
+
* Identify only the direct evaluator's generated CommonJS output sibling. The
|
|
812
|
+
* parent supplies an absolute output under a canonical private directory; URL
|
|
813
|
+
* conversion and native path resolution preserve that exact spelling. No
|
|
814
|
+
* directory-wide exclusion or user preload/descriptor path is selected. This
|
|
815
|
+
* comparison performs no filesystem read and retains no additional state.
|
|
816
|
+
*/
|
|
817
|
+
function isDescriptorEvaluatorBootstrap(value) {
|
|
818
|
+
const out = process.env.TTSC_PLUGIN_DESCRIPTOR_OUT;
|
|
819
|
+
return (process.env.TTSC_PLUGIN_DESCRIPTOR_LOAD === "1" &&
|
|
820
|
+
out !== undefined &&
|
|
821
|
+
node_path_1.default.isAbsolute(out) &&
|
|
822
|
+
runtimeFilePath(value) === node_path_1.default.resolve(`${out}.cjs`));
|
|
823
|
+
}
|
|
824
|
+
/** Whether `filename` is the TypeScript main module named on Node's argv. */
|
|
825
|
+
function isProcessEntry(filename) {
|
|
826
|
+
const entry = process.argv[1];
|
|
827
|
+
return (entry !== undefined &&
|
|
828
|
+
isTypeScriptSource(entry) &&
|
|
829
|
+
(0, realPath_1.realPath)(node_path_1.default.resolve(entry)) === (0, realPath_1.realPath)(filename));
|
|
830
|
+
}
|
|
831
|
+
/**
|
|
832
|
+
* Read one owning config while its discovered chain stays unchanged.
|
|
833
|
+
*
|
|
834
|
+
* A preliminary read discovers `extends`; an accepted read is bracketed by
|
|
835
|
+
* equal fingerprints over that exact chain. If churn never settles, ttsx can
|
|
836
|
+
* still execute the last project but reports every observed config as unstable,
|
|
837
|
+
* preventing a later snapshot from certifying the torn result.
|
|
838
|
+
*/
|
|
839
|
+
function readPluginDescriptorProjectConfig(tsconfig) {
|
|
840
|
+
const read = () => (0, readProjectConfig_1.readProjectConfig)({ cwd: node_path_1.default.dirname(tsconfig), tsconfig });
|
|
841
|
+
if (process.env.TTSC_PLUGIN_DESCRIPTOR_INPUTS_ACTIVE !== "1")
|
|
842
|
+
return read();
|
|
843
|
+
const observed = new Set([node_path_1.default.resolve(tsconfig)]);
|
|
844
|
+
let project;
|
|
845
|
+
try {
|
|
846
|
+
project = read();
|
|
847
|
+
}
|
|
848
|
+
catch (error) {
|
|
849
|
+
recordPluginDescriptorProjectInputs(observed, true);
|
|
850
|
+
throw error;
|
|
851
|
+
}
|
|
852
|
+
if (!project.configInputsComplete)
|
|
853
|
+
PluginDescriptorInputObservation_1.PluginDescriptorInputObservation.invalidate();
|
|
854
|
+
let inputs = normalizedProjectConfigPaths(project, tsconfig);
|
|
855
|
+
for (let attempt = 0; attempt < 3; attempt += 1) {
|
|
856
|
+
for (const input of inputs)
|
|
857
|
+
observed.add(input);
|
|
858
|
+
const before = pluginDescriptorInputHashes(inputs);
|
|
859
|
+
const beforeRealpaths = pluginDescriptorInputRealpaths(inputs);
|
|
860
|
+
const beforeSignatures = pluginDescriptorInputMetadataSignatures(inputs);
|
|
861
|
+
let candidate;
|
|
862
|
+
try {
|
|
863
|
+
candidate = read();
|
|
864
|
+
}
|
|
865
|
+
catch (error) {
|
|
866
|
+
recordPluginDescriptorProjectInputs(observed, true);
|
|
867
|
+
throw error;
|
|
868
|
+
}
|
|
869
|
+
if (!candidate.configInputsComplete)
|
|
870
|
+
PluginDescriptorInputObservation_1.PluginDescriptorInputObservation.invalidate();
|
|
871
|
+
const candidateInputs = normalizedProjectConfigPaths(candidate, tsconfig);
|
|
872
|
+
for (const input of candidateInputs)
|
|
873
|
+
observed.add(input);
|
|
874
|
+
const after = pluginDescriptorInputHashes(candidateInputs);
|
|
875
|
+
const afterRealpaths = pluginDescriptorInputRealpaths(candidateInputs);
|
|
876
|
+
const afterSignatures = pluginDescriptorInputMetadataSignatures(candidateInputs);
|
|
877
|
+
if (equalPluginDescriptorInputLists(inputs, candidateInputs) &&
|
|
878
|
+
equalPluginDescriptorInputHashes(before, after) &&
|
|
879
|
+
equalPluginDescriptorInputHashes(beforeRealpaths, afterRealpaths) &&
|
|
880
|
+
beforeSignatures !== undefined &&
|
|
881
|
+
afterSignatures !== undefined &&
|
|
882
|
+
equalPluginDescriptorInputHashes(beforeSignatures, afterSignatures)) {
|
|
883
|
+
for (const input of candidateInputs) {
|
|
884
|
+
recordPluginDescriptorInput({
|
|
885
|
+
hash: after[input],
|
|
886
|
+
realpath: afterRealpaths[input],
|
|
887
|
+
resolved: input,
|
|
888
|
+
signature: afterSignatures[input],
|
|
889
|
+
});
|
|
890
|
+
}
|
|
891
|
+
return candidate;
|
|
892
|
+
}
|
|
893
|
+
project = candidate;
|
|
894
|
+
inputs = candidateInputs;
|
|
895
|
+
}
|
|
896
|
+
recordPluginDescriptorProjectInputs(observed, true);
|
|
897
|
+
return project;
|
|
898
|
+
}
|
|
899
|
+
function normalizedProjectConfigPaths(project, requestedConfig) {
|
|
900
|
+
return [
|
|
901
|
+
...new Set([
|
|
902
|
+
requestedConfig,
|
|
903
|
+
...project.configPaths,
|
|
904
|
+
...(project.configInputs ?? []),
|
|
905
|
+
].map((file) => node_path_1.default.resolve(file))),
|
|
906
|
+
].sort();
|
|
907
|
+
}
|
|
908
|
+
function pluginDescriptorInputHashes(inputs) {
|
|
909
|
+
return Object.fromEntries(inputs.map((input) => [input, pluginDescriptorInputHash(input)]));
|
|
910
|
+
}
|
|
911
|
+
function pluginDescriptorInputRealpaths(inputs) {
|
|
912
|
+
return Object.fromEntries(inputs.map((input) => [input, pluginDescriptorInputRealpath(input)]));
|
|
913
|
+
}
|
|
914
|
+
function pluginDescriptorInputMetadataSignatures(inputs) {
|
|
915
|
+
const output = {};
|
|
916
|
+
for (const input of inputs) {
|
|
917
|
+
const signature = pluginDescriptorInputMetadataSignature(input);
|
|
918
|
+
if (signature === undefined)
|
|
919
|
+
return undefined;
|
|
920
|
+
output[node_path_1.default.resolve(input)] = signature;
|
|
921
|
+
}
|
|
922
|
+
return output;
|
|
923
|
+
}
|
|
924
|
+
function equalPluginDescriptorInputLists(first, second) {
|
|
925
|
+
return (first.length === second.length &&
|
|
926
|
+
first.every((input, index) => input === second[index]));
|
|
927
|
+
}
|
|
928
|
+
function equalPluginDescriptorInputHashes(first, second) {
|
|
929
|
+
return (Object.keys(first).length === Object.keys(second).length &&
|
|
930
|
+
Object.entries(first).every(([input, hash]) => second[input] === hash));
|
|
931
|
+
}
|
|
932
|
+
function recordPluginDescriptorProjectInputs(inputs, unstable = false) {
|
|
933
|
+
for (const input of inputs) {
|
|
934
|
+
const resolved = node_path_1.default.resolve(input);
|
|
935
|
+
recordPluginDescriptorInput({
|
|
936
|
+
resolved,
|
|
937
|
+
...(unstable ? { unstable: true } : {}),
|
|
938
|
+
});
|
|
939
|
+
}
|
|
940
|
+
}
|
|
941
|
+
/**
|
|
942
|
+
* Resolve the JavaScript to run for a TypeScript source file. Shared by the ESM
|
|
943
|
+
* `load` hook and the CommonJS `require` handler.
|
|
944
|
+
*
|
|
945
|
+
* A file runs only from JavaScript a build provably compiled from that very
|
|
946
|
+
* file, never from another file's output that shares its name. The lanes, in
|
|
947
|
+
* order:
|
|
948
|
+
*
|
|
949
|
+
* 1. A checked entry build that compiled it (`ttsx`'s entry project, or a root
|
|
950
|
+
* `ttsc/register` prepared).
|
|
951
|
+
* 2. At a JavaScript-to-TypeScript boundary under `ttsc/register`, a newly
|
|
952
|
+
* prepared checked root.
|
|
953
|
+
* 3. The build of its nearest `tsconfig.json`, when that build compiled it, or
|
|
954
|
+
* else the file compiled alone through that project's options — see
|
|
955
|
+
* {@link serveProjectEmit}.
|
|
956
|
+
* 4. An isolated emit, when no tsconfig owns it at all.
|
|
957
|
+
*/
|
|
958
|
+
function resolveServedSource(filename, url = (0, node_url_1.pathToFileURL)(filename).href, prepareAsEntry = false) {
|
|
959
|
+
const real = (0, realPath_1.realPath)(filename);
|
|
960
|
+
let served = serveEntryEmit(real);
|
|
961
|
+
if (served !== null) {
|
|
962
|
+
return withInlineSourceMap(served);
|
|
963
|
+
}
|
|
964
|
+
// Only the public preload can prepare a newly discovered root; direct ttsx
|
|
965
|
+
// prepared its one entry before the child started.
|
|
966
|
+
const prepareEntry = prepareAsEntry ? prepareRuntimeEntry : undefined;
|
|
967
|
+
if (prepareEntry !== undefined) {
|
|
968
|
+
RuntimeManifestRegistry_1.RuntimeManifestRegistry.registerManifest(prepareEntry(real));
|
|
969
|
+
served = serveEntryEmit(real);
|
|
970
|
+
if (served === null) {
|
|
971
|
+
throw new Error(`ttsx: prepared entry emit not found for ${filename}`);
|
|
972
|
+
}
|
|
973
|
+
return withInlineSourceMap(served);
|
|
974
|
+
}
|
|
975
|
+
const built = serveProjectEmit(real);
|
|
976
|
+
if (built !== null) {
|
|
977
|
+
return withInlineSourceMap(built);
|
|
978
|
+
}
|
|
979
|
+
return {
|
|
980
|
+
moduleOptions: null,
|
|
981
|
+
sourceFile: filename,
|
|
982
|
+
source: transformOrphanSource(filename, url),
|
|
983
|
+
};
|
|
984
|
+
}
|
|
985
|
+
/**
|
|
986
|
+
* Inline a served emit's external source map into its text and absolutize the
|
|
987
|
+
* map's `sources`, so the JavaScript executed under the `.ts` source URL stays
|
|
988
|
+
* self-describing after the per-run emit directory is deleted. Applied to both
|
|
989
|
+
* the entry lane (`serveEntryEmit`) and the dependency lane
|
|
990
|
+
* (`serveBuiltDependency`); the orphan lane inlines its own map before
|
|
991
|
+
* caching.
|
|
992
|
+
*/
|
|
993
|
+
function withInlineSourceMap(served) {
|
|
994
|
+
const source = (0, inlineServedSourceMap_1.inlineServedSourceMap)(served.source, served.emittedFile, served.sourceFile);
|
|
995
|
+
return source === served.source ? served : { ...served, source };
|
|
996
|
+
}
|
|
997
|
+
/**
|
|
998
|
+
* Transform a TypeScript source file that no tsconfig owns (a published or
|
|
999
|
+
* vendored package that ships raw `.ts`/`.cts`/`.mts` straight under
|
|
1000
|
+
* `node_modules`), choosing the lowering by the format the file resolves to.
|
|
1001
|
+
*
|
|
1002
|
+
* Both module formats need the compiler: Node's type stripping neither lowers
|
|
1003
|
+
* standard decorators nor rewrites ESM exports for CommonJS. Use the existing
|
|
1004
|
+
* single-file emit with the file's own module format and a standard target.
|
|
1005
|
+
* Retain stripping as recovery when no compiler emit is available.
|
|
1006
|
+
*/
|
|
1007
|
+
function transformOrphanSource(filename, url) {
|
|
1008
|
+
const format = RuntimeModuleFormat_1.RuntimeModuleFormat.moduleFormat(filename, null) === "commonjs"
|
|
1009
|
+
? "commonjs"
|
|
1010
|
+
: "module";
|
|
1011
|
+
const lowered = emitOrphanSource(filename, format);
|
|
1012
|
+
if (lowered !== null) {
|
|
1013
|
+
return lowered;
|
|
1014
|
+
}
|
|
1015
|
+
return (0, node_module_1.stripTypeScriptTypes)(node_fs_1.default.readFileSync(filename, "utf8"), {
|
|
1016
|
+
mode: "transform",
|
|
1017
|
+
sourceUrl: url,
|
|
1018
|
+
});
|
|
1019
|
+
}
|
|
1020
|
+
/**
|
|
1021
|
+
* Lower a single source file to its runtime module format. Emit-only, no
|
|
1022
|
+
* diagnostic gate (the entry project's up-front check is the type gate),
|
|
1023
|
+
* matching `buildDependency`. Returns `null` when tsgo is unavailable or
|
|
1024
|
+
* produced no output, so the caller can fall back to the in-process strip.
|
|
1025
|
+
*/
|
|
1026
|
+
function emitOrphanSource(filename, format) {
|
|
1027
|
+
let tsgo;
|
|
1028
|
+
try {
|
|
1029
|
+
tsgo = (0, resolveTsgo_1.resolveTsgo)({ cwd: node_path_1.default.dirname(filename) }).binary;
|
|
1030
|
+
}
|
|
1031
|
+
catch {
|
|
1032
|
+
return null;
|
|
1033
|
+
}
|
|
1034
|
+
// Content-hash cache: an orphan's tsgo single-file emit is lowered
|
|
1035
|
+
// once and reused by every other process in the run, and across runs. Without
|
|
1036
|
+
// it a program that fans out into many processes (the automated test corpus
|
|
1037
|
+
// imports the same vendored `.ts` deps from thousands of generated files) would
|
|
1038
|
+
// re-spawn tsgo per file per process and crawl.
|
|
1039
|
+
const cache = orphanCacheFile(filename, tsgo, format);
|
|
1040
|
+
if (cache !== null) {
|
|
1041
|
+
const hit = readFileOrNull(cache.file);
|
|
1042
|
+
if (hit !== null) {
|
|
1043
|
+
(0, recordCacheFileUse_1.recordCacheFileUse)(cache.file);
|
|
1044
|
+
return hit;
|
|
1045
|
+
}
|
|
1046
|
+
}
|
|
1047
|
+
const outDir = (0, createCanonicalTempDirectory_1.createCanonicalTempDirectory)("ttsx-orphan-");
|
|
1048
|
+
try {
|
|
1049
|
+
(0, spawnNative_1.spawnNative)(tsgo, RuntimeIsolatedEmit_1.RuntimeIsolatedEmit.compilerArgs(filename, outDir, format, "execution"),
|
|
1050
|
+
// The emit names its input by absolute path and reads no config, so it
|
|
1051
|
+
// runs from its own output directory rather than from a dependency's,
|
|
1052
|
+
// which below `node_modules` can pass Windows' MAX_PATH for a working
|
|
1053
|
+
// directory.
|
|
1054
|
+
{ cwd: outDir, encoding: "utf8" });
|
|
1055
|
+
const emitted = isolatedEmitOf(filename, outDir);
|
|
1056
|
+
const source = emitted === null ? null : readFileOrNull(emitted);
|
|
1057
|
+
const lowered = source === null
|
|
1058
|
+
? null
|
|
1059
|
+
: (0, inlineServedSourceMap_1.inlineServedSourceMap)(source, emitted, filename);
|
|
1060
|
+
// The key names the bytes read for it and the compiler it was taken under,
|
|
1061
|
+
// and the emit read the file and ran the compiler again. Only a source that
|
|
1062
|
+
// held still across both reads, lowered by a compiler that is still the
|
|
1063
|
+
// keyed one, is what the key names; otherwise the lowering serves this run
|
|
1064
|
+
// and is not recorded.
|
|
1065
|
+
if (lowered !== null && cache !== null) {
|
|
1066
|
+
const sourceHeld = orphanSourceHeld(filename, cache);
|
|
1067
|
+
const currentCompiler = sourceHeld ? compilerIdentity(tsgo) : undefined;
|
|
1068
|
+
if (sourceHeld && currentCompiler === cache.compiler)
|
|
1069
|
+
writeOrphanCache(cache.file, lowered);
|
|
1070
|
+
E2ETrace_1.E2ETrace.runtimePreparation("", filename, format, "orphan-cache-admission", {
|
|
1071
|
+
moduleOptions: null,
|
|
1072
|
+
emittedFile: emitted ?? undefined,
|
|
1073
|
+
orphanCache: {
|
|
1074
|
+
file: cache.file,
|
|
1075
|
+
sourceHeld,
|
|
1076
|
+
expectedCompiler: cache.compiler,
|
|
1077
|
+
currentCompiler,
|
|
1078
|
+
},
|
|
1079
|
+
});
|
|
1080
|
+
}
|
|
1081
|
+
else {
|
|
1082
|
+
E2ETrace_1.E2ETrace.runtimePreparation("", filename, format, "orphan-cache-unavailable", {
|
|
1083
|
+
moduleOptions: null,
|
|
1084
|
+
emittedFile: emitted ?? undefined,
|
|
1085
|
+
orphanCache: {
|
|
1086
|
+
lowered: lowered !== null,
|
|
1087
|
+
cacheKeyAvailable: cache !== null,
|
|
1088
|
+
},
|
|
1089
|
+
});
|
|
1090
|
+
}
|
|
1091
|
+
return lowered;
|
|
1092
|
+
}
|
|
1093
|
+
catch (error) {
|
|
1094
|
+
if (error instanceof RuntimeEmitOwnershipError)
|
|
1095
|
+
throw error;
|
|
1096
|
+
return null;
|
|
1097
|
+
}
|
|
1098
|
+
finally {
|
|
1099
|
+
node_fs_1.default.rmSync(outDir, { force: true, recursive: true });
|
|
1100
|
+
}
|
|
1101
|
+
}
|
|
1102
|
+
/**
|
|
1103
|
+
* Read actual owned output for CommonJS export-name discovery, falling back to
|
|
1104
|
+
* isolated emission only when no project emitted this source. Project
|
|
1105
|
+
* transforms and const-enum settings decide which names exist at runtime. An
|
|
1106
|
+
* ESM emit is lowered as JavaScript solely to scan its CommonJS names.
|
|
1107
|
+
*
|
|
1108
|
+
* This intentionally does not read or write the runtime orphan cache. Name
|
|
1109
|
+
* discovery may inspect a source dependency without executing it, so sharing
|
|
1110
|
+
* that output with the runtime fallback would let a speculative scan affect a
|
|
1111
|
+
* later load path.
|
|
1112
|
+
*/
|
|
1113
|
+
function emitCommonJsForNameScan(filename) {
|
|
1114
|
+
const real = (0, realPath_1.realPath)(filename);
|
|
1115
|
+
const cached = commonJsNameScanSources.get(real);
|
|
1116
|
+
if (cached !== undefined) {
|
|
1117
|
+
return cached;
|
|
1118
|
+
}
|
|
1119
|
+
// The owned lanes can fail loudly: a root the program reaches outside every
|
|
1120
|
+
// checked build stops the run when its check fails. A name scan only looks
|
|
1121
|
+
// ahead of that load, so it falls back to the isolated emit and leaves the
|
|
1122
|
+
// load itself to report the failure where it happens.
|
|
1123
|
+
let served;
|
|
1124
|
+
try {
|
|
1125
|
+
served = serveEntryEmit(real) ?? serveProjectEmit(real);
|
|
1126
|
+
}
|
|
1127
|
+
catch {
|
|
1128
|
+
served = null;
|
|
1129
|
+
}
|
|
1130
|
+
if (served !== null &&
|
|
1131
|
+
RuntimeModuleFormat_1.RuntimeModuleFormat.moduleFormat(real, served.moduleOptions) === "commonjs") {
|
|
1132
|
+
commonJsNameScanSources.set(real, served.source);
|
|
1133
|
+
return served.source;
|
|
1134
|
+
}
|
|
1135
|
+
let tsgo;
|
|
1136
|
+
try {
|
|
1137
|
+
tsgo = (0, resolveTsgo_1.resolveTsgo)({ cwd: node_path_1.default.dirname(real) }).binary;
|
|
1138
|
+
}
|
|
1139
|
+
catch {
|
|
1140
|
+
commonJsNameScanSources.set(real, null);
|
|
1141
|
+
return null;
|
|
1142
|
+
}
|
|
1143
|
+
const outDir = (0, createCanonicalTempDirectory_1.createCanonicalTempDirectory)("ttsx-export-scan-");
|
|
1144
|
+
try {
|
|
1145
|
+
// Compile the owned JavaScript, not the original TypeScript whose project
|
|
1146
|
+
// may already have erased or transformed declarations. No source executes.
|
|
1147
|
+
const input = served === null ? real : node_path_1.default.join(outDir, "source.cts");
|
|
1148
|
+
if (served !== null)
|
|
1149
|
+
node_fs_1.default.writeFileSync(input, served.source);
|
|
1150
|
+
(0, spawnNative_1.spawnNative)(tsgo, RuntimeIsolatedEmit_1.RuntimeIsolatedEmit.compilerArgs(input, outDir, "commonjs", "export-scan"), { cwd: outDir, encoding: "utf8" });
|
|
1151
|
+
const emitted = isolatedEmitOf(input, outDir);
|
|
1152
|
+
const lowered = emitted === null ? null : readFileOrNull(emitted);
|
|
1153
|
+
commonJsNameScanSources.set(real, lowered);
|
|
1154
|
+
return lowered;
|
|
1155
|
+
}
|
|
1156
|
+
catch (error) {
|
|
1157
|
+
if (error instanceof RuntimeEmitOwnershipError)
|
|
1158
|
+
throw error;
|
|
1159
|
+
commonJsNameScanSources.set(real, null);
|
|
1160
|
+
return null;
|
|
1161
|
+
}
|
|
1162
|
+
finally {
|
|
1163
|
+
node_fs_1.default.rmSync(outDir, { force: true, recursive: true });
|
|
1164
|
+
}
|
|
1165
|
+
}
|
|
1166
|
+
/**
|
|
1167
|
+
* Cache root for lowered orphan sources.
|
|
1168
|
+
*
|
|
1169
|
+
* A run prepared by ttsx or `ttsc/register` names it in its manifest, under the
|
|
1170
|
+
* run's resolved cache root (`--cache-dir`, `TTSC_CACHE_DIR`, or the default
|
|
1171
|
+
* project-local root), where it outlives the run and is collected and cleaned
|
|
1172
|
+
* with the rest of that root. A runtime without a manifest has no cache root to
|
|
1173
|
+
* name, so its lowerings go where its dependency builds go
|
|
1174
|
+
* (`dependencyCacheRoot`), which is removed with the evaluation or the process
|
|
1175
|
+
* that made them.
|
|
1176
|
+
*/
|
|
1177
|
+
function orphanCacheRoot() {
|
|
1178
|
+
const owner = RuntimeManifestRegistry_1.RuntimeManifestRegistry.runtimeManifests().find((candidate) => typeof candidate.orphanCacheDir === "string" &&
|
|
1179
|
+
candidate.orphanCacheDir.length !== 0);
|
|
1180
|
+
return owner !== undefined
|
|
1181
|
+
? owner.orphanCacheDir
|
|
1182
|
+
: node_path_1.default.join((0, dependencyCacheRoot_1.dependencyCacheRoot)(), "orphan");
|
|
1183
|
+
}
|
|
1184
|
+
/**
|
|
1185
|
+
* Content-proven identity of the compiler executable. Unreadable or unstable
|
|
1186
|
+
* executable bytes produce a new nonce, so no previous generation can answer
|
|
1187
|
+
* for an executable whose identity could not be established.
|
|
1188
|
+
*
|
|
1189
|
+
* Read afresh at every use, never remembered by path: a long-lived process can
|
|
1190
|
+
* lower orphans before and after the compiler at that path is replaced, and an
|
|
1191
|
+
* entry lowered by the new one must not be recorded under the old one's key for
|
|
1192
|
+
* a later process to adopt.
|
|
1193
|
+
*/
|
|
1194
|
+
function compilerIdentity(binary) {
|
|
1195
|
+
return (0, runtimeExecutableIdentity_1.runtimeExecutableIdentity)(binary) ?? node_crypto_1.default.randomUUID();
|
|
1196
|
+
}
|
|
1197
|
+
/** The version of this ttsc package, which owns the orphan post-processing. */
|
|
1198
|
+
function ownPackageVersion() {
|
|
1199
|
+
if (ownPackageVersionCache === undefined) {
|
|
1200
|
+
try {
|
|
1201
|
+
const manifest = JSON.parse(node_fs_1.default.readFileSync(node_path_1.default.resolve(__dirname, "..", "..", "..", "..", "package.json"), "utf8"));
|
|
1202
|
+
ownPackageVersionCache =
|
|
1203
|
+
typeof manifest.version === "string" ? manifest.version : "unknown";
|
|
1204
|
+
}
|
|
1205
|
+
catch {
|
|
1206
|
+
ownPackageVersionCache = "unknown";
|
|
1207
|
+
}
|
|
1208
|
+
}
|
|
1209
|
+
return ownPackageVersionCache;
|
|
1210
|
+
}
|
|
1211
|
+
let ownPackageVersionCache;
|
|
1212
|
+
/**
|
|
1213
|
+
* Content-addressed cache path for isolated orphan lowering, or `null` when the
|
|
1214
|
+
* source cannot be read.
|
|
1215
|
+
*
|
|
1216
|
+
* The cache outlives the run in its cache root, so a hit has to prove the
|
|
1217
|
+
* current inputs would produce the cached text. The key holds everything that
|
|
1218
|
+
* decides it: the source's bytes and path (the inlined map names the path), the
|
|
1219
|
+
* module format, the emit arguments, the compiler that lowers it, and the ttsc
|
|
1220
|
+
* that post-processes it. The compiler is keyed by what it is, not where it is:
|
|
1221
|
+
* a flat `node_modules` upgrade replaces the binary at the same path, and a key
|
|
1222
|
+
* of the path alone kept serving the old compiler's output.
|
|
1223
|
+
*
|
|
1224
|
+
* The source is read here, and the emit reads it again. The answer carries the
|
|
1225
|
+
* bytes and the file's metadata before they were read, so `orphanSourceHeld`
|
|
1226
|
+
* can prove the emit read the same source.
|
|
1227
|
+
*/
|
|
1228
|
+
function orphanCacheFile(filename, tsgo, format) {
|
|
1229
|
+
const signature = orphanSourceSignature(filename);
|
|
1230
|
+
if (signature === undefined)
|
|
1231
|
+
return null;
|
|
1232
|
+
let source;
|
|
1233
|
+
try {
|
|
1234
|
+
source = node_fs_1.default.readFileSync(filename);
|
|
1235
|
+
}
|
|
1236
|
+
catch {
|
|
1237
|
+
return null;
|
|
1238
|
+
}
|
|
1239
|
+
const compiler = compilerIdentity(tsgo);
|
|
1240
|
+
const key = node_crypto_1.default
|
|
1241
|
+
.createHash("sha256")
|
|
1242
|
+
.update(compiler)
|
|
1243
|
+
.update(`\0ttsc@${ownPackageVersion()}`)
|
|
1244
|
+
// The emit policy decides the lowering, so it is part of the key: a cache
|
|
1245
|
+
// filled under an earlier policy must not answer for the current one.
|
|
1246
|
+
.update(`\0${RuntimeIsolatedEmit_1.RuntimeIsolatedEmit.policyKey()}`)
|
|
1247
|
+
.update("\0isolated-source-map-v1\0")
|
|
1248
|
+
.update(filename)
|
|
1249
|
+
.update("\0" + format)
|
|
1250
|
+
.update("\0")
|
|
1251
|
+
.update(source)
|
|
1252
|
+
.digest("hex")
|
|
1253
|
+
.slice(0, 32);
|
|
1254
|
+
return {
|
|
1255
|
+
compiler,
|
|
1256
|
+
file: node_path_1.default.join(orphanCacheRoot(), `${key}.js`),
|
|
1257
|
+
signature,
|
|
1258
|
+
source,
|
|
1259
|
+
};
|
|
1260
|
+
}
|
|
1261
|
+
/**
|
|
1262
|
+
* Whether an orphan source held still from the read that keyed its cache entry
|
|
1263
|
+
* through the emit that lowered it: the same bytes, and the same metadata,
|
|
1264
|
+
* whose change time moves with every write even when the bytes return to what
|
|
1265
|
+
* they were.
|
|
1266
|
+
*/
|
|
1267
|
+
function orphanSourceHeld(filename, cache) {
|
|
1268
|
+
if (orphanSourceSignature(filename) !== cache.signature)
|
|
1269
|
+
return false;
|
|
1270
|
+
try {
|
|
1271
|
+
return node_fs_1.default.readFileSync(filename).equals(cache.source);
|
|
1272
|
+
}
|
|
1273
|
+
catch {
|
|
1274
|
+
return false;
|
|
1275
|
+
}
|
|
1276
|
+
}
|
|
1277
|
+
/** The metadata identity of an orphan source, or `undefined` when unreadable. */
|
|
1278
|
+
function orphanSourceSignature(filename) {
|
|
1279
|
+
try {
|
|
1280
|
+
const stat = node_fs_1.default.statSync(filename, { bigint: true });
|
|
1281
|
+
return [stat.dev, stat.ino, stat.size, stat.mtimeNs, stat.ctimeNs].join(":");
|
|
1282
|
+
}
|
|
1283
|
+
catch {
|
|
1284
|
+
return undefined;
|
|
1285
|
+
}
|
|
1286
|
+
}
|
|
1287
|
+
/**
|
|
1288
|
+
* Write the lowered source to its cache path atomically (temp + rename), so a
|
|
1289
|
+
* concurrent reader never sees a half-written file. Best-effort: a failure just
|
|
1290
|
+
* means the next process re-lowers.
|
|
1291
|
+
*/
|
|
1292
|
+
function writeOrphanCache(cacheFile, lowered) {
|
|
1293
|
+
const tmp = `${cacheFile}.${process.pid}.${node_crypto_1.default.randomUUID()}.tmp`;
|
|
1294
|
+
try {
|
|
1295
|
+
node_fs_1.default.mkdirSync(node_path_1.default.dirname(cacheFile), { recursive: true });
|
|
1296
|
+
node_fs_1.default.writeFileSync(tmp, lowered);
|
|
1297
|
+
node_fs_1.default.renameSync(tmp, cacheFile);
|
|
1298
|
+
}
|
|
1299
|
+
catch (error) {
|
|
1300
|
+
E2ETrace_1.E2ETrace.runtimePreparation("", cacheFile, "unconsumed", "orphan-cache-write-failed", {
|
|
1301
|
+
moduleOptions: null,
|
|
1302
|
+
orphanCache: { file: cacheFile, error: String(error) },
|
|
1303
|
+
});
|
|
1304
|
+
// ignore — caching is an optimization, correctness does not depend on it
|
|
1305
|
+
}
|
|
1306
|
+
finally {
|
|
1307
|
+
try {
|
|
1308
|
+
node_fs_1.default.rmSync(tmp, { force: true });
|
|
1309
|
+
}
|
|
1310
|
+
catch {
|
|
1311
|
+
// Cache admission remains optional when the filesystem denies cleanup.
|
|
1312
|
+
}
|
|
1313
|
+
}
|
|
1314
|
+
}
|
|
1315
|
+
/**
|
|
1316
|
+
* The JavaScript an isolated single-file emit wrote for `input`, or `null`.
|
|
1317
|
+
*
|
|
1318
|
+
* Both callers pass exactly one positional source with ignoreConfig, noResolve
|
|
1319
|
+
* and isolatedModules to a compiler without plugin injection. Their freshly
|
|
1320
|
+
* acquired private directory contains no earlier JavaScript. The actual
|
|
1321
|
+
* completed output population therefore belongs to that source, independently
|
|
1322
|
+
* of filename or extension priority. A declaration-only input may emit none;
|
|
1323
|
+
* multiple executable outputs contradict this protocol and are an error.
|
|
1324
|
+
*/
|
|
1325
|
+
function isolatedEmitOf(input, outDir) {
|
|
1326
|
+
const outputs = EmitOwnershipIndex_1.EmitOwnershipIndex.listOutputs(outDir);
|
|
1327
|
+
if (outputs.length === 0)
|
|
1328
|
+
return null;
|
|
1329
|
+
if (outputs.length !== 1) {
|
|
1330
|
+
throw new RuntimeEmitOwnershipError(`ttsx: isolated emit of ${input} produced ${outputs.length} executable outputs; single-input ownership cannot be established`);
|
|
1331
|
+
}
|
|
1332
|
+
return node_path_1.default.resolve(outDir, outputs[0]);
|
|
1333
|
+
}
|
|
1334
|
+
/** A violated single-input emit authority cannot use the type-strip fallback. */
|
|
1335
|
+
class RuntimeEmitOwnershipError extends Error {
|
|
1336
|
+
}
|
|
1337
|
+
/**
|
|
1338
|
+
* Serve the JavaScript a checked entry build emitted from `real`, or `null`
|
|
1339
|
+
* when no such build compiled it.
|
|
1340
|
+
*
|
|
1341
|
+
* The answer comes from the builds' ownership indexes, never from a shared
|
|
1342
|
+
* name. Once a build is proven to own the file its output must be there, so an
|
|
1343
|
+
* unreadable one is an error naming both files rather than a reason to try the
|
|
1344
|
+
* next lane and run something else.
|
|
1345
|
+
*/
|
|
1346
|
+
function serveEntryEmit(real) {
|
|
1347
|
+
const owner = RuntimeManifestRegistry_1.RuntimeManifestRegistry.findEntryEmit(real);
|
|
1348
|
+
if (owner === null) {
|
|
1349
|
+
return null;
|
|
1350
|
+
}
|
|
1351
|
+
return {
|
|
1352
|
+
emittedFile: owner.emittedFile,
|
|
1353
|
+
moduleOptions: owner.manifest.moduleOptions ?? {},
|
|
1354
|
+
source: readOwnedEmit(owner.emittedFile, real),
|
|
1355
|
+
sourceFile: real,
|
|
1356
|
+
};
|
|
1357
|
+
}
|
|
1358
|
+
/**
|
|
1359
|
+
* Serve `real` through the project that owns it, or `null` when no tsconfig
|
|
1360
|
+
* owns it. An empty project emit can leave this file outside its root set;
|
|
1361
|
+
* other project or root failures retain their original diagnostic instead of
|
|
1362
|
+
* silently discarding the project's compiler and plugin policy.
|
|
1363
|
+
*
|
|
1364
|
+
* The project is built once per run, honouring its own tsconfig (transform
|
|
1365
|
+
* plugins included), so a source-shipping package that needs a transform
|
|
1366
|
+
* behaves correctly at runtime. That build serves the file when it compiled it.
|
|
1367
|
+
* When it did not — the file sits outside the project's `include` or `files` —
|
|
1368
|
+
* the file is a root no build covered, and it is compiled alone through the
|
|
1369
|
+
* same project's options rather than handed another file's output or stripped
|
|
1370
|
+
* of them.
|
|
1371
|
+
*
|
|
1372
|
+
* Whether that root is type-checked follows who wrote it. A file of the user's
|
|
1373
|
+
* own tree is checked, the same gate `ttsc/register` applies to every root it
|
|
1374
|
+
* prepares, so a type error stops the run before the file executes. A file
|
|
1375
|
+
* inside an installed package is emit-only, like every other file of that
|
|
1376
|
+
* package the project build already serves.
|
|
1377
|
+
*/
|
|
1378
|
+
function serveProjectEmit(real) {
|
|
1379
|
+
const operations = {
|
|
1380
|
+
owningTsconfig,
|
|
1381
|
+
ensureProjectBuilt,
|
|
1382
|
+
isEmptyProjectEmitError: (error) => error instanceof EmptyProjectEmitError,
|
|
1383
|
+
serve: serveBuiltDependency,
|
|
1384
|
+
ensureRootBuilt,
|
|
1385
|
+
};
|
|
1386
|
+
if (!process.env.TTSC_E2E_TRACE)
|
|
1387
|
+
return OwnedProjectSource_1.OwnedProjectSource.serve(real, operations);
|
|
1388
|
+
let selectedTsconfig;
|
|
1389
|
+
let buildScope;
|
|
1390
|
+
const served = OwnedProjectSource_1.OwnedProjectSource.serve(real, {
|
|
1391
|
+
...operations,
|
|
1392
|
+
owningTsconfig(source) {
|
|
1393
|
+
const selected = owningTsconfig(source);
|
|
1394
|
+
selectedTsconfig = selected ?? undefined;
|
|
1395
|
+
return selected;
|
|
1396
|
+
},
|
|
1397
|
+
ensureProjectBuilt(config) {
|
|
1398
|
+
buildScope = "project";
|
|
1399
|
+
return ensureProjectBuilt(config);
|
|
1400
|
+
},
|
|
1401
|
+
ensureRootBuilt(config, source) {
|
|
1402
|
+
buildScope = "single-root";
|
|
1403
|
+
return ensureRootBuilt(config, source);
|
|
1404
|
+
},
|
|
1405
|
+
});
|
|
1406
|
+
return served === null ? null : { ...served, selectedTsconfig, buildScope };
|
|
1407
|
+
}
|
|
1408
|
+
function serveBuiltDependency(built, real) {
|
|
1409
|
+
const emitted = builtProjectIndex(built).find(real);
|
|
1410
|
+
if (emitted === null) {
|
|
1411
|
+
return null;
|
|
1412
|
+
}
|
|
1413
|
+
return {
|
|
1414
|
+
emittedFile: emitted,
|
|
1415
|
+
moduleOptions: built.moduleOptions,
|
|
1416
|
+
source: readOwnedEmit(emitted, real),
|
|
1417
|
+
sourceFile: real,
|
|
1418
|
+
};
|
|
1419
|
+
}
|
|
1420
|
+
/** The ownership index of one dependency or root build, created on first use. */
|
|
1421
|
+
function builtProjectIndex(built) {
|
|
1422
|
+
let index = builtProjectIndexes.get(built);
|
|
1423
|
+
if (index === undefined) {
|
|
1424
|
+
index = new EmitOwnershipIndex_1.EmitOwnershipIndex({
|
|
1425
|
+
emitDir: built.emitDir,
|
|
1426
|
+
outputs: built.outputs,
|
|
1427
|
+
emittedSources: built.emittedSources,
|
|
1428
|
+
emittedSourceProofFailures: built.emittedSourceProofFailures,
|
|
1429
|
+
rootDir: built.rootDir,
|
|
1430
|
+
});
|
|
1431
|
+
builtProjectIndexes.set(built, index);
|
|
1432
|
+
}
|
|
1433
|
+
return index;
|
|
1434
|
+
}
|
|
1435
|
+
const builtProjectIndexes = new WeakMap();
|
|
1436
|
+
/** Read an output a build is proven to have emitted from `source`. */
|
|
1437
|
+
function readOwnedEmit(emittedFile, source) {
|
|
1438
|
+
const text = readFileOrNull(emittedFile);
|
|
1439
|
+
if (text === null) {
|
|
1440
|
+
throw new Error(`ttsx: the JavaScript emitted for ${source} is missing: ${emittedFile}`);
|
|
1441
|
+
}
|
|
1442
|
+
return text;
|
|
1443
|
+
}
|
|
1444
|
+
/**
|
|
1445
|
+
* Compile one root its owning project's file set does not contain, once per run
|
|
1446
|
+
* for each content of the root, and share the result across every process of
|
|
1447
|
+
* the run exactly like a project build. A failed check publishes nothing, so
|
|
1448
|
+
* every process that reaches the root reports the same diagnostics instead of
|
|
1449
|
+
* reusing a build.
|
|
1450
|
+
*
|
|
1451
|
+
* The root's own bytes are part of the key. A root is often a file the program
|
|
1452
|
+
* wrote itself, and one that rewrites it and loads it again, in this process or
|
|
1453
|
+
* another, must get the new code rather than the build of the old.
|
|
1454
|
+
*/
|
|
1455
|
+
function ensureRootBuilt(tsconfig, source) {
|
|
1456
|
+
const identity = `${source}\0${contentDigest(source)}`;
|
|
1457
|
+
const { cacheDir, lockDir, metaPath, root, compilerProof, plugins } = dependencyCachePaths(tsconfig, identity);
|
|
1458
|
+
const memo = cacheDir;
|
|
1459
|
+
const cached = builtRoots.get(memo);
|
|
1460
|
+
if (cached !== undefined) {
|
|
1461
|
+
return cached;
|
|
1462
|
+
}
|
|
1463
|
+
const failed = failedRoots.get(memo);
|
|
1464
|
+
if (failed !== undefined) {
|
|
1465
|
+
throw failed;
|
|
1466
|
+
}
|
|
1467
|
+
const reuse = (0, readDependencyCache_1.readDependencyCache)(cacheDir, metaPath);
|
|
1468
|
+
if (reuse !== null) {
|
|
1469
|
+
builtRoots.set(memo, reuse);
|
|
1470
|
+
return reuse;
|
|
1471
|
+
}
|
|
1472
|
+
node_fs_1.default.mkdirSync(root, { recursive: true });
|
|
1473
|
+
let built;
|
|
1474
|
+
try {
|
|
1475
|
+
built = DependencyBuildAdmission_1.DependencyBuildAdmission.run(cacheDir, metaPath, lockDir, () => buildRoot(tsconfig, source, cacheDir, metaPath, compilerProof, plugins));
|
|
1476
|
+
}
|
|
1477
|
+
catch (error) {
|
|
1478
|
+
// The same content fails the same way, so a second reach of this root in
|
|
1479
|
+
// the process (a name scan, then the load) reports without building again.
|
|
1480
|
+
failedRoots.set(memo, error);
|
|
1481
|
+
throw error;
|
|
1482
|
+
}
|
|
1483
|
+
builtRoots.set(memo, built);
|
|
1484
|
+
return built;
|
|
1485
|
+
}
|
|
1486
|
+
const builtRoots = new Map();
|
|
1487
|
+
/**
|
|
1488
|
+
* Roots whose build failed in this process, by the same key as
|
|
1489
|
+
* {@link builtRoots}.
|
|
1490
|
+
*/
|
|
1491
|
+
const failedRoots = new Map();
|
|
1492
|
+
/** SHA-256 of a file's bytes, or of nothing when it cannot be read. */
|
|
1493
|
+
function contentDigest(file) {
|
|
1494
|
+
const hash = node_crypto_1.default.createHash("sha256");
|
|
1495
|
+
try {
|
|
1496
|
+
hash.update(node_fs_1.default.readFileSync(file));
|
|
1497
|
+
}
|
|
1498
|
+
catch {
|
|
1499
|
+
// The build reports the unreadable file itself; the key only has to exist.
|
|
1500
|
+
}
|
|
1501
|
+
return hash.digest("hex");
|
|
1502
|
+
}
|
|
1503
|
+
/**
|
|
1504
|
+
* Compile `source` alone through the options of `tsconfig` into a fresh
|
|
1505
|
+
* generation directory, then publish its completion marker. The generation and
|
|
1506
|
+
* marker protocol is the project build's, so a reader never sees a partial
|
|
1507
|
+
* emit.
|
|
1508
|
+
*/
|
|
1509
|
+
function buildRoot(tsconfig, source, cacheDir, metaPath, compilerProof, plugins) {
|
|
1510
|
+
// Read through the descriptor-input recorder, so a plugin descriptor that
|
|
1511
|
+
// reaches this root reports the config chain it was compiled under.
|
|
1512
|
+
const project = readPluginDescriptorProjectConfig(tsconfig);
|
|
1513
|
+
const generation = DependencyBuildGeneration_1.DependencyBuildGeneration.newDependencyGeneration();
|
|
1514
|
+
const emitDir = DependencyBuildGeneration_1.DependencyBuildGeneration.dependencyGenerationDir(cacheDir, generation);
|
|
1515
|
+
node_fs_1.default.rmSync(emitDir, { force: true, recursive: true });
|
|
1516
|
+
try {
|
|
1517
|
+
const built = (0, buildSingleRootProject_1.buildSingleRootProject)({
|
|
1518
|
+
checked: rootIsChecked(source),
|
|
1519
|
+
emitDir,
|
|
1520
|
+
key: `${process.pid}-${generation}`,
|
|
1521
|
+
options: { plugins },
|
|
1522
|
+
projectRoot: project.root,
|
|
1523
|
+
role: "root",
|
|
1524
|
+
source,
|
|
1525
|
+
tsconfig,
|
|
1526
|
+
});
|
|
1527
|
+
const rootDir = DependencyBuildGeneration_1.DependencyBuildGeneration.resolvePhysicalPath(built.rootDir);
|
|
1528
|
+
const moduleOptions = (0, projectModuleOptions_1.projectModuleOptions)(built.project.compilerOptions);
|
|
1529
|
+
const outputs = EmitOwnershipIndex_1.EmitOwnershipIndex.listOutputs(emitDir);
|
|
1530
|
+
const emittedSources = built.emittedSources;
|
|
1531
|
+
const emittedSourceProofFailures = built.emittedSourceProofFailures;
|
|
1532
|
+
if (!RuntimeEmitProvenance_1.RuntimeEmitProvenance.isRecord(emittedSources)) {
|
|
1533
|
+
throw new Error(`ttsx: root build of ${source} did not report authoritative emit provenance`);
|
|
1534
|
+
}
|
|
1535
|
+
assertCompilerStillCurrent(tsconfig, compilerProof);
|
|
1536
|
+
publishDependencyMeta(metaPath, {
|
|
1537
|
+
generation,
|
|
1538
|
+
moduleOptions,
|
|
1539
|
+
outputs,
|
|
1540
|
+
rootDir,
|
|
1541
|
+
emittedSources,
|
|
1542
|
+
emittedSourceProofFailures,
|
|
1543
|
+
});
|
|
1544
|
+
return {
|
|
1545
|
+
emitDir,
|
|
1546
|
+
moduleOptions,
|
|
1547
|
+
outputs,
|
|
1548
|
+
rootDir,
|
|
1549
|
+
emittedSources,
|
|
1550
|
+
emittedSourceProofFailures,
|
|
1551
|
+
};
|
|
1552
|
+
}
|
|
1553
|
+
catch (error) {
|
|
1554
|
+
throwAfterFailedArtifactCleanup(error, emitDir, true);
|
|
1555
|
+
}
|
|
1556
|
+
}
|
|
1557
|
+
/**
|
|
1558
|
+
* The plugin policy a project or root compiled at run time inherits: none while
|
|
1559
|
+
* a plugin descriptor is being loaded, because its own transform would re-enter
|
|
1560
|
+
* plugin loading, and none when the run itself disabled them (`ttsx
|
|
1561
|
+
* --no-plugins`).
|
|
1562
|
+
*/
|
|
1563
|
+
function runtimePluginPolicy() {
|
|
1564
|
+
return (0, selectRuntimePluginPolicy_1.selectRuntimePluginPolicy)(RuntimeManifestRegistry_1.RuntimeManifestRegistry.runtimeManifests(), process.env.TTSC_PLUGIN_DESCRIPTOR_LOAD === "1");
|
|
1565
|
+
}
|
|
1566
|
+
/**
|
|
1567
|
+
* Whether a root no build covered is type-checked before it runs.
|
|
1568
|
+
*
|
|
1569
|
+
* A root of the user's own tree is: it is the user's program. A root inside an
|
|
1570
|
+
* installed package is not, as no other file of that package is. Neither is a
|
|
1571
|
+
* root reached while a plugin descriptor is being loaded: the descriptor is
|
|
1572
|
+
* tooling the compiler runs, evaluated under the consumer's config, whose
|
|
1573
|
+
* `types`, `lib`, and strictness were never chosen for it, and it was never
|
|
1574
|
+
* type-gated before it ran.
|
|
1575
|
+
*/
|
|
1576
|
+
function rootIsChecked(real) {
|
|
1577
|
+
return (process.env.TTSC_PLUGIN_DESCRIPTOR_LOAD !== "1" &&
|
|
1578
|
+
!RuntimeProjectOwnership_1.RuntimeProjectOwnership.isInstalledPackageSource(real));
|
|
1579
|
+
}
|
|
1580
|
+
/**
|
|
1581
|
+
* Build the project that owns a dependency once per run and share the result
|
|
1582
|
+
* across every process the program spawns.
|
|
1583
|
+
*
|
|
1584
|
+
* A program (a benchmark, a worker pool) can fan out into many child processes,
|
|
1585
|
+
* each of which inherits the runtime manifest and would otherwise rebuild every
|
|
1586
|
+
* dependency from scratch — and worse, several at once into the same directory,
|
|
1587
|
+
* corrupting each other. So the build output is content-keyed under the shared
|
|
1588
|
+
* per-run cache: a finished build leaves a meta marker that any later process
|
|
1589
|
+
* (or a second import in this one) reuses, and concurrent first-builders are
|
|
1590
|
+
* serialised by an atomic lock directory.
|
|
1591
|
+
*/
|
|
1592
|
+
function ensureProjectBuilt(tsconfig) {
|
|
1593
|
+
const { cacheDir, lockDir, metaPath, root, compilerProof, plugins } = dependencyCachePaths(tsconfig);
|
|
1594
|
+
const cached = builtProjects.get(cacheDir);
|
|
1595
|
+
if (cached !== undefined) {
|
|
1596
|
+
return cached;
|
|
1597
|
+
}
|
|
1598
|
+
const failed = failedProjects.get(cacheDir);
|
|
1599
|
+
if (failed !== undefined) {
|
|
1600
|
+
throw failed;
|
|
1601
|
+
}
|
|
1602
|
+
const reuse = (0, readDependencyCache_1.readDependencyCache)(cacheDir, metaPath);
|
|
1603
|
+
if (reuse !== null) {
|
|
1604
|
+
builtProjects.set(cacheDir, reuse);
|
|
1605
|
+
return reuse;
|
|
1606
|
+
}
|
|
1607
|
+
node_fs_1.default.mkdirSync(root, { recursive: true });
|
|
1608
|
+
let built;
|
|
1609
|
+
try {
|
|
1610
|
+
built = DependencyBuildAdmission_1.DependencyBuildAdmission.run(cacheDir, metaPath, lockDir, () => buildDependency(tsconfig, cacheDir, metaPath, compilerProof, plugins));
|
|
1611
|
+
}
|
|
1612
|
+
catch (error) {
|
|
1613
|
+
// Every file the project owns asks for this build before its own root
|
|
1614
|
+
// lane, so a build that produced nothing would otherwise run again for
|
|
1615
|
+
// each of them. It is built once per process either way, like a success.
|
|
1616
|
+
failedProjects.set(cacheDir, error);
|
|
1617
|
+
throw error;
|
|
1618
|
+
}
|
|
1619
|
+
builtProjects.set(cacheDir, built);
|
|
1620
|
+
return built;
|
|
1621
|
+
}
|
|
1622
|
+
/**
|
|
1623
|
+
* Project builds that failed in this process, by full cache identity, paired
|
|
1624
|
+
* with {@link builtProjects}.
|
|
1625
|
+
*/
|
|
1626
|
+
const failedProjects = new Map();
|
|
1627
|
+
function dependencyCachePaths(tsconfig, rootSource) {
|
|
1628
|
+
let compilerProof;
|
|
1629
|
+
try {
|
|
1630
|
+
compilerProof = (0, runtimeExecutableIdentity_1.runtimeExecutableIdentity)((0, resolveTsgo_1.resolveTsgo)({ cwd: node_path_1.default.dirname(tsconfig) }).binary);
|
|
1631
|
+
}
|
|
1632
|
+
catch {
|
|
1633
|
+
// An unobservable executable gets a unique, non-reusable generation key.
|
|
1634
|
+
}
|
|
1635
|
+
const plugins = runtimePluginPolicy();
|
|
1636
|
+
const key = (0, dependencyCacheKey_1.dependencyCacheKey)(tsconfig, {
|
|
1637
|
+
root: rootSource,
|
|
1638
|
+
compilerIdentity: compilerProof ?? node_crypto_1.default.randomUUID(),
|
|
1639
|
+
plugins,
|
|
1640
|
+
});
|
|
1641
|
+
const root = (0, dependencyCacheRoot_1.dependencyCacheRoot)();
|
|
1642
|
+
return {
|
|
1643
|
+
cacheDir: node_path_1.default.join(root, key),
|
|
1644
|
+
lockDir: node_path_1.default.join(root, `${key}.lock`),
|
|
1645
|
+
metaPath: node_path_1.default.join(root, `${key}.json`),
|
|
1646
|
+
compilerProof,
|
|
1647
|
+
plugins,
|
|
1648
|
+
root,
|
|
1649
|
+
};
|
|
1650
|
+
}
|
|
1651
|
+
/** A runtime build may publish only under the compiler content that keyed it. */
|
|
1652
|
+
function assertCompilerStillCurrent(tsconfig, proof) {
|
|
1653
|
+
if (proof === undefined)
|
|
1654
|
+
return;
|
|
1655
|
+
const binary = (0, resolveTsgo_1.resolveTsgo)({ cwd: node_path_1.default.dirname(tsconfig) }).binary;
|
|
1656
|
+
const current = (0, runtimeExecutableIdentity_1.runtimeExecutableIdentity)(binary);
|
|
1657
|
+
if (current !== proof) {
|
|
1658
|
+
E2ETrace_1.E2ETrace.capabilityResolution("runtime-compiler-publication-refused", {
|
|
1659
|
+
tsconfig,
|
|
1660
|
+
binary,
|
|
1661
|
+
expectedCompiler: proof,
|
|
1662
|
+
currentCompiler: current,
|
|
1663
|
+
});
|
|
1664
|
+
throw new Error(`ttsx: compiler changed while building ${tsconfig}; the runtime generation was not published`);
|
|
1665
|
+
}
|
|
1666
|
+
}
|
|
1667
|
+
/**
|
|
1668
|
+
* Compile a dependency project into a fresh generation directory and publish
|
|
1669
|
+
* its completion marker atomically.
|
|
1670
|
+
*
|
|
1671
|
+
* Under cooperative cache ownership and noncolliding generation ids, emit lands
|
|
1672
|
+
* in a fresh `<cacheDir>/gen-<generation>` rather than replacing a reader's
|
|
1673
|
+
* generation in place. Emit presence and provenance are checked before
|
|
1674
|
+
* temp-and-rename publication. Failure attempts to remove the partial
|
|
1675
|
+
* directory; refused cleanup can leave it behind without publishing a
|
|
1676
|
+
* successful marker.
|
|
1677
|
+
*/
|
|
1678
|
+
function buildDependency(tsconfig, cacheDir, metaPath, compilerProof, plugins) {
|
|
1679
|
+
const project = readPluginDescriptorProjectConfig(tsconfig);
|
|
1680
|
+
const generation = DependencyBuildGeneration_1.DependencyBuildGeneration.newDependencyGeneration();
|
|
1681
|
+
const emitDir = DependencyBuildGeneration_1.DependencyBuildGeneration.dependencyGenerationDir(cacheDir, generation);
|
|
1682
|
+
node_fs_1.default.rmSync(emitDir, { force: true, recursive: true });
|
|
1683
|
+
try {
|
|
1684
|
+
node_fs_1.default.mkdirSync(emitDir, { recursive: true });
|
|
1685
|
+
const result = (0, runBuild_1.runBuild)({
|
|
1686
|
+
cwd: project.root,
|
|
1687
|
+
forceEmitProvenance: true,
|
|
1688
|
+
// Emit-only means diagnostics never withhold the emit, so a dependency's
|
|
1689
|
+
// own `noEmitOnError` is switched off: honoured, it would turn any
|
|
1690
|
+
// diagnostic into an empty output and the isolated fallback below.
|
|
1691
|
+
passthrough: [
|
|
1692
|
+
...(0, runtimeCompilerArgs_1.runtimeCompilerArgs)(project),
|
|
1693
|
+
"--noEmitOnError",
|
|
1694
|
+
"false",
|
|
1695
|
+
],
|
|
1696
|
+
emit: true,
|
|
1697
|
+
outDir: emitDir,
|
|
1698
|
+
// Every output this build writes stays in ttsx's private directory: a
|
|
1699
|
+
// declared `declarationDir`, `tsBuildInfoFile`, or `outFile`, and any
|
|
1700
|
+
// output location forwarded on the command line, would otherwise land in
|
|
1701
|
+
// the user's tree.
|
|
1702
|
+
isolateOutputsTo: emitDir,
|
|
1703
|
+
// The generation directory is an `outDir` this lane injected, not one the
|
|
1704
|
+
// dependency declared. Private ordinary emit uses a volume-root layout
|
|
1705
|
+
// without restricting imported sources to the config directory; declared
|
|
1706
|
+
// and composite roots keep their compiler containment policy. The same
|
|
1707
|
+
// root is published by resolveDependencySourceRoot below.
|
|
1708
|
+
pinInferredRootDir: true,
|
|
1709
|
+
// Compiler containment uses the same lexical spelling as its inputs;
|
|
1710
|
+
// resolveDependencySourceRoot separately owns physical serving lookup.
|
|
1711
|
+
privateEmitRootDir: (0, privateRuntimeRootDir_1.privateRuntimeRootDir)(project.root, project.compilerOptions.rootDir, project.compilerOptions.composite),
|
|
1712
|
+
// Emit a source map on the transient dependency emit (it never reaches the
|
|
1713
|
+
// dependency's published `lib/`) so the serve path can inline it under the
|
|
1714
|
+
// source URL, but only when the dependency configures none itself. Routed
|
|
1715
|
+
// as a dedicated build option, not a forwarded tsgo flag, so it never
|
|
1716
|
+
// reaches a native plugin host's argument parser.
|
|
1717
|
+
forceRuntimeSourceMap: project.compilerOptions.sourceMap !== true &&
|
|
1718
|
+
project.compilerOptions.inlineSourceMap !== true,
|
|
1719
|
+
// Honour the dependency's own transform plugins: a source-shipping package
|
|
1720
|
+
// can itself depend on a transform (e.g. a fixture whose values are built
|
|
1721
|
+
// with `typia.createRandom`), and its runtime behaviour is wrong without it.
|
|
1722
|
+
// `runBuild` runs on this main thread, so its plugin resolution works the
|
|
1723
|
+
// same as the entry build's. A run started with `--no-plugins` keeps that
|
|
1724
|
+
// disabled policy across dependency projects. Loading a plugin descriptor
|
|
1725
|
+
// (`TTSC_PLUGIN_DESCRIPTOR_LOAD`) also disables plugins: its own — possibly
|
|
1726
|
+
// self-hosting — transform must NOT run, or it re-enters plugin loading and
|
|
1727
|
+
// deadlocks, so every dependency in that graph builds with plugins off.
|
|
1728
|
+
plugins,
|
|
1729
|
+
quiet: true,
|
|
1730
|
+
resolvedProject: project,
|
|
1731
|
+
// Emit only: the entry project's up-front check is the type gate. A
|
|
1732
|
+
// dependency build pulls its own transitive sources into the program and
|
|
1733
|
+
// would otherwise fail on type diagnostics that belong to those packages
|
|
1734
|
+
// under their own (laxer) config — e.g. unused-type-parameter warnings in a
|
|
1735
|
+
// transitively imported library. We still want the type-aware emit (for
|
|
1736
|
+
// type-only elision), just not the error gate.
|
|
1737
|
+
skipDiagnosticsCheck: true,
|
|
1738
|
+
tsconfig,
|
|
1739
|
+
});
|
|
1740
|
+
// Success is "the project wrote JavaScript", not the exit status: the build is
|
|
1741
|
+
// emit-only, so diagnostics do not fail it, and a native transform host
|
|
1742
|
+
// (typia, @ttsc/banner, …) writes its output on its own. A genuinely empty
|
|
1743
|
+
// output directory is the real failure; the caller then falls back to
|
|
1744
|
+
// isolated emit of the one file.
|
|
1745
|
+
if (!DependencyBuildGeneration_1.DependencyBuildGeneration.emittedAnything(emitDir)) {
|
|
1746
|
+
E2ETrace_1.E2ETrace.runtimePreparation("", tsconfig, "unconsumed", "dependency-project-empty-emit", {
|
|
1747
|
+
moduleOptions: (0, projectModuleOptions_1.projectModuleOptions)(project.compilerOptions),
|
|
1748
|
+
selectedTsconfig: tsconfig,
|
|
1749
|
+
buildScope: "project",
|
|
1750
|
+
nativeBuildFailure: {
|
|
1751
|
+
status: result.status,
|
|
1752
|
+
stdout: result.stdout,
|
|
1753
|
+
stderr: result.stderr,
|
|
1754
|
+
},
|
|
1755
|
+
});
|
|
1756
|
+
throw new EmptyProjectEmitError([
|
|
1757
|
+
`ttsx: dependency build produced no output for ${tsconfig}`,
|
|
1758
|
+
result.stderr || result.stdout,
|
|
1759
|
+
]
|
|
1760
|
+
.filter((line) => line.trim().length !== 0)
|
|
1761
|
+
.join("\n"));
|
|
1762
|
+
}
|
|
1763
|
+
// Absence above serves and publishes nothing. Every actual emitted byte
|
|
1764
|
+
// still requires the selected producer's authoritative ownership record.
|
|
1765
|
+
const emittedSources = result.emittedSources;
|
|
1766
|
+
const emittedSourceProofFailures = result.emittedSourceProofFailures;
|
|
1767
|
+
if (!RuntimeEmitProvenance_1.RuntimeEmitProvenance.isRecord(emittedSources)) {
|
|
1768
|
+
throw new Error(`ttsx: dependency build of ${tsconfig} did not report authoritative emit provenance`, { cause: result });
|
|
1769
|
+
}
|
|
1770
|
+
const rootDir = resolveDependencySourceRoot(project);
|
|
1771
|
+
const moduleOptions = (0, projectModuleOptions_1.projectModuleOptions)(project.compilerOptions);
|
|
1772
|
+
const outputs = EmitOwnershipIndex_1.EmitOwnershipIndex.listOutputs(emitDir);
|
|
1773
|
+
assertCompilerStillCurrent(tsconfig, compilerProof);
|
|
1774
|
+
publishDependencyMeta(metaPath, {
|
|
1775
|
+
generation,
|
|
1776
|
+
moduleOptions,
|
|
1777
|
+
outputs,
|
|
1778
|
+
rootDir,
|
|
1779
|
+
emittedSources,
|
|
1780
|
+
emittedSourceProofFailures,
|
|
1781
|
+
});
|
|
1782
|
+
return {
|
|
1783
|
+
emitDir,
|
|
1784
|
+
moduleOptions,
|
|
1785
|
+
outputs,
|
|
1786
|
+
rootDir,
|
|
1787
|
+
emittedSources,
|
|
1788
|
+
emittedSourceProofFailures,
|
|
1789
|
+
};
|
|
1790
|
+
}
|
|
1791
|
+
catch (error) {
|
|
1792
|
+
throwAfterFailedArtifactCleanup(error, emitDir, true);
|
|
1793
|
+
}
|
|
1794
|
+
}
|
|
1795
|
+
/**
|
|
1796
|
+
* Publish the completion marker atomically: write it to a private temp name in
|
|
1797
|
+
* the same directory, then rename onto `metaPath`. Successful native rename
|
|
1798
|
+
* replaces the whole marker rather than writing it in place; refusal propagates
|
|
1799
|
+
* with an attempted temporary-file cleanup. The producer calls this after emit
|
|
1800
|
+
* presence and provenance checks. Stable layout and retained immutable emit
|
|
1801
|
+
* remain cooperative premises, and no fsync establishes crash durability.
|
|
1802
|
+
*/
|
|
1803
|
+
function publishDependencyMeta(metaPath, meta) {
|
|
1804
|
+
const tmp = `${metaPath}.${process.pid}.${Date.now()}.${node_crypto_1.default
|
|
1805
|
+
.randomBytes(6)
|
|
1806
|
+
.toString("hex")}.tmp`;
|
|
1807
|
+
try {
|
|
1808
|
+
node_fs_1.default.writeFileSync(tmp, JSON.stringify(meta), "utf8");
|
|
1809
|
+
node_fs_1.default.renameSync(tmp, metaPath);
|
|
1810
|
+
}
|
|
1811
|
+
catch (error) {
|
|
1812
|
+
throwAfterFailedArtifactCleanup(error, tmp, false);
|
|
1813
|
+
}
|
|
1814
|
+
}
|
|
1815
|
+
/**
|
|
1816
|
+
* Remove only the artifact owned by the failed publication. Preserve its
|
|
1817
|
+
* original failure; a refused removal adds a second causal outcome rather than
|
|
1818
|
+
* replacing the compiler or marker error with a filesystem error.
|
|
1819
|
+
*/
|
|
1820
|
+
function throwAfterFailedArtifactCleanup(error, location, recursive) {
|
|
1821
|
+
try {
|
|
1822
|
+
node_fs_1.default.rmSync(location, { force: true, recursive });
|
|
1823
|
+
}
|
|
1824
|
+
catch (cleanupError) {
|
|
1825
|
+
throw new AggregateError([error, cleanupError], `ttsx: publication failed and its private artifact could not be removed: ${location}`, { cause: error });
|
|
1826
|
+
}
|
|
1827
|
+
throw error;
|
|
1828
|
+
}
|
|
1829
|
+
/**
|
|
1830
|
+
* A complete project build with no JavaScript does not establish root
|
|
1831
|
+
* ownership.
|
|
1832
|
+
*/
|
|
1833
|
+
class EmptyProjectEmitError extends Error {
|
|
1834
|
+
}
|
|
1835
|
+
/**
|
|
1836
|
+
* The config of the project that owns `real`: its nearest `tsconfig.json`, or,
|
|
1837
|
+
* when that config is a solution that does not contain the file, the referenced
|
|
1838
|
+
* project that does. `null` when no config owns the file at all.
|
|
1839
|
+
*/
|
|
1840
|
+
function owningTsconfig(real) {
|
|
1841
|
+
const nearest = RuntimeProjectOwnership_1.RuntimeProjectOwnership.nearestTsconfig(real, recordPluginDescriptorProjectInputs);
|
|
1842
|
+
if (nearest === null)
|
|
1843
|
+
return null;
|
|
1844
|
+
// Config spelling and target identity do not prove that inherited options,
|
|
1845
|
+
// reference roots or directory membership are unchanged. The resolver owns
|
|
1846
|
+
// lookup-scoped reuse; a later import must ask it for a current answer.
|
|
1847
|
+
return (0, resolveOwningProjectConfig_1.resolveOwningProjectConfig)({
|
|
1848
|
+
file: real,
|
|
1849
|
+
onConfig: (config) => recordPluginDescriptorProjectInputs([config]),
|
|
1850
|
+
tsconfig: nearest,
|
|
1851
|
+
});
|
|
1852
|
+
}
|
|
1853
|
+
function readFileOrNull(file) {
|
|
1854
|
+
if (file === null) {
|
|
1855
|
+
return null;
|
|
1856
|
+
}
|
|
1857
|
+
try {
|
|
1858
|
+
return node_fs_1.default.readFileSync(file, "utf8");
|
|
1859
|
+
}
|
|
1860
|
+
catch {
|
|
1861
|
+
return null;
|
|
1862
|
+
}
|
|
1863
|
+
}
|
|
1864
|
+
/**
|
|
1865
|
+
* The private layout root a dependency's emit mirrors, in physical spelling.
|
|
1866
|
+
* Ordinary undeclared roots use the volume root, while declared and composite
|
|
1867
|
+
* roots retain their compiler containment. Argument composition and serving
|
|
1868
|
+
* metadata use the same selection; the output ledger proves source ownership.
|
|
1869
|
+
*
|
|
1870
|
+
* Both branches need the pass, for different reasons. A declared `rootDir`
|
|
1871
|
+
* arrives from `readProjectConfig` joined against the config that declared it
|
|
1872
|
+
* but never resolved, so a `rootDir` that is itself a symlinked directory stays
|
|
1873
|
+
* unresolved. `project.root` arrives through plain `fs.realpathSync`, which
|
|
1874
|
+
* follows reparse points but leaves a Windows 8.3 component alone — and
|
|
1875
|
+
* {@link realPath} uses `fs.realpathSync.native`, which expands it. The
|
|
1876
|
+
* ownership index resolves both sides itself, so a stale spelling cannot make
|
|
1877
|
+
* it answer wrongly, but a physical one keeps every lookup on its cheap forward
|
|
1878
|
+
* mirror instead of the inverse scan.
|
|
1879
|
+
*
|
|
1880
|
+
* The entry lane applies the same private-root policy and physical-resolution
|
|
1881
|
+
* pass. Volume roots do not enumerate or authorize other source files.
|
|
1882
|
+
*/
|
|
1883
|
+
function resolveDependencySourceRoot(project) {
|
|
1884
|
+
const rootDir = project.compilerOptions.rootDir;
|
|
1885
|
+
return DependencyBuildGeneration_1.DependencyBuildGeneration.resolvePhysicalPath((0, privateRuntimeRootDir_1.privateRuntimeRootDir)(project.root, rootDir, project.compilerOptions.composite));
|
|
1886
|
+
}
|
|
1887
|
+
/**
|
|
1888
|
+
* Map the JavaScript extension a relative `specifier` carries to the TypeScript
|
|
1889
|
+
* source extensions tsgo would have emitted it from. Running from source, a
|
|
1890
|
+
* `"./x.js"` import (whether authored or rewritten from `"./x.ts"` by
|
|
1891
|
+
* `--rewriteRelativeImportExtensions`) has no `.js` on disk — only `./x.ts`.
|
|
1892
|
+
*/
|
|
1893
|
+
const JS_TO_TS_EXTENSIONS = new Map([
|
|
1894
|
+
[".js", [".ts", ".tsx"]],
|
|
1895
|
+
[".jsx", [".tsx"]],
|
|
1896
|
+
[".mjs", [".mts"]],
|
|
1897
|
+
[".cjs", [".cts"]],
|
|
1898
|
+
]);
|
|
1899
|
+
/** Candidate sources that can satisfy one missing JavaScript spelling. */
|
|
1900
|
+
function typescriptSourcesForJavaScriptSpecifier(file) {
|
|
1901
|
+
const extension = node_path_1.default.extname(file).toLowerCase();
|
|
1902
|
+
const substitutions = JS_TO_TS_EXTENSIONS.get(extension);
|
|
1903
|
+
if (substitutions === undefined)
|
|
1904
|
+
return [];
|
|
1905
|
+
const stem = file.slice(0, file.length - extension.length);
|
|
1906
|
+
return substitutions.map((candidate) => stem + candidate);
|
|
1907
|
+
}
|
|
1908
|
+
/**
|
|
1909
|
+
* Rescue a `specifier` that Node's resolver rejected: map a JavaScript
|
|
1910
|
+
* extension back to its TypeScript source, or probe candidate extensions /
|
|
1911
|
+
* directory indexes for an extensionless form. Returns a `file:` URL for the
|
|
1912
|
+
* first match, or `null` when nothing matches.
|
|
1913
|
+
*
|
|
1914
|
+
* Handles two shapes:
|
|
1915
|
+
*
|
|
1916
|
+
* - A relative specifier (`./x`) resolved against a `file:` parent — a normal
|
|
1917
|
+
* `import`/`require` inside a served module;
|
|
1918
|
+
* - An already-absolute specifier with no parent — the main entry of a
|
|
1919
|
+
* `child_process.fork(__dirname + "/servant.js")`. fork's main module reaches
|
|
1920
|
+
* the resolve hook as an absolute `.js` path with `parentURL` undefined, and
|
|
1921
|
+
* run-from-source ships only the `.ts`, so without this the child dies with
|
|
1922
|
+
* `Cannot find module servant.js` and a tgrid master waits on it forever.
|
|
1923
|
+
*/
|
|
1924
|
+
function probeRescuableSpecifier(specifier, parentURL) {
|
|
1925
|
+
// A `?query` / `#hash` suffix is part of module identity, not the path; strip
|
|
1926
|
+
// it before resolving and re-attach it to the resolved URL so a loader keying
|
|
1927
|
+
// on the suffix (and `import.meta.url`) sees it preserved.
|
|
1928
|
+
const suffixStart = specifier.search(/[?#]/);
|
|
1929
|
+
const suffix = suffixStart === -1 ? "" : specifier.slice(suffixStart);
|
|
1930
|
+
const pathname = suffixStart === -1 ? specifier : specifier.slice(0, suffixStart);
|
|
1931
|
+
let base;
|
|
1932
|
+
if (isRelativeSpecifier(specifier)) {
|
|
1933
|
+
if (parentURL === undefined || !parentURL.startsWith("file:")) {
|
|
1934
|
+
return null;
|
|
1935
|
+
}
|
|
1936
|
+
const parentDir = node_path_1.default.dirname((0, node_url_1.fileURLToPath)(parentURL));
|
|
1937
|
+
base = node_path_1.default.resolve(parentDir, pathname);
|
|
1938
|
+
}
|
|
1939
|
+
else if (node_path_1.default.isAbsolute(pathname)) {
|
|
1940
|
+
base = pathname;
|
|
1941
|
+
}
|
|
1942
|
+
else {
|
|
1943
|
+
return null;
|
|
1944
|
+
}
|
|
1945
|
+
const withSuffix = (candidate) => (0, node_url_1.pathToFileURL)(candidate).href + suffix;
|
|
1946
|
+
const jsExtension = node_path_1.default.extname(base).toLowerCase();
|
|
1947
|
+
const tsExtensions = JS_TO_TS_EXTENSIONS.get(jsExtension);
|
|
1948
|
+
if (tsExtensions !== undefined) {
|
|
1949
|
+
const stem = base.slice(0, base.length - jsExtension.length);
|
|
1950
|
+
for (const extension of tsExtensions) {
|
|
1951
|
+
const candidate = stem + extension;
|
|
1952
|
+
if (RuntimeFilesystem_1.RuntimeFilesystem.isFile(candidate)) {
|
|
1953
|
+
return withSuffix(candidate);
|
|
1954
|
+
}
|
|
1955
|
+
}
|
|
1956
|
+
return null;
|
|
1957
|
+
}
|
|
1958
|
+
if (hasConcreteExtension(pathname)) {
|
|
1959
|
+
return null;
|
|
1960
|
+
}
|
|
1961
|
+
for (const extension of RESOLVABLE_EXTENSIONS) {
|
|
1962
|
+
const candidate = base + extension;
|
|
1963
|
+
if (RuntimeFilesystem_1.RuntimeFilesystem.isFile(candidate)) {
|
|
1964
|
+
return withSuffix(candidate);
|
|
1965
|
+
}
|
|
1966
|
+
}
|
|
1967
|
+
for (const extension of RESOLVABLE_EXTENSIONS) {
|
|
1968
|
+
const candidate = node_path_1.default.join(base, `index${extension}`);
|
|
1969
|
+
if (RuntimeFilesystem_1.RuntimeFilesystem.isFile(candidate)) {
|
|
1970
|
+
return withSuffix(candidate);
|
|
1971
|
+
}
|
|
1972
|
+
}
|
|
1973
|
+
return null;
|
|
1974
|
+
}
|
|
1975
|
+
function isRelativeSpecifier(specifier) {
|
|
1976
|
+
return (specifier === "." ||
|
|
1977
|
+
specifier === ".." ||
|
|
1978
|
+
specifier.startsWith("./") ||
|
|
1979
|
+
specifier.startsWith("../"));
|
|
1980
|
+
}
|
|
1981
|
+
/** True when `specifier` already carries an extension Node can load directly. */
|
|
1982
|
+
function hasConcreteExtension(specifier) {
|
|
1983
|
+
return /\.(?:[cm]?jsx?|json|node|[cm]?tsx?)$/i.test(specifier);
|
|
1984
|
+
}
|
|
1985
|
+
function isTypeScriptSource(filename) {
|
|
1986
|
+
return TYPESCRIPT_EXTENSIONS.some((extension) => filename.endsWith(extension));
|
|
1987
|
+
}
|
|
1988
|
+
//# sourceMappingURL=installRuntimeHooks.js.map
|