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
@@ -21,6 +21,7 @@ import {
21
21
  isIncremental,
22
22
  shouldPreserveConstEnums,
23
23
  type CompilerOptions,
24
+ type PluginImport,
24
25
  } from './options.js';
25
26
  import { getDirectoryPath, getNormalizedAbsolutePath, getRelativePathFromFile } from './path.js';
26
27
 
@@ -45,6 +46,8 @@ const hiddenOptions = new Set([
45
46
  'init',
46
47
  'listFilesOnly',
47
48
  'listEmittedFiles',
49
+ // TypeScript 7.1's generated serializer has no `listFiles`.
50
+ 'listFiles',
48
51
  'project',
49
52
  'build',
50
53
  'version',
@@ -85,7 +88,12 @@ export function showConfig(input: ShowConfigInput, configFileName: string): stri
85
88
  if (option === undefined || hiddenOptions.has(option.name)) continue;
86
89
  if (option.category === Diagnostics.Command_line_Options || option.category === Diagnostics.Output_Formatting)
87
90
  continue;
88
- const json = name === 'paths' ? pathsJson(input.options.paths) : optionJson(option, input.options, paths);
91
+ const json =
92
+ name === 'paths'
93
+ ? pathsJson(input.options.paths)
94
+ : name === 'plugins'
95
+ ? pluginsJson(input.options.plugins)
96
+ : optionJson(option, input.options, paths);
89
97
  if (json !== undefined) shown.set(option.name, json);
90
98
  }
91
99
 
@@ -228,6 +236,15 @@ function jsonArray(items: readonly string[], level: number): string {
228
236
  return '[\n' + inner + items.map((item) => JSON.stringify(item)).join(',\n' + inner) + '\n' + indent(level) + ']';
229
237
  }
230
238
 
239
+ function pluginsJson(plugins: readonly PluginImport[] | undefined): string | undefined {
240
+ if (plugins === undefined) return undefined;
241
+ if (plugins.length === 0) return '[]';
242
+ const items = plugins.map(
243
+ (plugin) => indent(3) + '{\n' + indent(4) + '"name": ' + JSON.stringify(plugin.name) + '\n' + indent(3) + '}',
244
+ );
245
+ return '[\n' + items.join(',\n') + '\n' + indent(2) + ']';
246
+ }
247
+
231
248
  function pathsJson(paths: ReadonlyMap<string, readonly string[] | undefined> | undefined): string | undefined {
232
249
  if (paths === undefined) return undefined;
233
250
  if (paths.size === 0) return '{}';
@@ -255,8 +255,8 @@ export class SourceMapGenerator {
255
255
  let json =
256
256
  '{"version":3,"file":' +
257
257
  jsonString(this.file) +
258
- ',"sourceRoot":' +
259
- jsonString(this.sourceRoot) +
258
+ // An empty source root is left out, as tsgo's `omitzero` does.
259
+ (this.sourceRoot === '' ? '' : ',"sourceRoot":' + jsonString(this.sourceRoot)) +
260
260
  ',"sources":' +
261
261
  jsonStrings(this.sources) +
262
262
  ',"names":' +
@@ -39,7 +39,11 @@ import { type Checker, ExternalModuleContainerIndex, SymbolAccessibilityCaches,
39
39
  import { getEffectiveDeclarationFlags } from './checker-declarations.js';
40
40
  import { getDeclaredTypeOfSymbol } from './checker-declared-types.js';
41
41
  import { checkExpressionCached } from './checker-expressions.js';
42
- import { resolveExternalModuleName, resolveExternalModuleSymbol } from './checker-modules.js';
42
+ import {
43
+ getImportAttributesTypeForModuleSpecifier,
44
+ resolveExternalModuleName,
45
+ resolveExternalModuleSymbol,
46
+ } from './checker-modules.js';
43
47
  import {
44
48
  getExportsOfSymbol,
45
49
  getMergedSymbol,
@@ -351,7 +355,13 @@ function getAlternativeContainingModules(c: Checker, symbol: Symbol, enclosingDe
351
355
  for (const importRef of containingFile.imports) {
352
356
  // Synthesized specifiers can't be resolved.
353
357
  if ((importRef.flags & NodeFlags.Synthesized) !== 0) continue;
354
- const resolvedModule = resolveExternalModuleName(c, enclosingDeclaration, importRef, true);
358
+ const resolvedModule = resolveExternalModuleName(
359
+ c,
360
+ enclosingDeclaration,
361
+ importRef,
362
+ true,
363
+ getImportAttributesTypeForModuleSpecifier(c, importRef),
364
+ );
355
365
  if (resolvedModule === undefined) continue;
356
366
  if (getAliasForSymbolInContainer(c, resolvedModule, symbol) === undefined) continue;
357
367
  results.push(resolvedModule);
@@ -718,11 +728,24 @@ class ChainSearch {
718
728
  isAccessible(fromTable: Symbol, resolvedAlias: Symbol | undefined, ignoreQualification: boolean): boolean {
719
729
  const c = this.c;
720
730
  const symbol = getMergedSymbol(c, this.symbol);
721
- const likeSymbols =
731
+ let likeSymbols =
722
732
  this.symbol === resolvedAlias ||
723
733
  this.symbol === fromTable ||
724
734
  (resolvedAlias !== undefined && symbol === getMergedSymbol(c, resolvedAlias)) ||
725
735
  symbol === getMergedSymbol(c, fromTable);
736
+ // An alias of an alias, such as `export =` of a class that a top-level export also names, resolves further.
737
+ if (!likeSymbols && resolvedAlias !== undefined && (resolvedAlias.flags & SymbolFlags.Alias) !== 0) {
738
+ const seen = new Set<Symbol>();
739
+ let alias = resolvedAlias;
740
+ while ((alias.flags & SymbolFlags.Alias) !== 0 && !seen.has(alias)) {
741
+ seen.add(alias);
742
+ alias = getMergedSymbol(c, resolveAlias(c, alias));
743
+ if (symbol === alias) {
744
+ likeSymbols = true;
745
+ break;
746
+ }
747
+ }
748
+ }
726
749
  if (!likeSymbols) return false;
727
750
  // An external module in the global table isn't accessible by name; otherwise the name must be qualifiable.
728
751
  return (
@@ -124,22 +124,26 @@ export const enum CheckFlags {
124
124
  ContainsPublic = 1 << 8,
125
125
  ContainsProtected = 1 << 9,
126
126
  ContainsPrivate = 1 << 10,
127
- ContainsStatic = 1 << 11,
127
+ /** A synthetic property with public, protected or private write access in a constituent. */
128
+ ContainsWritePublic = 1 << 11,
129
+ ContainsWriteProtected = 1 << 12,
130
+ ContainsWritePrivate = 1 << 13,
131
+ ContainsStatic = 1 << 14,
128
132
  /** Late-bound from a computed property name. */
129
- Late = 1 << 12,
130
- ReverseMapped = 1 << 13,
131
- OptionalParameter = 1 << 14,
132
- RestParameter = 1 << 15,
133
+ Late = 1 << 15,
134
+ ReverseMapped = 1 << 16,
135
+ OptionalParameter = 1 << 17,
136
+ RestParameter = 1 << 18,
133
137
  /** The type is computed on demand. */
134
- DeferredType = 1 << 16,
135
- HasNeverType = 1 << 17,
136
- Mapped = 1 << 18,
137
- StripOptional = 1 << 19,
138
- Unresolved = 1 << 20,
139
- IsDiscriminantComputed = 1 << 21,
140
- IsDiscriminant = 1 << 22,
138
+ DeferredType = 1 << 19,
139
+ HasNeverType = 1 << 20,
140
+ Mapped = 1 << 21,
141
+ StripOptional = 1 << 22,
142
+ Unresolved = 1 << 23,
143
+ IsDiscriminantComputed = 1 << 24,
144
+ IsDiscriminant = 1 << 25,
141
145
  /** Created from an index signature. */
142
- IndexSymbol = 1 << 23,
146
+ IndexSymbol = 1 << 26,
143
147
  Synthetic = SyntheticProperty | SyntheticMethod,
144
148
  NonUniformAndLiteral = HasNonUniformType | HasLiteralType,
145
149
  Partial = ReadPartial | WritePartial,
@@ -156,12 +160,17 @@ export class SymbolRareFields implements ProgramLifetime {
156
160
  valueDeclaration: Node | undefined = undefined;
157
161
  }
158
162
 
159
- /** In `Symbol.bits`, above the check flags: the value declaration is the first declaration. */
160
- const valueDeclarationIsFirst = 1 << 30;
163
+ /**
164
+ * In `Symbol.bits`, above the check flags: the value declaration is the first declaration. A const enum
165
+ * member, so that native builds read it as a constant rather than as a module variable.
166
+ */
167
+ const enum SymbolBits {
168
+ ValueDeclarationIsFirst = 1 << 30,
169
+ }
161
170
 
162
171
  export class Symbol implements ProgramLifetime {
163
172
  flags: SymbolFlags;
164
- /** The check flags, and `valueDeclarationIsFirst`. */
173
+ /** The check flags, and `SymbolBits.ValueDeclarationIsFirst`. */
165
174
  private bits: number;
166
175
  readonly name: string;
167
176
  /**
@@ -186,19 +195,19 @@ export class Symbol implements ProgramLifetime {
186
195
  }
187
196
 
188
197
  get checkFlags(): CheckFlags {
189
- return (this.bits & ~valueDeclarationIsFirst) as CheckFlags;
198
+ return (this.bits & ~SymbolBits.ValueDeclarationIsFirst) as CheckFlags;
190
199
  }
191
200
 
192
201
  set checkFlags(flags: CheckFlags) {
193
- this.bits = (this.bits & valueDeclarationIsFirst) | flags;
202
+ this.bits = (this.bits & SymbolBits.ValueDeclarationIsFirst) | flags;
194
203
  }
195
204
 
196
205
  /** Makes `node` the first declaration, keeping the value declaration. */
197
206
  setFirst(node: Node | undefined): void {
198
- if ((this.bits & valueDeclarationIsFirst) !== 0 && node !== this.declaration) {
207
+ if ((this.bits & SymbolBits.ValueDeclarationIsFirst) !== 0 && node !== this.declaration) {
199
208
  // The value declaration stays what it was.
200
209
  this.rareFieldsOrNew().valueDeclaration = this.declaration;
201
- this.bits &= ~valueDeclarationIsFirst;
210
+ this.bits &= ~SymbolBits.ValueDeclarationIsFirst;
202
211
  }
203
212
  this.declaration = node;
204
213
  }
@@ -208,7 +217,7 @@ export class Symbol implements ProgramLifetime {
208
217
  * says; any other is kept in the rare fields.
209
218
  */
210
219
  get valueDeclaration(): Node | undefined {
211
- if ((this.bits & valueDeclarationIsFirst) !== 0) return this.declaration;
220
+ if ((this.bits & SymbolBits.ValueDeclarationIsFirst) !== 0) return this.declaration;
212
221
  const group = this.rareFields;
213
222
  return group === undefined ? undefined : group.valueDeclaration;
214
223
  }
@@ -216,11 +225,11 @@ export class Symbol implements ProgramLifetime {
216
225
  set valueDeclaration(node: Node | undefined) {
217
226
  const group = this.rareFields;
218
227
  if (node !== undefined && node === this.declaration) {
219
- this.bits |= valueDeclarationIsFirst;
228
+ this.bits |= SymbolBits.ValueDeclarationIsFirst;
220
229
  if (group !== undefined) group.valueDeclaration = undefined;
221
230
  return;
222
231
  }
223
- this.bits &= ~valueDeclarationIsFirst;
232
+ this.bits &= ~SymbolBits.ValueDeclarationIsFirst;
224
233
  if (node !== undefined || group !== undefined) this.rareFieldsOrNew().valueDeclaration = node;
225
234
  }
226
235
 
@@ -315,7 +324,7 @@ export class Symbol implements ProgramLifetime {
315
324
 
316
325
  /** Whether this is the symbol of an external module, named by its quoted path. */
317
326
  isExternalModule(): boolean {
318
- return (this.flags & SymbolFlags.Module) !== 0 && this.name.charCodeAt(0) === 0x22;
327
+ return (this.flags & SymbolFlags.Module) !== 0 && tryGetAmbientModuleNameFromSymbolName(this.name) !== undefined;
319
328
  }
320
329
 
321
330
  /** The flags of this symbol and its export symbol. */
@@ -499,6 +508,19 @@ export function getMembers(symbol: Symbol): SymbolTable {
499
508
  */
500
509
  export const internalSymbolNamePrefix = '￾';
501
510
 
511
+ /**
512
+ * The module name of an ambient module symbol's name: `"name"`, or for a pattern module with import
513
+ * attributes, the internal symbol name prefix, `"name"pattern@` and the id of the attributes node.
514
+ */
515
+ export function tryGetAmbientModuleNameFromSymbolName(name: string): string | undefined {
516
+ if (name.length >= 2 && name.charCodeAt(0) === 0x22 && name.charCodeAt(name.length - 1) === 0x22)
517
+ return name.substring(1, name.length - 1);
518
+ if (!name.startsWith(internalSymbolNamePrefix + '"')) return undefined;
519
+ const markerIndex = name.lastIndexOf('"pattern@');
520
+ if (markerIndex < internalSymbolNamePrefix.length + 2) return undefined;
521
+ return name.substring(internalSymbolNamePrefix.length + 1, markerIndex);
522
+ }
523
+
502
524
  export const enum InternalSymbolName {
503
525
  /** Call signatures. */
504
526
  Call = '￾call',
@@ -169,191 +169,192 @@ export const enum SyntaxKind {
169
169
  OverrideKeyword = 164,
170
170
  OfKeyword = 165,
171
171
  DeferKeyword = 166,
172
- QualifiedName = 167,
173
- ComputedPropertyName = 168,
174
- TypeParameter = 169,
175
- Parameter = 170,
176
- Decorator = 171,
177
- PropertySignature = 172,
178
- PropertyDeclaration = 173,
179
- MethodSignature = 174,
180
- MethodDeclaration = 175,
181
- ClassStaticBlockDeclaration = 176,
182
- Constructor = 177,
183
- GetAccessor = 178,
184
- SetAccessor = 179,
185
- CallSignature = 180,
186
- ConstructSignature = 181,
187
- IndexSignature = 182,
188
- TypePredicate = 183,
189
- TypeReference = 184,
190
- FunctionType = 185,
191
- ConstructorType = 186,
192
- TypeQuery = 187,
193
- TypeLiteral = 188,
194
- ArrayType = 189,
195
- TupleType = 190,
196
- OptionalType = 191,
197
- RestType = 192,
198
- UnionType = 193,
199
- IntersectionType = 194,
200
- ConditionalType = 195,
201
- InferType = 196,
202
- ParenthesizedType = 197,
203
- ThisType = 198,
204
- TypeOperator = 199,
205
- IndexedAccessType = 200,
206
- MappedType = 201,
207
- LiteralType = 202,
208
- NamedTupleMember = 203,
209
- TemplateLiteralType = 204,
210
- TemplateLiteralTypeSpan = 205,
211
- ImportType = 206,
212
- ObjectBindingPattern = 207,
213
- ArrayBindingPattern = 208,
214
- BindingElement = 209,
215
- ArrayLiteralExpression = 210,
216
- ObjectLiteralExpression = 211,
217
- PropertyAccessExpression = 212,
218
- ElementAccessExpression = 213,
219
- CallExpression = 214,
220
- NewExpression = 215,
221
- TaggedTemplateExpression = 216,
222
- TypeAssertionExpression = 217,
223
- ParenthesizedExpression = 218,
224
- FunctionExpression = 219,
225
- ArrowFunction = 220,
226
- DeleteExpression = 221,
227
- TypeOfExpression = 222,
228
- VoidExpression = 223,
229
- AwaitExpression = 224,
230
- PrefixUnaryExpression = 225,
231
- PostfixUnaryExpression = 226,
232
- BinaryExpression = 227,
233
- ConditionalExpression = 228,
234
- TemplateExpression = 229,
235
- YieldExpression = 230,
236
- SpreadElement = 231,
237
- ClassExpression = 232,
238
- OmittedExpression = 233,
239
- ExpressionWithTypeArguments = 234,
240
- AsExpression = 235,
241
- NonNullExpression = 236,
242
- MetaProperty = 237,
243
- SyntheticExpression = 238,
244
- SatisfiesExpression = 239,
245
- TemplateSpan = 240,
246
- SemicolonClassElement = 241,
247
- Block = 242,
248
- EmptyStatement = 243,
249
- VariableStatement = 244,
250
- ExpressionStatement = 245,
251
- IfStatement = 246,
252
- DoStatement = 247,
253
- WhileStatement = 248,
254
- ForStatement = 249,
255
- ForInStatement = 250,
256
- ForOfStatement = 251,
257
- ContinueStatement = 252,
258
- BreakStatement = 253,
259
- ReturnStatement = 254,
260
- WithStatement = 255,
261
- SwitchStatement = 256,
262
- LabeledStatement = 257,
263
- ThrowStatement = 258,
264
- TryStatement = 259,
265
- DebuggerStatement = 260,
266
- VariableDeclaration = 261,
267
- VariableDeclarationList = 262,
268
- FunctionDeclaration = 263,
269
- ClassDeclaration = 264,
270
- InterfaceDeclaration = 265,
271
- TypeAliasDeclaration = 266,
272
- EnumDeclaration = 267,
273
- ModuleDeclaration = 268,
274
- ModuleBlock = 269,
275
- CaseBlock = 270,
276
- NamespaceExportDeclaration = 271,
277
- ImportEqualsDeclaration = 272,
278
- ImportDeclaration = 273,
279
- ImportClause = 274,
280
- NamespaceImport = 275,
281
- NamedImports = 276,
282
- ImportSpecifier = 277,
283
- ExportAssignment = 278,
284
- ExportDeclaration = 279,
285
- NamedExports = 280,
286
- NamespaceExport = 281,
287
- ExportSpecifier = 282,
288
- MissingDeclaration = 283,
289
- ExternalModuleReference = 284,
290
- JsxElement = 285,
291
- JsxSelfClosingElement = 286,
292
- JsxOpeningElement = 287,
293
- JsxClosingElement = 288,
294
- JsxFragment = 289,
295
- JsxOpeningFragment = 290,
296
- JsxClosingFragment = 291,
297
- JsxAttribute = 292,
298
- JsxAttributes = 293,
299
- JsxSpreadAttribute = 294,
300
- JsxExpression = 295,
301
- JsxNamespacedName = 296,
302
- CaseClause = 297,
303
- DefaultClause = 298,
304
- HeritageClause = 299,
305
- CatchClause = 300,
306
- ImportAttributes = 301,
307
- ImportAttribute = 302,
308
- PropertyAssignment = 303,
309
- ShorthandPropertyAssignment = 304,
310
- SpreadAssignment = 305,
311
- EnumMember = 306,
312
- SourceFile = 307,
313
- JSDocTypeExpression = 308,
314
- JSDocNameReference = 309,
315
- JSDocAllType = 310,
316
- JSDocNullableType = 311,
317
- JSDocNonNullableType = 312,
318
- JSDocOptionalType = 313,
319
- JSDocVariadicType = 314,
320
- JSDoc = 315,
321
- JSDocText = 316,
322
- JSDocTypeLiteral = 317,
323
- JSDocSignature = 318,
324
- JSDocLink = 319,
325
- JSDocLinkCode = 320,
326
- JSDocLinkPlain = 321,
327
- JSDocUnknownTag = 322,
328
- JSDocAugmentsTag = 323,
329
- JSDocImplementsTag = 324,
330
- JSDocDeprecatedTag = 325,
331
- JSDocPublicTag = 326,
332
- JSDocPrivateTag = 327,
333
- JSDocProtectedTag = 328,
334
- JSDocReadonlyTag = 329,
335
- JSDocOverrideTag = 330,
336
- JSDocCallbackTag = 331,
337
- JSDocOverloadTag = 332,
338
- JSDocParameterTag = 333,
339
- JSDocReturnTag = 334,
340
- JSDocThisTag = 335,
341
- JSDocTypeTag = 336,
342
- JSDocTemplateTag = 337,
343
- JSDocTypedefTag = 338,
344
- JSDocSeeTag = 339,
345
- JSDocPropertyTag = 340,
346
- JSDocThrowsTag = 341,
347
- JSDocSatisfiesTag = 342,
348
- JSDocImportTag = 343,
349
- SyntaxList = 344,
350
- JSTypeAliasDeclaration = 345,
351
- JSImportDeclaration = 346,
352
- NotEmittedStatement = 347,
353
- PartiallyEmittedExpression = 348,
354
- SyntheticReferenceExpression = 349,
355
- NotEmittedTypeElement = 350,
356
- Count = 351,
172
+ SourceKeyword = 167,
173
+ QualifiedName = 168,
174
+ ComputedPropertyName = 169,
175
+ TypeParameter = 170,
176
+ Parameter = 171,
177
+ Decorator = 172,
178
+ PropertySignature = 173,
179
+ PropertyDeclaration = 174,
180
+ MethodSignature = 175,
181
+ MethodDeclaration = 176,
182
+ ClassStaticBlockDeclaration = 177,
183
+ Constructor = 178,
184
+ GetAccessor = 179,
185
+ SetAccessor = 180,
186
+ CallSignature = 181,
187
+ ConstructSignature = 182,
188
+ IndexSignature = 183,
189
+ TypePredicate = 184,
190
+ TypeReference = 185,
191
+ FunctionType = 186,
192
+ ConstructorType = 187,
193
+ TypeQuery = 188,
194
+ TypeLiteral = 189,
195
+ ArrayType = 190,
196
+ TupleType = 191,
197
+ OptionalType = 192,
198
+ RestType = 193,
199
+ UnionType = 194,
200
+ IntersectionType = 195,
201
+ ConditionalType = 196,
202
+ InferType = 197,
203
+ ParenthesizedType = 198,
204
+ ThisType = 199,
205
+ TypeOperator = 200,
206
+ IndexedAccessType = 201,
207
+ MappedType = 202,
208
+ LiteralType = 203,
209
+ NamedTupleMember = 204,
210
+ TemplateLiteralType = 205,
211
+ TemplateLiteralTypeSpan = 206,
212
+ ImportType = 207,
213
+ ObjectBindingPattern = 208,
214
+ ArrayBindingPattern = 209,
215
+ BindingElement = 210,
216
+ ArrayLiteralExpression = 211,
217
+ ObjectLiteralExpression = 212,
218
+ PropertyAccessExpression = 213,
219
+ ElementAccessExpression = 214,
220
+ CallExpression = 215,
221
+ NewExpression = 216,
222
+ TaggedTemplateExpression = 217,
223
+ TypeAssertionExpression = 218,
224
+ ParenthesizedExpression = 219,
225
+ FunctionExpression = 220,
226
+ ArrowFunction = 221,
227
+ DeleteExpression = 222,
228
+ TypeOfExpression = 223,
229
+ VoidExpression = 224,
230
+ AwaitExpression = 225,
231
+ PrefixUnaryExpression = 226,
232
+ PostfixUnaryExpression = 227,
233
+ BinaryExpression = 228,
234
+ ConditionalExpression = 229,
235
+ TemplateExpression = 230,
236
+ YieldExpression = 231,
237
+ SpreadElement = 232,
238
+ ClassExpression = 233,
239
+ OmittedExpression = 234,
240
+ ExpressionWithTypeArguments = 235,
241
+ AsExpression = 236,
242
+ NonNullExpression = 237,
243
+ MetaProperty = 238,
244
+ SyntheticExpression = 239,
245
+ SatisfiesExpression = 240,
246
+ TemplateSpan = 241,
247
+ SemicolonClassElement = 242,
248
+ Block = 243,
249
+ EmptyStatement = 244,
250
+ VariableStatement = 245,
251
+ ExpressionStatement = 246,
252
+ IfStatement = 247,
253
+ DoStatement = 248,
254
+ WhileStatement = 249,
255
+ ForStatement = 250,
256
+ ForInStatement = 251,
257
+ ForOfStatement = 252,
258
+ ContinueStatement = 253,
259
+ BreakStatement = 254,
260
+ ReturnStatement = 255,
261
+ WithStatement = 256,
262
+ SwitchStatement = 257,
263
+ LabeledStatement = 258,
264
+ ThrowStatement = 259,
265
+ TryStatement = 260,
266
+ DebuggerStatement = 261,
267
+ VariableDeclaration = 262,
268
+ VariableDeclarationList = 263,
269
+ FunctionDeclaration = 264,
270
+ ClassDeclaration = 265,
271
+ InterfaceDeclaration = 266,
272
+ TypeAliasDeclaration = 267,
273
+ EnumDeclaration = 268,
274
+ ModuleDeclaration = 269,
275
+ ModuleBlock = 270,
276
+ CaseBlock = 271,
277
+ NamespaceExportDeclaration = 272,
278
+ ImportEqualsDeclaration = 273,
279
+ ImportDeclaration = 274,
280
+ ImportClause = 275,
281
+ NamespaceImport = 276,
282
+ NamedImports = 277,
283
+ ImportSpecifier = 278,
284
+ ExportAssignment = 279,
285
+ ExportDeclaration = 280,
286
+ NamedExports = 281,
287
+ NamespaceExport = 282,
288
+ ExportSpecifier = 283,
289
+ MissingDeclaration = 284,
290
+ ExternalModuleReference = 285,
291
+ JsxElement = 286,
292
+ JsxSelfClosingElement = 287,
293
+ JsxOpeningElement = 288,
294
+ JsxClosingElement = 289,
295
+ JsxFragment = 290,
296
+ JsxOpeningFragment = 291,
297
+ JsxClosingFragment = 292,
298
+ JsxAttribute = 293,
299
+ JsxAttributes = 294,
300
+ JsxSpreadAttribute = 295,
301
+ JsxExpression = 296,
302
+ JsxNamespacedName = 297,
303
+ CaseClause = 298,
304
+ DefaultClause = 299,
305
+ HeritageClause = 300,
306
+ CatchClause = 301,
307
+ ImportAttributes = 302,
308
+ ImportAttribute = 303,
309
+ PropertyAssignment = 304,
310
+ ShorthandPropertyAssignment = 305,
311
+ SpreadAssignment = 306,
312
+ EnumMember = 307,
313
+ SourceFile = 308,
314
+ JSDocTypeExpression = 309,
315
+ JSDocNameReference = 310,
316
+ JSDocAllType = 311,
317
+ JSDocNullableType = 312,
318
+ JSDocNonNullableType = 313,
319
+ JSDocOptionalType = 314,
320
+ JSDocVariadicType = 315,
321
+ JSDoc = 316,
322
+ JSDocText = 317,
323
+ JSDocTypeLiteral = 318,
324
+ JSDocSignature = 319,
325
+ JSDocLink = 320,
326
+ JSDocLinkCode = 321,
327
+ JSDocLinkPlain = 322,
328
+ JSDocUnknownTag = 323,
329
+ JSDocAugmentsTag = 324,
330
+ JSDocImplementsTag = 325,
331
+ JSDocDeprecatedTag = 326,
332
+ JSDocPublicTag = 327,
333
+ JSDocPrivateTag = 328,
334
+ JSDocProtectedTag = 329,
335
+ JSDocReadonlyTag = 330,
336
+ JSDocOverrideTag = 331,
337
+ JSDocCallbackTag = 332,
338
+ JSDocOverloadTag = 333,
339
+ JSDocParameterTag = 334,
340
+ JSDocReturnTag = 335,
341
+ JSDocThisTag = 336,
342
+ JSDocTypeTag = 337,
343
+ JSDocTemplateTag = 338,
344
+ JSDocTypedefTag = 339,
345
+ JSDocSeeTag = 340,
346
+ JSDocPropertyTag = 341,
347
+ JSDocThrowsTag = 342,
348
+ JSDocSatisfiesTag = 343,
349
+ JSDocImportTag = 344,
350
+ SyntaxList = 345,
351
+ JSTypeAliasDeclaration = 346,
352
+ JSImportDeclaration = 347,
353
+ NotEmittedStatement = 348,
354
+ PartiallyEmittedExpression = 349,
355
+ SyntheticReferenceExpression = 350,
356
+ NotEmittedTypeElement = 351,
357
+ Count = 352,
357
358
  FirstAssignment = EqualsToken,
358
359
  LastAssignment = CaretEqualsToken,
359
360
  FirstCompoundAssignment = PlusEqualsToken,
@@ -361,7 +362,7 @@ export const enum SyntaxKind {
361
362
  FirstReservedWord = BreakKeyword,
362
363
  LastReservedWord = WithKeyword,
363
364
  FirstKeyword = BreakKeyword,
364
- LastKeyword = DeferKeyword,
365
+ LastKeyword = SourceKeyword,
365
366
  FirstFutureReservedWord = ImplementsKeyword,
366
367
  LastFutureReservedWord = YieldKeyword,
367
368
  FirstTypeNode = TypePredicate,
@@ -384,7 +385,7 @@ export const enum SyntaxKind {
384
385
  FirstJSDocTagNode = JSDocUnknownTag,
385
386
  LastJSDocTagNode = JSDocImportTag,
386
387
  FirstContextualKeyword = AbstractKeyword,
387
- LastContextualKeyword = DeferKeyword,
388
+ LastContextualKeyword = SourceKeyword,
388
389
  LastUnaryOperator = TildeToken,
389
390
  FirstTriviaToken = SingleLineCommentTrivia,
390
391
  LastTriviaToken = ConflictMarkerTrivia,