tsc-ts 0.0.10 → 0.1.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 (367) hide show
  1. package/README.md +1 -1
  2. package/bin/tsc-ts.js +70 -1
  3. package/dist/api/compiler/ast-utilities.d.ts +19 -1
  4. package/dist/api/compiler/ast-utilities.js +180 -95
  5. package/dist/api/compiler/ast.d.ts +20 -15
  6. package/dist/api/compiler/ast.js +1023 -995
  7. package/dist/api/compiler/astnav.js +15 -15
  8. package/dist/api/compiler/binder-utilities.js +186 -186
  9. package/dist/api/compiler/binder.js +290 -263
  10. package/dist/api/compiler/character-codes.js +2 -2
  11. package/dist/api/compiler/checker-calls.js +173 -123
  12. package/dist/api/compiler/checker-classes.d.ts +14 -3
  13. package/dist/api/compiler/checker-classes.js +134 -90
  14. package/dist/api/compiler/checker-contextual.js +64 -61
  15. package/dist/api/compiler/checker-declaration-order.js +79 -79
  16. package/dist/api/compiler/checker-declarations.d.ts +1 -0
  17. package/dist/api/compiler/checker-declarations.js +160 -136
  18. package/dist/api/compiler/checker-declared-types.js +67 -65
  19. package/dist/api/compiler/checker-decorators.js +77 -77
  20. package/dist/api/compiler/checker-deprecation.d.ts +8 -3
  21. package/dist/api/compiler/checker-deprecation.js +76 -55
  22. package/dist/api/compiler/checker-destructuring.js +47 -45
  23. package/dist/api/compiler/checker-elaboration.js +24 -24
  24. package/dist/api/compiler/checker-emit-helpers.js +4 -4
  25. package/dist/api/compiler/checker-emit-resolver.d.ts +4 -2
  26. package/dist/api/compiler/checker-emit-resolver.js +25 -13
  27. package/dist/api/compiler/checker-evaluator.js +9 -9
  28. package/dist/api/compiler/checker-expressions.js +244 -211
  29. package/dist/api/compiler/checker-functions.js +113 -107
  30. package/dist/api/compiler/checker-generated-code.d.ts +0 -11
  31. package/dist/api/compiler/checker-generated-code.js +28 -52
  32. package/dist/api/compiler/checker-grammar.d.ts +1 -0
  33. package/dist/api/compiler/checker-grammar.js +469 -438
  34. package/dist/api/compiler/checker-heritage.js +91 -93
  35. package/dist/api/compiler/checker-inference.d.ts +77 -5
  36. package/dist/api/compiler/checker-inference.js +487 -113
  37. package/dist/api/compiler/checker-iteration.d.ts +0 -10
  38. package/dist/api/compiler/checker-iteration.js +35 -52
  39. package/dist/api/compiler/checker-javascript.js +14 -14
  40. package/dist/api/compiler/checker-jsdoc.d.ts +8 -10
  41. package/dist/api/compiler/checker-jsdoc.js +67 -58
  42. package/dist/api/compiler/checker-jsx.js +105 -88
  43. package/dist/api/compiler/checker-members.d.ts +9 -2
  44. package/dist/api/compiler/checker-members.js +210 -74
  45. package/dist/api/compiler/checker-modules.d.ts +15 -6
  46. package/dist/api/compiler/checker-modules.js +469 -309
  47. package/dist/api/compiler/checker-narrowing.js +273 -189
  48. package/dist/api/compiler/checker-object-literals.js +25 -22
  49. package/dist/api/compiler/checker-operators.js +126 -118
  50. package/dist/api/compiler/checker-overloads.js +27 -27
  51. package/dist/api/compiler/checker-property-access.js +59 -55
  52. package/dist/api/compiler/checker-services.d.ts +1 -0
  53. package/dist/api/compiler/checker-services.js +222 -210
  54. package/dist/api/compiler/checker-signatures.js +65 -49
  55. package/dist/api/compiler/checker-source-file.d.ts +5 -0
  56. package/dist/api/compiler/checker-source-file.js +154 -130
  57. package/dist/api/compiler/checker-statements.js +33 -32
  58. package/dist/api/compiler/checker-super.js +50 -50
  59. package/dist/api/compiler/checker-symbol-types.js +109 -93
  60. package/dist/api/compiler/checker-symbols.d.ts +13 -1
  61. package/dist/api/compiler/checker-symbols.js +264 -149
  62. package/dist/api/compiler/checker-type-factory.d.ts +5 -0
  63. package/dist/api/compiler/checker-type-factory.js +137 -34
  64. package/dist/api/compiler/checker-type-nodes.d.ts +1 -0
  65. package/dist/api/compiler/checker-type-nodes.js +179 -141
  66. package/dist/api/compiler/checker-type-operators.d.ts +2 -0
  67. package/dist/api/compiler/checker-type-operators.js +110 -63
  68. package/dist/api/compiler/checker-types.d.ts +80 -3
  69. package/dist/api/compiler/checker-types.js +121 -2
  70. package/dist/api/compiler/checker-unused.js +114 -118
  71. package/dist/api/compiler/checker-utilities.js +11 -11
  72. package/dist/api/compiler/checker.d.ts +93 -31
  73. package/dist/api/compiler/checker.js +143 -35
  74. package/dist/api/compiler/command-line.d.ts +1 -3
  75. package/dist/api/compiler/command-line.js +47 -44
  76. package/dist/api/compiler/compile-program.d.ts +19 -4
  77. package/dist/api/compiler/compile-program.js +45 -26
  78. package/dist/api/compiler/diagnostic-messages.d.ts +1849 -1774
  79. package/dist/api/compiler/diagnostic-messages.js +128 -122
  80. package/dist/api/compiler/diagnostics.js +7 -7
  81. package/dist/api/compiler/emitter.d.ts +7 -1
  82. package/dist/api/compiler/emitter.js +53 -11
  83. package/dist/api/compiler/file-include.d.ts +2 -1
  84. package/dist/api/compiler/file-include.js +11 -7
  85. package/dist/api/compiler/file-loader.d.ts +10 -0
  86. package/dist/api/compiler/file-loader.js +138 -41
  87. package/dist/api/compiler/instantiation.d.ts +7 -0
  88. package/dist/api/compiler/instantiation.js +101 -49
  89. package/dist/api/compiler/jsdoc.js +23 -23
  90. package/dist/api/compiler/link-tables.d.ts +48 -18
  91. package/dist/api/compiler/link-tables.js +80 -37
  92. package/dist/api/compiler/locales/cs-CZ.d.ts +1 -1
  93. package/dist/api/compiler/locales/cs-CZ.js +1 -1
  94. package/dist/api/compiler/locales/de-DE.d.ts +1 -1
  95. package/dist/api/compiler/locales/de-DE.js +1 -1
  96. package/dist/api/compiler/locales/es-ES.d.ts +1 -1
  97. package/dist/api/compiler/locales/es-ES.js +1 -1
  98. package/dist/api/compiler/locales/fr-FR.d.ts +1 -1
  99. package/dist/api/compiler/locales/fr-FR.js +1 -1
  100. package/dist/api/compiler/locales/it-IT.d.ts +1 -1
  101. package/dist/api/compiler/locales/it-IT.js +1 -1
  102. package/dist/api/compiler/locales/ja-JP.d.ts +1 -1
  103. package/dist/api/compiler/locales/ja-JP.js +1 -1
  104. package/dist/api/compiler/locales/ko-KR.d.ts +1 -1
  105. package/dist/api/compiler/locales/ko-KR.js +1 -1
  106. package/dist/api/compiler/locales/pl-PL.d.ts +1 -1
  107. package/dist/api/compiler/locales/pl-PL.js +1 -1
  108. package/dist/api/compiler/locales/pt-BR.d.ts +1 -1
  109. package/dist/api/compiler/locales/pt-BR.js +1 -1
  110. package/dist/api/compiler/locales/ru-RU.d.ts +1 -1
  111. package/dist/api/compiler/locales/ru-RU.js +1 -1
  112. package/dist/api/compiler/locales/tr-TR.d.ts +1 -1
  113. package/dist/api/compiler/locales/tr-TR.js +1 -1
  114. package/dist/api/compiler/locales/zh-CN.d.ts +1 -1
  115. package/dist/api/compiler/locales/zh-CN.js +1 -1
  116. package/dist/api/compiler/locales/zh-TW.d.ts +1 -1
  117. package/dist/api/compiler/locales/zh-TW.js +1 -1
  118. package/dist/api/compiler/module-resolution-types.js +6 -6
  119. package/dist/api/compiler/module-resolution.d.ts +10 -1
  120. package/dist/api/compiler/module-resolution.js +115 -84
  121. package/dist/api/compiler/module-specifiers.d.ts +15 -0
  122. package/dist/api/compiler/module-specifiers.js +24 -18
  123. package/dist/api/compiler/name-resolver.js +74 -65
  124. package/dist/api/compiler/node-builder-names.d.ts +11 -3
  125. package/dist/api/compiler/node-builder-names.js +210 -90
  126. package/dist/api/compiler/node-builder-pseudo.js +29 -31
  127. package/dist/api/compiler/node-builder-reuse.js +23 -22
  128. package/dist/api/compiler/node-builder.d.ts +18 -1
  129. package/dist/api/compiler/node-builder.js +191 -102
  130. package/dist/api/compiler/option-declarations.d.ts +2 -6
  131. package/dist/api/compiler/option-declarations.js +315 -375
  132. package/dist/api/compiler/options.d.ts +15 -33
  133. package/dist/api/compiler/options.js +21 -54
  134. package/dist/api/compiler/output-paths.d.ts +4 -1
  135. package/dist/api/compiler/output-paths.js +6 -11
  136. package/dist/api/compiler/package-json.d.ts +3 -3
  137. package/dist/api/compiler/package-json.js +11 -10
  138. package/dist/api/compiler/parser.d.ts +40 -19
  139. package/dist/api/compiler/parser.js +308 -216
  140. package/dist/api/compiler/path.d.ts +9 -0
  141. package/dist/api/compiler/path.js +20 -3
  142. package/dist/api/compiler/printer/emit-context.d.ts +3 -1
  143. package/dist/api/compiler/printer/emit-context.js +16 -1
  144. package/dist/api/compiler/printer/factory-base.d.ts +2 -2
  145. package/dist/api/compiler/printer/factory-base.js +7 -3
  146. package/dist/api/compiler/printer/factory.js +3 -1
  147. package/dist/api/compiler/printer/helpers.js +10 -1
  148. package/dist/api/compiler/printer/name-generator.d.ts +1 -1
  149. package/dist/api/compiler/printer/name-generator.js +35 -16
  150. package/dist/api/compiler/printer/printer.d.ts +1 -0
  151. package/dist/api/compiler/printer/printer.js +303 -281
  152. package/dist/api/compiler/printer/utilities.js +149 -147
  153. package/dist/api/compiler/program-checker.d.ts +8 -2
  154. package/dist/api/compiler/program-checker.js +84 -34
  155. package/dist/api/compiler/program-utilities.d.ts +3 -1
  156. package/dist/api/compiler/program-utilities.js +28 -15
  157. package/dist/api/compiler/program.d.ts +2 -0
  158. package/dist/api/compiler/program.js +69 -57
  159. package/dist/api/compiler/pseudo-bigint.d.ts +2 -0
  160. package/dist/api/compiler/pseudo-bigint.js +18 -0
  161. package/dist/api/compiler/regexp-checker.d.ts +1 -1
  162. package/dist/api/compiler/regexp-checker.js +93 -76
  163. package/dist/api/compiler/relations.d.ts +27 -4
  164. package/dist/api/compiler/relations.js +337 -180
  165. package/dist/api/compiler/reparser.js +60 -56
  166. package/dist/api/compiler/scanner.d.ts +19 -2
  167. package/dist/api/compiler/scanner.js +123 -108
  168. package/dist/api/compiler/shared-results.d.ts +463 -0
  169. package/dist/api/compiler/shared-results.js +2128 -0
  170. package/dist/api/compiler/sourcemap.js +2 -2
  171. package/dist/api/compiler/symbol-accessibility.js +87 -74
  172. package/dist/api/compiler/symbol.d.ts +22 -13
  173. package/dist/api/compiler/symbol.js +15 -1
  174. package/dist/api/compiler/syntax-kind.d.ts +198 -197
  175. package/dist/api/compiler/transformers/alias-references.js +247 -139
  176. package/dist/api/compiler/transformers/async-utilities.js +25 -25
  177. package/dist/api/compiler/transformers/async.d.ts +0 -1
  178. package/dist/api/compiler/transformers/async.js +64 -77
  179. package/dist/api/compiler/transformers/class-fields.d.ts +1 -0
  180. package/dist/api/compiler/transformers/class-fields.js +81 -78
  181. package/dist/api/compiler/transformers/commonjs-module.js +18 -15
  182. package/dist/api/compiler/transformers/const-enum-inliner.js +1 -1
  183. package/dist/api/compiler/transformers/declarations-diagnostics.js +247 -244
  184. package/dist/api/compiler/transformers/declarations-pseudo.js +100 -100
  185. package/dist/api/compiler/transformers/declarations-resolver.d.ts +0 -3
  186. package/dist/api/compiler/transformers/declarations-syntactic.d.ts +1 -2
  187. package/dist/api/compiler/transformers/declarations-syntactic.js +134 -156
  188. package/dist/api/compiler/transformers/declarations-tracker.js +18 -18
  189. package/dist/api/compiler/transformers/declarations.d.ts +4 -1
  190. package/dist/api/compiler/transformers/declarations.js +305 -238
  191. package/dist/api/compiler/transformers/decorator-metadata.d.ts +1 -1
  192. package/dist/api/compiler/transformers/decorator-metadata.js +53 -45
  193. package/dist/api/compiler/transformers/decorator-utilities.js +24 -24
  194. package/dist/api/compiler/transformers/destructuring.js +19 -18
  195. package/dist/api/compiler/transformers/emit-resolver.js +1 -1
  196. package/dist/api/compiler/transformers/es-decorators.js +55 -55
  197. package/dist/api/compiler/transformers/external-module-info.js +3 -3
  198. package/dist/api/compiler/transformers/for-await.js +25 -25
  199. package/dist/api/compiler/transformers/import-elision.js +14 -14
  200. package/dist/api/compiler/transformers/jsx.js +12 -12
  201. package/dist/api/compiler/transformers/legacy-decorators.js +17 -17
  202. package/dist/api/compiler/transformers/module.js +8 -8
  203. package/dist/api/compiler/transformers/named-evaluation.js +4 -4
  204. package/dist/api/compiler/transformers/object-rest-spread.js +20 -20
  205. package/dist/api/compiler/transformers/optional-chain.js +10 -10
  206. package/dist/api/compiler/transformers/reference-resolver.d.ts +12 -1
  207. package/dist/api/compiler/transformers/reference-resolver.js +131 -69
  208. package/dist/api/compiler/transformers/runtime-syntax.js +35 -31
  209. package/dist/api/compiler/transformers/subtree-facts.js +47 -47
  210. package/dist/api/compiler/transformers/syntax-facts.js +56 -58
  211. package/dist/api/compiler/transformers/type-eraser.js +73 -66
  212. package/dist/api/compiler/transformers/type-serialization.js +24 -24
  213. package/dist/api/compiler/transformers/using.js +12 -12
  214. package/dist/api/compiler/transformers/utilities.js +77 -77
  215. package/dist/api/compiler/transformers/visitor-base.js +172 -172
  216. package/dist/api/compiler/transformers/visitor-hooks.js +6 -2
  217. package/dist/api/compiler/tsconfig.d.ts +10 -2
  218. package/dist/api/compiler/tsconfig.js +136 -48
  219. package/dist/api/compiler/type-printer.js +40 -3
  220. package/dist/api/compiler/types.d.ts +2 -1
  221. package/dist/api/library/ast.generated.d.ts +42 -39
  222. package/dist/api/library/ast.generated.js +1 -1
  223. package/dist/api/library/compiler-options.generated.d.ts +111 -100
  224. package/dist/api/library/compiler-options.generated.js +1 -1
  225. package/dist/api/library/disk.js +12 -1
  226. package/dist/api/library/enums.generated.d.ts +206 -206
  227. package/dist/api/library/enums.generated.js +206 -206
  228. package/dist/api/library/nodes.js +26 -26
  229. package/package.json +9 -9
  230. package/src/compiler/ast-utilities.ts +99 -7
  231. package/src/compiler/ast.ts +55 -26
  232. package/src/compiler/binder.ts +39 -4
  233. package/src/compiler/character-codes.ts +2 -2
  234. package/src/compiler/checker-calls.ts +76 -8
  235. package/src/compiler/checker-classes.ts +78 -24
  236. package/src/compiler/checker-contextual.ts +6 -1
  237. package/src/compiler/checker-declarations.ts +31 -4
  238. package/src/compiler/checker-declared-types.ts +8 -5
  239. package/src/compiler/checker-decorators.ts +1 -1
  240. package/src/compiler/checker-deprecation.ts +29 -8
  241. package/src/compiler/checker-destructuring.ts +10 -3
  242. package/src/compiler/checker-emit-helpers.ts +1 -0
  243. package/src/compiler/checker-emit-resolver.ts +16 -6
  244. package/src/compiler/checker-expressions.ts +79 -46
  245. package/src/compiler/checker-functions.ts +21 -6
  246. package/src/compiler/checker-generated-code.ts +2 -22
  247. package/src/compiler/checker-grammar.ts +133 -60
  248. package/src/compiler/checker-heritage.ts +22 -21
  249. package/src/compiler/checker-inference.ts +514 -87
  250. package/src/compiler/checker-iteration.ts +18 -31
  251. package/src/compiler/checker-javascript.ts +1 -1
  252. package/src/compiler/checker-jsdoc.ts +50 -27
  253. package/src/compiler/checker-jsx.ts +26 -4
  254. package/src/compiler/checker-members.ts +197 -55
  255. package/src/compiler/checker-modules.ts +332 -65
  256. package/src/compiler/checker-narrowing.ts +98 -19
  257. package/src/compiler/checker-object-literals.ts +3 -0
  258. package/src/compiler/checker-operators.ts +11 -4
  259. package/src/compiler/checker-property-access.ts +7 -2
  260. package/src/compiler/checker-services.ts +39 -12
  261. package/src/compiler/checker-signatures.ts +15 -1
  262. package/src/compiler/checker-source-file.ts +39 -13
  263. package/src/compiler/checker-statements.ts +3 -2
  264. package/src/compiler/checker-symbol-types.ts +29 -6
  265. package/src/compiler/checker-symbols.ts +158 -15
  266. package/src/compiler/checker-type-factory.ts +120 -21
  267. package/src/compiler/checker-type-nodes.ts +46 -3
  268. package/src/compiler/checker-type-operators.ts +83 -26
  269. package/src/compiler/checker-types.ts +147 -4
  270. package/src/compiler/checker-unused.ts +9 -14
  271. package/src/compiler/checker.ts +168 -41
  272. package/src/compiler/command-line.ts +28 -28
  273. package/src/compiler/compile-program.ts +51 -25
  274. package/src/compiler/decoder.ts +13 -4
  275. package/src/compiler/diagnostic-messages.ts +1973 -1892
  276. package/src/compiler/emitter.ts +57 -8
  277. package/src/compiler/encoder.ts +23 -8
  278. package/src/compiler/file-include.ts +9 -3
  279. package/src/compiler/file-loader.ts +139 -32
  280. package/src/compiler/help.ts +10 -14
  281. package/src/compiler/incremental.ts +86 -18
  282. package/src/compiler/init.ts +2 -7
  283. package/src/compiler/instantiation.ts +77 -22
  284. package/src/compiler/jsdoc.ts +3 -1
  285. package/src/compiler/link-tables.ts +82 -37
  286. package/src/compiler/locales/cs-CZ.ts +1 -1
  287. package/src/compiler/locales/de-DE.ts +1 -1
  288. package/src/compiler/locales/es-ES.ts +1 -1
  289. package/src/compiler/locales/fr-FR.ts +1 -1
  290. package/src/compiler/locales/it-IT.ts +1 -1
  291. package/src/compiler/locales/ja-JP.ts +1 -1
  292. package/src/compiler/locales/ko-KR.ts +1 -1
  293. package/src/compiler/locales/pl-PL.ts +1 -1
  294. package/src/compiler/locales/pt-BR.ts +1 -1
  295. package/src/compiler/locales/ru-RU.ts +1 -1
  296. package/src/compiler/locales/tr-TR.ts +1 -1
  297. package/src/compiler/locales/zh-CN.ts +1 -1
  298. package/src/compiler/locales/zh-TW.ts +1 -1
  299. package/src/compiler/module-resolution.ts +44 -8
  300. package/src/compiler/module-specifiers.ts +62 -20
  301. package/src/compiler/name-resolver.ts +9 -1
  302. package/src/compiler/node-builder-names.ts +236 -54
  303. package/src/compiler/node-builder-pseudo.ts +4 -7
  304. package/src/compiler/node-builder-reuse.ts +5 -4
  305. package/src/compiler/node-builder.ts +130 -31
  306. package/src/compiler/option-declarations.ts +33 -103
  307. package/src/compiler/options.ts +23 -62
  308. package/src/compiler/output-paths.ts +5 -18
  309. package/src/compiler/package-entrypoints.ts +345 -0
  310. package/src/compiler/package-json.ts +4 -4
  311. package/src/compiler/parallel-check.ts +197 -8
  312. package/src/compiler/parallel-emit.ts +1 -1
  313. package/src/compiler/parser.ts +156 -39
  314. package/src/compiler/path.ts +22 -2
  315. package/src/compiler/printer/emit-context.ts +16 -0
  316. package/src/compiler/printer/factory-base.ts +10 -3
  317. package/src/compiler/printer/factory.ts +4 -1
  318. package/src/compiler/printer/helpers.ts +10 -1
  319. package/src/compiler/printer/name-generator.ts +24 -2
  320. package/src/compiler/printer/printer.ts +35 -14
  321. package/src/compiler/printer/utilities.ts +8 -2
  322. package/src/compiler/program-checker.ts +53 -5
  323. package/src/compiler/program-utilities.ts +23 -10
  324. package/src/compiler/program.ts +13 -1
  325. package/src/compiler/pseudo-bigint.ts +17 -0
  326. package/src/compiler/regexp-checker.ts +63 -30
  327. package/src/compiler/relations.ts +233 -77
  328. package/src/compiler/reparser.ts +7 -2
  329. package/src/compiler/scanner.ts +109 -79
  330. package/src/compiler/shared-results.ts +2414 -0
  331. package/src/compiler/show-config.ts +18 -1
  332. package/src/compiler/sourcemap.ts +2 -2
  333. package/src/compiler/symbol-accessibility.ts +26 -3
  334. package/src/compiler/symbol.ts +31 -14
  335. package/src/compiler/syntax-kind.ts +188 -187
  336. package/src/compiler/thread-entry.ts +19 -2
  337. package/src/compiler/transformers/alias-references.ts +123 -4
  338. package/src/compiler/transformers/async.ts +2 -17
  339. package/src/compiler/transformers/class-fields.ts +13 -12
  340. package/src/compiler/transformers/commonjs-module.ts +11 -7
  341. package/src/compiler/transformers/declarations-diagnostics.ts +5 -3
  342. package/src/compiler/transformers/declarations-pseudo.ts +2 -4
  343. package/src/compiler/transformers/declarations-resolver.ts +0 -3
  344. package/src/compiler/transformers/declarations-syntactic.ts +1 -21
  345. package/src/compiler/transformers/declarations.ts +134 -48
  346. package/src/compiler/transformers/decorator-metadata.ts +9 -1
  347. package/src/compiler/transformers/destructuring.ts +4 -3
  348. package/src/compiler/transformers/external-module-info.ts +1 -1
  349. package/src/compiler/transformers/jsx.ts +2 -1
  350. package/src/compiler/transformers/reference-resolver.ts +83 -19
  351. package/src/compiler/transformers/runtime-syntax.ts +6 -1
  352. package/src/compiler/transformers/syntax-facts.ts +2 -7
  353. package/src/compiler/transformers/type-eraser.ts +10 -1
  354. package/src/compiler/transformers/type-serialization.ts +3 -2
  355. package/src/compiler/transformers/visitor-base.ts +2 -1
  356. package/src/compiler/transformers/visitor-hooks.ts +9 -4
  357. package/src/compiler/tsc-build.ts +3 -0
  358. package/src/compiler/tsc-cli.ts +2 -0
  359. package/src/compiler/tsc-compile.ts +7 -2
  360. package/src/compiler/tsc-watch.ts +74 -45
  361. package/src/compiler/tsconfig.ts +176 -19
  362. package/src/compiler/type-printer.ts +36 -2
  363. package/src/compiler/types.ts +2 -1
  364. package/src/library/ast.generated.ts +57 -41
  365. package/src/library/compiler-options.generated.ts +117 -103
  366. package/src/library/disk.ts +10 -1
  367. package/src/library/enums.generated.ts +196 -196
@@ -21,6 +21,7 @@ import {
21
21
  isIncremental,
22
22
  shouldPreserveConstEnums,
23
23
  type CompilerOptions,
24
+ type PluginImport,
24
25
  } from './options.js';
25
26
  import { getDirectoryPath, getNormalizedAbsolutePath, getRelativePathFromFile } from './path.js';
26
27
 
@@ -45,6 +46,8 @@ const hiddenOptions = new Set([
45
46
  'init',
46
47
  'listFilesOnly',
47
48
  'listEmittedFiles',
49
+ // TypeScript 7.1's generated serializer has no `listFiles`.
50
+ 'listFiles',
48
51
  'project',
49
52
  'build',
50
53
  'version',
@@ -85,7 +88,12 @@ export function showConfig(input: ShowConfigInput, configFileName: string): stri
85
88
  if (option === undefined || hiddenOptions.has(option.name)) continue;
86
89
  if (option.category === Diagnostics.Command_line_Options || option.category === Diagnostics.Output_Formatting)
87
90
  continue;
88
- const json = name === 'paths' ? pathsJson(input.options.paths) : optionJson(option, input.options, paths);
91
+ const json =
92
+ name === 'paths'
93
+ ? pathsJson(input.options.paths)
94
+ : name === 'plugins'
95
+ ? pluginsJson(input.options.plugins)
96
+ : optionJson(option, input.options, paths);
89
97
  if (json !== undefined) shown.set(option.name, json);
90
98
  }
91
99
 
@@ -228,6 +236,15 @@ function jsonArray(items: readonly string[], level: number): string {
228
236
  return '[\n' + inner + items.map((item) => JSON.stringify(item)).join(',\n' + inner) + '\n' + indent(level) + ']';
229
237
  }
230
238
 
239
+ function pluginsJson(plugins: readonly PluginImport[] | undefined): string | undefined {
240
+ if (plugins === undefined) return undefined;
241
+ if (plugins.length === 0) return '[]';
242
+ const items = plugins.map(
243
+ (plugin) => indent(3) + '{\n' + indent(4) + '"name": ' + JSON.stringify(plugin.name) + '\n' + indent(3) + '}',
244
+ );
245
+ return '[\n' + items.join(',\n') + '\n' + indent(2) + ']';
246
+ }
247
+
231
248
  function pathsJson(paths: ReadonlyMap<string, readonly string[] | undefined> | undefined): string | undefined {
232
249
  if (paths === undefined) return undefined;
233
250
  if (paths.size === 0) return '{}';
@@ -255,8 +255,8 @@ export class SourceMapGenerator {
255
255
  let json =
256
256
  '{"version":3,"file":' +
257
257
  jsonString(this.file) +
258
- ',"sourceRoot":' +
259
- jsonString(this.sourceRoot) +
258
+ // An empty source root is left out, as tsgo's `omitzero` does.
259
+ (this.sourceRoot === '' ? '' : ',"sourceRoot":' + jsonString(this.sourceRoot)) +
260
260
  ',"sources":' +
261
261
  jsonStrings(this.sources) +
262
262
  ',"names":' +
@@ -39,7 +39,11 @@ import { type Checker, ExternalModuleContainerIndex, SymbolAccessibilityCaches,
39
39
  import { getEffectiveDeclarationFlags } from './checker-declarations.js';
40
40
  import { getDeclaredTypeOfSymbol } from './checker-declared-types.js';
41
41
  import { checkExpressionCached } from './checker-expressions.js';
42
- import { resolveExternalModuleName, resolveExternalModuleSymbol } from './checker-modules.js';
42
+ import {
43
+ getImportAttributesTypeForModuleSpecifier,
44
+ resolveExternalModuleName,
45
+ resolveExternalModuleSymbol,
46
+ } from './checker-modules.js';
43
47
  import {
44
48
  getExportsOfSymbol,
45
49
  getMergedSymbol,
@@ -351,7 +355,13 @@ function getAlternativeContainingModules(c: Checker, symbol: Symbol, enclosingDe
351
355
  for (const importRef of containingFile.imports) {
352
356
  // Synthesized specifiers can't be resolved.
353
357
  if ((importRef.flags & NodeFlags.Synthesized) !== 0) continue;
354
- const resolvedModule = resolveExternalModuleName(c, enclosingDeclaration, importRef, true);
358
+ const resolvedModule = resolveExternalModuleName(
359
+ c,
360
+ enclosingDeclaration,
361
+ importRef,
362
+ true,
363
+ getImportAttributesTypeForModuleSpecifier(c, importRef),
364
+ );
355
365
  if (resolvedModule === undefined) continue;
356
366
  if (getAliasForSymbolInContainer(c, resolvedModule, symbol) === undefined) continue;
357
367
  results.push(resolvedModule);
@@ -718,11 +728,24 @@ class ChainSearch {
718
728
  isAccessible(fromTable: Symbol, resolvedAlias: Symbol | undefined, ignoreQualification: boolean): boolean {
719
729
  const c = this.c;
720
730
  const symbol = getMergedSymbol(c, this.symbol);
721
- const likeSymbols =
731
+ let likeSymbols =
722
732
  this.symbol === resolvedAlias ||
723
733
  this.symbol === fromTable ||
724
734
  (resolvedAlias !== undefined && symbol === getMergedSymbol(c, resolvedAlias)) ||
725
735
  symbol === getMergedSymbol(c, fromTable);
736
+ // An alias of an alias, such as `export =` of a class that a top-level export also names, resolves further.
737
+ if (!likeSymbols && resolvedAlias !== undefined && (resolvedAlias.flags & SymbolFlags.Alias) !== 0) {
738
+ const seen = new Set<Symbol>();
739
+ let alias = resolvedAlias;
740
+ while ((alias.flags & SymbolFlags.Alias) !== 0 && !seen.has(alias)) {
741
+ seen.add(alias);
742
+ alias = getMergedSymbol(c, resolveAlias(c, alias));
743
+ if (symbol === alias) {
744
+ likeSymbols = true;
745
+ break;
746
+ }
747
+ }
748
+ }
726
749
  if (!likeSymbols) return false;
727
750
  // An external module in the global table isn't accessible by name; otherwise the name must be qualifiable.
728
751
  return (
@@ -124,22 +124,26 @@ export const enum CheckFlags {
124
124
  ContainsPublic = 1 << 8,
125
125
  ContainsProtected = 1 << 9,
126
126
  ContainsPrivate = 1 << 10,
127
- ContainsStatic = 1 << 11,
127
+ /** A synthetic property with public, protected or private write access in a constituent. */
128
+ ContainsWritePublic = 1 << 11,
129
+ ContainsWriteProtected = 1 << 12,
130
+ ContainsWritePrivate = 1 << 13,
131
+ ContainsStatic = 1 << 14,
128
132
  /** Late-bound from a computed property name. */
129
- Late = 1 << 12,
130
- ReverseMapped = 1 << 13,
131
- OptionalParameter = 1 << 14,
132
- RestParameter = 1 << 15,
133
+ Late = 1 << 15,
134
+ ReverseMapped = 1 << 16,
135
+ OptionalParameter = 1 << 17,
136
+ RestParameter = 1 << 18,
133
137
  /** The type is computed on demand. */
134
- DeferredType = 1 << 16,
135
- HasNeverType = 1 << 17,
136
- Mapped = 1 << 18,
137
- StripOptional = 1 << 19,
138
- Unresolved = 1 << 20,
139
- IsDiscriminantComputed = 1 << 21,
140
- IsDiscriminant = 1 << 22,
138
+ DeferredType = 1 << 19,
139
+ HasNeverType = 1 << 20,
140
+ Mapped = 1 << 21,
141
+ StripOptional = 1 << 22,
142
+ Unresolved = 1 << 23,
143
+ IsDiscriminantComputed = 1 << 24,
144
+ IsDiscriminant = 1 << 25,
141
145
  /** Created from an index signature. */
142
- IndexSymbol = 1 << 23,
146
+ IndexSymbol = 1 << 26,
143
147
  Synthetic = SyntheticProperty | SyntheticMethod,
144
148
  NonUniformAndLiteral = HasNonUniformType | HasLiteralType,
145
149
  Partial = ReadPartial | WritePartial,
@@ -320,7 +324,7 @@ export class Symbol implements ProgramLifetime {
320
324
 
321
325
  /** Whether this is the symbol of an external module, named by its quoted path. */
322
326
  isExternalModule(): boolean {
323
- return (this.flags & SymbolFlags.Module) !== 0 && this.name.charCodeAt(0) === 0x22;
327
+ return (this.flags & SymbolFlags.Module) !== 0 && tryGetAmbientModuleNameFromSymbolName(this.name) !== undefined;
324
328
  }
325
329
 
326
330
  /** The flags of this symbol and its export symbol. */
@@ -504,6 +508,19 @@ export function getMembers(symbol: Symbol): SymbolTable {
504
508
  */
505
509
  export const internalSymbolNamePrefix = '￾';
506
510
 
511
+ /**
512
+ * The module name of an ambient module symbol's name: `"name"`, or for a pattern module with import
513
+ * attributes, the internal symbol name prefix, `"name"pattern@` and the id of the attributes node.
514
+ */
515
+ export function tryGetAmbientModuleNameFromSymbolName(name: string): string | undefined {
516
+ if (name.length >= 2 && name.charCodeAt(0) === 0x22 && name.charCodeAt(name.length - 1) === 0x22)
517
+ return name.substring(1, name.length - 1);
518
+ if (!name.startsWith(internalSymbolNamePrefix + '"')) return undefined;
519
+ const markerIndex = name.lastIndexOf('"pattern@');
520
+ if (markerIndex < internalSymbolNamePrefix.length + 2) return undefined;
521
+ return name.substring(internalSymbolNamePrefix.length + 1, markerIndex);
522
+ }
523
+
507
524
  export const enum InternalSymbolName {
508
525
  /** Call signatures. */
509
526
  Call = '￾call',
@@ -169,191 +169,192 @@ export const enum SyntaxKind {
169
169
  OverrideKeyword = 164,
170
170
  OfKeyword = 165,
171
171
  DeferKeyword = 166,
172
- QualifiedName = 167,
173
- ComputedPropertyName = 168,
174
- TypeParameter = 169,
175
- Parameter = 170,
176
- Decorator = 171,
177
- PropertySignature = 172,
178
- PropertyDeclaration = 173,
179
- MethodSignature = 174,
180
- MethodDeclaration = 175,
181
- ClassStaticBlockDeclaration = 176,
182
- Constructor = 177,
183
- GetAccessor = 178,
184
- SetAccessor = 179,
185
- CallSignature = 180,
186
- ConstructSignature = 181,
187
- IndexSignature = 182,
188
- TypePredicate = 183,
189
- TypeReference = 184,
190
- FunctionType = 185,
191
- ConstructorType = 186,
192
- TypeQuery = 187,
193
- TypeLiteral = 188,
194
- ArrayType = 189,
195
- TupleType = 190,
196
- OptionalType = 191,
197
- RestType = 192,
198
- UnionType = 193,
199
- IntersectionType = 194,
200
- ConditionalType = 195,
201
- InferType = 196,
202
- ParenthesizedType = 197,
203
- ThisType = 198,
204
- TypeOperator = 199,
205
- IndexedAccessType = 200,
206
- MappedType = 201,
207
- LiteralType = 202,
208
- NamedTupleMember = 203,
209
- TemplateLiteralType = 204,
210
- TemplateLiteralTypeSpan = 205,
211
- ImportType = 206,
212
- ObjectBindingPattern = 207,
213
- ArrayBindingPattern = 208,
214
- BindingElement = 209,
215
- ArrayLiteralExpression = 210,
216
- ObjectLiteralExpression = 211,
217
- PropertyAccessExpression = 212,
218
- ElementAccessExpression = 213,
219
- CallExpression = 214,
220
- NewExpression = 215,
221
- TaggedTemplateExpression = 216,
222
- TypeAssertionExpression = 217,
223
- ParenthesizedExpression = 218,
224
- FunctionExpression = 219,
225
- ArrowFunction = 220,
226
- DeleteExpression = 221,
227
- TypeOfExpression = 222,
228
- VoidExpression = 223,
229
- AwaitExpression = 224,
230
- PrefixUnaryExpression = 225,
231
- PostfixUnaryExpression = 226,
232
- BinaryExpression = 227,
233
- ConditionalExpression = 228,
234
- TemplateExpression = 229,
235
- YieldExpression = 230,
236
- SpreadElement = 231,
237
- ClassExpression = 232,
238
- OmittedExpression = 233,
239
- ExpressionWithTypeArguments = 234,
240
- AsExpression = 235,
241
- NonNullExpression = 236,
242
- MetaProperty = 237,
243
- SyntheticExpression = 238,
244
- SatisfiesExpression = 239,
245
- TemplateSpan = 240,
246
- SemicolonClassElement = 241,
247
- Block = 242,
248
- EmptyStatement = 243,
249
- VariableStatement = 244,
250
- ExpressionStatement = 245,
251
- IfStatement = 246,
252
- DoStatement = 247,
253
- WhileStatement = 248,
254
- ForStatement = 249,
255
- ForInStatement = 250,
256
- ForOfStatement = 251,
257
- ContinueStatement = 252,
258
- BreakStatement = 253,
259
- ReturnStatement = 254,
260
- WithStatement = 255,
261
- SwitchStatement = 256,
262
- LabeledStatement = 257,
263
- ThrowStatement = 258,
264
- TryStatement = 259,
265
- DebuggerStatement = 260,
266
- VariableDeclaration = 261,
267
- VariableDeclarationList = 262,
268
- FunctionDeclaration = 263,
269
- ClassDeclaration = 264,
270
- InterfaceDeclaration = 265,
271
- TypeAliasDeclaration = 266,
272
- EnumDeclaration = 267,
273
- ModuleDeclaration = 268,
274
- ModuleBlock = 269,
275
- CaseBlock = 270,
276
- NamespaceExportDeclaration = 271,
277
- ImportEqualsDeclaration = 272,
278
- ImportDeclaration = 273,
279
- ImportClause = 274,
280
- NamespaceImport = 275,
281
- NamedImports = 276,
282
- ImportSpecifier = 277,
283
- ExportAssignment = 278,
284
- ExportDeclaration = 279,
285
- NamedExports = 280,
286
- NamespaceExport = 281,
287
- ExportSpecifier = 282,
288
- MissingDeclaration = 283,
289
- ExternalModuleReference = 284,
290
- JsxElement = 285,
291
- JsxSelfClosingElement = 286,
292
- JsxOpeningElement = 287,
293
- JsxClosingElement = 288,
294
- JsxFragment = 289,
295
- JsxOpeningFragment = 290,
296
- JsxClosingFragment = 291,
297
- JsxAttribute = 292,
298
- JsxAttributes = 293,
299
- JsxSpreadAttribute = 294,
300
- JsxExpression = 295,
301
- JsxNamespacedName = 296,
302
- CaseClause = 297,
303
- DefaultClause = 298,
304
- HeritageClause = 299,
305
- CatchClause = 300,
306
- ImportAttributes = 301,
307
- ImportAttribute = 302,
308
- PropertyAssignment = 303,
309
- ShorthandPropertyAssignment = 304,
310
- SpreadAssignment = 305,
311
- EnumMember = 306,
312
- SourceFile = 307,
313
- JSDocTypeExpression = 308,
314
- JSDocNameReference = 309,
315
- JSDocAllType = 310,
316
- JSDocNullableType = 311,
317
- JSDocNonNullableType = 312,
318
- JSDocOptionalType = 313,
319
- JSDocVariadicType = 314,
320
- JSDoc = 315,
321
- JSDocText = 316,
322
- JSDocTypeLiteral = 317,
323
- JSDocSignature = 318,
324
- JSDocLink = 319,
325
- JSDocLinkCode = 320,
326
- JSDocLinkPlain = 321,
327
- JSDocUnknownTag = 322,
328
- JSDocAugmentsTag = 323,
329
- JSDocImplementsTag = 324,
330
- JSDocDeprecatedTag = 325,
331
- JSDocPublicTag = 326,
332
- JSDocPrivateTag = 327,
333
- JSDocProtectedTag = 328,
334
- JSDocReadonlyTag = 329,
335
- JSDocOverrideTag = 330,
336
- JSDocCallbackTag = 331,
337
- JSDocOverloadTag = 332,
338
- JSDocParameterTag = 333,
339
- JSDocReturnTag = 334,
340
- JSDocThisTag = 335,
341
- JSDocTypeTag = 336,
342
- JSDocTemplateTag = 337,
343
- JSDocTypedefTag = 338,
344
- JSDocSeeTag = 339,
345
- JSDocPropertyTag = 340,
346
- JSDocThrowsTag = 341,
347
- JSDocSatisfiesTag = 342,
348
- JSDocImportTag = 343,
349
- SyntaxList = 344,
350
- JSTypeAliasDeclaration = 345,
351
- JSImportDeclaration = 346,
352
- NotEmittedStatement = 347,
353
- PartiallyEmittedExpression = 348,
354
- SyntheticReferenceExpression = 349,
355
- NotEmittedTypeElement = 350,
356
- Count = 351,
172
+ SourceKeyword = 167,
173
+ QualifiedName = 168,
174
+ ComputedPropertyName = 169,
175
+ TypeParameter = 170,
176
+ Parameter = 171,
177
+ Decorator = 172,
178
+ PropertySignature = 173,
179
+ PropertyDeclaration = 174,
180
+ MethodSignature = 175,
181
+ MethodDeclaration = 176,
182
+ ClassStaticBlockDeclaration = 177,
183
+ Constructor = 178,
184
+ GetAccessor = 179,
185
+ SetAccessor = 180,
186
+ CallSignature = 181,
187
+ ConstructSignature = 182,
188
+ IndexSignature = 183,
189
+ TypePredicate = 184,
190
+ TypeReference = 185,
191
+ FunctionType = 186,
192
+ ConstructorType = 187,
193
+ TypeQuery = 188,
194
+ TypeLiteral = 189,
195
+ ArrayType = 190,
196
+ TupleType = 191,
197
+ OptionalType = 192,
198
+ RestType = 193,
199
+ UnionType = 194,
200
+ IntersectionType = 195,
201
+ ConditionalType = 196,
202
+ InferType = 197,
203
+ ParenthesizedType = 198,
204
+ ThisType = 199,
205
+ TypeOperator = 200,
206
+ IndexedAccessType = 201,
207
+ MappedType = 202,
208
+ LiteralType = 203,
209
+ NamedTupleMember = 204,
210
+ TemplateLiteralType = 205,
211
+ TemplateLiteralTypeSpan = 206,
212
+ ImportType = 207,
213
+ ObjectBindingPattern = 208,
214
+ ArrayBindingPattern = 209,
215
+ BindingElement = 210,
216
+ ArrayLiteralExpression = 211,
217
+ ObjectLiteralExpression = 212,
218
+ PropertyAccessExpression = 213,
219
+ ElementAccessExpression = 214,
220
+ CallExpression = 215,
221
+ NewExpression = 216,
222
+ TaggedTemplateExpression = 217,
223
+ TypeAssertionExpression = 218,
224
+ ParenthesizedExpression = 219,
225
+ FunctionExpression = 220,
226
+ ArrowFunction = 221,
227
+ DeleteExpression = 222,
228
+ TypeOfExpression = 223,
229
+ VoidExpression = 224,
230
+ AwaitExpression = 225,
231
+ PrefixUnaryExpression = 226,
232
+ PostfixUnaryExpression = 227,
233
+ BinaryExpression = 228,
234
+ ConditionalExpression = 229,
235
+ TemplateExpression = 230,
236
+ YieldExpression = 231,
237
+ SpreadElement = 232,
238
+ ClassExpression = 233,
239
+ OmittedExpression = 234,
240
+ ExpressionWithTypeArguments = 235,
241
+ AsExpression = 236,
242
+ NonNullExpression = 237,
243
+ MetaProperty = 238,
244
+ SyntheticExpression = 239,
245
+ SatisfiesExpression = 240,
246
+ TemplateSpan = 241,
247
+ SemicolonClassElement = 242,
248
+ Block = 243,
249
+ EmptyStatement = 244,
250
+ VariableStatement = 245,
251
+ ExpressionStatement = 246,
252
+ IfStatement = 247,
253
+ DoStatement = 248,
254
+ WhileStatement = 249,
255
+ ForStatement = 250,
256
+ ForInStatement = 251,
257
+ ForOfStatement = 252,
258
+ ContinueStatement = 253,
259
+ BreakStatement = 254,
260
+ ReturnStatement = 255,
261
+ WithStatement = 256,
262
+ SwitchStatement = 257,
263
+ LabeledStatement = 258,
264
+ ThrowStatement = 259,
265
+ TryStatement = 260,
266
+ DebuggerStatement = 261,
267
+ VariableDeclaration = 262,
268
+ VariableDeclarationList = 263,
269
+ FunctionDeclaration = 264,
270
+ ClassDeclaration = 265,
271
+ InterfaceDeclaration = 266,
272
+ TypeAliasDeclaration = 267,
273
+ EnumDeclaration = 268,
274
+ ModuleDeclaration = 269,
275
+ ModuleBlock = 270,
276
+ CaseBlock = 271,
277
+ NamespaceExportDeclaration = 272,
278
+ ImportEqualsDeclaration = 273,
279
+ ImportDeclaration = 274,
280
+ ImportClause = 275,
281
+ NamespaceImport = 276,
282
+ NamedImports = 277,
283
+ ImportSpecifier = 278,
284
+ ExportAssignment = 279,
285
+ ExportDeclaration = 280,
286
+ NamedExports = 281,
287
+ NamespaceExport = 282,
288
+ ExportSpecifier = 283,
289
+ MissingDeclaration = 284,
290
+ ExternalModuleReference = 285,
291
+ JsxElement = 286,
292
+ JsxSelfClosingElement = 287,
293
+ JsxOpeningElement = 288,
294
+ JsxClosingElement = 289,
295
+ JsxFragment = 290,
296
+ JsxOpeningFragment = 291,
297
+ JsxClosingFragment = 292,
298
+ JsxAttribute = 293,
299
+ JsxAttributes = 294,
300
+ JsxSpreadAttribute = 295,
301
+ JsxExpression = 296,
302
+ JsxNamespacedName = 297,
303
+ CaseClause = 298,
304
+ DefaultClause = 299,
305
+ HeritageClause = 300,
306
+ CatchClause = 301,
307
+ ImportAttributes = 302,
308
+ ImportAttribute = 303,
309
+ PropertyAssignment = 304,
310
+ ShorthandPropertyAssignment = 305,
311
+ SpreadAssignment = 306,
312
+ EnumMember = 307,
313
+ SourceFile = 308,
314
+ JSDocTypeExpression = 309,
315
+ JSDocNameReference = 310,
316
+ JSDocAllType = 311,
317
+ JSDocNullableType = 312,
318
+ JSDocNonNullableType = 313,
319
+ JSDocOptionalType = 314,
320
+ JSDocVariadicType = 315,
321
+ JSDoc = 316,
322
+ JSDocText = 317,
323
+ JSDocTypeLiteral = 318,
324
+ JSDocSignature = 319,
325
+ JSDocLink = 320,
326
+ JSDocLinkCode = 321,
327
+ JSDocLinkPlain = 322,
328
+ JSDocUnknownTag = 323,
329
+ JSDocAugmentsTag = 324,
330
+ JSDocImplementsTag = 325,
331
+ JSDocDeprecatedTag = 326,
332
+ JSDocPublicTag = 327,
333
+ JSDocPrivateTag = 328,
334
+ JSDocProtectedTag = 329,
335
+ JSDocReadonlyTag = 330,
336
+ JSDocOverrideTag = 331,
337
+ JSDocCallbackTag = 332,
338
+ JSDocOverloadTag = 333,
339
+ JSDocParameterTag = 334,
340
+ JSDocReturnTag = 335,
341
+ JSDocThisTag = 336,
342
+ JSDocTypeTag = 337,
343
+ JSDocTemplateTag = 338,
344
+ JSDocTypedefTag = 339,
345
+ JSDocSeeTag = 340,
346
+ JSDocPropertyTag = 341,
347
+ JSDocThrowsTag = 342,
348
+ JSDocSatisfiesTag = 343,
349
+ JSDocImportTag = 344,
350
+ SyntaxList = 345,
351
+ JSTypeAliasDeclaration = 346,
352
+ JSImportDeclaration = 347,
353
+ NotEmittedStatement = 348,
354
+ PartiallyEmittedExpression = 349,
355
+ SyntheticReferenceExpression = 350,
356
+ NotEmittedTypeElement = 351,
357
+ Count = 352,
357
358
  FirstAssignment = EqualsToken,
358
359
  LastAssignment = CaretEqualsToken,
359
360
  FirstCompoundAssignment = PlusEqualsToken,
@@ -361,7 +362,7 @@ export const enum SyntaxKind {
361
362
  FirstReservedWord = BreakKeyword,
362
363
  LastReservedWord = WithKeyword,
363
364
  FirstKeyword = BreakKeyword,
364
- LastKeyword = DeferKeyword,
365
+ LastKeyword = SourceKeyword,
365
366
  FirstFutureReservedWord = ImplementsKeyword,
366
367
  LastFutureReservedWord = YieldKeyword,
367
368
  FirstTypeNode = TypePredicate,
@@ -384,7 +385,7 @@ export const enum SyntaxKind {
384
385
  FirstJSDocTagNode = JSDocUnknownTag,
385
386
  LastJSDocTagNode = JSDocImportTag,
386
387
  FirstContextualKeyword = AbstractKeyword,
387
- LastContextualKeyword = DeferKeyword,
388
+ LastContextualKeyword = SourceKeyword,
388
389
  LastUnaryOperator = TildeToken,
389
390
  FirstTriviaToken = SingleLineCommentTrivia,
390
391
  LastTriviaToken = ConflictMarkerTrivia,
@@ -24,6 +24,7 @@ import { CheckedProgram } from './program-checker.js';
24
24
  import type { Program } from './program.js';
25
25
  import { assignSymbolIdsAtCreation, reserveSymbolIds, shareSymbolIds } from './symbol.js';
26
26
  import { mark, setTimelineThread } from './timeline.js';
27
+ import { setThreadSharingData, type ThreadSharingData } from './shared-results.js';
27
28
 
28
29
  /** What threads need from the command line that starts them. */
29
30
  export interface ThreadDrivers {
@@ -56,8 +57,12 @@ export interface CheckerThreadData {
56
57
  readonly emitKinds: number[] | undefined;
57
58
  readonly checking: boolean;
58
59
  readonly units: number[];
60
+ /** See `CheckedProgram.globalsInFileDiagnostics`. */
61
+ readonly globalsInFileDiagnostics: boolean;
59
62
  /** The main thread's report format (`formattedReports`), which the thread formats its diagnostics in. */
60
63
  readonly reportFormat: DiagnosticFormatOptions | undefined;
64
+ /** TSC_TS_SHARE: what the thread shares results with the other checker threads through. */
65
+ readonly sharing: ThreadSharingData | undefined;
61
66
  }
62
67
 
63
68
  export interface EmitThreadData {
@@ -103,6 +108,8 @@ export function startThreads(spawn: ThreadSpawn, drivers: ThreadDrivers, args: r
103
108
  emitKinds,
104
109
  checking,
105
110
  units,
111
+ globalsInFileDiagnostics,
112
+ sharing,
106
113
  ) =>
107
114
  spawn({
108
115
  kind: 'check',
@@ -118,7 +125,9 @@ export function startThreads(spawn: ThreadSpawn, drivers: ThreadDrivers, args: r
118
125
  emitKinds,
119
126
  checking,
120
127
  units,
128
+ globalsInFileDiagnostics,
121
129
  reportFormat: formattedReports.format,
130
+ sharing,
122
131
  });
123
132
  if (sharesPublishedGraphs) {
124
133
  parallelEmit.spawn = (program, index, counter, files, kinds, nodeIds, symbolIds) =>
@@ -203,11 +212,18 @@ function runCheckerThread(job: CheckerThreadData, drivers: ThreadDrivers): void
203
212
  mark('program received');
204
213
  } else program = drivers.programOfCommandLine(job.args);
205
214
  // Without a program this thread checks nothing; the main thread checks the files it would have.
215
+ let checked: CheckedProgram | undefined = undefined;
216
+ if (program !== undefined) {
217
+ // The checker the program creates shares results with the other checker threads.
218
+ setThreadSharingData(job.sharing);
219
+ checked = new CheckedProgram(program);
220
+ checked.globalsInFileDiagnostics = job.globalsInFileDiagnostics;
221
+ }
206
222
  const result =
207
- program === undefined
223
+ checked === undefined
208
224
  ? new CheckerResult(job.index, [], [], [], [], 0, [])
209
225
  : checkFromQueue(
210
- new CheckedProgram(program),
226
+ checked,
211
227
  job.index,
212
228
  new Int32Array(job.counter),
213
229
  job.order,
@@ -219,6 +235,7 @@ function runCheckerThread(job: CheckerThreadData, drivers: ThreadDrivers): void
219
235
  job.emitKinds,
220
236
  job.checking,
221
237
  job.units,
238
+ job.sharing,
222
239
  );
223
240
  // Packed results are copied: nothing this thread allocated stays reachable after it ends.
224
241
  if (packsResults) parentPort!.postMessage(packResult(result, program!));