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,46 @@
1
+ import { BinaryExpression, Block, ExportAssignment, ExportDeclaration, HeritageClause, Identifier, type ModifierList, type Node, NodeList, PropertyDeclaration, ComputedPropertyName } from '../ast.js';
2
+ import type { EmitContext } from '../printer/emit-context.js';
3
+ import type { NodeFactory } from '../printer/factory.js';
4
+ import { SyntaxKind } from '../syntax-kind.js';
5
+ /** `super.x` or `super[x]` */
6
+ export declare function isSuperProperty(node: Node): boolean;
7
+ export declare function isCompoundAssignment(kind: SyntaxKind): boolean;
8
+ /** `+` for `+=`, and so on. */
9
+ export declare function getNonAssignmentOperatorForCompoundAssignment(kind: SyntaxKind): SyntaxKind;
10
+ /** The number of leading prologue directives. */
11
+ export declare function countPrologueDirectives(statements: Node[]): number;
12
+ /** The `super()` call of an expression statement, if it is one. */
13
+ export declare function getSuperCallFromStatement(statement: Node): Node | undefined;
14
+ /** Indices leading to the statement with the `super()` call, descending into `try` blocks; empty if none. */
15
+ export declare function findSuperStatementIndexPath(statements: Node[], start: number): number[];
16
+ /** The `extends` or `implements` clause of a class. */
17
+ export declare function getHeritageClause(clauses: NodeList | undefined, kind: SyntaxKind): HeritageClause | undefined;
18
+ /** The single `_classThis = this` assignment block recorded with `setClassThis`. */
19
+ export declare function isClassThisAssignmentBlock(context: EmitContext, node: Node): boolean;
20
+ /** Whether a class has a `_classThis = this` block. */
21
+ export declare function classHasClassThisAssignment(context: EmitContext, members: NodeList): boolean;
22
+ /** The members of a class declaration or expression. */
23
+ export declare function getClassMembers(node: Node): NodeList;
24
+ /** The heritage clauses of a class declaration or expression. */
25
+ export declare function getClassHeritageClauses(node: Node): NodeList | undefined;
26
+ /** The name of a class declaration or expression. */
27
+ export declare function getClassName(node: Node): Identifier | undefined;
28
+ /** A class declaration or expression with other members. */
29
+ export declare function updateClassMembers(factory: NodeFactory, node: Node, members: NodeList): Node;
30
+ /** Prepends `static { _classThis = this; }` to a class unless it has one. */
31
+ export declare function injectClassThisAssignmentIfMissing(context: EmitContext, node: Node, classThis: Identifier): Node;
32
+ /** The private backing field `#x_accessor_storage` of an `accessor x` field. */
33
+ export declare function createAccessorPropertyBackingField(factory: NodeFactory, node: PropertyDeclaration, modifiers: ModifierList | undefined, initializer: Node | undefined): PropertyDeclaration;
34
+ /** The cached `_a = expr` assignment a computed property name was transformed into, if any. */
35
+ export declare function findComputedPropertyNameCacheAssignment(name: ComputedPropertyName): BinaryExpression | undefined;
36
+ /**
37
+ * `(_a = expression, ++_a)` for `++x`, or `(_a = expression, _a++, _a)` for `x++`, assigning the
38
+ * operation to `resultVariable` when given.
39
+ */
40
+ export declare function expandPreOrPostfixIncrementOrDecrementExpression(context: EmitContext, node: Node, expression: Node, resultVariable: Identifier | undefined): Node;
41
+ /** `export default expression;` */
42
+ export declare function createExportDefault(factory: NodeFactory, expression: Node): ExportAssignment;
43
+ /** `export { name };` */
44
+ export declare function createExternalModuleExport(factory: NodeFactory, name: Identifier): ExportDeclaration;
45
+ /** A block of statements, keeping `block`'s range and original. */
46
+ export declare function updateBlockStatements(context: EmitContext, block: Block, statements: Node[]): Block;
@@ -0,0 +1,261 @@
1
+ // Expression and class-element utilities shared by the class transforms: outer expressions,
2
+ // `super` accesses, constructor bodies, `_classThis` blocks and auto-accessor backing fields.
3
+ import { BinaryExpression, ClassDeclaration, ClassExpression, ClassStaticBlockDeclaration, ElementAccessExpression, ExportAssignment, ExportDeclaration, ExportSpecifier, ExpressionStatement, HeritageClause, Identifier, NamedExports, NodeList, ParenthesizedExpression, PostfixUnaryExpression, PrefixUnaryExpression, PropertyAccessExpression, TryStatement, CallExpression, } from '../ast.js';
4
+ import { isAssignmentExpression, isClassLike } from '../binder-utilities.js';
5
+ import { isPrologueDirective } from '../printer/utilities.js';
6
+ import { skipOuterExpressions } from './utilities.js';
7
+ /** `super.x` or `super[x]` */
8
+ export function isSuperProperty(node) {
9
+ if (node instanceof PropertyAccessExpression)
10
+ return node.expression.kind === 107 /* SyntaxKind.SuperKeyword */;
11
+ if (node instanceof ElementAccessExpression)
12
+ return node.expression.kind === 107 /* SyntaxKind.SuperKeyword */;
13
+ return false;
14
+ }
15
+ export function isCompoundAssignment(kind) {
16
+ return kind >= 64 /* SyntaxKind.FirstCompoundAssignment */ && kind <= 78 /* SyntaxKind.LastCompoundAssignment */;
17
+ }
18
+ /** `+` for `+=`, and so on. */
19
+ export function getNonAssignmentOperatorForCompoundAssignment(kind) {
20
+ switch (kind) {
21
+ case 64 /* SyntaxKind.PlusEqualsToken */:
22
+ return 39 /* SyntaxKind.PlusToken */;
23
+ case 65 /* SyntaxKind.MinusEqualsToken */:
24
+ return 40 /* SyntaxKind.MinusToken */;
25
+ case 66 /* SyntaxKind.AsteriskEqualsToken */:
26
+ return 41 /* SyntaxKind.AsteriskToken */;
27
+ case 67 /* SyntaxKind.AsteriskAsteriskEqualsToken */:
28
+ return 42 /* SyntaxKind.AsteriskAsteriskToken */;
29
+ case 68 /* SyntaxKind.SlashEqualsToken */:
30
+ return 43 /* SyntaxKind.SlashToken */;
31
+ case 69 /* SyntaxKind.PercentEqualsToken */:
32
+ return 44 /* SyntaxKind.PercentToken */;
33
+ case 70 /* SyntaxKind.LessThanLessThanEqualsToken */:
34
+ return 47 /* SyntaxKind.LessThanLessThanToken */;
35
+ case 71 /* SyntaxKind.GreaterThanGreaterThanEqualsToken */:
36
+ return 48 /* SyntaxKind.GreaterThanGreaterThanToken */;
37
+ case 72 /* SyntaxKind.GreaterThanGreaterThanGreaterThanEqualsToken */:
38
+ return 49 /* SyntaxKind.GreaterThanGreaterThanGreaterThanToken */;
39
+ case 73 /* SyntaxKind.AmpersandEqualsToken */:
40
+ return 50 /* SyntaxKind.AmpersandToken */;
41
+ case 74 /* SyntaxKind.BarEqualsToken */:
42
+ return 51 /* SyntaxKind.BarToken */;
43
+ case 78 /* SyntaxKind.CaretEqualsToken */:
44
+ return 52 /* SyntaxKind.CaretToken */;
45
+ case 75 /* SyntaxKind.BarBarEqualsToken */:
46
+ return 56 /* SyntaxKind.BarBarToken */;
47
+ case 76 /* SyntaxKind.AmpersandAmpersandEqualsToken */:
48
+ return 55 /* SyntaxKind.AmpersandAmpersandToken */;
49
+ case 77 /* SyntaxKind.QuestionQuestionEqualsToken */:
50
+ return 60 /* SyntaxKind.QuestionQuestionToken */;
51
+ }
52
+ return kind;
53
+ }
54
+ /** The number of leading prologue directives. */
55
+ export function countPrologueDirectives(statements) {
56
+ for (let i = 0; i < statements.length; i++)
57
+ if (!isPrologueDirective(statements[i]))
58
+ return i;
59
+ return statements.length;
60
+ }
61
+ /** The `super()` call of an expression statement, if it is one. */
62
+ export function getSuperCallFromStatement(statement) {
63
+ if (!(statement instanceof ExpressionStatement))
64
+ return undefined;
65
+ let expression = statement.expression;
66
+ while (expression instanceof ParenthesizedExpression)
67
+ expression = expression.expression;
68
+ return expression instanceof CallExpression && expression.expression.kind === 107 /* SyntaxKind.SuperKeyword */
69
+ ? expression
70
+ : undefined;
71
+ }
72
+ /** Indices leading to the statement with the `super()` call, descending into `try` blocks; empty if none. */
73
+ export function findSuperStatementIndexPath(statements, start) {
74
+ const path = [];
75
+ if (!findSuperStatementIndexPathWorker(statements, start, path))
76
+ return [];
77
+ return path.reverse();
78
+ }
79
+ function findSuperStatementIndexPathWorker(statements, start, path) {
80
+ for (let i = start; i < statements.length; i++) {
81
+ const statement = statements[i];
82
+ if (getSuperCallFromStatement(statement) !== undefined) {
83
+ path.push(i);
84
+ return true;
85
+ }
86
+ if (statement instanceof TryStatement &&
87
+ findSuperStatementIndexPathWorker(statement.tryBlock.statements.nodes, 0, path)) {
88
+ path.push(i);
89
+ return true;
90
+ }
91
+ }
92
+ return false;
93
+ }
94
+ /** The `extends` or `implements` clause of a class. */
95
+ export function getHeritageClause(clauses, kind) {
96
+ if (clauses === undefined)
97
+ return undefined;
98
+ for (let i = 0; i < clauses.nodes.length; i++) {
99
+ const clause = clauses.nodes[i];
100
+ if (clause instanceof HeritageClause && clause.token === kind)
101
+ return clause;
102
+ }
103
+ return undefined;
104
+ }
105
+ /** The single `_classThis = this` assignment block recorded with `setClassThis`. */
106
+ export function isClassThisAssignmentBlock(context, node) {
107
+ if (!(node instanceof ClassStaticBlockDeclaration))
108
+ return false;
109
+ const statements = node.body.statements.nodes;
110
+ if (statements.length !== 1)
111
+ return false;
112
+ const statement = statements[0];
113
+ if (!(statement instanceof ExpressionStatement))
114
+ return false;
115
+ const expression = statement.expression;
116
+ if (!(expression instanceof BinaryExpression) || !isAssignmentExpression(expression, true))
117
+ return false;
118
+ return (expression.left instanceof Identifier &&
119
+ context.getClassThis(node) === expression.left &&
120
+ expression.right.kind === 109 /* SyntaxKind.ThisKeyword */);
121
+ }
122
+ /** Whether a class has a `_classThis = this` block. */
123
+ export function classHasClassThisAssignment(context, members) {
124
+ for (let i = 0; i < members.nodes.length; i++)
125
+ if (isClassThisAssignmentBlock(context, members.nodes[i]))
126
+ return true;
127
+ return false;
128
+ }
129
+ /** The members of a class declaration or expression. */
130
+ export function getClassMembers(node) {
131
+ if (node instanceof ClassDeclaration)
132
+ return node.members;
133
+ if (node instanceof ClassExpression)
134
+ return node.members;
135
+ throw new Error('Expected a class');
136
+ }
137
+ /** The heritage clauses of a class declaration or expression. */
138
+ export function getClassHeritageClauses(node) {
139
+ if (node instanceof ClassDeclaration)
140
+ return node.heritageClauses;
141
+ if (node instanceof ClassExpression)
142
+ return node.heritageClauses;
143
+ return undefined;
144
+ }
145
+ /** The name of a class declaration or expression. */
146
+ export function getClassName(node) {
147
+ if (node instanceof ClassDeclaration)
148
+ return node.name;
149
+ if (node instanceof ClassExpression)
150
+ return node.name;
151
+ return undefined;
152
+ }
153
+ /** A class declaration or expression with other members. */
154
+ export function updateClassMembers(factory, node, members) {
155
+ if (node instanceof ClassDeclaration) {
156
+ const declaration = node;
157
+ return factory.updateClassDeclaration(declaration, declaration.modifiers, declaration.name, declaration.typeParameters, declaration.heritageClauses, members);
158
+ }
159
+ if (node instanceof ClassExpression) {
160
+ const expression = node;
161
+ return factory.updateClassExpression(expression, expression.modifiers, expression.name, expression.typeParameters, expression.heritageClauses, members);
162
+ }
163
+ return node;
164
+ }
165
+ /** Prepends `static { _classThis = this; }` to a class unless it has one. */
166
+ export function injectClassThisAssignmentIfMissing(context, node, classThis) {
167
+ if (!isClassLike(node))
168
+ return node;
169
+ const existing = getClassMembers(node);
170
+ if (classHasClassThisAssignment(context, existing))
171
+ return node;
172
+ const factory = context.factory;
173
+ const statement = factory.createExpressionStatement(factory.createAssignment(classThis, factory.createKeywordExpression(109 /* SyntaxKind.ThisKeyword */)));
174
+ const staticBlock = factory.created(new ClassStaticBlockDeclaration(undefined, factory.createBlock([statement], false)));
175
+ context.setClassThis(staticBlock, classThis);
176
+ const name = getClassName(node);
177
+ if (name !== undefined)
178
+ context.setSourceMapRange(statement, name.pos, name.end);
179
+ const members = new NodeList(existing.pos, existing.end, [staticBlock].concat(existing.nodes));
180
+ const updated = updateClassMembers(factory, node, members);
181
+ context.setClassThis(updated, classThis);
182
+ return updated;
183
+ }
184
+ /** The private backing field `#x_accessor_storage` of an `accessor x` field. */
185
+ export function createAccessorPropertyBackingField(factory, node, modifiers, initializer) {
186
+ return factory.updatePropertyDeclaration(node, modifiers, factory.createGeneratedPrivateNameForNode(node.name, '', '_accessor_storage'), undefined, undefined, initializer);
187
+ }
188
+ /** The cached `_a = expr` assignment a computed property name was transformed into, if any. */
189
+ export function findComputedPropertyNameCacheAssignment(name) {
190
+ let node = name.expression;
191
+ for (;;) {
192
+ node = skipOuterExpressions(node, 0 /* OuterExpressionKinds.None */);
193
+ if (node instanceof BinaryExpression && node.operatorToken.kind === 27 /* SyntaxKind.CommaToken */) {
194
+ node = node.right;
195
+ continue;
196
+ }
197
+ if (node instanceof BinaryExpression && isAssignmentExpression(node, true) && node.left instanceof Identifier)
198
+ return node;
199
+ return undefined;
200
+ }
201
+ }
202
+ /**
203
+ * `(_a = expression, ++_a)` for `++x`, or `(_a = expression, _a++, _a)` for `x++`, assigning the
204
+ * operation to `resultVariable` when given.
205
+ */
206
+ export function expandPreOrPostfixIncrementOrDecrementExpression(context, node, expression, resultVariable) {
207
+ const factory = context.factory;
208
+ const prefix = node instanceof PrefixUnaryExpression;
209
+ let operator = 0 /* SyntaxKind.Unknown */;
210
+ let operand = node;
211
+ if (node instanceof PrefixUnaryExpression) {
212
+ operator = node.operator;
213
+ operand = node.operand;
214
+ }
215
+ else if (node instanceof PostfixUnaryExpression) {
216
+ operator = node.operator;
217
+ operand = node.operand;
218
+ }
219
+ const temp = factory.createTempVariable(0);
220
+ context.addVariableDeclaration(temp);
221
+ expression = factory.createAssignment(temp, expression);
222
+ expression.pos = operand.pos;
223
+ expression.end = operand.end;
224
+ let operation = prefix
225
+ ? factory.createPrefixUnaryExpression(operator, temp)
226
+ : factory.created(new PostfixUnaryExpression(temp, operator));
227
+ operation.pos = node.pos;
228
+ operation.end = node.end;
229
+ if (resultVariable !== undefined) {
230
+ operation = factory.createAssignment(resultVariable, operation);
231
+ operation.pos = node.pos;
232
+ operation.end = node.end;
233
+ }
234
+ expression = factory.createCommaExpression(expression, operation);
235
+ expression.pos = node.pos;
236
+ expression.end = node.end;
237
+ if (!prefix) {
238
+ expression = factory.createCommaExpression(expression, temp);
239
+ expression.pos = node.pos;
240
+ expression.end = node.end;
241
+ }
242
+ return expression;
243
+ }
244
+ /** `export default expression;` */
245
+ export function createExportDefault(factory, expression) {
246
+ return factory.created(new ExportAssignment(undefined, false, undefined, expression));
247
+ }
248
+ /** `export { name };` */
249
+ export function createExternalModuleExport(factory, name) {
250
+ const specifier = factory.created(new ExportSpecifier(false, undefined, name));
251
+ const exports = factory.created(new NamedExports(factory.createNodeList([specifier])));
252
+ return factory.created(new ExportDeclaration(undefined, false, exports, undefined, undefined));
253
+ }
254
+ /** A block of statements, keeping `block`'s range and original. */
255
+ export function updateBlockStatements(context, block, statements) {
256
+ const updated = context.factory.createBlock(statements, block.multiLine);
257
+ context.setOriginal(updated, block);
258
+ updated.pos = block.pos;
259
+ updated.end = block.end;
260
+ return updated;
261
+ }
@@ -0,0 +1,103 @@
1
+ import { Identifier, type Node } from '../ast.js';
2
+ import { type CompilerOptions, ModuleKind, ScriptTarget } from '../options.js';
3
+ import type { EmitContext } from '../printer/emit-context.js';
4
+ import type { EmitResolver } from './emit-resolver.js';
5
+ import type { ModuleFormatHost } from './module.js';
6
+ import { Transformer } from './transformer.js';
7
+ declare const enum VisitMode {
8
+ /** Statements at the top level of the module. */
9
+ TopLevel = 0,
10
+ /** Statements nested in top-level statements, whose `var`s are module scoped. */
11
+ TopLevelNested = 1,
12
+ /** Expressions whose value is unused. */
13
+ DiscardedValue = 2
14
+ }
15
+ export declare class CommonJSModuleTransformer extends Transformer {
16
+ readonly options: CompilerOptions;
17
+ readonly resolver: EmitResolver;
18
+ readonly formats: ModuleFormatHost;
19
+ readonly moduleKind: ModuleKind;
20
+ readonly languageVersion: ScriptTarget;
21
+ private readonly topLevel;
22
+ private readonly topLevelNested;
23
+ private readonly discarded;
24
+ private readonly exportAssignments;
25
+ private currentSourceFile;
26
+ private info;
27
+ private parentNode;
28
+ private currentNode;
29
+ constructor(context: EmitContext, options: CompilerOptions, resolver: EmitResolver, formats: ModuleFormatHost);
30
+ private moduleInfo;
31
+ visit(node: Node): Node | undefined;
32
+ visitInMode(mode: VisitMode, node: Node): Node | undefined;
33
+ private pushNode;
34
+ private popNode;
35
+ private visitTopLevel;
36
+ private visitTopLevelNestedNoStack;
37
+ /** Visits a node other than a top-level statement; `discarded` if its value is unused. */
38
+ private visitNoStack;
39
+ private visitSourceFile;
40
+ private shouldEmitUnderscoreUnderscoreESModule;
41
+ /** `Object.defineProperty(exports, "__esModule", { value: true });` */
42
+ private createUnderscoreUnderscoreESModule;
43
+ private transformCommonJSModule;
44
+ private customPrologueEnd;
45
+ /** `exports.x` or `exports["x"]` for an export name. */
46
+ private createExportsReference;
47
+ private cloneName;
48
+ /** `module.exports = x;` for `export = x`. */
49
+ private appendExportEqualsIfNeeded;
50
+ private appendExportsOfImportDeclaration;
51
+ private appendExportsOfVariableDeclarationList;
52
+ private appendExportsOfBindingElement;
53
+ private appendExportsOfClassOrFunctionDeclaration;
54
+ private appendExportsOfDeclaration;
55
+ private appendExportStatement;
56
+ private createExportStatement;
57
+ /** `exports.x = value`, or a getter on `exports` for a live binding. */
58
+ private createExportExpression;
59
+ /** `require("mod")` */
60
+ private createRequireCall;
61
+ private getHelperExpressionForImport;
62
+ private visitTopLevelImportDeclaration;
63
+ private visitTopLevelImportEqualsDeclaration;
64
+ private visitTopLevelExportDeclaration;
65
+ private visitTopLevelExportAssignment;
66
+ private visitTopLevelFunctionDeclaration;
67
+ private visitTopLevelClassDeclaration;
68
+ private visitTopLevelVariableStatement;
69
+ private transformInitializedVariable;
70
+ private visitTopLevelNestedForStatement;
71
+ private visitTopLevelNestedForInOrOfStatement;
72
+ private visitBinaryExpression;
73
+ /** Assigning an exported name also assigns each of its exports. */
74
+ private visitAssignmentExpression;
75
+ /** Not generated (except file-level reserved names) and not a local name. */
76
+ private isSubstitutableName;
77
+ private visitDestructuringAssignment;
78
+ /** Whether a destructuring target assigns an exported name that native destructuring can't update. */
79
+ private destructuringNeedsFlattening;
80
+ /** The assignment of a flattened destructuring target, assigning its exports too. */
81
+ createAllExportExpressions(name: Identifier, value: Node, pos: number, end: number): Node;
82
+ /** `exports.x = value` for a directly exported `x`. */
83
+ private createDirectExportAssignment;
84
+ /** Whether `name` refers to a declaration exported by the module itself, like `export let x`. */
85
+ private isDirectExport;
86
+ private visitPrefixUnaryExpression;
87
+ private visitPostfixUnaryExpression;
88
+ /** `(0, mod_1.f)()` for a call of an import; `import()` becomes a `require` call. */
89
+ private visitCallExpression;
90
+ private shouldTransformImportCall;
91
+ private visitImportCallExpression;
92
+ /** `Promise.resolve().then(() => __importStar(require(x)))` */
93
+ private createImportCallExpressionCommonJS;
94
+ private rewriteImportOrRequireCall;
95
+ private visitTaggedTemplateExpression;
96
+ private visitShorthandPropertyAssignment;
97
+ /** `exports.x` for an exported name, `mod_1.x` or `mod_1.default` for an import. */
98
+ private visitExpressionIdentifier;
99
+ /** The export names of what `name` refers to. */
100
+ private getExports;
101
+ private isFileLevelReservedGeneratedIdentifier;
102
+ }
103
+ export {};