ttsc 0.33.0 → 0.34.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (398) hide show
  1. package/README.md +2 -0
  2. package/cmd/ttsc/api_compile.go +3 -2
  3. package/cmd/ttsc/api_transform.go +1 -1
  4. package/cmd/ttsc/build.go +5 -4
  5. package/cmd/ttsc-cache/account.go +16 -0
  6. package/cmd/ttsc-cache/account_test.go +91 -0
  7. package/cmd/ttsc-cache/main.go +1 -1
  8. package/cmd/ttsc-cache/protocol_test.go +2 -2
  9. package/cmd/ttsc-cache/publisher_seal_test.go +1 -1
  10. package/cmd/ttsc-cache/stock_go_failure_test.go +1 -1
  11. package/cmd/ttsc-cache/stock_go_test.go +2 -2
  12. package/cmd/ttsc-cache/store.go +5 -0
  13. package/cmd/ttsc-cache/tuple.go +6 -2
  14. package/cmd/ttsc-cache/tuple_test.go +1 -1
  15. package/cmd/ttscgraph/main.go +6 -1
  16. package/cmd/ttscgraph/run_help_version_and_bad_flags_exit_codes_test.go +6 -1
  17. package/cmd/ttscgraph/serve.go +22 -20
  18. package/cmd/ttscgraph/serve_alternative_members_and_reads_refresh_test.go +95 -0
  19. package/cmd/ttscgraph/serve_shards.go +26 -15
  20. package/cmd/ttscgraph/serve_shards_abandoned_generation_converges_on_retry_test.go +2 -2
  21. package/cmd/ttscgraph/serve_shards_delete_removed_source_test.go +3 -3
  22. package/cmd/ttscgraph/serve_shards_prune_unreferenced_external_endpoints_test.go +1 -1
  23. package/cmd/ttscgraph/serve_shards_publish_created_source_test.go +3 -3
  24. package/cmd/ttscgraph/serve_shards_refresh_cross_file_implementation_test.go +2 -2
  25. package/cmd/ttscgraph/serve_shards_refresh_dependent_diagnostics_test.go +3 -3
  26. package/cmd/ttscgraph/serve_shards_rename_moves_source_identity_test.go +5 -5
  27. package/cmd/ttscgraph/serve_shards_reuse_unaffected_sources_test.go +8 -8
  28. package/cmd/ttscgraph/serve_source_encoding_test.go +2 -2
  29. package/driver/build_information_uses_selected_output_identity_test.go +5 -4
  30. package/driver/check_observations.go +1 -1
  31. package/driver/config_discovery.go +5 -1
  32. package/driver/declaration_shape.go +15 -21
  33. package/driver/diagnostics_preamble.go +2 -2
  34. package/driver/emit_containment.go +11 -14
  35. package/driver/emit_plugin.go +51 -43
  36. package/driver/emit_plugin_output.go +6 -5
  37. package/driver/emit_provenance.go +12 -15
  38. package/driver/graph.go +8 -8
  39. package/driver/host.go +15 -5
  40. package/driver/input_observation.go +22 -21
  41. package/driver/input_observation_test.go +11 -10
  42. package/driver/overlay.go +11 -11
  43. package/driver/program.go +102 -51
  44. package/driver/resolution_candidates.go +50 -32
  45. package/driver/resolution_candidates_test.go +18 -5
  46. package/driver/rewrite.go +11 -13
  47. package/driver/session.go +13 -7
  48. package/driver/target_ts70.go +85 -0
  49. package/driver/target_ts71.go +97 -0
  50. package/driver/transform_dependencies.go +1 -1
  51. package/driver/transform_source_map.go +21 -20
  52. package/go.mod +3 -3
  53. package/go.sum +4 -4
  54. package/internal/graph/alternative_member_declarations_resolve_uses_test.go +145 -0
  55. package/internal/graph/assigned_implementations_of_declaration_file_symbols_leave_no_edge_source_test.go +2 -2
  56. package/internal/graph/assigned_implementations_of_node_modules_symbols_leave_no_edge_source_test.go +2 -2
  57. package/internal/graph/build.go +75 -33
  58. package/internal/graph/build_files_reuses_committed_cross_file_endpoints_test.go +4 -4
  59. package/internal/graph/build_records_a_node_per_top_level_declaration_test.go +1 -1
  60. package/internal/graph/declaration_members.go +143 -0
  61. package/internal/graph/decorators_capture_name_and_literal_arguments_test.go +3 -3
  62. package/internal/graph/doc_tags.go +2 -2
  63. package/internal/graph/dump_paths.go +6 -5
  64. package/internal/graph/duplicate_variable_object_members_keep_first_declaration_test.go +1 -1
  65. package/internal/graph/edges.go +151 -68
  66. package/internal/graph/edges_cover_class_level_references_test.go +5 -5
  67. package/internal/graph/enum_initializer_calls_are_edges_test.go +2 -2
  68. package/internal/graph/enum_members_carry_their_names_on_the_enum_node_test.go +6 -6
  69. package/internal/graph/exports.go +6 -6
  70. package/internal/graph/file_diagnostics_match_tsgo_code_and_location_test.go +2 -2
  71. package/internal/graph/file_diagnostics_report_code_column_and_message_test.go +1 -1
  72. package/internal/graph/function_locals_do_not_collide_test.go +3 -3
  73. package/internal/graph/heritage_edges_cover_implements_and_interface_extends_test.go +5 -5
  74. package/internal/graph/heritage_edges_keep_extends_and_implements_to_same_base_test.go +2 -2
  75. package/internal/graph/heritage_edges_record_extends_versus_implements_origin_test.go +3 -3
  76. package/internal/graph/heritage_edges_traverse_barrels_and_stop_at_external_leaves_test.go +3 -3
  77. package/internal/graph/literals.go +3 -3
  78. package/internal/graph/literals_are_absent_when_the_type_admits_more_than_it_can_name_test.go +2 -2
  79. package/internal/graph/literals_cover_enum_members_the_graph_has_no_nodes_for_test.go +4 -4
  80. package/internal/graph/literals_do_not_depend_on_declaration_line_wrapping_test.go +2 -2
  81. package/internal/graph/literals_render_every_value_in_typescript_source_form_test.go +1 -1
  82. package/internal/graph/literals_resolve_through_alias_indirection_test.go +3 -3
  83. package/internal/graph/member_relation_edges_follow_checker_validity_test.go +7 -7
  84. package/internal/graph/member_relation_edges_preserve_checker_boundaries_test.go +19 -19
  85. package/internal/graph/member_relation_edges_reject_checker_invalid_pairs_test.go +11 -11
  86. package/internal/graph/namespace_dotted_form_qualifies_deeply_test.go +2 -2
  87. package/internal/graph/namespace_members_become_qualified_nodes_and_edges_test.go +7 -7
  88. package/internal/graph/namespace_private_declarations_keep_lexical_identity_test.go +85 -0
  89. package/internal/graph/nodes_are_marked_exported_through_the_export_table_test.go +2 -2
  90. package/internal/graph/object_literal_declarations_resolve_calls_test.go +9 -9
  91. package/internal/graph/object_literal_members_ride_on_the_snapshot_test.go +1 -1
  92. package/internal/graph/overload_implementation_replaces_signature_test.go +2 -2
  93. package/internal/graph/property_member_edges_remain_owner_visible_test.go +6 -6
  94. package/internal/graph/resolve.go +37 -12
  95. package/internal/graph/resolve_unwraps_barrel_reexport_to_real_declaration_test.go +6 -6
  96. package/internal/graph/source.go +1 -1
  97. package/internal/graph/type_ref_edges_cover_typeof_as_satisfies_test.go +7 -7
  98. package/internal/graph/type_ref_edges_resolve_named_types_across_files_test.go +2 -2
  99. package/internal/graph/value_access_edges_cover_properties_test.go +5 -5
  100. package/internal/graph/value_call_edges_attribute_function_assignments_to_members_test.go +3 -3
  101. package/internal/graph/value_call_edges_cover_jsx_components_test.go +2 -2
  102. package/internal/graph/value_call_edges_cover_methods_and_constructors_test.go +3 -3
  103. package/internal/graph/value_call_edges_cover_variable_bound_callables_test.go +2 -2
  104. package/internal/graph/value_call_edges_do_not_double_record_invoked_member_access_test.go +4 -4
  105. package/internal/graph/value_call_edges_record_construct_versus_call_origin_test.go +3 -3
  106. package/internal/graph/value_call_edges_resolve_across_files_and_dedupe_test.go +2 -2
  107. package/internal/graph/value_call_edges_skip_self_and_unresolved_test.go +4 -4
  108. package/internal/graph/value_reads_cover_expression_positions_test.go +88 -0
  109. package/lib/compiler/internal/buildNativeCompiler.d.ts +5 -2
  110. package/lib/compiler/internal/buildNativeCompiler.js +12 -4
  111. package/lib/compiler/internal/buildNativeCompiler.js.map +1 -1
  112. package/lib/flags/COMPILER_ENUM_WHITESPACE.js +1 -1
  113. package/lib/flags/COMPILER_ENUM_WHITESPACE.js.map +1 -1
  114. package/lib/flags/COMPILER_OPTIONS.js +1079 -149
  115. package/lib/flags/COMPILER_OPTIONS.js.map +1 -1
  116. package/lib/flags/COMPILER_OPTION_ASCII_FOLDS.js +1 -1
  117. package/lib/flags/COMPILER_OPTION_ASCII_FOLDS.js.map +1 -1
  118. package/lib/flags/COMPILER_OPTION_KINDS.js +1 -1
  119. package/lib/flags/COMPILER_OPTION_KINDS.js.map +1 -1
  120. package/lib/flags/CompilerOptionSpec.d.ts +9 -2
  121. package/lib/internal/pluginSource.d.ts +1 -0
  122. package/lib/internal/pluginSource.js +1 -0
  123. package/lib/internal/pluginSource.js.map +1 -1
  124. package/lib/launcher/internal/TypeScriptSyncApi.d.ts +140 -0
  125. package/lib/launcher/internal/TypeScriptSyncApi.js +99 -0
  126. package/lib/launcher/internal/TypeScriptSyncApi.js.map +1 -0
  127. package/lib/launcher/internal/buildSingleRootInMemory.d.ts +80 -0
  128. package/lib/launcher/internal/buildSingleRootInMemory.js +253 -0
  129. package/lib/launcher/internal/buildSingleRootInMemory.js.map +1 -0
  130. package/lib/launcher/internal/buildSingleRootProject.d.ts +22 -18
  131. package/lib/launcher/internal/buildSingleRootProject.js +27 -18
  132. package/lib/launcher/internal/buildSingleRootProject.js.map +1 -1
  133. package/lib/launcher/internal/compilerArgsAsConfigOptions.d.ts +39 -0
  134. package/lib/launcher/internal/compilerArgsAsConfigOptions.js +115 -0
  135. package/lib/launcher/internal/compilerArgsAsConfigOptions.js.map +1 -0
  136. package/lib/plugin/CapabilityPluginResolver.js +3 -0
  137. package/lib/plugin/CapabilityPluginResolver.js.map +1 -1
  138. package/lib/plugin/internal/load/loadProjectPlugins.js +6 -2
  139. package/lib/plugin/internal/load/loadProjectPlugins.js.map +1 -1
  140. package/lib/plugin/internal/source/CompilerTarget.d.ts +127 -0
  141. package/lib/plugin/internal/source/CompilerTarget.js +231 -0
  142. package/lib/plugin/internal/source/CompilerTarget.js.map +1 -0
  143. package/lib/plugin/internal/source/NativeSourcePackages.js +6 -5
  144. package/lib/plugin/internal/source/NativeSourcePackages.js.map +1 -1
  145. package/lib/plugin/internal/source/SourcePluginAdmission.d.ts +18 -1
  146. package/lib/plugin/internal/source/SourcePluginAdmission.js +24 -2
  147. package/lib/plugin/internal/source/SourcePluginAdmission.js.map +1 -1
  148. package/lib/plugin/internal/source/SourcePluginWorkspace.d.ts +6 -3
  149. package/lib/plugin/internal/source/SourcePluginWorkspace.js +31 -13
  150. package/lib/plugin/internal/source/SourcePluginWorkspace.js.map +1 -1
  151. package/lib/plugin/internal/source/buildSourcePlugin.js +3 -1
  152. package/lib/plugin/internal/source/buildSourcePlugin.js.map +1 -1
  153. package/lib/plugin/internal/source/hashPluginBuildEnvironment.d.ts +1 -1
  154. package/lib/plugin/internal/source/hashPluginBuildEnvironment.js +9 -1
  155. package/lib/plugin/internal/source/hashPluginBuildEnvironment.js.map +1 -1
  156. package/package.json +14 -9
  157. package/shim/ast/enums_gen.go +1 -0
  158. package/shim/ast/go.mod +2 -2
  159. package/shim/ast/go.sum +4 -4
  160. package/shim/ast/neutral.go +141 -0
  161. package/shim/astnav/go.mod +2 -2
  162. package/shim/astnav/go.sum +4 -4
  163. package/shim/bundled/go.mod +2 -2
  164. package/shim/bundled/go.sum +4 -4
  165. package/shim/checker/go.mod +2 -2
  166. package/shim/checker/go.sum +4 -4
  167. package/shim/compiler/go.mod +2 -2
  168. package/shim/compiler/go.sum +4 -4
  169. package/shim/compiler/neutral.go +213 -0
  170. package/shim/core/go.mod +2 -2
  171. package/shim/core/go.sum +4 -4
  172. package/shim/diagnosticwriter/go.mod +2 -2
  173. package/shim/diagnosticwriter/go.sum +4 -4
  174. package/shim/lsp/go.mod +2 -2
  175. package/shim/lsp/go.sum +4 -4
  176. package/shim/parser/go.mod +2 -2
  177. package/shim/parser/go.sum +4 -4
  178. package/shim/printer/go.mod +2 -2
  179. package/shim/printer/go.sum +4 -4
  180. package/shim/scanner/go.mod +2 -2
  181. package/shim/scanner/go.sum +4 -4
  182. package/shim/stringutil/go.mod +1 -1
  183. package/shim/stringutil/go.sum +2 -2
  184. package/shim/stringutil/shim.go +15 -0
  185. package/shim/transformers/go.mod +2 -2
  186. package/shim/transformers/go.sum +4 -4
  187. package/shim/tsoptions/go.mod +2 -2
  188. package/shim/tsoptions/go.sum +4 -4
  189. package/shim/tsoptions/neutral.go +56 -0
  190. package/shim/tspath/go.mod +1 -1
  191. package/shim/tspath/go.sum +2 -2
  192. package/shim/tspath/neutral.go +150 -0
  193. package/shim/tspath/typed_paths.go +266 -0
  194. package/shim/vfs/cachedvfs/go.mod +2 -2
  195. package/shim/vfs/cachedvfs/go.sum +4 -4
  196. package/shim/vfs/go.mod +2 -2
  197. package/shim/vfs/go.sum +4 -4
  198. package/shim/vfs/neutral.go +20 -0
  199. package/shim/vfs/osvfs/go.mod +2 -2
  200. package/shim/vfs/osvfs/go.sum +4 -4
  201. package/src/compiler/internal/buildNativeCompiler.ts +13 -4
  202. package/src/flags/COMPILER_ENUM_WHITESPACE.ts +1 -1
  203. package/src/flags/COMPILER_OPTIONS.ts +1080 -150
  204. package/src/flags/COMPILER_OPTION_ASCII_FOLDS.ts +1 -1
  205. package/src/flags/COMPILER_OPTION_KINDS.ts +1 -1
  206. package/src/flags/CompilerOptionSpec.ts +11 -2
  207. package/src/internal/pluginSource.ts +1 -0
  208. package/src/launcher/internal/TypeScriptSyncApi.ts +186 -0
  209. package/src/launcher/internal/buildSingleRootInMemory.ts +319 -0
  210. package/src/launcher/internal/buildSingleRootProject.ts +26 -18
  211. package/src/launcher/internal/compilerArgsAsConfigOptions.ts +112 -0
  212. package/src/plugin/CapabilityPluginResolver.ts +4 -1
  213. package/src/plugin/internal/load/loadProjectPlugins.ts +12 -2
  214. package/src/plugin/internal/source/CompilerTarget.ts +249 -0
  215. package/src/plugin/internal/source/NativeSourcePackages.ts +10 -4
  216. package/src/plugin/internal/source/SourcePluginAdmission.ts +28 -2
  217. package/src/plugin/internal/source/SourcePluginWorkspace.ts +45 -19
  218. package/src/plugin/internal/source/buildSourcePlugin.ts +3 -1
  219. package/src/plugin/internal/source/hashPluginBuildEnvironment.ts +9 -1
  220. package/targets/7.1/bridge/ast/enums_gen.go +174 -0
  221. package/targets/7.1/bridge/ast/extra-shim.json +4 -0
  222. package/targets/7.1/bridge/ast/go.mod +14 -0
  223. package/targets/7.1/bridge/ast/go.sum +20 -0
  224. package/targets/7.1/bridge/ast/lint.go +1412 -0
  225. package/targets/7.1/bridge/ast/neutral.go +141 -0
  226. package/targets/7.1/bridge/ast/parent.go +60 -0
  227. package/targets/7.1/bridge/ast/safe_text.go +108 -0
  228. package/targets/7.1/bridge/ast/shim.go +1656 -0
  229. package/targets/7.1/bridge/ast/surface.go +686 -0
  230. package/targets/7.1/bridge/ast/test/next_jsdoc_comment_location_reaches_variable_statement_test.go +51 -0
  231. package/targets/7.1/bridge/ast/test/node_text_joins_multi_hop_qualified_name_test.go +47 -0
  232. package/targets/7.1/bridge/ast/test/node_text_joins_one_hop_qualified_name_test.go +35 -0
  233. package/targets/7.1/bridge/ast/test/node_text_returns_empty_for_nil_test.go +31 -0
  234. package/targets/7.1/bridge/ast/test/node_text_returns_identifier_text_test.go +34 -0
  235. package/targets/7.1/bridge/ast/test/node_text_skips_empty_qualified_left_test.go +60 -0
  236. package/targets/7.1/bridge/astnav/go.mod +14 -0
  237. package/targets/7.1/bridge/astnav/go.sum +22 -0
  238. package/targets/7.1/bridge/astnav/shim.go +24 -0
  239. package/targets/7.1/bridge/bundled/extra-shim.json +1 -0
  240. package/targets/7.1/bridge/bundled/go.mod +10 -0
  241. package/targets/7.1/bridge/bundled/go.sum +10 -0
  242. package/targets/7.1/bridge/bundled/shim.go +24 -0
  243. package/targets/7.1/bridge/checker/enums_gen.go +150 -0
  244. package/targets/7.1/bridge/checker/extra-shim.json +37 -0
  245. package/targets/7.1/bridge/checker/go.mod +15 -0
  246. package/targets/7.1/bridge/checker/go.sum +24 -0
  247. package/targets/7.1/bridge/checker/node_builder_fields_gen.go +19 -0
  248. package/targets/7.1/bridge/checker/shim.go +1390 -0
  249. package/targets/7.1/bridge/compiler/contentmapper_process.go +70 -0
  250. package/targets/7.1/bridge/compiler/emit_sourcemap.go +296 -0
  251. package/targets/7.1/bridge/compiler/emitassemble.go +81 -0
  252. package/targets/7.1/bridge/compiler/emithook.go +44 -0
  253. package/targets/7.1/bridge/compiler/extra-shim.json +4 -0
  254. package/targets/7.1/bridge/compiler/go.mod +15 -0
  255. package/targets/7.1/bridge/compiler/go.sum +24 -0
  256. package/targets/7.1/bridge/compiler/incremental.go +185 -0
  257. package/targets/7.1/bridge/compiler/neutral.go +256 -0
  258. package/targets/7.1/bridge/compiler/resolution.go +571 -0
  259. package/targets/7.1/bridge/compiler/shim.go +70 -0
  260. package/targets/7.1/bridge/core/enums_gen.go +15 -0
  261. package/targets/7.1/bridge/core/extra-shim.json +4 -0
  262. package/targets/7.1/bridge/core/go.mod +7 -0
  263. package/targets/7.1/bridge/core/go.sum +8 -0
  264. package/targets/7.1/bridge/core/modulekind.go +19 -0
  265. package/targets/7.1/bridge/core/shim.go +272 -0
  266. package/targets/7.1/bridge/diagnosticwriter/go.mod +14 -0
  267. package/targets/7.1/bridge/diagnosticwriter/go.sum +20 -0
  268. package/targets/7.1/bridge/diagnosticwriter/lint.go +411 -0
  269. package/targets/7.1/bridge/diagnosticwriter/shim.go +56 -0
  270. package/targets/7.1/bridge/lsp/extra-shim.json +4 -0
  271. package/targets/7.1/bridge/lsp/go.mod +16 -0
  272. package/targets/7.1/bridge/lsp/go.sum +26 -0
  273. package/targets/7.1/bridge/lsp/shim.go +112 -0
  274. package/targets/7.1/bridge/parser/extra-shim.json +4 -0
  275. package/targets/7.1/bridge/parser/go.mod +14 -0
  276. package/targets/7.1/bridge/parser/go.sum +24 -0
  277. package/targets/7.1/bridge/parser/shim.go +61 -0
  278. package/targets/7.1/bridge/printer/emithost.go +69 -0
  279. package/targets/7.1/bridge/printer/go.mod +15 -0
  280. package/targets/7.1/bridge/printer/go.sum +24 -0
  281. package/targets/7.1/bridge/printer/shim.go +168 -0
  282. package/targets/7.1/bridge/printer/sourcemap.go +49 -0
  283. package/targets/7.1/bridge/scanner/extra-shim.json +4 -0
  284. package/targets/7.1/bridge/scanner/go.mod +14 -0
  285. package/targets/7.1/bridge/scanner/go.sum +20 -0
  286. package/targets/7.1/bridge/scanner/regexp.go +42 -0
  287. package/targets/7.1/bridge/scanner/shim.go +137 -0
  288. package/targets/7.1/bridge/stringutil/extra-shim.json +1 -0
  289. package/targets/7.1/bridge/stringutil/go.mod +5 -0
  290. package/targets/7.1/bridge/stringutil/go.sum +2 -0
  291. package/targets/7.1/bridge/stringutil/shim.go +131 -0
  292. package/targets/7.1/bridge/transformers/go.mod +15 -0
  293. package/targets/7.1/bridge/transformers/go.sum +24 -0
  294. package/targets/7.1/bridge/transformers/shim.go +24 -0
  295. package/targets/7.1/bridge/tsoptions/command_line_raw.go +44 -0
  296. package/targets/7.1/bridge/tsoptions/extra-shim.json +4 -0
  297. package/targets/7.1/bridge/tsoptions/go.mod +15 -0
  298. package/targets/7.1/bridge/tsoptions/go.sum +24 -0
  299. package/targets/7.1/bridge/tsoptions/neutral.go +47 -0
  300. package/targets/7.1/bridge/tsoptions/shim.go +193 -0
  301. package/targets/7.1/bridge/tspath/extra-shim.json +4 -0
  302. package/targets/7.1/bridge/tspath/go.mod +5 -0
  303. package/targets/7.1/bridge/tspath/go.sum +6 -0
  304. package/targets/7.1/bridge/tspath/neutral.go +142 -0
  305. package/targets/7.1/bridge/tspath/shim.go +382 -0
  306. package/targets/7.1/bridge/vfs/cachedvfs/extra-shim.json +4 -0
  307. package/targets/7.1/bridge/vfs/cachedvfs/go.mod +5 -0
  308. package/targets/7.1/bridge/vfs/cachedvfs/go.sum +10 -0
  309. package/targets/7.1/bridge/vfs/cachedvfs/shim.go +12 -0
  310. package/targets/7.1/bridge/vfs/decode.go +26 -0
  311. package/targets/7.1/bridge/vfs/decode_test.go +42 -0
  312. package/targets/7.1/bridge/vfs/extra-shim.json +4 -0
  313. package/targets/7.1/bridge/vfs/go.mod +10 -0
  314. package/targets/7.1/bridge/vfs/go.sum +10 -0
  315. package/targets/7.1/bridge/vfs/neutral.go +23 -0
  316. package/targets/7.1/bridge/vfs/osvfs/extra-shim.json +4 -0
  317. package/targets/7.1/bridge/vfs/osvfs/go.mod +10 -0
  318. package/targets/7.1/bridge/vfs/osvfs/go.sum +10 -0
  319. package/targets/7.1/bridge/vfs/osvfs/shim.go +14 -0
  320. package/targets/7.1/bridge/vfs/shim.go +27 -0
  321. package/targets/7.1/facade/ast/facade_gen.go +2691 -0
  322. package/targets/7.1/facade/ast/go.mod +20 -0
  323. package/targets/7.1/facade/ast/go.sum +20 -0
  324. package/targets/7.1/facade/astnav/facade_gen.go +15 -0
  325. package/targets/7.1/facade/astnav/go.mod +22 -0
  326. package/targets/7.1/facade/astnav/go.sum +22 -0
  327. package/targets/7.1/facade/bundled/facade_gen.go +32 -0
  328. package/targets/7.1/facade/bundled/go.mod +21 -0
  329. package/targets/7.1/facade/bundled/go.sum +10 -0
  330. package/targets/7.1/facade/checker/facade_gen.go +563 -0
  331. package/targets/7.1/facade/checker/go.mod +26 -0
  332. package/targets/7.1/facade/checker/go.sum +24 -0
  333. package/targets/7.1/facade/compiler/facade_gen.go +198 -0
  334. package/targets/7.1/facade/compiler/go.mod +41 -0
  335. package/targets/7.1/facade/compiler/go.sum +24 -0
  336. package/targets/7.1/facade/core/facade_gen.go +130 -0
  337. package/targets/7.1/facade/core/go.mod +12 -0
  338. package/targets/7.1/facade/core/go.sum +8 -0
  339. package/targets/7.1/facade/diagnosticwriter/facade_gen.go +36 -0
  340. package/targets/7.1/facade/diagnosticwriter/go.mod +22 -0
  341. package/targets/7.1/facade/diagnosticwriter/go.sum +20 -0
  342. package/targets/7.1/facade/lsp/facade_gen.go +31 -0
  343. package/targets/7.1/facade/lsp/go.mod +19 -0
  344. package/targets/7.1/facade/lsp/go.sum +26 -0
  345. package/targets/7.1/facade/parser/facade_gen.go +102 -0
  346. package/targets/7.1/facade/parser/go.mod +25 -0
  347. package/targets/7.1/facade/parser/go.sum +24 -0
  348. package/targets/7.1/facade/printer/facade_gen.go +74 -0
  349. package/targets/7.1/facade/printer/go.mod +26 -0
  350. package/targets/7.1/facade/printer/go.sum +24 -0
  351. package/targets/7.1/facade/scanner/facade_gen.go +191 -0
  352. package/targets/7.1/facade/scanner/go.mod +25 -0
  353. package/targets/7.1/facade/scanner/go.sum +20 -0
  354. package/targets/7.1/facade/stringutil/facade_gen.go +176 -0
  355. package/targets/7.1/facade/stringutil/go.mod +9 -0
  356. package/targets/7.1/facade/stringutil/go.sum +2 -0
  357. package/targets/7.1/facade/transformers/facade_gen.go +12 -0
  358. package/targets/7.1/facade/transformers/go.mod +18 -0
  359. package/targets/7.1/facade/transformers/go.sum +24 -0
  360. package/targets/7.1/facade/tsoptions/facade_gen.go +274 -0
  361. package/targets/7.1/facade/tsoptions/go.mod +32 -0
  362. package/targets/7.1/facade/tsoptions/go.sum +24 -0
  363. package/targets/7.1/facade/tspath/facade_gen.go +550 -0
  364. package/targets/7.1/facade/tspath/go.mod +9 -0
  365. package/targets/7.1/facade/tspath/go.sum +6 -0
  366. package/targets/7.1/facade/vfs/cachedvfs/facade_gen.go +17 -0
  367. package/targets/7.1/facade/vfs/cachedvfs/go.mod +18 -0
  368. package/targets/7.1/facade/vfs/cachedvfs/go.sum +10 -0
  369. package/targets/7.1/facade/vfs/facade_gen.go +47 -0
  370. package/targets/7.1/facade/vfs/go.mod +18 -0
  371. package/targets/7.1/facade/vfs/go.sum +10 -0
  372. package/targets/7.1/facade/vfs/osvfs/facade_gen.go +20 -0
  373. package/targets/7.1/facade/vfs/osvfs/go.mod +21 -0
  374. package/targets/7.1/facade/vfs/osvfs/go.sum +10 -0
  375. package/tools/gen_facade/committed_facades_match_their_bridges_test.go +57 -0
  376. package/tools/gen_facade/facade_manifest_points_into_the_bridge_root_test.go +75 -0
  377. package/tools/gen_facade/facade_spells_internal_types_through_bridge_aliases_test.go +75 -0
  378. package/tools/gen_facade/facade_types_are_their_bridge_types_test.go +99 -0
  379. package/tools/gen_facade/go.mod +10 -0
  380. package/tools/gen_facade/go.sum +8 -0
  381. package/tools/gen_facade/main.go +734 -0
  382. package/tools/gen_shims/go.mod +4 -4
  383. package/tools/gen_shims/go.sum +6 -6
  384. package/tools/gen_shims/main.go +124 -66
  385. package/tools/gen_shims/mirror_structs_terminate_on_unexported_cycles_test.go +101 -0
  386. package/tools/shim_audit/baseline-7.1.json +720 -0
  387. package/tools/shim_audit/baseline.json +5 -4
  388. package/tools/shim_audit/go.mod +4 -4
  389. package/tools/shim_audit/go.sum +6 -6
  390. package/tools/shim_audit/linkname_signatures.go +178 -0
  391. package/tools/shim_audit/linkname_signatures_match_their_targets_test.go +64 -0
  392. package/tools/shim_audit/linkname_targets_follow_the_audited_compiler_test.go +38 -0
  393. package/tools/shim_audit/main.go +29 -4
  394. package/tools/shim_audit/neutral_api.go +160 -0
  395. package/tools/shim_audit/neutral_api_must_match_across_targets_test.go +74 -0
  396. package/utility/host.go +5 -4
  397. package/utility/preamble_output.go +15 -15
  398. package/utility/serve.go +1 -1
@@ -0,0 +1,20 @@
1
+ github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
2
+ github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
3
+ github.com/klauspost/compress v1.20.0 h1:a3C1ke2ohxFymNlb2HWAHjDeKCI90scRskErZkR0ezA=
4
+ github.com/klauspost/compress v1.20.0/go.mod h1:LUdAzn7YLVvxLpc7y3V1m40wESHTgc1422pwwBSKYuI=
5
+ github.com/klauspost/cpuid/v2 v2.2.10 h1:tBs3QSyvjDyFTq3uoc/9xFpCuOsJQFNPiAhYdw2skhE=
6
+ github.com/klauspost/cpuid/v2 v2.2.10/go.mod h1:hqwkgyIinND0mEev00jJYCxPNVRVXFQeu1XKlok6oO0=
7
+ github.com/microsoft/TypeScript/tsc v0.0.0-20261019224239-28534d760906 h1:Wn+Kp4ORyay6jJwvOng7G8pTD6HOP+Fwx8si66Wq7Bk=
8
+ github.com/microsoft/TypeScript/tsc v0.0.0-20261019224239-28534d760906/go.mod h1:28hWKaTYwRARPm0T9Y0XvdvYpU2HtjONzsMqAdYLucY=
9
+ github.com/zeebo/assert v1.3.0 h1:g7C04CbJuIDKNPFHmsk4hwZDO5O+kntRxzaUoNXj+IQ=
10
+ github.com/zeebo/assert v1.3.0/go.mod h1:Pq9JiuJQpG8JLJdtkwrJESF0Foym2/D9XMU5ciN/wJ0=
11
+ github.com/zeebo/xxh3 v1.1.0 h1:s7DLGDK45Dyfg7++yxI0khrfwq9661w9EN78eP/UZVs=
12
+ github.com/zeebo/xxh3 v1.1.0/go.mod h1:IisAie1LELR4xhVinxWS5+zf1lA4p0MW4T+w+W07F5s=
13
+ golang.org/x/sync v0.23.0 h1:KameEIfc1IkluZyXWLn39Wd4tURc6GbCiISGiZm2bQk=
14
+ golang.org/x/sync v0.23.0/go.mod h1:sUUOizhqBxiL6pEWpqNLUiaJn1ShEbZ6BBqskPbjZm0=
15
+ golang.org/x/sys v0.48.0 h1:bbX/i/6MgT9BVLM9RT1thmxL04yeTAhbEz4SyadbXoo=
16
+ golang.org/x/sys v0.48.0/go.mod h1:hNLxWAXmnKAxqDtdwIYC4bM9oQPEecfsnNMuSxOs3og=
17
+ golang.org/x/text v0.42.0 h1:JbOZXgfeCPU9gacVtYliJqOhD+zhrEqK4LfdpmlUZqI=
18
+ golang.org/x/text v0.42.0/go.mod h1:ojzP1Z+2QtioaF8DTtO8K5q7JWVVYwZKenzujK0Zd0E=
19
+ gotest.tools/v3 v3.5.2 h1:7koQfIKdy+I8UTetycgUqXWSDwpgv193Ka+qRsmBY8Q=
20
+ gotest.tools/v3 v3.5.2/go.mod h1:LtdLGcnqToBH83WByAAi/wiwSFCArdFIUV/xxN4pcjA=
@@ -0,0 +1,42 @@
1
+ package scanner
2
+
3
+ import (
4
+ "github.com/microsoft/TypeScript/tsc/internal/ast"
5
+ "github.com/microsoft/TypeScript/tsc/internal/diagnostics"
6
+ )
7
+
8
+ // IsValidRegularExpressionLiteral reports whether text contains one regexp
9
+ // literal accepted without diagnostics by the pinned compiler's scanner and
10
+ // regexp parser, after optional leading scanner trivia. It uses the scanner's
11
+ // default latest target and the compiler's escape, flag, Unicode and Unicode
12
+ // Sets policies. This is not a runtime regexp-execution check or a complete
13
+ // certificate of ECMAScript grammar validity: the compiler can diagnose
14
+ // otherwise Annex-B-compatible backreferences as likely mistakes.
15
+ //
16
+ // Trailing text is rejected, including whitespace after the literal. Scanner
17
+ // diagnostics cause a false result rather than escaping.
18
+ //
19
+ // @evidence contracts/common.md#principled-implementation The initial slash token enters upstream's regexp rescan mode; success requires a regexp token, no scanner diagnostic, and a token end equal to the input byte length, establishing one literal after the scanner's permitted leading trivia.
20
+ // @evidence contracts/common.md#clear-and-simple-design A fresh local scanner and diagnostic flag handle one input without shared parser state or an independent regexp grammar.
21
+ // @evidence contracts/common.md#prohibited-implementation-shortcuts Slash and slash-equals are the scanner's documented regexp-entry tokens; the diagnostic callback uses supported injection rather than replacing scanner internals.
22
+ // @evidence contracts/common.md#meaningful-documentation Native prose states compiler grammar ownership, leading-trivia acceptance, trailing-text rejection and diagnostic-to-false behavior, with a separate acknowledgment section.
23
+ // @evidence contracts/performance.md#bound-retention-and-release-resources One local scanner retains the input during the call, and regexp parsing can allocate capture/name/reference maps and lists plus recursive group state. Only a boolean escapes; scanner, callback and parser storage become unreachable after completion. There is no historical cache, handle, input-size cap or adapter-enforced nesting limit.
24
+ // @evidence contracts/performance.md#efficient-algorithms One scanner performs leading-trivia admission, delimiter and flag scanning and compiler regexp parsing, then checks token-end equality without an independent grammar implementation. Work grows with text bytes, nested groups, captures and references; invalid named references can also trigger upstream spelling suggestions across capture names even though diagnostics only set a flag here. The adapter does not claim fixed work or an early parser stop after the first diagnostic.
25
+ // @evidenceExclude contracts/performance.md#reuse-equivalent-work This predicate owns no cross-request producer or validity coordinator; a fresh scanner keeps token state and diagnostic observation local to the supplied text, with no shared mutable parse state.
26
+ // @evidenceExclude contracts/portability.md#os-neutral-implementation IsValidRegularExpressionLiteral computes from its arguments only; it opens no file, builds no path and calls no platform or process API.
27
+ func IsValidRegularExpressionLiteral(text string) bool {
28
+ scanner := NewScanner()
29
+ valid := true
30
+ scanner.SetOnError(func(_ *diagnostics.Message, _, _ int, _ ...any) {
31
+ valid = false
32
+ })
33
+ scanner.SetText(text)
34
+ token := scanner.Scan()
35
+ if token != ast.KindSlashToken && token != ast.KindSlashEqualsToken {
36
+ return false
37
+ }
38
+ if scanner.ReScanSlashToken(true) != ast.KindRegularExpressionLiteral {
39
+ return false
40
+ }
41
+ return valid && scanner.TokenEnd() == len(text)
42
+ }
@@ -0,0 +1,137 @@
1
+ // Code generated by packages/ttsc/tools/gen_shims. DO NOT EDIT.
2
+
3
+ package scanner
4
+
5
+ import "github.com/microsoft/TypeScript/tsc/internal/ast"
6
+ import "github.com/microsoft/TypeScript/tsc/internal/core"
7
+ import "github.com/microsoft/TypeScript/tsc/internal/scanner"
8
+ import "iter"
9
+ import _ "unsafe"
10
+
11
+ //go:linkname ComputeLineOfPosition github.com/microsoft/TypeScript/tsc/internal/scanner.ComputeLineOfPosition
12
+ func ComputeLineOfPosition(lineStarts []core.TextPos, pos int) int
13
+
14
+ //go:linkname ComputePositionOfLineAndByteOffset github.com/microsoft/TypeScript/tsc/internal/scanner.ComputePositionOfLineAndByteOffset
15
+ func ComputePositionOfLineAndByteOffset(lineStarts []core.TextPos, line int, byteOffset int) int
16
+
17
+ //go:linkname ComputePositionOfLineAndUTF16Character github.com/microsoft/TypeScript/tsc/internal/scanner.ComputePositionOfLineAndUTF16Character
18
+ func ComputePositionOfLineAndUTF16Character(lineStarts []core.TextPos, line int, character core.UTF16Offset, text string, allowEdits bool) int
19
+
20
+ //go:linkname DeclarationNameToString github.com/microsoft/TypeScript/tsc/internal/scanner.DeclarationNameToString
21
+ func DeclarationNameToString(name *ast.Node) string
22
+
23
+ type ErrorCallback = scanner.ErrorCallback
24
+ type EscapeSequenceScanningFlags = scanner.EscapeSequenceScanningFlags
25
+
26
+ const EscapeSequenceScanningFlagsAllowExtendedUnicodeEscape = scanner.EscapeSequenceScanningFlagsAllowExtendedUnicodeEscape
27
+ const EscapeSequenceScanningFlagsAnnexB = scanner.EscapeSequenceScanningFlagsAnnexB
28
+ const EscapeSequenceScanningFlagsAnyUnicodeMode = scanner.EscapeSequenceScanningFlagsAnyUnicodeMode
29
+ const EscapeSequenceScanningFlagsAtomEscape = scanner.EscapeSequenceScanningFlagsAtomEscape
30
+ const EscapeSequenceScanningFlagsRegularExpression = scanner.EscapeSequenceScanningFlagsRegularExpression
31
+ const EscapeSequenceScanningFlagsReportErrors = scanner.EscapeSequenceScanningFlagsReportErrors
32
+ const EscapeSequenceScanningFlagsReportInvalidEscapeErrors = scanner.EscapeSequenceScanningFlagsReportInvalidEscapeErrors
33
+ const EscapeSequenceScanningFlagsString = scanner.EscapeSequenceScanningFlagsString
34
+
35
+ //go:linkname GetECMAEndLinePosition github.com/microsoft/TypeScript/tsc/internal/scanner.GetECMAEndLinePosition
36
+ func GetECMAEndLinePosition(sourceFile *ast.SourceFile, line int) int
37
+
38
+ //go:linkname GetECMALineAndByteOffsetOfPosition github.com/microsoft/TypeScript/tsc/internal/scanner.GetECMALineAndByteOffsetOfPosition
39
+ func GetECMALineAndByteOffsetOfPosition(sourceFile ast.SourceFileLike, pos int) (line int, byteOffset int)
40
+
41
+ //go:linkname GetECMALineAndUTF16CharacterOfPosition github.com/microsoft/TypeScript/tsc/internal/scanner.GetECMALineAndUTF16CharacterOfPosition
42
+ func GetECMALineAndUTF16CharacterOfPosition(sourceFile ast.SourceFileLike, pos int) (line int, character core.UTF16Offset)
43
+
44
+ //go:linkname GetECMALineOfPosition github.com/microsoft/TypeScript/tsc/internal/scanner.GetECMALineOfPosition
45
+ func GetECMALineOfPosition(sourceFile ast.SourceFileLike, pos int) int
46
+
47
+ //go:linkname GetECMALineStarts github.com/microsoft/TypeScript/tsc/internal/scanner.GetECMALineStarts
48
+ func GetECMALineStarts(sourceFile ast.SourceFileLike) []core.TextPos
49
+
50
+ //go:linkname GetECMAPositionOfLineAndByteOffset github.com/microsoft/TypeScript/tsc/internal/scanner.GetECMAPositionOfLineAndByteOffset
51
+ func GetECMAPositionOfLineAndByteOffset(sourceFile ast.SourceFileLike, line int, byteOffset int) int
52
+
53
+ //go:linkname GetECMAPositionOfLineAndUTF16Character github.com/microsoft/TypeScript/tsc/internal/scanner.GetECMAPositionOfLineAndUTF16Character
54
+ func GetECMAPositionOfLineAndUTF16Character(sourceFile ast.SourceFileLike, line int, character core.UTF16Offset) int
55
+
56
+ //go:linkname GetErrorRangeForNode github.com/microsoft/TypeScript/tsc/internal/scanner.GetErrorRangeForNode
57
+ func GetErrorRangeForNode(sourceFile *ast.SourceFile, node *ast.Node) core.TextRange
58
+
59
+ //go:linkname GetIdentifierToken github.com/microsoft/TypeScript/tsc/internal/scanner.GetIdentifierToken
60
+ func GetIdentifierToken(str string) ast.Kind
61
+
62
+ //go:linkname GetLeadingCommentRanges github.com/microsoft/TypeScript/tsc/internal/scanner.GetLeadingCommentRanges
63
+ func GetLeadingCommentRanges(f *ast.NodeFactory, text string, pos int) iter.Seq[ast.CommentRange]
64
+
65
+ //go:linkname GetRangeOfTokenAtPosition github.com/microsoft/TypeScript/tsc/internal/scanner.GetRangeOfTokenAtPosition
66
+ func GetRangeOfTokenAtPosition(sourceFile *ast.SourceFile, pos int) core.TextRange
67
+
68
+ //go:linkname GetScannerForSourceFile github.com/microsoft/TypeScript/tsc/internal/scanner.GetScannerForSourceFile
69
+ func GetScannerForSourceFile(sourceFile *ast.SourceFile, pos int) *scanner.Scanner
70
+
71
+ //go:linkname GetShebang github.com/microsoft/TypeScript/tsc/internal/scanner.GetShebang
72
+ func GetShebang(text string) string
73
+
74
+ //go:linkname GetSourceTextOfNodeFromSourceFile github.com/microsoft/TypeScript/tsc/internal/scanner.GetSourceTextOfNodeFromSourceFile
75
+ func GetSourceTextOfNodeFromSourceFile(sourceFile *ast.SourceFile, node *ast.Node, includeTrivia bool) string
76
+
77
+ //go:linkname GetTextOfJSDocComment github.com/microsoft/TypeScript/tsc/internal/scanner.GetTextOfJSDocComment
78
+ func GetTextOfJSDocComment(comment *ast.NodeList) string
79
+
80
+ //go:linkname GetTextOfNode github.com/microsoft/TypeScript/tsc/internal/scanner.GetTextOfNode
81
+ func GetTextOfNode(node *ast.Node) string
82
+
83
+ //go:linkname GetTextOfNodeFromSourceText github.com/microsoft/TypeScript/tsc/internal/scanner.GetTextOfNodeFromSourceText
84
+ func GetTextOfNodeFromSourceText(sourceText string, node *ast.Node, includeTrivia bool) string
85
+
86
+ //go:linkname GetTokenPosOfNode github.com/microsoft/TypeScript/tsc/internal/scanner.GetTokenPosOfNode
87
+ func GetTokenPosOfNode(node *ast.Node, sourceFile *ast.SourceFile, includeJSDoc bool) int
88
+
89
+ //go:linkname GetTrailingCommentRanges github.com/microsoft/TypeScript/tsc/internal/scanner.GetTrailingCommentRanges
90
+ func GetTrailingCommentRanges(f *ast.NodeFactory, text string, pos int) iter.Seq[ast.CommentRange]
91
+
92
+ //go:linkname GetViableKeywordSuggestions github.com/microsoft/TypeScript/tsc/internal/scanner.GetViableKeywordSuggestions
93
+ func GetViableKeywordSuggestions() []string
94
+
95
+ //go:linkname IdentifierToKeywordKind github.com/microsoft/TypeScript/tsc/internal/scanner.IdentifierToKeywordKind
96
+ func IdentifierToKeywordKind(node *ast.Identifier) ast.Kind
97
+
98
+ //go:linkname IsIdentifierPart github.com/microsoft/TypeScript/tsc/internal/scanner.IsIdentifierPart
99
+ func IsIdentifierPart(ch rune) bool
100
+
101
+ //go:linkname IsIdentifierPartEx github.com/microsoft/TypeScript/tsc/internal/scanner.IsIdentifierPartEx
102
+ func IsIdentifierPartEx(ch rune, languageVariant core.LanguageVariant) bool
103
+
104
+ //go:linkname IsIdentifierStart github.com/microsoft/TypeScript/tsc/internal/scanner.IsIdentifierStart
105
+ func IsIdentifierStart(ch rune) bool
106
+
107
+ //go:linkname IsIdentifierText github.com/microsoft/TypeScript/tsc/internal/scanner.IsIdentifierText
108
+ func IsIdentifierText(name string, languageVariant core.LanguageVariant) bool
109
+
110
+ //go:linkname IsIntrinsicJsxName github.com/microsoft/TypeScript/tsc/internal/scanner.IsIntrinsicJsxName
111
+ func IsIntrinsicJsxName(name string) bool
112
+
113
+ //go:linkname IsValidIdentifier github.com/microsoft/TypeScript/tsc/internal/scanner.IsValidIdentifier
114
+ func IsValidIdentifier(s string) bool
115
+
116
+ //go:linkname NewScanner github.com/microsoft/TypeScript/tsc/internal/scanner.NewScanner
117
+ func NewScanner() *scanner.Scanner
118
+
119
+ //go:linkname ScanTokenAtPosition github.com/microsoft/TypeScript/tsc/internal/scanner.ScanTokenAtPosition
120
+ func ScanTokenAtPosition(sourceFile *ast.SourceFile, pos int) ast.Kind
121
+
122
+ type Scanner = scanner.Scanner
123
+ type ScannerState = scanner.ScannerState
124
+
125
+ //go:linkname SkipTrivia github.com/microsoft/TypeScript/tsc/internal/scanner.SkipTrivia
126
+ func SkipTrivia(text string, pos int) int
127
+
128
+ //go:linkname SkipTriviaEx github.com/microsoft/TypeScript/tsc/internal/scanner.SkipTriviaEx
129
+ func SkipTriviaEx(text string, pos int, options *scanner.SkipTriviaOptions) int
130
+
131
+ type SkipTriviaOptions = scanner.SkipTriviaOptions
132
+
133
+ //go:linkname StringToToken github.com/microsoft/TypeScript/tsc/internal/scanner.StringToToken
134
+ func StringToToken(s string) ast.Kind
135
+
136
+ //go:linkname TokenToString github.com/microsoft/TypeScript/tsc/internal/scanner.TokenToString
137
+ func TokenToString(token ast.Kind) string
@@ -0,0 +1,5 @@
1
+ module github.com/microsoft/TypeScript/tsc/shim/stringutil
2
+
3
+ go 1.27
4
+
5
+ require github.com/microsoft/TypeScript/tsc v0.0.0-20261019224239-28534d760906
@@ -0,0 +1,2 @@
1
+ github.com/microsoft/TypeScript/tsc v0.0.0-20261019224239-28534d760906 h1:Wn+Kp4ORyay6jJwvOng7G8pTD6HOP+Fwx8si66Wq7Bk=
2
+ github.com/microsoft/TypeScript/tsc v0.0.0-20261019224239-28534d760906/go.mod h1:28hWKaTYwRARPm0T9Y0XvdvYpU2HtjONzsMqAdYLucY=
@@ -0,0 +1,131 @@
1
+ // Code generated by packages/ttsc/tools/gen_shims. DO NOT EDIT.
2
+
3
+ package stringutil
4
+
5
+ import "github.com/microsoft/TypeScript/tsc/internal/stringutil"
6
+ import _ "unsafe"
7
+
8
+ //go:linkname AddUTF8ByteOrderMark github.com/microsoft/TypeScript/tsc/internal/stringutil.AddUTF8ByteOrderMark
9
+ func AddUTF8ByteOrderMark(text string) string
10
+
11
+ //go:linkname CodePointToSurrogatePair github.com/microsoft/TypeScript/tsc/internal/stringutil.CodePointToSurrogatePair
12
+ func CodePointToSurrogatePair(ch rune) (high rune, low rune)
13
+
14
+ //go:linkname CombineSurrogatePairs github.com/microsoft/TypeScript/tsc/internal/stringutil.CombineSurrogatePairs
15
+ func CombineSurrogatePairs(s string) string
16
+
17
+ //go:linkname CompareStringsCaseInsensitive github.com/microsoft/TypeScript/tsc/internal/stringutil.CompareStringsCaseInsensitive
18
+ func CompareStringsCaseInsensitive(a string, b string) stringutil.Comparison
19
+
20
+ //go:linkname CompareStringsCaseInsensitiveEslintCompatible github.com/microsoft/TypeScript/tsc/internal/stringutil.CompareStringsCaseInsensitiveEslintCompatible
21
+ func CompareStringsCaseInsensitiveEslintCompatible(a string, b string) stringutil.Comparison
22
+
23
+ //go:linkname CompareStringsCaseInsensitiveThenSensitive github.com/microsoft/TypeScript/tsc/internal/stringutil.CompareStringsCaseInsensitiveThenSensitive
24
+ func CompareStringsCaseInsensitiveThenSensitive(a string, b string) stringutil.Comparison
25
+
26
+ //go:linkname CompareStringsCaseSensitive github.com/microsoft/TypeScript/tsc/internal/stringutil.CompareStringsCaseSensitive
27
+ func CompareStringsCaseSensitive(a string, b string) stringutil.Comparison
28
+
29
+ type Comparison = stringutil.Comparison
30
+
31
+ const ComparisonEqual = stringutil.ComparisonEqual
32
+ const ComparisonGreaterThan = stringutil.ComparisonGreaterThan
33
+ const ComparisonLessThan = stringutil.ComparisonLessThan
34
+
35
+ //go:linkname DecodeJSStringRune github.com/microsoft/TypeScript/tsc/internal/stringutil.DecodeJSStringRune
36
+ func DecodeJSStringRune(s string) (rune, int)
37
+
38
+ //go:linkname EncodeJSStringRune github.com/microsoft/TypeScript/tsc/internal/stringutil.EncodeJSStringRune
39
+ func EncodeJSStringRune(ch rune) string
40
+
41
+ //go:linkname EncodeURI github.com/microsoft/TypeScript/tsc/internal/stringutil.EncodeURI
42
+ func EncodeURI(s string) string
43
+
44
+ //go:linkname EquateStringCaseInsensitive github.com/microsoft/TypeScript/tsc/internal/stringutil.EquateStringCaseInsensitive
45
+ func EquateStringCaseInsensitive(a string, b string) bool
46
+
47
+ //go:linkname EquateStringCaseSensitive github.com/microsoft/TypeScript/tsc/internal/stringutil.EquateStringCaseSensitive
48
+ func EquateStringCaseSensitive(a string, b string) bool
49
+
50
+ //go:linkname GetStringComparer github.com/microsoft/TypeScript/tsc/internal/stringutil.GetStringComparer
51
+ func GetStringComparer(ignoreCase bool) func(a string, b string) stringutil.Comparison
52
+
53
+ //go:linkname GetStringEqualityComparer github.com/microsoft/TypeScript/tsc/internal/stringutil.GetStringEqualityComparer
54
+ func GetStringEqualityComparer(ignoreCase bool) func(a string, b string) bool
55
+
56
+ //go:linkname GuessIndentation github.com/microsoft/TypeScript/tsc/internal/stringutil.GuessIndentation
57
+ func GuessIndentation(lines []string) int
58
+
59
+ //go:linkname HasPrefix github.com/microsoft/TypeScript/tsc/internal/stringutil.HasPrefix
60
+ func HasPrefix(s string, prefix string, caseSensitive bool) bool
61
+
62
+ //go:linkname HasPrefixAndSuffixWithoutOverlap github.com/microsoft/TypeScript/tsc/internal/stringutil.HasPrefixAndSuffixWithoutOverlap
63
+ func HasPrefixAndSuffixWithoutOverlap(s string, prefix string, suffix string, caseSensitive bool) bool
64
+
65
+ //go:linkname HasSuffix github.com/microsoft/TypeScript/tsc/internal/stringutil.HasSuffix
66
+ func HasSuffix(s string, suffix string, caseSensitive bool) bool
67
+
68
+ //go:linkname IsASCIILetter github.com/microsoft/TypeScript/tsc/internal/stringutil.IsASCIILetter
69
+ func IsASCIILetter(ch rune) bool
70
+
71
+ //go:linkname IsDigit github.com/microsoft/TypeScript/tsc/internal/stringutil.IsDigit
72
+ func IsDigit(ch rune) bool
73
+
74
+ //go:linkname IsHexDigit github.com/microsoft/TypeScript/tsc/internal/stringutil.IsHexDigit
75
+ func IsHexDigit(ch rune) bool
76
+
77
+ //go:linkname IsHighSurrogate github.com/microsoft/TypeScript/tsc/internal/stringutil.IsHighSurrogate
78
+ func IsHighSurrogate(ch rune) bool
79
+
80
+ //go:linkname IsLineBreak github.com/microsoft/TypeScript/tsc/internal/stringutil.IsLineBreak
81
+ func IsLineBreak(ch rune) bool
82
+
83
+ //go:linkname IsLowSurrogate github.com/microsoft/TypeScript/tsc/internal/stringutil.IsLowSurrogate
84
+ func IsLowSurrogate(ch rune) bool
85
+
86
+ //go:linkname IsOctalDigit github.com/microsoft/TypeScript/tsc/internal/stringutil.IsOctalDigit
87
+ func IsOctalDigit(ch rune) bool
88
+
89
+ //go:linkname IsSurrogate github.com/microsoft/TypeScript/tsc/internal/stringutil.IsSurrogate
90
+ func IsSurrogate(ch rune) bool
91
+
92
+ //go:linkname IsUnicodeIdentifierPart github.com/microsoft/TypeScript/tsc/internal/stringutil.IsUnicodeIdentifierPart
93
+ func IsUnicodeIdentifierPart(ch rune) bool
94
+
95
+ //go:linkname IsUnicodeIdentifierStart github.com/microsoft/TypeScript/tsc/internal/stringutil.IsUnicodeIdentifierStart
96
+ func IsUnicodeIdentifierStart(ch rune) bool
97
+
98
+ //go:linkname IsWhiteSpaceLike github.com/microsoft/TypeScript/tsc/internal/stringutil.IsWhiteSpaceLike
99
+ func IsWhiteSpaceLike(ch rune) bool
100
+
101
+ //go:linkname IsWhiteSpaceSingleLine github.com/microsoft/TypeScript/tsc/internal/stringutil.IsWhiteSpaceSingleLine
102
+ func IsWhiteSpaceSingleLine(ch rune) bool
103
+
104
+ //go:linkname LowerFirstChar github.com/microsoft/TypeScript/tsc/internal/stringutil.LowerFirstChar
105
+ func LowerFirstChar(str string) string
106
+
107
+ //go:linkname RemoveByteOrderMark github.com/microsoft/TypeScript/tsc/internal/stringutil.RemoveByteOrderMark
108
+ func RemoveByteOrderMark(text string) string
109
+
110
+ //go:linkname SplitLines github.com/microsoft/TypeScript/tsc/internal/stringutil.SplitLines
111
+ func SplitLines(text string) []string
112
+
113
+ //go:linkname StripQuotes github.com/microsoft/TypeScript/tsc/internal/stringutil.StripQuotes
114
+ func StripQuotes(name string) string
115
+
116
+ const SurrogateLowStart = stringutil.SurrogateLowStart
117
+
118
+ //go:linkname SurrogatePairToCodePoint github.com/microsoft/TypeScript/tsc/internal/stringutil.SurrogatePairToCodePoint
119
+ func SurrogatePairToCodePoint(high rune, low rune) rune
120
+
121
+ //go:linkname ToLowerJS github.com/microsoft/TypeScript/tsc/internal/stringutil.ToLowerJS
122
+ func ToLowerJS(str string) string
123
+
124
+ //go:linkname ToUpperJS github.com/microsoft/TypeScript/tsc/internal/stringutil.ToUpperJS
125
+ func ToUpperJS(str string) string
126
+
127
+ //go:linkname TruncateByRunes github.com/microsoft/TypeScript/tsc/internal/stringutil.TruncateByRunes
128
+ func TruncateByRunes(str string, maxLength int) string
129
+
130
+ //go:linkname UnquoteString github.com/microsoft/TypeScript/tsc/internal/stringutil.UnquoteString
131
+ func UnquoteString(str string) string
@@ -0,0 +1,15 @@
1
+ module github.com/microsoft/TypeScript/tsc/shim/transformers
2
+
3
+ go 1.27
4
+
5
+ require github.com/microsoft/TypeScript/tsc v0.0.0-20261019224239-28534d760906
6
+
7
+ require (
8
+ github.com/Microsoft/go-winio v0.6.2 // indirect
9
+ github.com/klauspost/compress v1.20.0 // indirect
10
+ github.com/klauspost/cpuid/v2 v2.2.10 // indirect
11
+ github.com/zeebo/xxh3 v1.1.0 // indirect
12
+ golang.org/x/sync v0.23.0 // indirect
13
+ golang.org/x/sys v0.48.0 // indirect
14
+ golang.org/x/text v0.42.0 // indirect
15
+ )
@@ -0,0 +1,24 @@
1
+ github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY=
2
+ github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU=
3
+ github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
4
+ github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
5
+ github.com/klauspost/compress v1.20.0 h1:a3C1ke2ohxFymNlb2HWAHjDeKCI90scRskErZkR0ezA=
6
+ github.com/klauspost/compress v1.20.0/go.mod h1:LUdAzn7YLVvxLpc7y3V1m40wESHTgc1422pwwBSKYuI=
7
+ github.com/klauspost/cpuid/v2 v2.2.10 h1:tBs3QSyvjDyFTq3uoc/9xFpCuOsJQFNPiAhYdw2skhE=
8
+ github.com/klauspost/cpuid/v2 v2.2.10/go.mod h1:hqwkgyIinND0mEev00jJYCxPNVRVXFQeu1XKlok6oO0=
9
+ github.com/microsoft/TypeScript/tsc v0.0.0-20261019224239-28534d760906 h1:Wn+Kp4ORyay6jJwvOng7G8pTD6HOP+Fwx8si66Wq7Bk=
10
+ github.com/microsoft/TypeScript/tsc v0.0.0-20261019224239-28534d760906/go.mod h1:28hWKaTYwRARPm0T9Y0XvdvYpU2HtjONzsMqAdYLucY=
11
+ github.com/peter-evans/patience v0.3.0 h1:rX0JdJeepqdQl1Sk9c9uvorjYYzL2TfgLX1adqYm9cA=
12
+ github.com/peter-evans/patience v0.3.0/go.mod h1:Kmxu5sY1NmBLFSStvXjX1wS9mIv7wMcP/ubucyMOAu0=
13
+ github.com/zeebo/assert v1.3.0 h1:g7C04CbJuIDKNPFHmsk4hwZDO5O+kntRxzaUoNXj+IQ=
14
+ github.com/zeebo/assert v1.3.0/go.mod h1:Pq9JiuJQpG8JLJdtkwrJESF0Foym2/D9XMU5ciN/wJ0=
15
+ github.com/zeebo/xxh3 v1.1.0 h1:s7DLGDK45Dyfg7++yxI0khrfwq9661w9EN78eP/UZVs=
16
+ github.com/zeebo/xxh3 v1.1.0/go.mod h1:IisAie1LELR4xhVinxWS5+zf1lA4p0MW4T+w+W07F5s=
17
+ golang.org/x/sync v0.23.0 h1:KameEIfc1IkluZyXWLn39Wd4tURc6GbCiISGiZm2bQk=
18
+ golang.org/x/sync v0.23.0/go.mod h1:sUUOizhqBxiL6pEWpqNLUiaJn1ShEbZ6BBqskPbjZm0=
19
+ golang.org/x/sys v0.48.0 h1:bbX/i/6MgT9BVLM9RT1thmxL04yeTAhbEz4SyadbXoo=
20
+ golang.org/x/sys v0.48.0/go.mod h1:hNLxWAXmnKAxqDtdwIYC4bM9oQPEecfsnNMuSxOs3og=
21
+ golang.org/x/text v0.42.0 h1:JbOZXgfeCPU9gacVtYliJqOhD+zhrEqK4LfdpmlUZqI=
22
+ golang.org/x/text v0.42.0/go.mod h1:ojzP1Z+2QtioaF8DTtO8K5q7JWVVYwZKenzujK0Zd0E=
23
+ gotest.tools/v3 v3.5.2 h1:7koQfIKdy+I8UTetycgUqXWSDwpgv193Ka+qRsmBY8Q=
24
+ gotest.tools/v3 v3.5.2/go.mod h1:LtdLGcnqToBH83WByAAi/wiwSFCArdFIUV/xxN4pcjA=
@@ -0,0 +1,24 @@
1
+ // gen_shims:hand-maintained
2
+ //
3
+ // Re-exports tsgo's emit transformer type so ttsc can build a plugin
4
+ // transformer and run it ahead of the builtin emit chain. Plugins (typia,
5
+ // nestia) return real AST nodes; ttsc inserts their transformer first in the
6
+ // same EmitContext as the builtins, so tsgo's module-transform aliases imports
7
+ // itself, no text-splice needed.
8
+ package transformers
9
+
10
+ import innertransformers "github.com/microsoft/TypeScript/tsc/internal/transformers"
11
+
12
+ // Transformer is one stage of tsgo's emit transformer chain.
13
+ // TransformSourceFile returns the visited source file, which may replace the
14
+ // input; its visitor and factory share the stage's EmitContext.
15
+ //
16
+ // @evidence contracts/common.md#principled-implementation Go alias identity preserves the upstream visitor, factory and context relationship; callers receive the transformed SourceFile returned by the visitor rather than assuming in-place mutation.
17
+ // @evidence contracts/common.md#clear-and-simple-design One native transformer stage participates in the existing chain without an additional transform protocol or duplicated visitor state.
18
+ // @evidence contracts/common.md#prohibited-implementation-shortcuts Plugins return compiler AST nodes through the supported stage, without text-splice substitutes or monkey-patched builtin passes.
19
+ // @evidence contracts/common.md#meaningful-documentation Native prose identifies the possible replacement result and shared context rather than promising preservation of the input node's identity.
20
+ // @evidenceExclude contracts/performance.md#bound-retention-and-release-resources A type declaration acquires and holds no runtime resource.
21
+ // @evidenceExclude contracts/performance.md#efficient-algorithms A type declaration chooses no processing strategy.
22
+ // @evidenceExclude contracts/performance.md#reuse-equivalent-work A type declaration computes nothing, so there is no work to share.
23
+ // @evidenceExclude contracts/portability.md#os-neutral-implementation This type declaration describes a data shape only; it opens no file, builds no path and branches on no platform.
24
+ type Transformer = innertransformers.Transformer
@@ -0,0 +1,44 @@
1
+ // gen_shims:hand-maintained
2
+
3
+ package tsoptions
4
+
5
+ import (
6
+ "github.com/microsoft/TypeScript/tsc/internal/collections"
7
+ "github.com/microsoft/TypeScript/tsc/internal/tsoptions"
8
+ )
9
+
10
+ // CommandLineRawOptions returns the options a parsed command line spelled out,
11
+ // wrapped in a "compilerOptions" key: the `optionsRaw` shape
12
+ // GetParsedCommandLineOfConfigFile merges over the config it parses.
13
+ //
14
+ // TypeScript-Go's own command line passes exactly this beside the parsed
15
+ // CompilerOptions. The struct alone cannot carry an option the command line
16
+ // resets: `--declarationDir null` leaves the field at its zero value, which the
17
+ // merge reads as "not given", so the config's own value survives. The raw map
18
+ // records the explicit null, and the merge honors it.
19
+ //
20
+ // Returns nil for a nil command line or an absent, nil or differently typed
21
+ // raw value. A present ordered map is wrapped even when it contains no options.
22
+ // The wrapper retains the original ordered map; callers must not mutate it
23
+ // while configuration merging reads the command line.
24
+ //
25
+ // @evidence contracts/common.md#principled-implementation The compilerOptions wrapper preserves the parsed ordered raw values, including explicit null, because config merging distinguishes an absent option from a supplied zero-like value.
26
+ // @evidence contracts/common.md#clear-and-simple-design Nil and raw-shape checks precede one ordered-map wrapper, keeping representation adaptation separate from the config parser that owns merging.
27
+ // @evidence contracts/common.md#prohibited-implementation-shortcuts compilerOptions is the compiler's merge-envelope key, not a consumer exception; the adapter preserves upstream parsing rather than patching fields or inventing reset values.
28
+ // @evidence contracts/common.md#meaningful-documentation Native prose explains explicit-null reset semantics, nil results and shared-map ownership, keeping the example and ownership note in distinct paragraphs.
29
+ // @evidence contracts/performance.md#bound-retention-and-release-resources The returned one-entry wrapper retains the original ordered map and its reachable raw option values for its consumers; it adds no deep copy, handle or historical cache. Callers own reference release and must avoid concurrent mutation during merging; this adapter imposes no bound on the supplied raw graph.
30
+ // @evidence contracts/performance.md#efficient-algorithms Nil and type checks precede one insertion into a fresh ordered map, taking constant wrapper work and space independent of raw option count; the raw values are referenced without traversal or copying, while downstream config merging owns its separate option scan.
31
+ // @evidenceExclude contracts/performance.md#reuse-equivalent-work This representation adapter owns no shared producer, request cache or validity coordinator; upstream parsing produces the supplied raw map and callers determine when that same command line remains valid for merging.
32
+ // @evidenceExclude contracts/portability.md#os-neutral-implementation CommandLineRawOptions computes from its arguments only; it opens no file, builds no path and calls no platform or process API.
33
+ func CommandLineRawOptions(commandLine *tsoptions.ParsedCommandLine) *collections.OrderedMap[string, any] {
34
+ if commandLine == nil {
35
+ return nil
36
+ }
37
+ raw, ok := commandLine.Raw.(*collections.OrderedMap[string, any])
38
+ if !ok || raw == nil {
39
+ return nil
40
+ }
41
+ wrapped := &collections.OrderedMap[string, any]{}
42
+ wrapped.Set("compilerOptions", raw)
43
+ return wrapped
44
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "ExtraMethods": {},
3
+ "ExtraFields": {}
4
+ }
@@ -0,0 +1,15 @@
1
+ module github.com/microsoft/TypeScript/tsc/shim/tsoptions
2
+
3
+ go 1.27
4
+
5
+ require github.com/microsoft/TypeScript/tsc v0.0.0-20261019224239-28534d760906
6
+
7
+ require (
8
+ github.com/Microsoft/go-winio v0.6.2 // indirect
9
+ github.com/klauspost/compress v1.20.0 // indirect
10
+ github.com/klauspost/cpuid/v2 v2.2.10 // indirect
11
+ github.com/zeebo/xxh3 v1.1.0 // indirect
12
+ golang.org/x/sync v0.23.0 // indirect
13
+ golang.org/x/sys v0.48.0 // indirect
14
+ golang.org/x/text v0.42.0 // indirect
15
+ )
@@ -0,0 +1,24 @@
1
+ github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY=
2
+ github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU=
3
+ github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
4
+ github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
5
+ github.com/klauspost/compress v1.20.0 h1:a3C1ke2ohxFymNlb2HWAHjDeKCI90scRskErZkR0ezA=
6
+ github.com/klauspost/compress v1.20.0/go.mod h1:LUdAzn7YLVvxLpc7y3V1m40wESHTgc1422pwwBSKYuI=
7
+ github.com/klauspost/cpuid/v2 v2.2.10 h1:tBs3QSyvjDyFTq3uoc/9xFpCuOsJQFNPiAhYdw2skhE=
8
+ github.com/klauspost/cpuid/v2 v2.2.10/go.mod h1:hqwkgyIinND0mEev00jJYCxPNVRVXFQeu1XKlok6oO0=
9
+ github.com/microsoft/TypeScript/tsc v0.0.0-20261019224239-28534d760906 h1:Wn+Kp4ORyay6jJwvOng7G8pTD6HOP+Fwx8si66Wq7Bk=
10
+ github.com/microsoft/TypeScript/tsc v0.0.0-20261019224239-28534d760906/go.mod h1:28hWKaTYwRARPm0T9Y0XvdvYpU2HtjONzsMqAdYLucY=
11
+ github.com/peter-evans/patience v0.3.0 h1:rX0JdJeepqdQl1Sk9c9uvorjYYzL2TfgLX1adqYm9cA=
12
+ github.com/peter-evans/patience v0.3.0/go.mod h1:Kmxu5sY1NmBLFSStvXjX1wS9mIv7wMcP/ubucyMOAu0=
13
+ github.com/zeebo/assert v1.3.0 h1:g7C04CbJuIDKNPFHmsk4hwZDO5O+kntRxzaUoNXj+IQ=
14
+ github.com/zeebo/assert v1.3.0/go.mod h1:Pq9JiuJQpG8JLJdtkwrJESF0Foym2/D9XMU5ciN/wJ0=
15
+ github.com/zeebo/xxh3 v1.1.0 h1:s7DLGDK45Dyfg7++yxI0khrfwq9661w9EN78eP/UZVs=
16
+ github.com/zeebo/xxh3 v1.1.0/go.mod h1:IisAie1LELR4xhVinxWS5+zf1lA4p0MW4T+w+W07F5s=
17
+ golang.org/x/sync v0.23.0 h1:KameEIfc1IkluZyXWLn39Wd4tURc6GbCiISGiZm2bQk=
18
+ golang.org/x/sync v0.23.0/go.mod h1:sUUOizhqBxiL6pEWpqNLUiaJn1ShEbZ6BBqskPbjZm0=
19
+ golang.org/x/sys v0.48.0 h1:bbX/i/6MgT9BVLM9RT1thmxL04yeTAhbEz4SyadbXoo=
20
+ golang.org/x/sys v0.48.0/go.mod h1:hNLxWAXmnKAxqDtdwIYC4bM9oQPEecfsnNMuSxOs3og=
21
+ golang.org/x/text v0.42.0 h1:JbOZXgfeCPU9gacVtYliJqOhD+zhrEqK4LfdpmlUZqI=
22
+ golang.org/x/text v0.42.0/go.mod h1:ojzP1Z+2QtioaF8DTtO8K5q7JWVVYwZKenzujK0Zd0E=
23
+ gotest.tools/v3 v3.5.2 h1:7koQfIKdy+I8UTetycgUqXWSDwpgv193Ka+qRsmBY8Q=
24
+ gotest.tools/v3 v3.5.2/go.mod h1:LtdLGcnqToBH83WByAAi/wiwSFCArdFIUV/xxN4pcjA=
@@ -0,0 +1,47 @@
1
+ package tsoptions
2
+
3
+ import (
4
+ innertsoptions "github.com/microsoft/TypeScript/tsc/internal/tsoptions"
5
+ innertspath "github.com/microsoft/TypeScript/tsc/internal/tspath"
6
+ innervfs "github.com/microsoft/TypeScript/tsc/internal/vfs"
7
+ )
8
+
9
+ // Version-neutral command-line and config parsing entry points.
10
+ //
11
+ // TypeScript 7.0 parses through a host that carries the working directory,
12
+ // while TypeScript 7.1 takes the filesystem and directory separately and asks
13
+ // its config host whether a content-mapper package may run. Code that must
14
+ // compile on both compiler targets calls these functions, which the 7.0 shim
15
+ // declares with identical signatures.
16
+
17
+ // NewParseConfigHost returns the config-parsing host over fs. TypeScript 7.0
18
+ // resolves relative paths against currentDirectory; TypeScript 7.1 resolves
19
+ // them against the config file and leaves content-mapper authorization to the
20
+ // runExternalCode option, so here currentDirectory is unused.
21
+ //
22
+ // @evidence contracts/common.md#principled-implementation Returns NewDefaultParseConfigHost, the compiler's host that defers content-mapper authorization to runExternalCode.
23
+ // @evidence contracts/common.md#clear-and-simple-design One constructor call keeps the target difference inside the shim.
24
+ // @evidence contracts/common.md#prohibited-implementation-shortcuts No authorization policy is added here.
25
+ // @evidence contracts/common.md#meaningful-documentation Native prose states each target's use of currentDirectory.
26
+ // @evidence contracts/portability.md#os-neutral-implementation The supplied FS owns every native operation; the host adds none.
27
+ // @evidenceExclude contracts/performance.md#efficient-algorithms Construction assigns one field.
28
+ // @evidenceExclude contracts/performance.md#reuse-equivalent-work Each call returns a fresh host.
29
+ // @evidence contracts/performance.md#bound-retention-and-release-resources The host retains fs for the caller's lifetime and owns no handle.
30
+ func NewParseConfigHost(fs innervfs.FS, currentDirectory innertspath.RootedDirectoryPath) innertsoptions.ParseConfigHost {
31
+ return innertsoptions.NewDefaultParseConfigHost(fs)
32
+ }
33
+
34
+ // ParseCommandLineAt parses tsc arguments, resolving relative values against
35
+ // currentDirectory, the directory the arguments were given in.
36
+ //
37
+ // @evidence contracts/common.md#principled-implementation Calls ParseCommandLine with the filesystem and argument base.
38
+ // @evidence contracts/common.md#clear-and-simple-design One parser call keeps the target difference inside the shim.
39
+ // @evidence contracts/common.md#prohibited-implementation-shortcuts Argument parsing remains the compiler's.
40
+ // @evidence contracts/common.md#meaningful-documentation Native prose states which directory relative values use.
41
+ // @evidence contracts/portability.md#os-neutral-implementation Response-file reads go through the supplied FS.
42
+ // @evidenceExclude contracts/performance.md#efficient-algorithms The compiler owns the argument scan.
43
+ // @evidenceExclude contracts/performance.md#reuse-equivalent-work The function coordinates no shared work.
44
+ // @evidence contracts/performance.md#bound-retention-and-release-resources The returned command line is caller-owned.
45
+ func ParseCommandLineAt(args []string, fs innervfs.FS, currentDirectory innertspath.RootedDirectoryPath) *innertsoptions.ParsedCommandLine {
46
+ return innertsoptions.ParseCommandLine(args, fs, currentDirectory)
47
+ }