tsc-ts 0.0.3 → 0.0.5

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 (596) hide show
  1. package/README.md +46 -0
  2. package/dist/api/compiler/ast-utilities.d.ts +82 -0
  3. package/dist/api/compiler/ast-utilities.js +462 -0
  4. package/dist/api/compiler/ast.d.ts +2350 -0
  5. package/dist/api/compiler/ast.js +11206 -0
  6. package/dist/api/compiler/astnav.d.ts +37 -0
  7. package/dist/api/compiler/astnav.js +767 -0
  8. package/dist/api/compiler/binder-utilities.d.ts +182 -0
  9. package/dist/api/compiler/binder-utilities.js +1240 -0
  10. package/dist/api/compiler/binder.d.ts +33 -0
  11. package/dist/api/compiler/binder.js +2358 -0
  12. package/dist/api/compiler/character-codes.d.ts +161 -0
  13. package/dist/api/compiler/character-codes.js +160 -0
  14. package/dist/api/compiler/checker-calls.d.ts +46 -0
  15. package/dist/api/compiler/checker-calls.js +1640 -0
  16. package/dist/api/compiler/checker-classes.d.ts +30 -0
  17. package/dist/api/compiler/checker-classes.js +582 -0
  18. package/dist/api/compiler/checker-contextual.d.ts +77 -0
  19. package/dist/api/compiler/checker-contextual.js +1136 -0
  20. package/dist/api/compiler/checker-declaration-order.d.ts +12 -0
  21. package/dist/api/compiler/checker-declaration-order.js +356 -0
  22. package/dist/api/compiler/checker-declarations.d.ts +33 -0
  23. package/dist/api/compiler/checker-declarations.js +888 -0
  24. package/dist/api/compiler/checker-declared-types.d.ts +48 -0
  25. package/dist/api/compiler/checker-declared-types.js +787 -0
  26. package/dist/api/compiler/checker-decorators.d.ts +26 -0
  27. package/dist/api/compiler/checker-decorators.js +562 -0
  28. package/dist/api/compiler/checker-deprecation.d.ts +33 -0
  29. package/dist/api/compiler/checker-deprecation.js +315 -0
  30. package/dist/api/compiler/checker-destructuring.d.ts +34 -0
  31. package/dist/api/compiler/checker-destructuring.js +584 -0
  32. package/dist/api/compiler/checker-elaboration.d.ts +15 -0
  33. package/dist/api/compiler/checker-elaboration.js +290 -0
  34. package/dist/api/compiler/checker-emit-helpers.d.ts +58 -0
  35. package/dist/api/compiler/checker-emit-helpers.js +154 -0
  36. package/dist/api/compiler/checker-emit-resolver.d.ts +75 -0
  37. package/dist/api/compiler/checker-emit-resolver.js +579 -0
  38. package/dist/api/compiler/checker-evaluator.d.ts +27 -0
  39. package/dist/api/compiler/checker-evaluator.js +188 -0
  40. package/dist/api/compiler/checker-expressions.d.ts +67 -0
  41. package/dist/api/compiler/checker-expressions.js +1351 -0
  42. package/dist/api/compiler/checker-features.d.ts +6 -0
  43. package/dist/api/compiler/checker-features.js +354 -0
  44. package/dist/api/compiler/checker-flow.d.ts +86 -0
  45. package/dist/api/compiler/checker-flow.js +169 -0
  46. package/dist/api/compiler/checker-functions.d.ts +43 -0
  47. package/dist/api/compiler/checker-functions.js +1002 -0
  48. package/dist/api/compiler/checker-generated-code.d.ts +25 -0
  49. package/dist/api/compiler/checker-generated-code.js +168 -0
  50. package/dist/api/compiler/checker-globals.d.ts +14 -0
  51. package/dist/api/compiler/checker-globals.js +37 -0
  52. package/dist/api/compiler/checker-grammar.d.ts +35 -0
  53. package/dist/api/compiler/checker-grammar.js +2573 -0
  54. package/dist/api/compiler/checker-heritage.d.ts +28 -0
  55. package/dist/api/compiler/checker-heritage.js +900 -0
  56. package/dist/api/compiler/checker-inference.d.ts +179 -0
  57. package/dist/api/compiler/checker-inference.js +2105 -0
  58. package/dist/api/compiler/checker-iteration.d.ts +115 -0
  59. package/dist/api/compiler/checker-iteration.js +857 -0
  60. package/dist/api/compiler/checker-javascript.d.ts +42 -0
  61. package/dist/api/compiler/checker-javascript.js +441 -0
  62. package/dist/api/compiler/checker-jsdoc.d.ts +30 -0
  63. package/dist/api/compiler/checker-jsdoc.js +320 -0
  64. package/dist/api/compiler/checker-jsx.d.ts +94 -0
  65. package/dist/api/compiler/checker-jsx.js +1433 -0
  66. package/dist/api/compiler/checker-literals.d.ts +6 -0
  67. package/dist/api/compiler/checker-literals.js +43 -0
  68. package/dist/api/compiler/checker-members.d.ts +198 -0
  69. package/dist/api/compiler/checker-members.js +2126 -0
  70. package/dist/api/compiler/checker-modules.d.ts +85 -0
  71. package/dist/api/compiler/checker-modules.js +2141 -0
  72. package/dist/api/compiler/checker-narrowing.d.ts +120 -0
  73. package/dist/api/compiler/checker-narrowing.js +2797 -0
  74. package/dist/api/compiler/checker-object-literals.d.ts +14 -0
  75. package/dist/api/compiler/checker-object-literals.js +479 -0
  76. package/dist/api/compiler/checker-operators.d.ts +33 -0
  77. package/dist/api/compiler/checker-operators.js +1040 -0
  78. package/dist/api/compiler/checker-overloads.d.ts +7 -0
  79. package/dist/api/compiler/checker-overloads.js +270 -0
  80. package/dist/api/compiler/checker-property-access.d.ts +34 -0
  81. package/dist/api/compiler/checker-property-access.js +672 -0
  82. package/dist/api/compiler/checker-services.d.ts +49 -0
  83. package/dist/api/compiler/checker-services.js +995 -0
  84. package/dist/api/compiler/checker-signatures.d.ts +55 -0
  85. package/dist/api/compiler/checker-signatures.js +788 -0
  86. package/dist/api/compiler/checker-source-file.d.ts +27 -0
  87. package/dist/api/compiler/checker-source-file.js +619 -0
  88. package/dist/api/compiler/checker-statements.d.ts +18 -0
  89. package/dist/api/compiler/checker-statements.js +226 -0
  90. package/dist/api/compiler/checker-super.d.ts +13 -0
  91. package/dist/api/compiler/checker-super.js +241 -0
  92. package/dist/api/compiler/checker-symbol-types.d.ts +67 -0
  93. package/dist/api/compiler/checker-symbol-types.js +1885 -0
  94. package/dist/api/compiler/checker-symbols.d.ts +181 -0
  95. package/dist/api/compiler/checker-symbols.js +1782 -0
  96. package/dist/api/compiler/checker-type-factory.d.ts +142 -0
  97. package/dist/api/compiler/checker-type-factory.js +2501 -0
  98. package/dist/api/compiler/checker-type-nodes.d.ts +26 -0
  99. package/dist/api/compiler/checker-type-nodes.js +828 -0
  100. package/dist/api/compiler/checker-type-operators.d.ts +109 -0
  101. package/dist/api/compiler/checker-type-operators.js +1842 -0
  102. package/dist/api/compiler/checker-types.d.ts +1027 -0
  103. package/dist/api/compiler/checker-types.js +1697 -0
  104. package/dist/api/compiler/checker-unused.d.ts +19 -0
  105. package/dist/api/compiler/checker-unused.js +524 -0
  106. package/dist/api/compiler/checker-utilities.d.ts +33 -0
  107. package/dist/api/compiler/checker-utilities.js +141 -0
  108. package/dist/api/compiler/checker.d.ts +491 -0
  109. package/dist/api/compiler/checker.js +912 -0
  110. package/dist/api/compiler/command-line.d.ts +32 -0
  111. package/dist/api/compiler/command-line.js +383 -0
  112. package/dist/api/compiler/compile-program.d.ts +118 -0
  113. package/dist/api/compiler/compile-program.js +384 -0
  114. package/dist/api/compiler/diagnostic-locales.d.ts +22 -0
  115. package/dist/api/compiler/diagnostic-locales.js +64 -0
  116. package/dist/api/compiler/diagnostic-messages.d.ts +2166 -0
  117. package/dist/api/compiler/diagnostic-messages.js +184 -0
  118. package/dist/api/compiler/diagnostics.d.ts +167 -0
  119. package/dist/api/compiler/diagnostics.js +820 -0
  120. package/dist/api/compiler/emitter.d.ts +71 -0
  121. package/dist/api/compiler/emitter.js +327 -0
  122. package/dist/api/compiler/file-include.d.ts +117 -0
  123. package/dist/api/compiler/file-include.js +536 -0
  124. package/dist/api/compiler/file-loader.d.ts +261 -0
  125. package/dist/api/compiler/file-loader.js +1257 -0
  126. package/dist/api/compiler/file-system.d.ts +51 -0
  127. package/dist/api/compiler/file-system.js +132 -0
  128. package/dist/api/compiler/flow.d.ts +60 -0
  129. package/dist/api/compiler/flow.js +45 -0
  130. package/dist/api/compiler/instantiation.d.ts +74 -0
  131. package/dist/api/compiler/instantiation.js +799 -0
  132. package/dist/api/compiler/jsdoc.d.ts +75 -0
  133. package/dist/api/compiler/jsdoc.js +1229 -0
  134. package/dist/api/compiler/link-tables.d.ts +36 -0
  135. package/dist/api/compiler/link-tables.js +83 -0
  136. package/dist/api/compiler/locale-data.d.ts +24 -0
  137. package/dist/api/compiler/locale-data.js +183 -0
  138. package/dist/api/compiler/locale.d.ts +4 -0
  139. package/dist/api/compiler/locale.js +317 -0
  140. package/dist/api/compiler/locales/cs-CZ.d.ts +2 -0
  141. package/dist/api/compiler/locales/cs-CZ.js +3 -0
  142. package/dist/api/compiler/locales/de-DE.d.ts +2 -0
  143. package/dist/api/compiler/locales/de-DE.js +3 -0
  144. package/dist/api/compiler/locales/es-ES.d.ts +2 -0
  145. package/dist/api/compiler/locales/es-ES.js +3 -0
  146. package/dist/api/compiler/locales/fr-FR.d.ts +2 -0
  147. package/dist/api/compiler/locales/fr-FR.js +3 -0
  148. package/dist/api/compiler/locales/it-IT.d.ts +2 -0
  149. package/dist/api/compiler/locales/it-IT.js +3 -0
  150. package/dist/api/compiler/locales/ja-JP.d.ts +2 -0
  151. package/dist/api/compiler/locales/ja-JP.js +3 -0
  152. package/dist/api/compiler/locales/ko-KR.d.ts +2 -0
  153. package/dist/api/compiler/locales/ko-KR.js +3 -0
  154. package/dist/api/compiler/locales/pl-PL.d.ts +2 -0
  155. package/dist/api/compiler/locales/pl-PL.js +3 -0
  156. package/dist/api/compiler/locales/pt-BR.d.ts +2 -0
  157. package/dist/api/compiler/locales/pt-BR.js +3 -0
  158. package/dist/api/compiler/locales/ru-RU.d.ts +2 -0
  159. package/dist/api/compiler/locales/ru-RU.js +3 -0
  160. package/dist/api/compiler/locales/tr-TR.d.ts +2 -0
  161. package/dist/api/compiler/locales/tr-TR.js +3 -0
  162. package/dist/api/compiler/locales/zh-CN.d.ts +2 -0
  163. package/dist/api/compiler/locales/zh-CN.js +3 -0
  164. package/dist/api/compiler/locales/zh-TW.d.ts +2 -0
  165. package/dist/api/compiler/locales/zh-TW.js +3 -0
  166. package/dist/api/compiler/module-resolution-types.d.ts +83 -0
  167. package/dist/api/compiler/module-resolution-types.js +176 -0
  168. package/dist/api/compiler/module-resolution.d.ts +71 -0
  169. package/dist/api/compiler/module-resolution.js +1598 -0
  170. package/dist/api/compiler/module-specifiers.d.ts +64 -0
  171. package/dist/api/compiler/module-specifiers.js +1101 -0
  172. package/dist/api/compiler/name-resolver.d.ts +43 -0
  173. package/dist/api/compiler/name-resolver.js +509 -0
  174. package/dist/api/compiler/node-builder-names.d.ts +32 -0
  175. package/dist/api/compiler/node-builder-names.js +854 -0
  176. package/dist/api/compiler/node-builder-pseudo.d.ts +36 -0
  177. package/dist/api/compiler/node-builder-pseudo.js +744 -0
  178. package/dist/api/compiler/node-builder-reuse.d.ts +4 -0
  179. package/dist/api/compiler/node-builder-reuse.js +647 -0
  180. package/dist/api/compiler/node-builder.d.ts +270 -0
  181. package/dist/api/compiler/node-builder.js +2645 -0
  182. package/dist/api/compiler/option-declarations.d.ts +90 -0
  183. package/dist/api/compiler/option-declarations.js +1460 -0
  184. package/dist/api/compiler/options.d.ts +289 -0
  185. package/dist/api/compiler/options.js +1197 -0
  186. package/dist/api/compiler/output-paths.d.ts +42 -0
  187. package/dist/api/compiler/output-paths.js +195 -0
  188. package/dist/api/compiler/package-json.d.ts +175 -0
  189. package/dist/api/compiler/package-json.js +1015 -0
  190. package/dist/api/compiler/parallel-parse.d.ts +219 -0
  191. package/dist/api/compiler/parallel-parse.js +537 -0
  192. package/dist/api/compiler/parser.d.ts +587 -0
  193. package/dist/api/compiler/parser.js +6407 -0
  194. package/dist/api/compiler/path.d.ts +91 -0
  195. package/dist/api/compiler/path.js +705 -0
  196. package/dist/api/compiler/printer/async-helpers.d.ts +22 -0
  197. package/dist/api/compiler/printer/async-helpers.js +91 -0
  198. package/dist/api/compiler/printer/auto-generate.d.ts +13 -0
  199. package/dist/api/compiler/printer/auto-generate.js +20 -0
  200. package/dist/api/compiler/printer/decorator-helpers.d.ts +24 -0
  201. package/dist/api/compiler/printer/decorator-helpers.js +118 -0
  202. package/dist/api/compiler/printer/emit-context.d.ts +154 -0
  203. package/dist/api/compiler/printer/emit-context.js +576 -0
  204. package/dist/api/compiler/printer/emit-flags.d.ts +60 -0
  205. package/dist/api/compiler/printer/emit-flags.js +2 -0
  206. package/dist/api/compiler/printer/factory-base.d.ts +171 -0
  207. package/dist/api/compiler/printer/factory-base.js +1505 -0
  208. package/dist/api/compiler/printer/factory.d.ts +147 -0
  209. package/dist/api/compiler/printer/factory.js +542 -0
  210. package/dist/api/compiler/printer/helpers.d.ts +27 -0
  211. package/dist/api/compiler/printer/helpers.js +164 -0
  212. package/dist/api/compiler/printer/name-generator.d.ts +41 -0
  213. package/dist/api/compiler/printer/name-generator.js +283 -0
  214. package/dist/api/compiler/printer/printer.d.ts +411 -0
  215. package/dist/api/compiler/printer/printer.js +4517 -0
  216. package/dist/api/compiler/printer/text-writer.d.ts +46 -0
  217. package/dist/api/compiler/printer/text-writer.js +172 -0
  218. package/dist/api/compiler/printer/utilities.d.ts +82 -0
  219. package/dist/api/compiler/printer/utilities.js +817 -0
  220. package/dist/api/compiler/program-checker.d.ts +156 -0
  221. package/dist/api/compiler/program-checker.js +526 -0
  222. package/dist/api/compiler/program-utilities.d.ts +52 -0
  223. package/dist/api/compiler/program-utilities.js +365 -0
  224. package/dist/api/compiler/program.d.ts +180 -0
  225. package/dist/api/compiler/program.js +1011 -0
  226. package/dist/api/compiler/pseudo-bigint.d.ts +5 -0
  227. package/dist/api/compiler/pseudo-bigint.js +61 -0
  228. package/dist/api/compiler/regexp-checker.d.ts +38 -0
  229. package/dist/api/compiler/regexp-checker.js +942 -0
  230. package/dist/api/compiler/relations.d.ts +263 -0
  231. package/dist/api/compiler/relations.js +4002 -0
  232. package/dist/api/compiler/reparser.d.ts +48 -0
  233. package/dist/api/compiler/reparser.js +1323 -0
  234. package/dist/api/compiler/scanner.d.ts +256 -0
  235. package/dist/api/compiler/scanner.js +2853 -0
  236. package/dist/api/compiler/side-state.d.ts +16 -0
  237. package/dist/api/compiler/side-state.js +89 -0
  238. package/dist/api/compiler/sourcemap.d.ts +55 -0
  239. package/dist/api/compiler/sourcemap.js +340 -0
  240. package/dist/api/compiler/spelling.d.ts +14 -0
  241. package/dist/api/compiler/spelling.js +128 -0
  242. package/dist/api/compiler/symbol-accessibility.d.ts +57 -0
  243. package/dist/api/compiler/symbol-accessibility.js +894 -0
  244. package/dist/api/compiler/symbol.d.ts +240 -0
  245. package/dist/api/compiler/symbol.js +228 -0
  246. package/dist/api/compiler/symlinks.d.ts +32 -0
  247. package/dist/api/compiler/symlinks.js +114 -0
  248. package/dist/api/compiler/syntax-kind.d.ts +389 -0
  249. package/dist/api/compiler/syntax-kind.js +2 -0
  250. package/dist/api/compiler/timeline.d.ts +9 -0
  251. package/dist/api/compiler/timeline.js +54 -0
  252. package/dist/api/compiler/transformers/alias-references.d.ts +39 -0
  253. package/dist/api/compiler/transformers/alias-references.js +676 -0
  254. package/dist/api/compiler/transformers/async-utilities.d.ts +51 -0
  255. package/dist/api/compiler/transformers/async-utilities.js +260 -0
  256. package/dist/api/compiler/transformers/async.d.ts +53 -0
  257. package/dist/api/compiler/transformers/async.js +645 -0
  258. package/dist/api/compiler/transformers/class-fields.d.ts +206 -0
  259. package/dist/api/compiler/transformers/class-fields.js +2418 -0
  260. package/dist/api/compiler/transformers/class-utilities.d.ts +46 -0
  261. package/dist/api/compiler/transformers/class-utilities.js +261 -0
  262. package/dist/api/compiler/transformers/commonjs-module.d.ts +103 -0
  263. package/dist/api/compiler/transformers/commonjs-module.js +1180 -0
  264. package/dist/api/compiler/transformers/const-enum-inliner.d.ts +11 -0
  265. package/dist/api/compiler/transformers/const-enum-inliner.js +36 -0
  266. package/dist/api/compiler/transformers/declarations-diagnostics.d.ts +52 -0
  267. package/dist/api/compiler/transformers/declarations-diagnostics.js +538 -0
  268. package/dist/api/compiler/transformers/declarations-pseudo.d.ts +160 -0
  269. package/dist/api/compiler/transformers/declarations-pseudo.js +797 -0
  270. package/dist/api/compiler/transformers/declarations-resolver.d.ts +152 -0
  271. package/dist/api/compiler/transformers/declarations-resolver.js +35 -0
  272. package/dist/api/compiler/transformers/declarations-syntactic.d.ts +119 -0
  273. package/dist/api/compiler/transformers/declarations-syntactic.js +1582 -0
  274. package/dist/api/compiler/transformers/declarations-tracker.d.ts +46 -0
  275. package/dist/api/compiler/transformers/declarations-tracker.js +197 -0
  276. package/dist/api/compiler/transformers/declarations.d.ts +175 -0
  277. package/dist/api/compiler/transformers/declarations.js +2380 -0
  278. package/dist/api/compiler/transformers/decorator-metadata.d.ts +54 -0
  279. package/dist/api/compiler/transformers/decorator-metadata.js +554 -0
  280. package/dist/api/compiler/transformers/decorator-utilities.d.ts +38 -0
  281. package/dist/api/compiler/transformers/decorator-utilities.js +238 -0
  282. package/dist/api/compiler/transformers/destructuring.d.ts +25 -0
  283. package/dist/api/compiler/transformers/destructuring.js +626 -0
  284. package/dist/api/compiler/transformers/downlevel.d.ts +6 -0
  285. package/dist/api/compiler/transformers/downlevel.js +45 -0
  286. package/dist/api/compiler/transformers/emit-resolver.d.ts +61 -0
  287. package/dist/api/compiler/transformers/emit-resolver.js +197 -0
  288. package/dist/api/compiler/transformers/es-decorators.d.ts +118 -0
  289. package/dist/api/compiler/transformers/es-decorators.js +1901 -0
  290. package/dist/api/compiler/transformers/exponentiation.d.ts +11 -0
  291. package/dist/api/compiler/transformers/exponentiation.js +76 -0
  292. package/dist/api/compiler/transformers/external-module-info.d.ts +35 -0
  293. package/dist/api/compiler/transformers/external-module-info.js +351 -0
  294. package/dist/api/compiler/transformers/for-await.d.ts +43 -0
  295. package/dist/api/compiler/transformers/for-await.js +469 -0
  296. package/dist/api/compiler/transformers/import-elision.d.ts +16 -0
  297. package/dist/api/compiler/transformers/import-elision.js +124 -0
  298. package/dist/api/compiler/transformers/jsx-entities.d.ts +1 -0
  299. package/dist/api/compiler/transformers/jsx-entities.js +256 -0
  300. package/dist/api/compiler/transformers/jsx.d.ts +71 -0
  301. package/dist/api/compiler/transformers/jsx.js +700 -0
  302. package/dist/api/compiler/transformers/legacy-decorators.d.ts +56 -0
  303. package/dist/api/compiler/transformers/legacy-decorators.js +564 -0
  304. package/dist/api/compiler/transformers/logical-assignment.d.ts +14 -0
  305. package/dist/api/compiler/transformers/logical-assignment.js +62 -0
  306. package/dist/api/compiler/transformers/module-utilities.d.ts +9 -0
  307. package/dist/api/compiler/transformers/module-utilities.js +36 -0
  308. package/dist/api/compiler/transformers/module.d.ts +49 -0
  309. package/dist/api/compiler/transformers/module.js +296 -0
  310. package/dist/api/compiler/transformers/named-evaluation.d.ts +26 -0
  311. package/dist/api/compiler/transformers/named-evaluation.js +266 -0
  312. package/dist/api/compiler/transformers/nullish-coalescing.d.ts +9 -0
  313. package/dist/api/compiler/transformers/nullish-coalescing.js +26 -0
  314. package/dist/api/compiler/transformers/object-rest-spread.d.ts +34 -0
  315. package/dist/api/compiler/transformers/object-rest-spread.js +411 -0
  316. package/dist/api/compiler/transformers/optional-catch.d.ts +9 -0
  317. package/dist/api/compiler/transformers/optional-catch.js +20 -0
  318. package/dist/api/compiler/transformers/optional-chain.d.ts +14 -0
  319. package/dist/api/compiler/transformers/optional-chain.js +188 -0
  320. package/dist/api/compiler/transformers/reference-resolver.d.ts +128 -0
  321. package/dist/api/compiler/transformers/reference-resolver.js +1155 -0
  322. package/dist/api/compiler/transformers/runtime-syntax.d.ts +71 -0
  323. package/dist/api/compiler/transformers/runtime-syntax.js +753 -0
  324. package/dist/api/compiler/transformers/subtree-facts.d.ts +9 -0
  325. package/dist/api/compiler/transformers/subtree-facts.js +203 -0
  326. package/dist/api/compiler/transformers/syntax-facts.d.ts +51 -0
  327. package/dist/api/compiler/transformers/syntax-facts.js +254 -0
  328. package/dist/api/compiler/transformers/tagged-template.d.ts +17 -0
  329. package/dist/api/compiler/transformers/tagged-template.js +148 -0
  330. package/dist/api/compiler/transformers/transformer.d.ts +17 -0
  331. package/dist/api/compiler/transformers/transformer.js +54 -0
  332. package/dist/api/compiler/transformers/type-eraser.d.ts +21 -0
  333. package/dist/api/compiler/transformers/type-eraser.js +346 -0
  334. package/dist/api/compiler/transformers/type-serialization.d.ts +20 -0
  335. package/dist/api/compiler/transformers/type-serialization.js +347 -0
  336. package/dist/api/compiler/transformers/using.d.ts +56 -0
  337. package/dist/api/compiler/transformers/using.js +453 -0
  338. package/dist/api/compiler/transformers/utilities.d.ts +50 -0
  339. package/dist/api/compiler/transformers/utilities.js +347 -0
  340. package/dist/api/compiler/transformers/visitor-base.d.ts +6 -0
  341. package/dist/api/compiler/transformers/visitor-base.js +817 -0
  342. package/dist/api/compiler/transformers/visitor-hooks.d.ts +29 -0
  343. package/dist/api/compiler/transformers/visitor-hooks.js +189 -0
  344. package/dist/api/compiler/tsconfig.d.ts +177 -0
  345. package/dist/api/compiler/tsconfig.js +1311 -0
  346. package/dist/api/compiler/type-printer.d.ts +15 -0
  347. package/dist/api/compiler/type-printer.js +74 -0
  348. package/dist/api/compiler/types.d.ts +87 -0
  349. package/dist/api/compiler/types.js +23 -0
  350. package/dist/api/compiler/unicode-identifiers.d.ts +2 -0
  351. package/dist/api/compiler/unicode-identifiers.js +209 -0
  352. package/dist/api/compiler/unicode-properties.d.ts +8 -0
  353. package/dist/api/compiler/unicode-properties.js +531 -0
  354. package/dist/api/compiler/vfs-match.d.ts +24 -0
  355. package/dist/api/compiler/vfs-match.js +587 -0
  356. package/dist/api/library/ast.d.ts +74 -0
  357. package/dist/api/library/ast.generated.d.ts +1145 -0
  358. package/dist/api/library/ast.generated.js +3 -0
  359. package/dist/api/library/ast.js +5 -0
  360. package/dist/api/library/checker.d.ts +51 -0
  361. package/dist/api/library/checker.js +318 -0
  362. package/dist/api/library/compiler-options.generated.d.ts +108 -0
  363. package/dist/api/library/compiler-options.generated.js +3 -0
  364. package/dist/api/library/diagnostics.d.ts +13 -0
  365. package/dist/api/library/diagnostics.js +50 -0
  366. package/dist/api/library/disk.d.ts +13 -0
  367. package/dist/api/library/disk.js +66 -0
  368. package/dist/api/library/enums.generated.d.ts +891 -0
  369. package/dist/api/library/enums.generated.js +916 -0
  370. package/dist/api/library/errors.d.ts +13 -0
  371. package/dist/api/library/errors.js +24 -0
  372. package/dist/api/library/host.d.ts +24 -0
  373. package/dist/api/library/host.js +52 -0
  374. package/dist/api/library/index.d.ts +14 -0
  375. package/dist/api/library/index.js +15 -0
  376. package/dist/api/library/nodes.d.ts +51 -0
  377. package/dist/api/library/nodes.js +196 -0
  378. package/dist/api/library/options.d.ts +144 -0
  379. package/dist/api/library/options.js +308 -0
  380. package/dist/api/library/parse.d.ts +19 -0
  381. package/dist/api/library/parse.js +41 -0
  382. package/dist/api/library/program.d.ts +21 -0
  383. package/dist/api/library/program.js +234 -0
  384. package/dist/api/library/symbols.d.ts +8 -0
  385. package/dist/api/library/symbols.js +11 -0
  386. package/dist/api/library/types.d.ts +313 -0
  387. package/dist/api/library/types.js +6 -0
  388. package/package.json +22 -8
  389. package/src/compiler/ast-utilities.ts +548 -0
  390. package/src/compiler/ast.ts +12862 -0
  391. package/src/compiler/astnav.ts +799 -0
  392. package/src/compiler/binder-utilities.ts +1392 -0
  393. package/src/compiler/binder.ts +2703 -0
  394. package/src/compiler/build-info.ts +1197 -0
  395. package/src/compiler/character-codes.ts +323 -0
  396. package/src/compiler/checker-calls.ts +2155 -0
  397. package/src/compiler/checker-classes.ts +706 -0
  398. package/src/compiler/checker-contextual.ts +1457 -0
  399. package/src/compiler/checker-declaration-order.ts +438 -0
  400. package/src/compiler/checker-declarations.ts +1194 -0
  401. package/src/compiler/checker-declared-types.ts +919 -0
  402. package/src/compiler/checker-decorators.ts +694 -0
  403. package/src/compiler/checker-deprecation.ts +359 -0
  404. package/src/compiler/checker-destructuring.ts +805 -0
  405. package/src/compiler/checker-elaboration.ts +477 -0
  406. package/src/compiler/checker-emit-helpers.ts +224 -0
  407. package/src/compiler/checker-emit-resolver.ts +769 -0
  408. package/src/compiler/checker-evaluator.ts +243 -0
  409. package/src/compiler/checker-expressions.ts +1831 -0
  410. package/src/compiler/checker-features.ts +361 -0
  411. package/src/compiler/checker-flow.ts +394 -0
  412. package/src/compiler/checker-functions.ts +1296 -0
  413. package/src/compiler/checker-generated-code.ts +227 -0
  414. package/src/compiler/checker-globals.ts +52 -0
  415. package/src/compiler/checker-grammar.ts +3584 -0
  416. package/src/compiler/checker-heritage.ts +1233 -0
  417. package/src/compiler/checker-inference.ts +2576 -0
  418. package/src/compiler/checker-iteration.ts +1206 -0
  419. package/src/compiler/checker-javascript.ts +502 -0
  420. package/src/compiler/checker-jsdoc.ts +360 -0
  421. package/src/compiler/checker-jsx.ts +1924 -0
  422. package/src/compiler/checker-literals.ts +61 -0
  423. package/src/compiler/checker-members.ts +2436 -0
  424. package/src/compiler/checker-modules.ts +2886 -0
  425. package/src/compiler/checker-narrowing.ts +3230 -0
  426. package/src/compiler/checker-object-literals.ts +575 -0
  427. package/src/compiler/checker-operators.ts +1422 -0
  428. package/src/compiler/checker-overloads.ts +328 -0
  429. package/src/compiler/checker-property-access.ts +906 -0
  430. package/src/compiler/checker-services.ts +1149 -0
  431. package/src/compiler/checker-signatures.ts +1032 -0
  432. package/src/compiler/checker-source-file.ts +732 -0
  433. package/src/compiler/checker-statements.ts +292 -0
  434. package/src/compiler/checker-super.ts +261 -0
  435. package/src/compiler/checker-symbol-types.ts +2107 -0
  436. package/src/compiler/checker-symbols.ts +2150 -0
  437. package/src/compiler/checker-type-factory.ts +2579 -0
  438. package/src/compiler/checker-type-nodes.ts +1033 -0
  439. package/src/compiler/checker-type-operators.ts +2502 -0
  440. package/src/compiler/checker-types.ts +2340 -0
  441. package/src/compiler/checker-unused.ts +642 -0
  442. package/src/compiler/checker-utilities.ts +161 -0
  443. package/src/compiler/checker.ts +1116 -0
  444. package/src/compiler/command-line.ts +436 -0
  445. package/src/compiler/compile-program.ts +439 -0
  446. package/src/compiler/decoder.ts +1209 -0
  447. package/src/compiler/diagnostic-locales.ts +86 -0
  448. package/src/compiler/diagnostic-messages.ts +2349 -0
  449. package/src/compiler/diagnostics.ts +897 -0
  450. package/src/compiler/emitter.ts +434 -0
  451. package/src/compiler/encoder.ts +1945 -0
  452. package/src/compiler/file-include.ts +673 -0
  453. package/src/compiler/file-loader.ts +1528 -0
  454. package/src/compiler/file-system.ts +143 -0
  455. package/src/compiler/flow.ts +89 -0
  456. package/src/compiler/help.ts +473 -0
  457. package/src/compiler/incremental.ts +2784 -0
  458. package/src/compiler/init.ts +141 -0
  459. package/src/compiler/instantiation.ts +894 -0
  460. package/src/compiler/jsdoc.ts +1386 -0
  461. package/src/compiler/link-tables.ts +98 -0
  462. package/src/compiler/locale-data.ts +203 -0
  463. package/src/compiler/locale.ts +307 -0
  464. package/src/compiler/locales/cs-CZ.ts +5 -0
  465. package/src/compiler/locales/de-DE.ts +5 -0
  466. package/src/compiler/locales/es-ES.ts +5 -0
  467. package/src/compiler/locales/fr-FR.ts +5 -0
  468. package/src/compiler/locales/it-IT.ts +5 -0
  469. package/src/compiler/locales/ja-JP.ts +5 -0
  470. package/src/compiler/locales/ko-KR.ts +5 -0
  471. package/src/compiler/locales/pl-PL.ts +5 -0
  472. package/src/compiler/locales/pt-BR.ts +5 -0
  473. package/src/compiler/locales/ru-RU.ts +5 -0
  474. package/src/compiler/locales/tr-TR.ts +5 -0
  475. package/src/compiler/locales/zh-CN.ts +5 -0
  476. package/src/compiler/locales/zh-TW.ts +5 -0
  477. package/src/compiler/module-resolution-types.ts +243 -0
  478. package/src/compiler/module-resolution.ts +2072 -0
  479. package/src/compiler/module-specifiers.ts +1491 -0
  480. package/src/compiler/name-resolver.ts +646 -0
  481. package/src/compiler/node-builder-names.ts +1069 -0
  482. package/src/compiler/node-builder-pseudo.ts +892 -0
  483. package/src/compiler/node-builder-reuse.ts +764 -0
  484. package/src/compiler/node-builder.ts +3425 -0
  485. package/src/compiler/option-declarations.ts +1560 -0
  486. package/src/compiler/options.ts +1576 -0
  487. package/src/compiler/output-paths.ts +334 -0
  488. package/src/compiler/package-json.ts +1083 -0
  489. package/src/compiler/parallel-check.ts +1951 -0
  490. package/src/compiler/parallel-parse.ts +590 -0
  491. package/src/compiler/parse-thread.ts +140 -0
  492. package/src/compiler/parser.ts +7716 -0
  493. package/src/compiler/path.ts +717 -0
  494. package/src/compiler/printer/async-helpers.ts +183 -0
  495. package/src/compiler/printer/auto-generate.ts +27 -0
  496. package/src/compiler/printer/decorator-helpers.ts +218 -0
  497. package/src/compiler/printer/emit-context.ts +679 -0
  498. package/src/compiler/printer/emit-flags.ts +64 -0
  499. package/src/compiler/printer/factory-base.ts +2577 -0
  500. package/src/compiler/printer/factory.ts +764 -0
  501. package/src/compiler/printer/helpers.ts +291 -0
  502. package/src/compiler/printer/name-generator.ts +372 -0
  503. package/src/compiler/printer/printer.ts +5072 -0
  504. package/src/compiler/printer/text-writer.ts +183 -0
  505. package/src/compiler/printer/utilities.ts +884 -0
  506. package/src/compiler/program-checker.ts +592 -0
  507. package/src/compiler/program-utilities.ts +435 -0
  508. package/src/compiler/program.ts +1419 -0
  509. package/src/compiler/pseudo-bigint.ts +62 -0
  510. package/src/compiler/regexp-checker.ts +1142 -0
  511. package/src/compiler/relations.ts +5149 -0
  512. package/src/compiler/reparser.ts +1566 -0
  513. package/src/compiler/scanner.ts +2951 -0
  514. package/src/compiler/show-config.ts +239 -0
  515. package/src/compiler/side-state.ts +125 -0
  516. package/src/compiler/sourcemap.ts +366 -0
  517. package/src/compiler/spelling.ts +122 -0
  518. package/src/compiler/symbol-accessibility.ts +1071 -0
  519. package/src/compiler/symbol.ts +439 -0
  520. package/src/compiler/symlinks.ts +137 -0
  521. package/src/compiler/syntax-kind.ts +391 -0
  522. package/src/compiler/thread-entry.ts +191 -0
  523. package/src/compiler/timeline.ts +53 -0
  524. package/src/compiler/transformers/alias-references.ts +757 -0
  525. package/src/compiler/transformers/async-utilities.ts +335 -0
  526. package/src/compiler/transformers/async.ts +838 -0
  527. package/src/compiler/transformers/class-fields.ts +2967 -0
  528. package/src/compiler/transformers/class-utilities.ts +324 -0
  529. package/src/compiler/transformers/commonjs-module.ts +1621 -0
  530. package/src/compiler/transformers/const-enum-inliner.ts +50 -0
  531. package/src/compiler/transformers/declarations-diagnostics.ts +832 -0
  532. package/src/compiler/transformers/declarations-pseudo.ts +966 -0
  533. package/src/compiler/transformers/declarations-resolver.ts +249 -0
  534. package/src/compiler/transformers/declarations-syntactic.ts +1859 -0
  535. package/src/compiler/transformers/declarations-tracker.ts +269 -0
  536. package/src/compiler/transformers/declarations.ts +3120 -0
  537. package/src/compiler/transformers/decorator-metadata.ts +697 -0
  538. package/src/compiler/transformers/decorator-utilities.ts +283 -0
  539. package/src/compiler/transformers/destructuring.ts +708 -0
  540. package/src/compiler/transformers/downlevel.ts +50 -0
  541. package/src/compiler/transformers/emit-resolver.ts +258 -0
  542. package/src/compiler/transformers/es-decorators.ts +2682 -0
  543. package/src/compiler/transformers/exponentiation.ts +80 -0
  544. package/src/compiler/transformers/external-module-info.ts +412 -0
  545. package/src/compiler/transformers/for-await.ts +687 -0
  546. package/src/compiler/transformers/import-elision.ts +152 -0
  547. package/src/compiler/transformers/jsx-entities.ts +256 -0
  548. package/src/compiler/transformers/jsx.ts +824 -0
  549. package/src/compiler/transformers/legacy-decorators.ts +726 -0
  550. package/src/compiler/transformers/logical-assignment.ts +75 -0
  551. package/src/compiler/transformers/module-utilities.ts +42 -0
  552. package/src/compiler/transformers/module.ts +474 -0
  553. package/src/compiler/transformers/named-evaluation.ts +389 -0
  554. package/src/compiler/transformers/nullish-coalescing.ts +35 -0
  555. package/src/compiler/transformers/object-rest-spread.ts +577 -0
  556. package/src/compiler/transformers/optional-catch.ts +29 -0
  557. package/src/compiler/transformers/optional-chain.ts +246 -0
  558. package/src/compiler/transformers/reference-resolver.ts +1201 -0
  559. package/src/compiler/transformers/runtime-syntax.ts +942 -0
  560. package/src/compiler/transformers/subtree-facts.ts +245 -0
  561. package/src/compiler/transformers/syntax-facts.ts +353 -0
  562. package/src/compiler/transformers/tagged-template.ts +167 -0
  563. package/src/compiler/transformers/transformer.ts +56 -0
  564. package/src/compiler/transformers/type-eraser.ts +520 -0
  565. package/src/compiler/transformers/type-serialization.ts +374 -0
  566. package/src/compiler/transformers/using.ts +613 -0
  567. package/src/compiler/transformers/utilities.ts +419 -0
  568. package/src/compiler/transformers/visitor-base.ts +1601 -0
  569. package/src/compiler/transformers/visitor-hooks.ts +252 -0
  570. package/src/compiler/tsc-build.ts +1418 -0
  571. package/src/compiler/tsc-cli.ts +666 -0
  572. package/src/compiler/tsc-compile.ts +437 -0
  573. package/src/compiler/tsc-watch.ts +854 -0
  574. package/src/compiler/tsconfig.ts +1574 -0
  575. package/src/compiler/type-printer.ts +110 -0
  576. package/src/compiler/types.ts +115 -0
  577. package/src/compiler/unicode-identifiers.ts +212 -0
  578. package/src/compiler/unicode-properties.ts +537 -0
  579. package/src/compiler/vfs-match.ts +597 -0
  580. package/src/compiler/xxh3.ts +650 -0
  581. package/src/library/ast.generated.ts +1685 -0
  582. package/src/library/ast.ts +104 -0
  583. package/src/library/checker.ts +384 -0
  584. package/src/library/compiler-options.generated.ts +114 -0
  585. package/src/library/diagnostics.ts +72 -0
  586. package/src/library/disk.ts +73 -0
  587. package/src/library/enums.generated.ts +1024 -0
  588. package/src/library/errors.ts +26 -0
  589. package/src/library/host.ts +63 -0
  590. package/src/library/index.ts +71 -0
  591. package/src/library/nodes.ts +232 -0
  592. package/src/library/options.ts +449 -0
  593. package/src/library/parse.ts +63 -0
  594. package/src/library/program.ts +293 -0
  595. package/src/library/symbols.ts +15 -0
  596. package/src/library/types.ts +359 -0
@@ -0,0 +1,384 @@
1
+ import { EmitHost, EmitResult, emitFiles, skippedWrite, sourceFileMayBeEmitted } from './emitter.js';
2
+ import { Resolver } from './module-resolution.js';
3
+ import { getEmitDeclarations } from './options.js';
4
+ import { CheckedProgram } from './program-checker.js';
5
+ import { CheckerDeclarationEmitResolver, CheckerEmitResolver } from './checker-emit-resolver.js';
6
+ import { getEmitModuleFormatOfFile } from './program-utilities.js';
7
+ import { DeclarationGlobals, SyntacticDeclarationEmitResolver } from './transformers/declarations-syntactic.js';
8
+ import { mark } from './timeline.js';
9
+ import { ModuleFormatHost } from './transformers/module.js';
10
+ import { ModuleLookup, ReferenceResolver } from './transformers/reference-resolver.js';
11
+ /** Where emit writes files. */
12
+ export class OutputWriter {
13
+ }
14
+ /** Keeps the outputs written to it, as file name and text alternately, instead of writing them. */
15
+ export class HoldingWriter extends OutputWriter {
16
+ outputs = [];
17
+ write(fileName, text, _declarationDiagnostics) {
18
+ this.outputs.push(fileName, text);
19
+ return '';
20
+ }
21
+ /** The outputs kept since the last call. */
22
+ take() {
23
+ const outputs = this.outputs;
24
+ this.outputs = [];
25
+ return outputs;
26
+ }
27
+ }
28
+ /**
29
+ * Writes the outputs a checker thread held (`EmitResult.heldOutputs`) with `writer`; returns the emit
30
+ * result as if the thread had written them: an output that fails to be written is an error instead of
31
+ * an emitted file, and one the writer leaves unwritten (`skippedWrite`) isn't an emitted file.
32
+ */
33
+ export function writeHeldOutputs(result, writer) {
34
+ const held = result.heldOutputs;
35
+ let failed = undefined;
36
+ let skipped = undefined;
37
+ for (let i = 0; i < held.length; i += 2) {
38
+ const error = writer.write(held[i], held[i + 1], []);
39
+ if (error === skippedWrite) {
40
+ if (skipped === undefined)
41
+ skipped = new Set();
42
+ skipped.add(held[i]);
43
+ }
44
+ else if (error !== '') {
45
+ if (failed === undefined)
46
+ failed = new Map();
47
+ failed.set(held[i], error);
48
+ }
49
+ }
50
+ if (failed === undefined && skipped === undefined)
51
+ return result;
52
+ const copy = new EmitResult();
53
+ copy.emitSkipped = result.emitSkipped;
54
+ for (const f of result.emittedFiles)
55
+ if (failed?.has(f) !== true && skipped?.has(f) !== true)
56
+ copy.emittedFiles.push(f);
57
+ for (const e of result.errors)
58
+ copy.errors.push(e);
59
+ if (failed !== undefined)
60
+ for (const e of failed.values())
61
+ copy.errors.push(e);
62
+ for (const u of result.unsupported)
63
+ copy.unsupported.push(u);
64
+ for (const d of result.diagnostics)
65
+ copy.diagnostics.push(d);
66
+ for (const s of result.declarationSignatures)
67
+ copy.declarationSignatures.push(s);
68
+ return copy;
69
+ }
70
+ /** Collects what a forced declaration emit produces instead of writing it. */
71
+ export class CapturingWriter extends OutputWriter {
72
+ /** Whether a file was written; its text can be empty. */
73
+ written = false;
74
+ text = '';
75
+ diagnostics = [];
76
+ write(_fileName, text, declarationDiagnostics) {
77
+ this.written = true;
78
+ this.text = text;
79
+ this.diagnostics = declarationDiagnostics;
80
+ return skippedWrite;
81
+ }
82
+ }
83
+ /** Phase timings in milliseconds, for `--diagnostics`. */
84
+ export class CompileTimes {
85
+ configTime = 0;
86
+ buildInfoReadTime = 0;
87
+ parseTime = 0;
88
+ bindTime = 0;
89
+ checkTime = 0;
90
+ emitTime = 0;
91
+ changesComputeTime = 0;
92
+ totalTime = 0;
93
+ }
94
+ /** Module formats from the program's file metadata. */
95
+ class ProgramFormats extends ModuleFormatHost {
96
+ program;
97
+ constructor(program) {
98
+ super();
99
+ this.program = program;
100
+ }
101
+ getEmitModuleFormat(fileName) {
102
+ const program = this.program;
103
+ return getEmitModuleFormatOfFile(fileName, program.options, program.sourceFileMetadata(program.toPath(fileName)));
104
+ }
105
+ }
106
+ /** Module specifiers resolved to files of the program. */
107
+ class ProgramModules extends ModuleLookup {
108
+ program;
109
+ resolver;
110
+ constructor(program) {
111
+ super();
112
+ this.program = program;
113
+ this.resolver = new Resolver(program.host, program.options);
114
+ }
115
+ resolveModule(location, file, specifier) {
116
+ const mode = this.program.getModeForUsageLocation(file, location);
117
+ // The program resolved the module names its files import; others, such as names emit
118
+ // synthesizes, are resolved here.
119
+ const recorded = this.program.getResolvedModule(file, specifier, mode);
120
+ const resolved = recorded !== undefined
121
+ ? recorded.resolvedFileName
122
+ : this.resolver.resolveModuleName(specifier, file.fileName, mode).resolvedFileName;
123
+ return resolved === '' ? undefined : this.program.getSourceFile(resolved);
124
+ }
125
+ }
126
+ class ProgramEmitHost extends EmitHost {
127
+ program;
128
+ writer = undefined;
129
+ constructor(program, resolver) {
130
+ super(program.options, resolver, new ProgramFormats(program), program.commonSourceDirectory(), program.currentDirectory, program.useCaseSensitiveFileNames);
131
+ this.program = program;
132
+ }
133
+ isEmitBlocked(fileName) {
134
+ return this.program.isEmitBlocked(fileName);
135
+ }
136
+ isSourceFileFromExternalLibrary(file) {
137
+ return this.program.isSourceFileFromExternalLibrary(file);
138
+ }
139
+ writeFile(fileName, text, declarationDiagnostics) {
140
+ const writer = this.writer;
141
+ if (writer === undefined)
142
+ return skippedWrite;
143
+ return writer.write(fileName, text, declarationDiagnostics ?? []);
144
+ }
145
+ }
146
+ /** Whether a program's emit resolves declarations, which incremental builds need for their shape signatures. */
147
+ function resolvesDeclarations(options) {
148
+ return getEmitDeclarations(options) || options.incremental === true || options.composite === true;
149
+ }
150
+ /**
151
+ * What the emit resolvers of a program index for all its files: the globals of emit's name
152
+ * resolution and, where declarations are resolved, those of declaration emit and the files by path.
153
+ * The thread that shares a program with checker threads builds them before publishing it
154
+ * (`shareWithCheckers`), so that the checkers' resolvers use one copy instead of each building its own.
155
+ */
156
+ export class EmitIndexes {
157
+ globals;
158
+ declarations;
159
+ constructor(program) {
160
+ const options = program.options;
161
+ const files = program.getSourceFiles();
162
+ this.globals = new ReferenceResolver(options, files, new ProgramModules(program)).merged;
163
+ this.declarations = resolvesDeclarations(options)
164
+ ? new DeclarationGlobals(files, program.currentDirectory)
165
+ : undefined;
166
+ }
167
+ }
168
+ /** A checked program and the emit of its files. */
169
+ export class ProgramEmitter {
170
+ checked;
171
+ host = undefined;
172
+ program;
173
+ constructor(checked) {
174
+ this.checked = checked;
175
+ this.program = checked.program;
176
+ }
177
+ /**
178
+ * The emit host, whose resolver resolves declarations where the options emit them or keep build info,
179
+ * or once `declarations` asks for it: a watch without build info computes the shape signatures of its
180
+ * rebuilds from forced declaration emit (`forcedDeclaration`).
181
+ */
182
+ getHost(declarations) {
183
+ let host = this.host;
184
+ if (host === undefined || (declarations && !(host.resolver instanceof CheckerDeclarationEmitResolver))) {
185
+ const program = this.program;
186
+ const options = program.options;
187
+ const files = program.getSourceFiles();
188
+ const indexes = program.emitIndexes;
189
+ const references = new ReferenceResolver(options, files, new ProgramModules(program), indexes !== undefined ? indexes.globals : undefined);
190
+ const emitResolver = new CheckerEmitResolver(options, references, this.checked.checker);
191
+ // Declaration emit is also needed for the shape signatures of incremental builds.
192
+ let resolver = emitResolver;
193
+ if (declarations || resolvesDeclarations(options)) {
194
+ const syntactic = new SyntacticDeclarationEmitResolver(options, files, program.currentDirectory, emitResolver, indexes !== undefined ? indexes.declarations : undefined);
195
+ resolver = new CheckerDeclarationEmitResolver(this.checked.checker, syntactic);
196
+ }
197
+ host = new ProgramEmitHost(program, resolver);
198
+ this.host = host;
199
+ }
200
+ return host;
201
+ }
202
+ emit(files, emitOnly, writer) {
203
+ // Where `emitFiles` would emit nothing, it is not given a host, whose resolvers index every file.
204
+ const options = this.program.options;
205
+ if ((options.noEmit === true && emitOnly !== 3 /* EmitOnly.ForcedDts */) ||
206
+ !files.some((file) => sourceFileMayBeEmitted(file, options))) {
207
+ const result = new EmitResult();
208
+ result.emitSkipped = options.noEmit === true && emitOnly !== 3 /* EmitOnly.ForcedDts */;
209
+ return result;
210
+ }
211
+ const host = this.getHost(emitOnly === 3 /* EmitOnly.ForcedDts */);
212
+ host.writer = writer;
213
+ const result = emitFiles(host, files, emitOnly);
214
+ host.writer = undefined;
215
+ return result;
216
+ }
217
+ /** The declaration text and errors of `file`, emitted even without `declaration`. */
218
+ forcedDeclaration(file) {
219
+ const writer = new CapturingWriter();
220
+ this.emit([file], 3 /* EmitOnly.ForcedDts */, writer);
221
+ return writer;
222
+ }
223
+ }
224
+ /** A program as `tsc` compiles it. */
225
+ export class CompilerProgram {
226
+ checked;
227
+ times;
228
+ emitter;
229
+ constructor(checked, times) {
230
+ this.checked = checked;
231
+ this.times = times;
232
+ this.emitter = new ProgramEmitter(checked);
233
+ }
234
+ get program() {
235
+ return this.checked.program;
236
+ }
237
+ get options() {
238
+ return this.checked.program.options;
239
+ }
240
+ getConfigFileParsingDiagnostics() {
241
+ return this.program.getConfigFileParsingDiagnostics();
242
+ }
243
+ getSyntacticDiagnostics() {
244
+ return this.program.getSyntacticDiagnostics();
245
+ }
246
+ getProgramDiagnostics() {
247
+ return this.program.getProgramDiagnostics();
248
+ }
249
+ /** See `CheckedProgram.getGlobalDiagnostics`. */
250
+ getGlobalDiagnostics(withCheckerThreads = true) {
251
+ return this.checked.getGlobalDiagnostics(withCheckerThreads);
252
+ }
253
+ }
254
+ /** Collects declaration emit errors without writing anything. */
255
+ class DiscardingWriter extends OutputWriter {
256
+ write(_fileName, _text, _declarationDiagnostics) {
257
+ return skippedWrite;
258
+ }
259
+ }
260
+ export const discardingWriter = new DiscardingWriter();
261
+ /** The declaration emit errors of `file` (none if it is not emitted). */
262
+ export function declarationDiagnosticsOfFile(emitter, file) {
263
+ return emitter.emit([file], 3 /* EmitOnly.ForcedDts */, discardingWriter).diagnostics;
264
+ }
265
+ /** A program compiled from scratch. */
266
+ export class PlainProgram extends CompilerProgram {
267
+ getSemanticDiagnostics() {
268
+ return this.checked.getSemanticDiagnostics(undefined);
269
+ }
270
+ getDeclarationDiagnostics() {
271
+ const files = this.program.getSourceFiles();
272
+ const parallel = this.checked.declarationsInParallel;
273
+ if (parallel === undefined)
274
+ return this.emitter.emit(files, 3 /* EmitOnly.ForcedDts */, discardingWriter).diagnostics;
275
+ // Declaration emit is per file: the files checker threads emitted, the others here, in order.
276
+ const result = [];
277
+ for (let i = 0; i < files.length; i++) {
278
+ const diagnostics = parallel[i] ?? declarationDiagnosticsOfFile(this.emitter, files[i]);
279
+ for (const d of diagnostics)
280
+ result.push(d);
281
+ }
282
+ return result;
283
+ }
284
+ emit(writer) {
285
+ const options = this.options;
286
+ if (options.noEmit !== true) {
287
+ const skipped = handleNoEmitOnError(this);
288
+ if (skipped !== undefined)
289
+ return skipped;
290
+ }
291
+ const program = this.program;
292
+ const files = program.getSourceFiles();
293
+ const parallel = this.checked.emittedInParallel;
294
+ // Checker threads emitted the files they checked (parallel-check.ts); the others are emitted here, in order.
295
+ const result = parallel === undefined
296
+ ? this.emitter.emit(files, 0 /* EmitOnly.All */, writer)
297
+ : combineEmitResults(files.map((file, i) => {
298
+ const emitted = parallel[i];
299
+ return emitted !== undefined
300
+ ? writeHeldOutputs(emitted, writer)
301
+ : this.emitter.emit([file], 0 /* EmitOnly.All */, writer);
302
+ }));
303
+ if (options.noEmit === true) {
304
+ // Emit is skipped only for files that would have been emitted.
305
+ result.emitSkipped = files.some((file) => program.sourceFileMayBeEmitted(file, false));
306
+ // Declaration emit still runs for its errors, as in tsgo, also when other errors were found.
307
+ if (getEmitDeclarations(options) && options.noEmitOnError !== true)
308
+ for (const d of this.getDeclarationDiagnostics())
309
+ result.diagnostics.push(d);
310
+ }
311
+ return result;
312
+ }
313
+ }
314
+ /** Under `noEmitOnError`, a skipped emit with the errors that prevent it; otherwise `undefined`. */
315
+ export function handleNoEmitOnError(program) {
316
+ if (program.options.noEmitOnError !== true)
317
+ return undefined;
318
+ const diagnostics = getDiagnosticsOfProgram(program, true);
319
+ if (diagnostics.length === 0)
320
+ return undefined;
321
+ const result = new EmitResult();
322
+ for (const d of diagnostics)
323
+ result.diagnostics.push(d);
324
+ result.emitSkipped = true;
325
+ return result;
326
+ }
327
+ /**
328
+ * Config and syntax errors; without syntax errors, program, global and semantic errors too, and
329
+ * declaration errors under `noEmit` (or `withDeclarationDiagnostics`).
330
+ */
331
+ export function getDiagnosticsOfProgram(program, withDeclarationDiagnostics) {
332
+ const result = [...program.getConfigFileParsingDiagnostics()];
333
+ const configCount = result.length;
334
+ for (const d of program.getSyntacticDiagnostics())
335
+ result.push(d);
336
+ mark('syntactic diagnostics');
337
+ if (result.length !== configCount)
338
+ return result;
339
+ for (const d of program.getProgramDiagnostics())
340
+ result.push(d);
341
+ mark('program diagnostics');
342
+ const options = program.options;
343
+ if (options.listFilesOnly === true)
344
+ return result;
345
+ // Those found by checking come after the semantic diagnostics, as with a single checker.
346
+ for (const d of program.getGlobalDiagnostics(false))
347
+ result.push(d);
348
+ if (result.length === configCount) {
349
+ const checkStart = performance.now();
350
+ const semantic = program.getSemanticDiagnostics();
351
+ program.times.checkTime = performance.now() - checkStart;
352
+ for (const d of semantic)
353
+ result.push(d);
354
+ // Checking may have found more, such as missing global types.
355
+ for (const d of program.getGlobalDiagnostics())
356
+ result.push(d);
357
+ mark('semantic diagnostics');
358
+ }
359
+ if ((withDeclarationDiagnostics || options.noEmit === true) &&
360
+ getEmitDeclarations(options) &&
361
+ result.length === configCount) {
362
+ for (const d of program.getDeclarationDiagnostics())
363
+ result.push(d);
364
+ }
365
+ return result;
366
+ }
367
+ /** Combines emit results in order. */
368
+ export function combineEmitResults(results) {
369
+ const result = new EmitResult();
370
+ for (const r of results) {
371
+ if (r.emitSkipped)
372
+ result.emitSkipped = true;
373
+ for (const d of r.diagnostics)
374
+ result.diagnostics.push(d);
375
+ for (const f of r.emittedFiles)
376
+ result.emittedFiles.push(f);
377
+ for (const e of r.errors)
378
+ result.errors.push(e);
379
+ for (const u of r.unsupported)
380
+ result.unsupported.push(u);
381
+ }
382
+ return result;
383
+ }
384
+ export { CheckedProgram };
@@ -0,0 +1,22 @@
1
+ /** The languages diagnostics are translated into, in tsgo's matcher order. */
2
+ export declare const enum Locale {
3
+ /** Untranslated English. */
4
+ Default = 0,
5
+ ZhCN = 1,
6
+ ZhTW = 2,
7
+ CsCZ = 3,
8
+ DeDE = 4,
9
+ EsES = 5,
10
+ FrFR = 6,
11
+ ItIT = 7,
12
+ JaJP = 8,
13
+ KoKR = 9,
14
+ PlPL = 10,
15
+ PtBR = 11,
16
+ RuRU = 12,
17
+ TrTR = 13
18
+ }
19
+ /** The BCP 47 tag of each locale, indexed by `Locale`. */
20
+ export declare const localeTags: readonly string[];
21
+ /** The translated texts of `locale` in message order, separated by line feeds; empty where untranslated. */
22
+ export declare function translations(locale: Locale): string;
@@ -0,0 +1,64 @@
1
+ // Generated by scripts/generate-diagnostics.mjs. Do not edit.
2
+ import { zhCN } from './locales/zh-CN.js';
3
+ import { zhTW } from './locales/zh-TW.js';
4
+ import { csCZ } from './locales/cs-CZ.js';
5
+ import { deDE } from './locales/de-DE.js';
6
+ import { esES } from './locales/es-ES.js';
7
+ import { frFR } from './locales/fr-FR.js';
8
+ import { itIT } from './locales/it-IT.js';
9
+ import { jaJP } from './locales/ja-JP.js';
10
+ import { koKR } from './locales/ko-KR.js';
11
+ import { plPL } from './locales/pl-PL.js';
12
+ import { ptBR } from './locales/pt-BR.js';
13
+ import { ruRU } from './locales/ru-RU.js';
14
+ import { trTR } from './locales/tr-TR.js';
15
+ /** The BCP 47 tag of each locale, indexed by `Locale`. */
16
+ export const localeTags = [
17
+ 'en',
18
+ 'zh-CN',
19
+ 'zh-TW',
20
+ 'cs-CZ',
21
+ 'de-DE',
22
+ 'es-ES',
23
+ 'fr-FR',
24
+ 'it-IT',
25
+ 'ja-JP',
26
+ 'ko-KR',
27
+ 'pl-PL',
28
+ 'pt-BR',
29
+ 'ru-RU',
30
+ 'tr-TR',
31
+ ];
32
+ /** The translated texts of `locale` in message order, separated by line feeds; empty where untranslated. */
33
+ export function translations(locale) {
34
+ switch (locale) {
35
+ case 1 /* Locale.ZhCN */:
36
+ return zhCN;
37
+ case 2 /* Locale.ZhTW */:
38
+ return zhTW;
39
+ case 3 /* Locale.CsCZ */:
40
+ return csCZ;
41
+ case 4 /* Locale.DeDE */:
42
+ return deDE;
43
+ case 5 /* Locale.EsES */:
44
+ return esES;
45
+ case 6 /* Locale.FrFR */:
46
+ return frFR;
47
+ case 7 /* Locale.ItIT */:
48
+ return itIT;
49
+ case 8 /* Locale.JaJP */:
50
+ return jaJP;
51
+ case 9 /* Locale.KoKR */:
52
+ return koKR;
53
+ case 10 /* Locale.PlPL */:
54
+ return plPL;
55
+ case 11 /* Locale.PtBR */:
56
+ return ptBR;
57
+ case 12 /* Locale.RuRU */:
58
+ return ruRU;
59
+ case 13 /* Locale.TrTR */:
60
+ return trTR;
61
+ default:
62
+ return '';
63
+ }
64
+ }