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
@@ -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
@@ -337,10 +343,10 @@ export class CheckedProgram {
337
343
  return own;
338
344
  return sortAndDeduplicateDiagnostics([...own, ...parallel]);
339
345
  }
340
- /** Whether `file`'s bind and check diagnostics are reported. */
341
- skipTypeChecking(file) {
346
+ /** Whether `file`'s bind and check diagnostics are skipped; `ignoreNoCheck` leaves `noCheck` out. */
347
+ skipTypeChecking(file, ignoreNoCheck = false) {
342
348
  const options = this.program.options;
343
- return (options.noCheck === true ||
349
+ return ((!ignoreNoCheck && options.noCheck === true) ||
344
350
  (options.skipLibCheck === true && file.isDeclarationFile) ||
345
351
  (options.skipDefaultLibCheck === true && this.program.isSourceFileDefaultLibrary(file.path)) ||
346
352
  this.program.getProjectReferenceFromSource(file.path) !== undefined ||
@@ -371,8 +377,23 @@ export class CheckedProgram {
371
377
  getBindAndCheckDiagnostics(file, checks) {
372
378
  const options = this.program.options;
373
379
  const diagnostics = file.bindDiagnostics.slice();
374
- for (const d of checks ?? this.checker.getDiagnostics(file))
375
- 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);
376
397
  if (isPlainJSFile(file, options)) {
377
398
  const result = [];
378
399
  for (const d of diagnostics)
@@ -387,7 +408,7 @@ export class CheckedProgram {
387
408
  const directives = new Directives(file);
388
409
  const filtered = directives.filter(diagnostics);
389
410
  for (const directive of directives.unused()) {
390
- 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 */));
391
412
  }
392
413
  return filtered;
393
414
  }
@@ -398,6 +419,22 @@ export class CheckedProgram {
398
419
  return diagnostics.length === 0 ? diagnostics : new Directives(file).filter(diagnostics);
399
420
  }
400
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
+ }
401
438
  /** The `@ts-ignore` and `@ts-expect-error` comments of a file, by line. */
402
439
  class Directives {
403
440
  file;
@@ -421,6 +458,11 @@ class Directives {
421
458
  const lineStarts = this.file.diagnosticFile().getLineStarts();
422
459
  const result = [];
423
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
+ }
424
466
  let ignored = false;
425
467
  for (let line = computeLineOfPosition(lineStarts, diagnostic.pos) - 1; line >= 0; line--) {
426
468
  const directive = this.byLine.get(line);
@@ -476,14 +518,14 @@ function canIncludeBindAndCheckDiagnostics(file, options) {
476
518
  }
477
519
  /** The errors reported in JavaScript files that aren't type checked. */
478
520
  const plainJSErrors = codesOf([
479
- 619 /* Diagnostics.Cannot_redeclare_block_scoped_variable_0 */,
480
- 686 /* Diagnostics.A_module_cannot_have_multiple_default_exports */,
481
- 885 /* Diagnostics.Another_export_default_is_here */,
482
- 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 */,
483
525
  211 /* Diagnostics.Identifier_expected_0_is_a_reserved_word_at_the_top_level_of_a_module */,
484
526
  167 /* Diagnostics.Identifier_expected_0_is_a_reserved_word_in_strict_mode_Modules_are_automatically_in_strict_mode */,
485
527
  293 /* Diagnostics.Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here */,
486
- 1834 /* Diagnostics.X_constructor_is_a_reserved_word */,
528
+ 1854 /* Diagnostics.X_constructor_is_a_reserved_word */,
487
529
  71 /* Diagnostics.X_delete_cannot_be_called_on_an_identifier_in_strict_mode */,
488
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 */,
489
531
  168 /* Diagnostics.Invalid_use_of_0_Modules_are_automatically_in_strict_mode */,
@@ -499,56 +541,57 @@ const plainJSErrors = codesOf([
499
541
  83 /* Diagnostics.A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement */,
500
542
  81 /* Diagnostics.A_default_clause_cannot_appear_more_than_once_in_a_switch_statement */,
501
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 */,
502
545
  205 /* Diagnostics.A_definite_assignment_assertion_is_not_permitted_in_this_context */,
503
546
  138 /* Diagnostics.A_destructuring_declaration_must_have_an_initializer */,
504
547
  40 /* Diagnostics.A_get_accessor_cannot_have_parameters */,
505
- 661 /* Diagnostics.A_rest_element_cannot_contain_a_binding_pattern */,
506
- 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 */,
507
550
  142 /* Diagnostics.A_rest_element_cannot_have_an_initializer */,
508
- 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 */,
509
552
  35 /* Diagnostics.A_rest_parameter_cannot_have_an_initializer */,
510
553
  10 /* Diagnostics.A_rest_parameter_must_be_last_in_a_parameter_list */,
511
554
  9 /* Diagnostics.A_rest_parameter_or_binding_pattern_may_not_have_a_trailing_comma */,
512
- 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 */,
513
556
  39 /* Diagnostics.A_set_accessor_cannot_have_rest_parameter */,
514
557
  36 /* Diagnostics.A_set_accessor_must_have_exactly_one_parameter */,
515
- 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 */,
516
559
  149 /* Diagnostics.An_export_declaration_cannot_have_modifiers */,
517
- 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 */,
518
561
  147 /* Diagnostics.An_import_declaration_cannot_have_modifiers */,
519
562
  119 /* Diagnostics.An_object_member_cannot_be_declared_optional */,
520
563
  261 /* Diagnostics.Argument_of_dynamic_import_cannot_be_spread_element */,
521
- 935 /* Diagnostics.Cannot_assign_to_private_method_0_Private_methods_are_not_writable */,
522
- 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 */,
523
566
  153 /* Diagnostics.Catch_clause_variable_cannot_have_an_initializer */,
524
- 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 */,
525
568
  130 /* Diagnostics.Classes_can_only_extend_a_single_class */,
526
- 1829 /* Diagnostics.Classes_may_not_have_a_field_named_constructor */,
569
+ 1849 /* Diagnostics.Classes_may_not_have_a_field_named_constructor */,
527
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 */,
528
571
  82 /* Diagnostics.Duplicate_label_0 */,
529
572
  372 /* Diagnostics.Dynamic_imports_can_only_accept_a_module_specifier_and_an_optional_set_of_attributes_as_arguments */,
530
- 1855 /* Diagnostics.X_for_await_loops_cannot_be_used_inside_a_class_static_block */,
531
- 1804 /* Diagnostics.JSX_attributes_must_only_be_assigned_a_non_empty_expression */,
532
- 1805 /* Diagnostics.JSX_elements_cannot_have_multiple_attributes_with_the_same_name */,
533
- 1830 /* Diagnostics.JSX_expressions_may_not_use_the_comma_operator_Did_you_mean_to_write_an_array */,
534
- 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 */,
535
578
  76 /* Diagnostics.Jump_target_cannot_cross_function_boundary */,
536
579
  156 /* Diagnostics.Line_terminator_not_permitted_before_arrow */,
537
580
  140 /* Diagnostics.Modifiers_cannot_appear_here */,
538
581
  60 /* Diagnostics.Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement */,
539
582
  144 /* Diagnostics.Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement */,
540
- 1838 /* Diagnostics.Private_identifiers_are_not_allowed_outside_class_bodies */,
583
+ 1858 /* Diagnostics.Private_identifiers_are_not_allowed_outside_class_bodies */,
541
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 */,
542
- 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 */,
543
586
  292 /* Diagnostics.Tagged_template_expressions_are_not_permitted_in_an_optional_chain */,
544
587
  75 /* Diagnostics.The_left_hand_side_of_a_for_of_statement_may_not_be_async */,
545
588
  145 /* Diagnostics.The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer */,
546
589
  146 /* Diagnostics.The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer */,
547
590
  5 /* Diagnostics.Trailing_comma_not_allowed */,
548
591
  90 /* Diagnostics.Variable_declaration_list_cannot_be_empty */,
549
- 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 */,
550
593
  2 /* Diagnostics.X_0_expected */,
551
- 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 */,
552
595
  66 /* Diagnostics.X_0_list_cannot_be_empty */,
553
596
  23 /* Diagnostics.X_0_modifier_already_seen */,
554
597
  58 /* Diagnostics.X_0_modifier_cannot_appear_on_a_constructor_declaration */,
@@ -560,13 +603,20 @@ const plainJSErrors = codesOf([
560
603
  116 /* Diagnostics.X_0_declarations_can_only_be_declared_inside_a_block */,
561
604
  115 /* Diagnostics.X_0_declarations_must_be_initialized */,
562
605
  128 /* Diagnostics.X_extends_clause_already_seen */,
563
- 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 */,
564
607
  302 /* Diagnostics.Class_constructor_may_not_be_a_generator */,
565
608
  276 /* Diagnostics.Class_constructor_may_not_be_an_accessor */,
566
609
  246 /* Diagnostics.X_await_expressions_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules */,
567
- 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 */,
568
611
  80 /* Diagnostics.Private_field_0_must_be_declared_in_an_enclosing_class */,
569
- 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 */,
570
620
  ]);
571
621
  function codesOf(messages) {
572
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. */