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
@@ -4,9 +4,10 @@
4
4
  import { isUnicodeWhiteSpace, isWhiteSpaceLike } from './character-codes.js';
5
5
  import { createCompilerDiagnostic } from './diagnostics.js';
6
6
  import { isValidLocale } from './locale.js';
7
- import { buildOption, buildOptionsByName, compilerOptionsByName, watchOptionsByName, } from './option-declarations.js';
8
- import { setBuildOption, setCompilerOption, setWatchOption, } from './options.js';
9
- import { getNormalizedAbsolutePath } from './path.js';
7
+ import { buildOption, buildOptionsByName, compilerOptionsByName, } from './option-declarations.js';
8
+ import { setBuildOption, setCompilerOption, } from './options.js';
9
+ import { getNormalizedAbsolutePath, isNetworkPathValue } from './path.js';
10
+ import { getSpellingSuggestion } from './spelling.js';
10
11
  /** Reads response files. */
11
12
  export class CommandLineHost {
12
13
  currentDirectory;
@@ -16,43 +17,37 @@ export class CommandLineHost {
16
17
  }
17
18
  const compilerMode = {
18
19
  options: compilerOptionsByName,
19
- unknownOption: 1121 /* Diagnostics.Unknown_compiler_option_0 */,
20
- missingArgument: 1222 /* Diagnostics.Compiler_option_0_expects_an_argument */,
20
+ unknownOption: 1128 /* Diagnostics.Unknown_compiler_option_0 */,
21
+ unknownOptionDidYouMean: 1130 /* Diagnostics.Unknown_compiler_option_0_Did_you_mean_1 */,
22
+ missingArgument: 1233 /* Diagnostics.Compiler_option_0_expects_an_argument */,
21
23
  otherModeOptions: buildOptionsByName,
22
- wrongMode: 1167 /* Diagnostics.Compiler_option_0_may_only_be_used_with_build */,
24
+ wrongMode: 1174 /* Diagnostics.Compiler_option_0_may_only_be_used_with_build */,
23
25
  };
24
26
  const buildMode = {
25
27
  options: buildOptionsByName,
26
- unknownOption: 1147 /* Diagnostics.Unknown_build_option_0 */,
27
- missingArgument: 1148 /* Diagnostics.Build_option_0_requires_a_value_of_type_1 */,
28
+ unknownOption: 1154 /* Diagnostics.Unknown_build_option_0 */,
29
+ unknownOptionDidYouMean: 1159 /* Diagnostics.Unknown_build_option_0_Did_you_mean_1 */,
30
+ missingArgument: 1155 /* Diagnostics.Build_option_0_requires_a_value_of_type_1 */,
28
31
  otherModeOptions: compilerOptionsByName,
29
- wrongMode: 1168 /* Diagnostics.Compiler_option_0_may_not_be_used_with_build */,
30
- };
31
- const watchMode = {
32
- options: watchOptionsByName,
33
- unknownOption: 1153 /* Diagnostics.Unknown_watch_option_0 */,
34
- missingArgument: 1155 /* Diagnostics.Watch_option_0_requires_a_value_of_type_1 */,
32
+ wrongMode: 1175 /* Diagnostics.Compiler_option_0_may_not_be_used_with_build */,
35
33
  };
36
34
  export function parseCommandLine(args, host) {
37
35
  const parser = new CommandLineParser(compilerMode, host);
38
36
  parser.parseArguments(args);
39
37
  const cwd = host.currentDirectory;
40
38
  const options = {};
41
- const watchOptions = {};
42
39
  for (const [name, value] of parser.raw) {
43
40
  if (parser.droppedLists.has(name))
44
41
  continue;
45
42
  setCompilerOption(options, name, toAbsolutePaths(name, value, cwd));
46
- setWatchOption(watchOptions, name, value);
47
43
  }
48
- return { options, watchOptions, fileNames: parser.fileNames, errors: parser.errors, raw: parser.raw };
44
+ return { options, fileNames: parser.fileNames, errors: parser.errors, raw: parser.raw };
49
45
  }
50
46
  export function parseBuildCommandLine(args, host) {
51
47
  const parser = new CommandLineParser(buildMode, host);
52
48
  parser.parseArguments(args);
53
49
  const buildOptions = {};
54
50
  const compilerOptions = {};
55
- const watchOptions = {};
56
51
  for (const [name, value] of parser.raw) {
57
52
  if (parser.droppedLists.has(name))
58
53
  continue;
@@ -61,23 +56,21 @@ export function parseBuildCommandLine(args, host) {
61
56
  setCompilerOption(compilerOptions, name, value);
62
57
  }
63
58
  setBuildOption(buildOptions, name, value);
64
- setWatchOption(watchOptions, name, value);
65
59
  }
66
60
  const errors = parser.errors;
67
61
  const { clean, force, verbose, dry } = buildOptions;
68
62
  const watch = compilerOptions.watch;
69
63
  if (clean === true && force === true)
70
- errors.push(createCompilerDiagnostic(1465 /* Diagnostics.Options_0_and_1_cannot_be_combined */, 'clean', 'force'));
64
+ errors.push(createCompilerDiagnostic(1476 /* Diagnostics.Options_0_and_1_cannot_be_combined */, 'clean', 'force'));
71
65
  if (clean === true && verbose === true)
72
- errors.push(createCompilerDiagnostic(1465 /* Diagnostics.Options_0_and_1_cannot_be_combined */, 'clean', 'verbose'));
66
+ errors.push(createCompilerDiagnostic(1476 /* Diagnostics.Options_0_and_1_cannot_be_combined */, 'clean', 'verbose'));
73
67
  if (clean === true && watch === true)
74
- errors.push(createCompilerDiagnostic(1465 /* Diagnostics.Options_0_and_1_cannot_be_combined */, 'clean', 'watch'));
68
+ errors.push(createCompilerDiagnostic(1476 /* Diagnostics.Options_0_and_1_cannot_be_combined */, 'clean', 'watch'));
75
69
  if (watch === true && dry === true)
76
- errors.push(createCompilerDiagnostic(1465 /* Diagnostics.Options_0_and_1_cannot_be_combined */, 'watch', 'dry'));
70
+ errors.push(createCompilerDiagnostic(1476 /* Diagnostics.Options_0_and_1_cannot_be_combined */, 'watch', 'dry'));
77
71
  return {
78
72
  buildOptions,
79
73
  compilerOptions,
80
- watchOptions,
81
74
  projects: parser.fileNames.length > 0 ? parser.fileNames : ['.'],
82
75
  errors,
83
76
  raw: parser.raw,
@@ -109,6 +102,8 @@ class CommandLineParser {
109
102
  * though `raw` (and so `--init`) has `[]`.
110
103
  */
111
104
  droppedLists = new Set();
105
+ /** Response files being read, so one that includes itself is skipped. */
106
+ responseFiles = new Set();
112
107
  constructor(mode, host) {
113
108
  this.mode = mode;
114
109
  this.host = host;
@@ -126,16 +121,10 @@ class CommandLineParser {
126
121
  else if (arg.startsWith('-')) {
127
122
  const name = arg.startsWith('--') ? arg.slice(2) : arg.slice(1);
128
123
  const option = this.mode.options.find(name, true);
129
- if (option !== undefined) {
124
+ if (option !== undefined)
130
125
  i = this.parseOptionValue(args, i, option, this.mode);
131
- }
132
- else {
133
- const watchOption = watchOptionsByName.find(name, true);
134
- if (watchOption !== undefined)
135
- i = this.parseOptionValue(args, i, watchOption, watchMode);
136
- else
137
- this.errors.push(this.unknownOptionError(name, arg));
138
- }
126
+ else
127
+ this.errors.push(this.unknownOptionError(name, arg));
139
128
  }
140
129
  else {
141
130
  this.fileNames.push(arg);
@@ -145,17 +134,27 @@ class CommandLineParser {
145
134
  unknownOptionError(name, arg) {
146
135
  const other = this.mode.otherModeOptions?.get(name);
147
136
  if (other !== undefined && this.mode.wrongMode !== undefined) {
148
- const message = other.name === 'build' ? 1464 /* Diagnostics.Option_build_must_be_the_first_command_line_argument */ : this.mode.wrongMode;
137
+ const message = other.name === 'build' ? 1475 /* Diagnostics.Option_build_must_be_the_first_command_line_argument */ : this.mode.wrongMode;
149
138
  return createCompilerDiagnostic(message, name);
150
139
  }
140
+ const suggestion = getSpellingSuggestion(name, this.mode.options.names());
141
+ if (suggestion !== '')
142
+ return createCompilerDiagnostic(this.mode.unknownOptionDidYouMean, arg, suggestion);
151
143
  return createCompilerDiagnostic(this.mode.unknownOption, arg);
152
144
  }
153
145
  /** Splits a response file into arguments at whitespace; `"` quotes an argument. */
154
146
  parseResponseFile(fileName) {
155
147
  const path = getNormalizedAbsolutePath(fileName, this.host.currentDirectory);
148
+ if (this.responseFiles.has(path))
149
+ return;
150
+ this.responseFiles.add(path);
151
+ this.readResponseFile(fileName, path);
152
+ this.responseFiles.delete(path);
153
+ }
154
+ readResponseFile(fileName, path) {
156
155
  const text = this.host.readFile(path);
157
156
  if (text === undefined) {
158
- this.errors.push(createCompilerDiagnostic(1158 /* Diagnostics.Cannot_read_file_0 */, path));
157
+ this.errors.push(createCompilerDiagnostic(1165 /* Diagnostics.Cannot_read_file_0 */, path));
159
158
  return;
160
159
  }
161
160
  const args = [];
@@ -175,11 +174,11 @@ class CommandLineParser {
175
174
  pos++;
176
175
  }
177
176
  else {
178
- this.errors.push(createCompilerDiagnostic(1223 /* Diagnostics.Unterminated_quoted_string_in_response_file_0 */, path));
177
+ // The file name as written.
178
+ this.errors.push(createCompilerDiagnostic(1234 /* Diagnostics.Unterminated_quoted_string_in_response_file_0 */, fileName));
179
179
  }
180
180
  }
181
181
  else {
182
- // tsgo panics when the file ends in an argument; tsc accepts it.
183
182
  while (pos < text.length && text.charCodeAt(pos) > 32)
184
183
  pos++;
185
184
  args.push(text.slice(start, pos));
@@ -202,10 +201,10 @@ class CommandLineParser {
202
201
  this.raw.set(name, false);
203
202
  return i + 1;
204
203
  }
205
- this.errors.push(createCompilerDiagnostic(1382 /* Diagnostics.Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_false_or_null_on_command_line */, name));
204
+ this.errors.push(createCompilerDiagnostic(1393 /* Diagnostics.Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_false_or_null_on_command_line */, name));
206
205
  return value === 'true' ? i + 1 : i;
207
206
  }
208
- this.errors.push(createCompilerDiagnostic(1237 /* Diagnostics.Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_null_on_command_line */, name));
207
+ this.errors.push(createCompilerDiagnostic(1248 /* Diagnostics.Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_null_on_command_line */, name));
209
208
  return value !== '' && !value.startsWith('-') ? i + 1 : i;
210
209
  }
211
210
  if (next === undefined) {
@@ -234,7 +233,7 @@ class CommandLineParser {
234
233
  this.raw.set(name, value);
235
234
  }
236
235
  else {
237
- this.errors.push(createCompilerDiagnostic(1116 /* Diagnostics.Option_0_requires_value_to_be_greater_than_1 */, name, String(option.minValue ?? 0)));
236
+ this.errors.push(createCompilerDiagnostic(1123 /* Diagnostics.Option_0_requires_value_to_be_greater_than_1 */, name, String(option.minValue ?? 0)));
238
237
  }
239
238
  return i + 1;
240
239
  }
@@ -243,7 +242,11 @@ class CommandLineParser {
243
242
  this.raw.set(name, next !== 'false');
244
243
  return next === 'true' || next === 'false' ? i + 1 : i;
245
244
  case 'string':
246
- if (this.validateString(option, next))
245
+ if (!this.validateString(option, next))
246
+ return i + 1;
247
+ if (option.isFilePath === true && isNetworkPathValue(next, this.host.currentDirectory))
248
+ this.errors.push(createCompilerDiagnostic(1195 /* Diagnostics.Network_path_0_is_not_supported */, next));
249
+ else
247
250
  this.raw.set(name, next);
248
251
  return i + 1;
249
252
  case 'list': {
@@ -306,7 +309,7 @@ class CommandLineParser {
306
309
  }
307
310
  }
308
311
  else if (option.extraValidation === 'locale' && !isValidLocale(value)) {
309
- this.errors.push(createCompilerDiagnostic(1225 /* Diagnostics.Locale_must_be_an_IETF_BCP_47_language_tag_Examples_Colon_0_1 */, 'en', 'ja-jp'));
312
+ this.errors.push(createCompilerDiagnostic(1236 /* Diagnostics.Locale_must_be_an_IETF_BCP_47_language_tag_Examples_Colon_0_1 */, 'en', 'ja-jp'));
310
313
  return false;
311
314
  }
312
315
  return true;
@@ -320,7 +323,7 @@ function valueTypeName(option) {
320
323
  return option.kind;
321
324
  }
322
325
  function invalidEnumValueError(option) {
323
- return createCompilerDiagnostic(1224 /* Diagnostics.Argument_for_0_option_must_be_Colon_1 */, '--' + option.name, enumNamesList(option));
326
+ return createCompilerDiagnostic(1235 /* Diagnostics.Argument_for_0_option_must_be_Colon_1 */, '--' + option.name, enumNamesList(option));
324
327
  }
325
328
  /** `'a', 'b', 'c'`: the option's value names without deprecated ones. */
326
329
  export function enumNamesList(option) {
@@ -340,7 +343,7 @@ function specError(spec) {
340
343
  return undefined;
341
344
  const lastDotDot = spec.endsWith('/..') ? spec.length : spec.lastIndexOf('/../');
342
345
  return lastDotDot > wildcard
343
- ? 1140 /* Diagnostics.File_specification_cannot_contain_a_parent_directory_that_appears_after_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0 */
346
+ ? 1147 /* Diagnostics.File_specification_cannot_contain_a_parent_directory_that_appears_after_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0 */
344
347
  : undefined;
345
348
  }
346
349
  /** Parses a decimal 64-bit integer with an optional sign, like Go's `strconv.Atoi`. */
@@ -105,6 +105,11 @@ export declare abstract class CompilerProgram {
105
105
  readonly times: CompileTimes;
106
106
  readonly emitter: ProgramEmitter;
107
107
  constructor(checked: CheckedProgram, times: CompileTimes);
108
+ /**
109
+ * The time spent in declaration emit while checking, to count as emit time rather than check time, since
110
+ * the last call. Only an incremental program emits while checking, to compute signatures.
111
+ */
112
+ takeNestedEmitTime(): number;
108
113
  get program(): Program;
109
114
  get options(): CompilerOptions;
110
115
  getConfigFileParsingDiagnostics(): readonly Diagnostic[];
@@ -112,6 +117,12 @@ export declare abstract class CompilerProgram {
112
117
  getProgramDiagnostics(): Diagnostic[];
113
118
  /** See `CheckedProgram.getGlobalDiagnostics`. */
114
119
  getGlobalDiagnostics(withCheckerThreads?: boolean): Diagnostic[];
120
+ /**
121
+ * Whether the global diagnostics found by checking are reported after the semantic diagnostics. An
122
+ * incremental program has them in the semantic diagnostics of the files they were found in
123
+ * (`CheckedProgram.globalsInFileDiagnostics`).
124
+ */
125
+ reportsGlobalDiagnosticsOfChecking(): boolean;
115
126
  /** Semantic diagnostics of every file. */
116
127
  abstract getSemanticDiagnostics(): Diagnostic[];
117
128
  /** Declaration emit errors of every file. */
@@ -131,12 +142,16 @@ export declare class PlainProgram extends CompilerProgram {
131
142
  /** Under `noEmitOnError`, a skipped emit with the errors that prevent it; otherwise `undefined`. */
132
143
  export declare function handleNoEmitOnError(program: CompilerProgram): EmitResult | undefined;
133
144
  /**
134
- * Config and syntax errors; without syntax errors, program, global and semantic errors too, and
135
- * declaration errors under `noEmit` (or `withDeclarationDiagnostics`). With `declarationsLater`, the
136
- * declaration errors are left to `program.emit`, which reports them under `noEmit` (without
137
- * `noEmitOnError`) whether or not other errors were found.
145
+ * Config and syntax errors; without syntax errors, program, global and semantic errors too, and, when
146
+ * there are none of these, declaration errors under `noEmit` (or `withDeclarationDiagnostics`). With
147
+ * `declarationsLater`, the declaration errors are left to the caller (`declarationDiagnosticsDue`).
138
148
  */
139
149
  export declare function getDiagnosticsOfProgram(program: CompilerProgram, withDeclarationDiagnostics: boolean, declarationsLater?: boolean): Diagnostic[];
150
+ /**
151
+ * Whether `getDiagnosticsOfProgram` adds the declaration errors to `diagnostics`: under `noEmit` (or
152
+ * `withDeclarationDiagnostics`) with declarations, when only config errors were found.
153
+ */
154
+ export declare function declarationDiagnosticsDue(program: CompilerProgram, diagnostics: readonly Diagnostic[], withDeclarationDiagnostics: boolean): boolean;
140
155
  /** Combines emit results in order. */
141
156
  export declare function combineEmitResults(results: readonly EmitResult[]): EmitResult;
142
157
  export { CheckedProgram };
@@ -311,6 +311,13 @@ export class CompilerProgram {
311
311
  this.times = times;
312
312
  this.emitter = new ProgramEmitter(checked);
313
313
  }
314
+ /**
315
+ * The time spent in declaration emit while checking, to count as emit time rather than check time, since
316
+ * the last call. Only an incremental program emits while checking, to compute signatures.
317
+ */
318
+ takeNestedEmitTime() {
319
+ return 0;
320
+ }
314
321
  get program() {
315
322
  return this.checked.program;
316
323
  }
@@ -330,6 +337,14 @@ export class CompilerProgram {
330
337
  getGlobalDiagnostics(withCheckerThreads = true) {
331
338
  return this.checked.getGlobalDiagnostics(withCheckerThreads);
332
339
  }
340
+ /**
341
+ * Whether the global diagnostics found by checking are reported after the semantic diagnostics. An
342
+ * incremental program has them in the semantic diagnostics of the files they were found in
343
+ * (`CheckedProgram.globalsInFileDiagnostics`).
344
+ */
345
+ reportsGlobalDiagnosticsOfChecking() {
346
+ return !this.checked.globalsInFileDiagnostics;
347
+ }
333
348
  }
334
349
  /** Collects declaration emit errors without writing anything. */
335
350
  class DiscardingWriter extends OutputWriter {
@@ -363,11 +378,13 @@ export class PlainProgram extends CompilerProgram {
363
378
  }
364
379
  emit(writer) {
365
380
  const options = this.options;
366
- if (options.noEmit !== true) {
367
- const skipped = handleNoEmitOnError(this);
368
- if (skipped !== undefined)
369
- return skipped;
370
- }
381
+ // A `noEmit` program emits nothing, and its emit is not skipped (tsgo's `HandleNoEmitOptions`): its
382
+ // declaration errors come with its other diagnostics (`getDiagnosticsOfProgram`).
383
+ if (options.noEmit === true)
384
+ return new EmitResult();
385
+ const skipped = handleNoEmitOnError(this);
386
+ if (skipped !== undefined)
387
+ return skipped;
371
388
  const program = this.program;
372
389
  const files = program.getSourceFiles();
373
390
  const parallel = this.checked.emittedInParallel;
@@ -379,7 +396,8 @@ export class PlainProgram extends CompilerProgram {
379
396
  const emitted = parallel[i];
380
397
  // The declaration thread emitted the declarations of the files it could (parallel-emit.ts).
381
398
  const ahead = this.checked.declarationsEmittedAhead;
382
- const declarations = () => ahead?.[i] ?? this.emitter.emit([file], 2 /* EmitOnly.Dts */, writer);
399
+ // The file's JavaScript is emitted too, here or on an emit thread.
400
+ const declarations = () => ahead?.[i] ?? this.emitter.emit([file], 4 /* EmitOnly.DtsAfterJs */, writer);
383
401
  if (emitted === undefined)
384
402
  return ahead !== undefined
385
403
  ? combineEmitResults([this.emitter.emit([file], 1 /* EmitOnly.Js */, writer), declarations()])
@@ -390,14 +408,6 @@ export class PlainProgram extends CompilerProgram {
390
408
  return written;
391
409
  return combineEmitResults([written, declarations()]);
392
410
  }));
393
- if (options.noEmit === true) {
394
- // Emit is skipped only for files that would have been emitted.
395
- result.emitSkipped = files.some((file) => program.sourceFileMayBeEmitted(file, false));
396
- // Declaration emit still runs for its errors, as in tsgo, also when other errors were found.
397
- if (getEmitDeclarations(options) && options.noEmitOnError !== true)
398
- for (const d of this.getDeclarationDiagnostics())
399
- result.diagnostics.push(d);
400
- }
401
411
  return result;
402
412
  }
403
413
  }
@@ -415,10 +425,9 @@ export function handleNoEmitOnError(program) {
415
425
  return result;
416
426
  }
417
427
  /**
418
- * Config and syntax errors; without syntax errors, program, global and semantic errors too, and
419
- * declaration errors under `noEmit` (or `withDeclarationDiagnostics`). With `declarationsLater`, the
420
- * declaration errors are left to `program.emit`, which reports them under `noEmit` (without
421
- * `noEmitOnError`) whether or not other errors were found.
428
+ * Config and syntax errors; without syntax errors, program, global and semantic errors too, and, when
429
+ * there are none of these, declaration errors under `noEmit` (or `withDeclarationDiagnostics`). With
430
+ * `declarationsLater`, the declaration errors are left to the caller (`declarationDiagnosticsDue`).
422
431
  */
423
432
  export function getDiagnosticsOfProgram(program, withDeclarationDiagnostics, declarationsLater = false) {
424
433
  const result = [...program.getConfigFileParsingDiagnostics()];
@@ -440,23 +449,33 @@ export function getDiagnosticsOfProgram(program, withDeclarationDiagnostics, dec
440
449
  if (result.length === configCount) {
441
450
  const checkStart = performance.now();
442
451
  const semantic = program.getSemanticDiagnostics();
443
- program.times.checkTime = performance.now() - checkStart;
452
+ // Declaration emit that computed signatures while checking counts as emit time, as in TypeScript 7.1.
453
+ const nestedEmitTime = program.takeNestedEmitTime();
454
+ program.times.checkTime = Math.max(0, performance.now() - checkStart - nestedEmitTime);
455
+ program.times.emitTime += nestedEmitTime;
444
456
  for (const d of semantic)
445
457
  result.push(d);
446
458
  // Checking may have found more, such as missing global types.
447
- for (const d of program.getGlobalDiagnostics())
448
- result.push(d);
459
+ if (program.reportsGlobalDiagnosticsOfChecking())
460
+ for (const d of program.getGlobalDiagnostics())
461
+ result.push(d);
449
462
  mark('semantic diagnostics');
450
463
  }
451
- if (!declarationsLater &&
452
- (withDeclarationDiagnostics || options.noEmit === true) &&
453
- getEmitDeclarations(options) &&
454
- result.length === configCount) {
464
+ if (!declarationsLater && declarationDiagnosticsDue(program, result, withDeclarationDiagnostics))
455
465
  for (const d of program.getDeclarationDiagnostics())
456
466
  result.push(d);
457
- }
458
467
  return result;
459
468
  }
469
+ /**
470
+ * Whether `getDiagnosticsOfProgram` adds the declaration errors to `diagnostics`: under `noEmit` (or
471
+ * `withDeclarationDiagnostics`) with declarations, when only config errors were found.
472
+ */
473
+ export function declarationDiagnosticsDue(program, diagnostics, withDeclarationDiagnostics) {
474
+ const options = program.options;
475
+ return ((withDeclarationDiagnostics || options.noEmit === true) &&
476
+ getEmitDeclarations(options) &&
477
+ diagnostics.length === program.getConfigFileParsingDiagnostics().length);
478
+ }
460
479
  /** Combines emit results in order. */
461
480
  export function combineEmitResults(results) {
462
481
  const result = new EmitResult();