tsc-ts 0.0.9 → 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 (373) hide show
  1. package/README.md +2 -2
  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 +22 -15
  6. package/dist/api/compiler/ast.js +1026 -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 +178 -124
  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 +472 -440
  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 -107
  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 +212 -75
  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 +145 -36
  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 +104 -31
  73. package/dist/api/compiler/checker.js +181 -33
  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 +42 -3
  77. package/dist/api/compiler/compile-program.js +139 -27
  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.d.ts +22 -0
  81. package/dist/api/compiler/diagnostics.js +93 -11
  82. package/dist/api/compiler/emitter.d.ts +7 -1
  83. package/dist/api/compiler/emitter.js +53 -11
  84. package/dist/api/compiler/file-include.d.ts +2 -1
  85. package/dist/api/compiler/file-include.js +11 -7
  86. package/dist/api/compiler/file-loader.d.ts +21 -1
  87. package/dist/api/compiler/file-loader.js +201 -48
  88. package/dist/api/compiler/instantiation.d.ts +7 -0
  89. package/dist/api/compiler/instantiation.js +101 -49
  90. package/dist/api/compiler/jsdoc.js +23 -23
  91. package/dist/api/compiler/link-tables.d.ts +48 -18
  92. package/dist/api/compiler/link-tables.js +80 -37
  93. package/dist/api/compiler/locales/cs-CZ.d.ts +1 -1
  94. package/dist/api/compiler/locales/cs-CZ.js +1 -1
  95. package/dist/api/compiler/locales/de-DE.d.ts +1 -1
  96. package/dist/api/compiler/locales/de-DE.js +1 -1
  97. package/dist/api/compiler/locales/es-ES.d.ts +1 -1
  98. package/dist/api/compiler/locales/es-ES.js +1 -1
  99. package/dist/api/compiler/locales/fr-FR.d.ts +1 -1
  100. package/dist/api/compiler/locales/fr-FR.js +1 -1
  101. package/dist/api/compiler/locales/it-IT.d.ts +1 -1
  102. package/dist/api/compiler/locales/it-IT.js +1 -1
  103. package/dist/api/compiler/locales/ja-JP.d.ts +1 -1
  104. package/dist/api/compiler/locales/ja-JP.js +1 -1
  105. package/dist/api/compiler/locales/ko-KR.d.ts +1 -1
  106. package/dist/api/compiler/locales/ko-KR.js +1 -1
  107. package/dist/api/compiler/locales/pl-PL.d.ts +1 -1
  108. package/dist/api/compiler/locales/pl-PL.js +1 -1
  109. package/dist/api/compiler/locales/pt-BR.d.ts +1 -1
  110. package/dist/api/compiler/locales/pt-BR.js +1 -1
  111. package/dist/api/compiler/locales/ru-RU.d.ts +1 -1
  112. package/dist/api/compiler/locales/ru-RU.js +1 -1
  113. package/dist/api/compiler/locales/tr-TR.d.ts +1 -1
  114. package/dist/api/compiler/locales/tr-TR.js +1 -1
  115. package/dist/api/compiler/locales/zh-CN.d.ts +1 -1
  116. package/dist/api/compiler/locales/zh-CN.js +1 -1
  117. package/dist/api/compiler/locales/zh-TW.d.ts +1 -1
  118. package/dist/api/compiler/locales/zh-TW.js +1 -1
  119. package/dist/api/compiler/module-resolution-types.js +6 -6
  120. package/dist/api/compiler/module-resolution.d.ts +10 -1
  121. package/dist/api/compiler/module-resolution.js +115 -84
  122. package/dist/api/compiler/module-specifiers.d.ts +15 -0
  123. package/dist/api/compiler/module-specifiers.js +24 -18
  124. package/dist/api/compiler/name-resolver.js +74 -65
  125. package/dist/api/compiler/node-builder-names.d.ts +11 -3
  126. package/dist/api/compiler/node-builder-names.js +210 -90
  127. package/dist/api/compiler/node-builder-pseudo.js +29 -31
  128. package/dist/api/compiler/node-builder-reuse.js +23 -22
  129. package/dist/api/compiler/node-builder.d.ts +18 -1
  130. package/dist/api/compiler/node-builder.js +191 -102
  131. package/dist/api/compiler/option-declarations.d.ts +2 -6
  132. package/dist/api/compiler/option-declarations.js +315 -375
  133. package/dist/api/compiler/options.d.ts +15 -33
  134. package/dist/api/compiler/options.js +21 -54
  135. package/dist/api/compiler/output-paths.d.ts +4 -1
  136. package/dist/api/compiler/output-paths.js +6 -11
  137. package/dist/api/compiler/package-json.d.ts +3 -3
  138. package/dist/api/compiler/package-json.js +11 -10
  139. package/dist/api/compiler/parallel-parse.d.ts +3 -2
  140. package/dist/api/compiler/parallel-parse.js +17 -5
  141. package/dist/api/compiler/parser.d.ts +40 -19
  142. package/dist/api/compiler/parser.js +308 -216
  143. package/dist/api/compiler/path.d.ts +9 -0
  144. package/dist/api/compiler/path.js +20 -3
  145. package/dist/api/compiler/printer/emit-context.d.ts +5 -1
  146. package/dist/api/compiler/printer/emit-context.js +20 -1
  147. package/dist/api/compiler/printer/factory-base.d.ts +2 -2
  148. package/dist/api/compiler/printer/factory-base.js +7 -3
  149. package/dist/api/compiler/printer/factory.js +3 -1
  150. package/dist/api/compiler/printer/helpers.js +10 -1
  151. package/dist/api/compiler/printer/name-generator.d.ts +1 -1
  152. package/dist/api/compiler/printer/name-generator.js +35 -16
  153. package/dist/api/compiler/printer/printer.d.ts +49 -2
  154. package/dist/api/compiler/printer/printer.js +539 -293
  155. package/dist/api/compiler/printer/utilities.js +149 -147
  156. package/dist/api/compiler/program-checker.d.ts +12 -2
  157. package/dist/api/compiler/program-checker.js +88 -34
  158. package/dist/api/compiler/program-utilities.d.ts +3 -1
  159. package/dist/api/compiler/program-utilities.js +28 -15
  160. package/dist/api/compiler/program.d.ts +4 -6
  161. package/dist/api/compiler/program.js +74 -87
  162. package/dist/api/compiler/pseudo-bigint.d.ts +2 -0
  163. package/dist/api/compiler/pseudo-bigint.js +18 -0
  164. package/dist/api/compiler/regexp-checker.d.ts +1 -1
  165. package/dist/api/compiler/regexp-checker.js +93 -76
  166. package/dist/api/compiler/relations.d.ts +27 -4
  167. package/dist/api/compiler/relations.js +347 -180
  168. package/dist/api/compiler/reparser.js +60 -56
  169. package/dist/api/compiler/scanner.d.ts +19 -2
  170. package/dist/api/compiler/scanner.js +123 -108
  171. package/dist/api/compiler/shared-results.d.ts +463 -0
  172. package/dist/api/compiler/shared-results.js +2128 -0
  173. package/dist/api/compiler/sourcemap.js +2 -2
  174. package/dist/api/compiler/symbol-accessibility.js +87 -74
  175. package/dist/api/compiler/symbol.d.ts +23 -14
  176. package/dist/api/compiler/symbol.js +23 -11
  177. package/dist/api/compiler/syntax-kind.d.ts +198 -197
  178. package/dist/api/compiler/transformers/alias-references.js +247 -139
  179. package/dist/api/compiler/transformers/async-utilities.js +25 -25
  180. package/dist/api/compiler/transformers/async.d.ts +0 -1
  181. package/dist/api/compiler/transformers/async.js +64 -77
  182. package/dist/api/compiler/transformers/class-fields.d.ts +1 -0
  183. package/dist/api/compiler/transformers/class-fields.js +81 -78
  184. package/dist/api/compiler/transformers/commonjs-module.js +18 -15
  185. package/dist/api/compiler/transformers/const-enum-inliner.js +1 -1
  186. package/dist/api/compiler/transformers/declarations-diagnostics.js +247 -244
  187. package/dist/api/compiler/transformers/declarations-pseudo.js +100 -100
  188. package/dist/api/compiler/transformers/declarations-resolver.d.ts +0 -3
  189. package/dist/api/compiler/transformers/declarations-syntactic.d.ts +1 -2
  190. package/dist/api/compiler/transformers/declarations-syntactic.js +134 -156
  191. package/dist/api/compiler/transformers/declarations-tracker.js +18 -18
  192. package/dist/api/compiler/transformers/declarations.d.ts +4 -1
  193. package/dist/api/compiler/transformers/declarations.js +305 -238
  194. package/dist/api/compiler/transformers/decorator-metadata.d.ts +1 -1
  195. package/dist/api/compiler/transformers/decorator-metadata.js +53 -45
  196. package/dist/api/compiler/transformers/decorator-utilities.js +24 -24
  197. package/dist/api/compiler/transformers/destructuring.js +19 -18
  198. package/dist/api/compiler/transformers/emit-resolver.js +1 -1
  199. package/dist/api/compiler/transformers/es-decorators.js +55 -55
  200. package/dist/api/compiler/transformers/external-module-info.js +3 -3
  201. package/dist/api/compiler/transformers/for-await.js +25 -25
  202. package/dist/api/compiler/transformers/import-elision.js +14 -14
  203. package/dist/api/compiler/transformers/jsx.js +12 -12
  204. package/dist/api/compiler/transformers/legacy-decorators.js +17 -17
  205. package/dist/api/compiler/transformers/module.js +8 -8
  206. package/dist/api/compiler/transformers/named-evaluation.js +4 -4
  207. package/dist/api/compiler/transformers/object-rest-spread.js +20 -20
  208. package/dist/api/compiler/transformers/optional-chain.js +10 -10
  209. package/dist/api/compiler/transformers/reference-resolver.d.ts +12 -1
  210. package/dist/api/compiler/transformers/reference-resolver.js +131 -69
  211. package/dist/api/compiler/transformers/runtime-syntax.js +35 -31
  212. package/dist/api/compiler/transformers/subtree-facts.js +47 -47
  213. package/dist/api/compiler/transformers/syntax-facts.js +56 -58
  214. package/dist/api/compiler/transformers/type-eraser.js +73 -66
  215. package/dist/api/compiler/transformers/type-serialization.js +24 -24
  216. package/dist/api/compiler/transformers/using.js +12 -12
  217. package/dist/api/compiler/transformers/utilities.js +77 -77
  218. package/dist/api/compiler/transformers/visitor-base.js +172 -172
  219. package/dist/api/compiler/transformers/visitor-hooks.js +6 -2
  220. package/dist/api/compiler/tsconfig.d.ts +10 -2
  221. package/dist/api/compiler/tsconfig.js +136 -48
  222. package/dist/api/compiler/type-printer.js +40 -3
  223. package/dist/api/compiler/types.d.ts +2 -1
  224. package/dist/api/library/ast.generated.d.ts +42 -39
  225. package/dist/api/library/ast.generated.js +1 -1
  226. package/dist/api/library/compiler-options.generated.d.ts +111 -100
  227. package/dist/api/library/compiler-options.generated.js +1 -1
  228. package/dist/api/library/disk.js +12 -1
  229. package/dist/api/library/enums.generated.d.ts +206 -206
  230. package/dist/api/library/enums.generated.js +206 -206
  231. package/dist/api/library/nodes.js +26 -26
  232. package/package.json +9 -9
  233. package/src/compiler/ast-utilities.ts +99 -7
  234. package/src/compiler/ast.ts +58 -26
  235. package/src/compiler/binder.ts +39 -4
  236. package/src/compiler/character-codes.ts +2 -2
  237. package/src/compiler/checker-calls.ts +79 -9
  238. package/src/compiler/checker-classes.ts +78 -24
  239. package/src/compiler/checker-contextual.ts +6 -1
  240. package/src/compiler/checker-declarations.ts +31 -4
  241. package/src/compiler/checker-declared-types.ts +8 -5
  242. package/src/compiler/checker-decorators.ts +1 -1
  243. package/src/compiler/checker-deprecation.ts +29 -8
  244. package/src/compiler/checker-destructuring.ts +10 -3
  245. package/src/compiler/checker-emit-helpers.ts +1 -0
  246. package/src/compiler/checker-emit-resolver.ts +16 -6
  247. package/src/compiler/checker-expressions.ts +79 -46
  248. package/src/compiler/checker-functions.ts +21 -6
  249. package/src/compiler/checker-generated-code.ts +2 -22
  250. package/src/compiler/checker-grammar.ts +136 -62
  251. package/src/compiler/checker-heritage.ts +22 -21
  252. package/src/compiler/checker-inference.ts +514 -82
  253. package/src/compiler/checker-iteration.ts +18 -31
  254. package/src/compiler/checker-javascript.ts +1 -1
  255. package/src/compiler/checker-jsdoc.ts +50 -27
  256. package/src/compiler/checker-jsx.ts +26 -4
  257. package/src/compiler/checker-members.ts +200 -56
  258. package/src/compiler/checker-modules.ts +332 -65
  259. package/src/compiler/checker-narrowing.ts +98 -19
  260. package/src/compiler/checker-object-literals.ts +3 -0
  261. package/src/compiler/checker-operators.ts +11 -4
  262. package/src/compiler/checker-property-access.ts +7 -2
  263. package/src/compiler/checker-services.ts +39 -12
  264. package/src/compiler/checker-signatures.ts +15 -1
  265. package/src/compiler/checker-source-file.ts +39 -13
  266. package/src/compiler/checker-statements.ts +3 -2
  267. package/src/compiler/checker-symbol-types.ts +29 -6
  268. package/src/compiler/checker-symbols.ts +158 -15
  269. package/src/compiler/checker-type-factory.ts +124 -23
  270. package/src/compiler/checker-type-nodes.ts +46 -3
  271. package/src/compiler/checker-type-operators.ts +83 -26
  272. package/src/compiler/checker-types.ts +147 -4
  273. package/src/compiler/checker-unused.ts +9 -14
  274. package/src/compiler/checker.ts +203 -39
  275. package/src/compiler/command-line.ts +28 -28
  276. package/src/compiler/compile-program.ts +167 -27
  277. package/src/compiler/decoder.ts +13 -4
  278. package/src/compiler/diagnostic-messages.ts +1973 -1892
  279. package/src/compiler/diagnostics.ts +84 -3
  280. package/src/compiler/emitter.ts +57 -8
  281. package/src/compiler/encoder.ts +23 -8
  282. package/src/compiler/file-include.ts +9 -3
  283. package/src/compiler/file-loader.ts +197 -38
  284. package/src/compiler/help.ts +10 -14
  285. package/src/compiler/incremental.ts +165 -30
  286. package/src/compiler/init.ts +2 -7
  287. package/src/compiler/instantiation.ts +77 -22
  288. package/src/compiler/jsdoc.ts +3 -1
  289. package/src/compiler/link-tables.ts +82 -37
  290. package/src/compiler/locales/cs-CZ.ts +1 -1
  291. package/src/compiler/locales/de-DE.ts +1 -1
  292. package/src/compiler/locales/es-ES.ts +1 -1
  293. package/src/compiler/locales/fr-FR.ts +1 -1
  294. package/src/compiler/locales/it-IT.ts +1 -1
  295. package/src/compiler/locales/ja-JP.ts +1 -1
  296. package/src/compiler/locales/ko-KR.ts +1 -1
  297. package/src/compiler/locales/pl-PL.ts +1 -1
  298. package/src/compiler/locales/pt-BR.ts +1 -1
  299. package/src/compiler/locales/ru-RU.ts +1 -1
  300. package/src/compiler/locales/tr-TR.ts +1 -1
  301. package/src/compiler/locales/zh-CN.ts +1 -1
  302. package/src/compiler/locales/zh-TW.ts +1 -1
  303. package/src/compiler/module-resolution.ts +44 -8
  304. package/src/compiler/module-specifiers.ts +62 -20
  305. package/src/compiler/name-resolver.ts +9 -1
  306. package/src/compiler/node-builder-names.ts +236 -54
  307. package/src/compiler/node-builder-pseudo.ts +4 -7
  308. package/src/compiler/node-builder-reuse.ts +5 -4
  309. package/src/compiler/node-builder.ts +130 -31
  310. package/src/compiler/option-declarations.ts +33 -103
  311. package/src/compiler/options.ts +23 -62
  312. package/src/compiler/output-paths.ts +5 -18
  313. package/src/compiler/package-entrypoints.ts +345 -0
  314. package/src/compiler/package-json.ts +4 -4
  315. package/src/compiler/parallel-check.ts +326 -52
  316. package/src/compiler/parallel-emit.ts +320 -0
  317. package/src/compiler/parallel-parse.ts +16 -5
  318. package/src/compiler/parse-thread.ts +3 -0
  319. package/src/compiler/parser.ts +156 -39
  320. package/src/compiler/path.ts +22 -2
  321. package/src/compiler/printer/emit-context.ts +21 -0
  322. package/src/compiler/printer/factory-base.ts +10 -3
  323. package/src/compiler/printer/factory.ts +4 -1
  324. package/src/compiler/printer/helpers.ts +10 -1
  325. package/src/compiler/printer/name-generator.ts +24 -2
  326. package/src/compiler/printer/printer.ts +266 -30
  327. package/src/compiler/printer/utilities.ts +8 -2
  328. package/src/compiler/program-checker.ts +57 -5
  329. package/src/compiler/program-utilities.ts +23 -10
  330. package/src/compiler/program.ts +18 -26
  331. package/src/compiler/pseudo-bigint.ts +17 -0
  332. package/src/compiler/regexp-checker.ts +63 -30
  333. package/src/compiler/relations.ts +240 -77
  334. package/src/compiler/reparser.ts +7 -2
  335. package/src/compiler/scanner.ts +109 -79
  336. package/src/compiler/shared-results.ts +2414 -0
  337. package/src/compiler/show-config.ts +18 -1
  338. package/src/compiler/sourcemap.ts +2 -2
  339. package/src/compiler/symbol-accessibility.ts +26 -3
  340. package/src/compiler/symbol.ts +46 -24
  341. package/src/compiler/syntax-kind.ts +188 -187
  342. package/src/compiler/thread-entry.ts +64 -4
  343. package/src/compiler/transformers/alias-references.ts +123 -4
  344. package/src/compiler/transformers/async.ts +2 -17
  345. package/src/compiler/transformers/class-fields.ts +13 -12
  346. package/src/compiler/transformers/commonjs-module.ts +11 -7
  347. package/src/compiler/transformers/declarations-diagnostics.ts +5 -3
  348. package/src/compiler/transformers/declarations-pseudo.ts +2 -4
  349. package/src/compiler/transformers/declarations-resolver.ts +0 -3
  350. package/src/compiler/transformers/declarations-syntactic.ts +1 -21
  351. package/src/compiler/transformers/declarations.ts +134 -48
  352. package/src/compiler/transformers/decorator-metadata.ts +9 -1
  353. package/src/compiler/transformers/destructuring.ts +4 -3
  354. package/src/compiler/transformers/external-module-info.ts +1 -1
  355. package/src/compiler/transformers/jsx.ts +2 -1
  356. package/src/compiler/transformers/reference-resolver.ts +83 -19
  357. package/src/compiler/transformers/runtime-syntax.ts +6 -1
  358. package/src/compiler/transformers/syntax-facts.ts +2 -7
  359. package/src/compiler/transformers/type-eraser.ts +10 -1
  360. package/src/compiler/transformers/type-serialization.ts +3 -2
  361. package/src/compiler/transformers/visitor-base.ts +2 -1
  362. package/src/compiler/transformers/visitor-hooks.ts +9 -4
  363. package/src/compiler/tsc-build.ts +66 -9
  364. package/src/compiler/tsc-cli.ts +7 -0
  365. package/src/compiler/tsc-compile.ts +284 -4
  366. package/src/compiler/tsc-watch.ts +74 -45
  367. package/src/compiler/tsconfig.ts +176 -19
  368. package/src/compiler/type-printer.ts +36 -2
  369. package/src/compiler/types.ts +2 -1
  370. package/src/library/ast.generated.ts +57 -41
  371. package/src/library/compiler-options.generated.ts +117 -103
  372. package/src/library/disk.ts +10 -1
  373. package/src/library/enums.generated.ts +196 -196
@@ -1,5 +1,5 @@
1
1
  import { Checker, CheckerHost, disposeChecker } from './checker.js';
2
- import { createDiagnostic, messageCode } from './diagnostics.js';
2
+ import { compareDiagnostics, createDiagnostic, messageCode, } from './diagnostics.js';
3
3
  import { ModuleSpecifierHost } from './module-specifiers.js';
4
4
  import { sortAndDeduplicateDiagnostics } from './program.js';
5
5
  import { getEmitModuleFormatOfFile, getEmitSyntaxForUsageLocation, isCheckJsEnabledForFile, } from './program-utilities.js';
@@ -199,6 +199,12 @@ export class CheckedProgram {
199
199
  */
200
200
  referenceThreads = 1;
201
201
  parallelGlobalDiagnostics = [];
202
+ /**
203
+ * Whether the semantic diagnostics of a file include the global diagnostics its checker found while
204
+ * checking it, as an incremental program caches them (IncrementalProgram). Such a program doesn't report
205
+ * the global diagnostics found by checking otherwise (`reportsGlobalDiagnosticsOfChecking`, compile-program.ts).
206
+ */
207
+ globalsInFileDiagnostics = false;
202
208
  /**
203
209
  * The declaration diagnostics checker threads computed under `noEmit` (PlainProgram,
204
210
  * IncrementalProgram), by file index; `undefined` for files they did not. Set once every file is
@@ -210,6 +216,10 @@ export class CheckedProgram {
210
216
  * emit. Set once every file is checked, when checker threads emit (parallel-check.ts).
211
217
  */
212
218
  emittedInParallel = undefined;
219
+ /** Emit threads emitted only the JavaScript of `emittedInParallel`: declarations are emitted here. */
220
+ javaScriptEmittedOnThreads = false;
221
+ /** The declaration emit of each file on the declaration thread (parallel-emit.ts); undefined for one it didn't emit. */
222
+ declarationsEmittedAhead = undefined;
213
223
  /**
214
224
  * The global diagnostics of this thread's checker before it emitted files while checker threads
215
225
  * checked (`emitUncheckedFiles`), reported instead of its current ones.
@@ -333,10 +343,10 @@ export class CheckedProgram {
333
343
  return own;
334
344
  return sortAndDeduplicateDiagnostics([...own, ...parallel]);
335
345
  }
336
- /** Whether `file`'s bind and check diagnostics are reported. */
337
- skipTypeChecking(file) {
346
+ /** Whether `file`'s bind and check diagnostics are skipped; `ignoreNoCheck` leaves `noCheck` out. */
347
+ skipTypeChecking(file, ignoreNoCheck = false) {
338
348
  const options = this.program.options;
339
- return (options.noCheck === true ||
349
+ return ((!ignoreNoCheck && options.noCheck === true) ||
340
350
  (options.skipLibCheck === true && file.isDeclarationFile) ||
341
351
  (options.skipDefaultLibCheck === true && this.program.isSourceFileDefaultLibrary(file.path)) ||
342
352
  this.program.getProjectReferenceFromSource(file.path) !== undefined ||
@@ -367,8 +377,23 @@ export class CheckedProgram {
367
377
  getBindAndCheckDiagnostics(file, checks) {
368
378
  const options = this.program.options;
369
379
  const diagnostics = file.bindDiagnostics.slice();
370
- for (const d of checks ?? this.checker.getDiagnostics(file))
371
- diagnostics.push(d);
380
+ if (checks !== undefined)
381
+ for (const d of checks)
382
+ diagnostics.push(d);
383
+ else if (this.globalsInFileDiagnostics) {
384
+ const checker = this.checker;
385
+ const before = checker.getGlobalDiagnostics();
386
+ for (const d of checker.getDiagnostics(file))
387
+ diagnostics.push(d);
388
+ const after = checker.getGlobalDiagnostics();
389
+ if (after.length > before.length)
390
+ for (const d of after)
391
+ if (!containsSortedDiagnostic(before, d))
392
+ diagnostics.push(d);
393
+ }
394
+ else
395
+ for (const d of this.checker.getDiagnostics(file))
396
+ diagnostics.push(d);
372
397
  if (isPlainJSFile(file, options)) {
373
398
  const result = [];
374
399
  for (const d of diagnostics)
@@ -383,7 +408,7 @@ export class CheckedProgram {
383
408
  const directives = new Directives(file);
384
409
  const filtered = directives.filter(diagnostics);
385
410
  for (const directive of directives.unused()) {
386
- filtered.push(createDiagnostic(file.diagnosticFile(), directive.pos, directive.end, 729 /* Diagnostics.Unused_ts_expect_error_directive */));
411
+ filtered.push(createDiagnostic(file.diagnosticFile(), directive.pos, directive.end, 736 /* Diagnostics.Unused_ts_expect_error_directive */));
387
412
  }
388
413
  return filtered;
389
414
  }
@@ -394,6 +419,22 @@ export class CheckedProgram {
394
419
  return diagnostics.length === 0 ? diagnostics : new Directives(file).filter(diagnostics);
395
420
  }
396
421
  }
422
+ /** Whether `sorted`, in `compareDiagnostics` order, has a diagnostic equal to `diagnostic`. */
423
+ function containsSortedDiagnostic(sorted, diagnostic) {
424
+ let low = 0;
425
+ let high = sorted.length - 1;
426
+ while (low <= high) {
427
+ const middle = (low + high) >>> 1;
428
+ const c = compareDiagnostics(sorted[middle], diagnostic);
429
+ if (c === 0)
430
+ return true;
431
+ if (c < 0)
432
+ low = middle + 1;
433
+ else
434
+ high = middle - 1;
435
+ }
436
+ return false;
437
+ }
397
438
  /** The `@ts-ignore` and `@ts-expect-error` comments of a file, by line. */
398
439
  class Directives {
399
440
  file;
@@ -417,6 +458,11 @@ class Directives {
417
458
  const lineStarts = this.file.diagnosticFile().getLineStarts();
418
459
  const result = [];
419
460
  for (const diagnostic of diagnostics) {
461
+ // A global diagnostic, or one of another file, has no line here.
462
+ if (diagnostic.file === undefined || diagnostic.file.fileName !== this.file.fileName) {
463
+ result.push(diagnostic);
464
+ continue;
465
+ }
420
466
  let ignored = false;
421
467
  for (let line = computeLineOfPosition(lineStarts, diagnostic.pos) - 1; line >= 0; line--) {
422
468
  const directive = this.byLine.get(line);
@@ -472,14 +518,14 @@ function canIncludeBindAndCheckDiagnostics(file, options) {
472
518
  }
473
519
  /** The errors reported in JavaScript files that aren't type checked. */
474
520
  const plainJSErrors = codesOf([
475
- 619 /* Diagnostics.Cannot_redeclare_block_scoped_variable_0 */,
476
- 686 /* Diagnostics.A_module_cannot_have_multiple_default_exports */,
477
- 885 /* Diagnostics.Another_export_default_is_here */,
478
- 884 /* Diagnostics.The_first_export_default_is_here */,
521
+ 626 /* Diagnostics.Cannot_redeclare_block_scoped_variable_0 */,
522
+ 693 /* Diagnostics.A_module_cannot_have_multiple_default_exports */,
523
+ 892 /* Diagnostics.Another_export_default_is_here */,
524
+ 891 /* Diagnostics.The_first_export_default_is_here */,
479
525
  211 /* Diagnostics.Identifier_expected_0_is_a_reserved_word_at_the_top_level_of_a_module */,
480
526
  167 /* Diagnostics.Identifier_expected_0_is_a_reserved_word_in_strict_mode_Modules_are_automatically_in_strict_mode */,
481
527
  293 /* Diagnostics.Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here */,
482
- 1834 /* Diagnostics.X_constructor_is_a_reserved_word */,
528
+ 1854 /* Diagnostics.X_constructor_is_a_reserved_word */,
483
529
  71 /* Diagnostics.X_delete_cannot_be_called_on_an_identifier_in_strict_mode */,
484
530
  163 /* Diagnostics.Code_contained_in_a_class_is_evaluated_in_JavaScript_s_strict_mode_which_does_not_allow_this_use_of_0_For_more_information_see_https_Colon_Slash_Slashdeveloper_mozilla_org_Slashen_US_Slashdocs_SlashWeb_SlashJavaScript_SlashReference_SlashStrict_mode */,
485
531
  168 /* Diagnostics.Invalid_use_of_0_Modules_are_automatically_in_strict_mode */,
@@ -495,56 +541,57 @@ const plainJSErrors = codesOf([
495
541
  83 /* Diagnostics.A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement */,
496
542
  81 /* Diagnostics.A_default_clause_cannot_appear_more_than_once_in_a_switch_statement */,
497
543
  207 /* Diagnostics.A_default_export_must_be_at_the_top_level_of_a_file_or_module_declaration */,
544
+ 1952 /* Diagnostics.A_deferred_import_must_specify_a_namespace_binding */,
498
545
  205 /* Diagnostics.A_definite_assignment_assertion_is_not_permitted_in_this_context */,
499
546
  138 /* Diagnostics.A_destructuring_declaration_must_have_an_initializer */,
500
547
  40 /* Diagnostics.A_get_accessor_cannot_have_parameters */,
501
- 661 /* Diagnostics.A_rest_element_cannot_contain_a_binding_pattern */,
502
- 720 /* Diagnostics.A_rest_element_cannot_have_a_property_name */,
548
+ 668 /* Diagnostics.A_rest_element_cannot_contain_a_binding_pattern */,
549
+ 727 /* Diagnostics.A_rest_element_cannot_have_a_property_name */,
503
550
  142 /* Diagnostics.A_rest_element_cannot_have_an_initializer */,
504
- 628 /* Diagnostics.A_rest_element_must_be_last_in_a_destructuring_pattern */,
551
+ 635 /* Diagnostics.A_rest_element_must_be_last_in_a_destructuring_pattern */,
505
552
  35 /* Diagnostics.A_rest_parameter_cannot_have_an_initializer */,
506
553
  10 /* Diagnostics.A_rest_parameter_must_be_last_in_a_parameter_list */,
507
554
  9 /* Diagnostics.A_rest_parameter_or_binding_pattern_may_not_have_a_trailing_comma */,
508
- 1857 /* Diagnostics.A_return_statement_cannot_be_used_inside_a_class_static_block */,
555
+ 1877 /* Diagnostics.A_return_statement_cannot_be_used_inside_a_class_static_block */,
509
556
  39 /* Diagnostics.A_set_accessor_cannot_have_rest_parameter */,
510
557
  36 /* Diagnostics.A_set_accessor_must_have_exactly_one_parameter */,
511
- 389 /* Diagnostics.An_export_declaration_can_only_be_used_at_the_top_level_of_a_module */,
558
+ 387 /* Diagnostics.An_export_declaration_can_only_be_used_at_the_top_level_of_a_module */,
512
559
  149 /* Diagnostics.An_export_declaration_cannot_have_modifiers */,
513
- 388 /* Diagnostics.An_import_declaration_can_only_be_used_at_the_top_level_of_a_module */,
560
+ 386 /* Diagnostics.An_import_declaration_can_only_be_used_at_the_top_level_of_a_module */,
514
561
  147 /* Diagnostics.An_import_declaration_cannot_have_modifiers */,
515
562
  119 /* Diagnostics.An_object_member_cannot_be_declared_optional */,
516
563
  261 /* Diagnostics.Argument_of_dynamic_import_cannot_be_spread_element */,
517
- 935 /* Diagnostics.Cannot_assign_to_private_method_0_Private_methods_are_not_writable */,
518
- 652 /* Diagnostics.Cannot_redeclare_identifier_0_in_catch_clause */,
564
+ 942 /* Diagnostics.Cannot_assign_to_private_method_0_Private_methods_are_not_writable */,
565
+ 659 /* Diagnostics.Cannot_redeclare_identifier_0_in_catch_clause */,
519
566
  153 /* Diagnostics.Catch_clause_variable_cannot_have_an_initializer */,
520
- 1853 /* Diagnostics.Class_decorators_can_t_be_used_with_static_private_identifier_Consider_removing_the_experimental_decorator */,
567
+ 1873 /* Diagnostics.Class_decorators_can_t_be_used_with_static_private_identifier_Consider_removing_the_experimental_decorator */,
521
568
  130 /* Diagnostics.Classes_can_only_extend_a_single_class */,
522
- 1829 /* Diagnostics.Classes_may_not_have_a_field_named_constructor */,
569
+ 1849 /* Diagnostics.Classes_may_not_have_a_field_named_constructor */,
523
570
  248 /* Diagnostics.Did_you_mean_to_use_a_Colon_An_can_only_follow_a_property_name_when_the_containing_object_literal_is_part_of_a_destructuring_pattern */,
524
571
  82 /* Diagnostics.Duplicate_label_0 */,
525
572
  372 /* Diagnostics.Dynamic_imports_can_only_accept_a_module_specifier_and_an_optional_set_of_attributes_as_arguments */,
526
- 1855 /* Diagnostics.X_for_await_loops_cannot_be_used_inside_a_class_static_block */,
527
- 1804 /* Diagnostics.JSX_attributes_must_only_be_assigned_a_non_empty_expression */,
528
- 1805 /* Diagnostics.JSX_elements_cannot_have_multiple_attributes_with_the_same_name */,
529
- 1830 /* Diagnostics.JSX_expressions_may_not_use_the_comma_operator_Did_you_mean_to_write_an_array */,
530
- 776 /* Diagnostics.JSX_property_access_expressions_cannot_include_JSX_namespace_names */,
573
+ 1875 /* Diagnostics.X_for_await_loops_cannot_be_used_inside_a_class_static_block */,
574
+ 1824 /* Diagnostics.JSX_attributes_must_only_be_assigned_a_non_empty_expression */,
575
+ 1825 /* Diagnostics.JSX_elements_cannot_have_multiple_attributes_with_the_same_name */,
576
+ 1850 /* Diagnostics.JSX_expressions_may_not_use_the_comma_operator_Did_you_mean_to_write_an_array */,
577
+ 783 /* Diagnostics.JSX_property_access_expressions_cannot_include_JSX_namespace_names */,
531
578
  76 /* Diagnostics.Jump_target_cannot_cross_function_boundary */,
532
579
  156 /* Diagnostics.Line_terminator_not_permitted_before_arrow */,
533
580
  140 /* Diagnostics.Modifiers_cannot_appear_here */,
534
581
  60 /* Diagnostics.Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement */,
535
582
  144 /* Diagnostics.Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement */,
536
- 1838 /* Diagnostics.Private_identifiers_are_not_allowed_outside_class_bodies */,
583
+ 1858 /* Diagnostics.Private_identifiers_are_not_allowed_outside_class_bodies */,
537
584
  373 /* Diagnostics.Private_identifiers_are_only_allowed_in_class_bodies_and_may_only_be_used_as_part_of_a_class_member_declaration_property_access_or_on_the_left_hand_side_of_an_in_expression */,
538
- 1835 /* Diagnostics.Property_0_is_not_accessible_outside_class_1_because_it_has_a_private_identifier */,
585
+ 1855 /* Diagnostics.Property_0_is_not_accessible_outside_class_1_because_it_has_a_private_identifier */,
539
586
  292 /* Diagnostics.Tagged_template_expressions_are_not_permitted_in_an_optional_chain */,
540
587
  75 /* Diagnostics.The_left_hand_side_of_a_for_of_statement_may_not_be_async */,
541
588
  145 /* Diagnostics.The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer */,
542
589
  146 /* Diagnostics.The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer */,
543
590
  5 /* Diagnostics.Trailing_comma_not_allowed */,
544
591
  90 /* Diagnostics.Variable_declaration_list_cannot_be_empty */,
545
- 1151 /* Diagnostics.X_0_and_1_operations_cannot_be_mixed_without_parentheses */,
592
+ 1158 /* Diagnostics.X_0_and_1_operations_cannot_be_mixed_without_parentheses */,
546
593
  2 /* Diagnostics.X_0_expected */,
547
- 1815 /* Diagnostics.X_0_is_not_a_valid_meta_property_for_keyword_1_Did_you_mean_2 */,
594
+ 1835 /* Diagnostics.X_0_is_not_a_valid_meta_property_for_keyword_1_Did_you_mean_2 */,
548
595
  66 /* Diagnostics.X_0_list_cannot_be_empty */,
549
596
  23 /* Diagnostics.X_0_modifier_already_seen */,
550
597
  58 /* Diagnostics.X_0_modifier_cannot_appear_on_a_constructor_declaration */,
@@ -556,13 +603,20 @@ const plainJSErrors = codesOf([
556
603
  116 /* Diagnostics.X_0_declarations_can_only_be_declared_inside_a_block */,
557
604
  115 /* Diagnostics.X_0_declarations_must_be_initialized */,
558
605
  128 /* Diagnostics.X_extends_clause_already_seen */,
559
- 643 /* Diagnostics.X_let_is_not_allowed_to_be_used_as_a_name_in_let_or_const_declarations */,
606
+ 650 /* Diagnostics.X_let_is_not_allowed_to_be_used_as_a_name_in_let_or_const_declarations */,
560
607
  302 /* Diagnostics.Class_constructor_may_not_be_a_generator */,
561
608
  276 /* Diagnostics.Class_constructor_may_not_be_an_accessor */,
562
609
  246 /* Diagnostics.X_await_expressions_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules */,
563
- 972 /* Diagnostics.X_await_using_statements_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules */,
610
+ 979 /* Diagnostics.X_await_using_statements_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules */,
564
611
  80 /* Diagnostics.Private_field_0_must_be_declared_in_an_enclosing_class */,
565
- 961 /* Diagnostics.This_condition_will_always_return_0_since_JavaScript_compares_objects_by_reference_not_value */,
612
+ 968 /* Diagnostics.This_condition_will_always_return_0_since_JavaScript_compares_objects_by_reference_not_value */,
613
+ 1952 /* Diagnostics.A_deferred_import_must_specify_a_namespace_binding */,
614
+ 1946 /* Diagnostics.A_source_phase_import_must_specify_a_local_binding */,
615
+ 1947 /* Diagnostics.Named_and_namespace_imports_are_not_allowed_in_a_source_phase_import */,
616
+ 1949 /* Diagnostics.Optional_chaining_cannot_be_used_with_import_source */,
617
+ 1950 /* Diagnostics.Source_phase_imports_are_not_allowed_on_statements_that_compile_to_CommonJS_require_calls */,
618
+ 1948 /* Diagnostics.Source_phase_imports_are_only_supported_when_the_module_option_is_set_to_esnext_nodenext_or_preserve */,
619
+ 1896 /* Diagnostics.X_0_is_not_a_valid_meta_property_for_keyword_import_Did_you_mean_meta_defer_or_source */,
566
620
  ]);
567
621
  function codesOf(messages) {
568
622
  const codes = new Set();
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Option and syntax queries of program construction: libraries, module formats and resolution modes.
3
3
  */
4
- import { ExternalModuleIndicatorOptions, ImportAttributes, type Node, type SourceFile } from './ast.js';
4
+ import { ExternalModuleIndicatorOptions, ImportAttribute, ImportAttributes, type Node, type SourceFile } from './ast.js';
5
5
  import { JsxEmit, ModuleKind, ScriptTarget, type CompilerOptions } from './options.js';
6
6
  /** `--lib` names in declaration order. */
7
7
  export declare const libNames: readonly string[];
@@ -44,6 +44,8 @@ export declare function getJSXImplicitImportBase(options: CompilerOptions, file:
44
44
  export declare function getJSXRuntimeImport(base: string, options: CompilerOptions): string;
45
45
  /** The `resolution-mode` of `import type` attributes, or `None`. */
46
46
  export declare function getResolutionModeOverride(attributes: ImportAttributes | undefined): ModuleKind;
47
+ /** The `resolution-mode` attribute among import attributes, as tsgo's `GetResolutionModeOverride` finds it. */
48
+ export declare function resolutionModeAttribute(attributes: ImportAttributes | undefined): ImportAttribute | undefined;
47
49
  /** Whether `import` syntax decides how a specifier resolves: Node16-style resolution or `exports`/`imports`. */
48
50
  export declare function importSyntaxAffectsModuleResolution(options: CompilerOptions): boolean;
49
51
  /** The mode a module specifier resolves in: from attributes, the import syntax, or the file's format. */
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * Option and syntax queries of program construction: libraries, module formats and resolution modes.
3
3
  */
4
- import { ExportDeclaration, ExternalModuleIndicatorOptions, ImportAttribute, ImportDeclaration, ImportEqualsDeclaration, ImportTypeNode, JSDocImportTag, LiteralTypeNode, NoSubstitutionTemplateLiteral, ParenthesizedExpression, StringLiteral, } from './ast.js';
5
- import { isImportCall, isRequireCall } from './ast-utilities.js';
4
+ import { ExportDeclaration, ExternalModuleIndicatorOptions, Identifier, ImportAttribute, ImportDeclaration, ImportEqualsDeclaration, ImportTypeNode, JSDocImportTag, LiteralTypeNode, NoSubstitutionTemplateLiteral, ParenthesizedExpression, StringLiteral, } from './ast.js';
5
+ import { isImportCall, isRequireCall, isSourcePhaseImportCall } from './ast-utilities.js';
6
6
  import { libMap } from './option-declarations.js';
7
7
  import { getEmitModuleDetectionKind, getEmitModuleKind, getEmitScriptTarget, getModuleResolutionKind, getResolvePackageJsonExports, getResolvePackageJsonImports, JsxEmit, ModuleDetectionKind, ModuleKind, ModuleResolutionKind, ScriptTarget, } from './options.js';
8
8
  import { fileExtensionIsOneOf, isDeclarationFileName, toFileNameLowerCase } from './path.js';
@@ -26,6 +26,8 @@ export function getDefaultLibFileName(options) {
26
26
  switch (getEmitScriptTarget(options)) {
27
27
  case ScriptTarget.ESNext:
28
28
  return 'lib.esnext.full.d.ts';
29
+ case ScriptTarget.ES2026:
30
+ return 'lib.es2026.full.d.ts';
29
31
  case ScriptTarget.ES2025:
30
32
  return 'lib.es2025.full.d.ts';
31
33
  case ScriptTarget.ES2024:
@@ -80,6 +82,8 @@ export function scriptTargetName(target) {
80
82
  return 'ES2024';
81
83
  case ScriptTarget.ES2025:
82
84
  return 'ES2025';
85
+ case ScriptTarget.ES2026:
86
+ return 'ES2026';
83
87
  case ScriptTarget.ESNext:
84
88
  return 'ESNext';
85
89
  case ScriptTarget.JSON:
@@ -258,18 +262,8 @@ function literalText(node) {
258
262
  }
259
263
  /** The `resolution-mode` of `import type` attributes, or `None`. */
260
264
  export function getResolutionModeOverride(attributes) {
261
- if (attributes === undefined)
262
- return ModuleKind.None;
263
- const elements = attributes.attributes.nodes;
264
- if (elements.length !== 1)
265
- return ModuleKind.None;
266
- const attribute = elements[0];
267
- if (!(attribute instanceof ImportAttribute))
268
- return ModuleKind.None;
269
- const name = attribute.name;
270
- if (name === undefined || !isStringLiteralLike(name) || literalText(name) !== 'resolution-mode')
271
- return ModuleKind.None;
272
- if (!isStringLiteralLike(attribute.value))
265
+ const attribute = resolutionModeAttribute(attributes);
266
+ if (attribute === undefined || !isStringLiteralLike(attribute.value))
273
267
  return ModuleKind.None;
274
268
  const text = literalText(attribute.value);
275
269
  if (text === 'import')
@@ -278,6 +272,22 @@ export function getResolutionModeOverride(attributes) {
278
272
  return ModuleKind.CommonJS;
279
273
  return ModuleKind.None;
280
274
  }
275
+ /** The `resolution-mode` attribute among import attributes, as tsgo's `GetResolutionModeOverride` finds it. */
276
+ export function resolutionModeAttribute(attributes) {
277
+ if (attributes === undefined)
278
+ return undefined;
279
+ for (const attribute of attributes.attributes.nodes) {
280
+ if (!(attribute instanceof ImportAttribute))
281
+ continue;
282
+ const name = attribute.name;
283
+ if (name === undefined)
284
+ continue;
285
+ const text = name instanceof Identifier ? name.text : literalText(name);
286
+ if (text === 'resolution-mode')
287
+ return attribute;
288
+ }
289
+ return undefined;
290
+ }
281
291
  /** The attributes of an import or export declaration or a JSDoc `@import`, if any. */
282
292
  function importOrExportAttributes(node) {
283
293
  if (node instanceof ImportDeclaration)
@@ -335,12 +345,15 @@ export function getEmitSyntaxForUsageLocation(fileName, metadata, usage, options
335
345
  if (parent === undefined)
336
346
  return ModuleKind.None;
337
347
  if (isRequireCall(parent, false) ||
338
- (parent.kind === 284 /* SyntaxKind.ExternalModuleReference */ && parent.parent instanceof ImportEqualsDeclaration)) {
348
+ (parent.kind === 285 /* SyntaxKind.ExternalModuleReference */ && parent.parent instanceof ImportEqualsDeclaration)) {
339
349
  return ModuleKind.CommonJS;
340
350
  }
341
351
  const fileEmitMode = getEmitModuleFormatOfFile(fileName, options, metadata);
342
352
  const call = walkUpParenthesizedExpressions(parent);
343
353
  if (call !== undefined && isImportCall(call)) {
354
+ // `import.source()` is never transformed to `require`.
355
+ if (isSourcePhaseImportCall(call))
356
+ return ModuleKind.ESNext;
344
357
  return shouldTransformImportCall(options, fileEmitMode) ? ModuleKind.CommonJS : ModuleKind.ESNext;
345
358
  }
346
359
  if (fileEmitMode === ModuleKind.CommonJS)
@@ -84,6 +84,8 @@ export declare class Program implements OutputPathsHost {
84
84
  getGlobalTypingsCacheLocation(): string;
85
85
  /** Files of the same package version that redirect to the file at `path`. */
86
86
  getRedirectTargets(path: string): readonly string[];
87
+ /** The nearest `package.json` lookup at or above `directory`. */
88
+ getPackageScopeForPath(directory: string): PackageJsonInfo | undefined;
87
89
  /** The directory of the nearest `package.json` at or above `directory`, or `''`. */
88
90
  getNearestAncestorDirectoryWithPackageJson(directory: string): string;
89
91
  /** The `package.json` at `packageJsonPath`, if it exists and is the scope of its directory. */
@@ -111,12 +113,8 @@ export declare class Program implements OutputPathsHost {
111
113
  /** Packages that modules resolved into, by name: whether any resolution into them was a declaration file. */
112
114
  getPackagesMap(): ReadonlyMap<string, boolean>;
113
115
  getResolvedModule(file: SourceFile, moduleName: string, mode: ModuleKind): ResolvedModule | undefined;
114
- /** The program files that the imports and type reference directives of `file` resolved to. */
115
- /**
116
- * The files `file` imports and references through type directives. `byFileName`, the program's
117
- * files by file name, finds a file without computing its path when it is resolved by that name.
118
- */
119
- getResolvedFilesOf(file: SourceFile, byFileName?: ReadonlyMap<string, SourceFile>): SourceFile[];
116
+ /** The files each file added to the program (`ProcessedFiles.addedFiles`), as indices of `getSourceFiles`. */
117
+ addedFiles(): readonly (readonly number[])[];
120
118
  /** The specifier of the implicit JSX runtime import of `file`, if any. */
121
119
  jsxRuntimeImportSpecifier(path: string): Node | undefined;
122
120
  getResolvedModuleFromModuleSpecifier(file: SourceFile, specifier: Node): ResolvedModule | undefined;