tsc-ts 0.0.4 → 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 (584) hide show
  1. package/README.md +33 -1
  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 +3 -2
  357. package/dist/api/library/ast.generated.d.ts +127 -139
  358. package/dist/api/library/checker.d.ts +51 -0
  359. package/dist/api/library/checker.js +318 -0
  360. package/dist/api/library/diagnostics.d.ts +13 -0
  361. package/dist/api/library/diagnostics.js +50 -0
  362. package/dist/api/library/disk.d.ts +13 -0
  363. package/dist/api/library/disk.js +66 -0
  364. package/dist/api/library/errors.d.ts +13 -0
  365. package/dist/api/library/errors.js +24 -0
  366. package/dist/api/library/host.d.ts +24 -0
  367. package/dist/api/library/host.js +52 -0
  368. package/dist/api/library/index.d.ts +5 -1
  369. package/dist/api/library/index.js +4 -0
  370. package/dist/api/library/nodes.d.ts +51 -0
  371. package/dist/api/library/nodes.js +196 -0
  372. package/dist/api/library/options.d.ts +144 -0
  373. package/dist/api/library/options.js +308 -0
  374. package/dist/api/library/parse.d.ts +19 -0
  375. package/dist/api/library/parse.js +41 -0
  376. package/dist/api/library/program.d.ts +21 -0
  377. package/dist/api/library/program.js +234 -0
  378. package/dist/api/library/types.d.ts +14 -1
  379. package/package.json +12 -8
  380. package/src/compiler/ast-utilities.ts +548 -0
  381. package/src/compiler/ast.ts +12862 -0
  382. package/src/compiler/astnav.ts +799 -0
  383. package/src/compiler/binder-utilities.ts +1392 -0
  384. package/src/compiler/binder.ts +2703 -0
  385. package/src/compiler/build-info.ts +1197 -0
  386. package/src/compiler/character-codes.ts +323 -0
  387. package/src/compiler/checker-calls.ts +2155 -0
  388. package/src/compiler/checker-classes.ts +706 -0
  389. package/src/compiler/checker-contextual.ts +1457 -0
  390. package/src/compiler/checker-declaration-order.ts +438 -0
  391. package/src/compiler/checker-declarations.ts +1194 -0
  392. package/src/compiler/checker-declared-types.ts +919 -0
  393. package/src/compiler/checker-decorators.ts +694 -0
  394. package/src/compiler/checker-deprecation.ts +359 -0
  395. package/src/compiler/checker-destructuring.ts +805 -0
  396. package/src/compiler/checker-elaboration.ts +477 -0
  397. package/src/compiler/checker-emit-helpers.ts +224 -0
  398. package/src/compiler/checker-emit-resolver.ts +769 -0
  399. package/src/compiler/checker-evaluator.ts +243 -0
  400. package/src/compiler/checker-expressions.ts +1831 -0
  401. package/src/compiler/checker-features.ts +361 -0
  402. package/src/compiler/checker-flow.ts +394 -0
  403. package/src/compiler/checker-functions.ts +1296 -0
  404. package/src/compiler/checker-generated-code.ts +227 -0
  405. package/src/compiler/checker-globals.ts +52 -0
  406. package/src/compiler/checker-grammar.ts +3584 -0
  407. package/src/compiler/checker-heritage.ts +1233 -0
  408. package/src/compiler/checker-inference.ts +2576 -0
  409. package/src/compiler/checker-iteration.ts +1206 -0
  410. package/src/compiler/checker-javascript.ts +502 -0
  411. package/src/compiler/checker-jsdoc.ts +360 -0
  412. package/src/compiler/checker-jsx.ts +1924 -0
  413. package/src/compiler/checker-literals.ts +61 -0
  414. package/src/compiler/checker-members.ts +2436 -0
  415. package/src/compiler/checker-modules.ts +2886 -0
  416. package/src/compiler/checker-narrowing.ts +3230 -0
  417. package/src/compiler/checker-object-literals.ts +575 -0
  418. package/src/compiler/checker-operators.ts +1422 -0
  419. package/src/compiler/checker-overloads.ts +328 -0
  420. package/src/compiler/checker-property-access.ts +906 -0
  421. package/src/compiler/checker-services.ts +1149 -0
  422. package/src/compiler/checker-signatures.ts +1032 -0
  423. package/src/compiler/checker-source-file.ts +732 -0
  424. package/src/compiler/checker-statements.ts +292 -0
  425. package/src/compiler/checker-super.ts +261 -0
  426. package/src/compiler/checker-symbol-types.ts +2107 -0
  427. package/src/compiler/checker-symbols.ts +2150 -0
  428. package/src/compiler/checker-type-factory.ts +2579 -0
  429. package/src/compiler/checker-type-nodes.ts +1033 -0
  430. package/src/compiler/checker-type-operators.ts +2502 -0
  431. package/src/compiler/checker-types.ts +2340 -0
  432. package/src/compiler/checker-unused.ts +642 -0
  433. package/src/compiler/checker-utilities.ts +161 -0
  434. package/src/compiler/checker.ts +1116 -0
  435. package/src/compiler/command-line.ts +436 -0
  436. package/src/compiler/compile-program.ts +439 -0
  437. package/src/compiler/decoder.ts +1209 -0
  438. package/src/compiler/diagnostic-locales.ts +86 -0
  439. package/src/compiler/diagnostic-messages.ts +2349 -0
  440. package/src/compiler/diagnostics.ts +897 -0
  441. package/src/compiler/emitter.ts +434 -0
  442. package/src/compiler/encoder.ts +1945 -0
  443. package/src/compiler/file-include.ts +673 -0
  444. package/src/compiler/file-loader.ts +1528 -0
  445. package/src/compiler/file-system.ts +143 -0
  446. package/src/compiler/flow.ts +89 -0
  447. package/src/compiler/help.ts +473 -0
  448. package/src/compiler/incremental.ts +2784 -0
  449. package/src/compiler/init.ts +141 -0
  450. package/src/compiler/instantiation.ts +894 -0
  451. package/src/compiler/jsdoc.ts +1386 -0
  452. package/src/compiler/link-tables.ts +98 -0
  453. package/src/compiler/locale-data.ts +203 -0
  454. package/src/compiler/locale.ts +307 -0
  455. package/src/compiler/locales/cs-CZ.ts +5 -0
  456. package/src/compiler/locales/de-DE.ts +5 -0
  457. package/src/compiler/locales/es-ES.ts +5 -0
  458. package/src/compiler/locales/fr-FR.ts +5 -0
  459. package/src/compiler/locales/it-IT.ts +5 -0
  460. package/src/compiler/locales/ja-JP.ts +5 -0
  461. package/src/compiler/locales/ko-KR.ts +5 -0
  462. package/src/compiler/locales/pl-PL.ts +5 -0
  463. package/src/compiler/locales/pt-BR.ts +5 -0
  464. package/src/compiler/locales/ru-RU.ts +5 -0
  465. package/src/compiler/locales/tr-TR.ts +5 -0
  466. package/src/compiler/locales/zh-CN.ts +5 -0
  467. package/src/compiler/locales/zh-TW.ts +5 -0
  468. package/src/compiler/module-resolution-types.ts +243 -0
  469. package/src/compiler/module-resolution.ts +2072 -0
  470. package/src/compiler/module-specifiers.ts +1491 -0
  471. package/src/compiler/name-resolver.ts +646 -0
  472. package/src/compiler/node-builder-names.ts +1069 -0
  473. package/src/compiler/node-builder-pseudo.ts +892 -0
  474. package/src/compiler/node-builder-reuse.ts +764 -0
  475. package/src/compiler/node-builder.ts +3425 -0
  476. package/src/compiler/option-declarations.ts +1560 -0
  477. package/src/compiler/options.ts +1576 -0
  478. package/src/compiler/output-paths.ts +334 -0
  479. package/src/compiler/package-json.ts +1083 -0
  480. package/src/compiler/parallel-check.ts +1951 -0
  481. package/src/compiler/parallel-parse.ts +590 -0
  482. package/src/compiler/parse-thread.ts +140 -0
  483. package/src/compiler/parser.ts +7716 -0
  484. package/src/compiler/path.ts +717 -0
  485. package/src/compiler/printer/async-helpers.ts +183 -0
  486. package/src/compiler/printer/auto-generate.ts +27 -0
  487. package/src/compiler/printer/decorator-helpers.ts +218 -0
  488. package/src/compiler/printer/emit-context.ts +679 -0
  489. package/src/compiler/printer/emit-flags.ts +64 -0
  490. package/src/compiler/printer/factory-base.ts +2577 -0
  491. package/src/compiler/printer/factory.ts +764 -0
  492. package/src/compiler/printer/helpers.ts +291 -0
  493. package/src/compiler/printer/name-generator.ts +372 -0
  494. package/src/compiler/printer/printer.ts +5072 -0
  495. package/src/compiler/printer/text-writer.ts +183 -0
  496. package/src/compiler/printer/utilities.ts +884 -0
  497. package/src/compiler/program-checker.ts +592 -0
  498. package/src/compiler/program-utilities.ts +435 -0
  499. package/src/compiler/program.ts +1419 -0
  500. package/src/compiler/pseudo-bigint.ts +62 -0
  501. package/src/compiler/regexp-checker.ts +1142 -0
  502. package/src/compiler/relations.ts +5149 -0
  503. package/src/compiler/reparser.ts +1566 -0
  504. package/src/compiler/scanner.ts +2951 -0
  505. package/src/compiler/show-config.ts +239 -0
  506. package/src/compiler/side-state.ts +125 -0
  507. package/src/compiler/sourcemap.ts +366 -0
  508. package/src/compiler/spelling.ts +122 -0
  509. package/src/compiler/symbol-accessibility.ts +1071 -0
  510. package/src/compiler/symbol.ts +439 -0
  511. package/src/compiler/symlinks.ts +137 -0
  512. package/src/compiler/syntax-kind.ts +391 -0
  513. package/src/compiler/thread-entry.ts +191 -0
  514. package/src/compiler/timeline.ts +53 -0
  515. package/src/compiler/transformers/alias-references.ts +757 -0
  516. package/src/compiler/transformers/async-utilities.ts +335 -0
  517. package/src/compiler/transformers/async.ts +838 -0
  518. package/src/compiler/transformers/class-fields.ts +2967 -0
  519. package/src/compiler/transformers/class-utilities.ts +324 -0
  520. package/src/compiler/transformers/commonjs-module.ts +1621 -0
  521. package/src/compiler/transformers/const-enum-inliner.ts +50 -0
  522. package/src/compiler/transformers/declarations-diagnostics.ts +832 -0
  523. package/src/compiler/transformers/declarations-pseudo.ts +966 -0
  524. package/src/compiler/transformers/declarations-resolver.ts +249 -0
  525. package/src/compiler/transformers/declarations-syntactic.ts +1859 -0
  526. package/src/compiler/transformers/declarations-tracker.ts +269 -0
  527. package/src/compiler/transformers/declarations.ts +3120 -0
  528. package/src/compiler/transformers/decorator-metadata.ts +697 -0
  529. package/src/compiler/transformers/decorator-utilities.ts +283 -0
  530. package/src/compiler/transformers/destructuring.ts +708 -0
  531. package/src/compiler/transformers/downlevel.ts +50 -0
  532. package/src/compiler/transformers/emit-resolver.ts +258 -0
  533. package/src/compiler/transformers/es-decorators.ts +2682 -0
  534. package/src/compiler/transformers/exponentiation.ts +80 -0
  535. package/src/compiler/transformers/external-module-info.ts +412 -0
  536. package/src/compiler/transformers/for-await.ts +687 -0
  537. package/src/compiler/transformers/import-elision.ts +152 -0
  538. package/src/compiler/transformers/jsx-entities.ts +256 -0
  539. package/src/compiler/transformers/jsx.ts +824 -0
  540. package/src/compiler/transformers/legacy-decorators.ts +726 -0
  541. package/src/compiler/transformers/logical-assignment.ts +75 -0
  542. package/src/compiler/transformers/module-utilities.ts +42 -0
  543. package/src/compiler/transformers/module.ts +474 -0
  544. package/src/compiler/transformers/named-evaluation.ts +389 -0
  545. package/src/compiler/transformers/nullish-coalescing.ts +35 -0
  546. package/src/compiler/transformers/object-rest-spread.ts +577 -0
  547. package/src/compiler/transformers/optional-catch.ts +29 -0
  548. package/src/compiler/transformers/optional-chain.ts +246 -0
  549. package/src/compiler/transformers/reference-resolver.ts +1201 -0
  550. package/src/compiler/transformers/runtime-syntax.ts +942 -0
  551. package/src/compiler/transformers/subtree-facts.ts +245 -0
  552. package/src/compiler/transformers/syntax-facts.ts +353 -0
  553. package/src/compiler/transformers/tagged-template.ts +167 -0
  554. package/src/compiler/transformers/transformer.ts +56 -0
  555. package/src/compiler/transformers/type-eraser.ts +520 -0
  556. package/src/compiler/transformers/type-serialization.ts +374 -0
  557. package/src/compiler/transformers/using.ts +613 -0
  558. package/src/compiler/transformers/utilities.ts +419 -0
  559. package/src/compiler/transformers/visitor-base.ts +1601 -0
  560. package/src/compiler/transformers/visitor-hooks.ts +252 -0
  561. package/src/compiler/tsc-build.ts +1418 -0
  562. package/src/compiler/tsc-cli.ts +666 -0
  563. package/src/compiler/tsc-compile.ts +437 -0
  564. package/src/compiler/tsc-watch.ts +854 -0
  565. package/src/compiler/tsconfig.ts +1574 -0
  566. package/src/compiler/type-printer.ts +110 -0
  567. package/src/compiler/types.ts +115 -0
  568. package/src/compiler/unicode-identifiers.ts +212 -0
  569. package/src/compiler/unicode-properties.ts +537 -0
  570. package/src/compiler/vfs-match.ts +597 -0
  571. package/src/compiler/xxh3.ts +650 -0
  572. package/src/library/ast.generated.ts +141 -167
  573. package/src/library/ast.ts +4 -1
  574. package/src/library/checker.ts +384 -0
  575. package/src/library/diagnostics.ts +72 -0
  576. package/src/library/disk.ts +73 -0
  577. package/src/library/errors.ts +26 -0
  578. package/src/library/host.ts +63 -0
  579. package/src/library/index.ts +21 -0
  580. package/src/library/nodes.ts +232 -0
  581. package/src/library/options.ts +449 -0
  582. package/src/library/parse.ts +63 -0
  583. package/src/library/program.ts +293 -0
  584. package/src/library/types.ts +14 -1
@@ -0,0 +1,61 @@
1
+ import { Identifier, type EntityName, type Node, SourceFile } from '../ast.js';
2
+ import type { CompilerOptions } from '../options.js';
3
+ import type { Evaluation, ReferenceResolver } from './reference-resolver.js';
4
+ import { type TypeReferenceSerializationKind } from './type-serialization.js';
5
+ export declare abstract class EmitResolver {
6
+ /** Called once per file before the alias queries. */
7
+ abstract markLinkedReferences(file: SourceFile): boolean;
8
+ /** Whether an import (clause, namespace import, specifier or `import =`) is referenced as a value. */
9
+ abstract isReferencedAliasDeclaration(node: Node): boolean;
10
+ /** Whether an export specifier or `export default`/`export =` names a value. */
11
+ abstract isValueAliasDeclaration(node: Node): boolean;
12
+ /** Whether `import x = a.b` at the top level names a value. */
13
+ abstract isTopLevelValueImportEqualsWithEntityName(node: Node): boolean;
14
+ /** How decorator metadata serializes a reference to `typeName`, resolved from `location`. */
15
+ abstract getTypeReferenceSerializationKind(typeName: Node, location: Node | undefined): TypeReferenceSerializationKind;
16
+ /** The source file, namespace or enum exporting what `node` refers to; with `prefixLocals`, also exports with a local name. */
17
+ abstract getReferencedExportContainer(node: Identifier, prefixLocals: boolean): Node | undefined;
18
+ /** The import declaring the alias `node` refers to. */
19
+ abstract getReferencedImportDeclaration(node: Identifier): Node | undefined;
20
+ abstract getReferencedValueDeclaration(node: Identifier): Node | undefined;
21
+ abstract getReferencedValueDeclarations(node: Identifier): Node[] | undefined;
22
+ /** The constant value of an enum member. */
23
+ abstract getEnumMemberValue(member: Node): Evaluation;
24
+ /** Records the import a generated name such as the JSX transform's `_jsx` refers to. */
25
+ abstract setReferencedImportDeclaration(name: Identifier, declaration: Node): void;
26
+ /** The JSX factory from an `@jsx` pragma or `jsxFactory`, if either is an entity name. */
27
+ abstract getJsxFactoryEntity(file: SourceFile): EntityName | undefined;
28
+ /** The JSX fragment factory from an `@jsxFrag` pragma or `jsxFragmentFactory`. */
29
+ abstract getJsxFragmentFactoryEntity(file: SourceFile): EntityName | undefined;
30
+ /** The value to inline for a const enum member access such as `E.A`. */
31
+ abstract getConstantValue(node: Node): Evaluation;
32
+ }
33
+ export declare class SyntacticEmitResolver extends EmitResolver {
34
+ readonly options: CompilerOptions;
35
+ readonly referenceResolver: ReferenceResolver;
36
+ private file;
37
+ /** Aliases of the current file used as values. */
38
+ private referenced;
39
+ /** Imports referenced by generated names. */
40
+ private readonly generatedImports;
41
+ constructor(options: CompilerOptions, referenceResolver: ReferenceResolver);
42
+ markLinkedReferences(file: SourceFile): boolean;
43
+ private jsxRuntimeResolves;
44
+ isReferencedAliasDeclaration(node: Node): boolean;
45
+ /** Whether the alias declared by `node` is used as a value. */
46
+ private isReferencedAlias;
47
+ /** Whether the alias declared by `node` resolves to a value; `unresolved` if it doesn't resolve. */
48
+ private isAliasOfValue;
49
+ isValueAliasDeclaration(node: Node): boolean;
50
+ isTopLevelValueImportEqualsWithEntityName(node: Node): boolean;
51
+ getTypeReferenceSerializationKind(typeName: Node, location: Node | undefined): TypeReferenceSerializationKind;
52
+ getReferencedExportContainer(node: Identifier, prefixLocals: boolean): Node | undefined;
53
+ getReferencedImportDeclaration(node: Identifier): Node | undefined;
54
+ getReferencedValueDeclaration(node: Identifier): Node | undefined;
55
+ getReferencedValueDeclarations(node: Identifier): Node[] | undefined;
56
+ getEnumMemberValue(member: Node): Evaluation;
57
+ getConstantValue(node: Node): Evaluation;
58
+ setReferencedImportDeclaration(name: Identifier, declaration: Node): void;
59
+ getJsxFactoryEntity(file: SourceFile): EntityName | undefined;
60
+ getJsxFragmentFactoryEntity(file: SourceFile): EntityName | undefined;
61
+ }
@@ -0,0 +1,197 @@
1
+ // What emit needs to know about names: which imports are used as values, which exports name
2
+ // values, what identifiers refer to and constant values of enum members. The checker provides
3
+ // the full answers; `SyntacticEmitResolver` answers from syntax and the binder's symbols.
4
+ import { ExportAssignment, ExportSpecifier, Identifier, ImportClause, ImportEqualsDeclaration, ImportSpecifier, NamespaceImport, SourceFile, getSymbol, } from '../ast.js';
5
+ import { parseIsolatedEntityName } from '../parser.js';
6
+ import { getJSXImplicitImportBase, getJSXRuntimeImport } from '../program-utilities.js';
7
+ import { isParseTreeNode } from '../printer/utilities.js';
8
+ import { nodeIsMissing } from '../ast-utilities.js';
9
+ import { AliasReferences } from './alias-references.js';
10
+ import { getTypeReferenceSerializationKind } from './type-serialization.js';
11
+ import { hasSyntacticModifier } from './utilities.js';
12
+ export class EmitResolver {
13
+ }
14
+ export class SyntacticEmitResolver extends EmitResolver {
15
+ options;
16
+ referenceResolver;
17
+ file;
18
+ /** Aliases of the current file used as values. */
19
+ referenced;
20
+ /** Imports referenced by generated names. */
21
+ generatedImports;
22
+ constructor(options, referenceResolver) {
23
+ super();
24
+ this.options = options;
25
+ this.referenceResolver = referenceResolver;
26
+ this.file = undefined;
27
+ this.referenced = new Set();
28
+ this.generatedImports = new Map();
29
+ }
30
+ markLinkedReferences(file) {
31
+ if (this.file === file)
32
+ return false;
33
+ this.file = file;
34
+ const marker = new AliasReferences(this.options, this.referenceResolver, jsxNamespace(file, this.options), jsxFragmentNamespace(file, this.options), this.jsxRuntimeResolves(file));
35
+ marker.markFile(file);
36
+ this.referenced = marker.referenced;
37
+ return true;
38
+ }
39
+ jsxRuntimeResolves(file) {
40
+ if (file.scriptKind !== 2 /* ScriptKind.JSX */ && file.scriptKind !== 4 /* ScriptKind.TSX */)
41
+ return false;
42
+ const runtime = getJSXRuntimeImport(getJSXImplicitImportBase(this.options, file), this.options);
43
+ return runtime !== '' && this.referenceResolver.resolveImplicitImport(file, runtime) !== undefined;
44
+ }
45
+ isReferencedAliasDeclaration(node) {
46
+ if (node instanceof ImportClause)
47
+ return node.name !== undefined && this.isReferencedAlias(node);
48
+ if (node instanceof NamespaceImport)
49
+ return this.isReferencedAlias(node);
50
+ if (node instanceof ImportSpecifier)
51
+ return !node.isTypeOnly && this.isReferencedAlias(node);
52
+ if (node instanceof ImportEqualsDeclaration) {
53
+ if (node.isTypeOnly)
54
+ return false;
55
+ if (this.isReferencedAlias(node))
56
+ return true;
57
+ // `export import x = a.b` is referenced by its export when it names a value.
58
+ return hasSyntacticModifier(node, 32 /* ModifierFlags.Export */) && this.isAliasOfValue(node, false);
59
+ }
60
+ return true;
61
+ }
62
+ /** Whether the alias declared by `node` is used as a value. */
63
+ isReferencedAlias(node) {
64
+ const symbol = this.referenceResolver.getSymbolOfDeclaration(node);
65
+ return symbol !== undefined && this.referenced.has(symbol);
66
+ }
67
+ /** Whether the alias declared by `node` resolves to a value; `unresolved` if it doesn't resolve. */
68
+ isAliasOfValue(node, unresolved) {
69
+ const symbol = this.referenceResolver.getSymbolOfDeclaration(node);
70
+ if (symbol === undefined)
71
+ return false;
72
+ if (this.referenceResolver.resolveAlias(symbol) === undefined)
73
+ return unresolved;
74
+ return this.referenceResolver.isAliasResolvedToValue(symbol, false);
75
+ }
76
+ isValueAliasDeclaration(node) {
77
+ if (node instanceof ExportSpecifier) {
78
+ if (node.isTypeOnly)
79
+ return false;
80
+ const symbol = getSymbol(node);
81
+ return symbol === undefined || this.referenceResolver.isAliasResolvedToValue(symbol, true);
82
+ }
83
+ if (node instanceof ExportAssignment) {
84
+ if (!(node.expression instanceof Identifier))
85
+ return true;
86
+ const symbol = getSymbol(node);
87
+ return symbol === undefined || this.referenceResolver.isAliasResolvedToValue(symbol, true);
88
+ }
89
+ return true;
90
+ }
91
+ isTopLevelValueImportEqualsWithEntityName(node) {
92
+ if (!(node instanceof ImportEqualsDeclaration) ||
93
+ node.isTypeOnly ||
94
+ node.moduleReference.kind === 284 /* SyntaxKind.ExternalModuleReference */ ||
95
+ nodeIsMissing(node.moduleReference) ||
96
+ !(node.parent instanceof SourceFile))
97
+ return false;
98
+ // An unresolved target might be a value.
99
+ return this.isAliasOfValue(node, true);
100
+ }
101
+ getTypeReferenceSerializationKind(typeName, location) {
102
+ return getTypeReferenceSerializationKind(this.referenceResolver, typeName, location);
103
+ }
104
+ getReferencedExportContainer(node, prefixLocals) {
105
+ return this.referenceResolver.getReferencedExportContainer(node, prefixLocals);
106
+ }
107
+ getReferencedImportDeclaration(node) {
108
+ if (!isParseTreeNode(node))
109
+ return this.generatedImports.get(node);
110
+ return this.referenceResolver.getReferencedImportDeclaration(node);
111
+ }
112
+ getReferencedValueDeclaration(node) {
113
+ return this.referenceResolver.getReferencedValueDeclaration(node);
114
+ }
115
+ getReferencedValueDeclarations(node) {
116
+ return this.referenceResolver.getReferencedValueDeclarations(node);
117
+ }
118
+ getEnumMemberValue(member) {
119
+ return this.referenceResolver.getEnumMemberValue(member);
120
+ }
121
+ getConstantValue(node) {
122
+ return this.referenceResolver.getConstantValue(node);
123
+ }
124
+ setReferencedImportDeclaration(name, declaration) {
125
+ this.generatedImports.set(name, declaration);
126
+ }
127
+ getJsxFactoryEntity(file) {
128
+ const pragma = lastPragma(file, 'jsx');
129
+ if (pragma !== undefined) {
130
+ const entity = parseIsolatedEntityName(pragmaArgument(pragma, 'factory'));
131
+ if (entity !== undefined)
132
+ return entity;
133
+ }
134
+ const option = this.options.jsxFactory;
135
+ return option !== undefined && option !== '' ? parseIsolatedEntityName(option) : undefined;
136
+ }
137
+ getJsxFragmentFactoryEntity(file) {
138
+ const pragma = lastPragma(file, 'jsxfrag');
139
+ if (pragma !== undefined)
140
+ return parseIsolatedEntityName(pragmaArgument(pragma, 'factory'));
141
+ const option = this.options.jsxFragmentFactory;
142
+ return option !== undefined && option !== '' ? parseIsolatedEntityName(option) : undefined;
143
+ }
144
+ }
145
+ /** The root name of the JSX factory: from an `@jsx` pragma, `jsxFactory`, `reactNamespace` or `React`. */
146
+ function jsxNamespace(file, options) {
147
+ const factory = pragmaFactory(file, 'jsx');
148
+ return factory !== undefined ? rootName(factory) : defaultJsxNamespace(options);
149
+ }
150
+ /** The root name of the JSX fragment factory: from an `@jsxFrag` pragma or `jsxFragmentFactory`. */
151
+ function jsxFragmentNamespace(file, options) {
152
+ const factory = pragmaFactory(file, 'jsxfrag');
153
+ if (factory !== undefined)
154
+ return isEntityName(factory) ? rootName(factory) : defaultJsxNamespace(options);
155
+ const option = options.jsxFragmentFactory;
156
+ if (option !== undefined && option !== '' && isEntityName(option))
157
+ return rootName(option);
158
+ return defaultJsxNamespace(options);
159
+ }
160
+ function defaultJsxNamespace(options) {
161
+ if (options.jsxFactory !== undefined && options.jsxFactory !== '')
162
+ return rootName(options.jsxFactory);
163
+ if (options.reactNamespace !== undefined && options.reactNamespace !== '')
164
+ return options.reactNamespace;
165
+ return 'React';
166
+ }
167
+ function pragmaFactory(file, name) {
168
+ for (const pragma of file.pragmas) {
169
+ if (pragma.name !== name)
170
+ continue;
171
+ const factory = pragma.args.get('factory');
172
+ if (factory !== undefined)
173
+ return factory.value;
174
+ }
175
+ return undefined;
176
+ }
177
+ /** The last pragma named `name`, which wins over earlier ones. */
178
+ function lastPragma(file, name) {
179
+ let result = undefined;
180
+ for (const pragma of file.pragmas)
181
+ if (pragma.name === name)
182
+ result = pragma;
183
+ return result;
184
+ }
185
+ function pragmaArgument(pragma, name) {
186
+ if (pragma === undefined)
187
+ return '';
188
+ const argument = pragma.args.get(name);
189
+ return argument !== undefined ? argument.value : '';
190
+ }
191
+ function isEntityName(text) {
192
+ return /^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*)*$/.test(text);
193
+ }
194
+ function rootName(entityName) {
195
+ const dot = entityName.indexOf('.');
196
+ return dot < 0 ? entityName : entityName.substring(0, dot);
197
+ }
@@ -0,0 +1,118 @@
1
+ import { type Node } from '../ast.js';
2
+ import { type CompilerOptions } from '../options.js';
3
+ import type { EmitContext } from '../printer/emit-context.js';
4
+ import { type SyntaxFacts } from './syntax-facts.js';
5
+ import { Transformer } from './transformer.js';
6
+ import { VisitorBase } from './visitor-base.js';
7
+ /** Replaces lexical `this` with `_outerThis`, for expressions moved into a class `static {}` block. */
8
+ declare class OuterThisVisitor extends VisitorBase {
9
+ private readonly owner;
10
+ constructor(owner: ESDecorators);
11
+ visit(node: Node): Node | undefined;
12
+ }
13
+ /** Whether ES decorators need lowering for these options. */
14
+ export declare function shouldTransformESDecorators(options: CompilerOptions): boolean;
15
+ export declare class ESDecorators extends Transformer {
16
+ private readonly facts;
17
+ private readonly outerThisVisitor;
18
+ private top;
19
+ private classInfo;
20
+ private classThis;
21
+ private classSuper;
22
+ private pendingExpressions;
23
+ private outerThis;
24
+ private shouldTransformPrivateStaticElementsInFile;
25
+ constructor(context: EmitContext, facts: SyntaxFacts);
26
+ private updateState;
27
+ private enterClass;
28
+ private exitClass;
29
+ private enterClassElement;
30
+ private exitClassElement;
31
+ private enterName;
32
+ private exitName;
33
+ private enterOther;
34
+ private exitOther;
35
+ private shouldVisitNode;
36
+ visit(node: Node): Node | undefined;
37
+ private visitSourceFile;
38
+ /** `this` as `_outerThis`, for the outer-this visitor. */
39
+ visitOuterThis(node: Node, visitor: OuterThisVisitor): Node | undefined;
40
+ private visitClassElement;
41
+ /** Visits a node whose value is discarded, such as an expression statement's expression. */
42
+ private visitDiscarded;
43
+ private visitDiscardedNode;
44
+ private visitListItem;
45
+ /** Visits each node of a list with the visitor `mode` names; the list itself if nothing changed. */
46
+ private visitList;
47
+ private filterModifiers;
48
+ private createHelperVariable;
49
+ private createFileLevelName;
50
+ private createLet;
51
+ private createEmptyArray;
52
+ private setRangePastDecoratorsOrName;
53
+ private createClassInfo;
54
+ private transformClassLike;
55
+ private addMemberInfoDeclarations;
56
+ private visitClassDeclaration;
57
+ private visitClassExpression;
58
+ /**
59
+ * The `__runInitializers()` call for instance extra initializers, when no instance field
60
+ * initializer carries it.
61
+ */
62
+ private prepareConstructor;
63
+ /** Visits constructor statements, adding the initializers after the `super()` call `superPath` leads to. */
64
+ private transformConstructorBody;
65
+ private visitConstructorDeclaration;
66
+ private finishClassElement;
67
+ private partialTransformClassElement;
68
+ private appendDecorationStatement;
69
+ private visitMethodDeclaration;
70
+ private visitGetAccessorDeclaration;
71
+ private visitSetAccessorDeclaration;
72
+ private visitClassStaticBlockDeclaration;
73
+ private visitPropertyDeclaration;
74
+ private visitCallExpression;
75
+ private visitTaggedTemplateExpression;
76
+ private visitPropertyAccessExpression;
77
+ private visitElementAccessExpression;
78
+ private visitParameterDeclaration;
79
+ private visitNamedEvaluationSite;
80
+ private visitForStatement;
81
+ private visitBinaryExpression;
82
+ private visitPreOrPostfixUnaryExpression;
83
+ /** Sets the result's referenced name, for the decorator context, and its visited name. */
84
+ private visitReferencedPropertyName;
85
+ private visitPropertyName;
86
+ private visitComputedPropertyName;
87
+ private visitDestructuringAssignmentTarget;
88
+ private visitAssignmentElement;
89
+ private visitArrayAssignmentElement;
90
+ private visitObjectAssignmentElement;
91
+ private visitAssignmentPattern;
92
+ private visitParenthesizedExpression;
93
+ private visitPartiallyEmittedExpression;
94
+ /** `pending` evaluated before `expression`, inside its parentheses. */
95
+ private prependExpressions;
96
+ private injectPendingExpressions;
97
+ private injectPendingInitializers;
98
+ private transformAllDecoratorsOfDeclaration;
99
+ private transformDecorator;
100
+ private createCallBinding;
101
+ /** A `value`, `get` or `set` method of a pseudo-descriptor: `kind: __setFunctionName(function () {}, "#x")`. */
102
+ private createDescriptorMethod;
103
+ private createDescriptorObject;
104
+ /** `get name() { return _descriptor.value; }` */
105
+ private createMethodDescriptorForwarder;
106
+ /** `get name() { return _descriptor.get.call(this); }` */
107
+ private createGetAccessorDescriptorForwarder;
108
+ /** `set name(value) { return _descriptor.set.call(this, value); }` */
109
+ private createSetAccessorDescriptorForwarder;
110
+ private createClassElementContextObject;
111
+ private createAccess;
112
+ /** `const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(superMetadata) : void 0;` */
113
+ private createMetadata;
114
+ private createSymbolMetadataAccess;
115
+ /** `if (metadata) Object.defineProperty(target, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: metadata });` */
116
+ private createSymbolMetadata;
117
+ }
118
+ export {};