tsc-ts 0.0.10 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (367) hide show
  1. package/README.md +1 -1
  2. package/bin/tsc-ts.js +70 -1
  3. package/dist/api/compiler/ast-utilities.d.ts +19 -1
  4. package/dist/api/compiler/ast-utilities.js +180 -95
  5. package/dist/api/compiler/ast.d.ts +20 -15
  6. package/dist/api/compiler/ast.js +1023 -995
  7. package/dist/api/compiler/astnav.js +15 -15
  8. package/dist/api/compiler/binder-utilities.js +186 -186
  9. package/dist/api/compiler/binder.js +290 -263
  10. package/dist/api/compiler/character-codes.js +2 -2
  11. package/dist/api/compiler/checker-calls.js +173 -123
  12. package/dist/api/compiler/checker-classes.d.ts +14 -3
  13. package/dist/api/compiler/checker-classes.js +134 -90
  14. package/dist/api/compiler/checker-contextual.js +64 -61
  15. package/dist/api/compiler/checker-declaration-order.js +79 -79
  16. package/dist/api/compiler/checker-declarations.d.ts +1 -0
  17. package/dist/api/compiler/checker-declarations.js +160 -136
  18. package/dist/api/compiler/checker-declared-types.js +67 -65
  19. package/dist/api/compiler/checker-decorators.js +77 -77
  20. package/dist/api/compiler/checker-deprecation.d.ts +8 -3
  21. package/dist/api/compiler/checker-deprecation.js +76 -55
  22. package/dist/api/compiler/checker-destructuring.js +47 -45
  23. package/dist/api/compiler/checker-elaboration.js +24 -24
  24. package/dist/api/compiler/checker-emit-helpers.js +4 -4
  25. package/dist/api/compiler/checker-emit-resolver.d.ts +4 -2
  26. package/dist/api/compiler/checker-emit-resolver.js +25 -13
  27. package/dist/api/compiler/checker-evaluator.js +9 -9
  28. package/dist/api/compiler/checker-expressions.js +244 -211
  29. package/dist/api/compiler/checker-functions.js +113 -107
  30. package/dist/api/compiler/checker-generated-code.d.ts +0 -11
  31. package/dist/api/compiler/checker-generated-code.js +28 -52
  32. package/dist/api/compiler/checker-grammar.d.ts +1 -0
  33. package/dist/api/compiler/checker-grammar.js +469 -438
  34. package/dist/api/compiler/checker-heritage.js +91 -93
  35. package/dist/api/compiler/checker-inference.d.ts +77 -5
  36. package/dist/api/compiler/checker-inference.js +487 -113
  37. package/dist/api/compiler/checker-iteration.d.ts +0 -10
  38. package/dist/api/compiler/checker-iteration.js +35 -52
  39. package/dist/api/compiler/checker-javascript.js +14 -14
  40. package/dist/api/compiler/checker-jsdoc.d.ts +8 -10
  41. package/dist/api/compiler/checker-jsdoc.js +67 -58
  42. package/dist/api/compiler/checker-jsx.js +105 -88
  43. package/dist/api/compiler/checker-members.d.ts +9 -2
  44. package/dist/api/compiler/checker-members.js +210 -74
  45. package/dist/api/compiler/checker-modules.d.ts +15 -6
  46. package/dist/api/compiler/checker-modules.js +469 -309
  47. package/dist/api/compiler/checker-narrowing.js +273 -189
  48. package/dist/api/compiler/checker-object-literals.js +25 -22
  49. package/dist/api/compiler/checker-operators.js +126 -118
  50. package/dist/api/compiler/checker-overloads.js +27 -27
  51. package/dist/api/compiler/checker-property-access.js +59 -55
  52. package/dist/api/compiler/checker-services.d.ts +1 -0
  53. package/dist/api/compiler/checker-services.js +222 -210
  54. package/dist/api/compiler/checker-signatures.js +65 -49
  55. package/dist/api/compiler/checker-source-file.d.ts +5 -0
  56. package/dist/api/compiler/checker-source-file.js +154 -130
  57. package/dist/api/compiler/checker-statements.js +33 -32
  58. package/dist/api/compiler/checker-super.js +50 -50
  59. package/dist/api/compiler/checker-symbol-types.js +109 -93
  60. package/dist/api/compiler/checker-symbols.d.ts +13 -1
  61. package/dist/api/compiler/checker-symbols.js +264 -149
  62. package/dist/api/compiler/checker-type-factory.d.ts +5 -0
  63. package/dist/api/compiler/checker-type-factory.js +137 -34
  64. package/dist/api/compiler/checker-type-nodes.d.ts +1 -0
  65. package/dist/api/compiler/checker-type-nodes.js +179 -141
  66. package/dist/api/compiler/checker-type-operators.d.ts +2 -0
  67. package/dist/api/compiler/checker-type-operators.js +110 -63
  68. package/dist/api/compiler/checker-types.d.ts +80 -3
  69. package/dist/api/compiler/checker-types.js +121 -2
  70. package/dist/api/compiler/checker-unused.js +114 -118
  71. package/dist/api/compiler/checker-utilities.js +11 -11
  72. package/dist/api/compiler/checker.d.ts +93 -31
  73. package/dist/api/compiler/checker.js +143 -35
  74. package/dist/api/compiler/command-line.d.ts +1 -3
  75. package/dist/api/compiler/command-line.js +47 -44
  76. package/dist/api/compiler/compile-program.d.ts +19 -4
  77. package/dist/api/compiler/compile-program.js +45 -26
  78. package/dist/api/compiler/diagnostic-messages.d.ts +1849 -1774
  79. package/dist/api/compiler/diagnostic-messages.js +128 -122
  80. package/dist/api/compiler/diagnostics.js +7 -7
  81. package/dist/api/compiler/emitter.d.ts +7 -1
  82. package/dist/api/compiler/emitter.js +53 -11
  83. package/dist/api/compiler/file-include.d.ts +2 -1
  84. package/dist/api/compiler/file-include.js +11 -7
  85. package/dist/api/compiler/file-loader.d.ts +10 -0
  86. package/dist/api/compiler/file-loader.js +138 -41
  87. package/dist/api/compiler/instantiation.d.ts +7 -0
  88. package/dist/api/compiler/instantiation.js +101 -49
  89. package/dist/api/compiler/jsdoc.js +23 -23
  90. package/dist/api/compiler/link-tables.d.ts +48 -18
  91. package/dist/api/compiler/link-tables.js +80 -37
  92. package/dist/api/compiler/locales/cs-CZ.d.ts +1 -1
  93. package/dist/api/compiler/locales/cs-CZ.js +1 -1
  94. package/dist/api/compiler/locales/de-DE.d.ts +1 -1
  95. package/dist/api/compiler/locales/de-DE.js +1 -1
  96. package/dist/api/compiler/locales/es-ES.d.ts +1 -1
  97. package/dist/api/compiler/locales/es-ES.js +1 -1
  98. package/dist/api/compiler/locales/fr-FR.d.ts +1 -1
  99. package/dist/api/compiler/locales/fr-FR.js +1 -1
  100. package/dist/api/compiler/locales/it-IT.d.ts +1 -1
  101. package/dist/api/compiler/locales/it-IT.js +1 -1
  102. package/dist/api/compiler/locales/ja-JP.d.ts +1 -1
  103. package/dist/api/compiler/locales/ja-JP.js +1 -1
  104. package/dist/api/compiler/locales/ko-KR.d.ts +1 -1
  105. package/dist/api/compiler/locales/ko-KR.js +1 -1
  106. package/dist/api/compiler/locales/pl-PL.d.ts +1 -1
  107. package/dist/api/compiler/locales/pl-PL.js +1 -1
  108. package/dist/api/compiler/locales/pt-BR.d.ts +1 -1
  109. package/dist/api/compiler/locales/pt-BR.js +1 -1
  110. package/dist/api/compiler/locales/ru-RU.d.ts +1 -1
  111. package/dist/api/compiler/locales/ru-RU.js +1 -1
  112. package/dist/api/compiler/locales/tr-TR.d.ts +1 -1
  113. package/dist/api/compiler/locales/tr-TR.js +1 -1
  114. package/dist/api/compiler/locales/zh-CN.d.ts +1 -1
  115. package/dist/api/compiler/locales/zh-CN.js +1 -1
  116. package/dist/api/compiler/locales/zh-TW.d.ts +1 -1
  117. package/dist/api/compiler/locales/zh-TW.js +1 -1
  118. package/dist/api/compiler/module-resolution-types.js +6 -6
  119. package/dist/api/compiler/module-resolution.d.ts +10 -1
  120. package/dist/api/compiler/module-resolution.js +115 -84
  121. package/dist/api/compiler/module-specifiers.d.ts +15 -0
  122. package/dist/api/compiler/module-specifiers.js +24 -18
  123. package/dist/api/compiler/name-resolver.js +74 -65
  124. package/dist/api/compiler/node-builder-names.d.ts +11 -3
  125. package/dist/api/compiler/node-builder-names.js +210 -90
  126. package/dist/api/compiler/node-builder-pseudo.js +29 -31
  127. package/dist/api/compiler/node-builder-reuse.js +23 -22
  128. package/dist/api/compiler/node-builder.d.ts +18 -1
  129. package/dist/api/compiler/node-builder.js +191 -102
  130. package/dist/api/compiler/option-declarations.d.ts +2 -6
  131. package/dist/api/compiler/option-declarations.js +315 -375
  132. package/dist/api/compiler/options.d.ts +15 -33
  133. package/dist/api/compiler/options.js +21 -54
  134. package/dist/api/compiler/output-paths.d.ts +4 -1
  135. package/dist/api/compiler/output-paths.js +6 -11
  136. package/dist/api/compiler/package-json.d.ts +3 -3
  137. package/dist/api/compiler/package-json.js +11 -10
  138. package/dist/api/compiler/parser.d.ts +40 -19
  139. package/dist/api/compiler/parser.js +308 -216
  140. package/dist/api/compiler/path.d.ts +9 -0
  141. package/dist/api/compiler/path.js +20 -3
  142. package/dist/api/compiler/printer/emit-context.d.ts +3 -1
  143. package/dist/api/compiler/printer/emit-context.js +16 -1
  144. package/dist/api/compiler/printer/factory-base.d.ts +2 -2
  145. package/dist/api/compiler/printer/factory-base.js +7 -3
  146. package/dist/api/compiler/printer/factory.js +3 -1
  147. package/dist/api/compiler/printer/helpers.js +10 -1
  148. package/dist/api/compiler/printer/name-generator.d.ts +1 -1
  149. package/dist/api/compiler/printer/name-generator.js +35 -16
  150. package/dist/api/compiler/printer/printer.d.ts +1 -0
  151. package/dist/api/compiler/printer/printer.js +303 -281
  152. package/dist/api/compiler/printer/utilities.js +149 -147
  153. package/dist/api/compiler/program-checker.d.ts +8 -2
  154. package/dist/api/compiler/program-checker.js +84 -34
  155. package/dist/api/compiler/program-utilities.d.ts +3 -1
  156. package/dist/api/compiler/program-utilities.js +28 -15
  157. package/dist/api/compiler/program.d.ts +2 -0
  158. package/dist/api/compiler/program.js +69 -57
  159. package/dist/api/compiler/pseudo-bigint.d.ts +2 -0
  160. package/dist/api/compiler/pseudo-bigint.js +18 -0
  161. package/dist/api/compiler/regexp-checker.d.ts +1 -1
  162. package/dist/api/compiler/regexp-checker.js +93 -76
  163. package/dist/api/compiler/relations.d.ts +27 -4
  164. package/dist/api/compiler/relations.js +337 -180
  165. package/dist/api/compiler/reparser.js +60 -56
  166. package/dist/api/compiler/scanner.d.ts +19 -2
  167. package/dist/api/compiler/scanner.js +123 -108
  168. package/dist/api/compiler/shared-results.d.ts +463 -0
  169. package/dist/api/compiler/shared-results.js +2128 -0
  170. package/dist/api/compiler/sourcemap.js +2 -2
  171. package/dist/api/compiler/symbol-accessibility.js +87 -74
  172. package/dist/api/compiler/symbol.d.ts +22 -13
  173. package/dist/api/compiler/symbol.js +15 -1
  174. package/dist/api/compiler/syntax-kind.d.ts +198 -197
  175. package/dist/api/compiler/transformers/alias-references.js +247 -139
  176. package/dist/api/compiler/transformers/async-utilities.js +25 -25
  177. package/dist/api/compiler/transformers/async.d.ts +0 -1
  178. package/dist/api/compiler/transformers/async.js +64 -77
  179. package/dist/api/compiler/transformers/class-fields.d.ts +1 -0
  180. package/dist/api/compiler/transformers/class-fields.js +81 -78
  181. package/dist/api/compiler/transformers/commonjs-module.js +18 -15
  182. package/dist/api/compiler/transformers/const-enum-inliner.js +1 -1
  183. package/dist/api/compiler/transformers/declarations-diagnostics.js +247 -244
  184. package/dist/api/compiler/transformers/declarations-pseudo.js +100 -100
  185. package/dist/api/compiler/transformers/declarations-resolver.d.ts +0 -3
  186. package/dist/api/compiler/transformers/declarations-syntactic.d.ts +1 -2
  187. package/dist/api/compiler/transformers/declarations-syntactic.js +134 -156
  188. package/dist/api/compiler/transformers/declarations-tracker.js +18 -18
  189. package/dist/api/compiler/transformers/declarations.d.ts +4 -1
  190. package/dist/api/compiler/transformers/declarations.js +305 -238
  191. package/dist/api/compiler/transformers/decorator-metadata.d.ts +1 -1
  192. package/dist/api/compiler/transformers/decorator-metadata.js +53 -45
  193. package/dist/api/compiler/transformers/decorator-utilities.js +24 -24
  194. package/dist/api/compiler/transformers/destructuring.js +19 -18
  195. package/dist/api/compiler/transformers/emit-resolver.js +1 -1
  196. package/dist/api/compiler/transformers/es-decorators.js +55 -55
  197. package/dist/api/compiler/transformers/external-module-info.js +3 -3
  198. package/dist/api/compiler/transformers/for-await.js +25 -25
  199. package/dist/api/compiler/transformers/import-elision.js +14 -14
  200. package/dist/api/compiler/transformers/jsx.js +12 -12
  201. package/dist/api/compiler/transformers/legacy-decorators.js +17 -17
  202. package/dist/api/compiler/transformers/module.js +8 -8
  203. package/dist/api/compiler/transformers/named-evaluation.js +4 -4
  204. package/dist/api/compiler/transformers/object-rest-spread.js +20 -20
  205. package/dist/api/compiler/transformers/optional-chain.js +10 -10
  206. package/dist/api/compiler/transformers/reference-resolver.d.ts +12 -1
  207. package/dist/api/compiler/transformers/reference-resolver.js +131 -69
  208. package/dist/api/compiler/transformers/runtime-syntax.js +35 -31
  209. package/dist/api/compiler/transformers/subtree-facts.js +47 -47
  210. package/dist/api/compiler/transformers/syntax-facts.js +56 -58
  211. package/dist/api/compiler/transformers/type-eraser.js +73 -66
  212. package/dist/api/compiler/transformers/type-serialization.js +24 -24
  213. package/dist/api/compiler/transformers/using.js +12 -12
  214. package/dist/api/compiler/transformers/utilities.js +77 -77
  215. package/dist/api/compiler/transformers/visitor-base.js +172 -172
  216. package/dist/api/compiler/transformers/visitor-hooks.js +6 -2
  217. package/dist/api/compiler/tsconfig.d.ts +10 -2
  218. package/dist/api/compiler/tsconfig.js +136 -48
  219. package/dist/api/compiler/type-printer.js +40 -3
  220. package/dist/api/compiler/types.d.ts +2 -1
  221. package/dist/api/library/ast.generated.d.ts +42 -39
  222. package/dist/api/library/ast.generated.js +1 -1
  223. package/dist/api/library/compiler-options.generated.d.ts +111 -100
  224. package/dist/api/library/compiler-options.generated.js +1 -1
  225. package/dist/api/library/disk.js +12 -1
  226. package/dist/api/library/enums.generated.d.ts +206 -206
  227. package/dist/api/library/enums.generated.js +206 -206
  228. package/dist/api/library/nodes.js +26 -26
  229. package/package.json +9 -9
  230. package/src/compiler/ast-utilities.ts +99 -7
  231. package/src/compiler/ast.ts +55 -26
  232. package/src/compiler/binder.ts +39 -4
  233. package/src/compiler/character-codes.ts +2 -2
  234. package/src/compiler/checker-calls.ts +76 -8
  235. package/src/compiler/checker-classes.ts +78 -24
  236. package/src/compiler/checker-contextual.ts +6 -1
  237. package/src/compiler/checker-declarations.ts +31 -4
  238. package/src/compiler/checker-declared-types.ts +8 -5
  239. package/src/compiler/checker-decorators.ts +1 -1
  240. package/src/compiler/checker-deprecation.ts +29 -8
  241. package/src/compiler/checker-destructuring.ts +10 -3
  242. package/src/compiler/checker-emit-helpers.ts +1 -0
  243. package/src/compiler/checker-emit-resolver.ts +16 -6
  244. package/src/compiler/checker-expressions.ts +79 -46
  245. package/src/compiler/checker-functions.ts +21 -6
  246. package/src/compiler/checker-generated-code.ts +2 -22
  247. package/src/compiler/checker-grammar.ts +133 -60
  248. package/src/compiler/checker-heritage.ts +22 -21
  249. package/src/compiler/checker-inference.ts +514 -87
  250. package/src/compiler/checker-iteration.ts +18 -31
  251. package/src/compiler/checker-javascript.ts +1 -1
  252. package/src/compiler/checker-jsdoc.ts +50 -27
  253. package/src/compiler/checker-jsx.ts +26 -4
  254. package/src/compiler/checker-members.ts +197 -55
  255. package/src/compiler/checker-modules.ts +332 -65
  256. package/src/compiler/checker-narrowing.ts +98 -19
  257. package/src/compiler/checker-object-literals.ts +3 -0
  258. package/src/compiler/checker-operators.ts +11 -4
  259. package/src/compiler/checker-property-access.ts +7 -2
  260. package/src/compiler/checker-services.ts +39 -12
  261. package/src/compiler/checker-signatures.ts +15 -1
  262. package/src/compiler/checker-source-file.ts +39 -13
  263. package/src/compiler/checker-statements.ts +3 -2
  264. package/src/compiler/checker-symbol-types.ts +29 -6
  265. package/src/compiler/checker-symbols.ts +158 -15
  266. package/src/compiler/checker-type-factory.ts +120 -21
  267. package/src/compiler/checker-type-nodes.ts +46 -3
  268. package/src/compiler/checker-type-operators.ts +83 -26
  269. package/src/compiler/checker-types.ts +147 -4
  270. package/src/compiler/checker-unused.ts +9 -14
  271. package/src/compiler/checker.ts +168 -41
  272. package/src/compiler/command-line.ts +28 -28
  273. package/src/compiler/compile-program.ts +51 -25
  274. package/src/compiler/decoder.ts +13 -4
  275. package/src/compiler/diagnostic-messages.ts +1973 -1892
  276. package/src/compiler/emitter.ts +57 -8
  277. package/src/compiler/encoder.ts +23 -8
  278. package/src/compiler/file-include.ts +9 -3
  279. package/src/compiler/file-loader.ts +139 -32
  280. package/src/compiler/help.ts +10 -14
  281. package/src/compiler/incremental.ts +86 -18
  282. package/src/compiler/init.ts +2 -7
  283. package/src/compiler/instantiation.ts +77 -22
  284. package/src/compiler/jsdoc.ts +3 -1
  285. package/src/compiler/link-tables.ts +82 -37
  286. package/src/compiler/locales/cs-CZ.ts +1 -1
  287. package/src/compiler/locales/de-DE.ts +1 -1
  288. package/src/compiler/locales/es-ES.ts +1 -1
  289. package/src/compiler/locales/fr-FR.ts +1 -1
  290. package/src/compiler/locales/it-IT.ts +1 -1
  291. package/src/compiler/locales/ja-JP.ts +1 -1
  292. package/src/compiler/locales/ko-KR.ts +1 -1
  293. package/src/compiler/locales/pl-PL.ts +1 -1
  294. package/src/compiler/locales/pt-BR.ts +1 -1
  295. package/src/compiler/locales/ru-RU.ts +1 -1
  296. package/src/compiler/locales/tr-TR.ts +1 -1
  297. package/src/compiler/locales/zh-CN.ts +1 -1
  298. package/src/compiler/locales/zh-TW.ts +1 -1
  299. package/src/compiler/module-resolution.ts +44 -8
  300. package/src/compiler/module-specifiers.ts +62 -20
  301. package/src/compiler/name-resolver.ts +9 -1
  302. package/src/compiler/node-builder-names.ts +236 -54
  303. package/src/compiler/node-builder-pseudo.ts +4 -7
  304. package/src/compiler/node-builder-reuse.ts +5 -4
  305. package/src/compiler/node-builder.ts +130 -31
  306. package/src/compiler/option-declarations.ts +33 -103
  307. package/src/compiler/options.ts +23 -62
  308. package/src/compiler/output-paths.ts +5 -18
  309. package/src/compiler/package-entrypoints.ts +345 -0
  310. package/src/compiler/package-json.ts +4 -4
  311. package/src/compiler/parallel-check.ts +197 -8
  312. package/src/compiler/parallel-emit.ts +1 -1
  313. package/src/compiler/parser.ts +156 -39
  314. package/src/compiler/path.ts +22 -2
  315. package/src/compiler/printer/emit-context.ts +16 -0
  316. package/src/compiler/printer/factory-base.ts +10 -3
  317. package/src/compiler/printer/factory.ts +4 -1
  318. package/src/compiler/printer/helpers.ts +10 -1
  319. package/src/compiler/printer/name-generator.ts +24 -2
  320. package/src/compiler/printer/printer.ts +35 -14
  321. package/src/compiler/printer/utilities.ts +8 -2
  322. package/src/compiler/program-checker.ts +53 -5
  323. package/src/compiler/program-utilities.ts +23 -10
  324. package/src/compiler/program.ts +13 -1
  325. package/src/compiler/pseudo-bigint.ts +17 -0
  326. package/src/compiler/regexp-checker.ts +63 -30
  327. package/src/compiler/relations.ts +233 -77
  328. package/src/compiler/reparser.ts +7 -2
  329. package/src/compiler/scanner.ts +109 -79
  330. package/src/compiler/shared-results.ts +2414 -0
  331. package/src/compiler/show-config.ts +18 -1
  332. package/src/compiler/sourcemap.ts +2 -2
  333. package/src/compiler/symbol-accessibility.ts +26 -3
  334. package/src/compiler/symbol.ts +31 -14
  335. package/src/compiler/syntax-kind.ts +188 -187
  336. package/src/compiler/thread-entry.ts +19 -2
  337. package/src/compiler/transformers/alias-references.ts +123 -4
  338. package/src/compiler/transformers/async.ts +2 -17
  339. package/src/compiler/transformers/class-fields.ts +13 -12
  340. package/src/compiler/transformers/commonjs-module.ts +11 -7
  341. package/src/compiler/transformers/declarations-diagnostics.ts +5 -3
  342. package/src/compiler/transformers/declarations-pseudo.ts +2 -4
  343. package/src/compiler/transformers/declarations-resolver.ts +0 -3
  344. package/src/compiler/transformers/declarations-syntactic.ts +1 -21
  345. package/src/compiler/transformers/declarations.ts +134 -48
  346. package/src/compiler/transformers/decorator-metadata.ts +9 -1
  347. package/src/compiler/transformers/destructuring.ts +4 -3
  348. package/src/compiler/transformers/external-module-info.ts +1 -1
  349. package/src/compiler/transformers/jsx.ts +2 -1
  350. package/src/compiler/transformers/reference-resolver.ts +83 -19
  351. package/src/compiler/transformers/runtime-syntax.ts +6 -1
  352. package/src/compiler/transformers/syntax-facts.ts +2 -7
  353. package/src/compiler/transformers/type-eraser.ts +10 -1
  354. package/src/compiler/transformers/type-serialization.ts +3 -2
  355. package/src/compiler/transformers/visitor-base.ts +2 -1
  356. package/src/compiler/transformers/visitor-hooks.ts +9 -4
  357. package/src/compiler/tsc-build.ts +3 -0
  358. package/src/compiler/tsc-cli.ts +2 -0
  359. package/src/compiler/tsc-compile.ts +7 -2
  360. package/src/compiler/tsc-watch.ts +74 -45
  361. package/src/compiler/tsconfig.ts +176 -19
  362. package/src/compiler/type-printer.ts +36 -2
  363. package/src/compiler/types.ts +2 -1
  364. package/src/library/ast.generated.ts +57 -41
  365. package/src/library/compiler-options.generated.ts +117 -103
  366. package/src/library/disk.ts +10 -1
  367. package/src/library/enums.generated.ts +196 -196
@@ -219,8 +219,8 @@ export class SourceMapGenerator {
219
219
  const mappings = this.getMappings();
220
220
  let json = '{"version":3,"file":' +
221
221
  jsonString(this.file) +
222
- ',"sourceRoot":' +
223
- jsonString(this.sourceRoot) +
222
+ // An empty source root is left out, as tsgo's `omitzero` does.
223
+ (this.sourceRoot === '' ? '' : ',"sourceRoot":' + jsonString(this.sourceRoot)) +
224
224
  ',"sources":' +
225
225
  jsonStrings(this.sources) +
226
226
  ',"names":' +
@@ -8,7 +8,7 @@ import { ExternalModuleContainerIndex, SymbolAccessibilityCaches, fileIndexScale
8
8
  import { getEffectiveDeclarationFlags } from './checker-declarations.js';
9
9
  import { getDeclaredTypeOfSymbol } from './checker-declared-types.js';
10
10
  import { checkExpressionCached } from './checker-expressions.js';
11
- import { resolveExternalModuleName, resolveExternalModuleSymbol } from './checker-modules.js';
11
+ import { getImportAttributesTypeForModuleSpecifier, resolveExternalModuleName, resolveExternalModuleSymbol, } from './checker-modules.js';
12
12
  import { getExportsOfSymbol, getMergedSymbol, getParentOfSymbol, getSymbolFlags, getSymbolOfDeclaration, resolveAlias, resolveSymbol, } from './checker-symbols.js';
13
13
  import { getTypeOfSymbol } from './checker-symbol-types.js';
14
14
  import { compareSymbols } from './checker-type-factory.js';
@@ -116,10 +116,10 @@ export function hasNonGlobalAugmentationExternalModuleDeclaration(symbol) {
116
116
  }
117
117
  export function hasNonGlobalAugmentationExternalModuleSymbol(declaration) {
118
118
  return (isModuleWithStringLiteralName(declaration) ||
119
- (declaration.kind === 307 /* SyntaxKind.SourceFile */ && isExternalOrCommonJSModule(declaration)));
119
+ (declaration.kind === 308 /* SyntaxKind.SourceFile */ && isExternalOrCommonJSModule(declaration)));
120
120
  }
121
121
  function isModuleWithStringLiteralName(node) {
122
- if (node.kind !== 268 /* SyntaxKind.ModuleDeclaration */)
122
+ if (node.kind !== 269 /* SyntaxKind.ModuleDeclaration */)
123
123
  return false;
124
124
  const name = getName(node);
125
125
  return name !== undefined && name.kind === 10 /* SyntaxKind.StringLiteral */;
@@ -214,7 +214,7 @@ function getAlternativeContainingModules(c, symbol, enclosingDeclaration) {
214
214
  // Synthesized specifiers can't be resolved.
215
215
  if ((importRef.flags & 16 /* NodeFlags.Synthesized */) !== 0)
216
216
  continue;
217
- const resolvedModule = resolveExternalModuleName(c, enclosingDeclaration, importRef, true);
217
+ const resolvedModule = resolveExternalModuleName(c, enclosingDeclaration, importRef, true, getImportAttributesTypeForModuleSpecifier(c, importRef));
218
218
  if (resolvedModule === undefined)
219
219
  continue;
220
220
  if (getAliasForSymbolInContainer(c, resolvedModule, symbol) === undefined)
@@ -280,7 +280,7 @@ function externalModuleFileIndex(c, symbol) {
280
280
  if (symbol === undefined || (symbol.flags & 512 /* SymbolFlags.ValueModule */) === 0)
281
281
  return -1;
282
282
  for (const declaration of getDeclarations(symbol)) {
283
- if (declaration.kind !== 307 /* SyntaxKind.SourceFile */)
283
+ if (declaration.kind !== 308 /* SyntaxKind.SourceFile */)
284
284
  continue;
285
285
  const file = declaration;
286
286
  if (isExternalModule(file) && getSymbolOfDeclaration(c, declaration) === symbol)
@@ -343,14 +343,14 @@ function getVariableDeclarationOfObjectLiteral(c, symbol, meaning) {
343
343
  const parent = firstDecl.parent;
344
344
  if (parent === undefined || !(parent instanceof VariableDeclaration))
345
345
  return undefined;
346
- if ((firstDecl.kind === 211 /* SyntaxKind.ObjectLiteralExpression */ && firstDecl === getInitializer(parent)) ||
347
- (firstDecl.kind === 188 /* SyntaxKind.TypeLiteral */ && firstDecl === getType(parent)))
346
+ if ((firstDecl.kind === 212 /* SyntaxKind.ObjectLiteralExpression */ && firstDecl === getInitializer(parent)) ||
347
+ (firstDecl.kind === 189 /* SyntaxKind.TypeLiteral */ && firstDecl === getType(parent)))
348
348
  return getSymbolOfDeclaration(c, parent);
349
349
  return undefined;
350
350
  }
351
351
  function hasExternalModuleSymbol(declaration) {
352
352
  return (isAmbientModule(declaration) ||
353
- (declaration.kind === 307 /* SyntaxKind.SourceFile */ && isExternalOrCommonJSModule(declaration)));
353
+ (declaration.kind === 308 /* SyntaxKind.SourceFile */ && isExternalOrCommonJSModule(declaration)));
354
354
  }
355
355
  function getExternalModuleContainer(c, declaration) {
356
356
  for (let node = declaration; node !== undefined; node = node.parent)
@@ -388,7 +388,7 @@ export function getContainersOfSymbol(c, symbol, enclosingDeclaration, meaning)
388
388
  continue;
389
389
  }
390
390
  // The `export =` of an ambient module.
391
- if (parent.kind === 269 /* SyntaxKind.ModuleBlock */ &&
391
+ if (parent.kind === 270 /* SyntaxKind.ModuleBlock */ &&
392
392
  parent.parent !== undefined &&
393
393
  resolveExternalModuleSymbol(c, getSymbolOfDeclaration(c, parent.parent), false) === symbol) {
394
394
  addCandidate(getSymbolOfDeclaration(c, parent.parent));
@@ -545,7 +545,7 @@ class ChainSearch {
545
545
  (this.useOnlyExternalAliasing && !hasExternalModuleImportEqualsDeclaration(fromTable)) ||
546
546
  (isLocalNameLookup && hasNamespaceReexportDeclaration(fromTable)) ||
547
547
  // Exports are in scope, but export specifiers aren't.
548
- (!ignoreQualification && getDeclarations(fromTable).some((d) => d.kind === 282 /* SyntaxKind.ExportSpecifier */)))
548
+ (!ignoreQualification && getDeclarations(fromTable).some((d) => d.kind === 283 /* SyntaxKind.ExportSpecifier */)))
549
549
  continue;
550
550
  const resolved = resolveAlias(c, fromTable);
551
551
  const candidate = this.candidateListForSymbol(fromTable, resolved, ignoreQualification);
@@ -580,10 +580,23 @@ class ChainSearch {
580
580
  isAccessible(fromTable, resolvedAlias, ignoreQualification) {
581
581
  const c = this.c;
582
582
  const symbol = getMergedSymbol(c, this.symbol);
583
- const likeSymbols = this.symbol === resolvedAlias ||
583
+ let likeSymbols = this.symbol === resolvedAlias ||
584
584
  this.symbol === fromTable ||
585
585
  (resolvedAlias !== undefined && symbol === getMergedSymbol(c, resolvedAlias)) ||
586
586
  symbol === getMergedSymbol(c, fromTable);
587
+ // An alias of an alias, such as `export =` of a class that a top-level export also names, resolves further.
588
+ if (!likeSymbols && resolvedAlias !== undefined && (resolvedAlias.flags & 2097152 /* SymbolFlags.Alias */) !== 0) {
589
+ const seen = new Set();
590
+ let alias = resolvedAlias;
591
+ while ((alias.flags & 2097152 /* SymbolFlags.Alias */) !== 0 && !seen.has(alias)) {
592
+ seen.add(alias);
593
+ alias = getMergedSymbol(c, resolveAlias(c, alias));
594
+ if (symbol === alias) {
595
+ likeSymbols = true;
596
+ break;
597
+ }
598
+ }
599
+ }
587
600
  if (!likeSymbols)
588
601
  return false;
589
602
  // An external module in the global table isn't accessible by name; otherwise the name must be qualifiable.
@@ -639,7 +652,7 @@ function compareSymbolChains(c, a, b) {
639
652
  return 0;
640
653
  }
641
654
  function isUMDExportSymbol(symbol) {
642
- return declarationCount(symbol) > 0 && symbol.declaration.kind === 271 /* SyntaxKind.NamespaceExportDeclaration */;
655
+ return declarationCount(symbol) > 0 && symbol.declaration.kind === 272 /* SyntaxKind.NamespaceExportDeclaration */;
643
656
  }
644
657
  function hasNamespaceReexportDeclaration(symbol) {
645
658
  for (const d of getDeclarations(symbol))
@@ -648,7 +661,7 @@ function hasNamespaceReexportDeclaration(symbol) {
648
661
  return false;
649
662
  }
650
663
  function isNamespaceReexportDeclaration(node) {
651
- return (node.kind === 281 /* SyntaxKind.NamespaceExport */ &&
664
+ return (node.kind === 282 /* SyntaxKind.NamespaceExport */ &&
652
665
  node.parent instanceof ExportDeclaration &&
653
666
  node.parent.moduleSpecifier !== undefined);
654
667
  }
@@ -659,7 +672,7 @@ function hasExternalModuleImportEqualsDeclaration(symbol) {
659
672
  return false;
660
673
  }
661
674
  function isExternalModuleImportEqualsDeclaration(node) {
662
- return node instanceof ImportEqualsDeclaration && node.moduleReference.kind === 284 /* SyntaxKind.ExternalModuleReference */;
675
+ return node instanceof ImportEqualsDeclaration && node.moduleReference.kind === 285 /* SyntaxKind.ExternalModuleReference */;
663
676
  }
664
677
  /** Whether another symbol of the same name and meaning shadows `symbol` at `enclosingDeclaration`. */
665
678
  export function needsQualification(c, symbol, enclosingDeclaration, meaning) {
@@ -673,7 +686,7 @@ export function needsQualification(c, symbol, enclosingDeclaration, meaning) {
673
686
  return true;
674
687
  // Qualify if the symbol of this name has the meaning sought.
675
688
  const shouldResolveAlias = (fromTable.flags & 2097152 /* SymbolFlags.Alias */) !== 0 &&
676
- !getDeclarations(fromTable).some((d) => d.kind === 282 /* SyntaxKind.ExportSpecifier */);
689
+ !getDeclarations(fromTable).some((d) => d.kind === 283 /* SyntaxKind.ExportSpecifier */);
677
690
  if (shouldResolveAlias)
678
691
  fromTable = resolveAlias(c, fromTable);
679
692
  const flags = shouldResolveAlias ? getSymbolFlags(c, fromTable) : fromTable.flags;
@@ -690,10 +703,10 @@ function isPropertyOrMethodDeclarationSymbol(symbol) {
690
703
  return false;
691
704
  for (const declaration of getDeclarations(symbol)) {
692
705
  switch (declaration.kind) {
693
- case 173 /* SyntaxKind.PropertyDeclaration */:
694
- case 175 /* SyntaxKind.MethodDeclaration */:
695
- case 178 /* SyntaxKind.GetAccessor */:
696
- case 179 /* SyntaxKind.SetAccessor */:
706
+ case 174 /* SyntaxKind.PropertyDeclaration */:
707
+ case 176 /* SyntaxKind.MethodDeclaration */:
708
+ case 179 /* SyntaxKind.GetAccessor */:
709
+ case 180 /* SyntaxKind.SetAccessor */:
697
710
  continue;
698
711
  default:
699
712
  return false;
@@ -714,9 +727,9 @@ export function someSymbolTableInScope(c, enclosingDeclaration, callback) {
714
727
  return true;
715
728
  }
716
729
  switch (location.kind) {
717
- case 307 /* SyntaxKind.SourceFile */:
718
- case 268 /* SyntaxKind.ModuleDeclaration */: {
719
- if (location.kind === 307 /* SyntaxKind.SourceFile */ && !isExternalOrCommonJSModule(location))
730
+ case 308 /* SyntaxKind.SourceFile */:
731
+ case 269 /* SyntaxKind.ModuleDeclaration */: {
732
+ if (location.kind === 308 /* SyntaxKind.SourceFile */ && !isExternalOrCommonJSModule(location))
720
733
  break;
721
734
  const symbol = getSymbolOfDeclaration(c, location);
722
735
  if (symbol === undefined)
@@ -726,9 +739,9 @@ export function someSymbolTableInScope(c, enclosingDeclaration, callback) {
726
739
  return true;
727
740
  break;
728
741
  }
729
- case 264 /* SyntaxKind.ClassDeclaration */:
730
- case 232 /* SyntaxKind.ClassExpression */:
731
- case 265 /* SyntaxKind.InterfaceDeclaration */: {
742
+ case 265 /* SyntaxKind.ClassDeclaration */:
743
+ case 233 /* SyntaxKind.ClassExpression */:
744
+ case 266 /* SyntaxKind.InterfaceDeclaration */: {
732
745
  // Type parameters are bound in `members` so they merge across declarations, but act like
733
746
  // locals. Raw members suffice: they're never late bound.
734
747
  const symbol = getSymbolOfDeclaration(c, location);
@@ -838,23 +851,23 @@ export function beginDeclarationEmitVisibility(c, file) {
838
851
  }
839
852
  function determineIfDeclarationIsVisible(c, node) {
840
853
  switch (node.kind) {
841
- case 331 /* SyntaxKind.JSDocCallbackTag */:
842
- case 338 /* SyntaxKind.JSDocTypedefTag */: {
854
+ case 332 /* SyntaxKind.JSDocCallbackTag */:
855
+ case 339 /* SyntaxKind.JSDocTypedefTag */: {
843
856
  // Top-level JSDoc type aliases are exported.
844
857
  const host = node.parent?.parent?.parent;
845
- return host !== undefined && host.kind === 307 /* SyntaxKind.SourceFile */;
858
+ return host !== undefined && host.kind === 308 /* SyntaxKind.SourceFile */;
846
859
  }
847
- case 209 /* SyntaxKind.BindingElement */:
860
+ case 210 /* SyntaxKind.BindingElement */:
848
861
  return isDeclarationVisible(c, node.parent.parent);
849
- case 261 /* SyntaxKind.VariableDeclaration */:
850
- case 268 /* SyntaxKind.ModuleDeclaration */:
851
- case 264 /* SyntaxKind.ClassDeclaration */:
852
- case 265 /* SyntaxKind.InterfaceDeclaration */:
853
- case 266 /* SyntaxKind.TypeAliasDeclaration */:
854
- case 345 /* SyntaxKind.JSTypeAliasDeclaration */:
855
- case 263 /* SyntaxKind.FunctionDeclaration */:
856
- case 267 /* SyntaxKind.EnumDeclaration */:
857
- case 272 /* SyntaxKind.ImportEqualsDeclaration */: {
862
+ case 262 /* SyntaxKind.VariableDeclaration */:
863
+ case 269 /* SyntaxKind.ModuleDeclaration */:
864
+ case 265 /* SyntaxKind.ClassDeclaration */:
865
+ case 266 /* SyntaxKind.InterfaceDeclaration */:
866
+ case 267 /* SyntaxKind.TypeAliasDeclaration */:
867
+ case 346 /* SyntaxKind.JSTypeAliasDeclaration */:
868
+ case 264 /* SyntaxKind.FunctionDeclaration */:
869
+ case 268 /* SyntaxKind.EnumDeclaration */:
870
+ case 273 /* SyntaxKind.ImportEqualsDeclaration */: {
858
871
  if (node instanceof VariableDeclaration) {
859
872
  const name = node.name;
860
873
  if (name instanceof BindingPattern && name.elements.nodes.length === 0)
@@ -865,51 +878,51 @@ function determineIfDeclarationIsVisible(c, node) {
865
878
  const parent = getDeclarationContainer(node);
866
879
  // Unexported declarations are visible only in global files; ambient module members are exported.
867
880
  if ((getCombinedModifierFlags(node) & 32 /* ModifierFlags.Export */) === 0 &&
868
- !(node.kind !== 272 /* SyntaxKind.ImportEqualsDeclaration */ &&
869
- parent.kind !== 307 /* SyntaxKind.SourceFile */ &&
881
+ !(node.kind !== 273 /* SyntaxKind.ImportEqualsDeclaration */ &&
882
+ parent.kind !== 308 /* SyntaxKind.SourceFile */ &&
870
883
  (parent.flags & 8388608 /* NodeFlags.Ambient */) !== 0))
871
884
  return isGlobalSourceFile(parent);
872
885
  return isDeclarationVisible(c, parent);
873
886
  }
874
- case 173 /* SyntaxKind.PropertyDeclaration */:
875
- case 172 /* SyntaxKind.PropertySignature */:
876
- case 178 /* SyntaxKind.GetAccessor */:
877
- case 179 /* SyntaxKind.SetAccessor */:
878
- case 175 /* SyntaxKind.MethodDeclaration */:
879
- case 174 /* SyntaxKind.MethodSignature */:
887
+ case 174 /* SyntaxKind.PropertyDeclaration */:
888
+ case 173 /* SyntaxKind.PropertySignature */:
889
+ case 179 /* SyntaxKind.GetAccessor */:
890
+ case 180 /* SyntaxKind.SetAccessor */:
891
+ case 176 /* SyntaxKind.MethodDeclaration */:
892
+ case 175 /* SyntaxKind.MethodSignature */:
880
893
  if (getEffectiveDeclarationFlags(node, 2 /* ModifierFlags.Private */ | 4 /* ModifierFlags.Protected */) !== 0)
881
894
  return false;
882
895
  return isDeclarationVisible(c, node.parent);
883
- case 177 /* SyntaxKind.Constructor */:
884
- case 181 /* SyntaxKind.ConstructSignature */:
885
- case 180 /* SyntaxKind.CallSignature */:
886
- case 182 /* SyntaxKind.IndexSignature */:
887
- case 170 /* SyntaxKind.Parameter */:
888
- case 269 /* SyntaxKind.ModuleBlock */:
889
- case 185 /* SyntaxKind.FunctionType */:
890
- case 186 /* SyntaxKind.ConstructorType */:
891
- case 188 /* SyntaxKind.TypeLiteral */:
892
- case 184 /* SyntaxKind.TypeReference */:
893
- case 189 /* SyntaxKind.ArrayType */:
894
- case 190 /* SyntaxKind.TupleType */:
895
- case 193 /* SyntaxKind.UnionType */:
896
- case 194 /* SyntaxKind.IntersectionType */:
897
- case 197 /* SyntaxKind.ParenthesizedType */:
898
- case 203 /* SyntaxKind.NamedTupleMember */:
896
+ case 178 /* SyntaxKind.Constructor */:
897
+ case 182 /* SyntaxKind.ConstructSignature */:
898
+ case 181 /* SyntaxKind.CallSignature */:
899
+ case 183 /* SyntaxKind.IndexSignature */:
900
+ case 171 /* SyntaxKind.Parameter */:
901
+ case 270 /* SyntaxKind.ModuleBlock */:
902
+ case 186 /* SyntaxKind.FunctionType */:
903
+ case 187 /* SyntaxKind.ConstructorType */:
904
+ case 189 /* SyntaxKind.TypeLiteral */:
905
+ case 185 /* SyntaxKind.TypeReference */:
906
+ case 190 /* SyntaxKind.ArrayType */:
907
+ case 191 /* SyntaxKind.TupleType */:
908
+ case 194 /* SyntaxKind.UnionType */:
909
+ case 195 /* SyntaxKind.IntersectionType */:
910
+ case 198 /* SyntaxKind.ParenthesizedType */:
911
+ case 204 /* SyntaxKind.NamedTupleMember */:
899
912
  return isDeclarationVisible(c, node.parent);
900
913
  // Imports are visible only once something refers to them.
901
- case 274 /* SyntaxKind.ImportClause */:
902
- case 275 /* SyntaxKind.NamespaceImport */:
903
- case 277 /* SyntaxKind.ImportSpecifier */:
914
+ case 275 /* SyntaxKind.ImportClause */:
915
+ case 276 /* SyntaxKind.NamespaceImport */:
916
+ case 278 /* SyntaxKind.ImportSpecifier */:
904
917
  return false;
905
- case 169 /* SyntaxKind.TypeParameter */:
906
- case 307 /* SyntaxKind.SourceFile */:
907
- case 271 /* SyntaxKind.NamespaceExportDeclaration */:
918
+ case 170 /* SyntaxKind.TypeParameter */:
919
+ case 308 /* SyntaxKind.SourceFile */:
920
+ case 272 /* SyntaxKind.NamespaceExportDeclaration */:
908
921
  return true;
909
- case 278 /* SyntaxKind.ExportAssignment */:
922
+ case 279 /* SyntaxKind.ExportAssignment */:
910
923
  return false;
911
924
  // `export { x }` without a module specifier re-exports `x` visibly.
912
- case 282 /* SyntaxKind.ExportSpecifier */: {
925
+ case 283 /* SyntaxKind.ExportSpecifier */: {
913
926
  const exportDeclaration = node.parent.parent;
914
927
  if (exportDeclaration instanceof ExportDeclaration && exportDeclaration.moduleSpecifier === undefined)
915
928
  return isDeclarationVisible(c, exportDeclaration.parent);
@@ -943,7 +956,7 @@ export function hasVisibleDeclarations(c, symbol, shouldComputeAliasesToMakeVisi
943
956
  continue;
944
957
  }
945
958
  if (declaration instanceof VariableDeclaration &&
946
- declaration.parent.parent.kind === 244 /* SyntaxKind.VariableStatement */ &&
959
+ declaration.parent.parent.kind === 245 /* SyntaxKind.VariableStatement */ &&
947
960
  !hasSyntacticModifier(declaration.parent.parent, 32 /* ModifierFlags.Export */) &&
948
961
  isDeclarationVisible(c, declaration.parent.parent.parent)) {
949
962
  addVisibleAlias(declaration, declaration.parent.parent);
@@ -961,7 +974,7 @@ export function hasVisibleDeclarations(c, symbol, shouldComputeAliasesToMakeVisi
961
974
  const statement = declaration.parent?.parent?.parent?.parent;
962
975
  if (declaration.parent?.parent instanceof VariableDeclaration &&
963
976
  statement !== undefined &&
964
- statement.kind === 244 /* SyntaxKind.VariableStatement */ &&
977
+ statement.kind === 245 /* SyntaxKind.VariableStatement */ &&
965
978
  !hasSyntacticModifier(statement, 32 /* ModifierFlags.Export */) &&
966
979
  statement.parent !== undefined &&
967
980
  isDeclarationVisible(c, statement.parent)) {
@@ -971,10 +984,10 @@ export function hasVisibleDeclarations(c, symbol, shouldComputeAliasesToMakeVisi
971
984
  }
972
985
  if ((symbol.flags & 2 /* SymbolFlags.BlockScopedVariable */) !== 0) {
973
986
  const root = getRootDeclaration(declaration);
974
- if (root.kind === 170 /* SyntaxKind.Parameter */)
987
+ if (root.kind === 171 /* SyntaxKind.Parameter */)
975
988
  return undefined;
976
989
  const variableStatement = root.parent?.parent;
977
- if (variableStatement === undefined || variableStatement.kind !== 244 /* SyntaxKind.VariableStatement */)
990
+ if (variableStatement === undefined || variableStatement.kind !== 245 /* SyntaxKind.VariableStatement */)
978
991
  return undefined;
979
992
  // Already exported: nothing to keep.
980
993
  if (hasSyntacticModifier(variableStatement, 32 /* ModifierFlags.Export */))
@@ -107,22 +107,26 @@ export declare const enum CheckFlags {
107
107
  ContainsPublic = 256,
108
108
  ContainsProtected = 512,
109
109
  ContainsPrivate = 1024,
110
- ContainsStatic = 2048,
110
+ /** A synthetic property with public, protected or private write access in a constituent. */
111
+ ContainsWritePublic = 2048,
112
+ ContainsWriteProtected = 4096,
113
+ ContainsWritePrivate = 8192,
114
+ ContainsStatic = 16384,
111
115
  /** Late-bound from a computed property name. */
112
- Late = 4096,
113
- ReverseMapped = 8192,
114
- OptionalParameter = 16384,
115
- RestParameter = 32768,
116
+ Late = 32768,
117
+ ReverseMapped = 65536,
118
+ OptionalParameter = 131072,
119
+ RestParameter = 262144,
116
120
  /** The type is computed on demand. */
117
- DeferredType = 65536,
118
- HasNeverType = 131072,
119
- Mapped = 262144,
120
- StripOptional = 524288,
121
- Unresolved = 1048576,
122
- IsDiscriminantComputed = 2097152,
123
- IsDiscriminant = 4194304,
121
+ DeferredType = 524288,
122
+ HasNeverType = 1048576,
123
+ Mapped = 2097152,
124
+ StripOptional = 4194304,
125
+ Unresolved = 8388608,
126
+ IsDiscriminantComputed = 16777216,
127
+ IsDiscriminant = 33554432,
124
128
  /** Created from an index signature. */
125
- IndexSymbol = 8388608,
129
+ IndexSymbol = 67108864,
126
130
  Synthetic = 6,
127
131
  NonUniformAndLiteral = 192,
128
132
  Partial = 48
@@ -235,6 +239,11 @@ export declare function getMembers(symbol: Symbol): SymbolTable;
235
239
  * vanishingly unlikely in a string-literal property name.
236
240
  */
237
241
  export declare const internalSymbolNamePrefix = "\uFFFE";
242
+ /**
243
+ * The module name of an ambient module symbol's name: `"name"`, or for a pattern module with import
244
+ * attributes, the internal symbol name prefix, `"name"pattern@` and the id of the attributes node.
245
+ */
246
+ export declare function tryGetAmbientModuleNameFromSymbolName(name: string): string | undefined;
238
247
  export declare const enum InternalSymbolName {
239
248
  /** Call signatures. */
240
249
  Call = "\uFFFEcall",
@@ -149,7 +149,7 @@ export class Symbol {
149
149
  }
150
150
  /** Whether this is the symbol of an external module, named by its quoted path. */
151
151
  isExternalModule() {
152
- return (this.flags & 1536 /* SymbolFlags.Module */) !== 0 && this.name.charCodeAt(0) === 0x22;
152
+ return (this.flags & 1536 /* SymbolFlags.Module */) !== 0 && tryGetAmbientModuleNameFromSymbolName(this.name) !== undefined;
153
153
  }
154
154
  /** The flags of this symbol and its export symbol. */
155
155
  combinedLocalAndExportSymbolFlags() {
@@ -316,6 +316,20 @@ export function getMembers(symbol) {
316
316
  * vanishingly unlikely in a string-literal property name.
317
317
  */
318
318
  export const internalSymbolNamePrefix = '￾';
319
+ /**
320
+ * The module name of an ambient module symbol's name: `"name"`, or for a pattern module with import
321
+ * attributes, the internal symbol name prefix, `"name"pattern@` and the id of the attributes node.
322
+ */
323
+ export function tryGetAmbientModuleNameFromSymbolName(name) {
324
+ if (name.length >= 2 && name.charCodeAt(0) === 0x22 && name.charCodeAt(name.length - 1) === 0x22)
325
+ return name.substring(1, name.length - 1);
326
+ if (!name.startsWith(internalSymbolNamePrefix + '"'))
327
+ return undefined;
328
+ const markerIndex = name.lastIndexOf('"pattern@');
329
+ if (markerIndex < internalSymbolNamePrefix.length + 2)
330
+ return undefined;
331
+ return name.substring(internalSymbolNamePrefix.length + 1, markerIndex);
332
+ }
319
333
  /** `name` with a leading internal prefix replaced by `__`. */
320
334
  export function escapeInternalSymbolName(name) {
321
335
  return name.startsWith(internalSymbolNamePrefix) ? '__' + name.substring(1) : name;