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
@@ -42,13 +42,13 @@ export class TypeEraser extends Transformer {
42
42
  case 86 /* SyntaxKind.ConstKeyword */:
43
43
  case 137 /* SyntaxKind.DeclareKeyword */:
44
44
  case 148 /* SyntaxKind.ReadonlyKeyword */:
45
- case 189 /* SyntaxKind.ArrayType */:
46
- case 190 /* SyntaxKind.TupleType */:
47
- case 191 /* SyntaxKind.OptionalType */:
48
- case 192 /* SyntaxKind.RestType */:
49
- case 188 /* SyntaxKind.TypeLiteral */:
50
- case 183 /* SyntaxKind.TypePredicate */:
51
- case 169 /* SyntaxKind.TypeParameter */:
45
+ case 190 /* SyntaxKind.ArrayType */:
46
+ case 191 /* SyntaxKind.TupleType */:
47
+ case 192 /* SyntaxKind.OptionalType */:
48
+ case 193 /* SyntaxKind.RestType */:
49
+ case 189 /* SyntaxKind.TypeLiteral */:
50
+ case 184 /* SyntaxKind.TypePredicate */:
51
+ case 170 /* SyntaxKind.TypeParameter */:
52
52
  case 132 /* SyntaxKind.AnyKeyword */:
53
53
  case 159 /* SyntaxKind.UnknownKeyword */:
54
54
  case 135 /* SyntaxKind.BooleanKeyword */:
@@ -57,33 +57,33 @@ export class TypeEraser extends Transformer {
57
57
  case 146 /* SyntaxKind.NeverKeyword */:
58
58
  case 115 /* SyntaxKind.VoidKeyword */:
59
59
  case 155 /* SyntaxKind.SymbolKeyword */:
60
- case 186 /* SyntaxKind.ConstructorType */:
61
- case 185 /* SyntaxKind.FunctionType */:
62
- case 187 /* SyntaxKind.TypeQuery */:
63
- case 184 /* SyntaxKind.TypeReference */:
64
- case 193 /* SyntaxKind.UnionType */:
65
- case 194 /* SyntaxKind.IntersectionType */:
66
- case 195 /* SyntaxKind.ConditionalType */:
67
- case 197 /* SyntaxKind.ParenthesizedType */:
68
- case 198 /* SyntaxKind.ThisType */:
69
- case 199 /* SyntaxKind.TypeOperator */:
70
- case 200 /* SyntaxKind.IndexedAccessType */:
71
- case 201 /* SyntaxKind.MappedType */:
72
- case 202 /* SyntaxKind.LiteralType */:
73
- case 182 /* SyntaxKind.IndexSignature */:
74
- case 346 /* SyntaxKind.JSImportDeclaration */:
75
- case 271 /* SyntaxKind.NamespaceExportDeclaration */:
60
+ case 187 /* SyntaxKind.ConstructorType */:
61
+ case 186 /* SyntaxKind.FunctionType */:
62
+ case 188 /* SyntaxKind.TypeQuery */:
63
+ case 185 /* SyntaxKind.TypeReference */:
64
+ case 194 /* SyntaxKind.UnionType */:
65
+ case 195 /* SyntaxKind.IntersectionType */:
66
+ case 196 /* SyntaxKind.ConditionalType */:
67
+ case 198 /* SyntaxKind.ParenthesizedType */:
68
+ case 199 /* SyntaxKind.ThisType */:
69
+ case 200 /* SyntaxKind.TypeOperator */:
70
+ case 201 /* SyntaxKind.IndexedAccessType */:
71
+ case 202 /* SyntaxKind.MappedType */:
72
+ case 203 /* SyntaxKind.LiteralType */:
73
+ case 183 /* SyntaxKind.IndexSignature */:
74
+ case 347 /* SyntaxKind.JSImportDeclaration */:
75
+ case 272 /* SyntaxKind.NamespaceExportDeclaration */:
76
76
  return undefined;
77
77
  case 102 /* SyntaxKind.InKeyword */:
78
78
  case 147 /* SyntaxKind.OutKeyword */:
79
- if (this.parentNode === undefined || this.parentNode.kind !== 227 /* SyntaxKind.BinaryExpression */)
79
+ if (this.parentNode === undefined || this.parentNode.kind !== 228 /* SyntaxKind.BinaryExpression */)
80
80
  return undefined;
81
81
  return this.visitEachChild(node);
82
- case 266 /* SyntaxKind.TypeAliasDeclaration */:
83
- case 345 /* SyntaxKind.JSTypeAliasDeclaration */:
84
- case 265 /* SyntaxKind.InterfaceDeclaration */:
82
+ case 267 /* SyntaxKind.TypeAliasDeclaration */:
83
+ case 346 /* SyntaxKind.JSTypeAliasDeclaration */:
84
+ case 266 /* SyntaxKind.InterfaceDeclaration */:
85
85
  return this.notEmitted(node);
86
- case 268 /* SyntaxKind.ModuleDeclaration */:
86
+ case 269 /* SyntaxKind.ModuleDeclaration */:
87
87
  if (node instanceof ModuleDeclaration) {
88
88
  if (!(node.name instanceof Identifier) ||
89
89
  !isInstantiatedModule(node, shouldPreserveConstEnums(this.options)) ||
@@ -92,11 +92,11 @@ export class TypeEraser extends Transformer {
92
92
  return this.visitEachChild(node);
93
93
  }
94
94
  break;
95
- case 234 /* SyntaxKind.ExpressionWithTypeArguments */:
95
+ case 235 /* SyntaxKind.ExpressionWithTypeArguments */:
96
96
  if (node instanceof ExpressionWithTypeArguments)
97
97
  return factory.updateExpressionWithTypeArguments(node, this.required(node.expression), undefined);
98
98
  break;
99
- case 173 /* SyntaxKind.PropertyDeclaration */:
99
+ case 174 /* SyntaxKind.PropertyDeclaration */:
100
100
  if (node instanceof PropertyDeclaration) {
101
101
  const ambientOrAbstract = hasSyntacticModifier(node, 128 /* ModifierFlags.Ambient */ | 64 /* ModifierFlags.Abstract */);
102
102
  if (ambientOrAbstract && !(this.options.experimentalDecorators === true && hasDecorators(node)))
@@ -104,35 +104,35 @@ export class TypeEraser extends Transformer {
104
104
  return factory.updatePropertyDeclaration(node, this.visitModifiers(node.modifiers), this.required(node.name), undefined, undefined, this.visitNode(node.initializer));
105
105
  }
106
106
  break;
107
- case 177 /* SyntaxKind.Constructor */:
107
+ case 178 /* SyntaxKind.Constructor */:
108
108
  if (node instanceof ConstructorDeclaration) {
109
109
  if (nodeIsMissing(node.body))
110
110
  return undefined;
111
111
  return factory.updateConstructorDeclaration(node, undefined, undefined, this.visitNodes(node.parameters), undefined, undefined, this.visitNode(node.body));
112
112
  }
113
113
  break;
114
- case 175 /* SyntaxKind.MethodDeclaration */:
114
+ case 176 /* SyntaxKind.MethodDeclaration */:
115
115
  if (node instanceof MethodDeclaration) {
116
116
  if (nodeIsMissing(node.body))
117
117
  return undefined;
118
118
  return factory.updateMethodDeclaration(node, this.visitModifiers(node.modifiers), node.asteriskToken, this.required(node.name), undefined, undefined, this.visitNodes(node.parameters), undefined, undefined, this.visitNode(node.body));
119
119
  }
120
120
  break;
121
- case 178 /* SyntaxKind.GetAccessor */:
121
+ case 179 /* SyntaxKind.GetAccessor */:
122
122
  if (node instanceof GetAccessorDeclaration) {
123
123
  if (nodeIsMissing(node.body) && hasSyntacticModifier(node, 64 /* ModifierFlags.Abstract */))
124
124
  return undefined;
125
125
  return factory.updateGetAccessorDeclaration(node, this.visitModifiers(node.modifiers), this.required(node.name), undefined, this.visitNodes(node.parameters), undefined, undefined, this.accessorBody(node.body));
126
126
  }
127
127
  break;
128
- case 179 /* SyntaxKind.SetAccessor */:
128
+ case 180 /* SyntaxKind.SetAccessor */:
129
129
  if (node instanceof SetAccessorDeclaration) {
130
130
  if (nodeIsMissing(node.body) && hasSyntacticModifier(node, 64 /* ModifierFlags.Abstract */))
131
131
  return undefined;
132
132
  return factory.updateSetAccessorDeclaration(node, this.visitModifiers(node.modifiers), this.required(node.name), undefined, this.visitNodes(node.parameters), undefined, undefined, this.accessorBody(node.body));
133
133
  }
134
134
  break;
135
- case 261 /* SyntaxKind.VariableDeclaration */:
135
+ case 262 /* SyntaxKind.VariableDeclaration */:
136
136
  if (node instanceof VariableDeclaration) {
137
137
  const updated = factory.updateVariableDeclaration(node, this.required(node.name), undefined, undefined, this.visitNode(node.initializer));
138
138
  if (node.type !== undefined)
@@ -140,79 +140,79 @@ export class TypeEraser extends Transformer {
140
140
  return updated;
141
141
  }
142
142
  break;
143
- case 299 /* SyntaxKind.HeritageClause */:
143
+ case 300 /* SyntaxKind.HeritageClause */:
144
144
  if (node instanceof HeritageClause) {
145
145
  if (node.token === 118 /* SyntaxKind.ImplementsKeyword */)
146
146
  return undefined;
147
147
  return factory.updateHeritageClause(node, node.token, this.visitNodes(node.types));
148
148
  }
149
149
  break;
150
- case 264 /* SyntaxKind.ClassDeclaration */:
150
+ case 265 /* SyntaxKind.ClassDeclaration */:
151
151
  if (node instanceof ClassDeclaration)
152
152
  return factory.updateClassDeclaration(node, this.visitModifiers(node.modifiers), this.optionalIdentifier(node.name), undefined, this.visitNodes(node.heritageClauses), this.visitNodes(node.members));
153
153
  break;
154
- case 232 /* SyntaxKind.ClassExpression */:
154
+ case 233 /* SyntaxKind.ClassExpression */:
155
155
  if (node instanceof ClassExpression)
156
156
  return factory.updateClassExpression(node, this.visitModifiers(node.modifiers), this.optionalIdentifier(node.name), undefined, this.visitNodes(node.heritageClauses), this.visitNodes(node.members));
157
157
  break;
158
- case 263 /* SyntaxKind.FunctionDeclaration */:
158
+ case 264 /* SyntaxKind.FunctionDeclaration */:
159
159
  if (node instanceof FunctionDeclaration) {
160
160
  if (nodeIsMissing(node.body))
161
161
  return this.notEmitted(node);
162
162
  return factory.updateFunctionDeclaration(node, this.visitModifiers(node.modifiers), node.asteriskToken, this.optionalIdentifier(node.name), undefined, this.visitNodes(node.parameters), undefined, undefined, this.visitNode(node.body));
163
163
  }
164
164
  break;
165
- case 219 /* SyntaxKind.FunctionExpression */:
165
+ case 220 /* SyntaxKind.FunctionExpression */:
166
166
  if (node instanceof FunctionExpression)
167
167
  return factory.updateFunctionExpression(node, this.visitModifiers(node.modifiers), node.asteriskToken, this.optionalIdentifier(node.name), undefined, this.visitNodes(node.parameters), undefined, undefined, this.required(node.body));
168
168
  break;
169
- case 220 /* SyntaxKind.ArrowFunction */:
169
+ case 221 /* SyntaxKind.ArrowFunction */:
170
170
  if (node instanceof ArrowFunction)
171
171
  return factory.updateArrowFunction(node, this.visitModifiers(node.modifiers), undefined, this.visitNodes(node.parameters), undefined, undefined, node.equalsGreaterThanToken, this.required(node.body));
172
172
  break;
173
- case 170 /* SyntaxKind.Parameter */:
173
+ case 171 /* SyntaxKind.Parameter */:
174
174
  if (node instanceof ParameterDeclaration)
175
175
  return this.visitParameter(node);
176
176
  break;
177
- case 214 /* SyntaxKind.CallExpression */:
177
+ case 215 /* SyntaxKind.CallExpression */:
178
178
  if (node instanceof CallExpression)
179
179
  return factory.updateCallExpression(node, this.required(node.expression), callQuestionDotToken(node), undefined, this.visitNodes(node.arguments), node.flags);
180
180
  break;
181
- case 215 /* SyntaxKind.NewExpression */:
181
+ case 216 /* SyntaxKind.NewExpression */:
182
182
  if (node instanceof NewExpression)
183
183
  return factory.updateNewExpression(node, this.required(node.expression), undefined, this.visitNodes(node.arguments));
184
184
  break;
185
- case 216 /* SyntaxKind.TaggedTemplateExpression */:
185
+ case 217 /* SyntaxKind.TaggedTemplateExpression */:
186
186
  if (node instanceof TaggedTemplateExpression)
187
187
  return factory.updateTaggedTemplateExpression(node, this.required(node.tag), node.questionDotToken, undefined, this.required(node.template), node.flags);
188
188
  break;
189
- case 236 /* SyntaxKind.NonNullExpression */:
190
- case 217 /* SyntaxKind.TypeAssertionExpression */:
191
- case 235 /* SyntaxKind.AsExpression */:
192
- case 239 /* SyntaxKind.SatisfiesExpression */:
189
+ case 237 /* SyntaxKind.NonNullExpression */:
190
+ case 218 /* SyntaxKind.TypeAssertionExpression */:
191
+ case 236 /* SyntaxKind.AsExpression */:
192
+ case 240 /* SyntaxKind.SatisfiesExpression */:
193
193
  return this.partiallyEmitted(node, getExpression(node));
194
- case 218 /* SyntaxKind.ParenthesizedExpression */:
194
+ case 219 /* SyntaxKind.ParenthesizedExpression */:
195
195
  if (node instanceof ParenthesizedExpression && !isJSDocTypeAssertion(node)) {
196
196
  const inner = skipParenthesesAndPartiallyEmitted(node.expression);
197
- if (inner.kind === 217 /* SyntaxKind.TypeAssertionExpression */ ||
198
- inner.kind === 235 /* SyntaxKind.AsExpression */ ||
199
- inner.kind === 239 /* SyntaxKind.SatisfiesExpression */)
197
+ if (inner.kind === 218 /* SyntaxKind.TypeAssertionExpression */ ||
198
+ inner.kind === 236 /* SyntaxKind.AsExpression */ ||
199
+ inner.kind === 240 /* SyntaxKind.SatisfiesExpression */)
200
200
  return this.partiallyEmitted(node, node.expression);
201
201
  }
202
202
  return this.visitEachChild(node);
203
- case 286 /* SyntaxKind.JsxSelfClosingElement */:
203
+ case 287 /* SyntaxKind.JsxSelfClosingElement */:
204
204
  if (node instanceof JsxSelfClosingElement)
205
205
  return factory.updateJsxSelfClosingElement(node, this.required(node.tagName), undefined, this.jsxAttributes(node.attributes));
206
206
  break;
207
- case 287 /* SyntaxKind.JsxOpeningElement */:
207
+ case 288 /* SyntaxKind.JsxOpeningElement */:
208
208
  if (node instanceof JsxOpeningElement)
209
209
  return factory.updateJsxOpeningElement(node, this.required(node.tagName), undefined, this.jsxAttributes(node.attributes));
210
210
  break;
211
- case 272 /* SyntaxKind.ImportEqualsDeclaration */:
211
+ case 273 /* SyntaxKind.ImportEqualsDeclaration */:
212
212
  if (node instanceof ImportEqualsDeclaration && node.isTypeOnly)
213
213
  return undefined;
214
214
  return this.visitEachChild(node);
215
- case 273 /* SyntaxKind.ImportDeclaration */:
215
+ case 274 /* SyntaxKind.ImportDeclaration */:
216
216
  if (node instanceof ImportDeclaration) {
217
217
  if (node.importClause === undefined)
218
218
  return node;
@@ -222,17 +222,24 @@ export class TypeEraser extends Transformer {
222
222
  return factory.updateImportDeclaration(node, node.modifiers, clause, node.moduleSpecifier, node.attributes);
223
223
  }
224
224
  break;
225
- case 274 /* SyntaxKind.ImportClause */:
225
+ case 275 /* SyntaxKind.ImportClause */:
226
226
  if (node instanceof ImportClause) {
227
227
  if (node.phaseModifier === 156 /* SyntaxKind.TypeKeyword */)
228
228
  return undefined;
229
- const bindings = this.visitNode(node.namedBindings);
229
+ let bindings = this.visitNode(node.namedBindings);
230
+ // With a default import, `{}` left by erasing type-only specifiers goes; a `{}` written in the source stays.
231
+ if (node.name !== undefined &&
232
+ bindings instanceof NamedImports &&
233
+ bindings.elements.nodes.length === 0 &&
234
+ node.namedBindings instanceof NamedImports &&
235
+ node.namedBindings.elements.nodes.length !== 0)
236
+ bindings = undefined;
230
237
  if (node.name === undefined && bindings === undefined)
231
238
  return undefined;
232
239
  return factory.updateImportClause(node, node.phaseModifier, node.name, bindings);
233
240
  }
234
241
  break;
235
- case 276 /* SyntaxKind.NamedImports */:
242
+ case 277 /* SyntaxKind.NamedImports */:
236
243
  if (node instanceof NamedImports) {
237
244
  if (node.elements.nodes.length === 0)
238
245
  return node;
@@ -242,9 +249,9 @@ export class TypeEraser extends Transformer {
242
249
  return factory.updateNamedImports(node, elements);
243
250
  }
244
251
  break;
245
- case 277 /* SyntaxKind.ImportSpecifier */:
252
+ case 278 /* SyntaxKind.ImportSpecifier */:
246
253
  return node instanceof ImportSpecifier && node.isTypeOnly ? undefined : node;
247
- case 279 /* SyntaxKind.ExportDeclaration */:
254
+ case 280 /* SyntaxKind.ExportDeclaration */:
248
255
  if (node instanceof ExportDeclaration) {
249
256
  if (node.isTypeOnly)
250
257
  return undefined;
@@ -257,7 +264,7 @@ export class TypeEraser extends Transformer {
257
264
  return factory.updateExportDeclaration(node, undefined, false, clause, this.visitNode(node.moduleSpecifier), node.attributes === undefined ? undefined : this.importAttributes(node.attributes));
258
265
  }
259
266
  break;
260
- case 280 /* SyntaxKind.NamedExports */:
267
+ case 281 /* SyntaxKind.NamedExports */:
261
268
  if (node instanceof NamedExports) {
262
269
  if (node.elements.nodes.length === 0)
263
270
  return node;
@@ -267,9 +274,9 @@ export class TypeEraser extends Transformer {
267
274
  return factory.updateNamedExports(node, elements);
268
275
  }
269
276
  break;
270
- case 282 /* SyntaxKind.ExportSpecifier */:
277
+ case 283 /* SyntaxKind.ExportSpecifier */:
271
278
  return node instanceof ExportSpecifier && node.isTypeOnly ? undefined : node;
272
- case 267 /* SyntaxKind.EnumDeclaration */:
279
+ case 268 /* SyntaxKind.EnumDeclaration */:
273
280
  if (hasSyntacticModifier(node, 4096 /* ModifierFlags.Const */))
274
281
  return node;
275
282
  return this.visitEachChild(node);
@@ -325,7 +332,7 @@ export class TypeEraser extends Transformer {
325
332
  const decorators = [];
326
333
  const nodes = node.modifiers.nodes;
327
334
  for (let i = 0; i < nodes.length; i++)
328
- if (nodes[i].kind === 171 /* SyntaxKind.Decorator */)
335
+ if (nodes[i].kind === 172 /* SyntaxKind.Decorator */)
329
336
  decorators.push(nodes[i]);
330
337
  const visited = this.visitArray(decorators);
331
338
  modifiers = this.factory.createModifierList(modifiers === undefined ? visited : modifiers.nodes.concat(visited));
@@ -3,7 +3,7 @@
3
3
  // what syntax shows: classes, enums, interfaces, type aliases and type parameters, through
4
4
  // imports. Types only the checker can compute (conditional, mapped and indexed access types,
5
5
  // inherited members) serialize as `Object`.
6
- import { ArrayTypeNode, EnumDeclaration, Identifier, ImportClause, InterfaceDeclaration, LiteralTypeNode, ParenthesizedTypeNode, PrefixUnaryExpression, QualifiedName, TypeAliasDeclaration, TypeLiteralNode, TypeOperatorNode, TypeParameterDeclaration, TypeReferenceNode, UnionTypeNode, VariableDeclaration, getIsTypeOnly, } from '../ast.js';
6
+ import { ArrayTypeNode, EnumDeclaration, Identifier, ImportClause, InterfaceDeclaration, LiteralTypeNode, ParenthesizedTypeNode, PrefixUnaryExpression, QualifiedName, TypeAliasDeclaration, TypeLiteralNode, TypeOperatorNode, TypeParameterDeclaration, TypeReferenceNode, UnionTypeNode, VariableDeclaration, getIsTypeOnly, getText, } from '../ast.js';
7
7
  import { getStrictOptionValue } from '../options.js';
8
8
  import { declarationAt, declarationCount, getDeclarations, Symbol } from '../symbol.js';
9
9
  /** What an unresolvable alias resolves to, as the checker's unknown symbol. */
@@ -72,11 +72,11 @@ function resolveEntityName(resolver, name, meaning, dontResolveAlias, location)
72
72
  return undefined;
73
73
  if (namespace === unknownSymbol)
74
74
  return namespace;
75
- let member = resolver.getExportOfSymbol(namespace, name.right.text);
75
+ let member = resolver.getExportOfSymbol(namespace, getText(name.right));
76
76
  if (member === undefined && (namespace.flags & 2097152 /* SymbolFlags.Alias */) !== 0) {
77
77
  const target = resolver.resolveAlias(namespace);
78
78
  if (target !== undefined)
79
- member = resolver.getExportOfSymbol(target, name.right.text);
79
+ member = resolver.getExportOfSymbol(target, getText(name.right));
80
80
  }
81
81
  if (member === undefined || (member.flags & (meaning | 2097152 /* SymbolFlags.Alias */)) === 0)
82
82
  return undefined;
@@ -112,10 +112,10 @@ function hasConstructSignature(resolver, type, location, depth) {
112
112
  return false;
113
113
  while (type instanceof ParenthesizedTypeNode)
114
114
  type = type.type;
115
- if (type.kind === 186 /* SyntaxKind.ConstructorType */)
115
+ if (type.kind === 187 /* SyntaxKind.ConstructorType */)
116
116
  return true;
117
117
  if (type instanceof TypeLiteralNode)
118
- return hasMember(type.members.nodes, 181 /* SyntaxKind.ConstructSignature */);
118
+ return hasMember(type.members.nodes, 182 /* SyntaxKind.ConstructSignature */);
119
119
  if (type instanceof TypeReferenceNode) {
120
120
  const symbol = resolveEntityName(resolver, type.typeName, 788968 /* SymbolFlags.Type */, false, location);
121
121
  if (symbol === undefined || symbol === unknownSymbol)
@@ -123,7 +123,7 @@ function hasConstructSignature(resolver, type, location, depth) {
123
123
  for (let i = 0; i < declarationCount(symbol); i++) {
124
124
  const declaration = declarationAt(symbol, i);
125
125
  if (declaration instanceof InterfaceDeclaration &&
126
- hasMember(declaration.members.nodes, 181 /* SyntaxKind.ConstructSignature */))
126
+ hasMember(declaration.members.nodes, 182 /* SyntaxKind.ConstructSignature */))
127
127
  return true;
128
128
  if (declaration instanceof TypeAliasDeclaration)
129
129
  return hasConstructSignature(resolver, declaration.type, declaration, depth + 1);
@@ -177,7 +177,7 @@ class TypeClassifier {
177
177
  for (let i = 0; i < declarationCount(symbol); i++) {
178
178
  const declaration = declarationAt(symbol, i);
179
179
  if (declaration instanceof InterfaceDeclaration &&
180
- hasMember(declaration.members.nodes, 180 /* SyntaxKind.CallSignature */))
180
+ hasMember(declaration.members.nodes, 181 /* SyntaxKind.CallSignature */))
181
181
  return 10 /* TypeReferenceSerializationKind.TypeWithCallSignature */;
182
182
  }
183
183
  }
@@ -223,35 +223,35 @@ class TypeClassifier {
223
223
  case 163 /* SyntaxKind.BigIntKeyword */:
224
224
  return 4 /* TypeReferenceSerializationKind.BigIntLikeType */;
225
225
  case 154 /* SyntaxKind.StringKeyword */:
226
- case 204 /* SyntaxKind.TemplateLiteralType */:
226
+ case 205 /* SyntaxKind.TemplateLiteralType */:
227
227
  return 5 /* TypeReferenceSerializationKind.StringLikeType */;
228
- case 190 /* SyntaxKind.TupleType */:
228
+ case 191 /* SyntaxKind.TupleType */:
229
229
  return 7 /* TypeReferenceSerializationKind.ArrayLikeType */;
230
230
  case 155 /* SyntaxKind.SymbolKeyword */:
231
231
  return 8 /* TypeReferenceSerializationKind.ESSymbolType */;
232
- case 185 /* SyntaxKind.FunctionType */:
232
+ case 186 /* SyntaxKind.FunctionType */:
233
233
  return 10 /* TypeReferenceSerializationKind.TypeWithCallSignature */;
234
- case 189 /* SyntaxKind.ArrayType */:
234
+ case 190 /* SyntaxKind.ArrayType */:
235
235
  return 7 /* TypeReferenceSerializationKind.ArrayLikeType */;
236
- case 202 /* SyntaxKind.LiteralType */:
236
+ case 203 /* SyntaxKind.LiteralType */:
237
237
  if (node instanceof LiteralTypeNode)
238
238
  return ofLiteral(node.literal);
239
239
  break;
240
- case 199 /* SyntaxKind.TypeOperator */:
240
+ case 200 /* SyntaxKind.TypeOperator */:
241
241
  if (node instanceof TypeOperatorNode) {
242
242
  if (node.operator === 158 /* SyntaxKind.UniqueKeyword */)
243
243
  return 8 /* TypeReferenceSerializationKind.ESSymbolType */;
244
244
  if (node.operator === 148 /* SyntaxKind.ReadonlyKeyword */ && node.type instanceof ArrayTypeNode)
245
245
  return 7 /* TypeReferenceSerializationKind.ArrayLikeType */;
246
- if (node.operator === 148 /* SyntaxKind.ReadonlyKeyword */ && node.type.kind === 190 /* SyntaxKind.TupleType */)
246
+ if (node.operator === 148 /* SyntaxKind.ReadonlyKeyword */ && node.type.kind === 191 /* SyntaxKind.TupleType */)
247
247
  return 7 /* TypeReferenceSerializationKind.ArrayLikeType */;
248
248
  }
249
249
  break;
250
- case 188 /* SyntaxKind.TypeLiteral */:
251
- if (node instanceof TypeLiteralNode && hasMember(node.members.nodes, 180 /* SyntaxKind.CallSignature */))
250
+ case 189 /* SyntaxKind.TypeLiteral */:
251
+ if (node instanceof TypeLiteralNode && hasMember(node.members.nodes, 181 /* SyntaxKind.CallSignature */))
252
252
  return 10 /* TypeReferenceSerializationKind.TypeWithCallSignature */;
253
253
  break;
254
- case 184 /* SyntaxKind.TypeReference */:
254
+ case 185 /* SyntaxKind.TypeReference */:
255
255
  if (node instanceof TypeReferenceNode) {
256
256
  const symbol = resolveEntityName(this.resolver, node.typeName, 788968 /* SymbolFlags.Type */, false, location);
257
257
  if (symbol === undefined || symbol === unknownSymbol)
@@ -259,7 +259,7 @@ class TypeClassifier {
259
259
  return this.ofSymbol(symbol, depth + 1);
260
260
  }
261
261
  break;
262
- case 193 /* SyntaxKind.UnionType */:
262
+ case 194 /* SyntaxKind.UnionType */:
263
263
  if (node instanceof UnionTypeNode)
264
264
  return this.ofUnion(node.types.nodes, location, depth);
265
265
  break;
@@ -311,7 +311,7 @@ function ofLiteral(literal) {
311
311
  return 6 /* TypeReferenceSerializationKind.BooleanType */;
312
312
  case 105 /* SyntaxKind.NullKeyword */:
313
313
  return 2 /* TypeReferenceSerializationKind.VoidNullableOrNeverType */;
314
- case 225 /* SyntaxKind.PrefixUnaryExpression */:
314
+ case 226 /* SyntaxKind.PrefixUnaryExpression */:
315
315
  if (literal instanceof PrefixUnaryExpression)
316
316
  return ofLiteral(literal.operand);
317
317
  break;
@@ -326,18 +326,18 @@ function getFirstIdentifier(node) {
326
326
  /** Whether an alias declaration is type-only, itself or through its import clause. */
327
327
  function isTypeOnlyImportOrExportDeclaration(node) {
328
328
  switch (node.kind) {
329
- case 277 /* SyntaxKind.ImportSpecifier */:
330
- case 282 /* SyntaxKind.ExportSpecifier */: {
329
+ case 278 /* SyntaxKind.ImportSpecifier */:
330
+ case 283 /* SyntaxKind.ExportSpecifier */: {
331
331
  if (getIsTypeOnly(node))
332
332
  return true;
333
333
  const clause = node.parent === undefined ? undefined : node.parent.parent;
334
334
  return clause !== undefined && isTypeOnlyImportClause(clause);
335
335
  }
336
- case 275 /* SyntaxKind.NamespaceImport */:
336
+ case 276 /* SyntaxKind.NamespaceImport */:
337
337
  return node.parent !== undefined && isTypeOnlyImportClause(node.parent);
338
- case 274 /* SyntaxKind.ImportClause */:
338
+ case 275 /* SyntaxKind.ImportClause */:
339
339
  return isTypeOnlyImportClause(node);
340
- case 272 /* SyntaxKind.ImportEqualsDeclaration */:
340
+ case 273 /* SyntaxKind.ImportEqualsDeclaration */:
341
341
  return getIsTypeOnly(node);
342
342
  }
343
343
  return false;
@@ -26,13 +26,13 @@ export class UsingTransformer extends Transformer {
26
26
  if (!this.facts.has(node, 4 /* SubtreeFacts.ContainsUsing */))
27
27
  return node;
28
28
  switch (node.kind) {
29
- case 307 /* SyntaxKind.SourceFile */:
29
+ case 308 /* SyntaxKind.SourceFile */:
30
30
  return this.visitSourceFile(node);
31
- case 242 /* SyntaxKind.Block */:
31
+ case 243 /* SyntaxKind.Block */:
32
32
  return this.visitBlock(node);
33
- case 249 /* SyntaxKind.ForStatement */:
33
+ case 250 /* SyntaxKind.ForStatement */:
34
34
  return this.visitForStatement(node);
35
- case 251 /* SyntaxKind.ForOfStatement */:
35
+ case 252 /* SyntaxKind.ForOfStatement */:
36
36
  return this.visitForOfStatement(node);
37
37
  }
38
38
  return this.visitEachChild(node);
@@ -218,17 +218,17 @@ export class UsingTransformer extends Transformer {
218
218
  if (topLevel === undefined)
219
219
  return node;
220
220
  switch (node.kind) {
221
- case 273 /* SyntaxKind.ImportDeclaration */:
222
- case 272 /* SyntaxKind.ImportEqualsDeclaration */:
223
- case 279 /* SyntaxKind.ExportDeclaration */:
224
- case 263 /* SyntaxKind.FunctionDeclaration */:
221
+ case 274 /* SyntaxKind.ImportDeclaration */:
222
+ case 273 /* SyntaxKind.ImportEqualsDeclaration */:
223
+ case 280 /* SyntaxKind.ExportDeclaration */:
224
+ case 264 /* SyntaxKind.FunctionDeclaration */:
225
225
  topLevel.push(node);
226
226
  return undefined;
227
- case 278 /* SyntaxKind.ExportAssignment */:
227
+ case 279 /* SyntaxKind.ExportAssignment */:
228
228
  return this.hoistExportAssignment(node);
229
- case 264 /* SyntaxKind.ClassDeclaration */:
229
+ case 265 /* SyntaxKind.ClassDeclaration */:
230
230
  return this.hoistClassDeclaration(node);
231
- case 244 /* SyntaxKind.VariableStatement */:
231
+ case 245 /* SyntaxKind.VariableStatement */:
232
232
  return this.hoistVariableStatement(node);
233
233
  }
234
234
  return node;
@@ -447,7 +447,7 @@ function getUsingKindOfStatements(statements) {
447
447
  function getBindingName(node) {
448
448
  if (node instanceof VariableDeclaration)
449
449
  return node.name;
450
- if (node.kind === 209 /* SyntaxKind.BindingElement */)
450
+ if (node.kind === 210 /* SyntaxKind.BindingElement */)
451
451
  return node.name;
452
452
  return undefined;
453
453
  }