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,104 @@
1
+ // The hand-written node types of tsc-ts's public API; the node interfaces are generated in
2
+ // ast.generated.ts (scripts/generate-api.mjs). They describe tsc-ts's own nodes, which the API hands
3
+ // out as they are: every node has its kind, flags, position and parent, and its children in the fields
4
+ // TypeScript 7's AST names. Lists are NodeList objects.
5
+
6
+ import type {
7
+ EndOfFile,
8
+ EntityName,
9
+ Identifier,
10
+ KeywordSyntaxKind,
11
+ ModifierSyntaxKind,
12
+ NoSubstitutionTemplateLiteral,
13
+ PropertyAccessExpression,
14
+ PunctuationSyntaxKind,
15
+ Statement,
16
+ StringLiteral,
17
+ ThisExpression,
18
+ Token,
19
+ } from './ast.generated.js';
20
+ import type { LanguageVariant, ModifierFlags, NodeFlags, ScriptKind, SyntaxKind } from './enums.generated.js';
21
+
22
+ export interface TextRange {
23
+ readonly pos: number;
24
+ readonly end: number;
25
+ }
26
+
27
+ /**
28
+ * A node. `pos` is where the node's leading trivia starts and `end` where the node ends, as UTF-16
29
+ * offsets into the file's text; `tokenStartOfNode` gives the start of its first token. `parent` is the
30
+ * enclosing node, and the source file for its statements; a source file's `parent` is undefined.
31
+ */
32
+ export interface Node extends TextRange {
33
+ readonly kind: SyntaxKind;
34
+ readonly flags: NodeFlags;
35
+ readonly parent: Node | undefined;
36
+ }
37
+
38
+ /** The children of a node in one list: `nodes`, and the range from the list's opening to its closing token. */
39
+ export interface NodeList<T extends Node = Node> extends TextRange {
40
+ readonly nodes: readonly T[];
41
+ /** Whether a comma follows the last node before the list's end. */
42
+ hasTrailingComma(): boolean;
43
+ }
44
+
45
+ /** The modifiers of a declaration, with the flags of all of them. */
46
+ export interface ModifierList<T extends Node = Node> extends NodeList<T> {
47
+ readonly modifierFlags: ModifierFlags;
48
+ }
49
+
50
+ /** A `/// <reference path>`, `types` or `lib` directive. */
51
+ export interface FileReference extends TextRange {
52
+ readonly fileName: string;
53
+ /** The `resolution-mode` attribute: ModuleKind.ESNext, ModuleKind.CommonJS, or ModuleKind.None without one. */
54
+ readonly resolutionMode: number;
55
+ readonly preserve: boolean;
56
+ }
57
+
58
+ export interface LineAndCharacter {
59
+ /** 0-based line number. */
60
+ readonly line: number;
61
+ /** 0-based character offset, in UTF-16 code units, from the start of the line. */
62
+ readonly character: number;
63
+ }
64
+
65
+ export interface SourceFile extends Node {
66
+ readonly kind: SyntaxKind.SourceFile;
67
+ readonly statements: NodeList<Statement>;
68
+ readonly endOfFileToken: EndOfFile;
69
+ readonly text: string;
70
+ readonly fileName: string;
71
+ /** The file's path: its absolute, normalized file name, lower-cased where file names are case-insensitive. */
72
+ readonly path: string;
73
+ readonly languageVariant: LanguageVariant;
74
+ readonly scriptKind: ScriptKind;
75
+ readonly isDeclarationFile: boolean;
76
+ readonly referencedFiles: readonly FileReference[];
77
+ readonly typeReferenceDirectives: readonly FileReference[];
78
+ readonly libReferenceDirectives: readonly FileReference[];
79
+ /** The module specifiers of the file's imports, exports, `require` calls and import types, in source order. */
80
+ readonly imports: readonly Node[];
81
+ readonly moduleAugmentations: readonly Node[];
82
+ readonly ambientModuleNames: readonly string[];
83
+ /** The first import or export that makes the file a module, or undefined for a script. */
84
+ readonly externalModuleIndicator: Node | undefined;
85
+ }
86
+
87
+ export type PunctuationToken<TKind extends PunctuationSyntaxKind> = Token<TKind>;
88
+ export type KeywordToken<TKind extends KeywordSyntaxKind> = Token<TKind>;
89
+ export type ModifierToken<TKind extends ModifierSyntaxKind> = KeywordToken<TKind>;
90
+
91
+ export interface PropertyAccessEntityNameExpression extends PropertyAccessExpression {
92
+ readonly expression: EntityNameExpression;
93
+ readonly name: Identifier;
94
+ }
95
+
96
+ export type EntityNameExpression = Identifier | PropertyAccessEntityNameExpression;
97
+ export type StringLiteralLike = StringLiteral | NoSubstitutionTemplateLiteral;
98
+ export type EntityNameOrEntityNameExpression = EntityName | EntityNameExpression;
99
+
100
+ export interface JsxTagNamePropertyAccess extends PropertyAccessExpression {
101
+ readonly expression: Identifier | ThisExpression | JsxTagNamePropertyAccess;
102
+ }
103
+
104
+ export * from './ast.generated.js';
@@ -0,0 +1,384 @@
1
+ // The TypeChecker of tsc-ts's public API: a checker of the program for queries, independent of the
2
+ // checker that reports the program's diagnostics, as `tsc-ts --api` answers queries. Each method answers
3
+ // as the `tsc-ts --api` request of the same name does.
4
+
5
+ import type { Node as CompilerNode } from '../compiler/ast.js';
6
+ import { type Checker, disposeChecker } from '../compiler/checker.js';
7
+ import { getBaseTypes, getDeclaredTypeOfSymbol } from '../compiler/checker-declared-types.js';
8
+ import { getNonNullableType } from '../compiler/checker-flow.js';
9
+ import {
10
+ getIndexInfosOfType,
11
+ getPropertiesOfType,
12
+ getPropertyOfType,
13
+ getSignaturesOfType,
14
+ isArrayLikeType,
15
+ } from '../compiler/checker-members.js';
16
+ import {
17
+ getConstantValue,
18
+ getShorthandAssignmentValueSymbol,
19
+ getSymbolAtLocation,
20
+ getTypeAtLocation,
21
+ getTypeOfSymbolAtLocation,
22
+ queryContextualType,
23
+ queryResolvedSignature,
24
+ querySignatureFromDeclaration,
25
+ } from '../compiler/checker-services.js';
26
+ import { getReturnTypeOfSignature, getTypePredicateOfSignature } from '../compiler/checker-signatures.js';
27
+ import { getTypeOfSymbol } from '../compiler/checker-symbol-types.js';
28
+ import { resolveAlias, resolveName } from '../compiler/checker-symbols.js';
29
+ import {
30
+ getBaseTypeOfLiteralType,
31
+ getTypeArguments,
32
+ isArrayType,
33
+ isTupleType,
34
+ } from '../compiler/checker-type-factory.js';
35
+ import { getTypeFromTypeNode } from '../compiler/checker-type-nodes.js';
36
+ import {
37
+ type Signature as CompilerSignature,
38
+ SignatureKind as CompilerSignatureKind,
39
+ type Type as CompilerType,
40
+ } from '../compiler/checker-types.js';
41
+ import { typeToStringFromTypeNode } from '../compiler/node-builder.js';
42
+ import { isTypeAssignableTo } from '../compiler/relations.js';
43
+ import {
44
+ getSymbolId,
45
+ type Symbol as CompilerSymbol,
46
+ type SymbolFlags as CompilerSymbolFlags,
47
+ } from '../compiler/symbol.js';
48
+ import { typeToString } from '../compiler/type-printer.js';
49
+ import type { Expression, Identifier, Node, TypeNode } from './ast.js';
50
+ import { SignatureKind, SymbolFlags, TypeFormatFlags, type TypePredicateKind } from './enums.generated.js';
51
+ import { internalError } from './errors.js';
52
+ import type {
53
+ IndexInfo,
54
+ InterfaceType,
55
+ Signature,
56
+ Symbol,
57
+ Type,
58
+ TypeChecker,
59
+ TypePredicate,
60
+ TypeReference,
61
+ } from './types.js';
62
+
63
+ // The API's objects are tsc-ts's own: these name the conversions between the public and compiler types.
64
+ const node = (n: Node): CompilerNode => n as unknown as CompilerNode;
65
+ const nodeOrUndefined = (n: Node | undefined): CompilerNode | undefined => n as unknown as CompilerNode | undefined;
66
+ const type = (t: Type): CompilerType => t as unknown as CompilerType;
67
+ const signature = (s: Signature): CompilerSignature => s as unknown as CompilerSignature;
68
+ const compilerSymbol = (s: Symbol): CompilerSymbol => s as unknown as CompilerSymbol;
69
+ const publicType = (t: CompilerType | undefined): Type | undefined => t as unknown as Type | undefined;
70
+ const publicTypes = (types: readonly CompilerType[]): readonly Type[] => types.slice() as unknown as readonly Type[];
71
+ const publicSignature = (s: CompilerSignature | undefined): Signature | undefined =>
72
+ s as unknown as Signature | undefined;
73
+
74
+ /** `symbol`, with its id assigned: every symbol the API hands out has one. */
75
+ export function publicSymbol(symbol: CompilerSymbol | undefined): Symbol | undefined {
76
+ if (symbol === undefined) return undefined;
77
+ getSymbolId(symbol);
78
+ return symbol as unknown as Symbol;
79
+ }
80
+
81
+ export function publicSymbols(symbols: readonly CompilerSymbol[]): readonly Symbol[] {
82
+ const result: Symbol[] = [];
83
+ for (const symbol of symbols) result.push(publicSymbol(symbol)!);
84
+ return result;
85
+ }
86
+
87
+ /** The flags of typeToString without flags, as TypeScript 7's API uses them. */
88
+ const defaultTypeFormatFlags =
89
+ TypeFormatFlags.AllowUniqueESSymbolType | TypeFormatFlags.UseAliasDefinedOutsideCurrentScope;
90
+
91
+ export class LibraryTypeChecker implements TypeChecker {
92
+ constructor(private readonly c: Checker) {}
93
+
94
+ dispose(): void {
95
+ disposeChecker(this.c);
96
+ }
97
+
98
+ getSymbolAtLocation(location: Node): Symbol | undefined {
99
+ try {
100
+ return publicSymbol(getSymbolAtLocation(this.c, node(location)));
101
+ } catch (e) {
102
+ throw internalError(e);
103
+ }
104
+ }
105
+
106
+ getTypeAtLocation(location: Node): Type | undefined {
107
+ try {
108
+ return publicType(getTypeAtLocation(this.c, node(location)));
109
+ } catch (e) {
110
+ throw internalError(e);
111
+ }
112
+ }
113
+
114
+ getTypeOfSymbol(symbol: Symbol): Type | undefined {
115
+ try {
116
+ return publicType(getTypeOfSymbol(this.c, compilerSymbol(symbol)));
117
+ } catch (e) {
118
+ throw internalError(e);
119
+ }
120
+ }
121
+
122
+ getDeclaredTypeOfSymbol(symbol: Symbol): Type {
123
+ try {
124
+ return publicType(getDeclaredTypeOfSymbol(this.c, compilerSymbol(symbol)))!;
125
+ } catch (e) {
126
+ throw internalError(e);
127
+ }
128
+ }
129
+
130
+ getTypeOfSymbolAtLocation(symbol: Symbol, location: Node): Type {
131
+ try {
132
+ return publicType(getTypeOfSymbolAtLocation(this.c, compilerSymbol(symbol), node(location)))!;
133
+ } catch (e) {
134
+ throw internalError(e);
135
+ }
136
+ }
137
+
138
+ getTypeArguments(reference: TypeReference): readonly Type[] {
139
+ try {
140
+ return publicTypes(getTypeArguments(this.c, type(reference)));
141
+ } catch (e) {
142
+ throw internalError(e);
143
+ }
144
+ }
145
+
146
+ /** The target of an alias; throws an InternalCompilerError for any other symbol, as TypeScript 7 does. */
147
+ getAliasedSymbol(symbol: Symbol): Symbol {
148
+ try {
149
+ if ((symbol.flags & SymbolFlags.Alias) === 0) throw new Error('Should only get alias here');
150
+ return publicSymbol(resolveAlias(this.c, compilerSymbol(symbol)))!;
151
+ } catch (e) {
152
+ throw internalError(e);
153
+ }
154
+ }
155
+
156
+ getPropertyOfType(t: Type, name: string): Symbol | undefined {
157
+ try {
158
+ return publicSymbol(getPropertyOfType(this.c, type(t), name));
159
+ } catch (e) {
160
+ throw internalError(e);
161
+ }
162
+ }
163
+
164
+ getPropertiesOfType(t: Type): readonly Symbol[] {
165
+ try {
166
+ return publicSymbols(getPropertiesOfType(this.c, type(t)));
167
+ } catch (e) {
168
+ throw internalError(e);
169
+ }
170
+ }
171
+
172
+ getSignaturesOfType(t: Type, kind: SignatureKind): readonly Signature[] {
173
+ try {
174
+ const signatures = getSignaturesOfType(
175
+ this.c,
176
+ type(t),
177
+ kind === SignatureKind.Call ? CompilerSignatureKind.Call : CompilerSignatureKind.Construct,
178
+ );
179
+ return signatures.slice() as unknown as readonly Signature[];
180
+ } catch (e) {
181
+ throw internalError(e);
182
+ }
183
+ }
184
+
185
+ getIndexInfosOfType(t: Type): readonly IndexInfo[] {
186
+ try {
187
+ return getIndexInfosOfType(this.c, type(t)).slice() as unknown as readonly IndexInfo[];
188
+ } catch (e) {
189
+ throw internalError(e);
190
+ }
191
+ }
192
+
193
+ getReturnTypeOfSignature(s: Signature): Type | undefined {
194
+ try {
195
+ return publicType(getReturnTypeOfSignature(this.c, signature(s)));
196
+ } catch (e) {
197
+ throw internalError(e);
198
+ }
199
+ }
200
+
201
+ getTypePredicateOfSignature(s: Signature): TypePredicate | undefined {
202
+ try {
203
+ const predicate = getTypePredicateOfSignature(this.c, signature(s));
204
+ if (predicate === undefined) return undefined;
205
+ return {
206
+ kind: predicate.kind as number as TypePredicateKind,
207
+ parameterIndex: predicate.parameterIndex,
208
+ parameterName: predicate.parameterName === '' ? undefined : predicate.parameterName,
209
+ type: publicType(predicate.type),
210
+ };
211
+ } catch (e) {
212
+ throw internalError(e);
213
+ }
214
+ }
215
+
216
+ getSignatureFromDeclaration(declaration: Node): Signature | undefined {
217
+ try {
218
+ return publicSignature(querySignatureFromDeclaration(this.c, node(declaration)));
219
+ } catch (e) {
220
+ throw internalError(e);
221
+ }
222
+ }
223
+
224
+ getResolvedSignature(call: Node): Signature | undefined {
225
+ try {
226
+ return publicSignature(queryResolvedSignature(this.c, node(call)));
227
+ } catch (e) {
228
+ throw internalError(e);
229
+ }
230
+ }
231
+
232
+ getContextualType(expression: Expression): Type | undefined {
233
+ try {
234
+ return publicType(queryContextualType(this.c, node(expression)));
235
+ } catch (e) {
236
+ throw internalError(e);
237
+ }
238
+ }
239
+
240
+ getShorthandAssignmentValueSymbol(location: Node): Symbol | undefined {
241
+ try {
242
+ return publicSymbol(getShorthandAssignmentValueSymbol(this.c, node(location)));
243
+ } catch (e) {
244
+ throw internalError(e);
245
+ }
246
+ }
247
+
248
+ getTypeFromTypeNode(typeNode: TypeNode): Type | undefined {
249
+ try {
250
+ return publicType(getTypeFromTypeNode(this.c, node(typeNode)));
251
+ } catch (e) {
252
+ throw internalError(e);
253
+ }
254
+ }
255
+
256
+ getBaseTypeOfLiteralType(t: Type): Type | undefined {
257
+ try {
258
+ return publicType(getBaseTypeOfLiteralType(this.c, type(t)));
259
+ } catch (e) {
260
+ throw internalError(e);
261
+ }
262
+ }
263
+
264
+ getNonNullableType(t: Type): Type | undefined {
265
+ try {
266
+ return publicType(getNonNullableType(this.c, type(t)));
267
+ } catch (e) {
268
+ throw internalError(e);
269
+ }
270
+ }
271
+
272
+ getBaseTypes(t: InterfaceType): readonly Type[] {
273
+ try {
274
+ return publicTypes(getBaseTypes(this.c, type(t)));
275
+ } catch (e) {
276
+ throw internalError(e);
277
+ }
278
+ }
279
+
280
+ getConstantValue(location: Node): string | number | undefined {
281
+ try {
282
+ return getConstantValue(this.c, node(location));
283
+ } catch (e) {
284
+ throw internalError(e);
285
+ }
286
+ }
287
+
288
+ isArrayType(t: Type): boolean {
289
+ try {
290
+ return isArrayType(this.c, type(t));
291
+ } catch (e) {
292
+ throw internalError(e);
293
+ }
294
+ }
295
+
296
+ isTupleType(t: Type): boolean {
297
+ try {
298
+ return isTupleType(type(t));
299
+ } catch (e) {
300
+ throw internalError(e);
301
+ }
302
+ }
303
+
304
+ isArrayLikeType(t: Type): boolean {
305
+ try {
306
+ return isArrayLikeType(this.c, type(t));
307
+ } catch (e) {
308
+ throw internalError(e);
309
+ }
310
+ }
311
+
312
+ isTypeAssignableTo(source: Type, target: Type): boolean {
313
+ try {
314
+ return isTypeAssignableTo(this.c, type(source), type(target));
315
+ } catch (e) {
316
+ throw internalError(e);
317
+ }
318
+ }
319
+
320
+ resolveName(name: string, meaning: SymbolFlags, location?: Node, excludeGlobals = false): Symbol | undefined {
321
+ try {
322
+ return publicSymbol(
323
+ resolveName(
324
+ this.c,
325
+ nodeOrUndefined(location),
326
+ name,
327
+ meaning as number as CompilerSymbolFlags,
328
+ undefined,
329
+ false,
330
+ excludeGlobals,
331
+ ),
332
+ );
333
+ } catch (e) {
334
+ throw internalError(e);
335
+ }
336
+ }
337
+
338
+ /** The value an identifier names where it is: resolveName of its text, as TypeScript 7's API defines it. */
339
+ getResolvedSymbol(identifier: Identifier): Symbol | undefined {
340
+ if (identifier.text === '') return undefined;
341
+ return this.resolveName(identifier.text, SymbolFlags.Value | SymbolFlags.ExportValue, identifier);
342
+ }
343
+
344
+ typeToString(t: Type, enclosingDeclaration?: Node, flags?: TypeFormatFlags): string {
345
+ try {
346
+ const enclosing = nodeOrUndefined(enclosingDeclaration);
347
+ const formatFlags = flags === undefined || flags === 0 ? defaultTypeFormatFlags : flags;
348
+ return (
349
+ typeToStringFromTypeNode(this.c, type(t), enclosing, formatFlags) ??
350
+ typeToString(this.c, type(t), enclosing, formatFlags)
351
+ );
352
+ } catch (e) {
353
+ throw internalError(e);
354
+ }
355
+ }
356
+
357
+ getAnyType(): Type {
358
+ return this.c.anyType as unknown as Type;
359
+ }
360
+
361
+ getUnknownType(): Type {
362
+ return this.c.unknownType as unknown as Type;
363
+ }
364
+
365
+ getNeverType(): Type {
366
+ return this.c.neverType as unknown as Type;
367
+ }
368
+
369
+ getStringType(): Type {
370
+ return this.c.stringType as unknown as Type;
371
+ }
372
+
373
+ getNumberType(): Type {
374
+ return this.c.numberType as unknown as Type;
375
+ }
376
+
377
+ getBigIntType(): Type {
378
+ return this.c.bigintType as unknown as Type;
379
+ }
380
+
381
+ getBooleanType(): Type {
382
+ return this.c.booleanType as unknown as Type;
383
+ }
384
+ }
@@ -0,0 +1,114 @@
1
+ // Generated by scripts/generate-api.mjs from typescript-go _packages/native-preview/src/api/compilerOptions.ts (TypeScript 7.0.2).
2
+ // TypeScript is Copyright Microsoft Corporation, licensed under Apache-2.0. Do not edit.
3
+
4
+ import type { JsxEmit } from './enums.generated.js';
5
+ import type { ModuleDetectionKind } from './enums.generated.js';
6
+ import type { ModuleKind } from './enums.generated.js';
7
+ import type { ModuleResolutionKind } from './enums.generated.js';
8
+ import type { NewLineKind } from './enums.generated.js';
9
+ import type { ScriptTarget } from './enums.generated.js';
10
+
11
+ // Keep in sync with compileroptions.go, obviously
12
+
13
+ export interface CompilerOptions {
14
+ allowJs?: boolean;
15
+ allowArbitraryExtensions?: boolean;
16
+ allowImportingTsExtensions?: boolean;
17
+ allowNonTsExtensions?: boolean;
18
+ allowUmdGlobalAccess?: boolean;
19
+ allowUnreachableCode?: boolean;
20
+ allowUnusedLabels?: boolean;
21
+ assumeChangesOnlyAffectDirectDependencies?: boolean;
22
+ checkJs?: boolean;
23
+ customConditions?: string[];
24
+ composite?: boolean;
25
+ emitDeclarationOnly?: boolean;
26
+ emitBOM?: boolean;
27
+ emitDecoratorMetadata?: boolean;
28
+ declaration?: boolean;
29
+ declarationDir?: string;
30
+ declarationMap?: boolean;
31
+ deduplicatePackages?: boolean;
32
+ disableSizeLimit?: boolean;
33
+ disableSourceOfProjectReferenceRedirect?: boolean;
34
+ disableSolutionSearching?: boolean;
35
+ disableReferencedProjectLoad?: boolean;
36
+ erasableSyntaxOnly?: boolean;
37
+ exactOptionalPropertyTypes?: boolean;
38
+ experimentalDecorators?: boolean;
39
+ forceConsistentCasingInFileNames?: boolean;
40
+ isolatedModules?: boolean;
41
+ isolatedDeclarations?: boolean;
42
+ ignoreConfig?: boolean;
43
+ ignoreDeprecations?: string;
44
+ importHelpers?: boolean;
45
+ inlineSourceMap?: boolean;
46
+ inlineSources?: boolean;
47
+ init?: boolean;
48
+ incremental?: boolean;
49
+ jsx?: JsxEmit;
50
+ jsxFactory?: string;
51
+ jsxFragmentFactory?: string;
52
+ jsxImportSource?: string;
53
+ lib?: string[];
54
+ libReplacement?: boolean;
55
+ locale?: string;
56
+ mapRoot?: string;
57
+ module?: ModuleKind;
58
+ moduleResolution?: ModuleResolutionKind;
59
+ moduleSuffixes?: string[];
60
+ moduleDetection?: ModuleDetectionKind;
61
+ newLine?: NewLineKind;
62
+ noEmit?: boolean;
63
+ noCheck?: boolean;
64
+ noErrorTruncation?: boolean;
65
+ noFallthroughCasesInSwitch?: boolean;
66
+ noImplicitAny?: boolean;
67
+ noImplicitThis?: boolean;
68
+ noImplicitReturns?: boolean;
69
+ noEmitHelpers?: boolean;
70
+ noLib?: boolean;
71
+ noPropertyAccessFromIndexSignature?: boolean;
72
+ noUncheckedIndexedAccess?: boolean;
73
+ noEmitOnError?: boolean;
74
+ noUnusedLocals?: boolean;
75
+ noUnusedParameters?: boolean;
76
+ noResolve?: boolean;
77
+ noImplicitOverride?: boolean;
78
+ noUncheckedSideEffectImports?: boolean;
79
+ outDir?: string;
80
+ paths?: Record<string, string[]>;
81
+ preserveConstEnums?: boolean;
82
+ preserveSymlinks?: boolean;
83
+ project?: string;
84
+ resolveJsonModule?: boolean;
85
+ resolvePackageJsonExports?: boolean;
86
+ resolvePackageJsonImports?: boolean;
87
+ removeComments?: boolean;
88
+ rewriteRelativeImportExtensions?: boolean;
89
+ reactNamespace?: string;
90
+ rootDir?: string;
91
+ rootDirs?: string[];
92
+ skipLibCheck?: boolean;
93
+ stableTypeOrdering?: boolean;
94
+ strict?: boolean;
95
+ strictBindCallApply?: boolean;
96
+ strictBuiltinIteratorReturn?: boolean;
97
+ strictFunctionTypes?: boolean;
98
+ strictNullChecks?: boolean;
99
+ strictPropertyInitialization?: boolean;
100
+ stripInternal?: boolean;
101
+ skipDefaultLibCheck?: boolean;
102
+ sourceMap?: boolean;
103
+ sourceRoot?: string;
104
+ suppressOutputPathCheck?: boolean;
105
+ target?: ScriptTarget;
106
+ traceResolution?: boolean;
107
+ tsBuildInfoFile?: string;
108
+ typeRoots?: string[];
109
+ types?: string[];
110
+ useDefineForClassFields?: boolean;
111
+ useUnknownInCatchVariables?: boolean;
112
+ verbatimModuleSyntax?: boolean;
113
+ maxNodeModuleJsDepth?: number;
114
+ }
@@ -0,0 +1,72 @@
1
+ // The diagnostics of programs, as tsc-ts's public API and `tsc-ts --api` return them.
2
+
3
+ import type { SourceFile } from '../compiler/ast.js';
4
+ import { type Diagnostic as CompilerDiagnostic, Locale } from '../compiler/diagnostics.js';
5
+ import { sortAndDeduplicateDiagnostics } from '../compiler/program.js';
6
+ import type { CheckedProgram } from '../compiler/program-checker.js';
7
+ import type { DiagnosticCategory } from './enums.generated.js';
8
+ import type { Diagnostic } from './types.js';
9
+
10
+ export type DiagnosticKind =
11
+ | 'config'
12
+ | 'program'
13
+ | 'global'
14
+ | 'syntactic'
15
+ | 'bind'
16
+ | 'semantic'
17
+ | 'suggestion'
18
+ | 'declaration';
19
+
20
+ /** A diagnostic as plain data, with its text in the default locale and its chain and related information. */
21
+ export function diagnosticOf(d: CompilerDiagnostic): Diagnostic {
22
+ return {
23
+ fileName: d.file?.fileName,
24
+ pos: d.pos,
25
+ end: d.end,
26
+ code: d.code,
27
+ category: d.category as number as DiagnosticCategory,
28
+ text: d.localize(Locale.Default),
29
+ reportsUnnecessary: d.reportsUnnecessary,
30
+ reportsDeprecated: d.reportsDeprecated,
31
+ messageChain: d.messageChain.map(diagnosticOf),
32
+ relatedInformation: d.relatedInformation.map(diagnosticOf),
33
+ };
34
+ }
35
+
36
+ /**
37
+ * The diagnostics of one kind for `file`, or for every file of the program without one. Global
38
+ * diagnostics are those of no file, after the semantic diagnostics of every file, as tsgo's API returns
39
+ * them. Declaration diagnostics are empty, as tsgo's API returns them.
40
+ */
41
+ export function programDiagnostics(
42
+ checked: CheckedProgram,
43
+ kind: DiagnosticKind,
44
+ file: SourceFile | undefined,
45
+ ): readonly CompilerDiagnostic[] {
46
+ const program = checked.program;
47
+ switch (kind) {
48
+ case 'config':
49
+ return program.getConfigFileParsingDiagnostics();
50
+ case 'program':
51
+ return program.getProgramDiagnostics();
52
+ case 'global': {
53
+ checked.getSemanticDiagnostics(undefined);
54
+ const all = [
55
+ ...program.getConfigFileParsingDiagnostics(),
56
+ ...program.getProgramDiagnostics(),
57
+ ...checked.getGlobalDiagnostics(),
58
+ ];
59
+ return sortAndDeduplicateDiagnostics(all).filter((d) => d.file === undefined);
60
+ }
61
+ case 'syntactic':
62
+ return program.getSyntacticDiagnostics(file);
63
+ case 'bind':
64
+ return checked.getBindDiagnostics(file);
65
+ case 'semantic':
66
+ return checked.getSemanticDiagnostics(file);
67
+ case 'suggestion':
68
+ return checked.getSuggestionDiagnostics(file);
69
+ case 'declaration':
70
+ return [];
71
+ }
72
+ }