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,22 @@
1
+ import { type CallExpression, type Node, type NodeList } from '../ast.js';
2
+ import type { NodeFactory } from './factory.js';
3
+ import { EmitHelper } from './helpers.js';
4
+ export declare const awaitHelper: EmitHelper;
5
+ export declare const asyncGeneratorHelper: EmitHelper;
6
+ export declare const asyncDelegatorHelper: EmitHelper;
7
+ export declare const asyncValuesHelper: EmitHelper;
8
+ export declare const awaiterHelper: EmitHelper;
9
+ /** Scoped: `const _superIndex = name => super[name];` */
10
+ export declare const asyncSuperHelper: EmitHelper;
11
+ /** Scoped: a `_superIndex` whose results can also be assigned to. */
12
+ export declare const advancedAsyncSuperHelper: EmitHelper;
13
+ /** `__await(expression)` */
14
+ export declare function createAwaitHelper(factory: NodeFactory, expression: Node): CallExpression;
15
+ /** `__asyncGenerator(this, arguments, generatorFunc)` */
16
+ export declare function createAsyncGeneratorHelper(factory: NodeFactory, generatorFunc: Node, hasLexicalThis: boolean): CallExpression;
17
+ /** `__asyncDelegator(expression)` */
18
+ export declare function createAsyncDelegatorHelper(factory: NodeFactory, expression: Node): CallExpression;
19
+ /** `__asyncValues(expression)` */
20
+ export declare function createAsyncValuesHelper(factory: NodeFactory, expression: Node): CallExpression;
21
+ /** `__awaiter(this, arguments, void 0, function* (parameters) { body })` */
22
+ export declare function createAwaiterHelper(factory: NodeFactory, hasLexicalThis: boolean, argumentsExpression: Node | undefined, parameters: NodeList | undefined, body: Node): CallExpression;
@@ -0,0 +1,91 @@
1
+ // Runtime helpers for lowering async functions, async generators and `for await`.
2
+ import { FunctionExpression } from '../ast.js';
3
+ import { EmitHelper, noPriority } from './helpers.js';
4
+ export const awaitHelper = new EmitHelper('typescript:await', false, `var __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }`, noPriority, [], '__await', '');
5
+ export const asyncGeneratorHelper = new EmitHelper('typescript:asyncGenerator', false, `var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {
6
+ if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
7
+ var g = generator.apply(thisArg, _arguments || []), i, q = [];
8
+ return i = Object.create((typeof AsyncIterator === "function" ? AsyncIterator : Object).prototype), verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;
9
+ function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }
10
+ function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }
11
+ function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
12
+ function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
13
+ function fulfill(value) { resume("next", value); }
14
+ function reject(value) { resume("throw", value); }
15
+ function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
16
+ };`, noPriority, [awaitHelper], '__asyncGenerator', '');
17
+ export const asyncDelegatorHelper = new EmitHelper('typescript:asyncDelegator', false, `var __asyncDelegator = (this && this.__asyncDelegator) || function (o) {
18
+ var i, p;
19
+ return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
20
+ function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }
21
+ };`, noPriority, [awaitHelper], '__asyncDelegator', '');
22
+ export const asyncValuesHelper = new EmitHelper('typescript:asyncValues', false, `var __asyncValues = (this && this.__asyncValues) || function (o) {
23
+ if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
24
+ var m = o[Symbol.asyncIterator], i;
25
+ return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
26
+ function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
27
+ function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
28
+ };`, noPriority, [], '__asyncValues', '');
29
+ export const awaiterHelper = new EmitHelper('typescript:awaiter', false, `var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
30
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
31
+ return new (P || (P = Promise))(function (resolve, reject) {
32
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
33
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
34
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
35
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
36
+ });
37
+ };`, 5, [], '__awaiter', '');
38
+ /** Scoped: `const _superIndex = name => super[name];` */
39
+ export const asyncSuperHelper = new EmitHelper('typescript:async-super', true, '\nconst {name} = name => super[name];', noPriority, [], '', '_superIndex');
40
+ /** Scoped: a `_superIndex` whose results can also be assigned to. */
41
+ export const advancedAsyncSuperHelper = new EmitHelper('typescript:advanced-async-super', true, '\nconst {name} = (function (geti, seti) {\n' +
42
+ ' const cache = Object.create(null);\n' +
43
+ ' return name => cache[name] || (cache[name] = { get value() { return geti(name); }, set value(v) { seti(name, v); } });\n' +
44
+ '})(name => super[name], (name, value) => super[name] = value);', noPriority, [], '', '_superIndex');
45
+ /** `__await(expression)` */
46
+ export function createAwaitHelper(factory, expression) {
47
+ factory.context.requestEmitHelper(awaitHelper);
48
+ return factory.createCallExpression(factory.createUnscopedHelperName('__await'), [expression]);
49
+ }
50
+ /** `__asyncGenerator(this, arguments, generatorFunc)` */
51
+ export function createAsyncGeneratorHelper(factory, generatorFunc, hasLexicalThis) {
52
+ factory.context.requestEmitHelper(awaitHelper);
53
+ factory.context.requestEmitHelper(asyncGeneratorHelper);
54
+ factory.context.addEmitFlags(generatorFunc, 2097152 /* EmitFlags.AsyncFunctionBody */ | 32768 /* EmitFlags.ReuseTempVariableScope */);
55
+ const thisArg = createThisArgument(factory, hasLexicalThis);
56
+ return factory.createCallExpression(factory.createUnscopedHelperName('__asyncGenerator'), [
57
+ thisArg,
58
+ factory.createIdentifier('arguments'),
59
+ generatorFunc,
60
+ ]);
61
+ }
62
+ /** `__asyncDelegator(expression)` */
63
+ export function createAsyncDelegatorHelper(factory, expression) {
64
+ factory.context.requestEmitHelper(awaitHelper);
65
+ factory.context.requestEmitHelper(asyncDelegatorHelper);
66
+ return factory.createCallExpression(factory.createUnscopedHelperName('__asyncDelegator'), [expression]);
67
+ }
68
+ /** `__asyncValues(expression)` */
69
+ export function createAsyncValuesHelper(factory, expression) {
70
+ factory.context.requestEmitHelper(asyncValuesHelper);
71
+ return factory.createCallExpression(factory.createUnscopedHelperName('__asyncValues'), [expression]);
72
+ }
73
+ /** `__awaiter(this, arguments, void 0, function* (parameters) { body })` */
74
+ export function createAwaiterHelper(factory, hasLexicalThis, argumentsExpression, parameters, body) {
75
+ factory.context.requestEmitHelper(awaiterHelper);
76
+ const generatorFunc = factory.created(new FunctionExpression(undefined, factory.createToken(41 /* SyntaxKind.AsteriskToken */), undefined, undefined, parameters !== undefined ? parameters : factory.createNodeList([]), undefined, undefined, body));
77
+ factory.context.addEmitFlags(generatorFunc, 2097152 /* EmitFlags.AsyncFunctionBody */ | 32768 /* EmitFlags.ReuseTempVariableScope */);
78
+ const thisArg = createThisArgument(factory, hasLexicalThis);
79
+ return factory.createCallExpression(factory.createUnscopedHelperName('__awaiter'), [
80
+ thisArg,
81
+ argumentsExpression !== undefined ? argumentsExpression : factory.createVoidZero(),
82
+ factory.createVoidZero(),
83
+ generatorFunc,
84
+ ]);
85
+ }
86
+ /** `this` when the function has a lexical `this`, else `void 0`. */
87
+ function createThisArgument(factory, hasLexicalThis) {
88
+ if (hasLexicalThis)
89
+ return factory.createKeywordExpression(109 /* SyntaxKind.ThisKeyword */);
90
+ return factory.createVoidZero();
91
+ }
@@ -0,0 +1,13 @@
1
+ import type { Node } from '../ast.js';
2
+ import type { GeneratedIdentifierFlags } from './emit-flags.js';
3
+ export declare class AutoGenerateInfo {
4
+ readonly flags: GeneratedIdentifierFlags;
5
+ /** Generated names with the same id print the same text; clones keep it. */
6
+ readonly id: number;
7
+ readonly prefix: string;
8
+ readonly suffix: string;
9
+ /** For `GeneratedIdentifierFlags.Node`, the node the name is generated from. */
10
+ readonly node: Node | undefined;
11
+ constructor(flags: GeneratedIdentifierFlags, id: number, prefix: string, suffix: string, node: Node | undefined);
12
+ }
13
+ export declare function newAutoGenerateId(): number;
@@ -0,0 +1,20 @@
1
+ export class AutoGenerateInfo {
2
+ flags;
3
+ /** Generated names with the same id print the same text; clones keep it. */
4
+ id;
5
+ prefix;
6
+ suffix;
7
+ /** For `GeneratedIdentifierFlags.Node`, the node the name is generated from. */
8
+ node;
9
+ constructor(flags, id, prefix, suffix, node) {
10
+ this.flags = flags;
11
+ this.id = id;
12
+ this.prefix = prefix;
13
+ this.suffix = suffix;
14
+ this.node = node;
15
+ }
16
+ }
17
+ let nextAutoGenerateId = 1;
18
+ export function newAutoGenerateId() {
19
+ return nextAutoGenerateId++;
20
+ }
@@ -0,0 +1,24 @@
1
+ import { type CallExpression, type Node } from '../ast.js';
2
+ import type { NodeFactory } from './factory.js';
3
+ import { EmitHelper } from './helpers.js';
4
+ export declare const decorateHelper: EmitHelper;
5
+ export declare const metadataHelper: EmitHelper;
6
+ export declare const paramHelper: EmitHelper;
7
+ export declare const esDecorateHelper: EmitHelper;
8
+ export declare const runInitializersHelper: EmitHelper;
9
+ export declare const propKeyHelper: EmitHelper;
10
+ export declare const setFunctionNameHelper: EmitHelper;
11
+ /** `__decorate([decorators], target, memberName, descriptor)`; the member name and descriptor are optional. */
12
+ export declare function createDecorateHelper(factory: NodeFactory, decorators: Node[], target: Node, memberName: Node | undefined, descriptor: Node | undefined): CallExpression;
13
+ /** `__metadata("key", value)` */
14
+ export declare function createMetadataHelper(factory: NodeFactory, key: string, value: Node): CallExpression;
15
+ /** `__param(index, decorator)`, with the range of the decorator. */
16
+ export declare function createParamHelper(factory: NodeFactory, expression: Node, parameterOffset: number, pos: number, end: number): CallExpression;
17
+ /** `__esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers)` */
18
+ export declare function createESDecorateHelper(factory: NodeFactory, ctor: Node, descriptorIn: Node, decorators: Node, contextIn: Node, initializers: Node, extraInitializers: Node): CallExpression;
19
+ /** `__runInitializers(thisArg, initializers, value)`; the value is optional. */
20
+ export declare function createRunInitializersHelper(factory: NodeFactory, thisArg: Node, initializers: Node, value: Node | undefined): CallExpression;
21
+ /** `__propKey(expression)` */
22
+ export declare function createPropKeyHelper(factory: NodeFactory, expression: Node): CallExpression;
23
+ /** `__setFunctionName(fn, name, "prefix")`; an empty prefix is omitted. */
24
+ export declare function createSetFunctionNameHelper(factory: NodeFactory, fn: Node, name: Node, prefix: string): CallExpression;
@@ -0,0 +1,118 @@
1
+ // Runtime helpers for legacy (`experimentalDecorators`) and standard decorators, and the
2
+ // function-naming helpers class transforms share.
3
+ import { ArrayLiteralExpression } from '../ast.js';
4
+ import { EmitHelper, noPriority } from './helpers.js';
5
+ export const decorateHelper = new EmitHelper('typescript:decorate', false, `var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
6
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
7
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
8
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
9
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
10
+ };`, 2, [], '__decorate', '');
11
+ export const metadataHelper = new EmitHelper('typescript:metadata', false, `var __metadata = (this && this.__metadata) || function (k, v) {
12
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
13
+ };`, 3, [], '__metadata', '');
14
+ export const paramHelper = new EmitHelper('typescript:param', false, `var __param = (this && this.__param) || function (paramIndex, decorator) {
15
+ return function (target, key) { decorator(target, key, paramIndex); }
16
+ };`, 4, [], '__param', '');
17
+ export const esDecorateHelper = new EmitHelper('typescript:esDecorate', false, `var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
18
+ function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
19
+ var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
20
+ var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
21
+ var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
22
+ var _, done = false;
23
+ for (var i = decorators.length - 1; i >= 0; i--) {
24
+ var context = {};
25
+ for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
26
+ for (var p in contextIn.access) context.access[p] = contextIn.access[p];
27
+ context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
28
+ var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
29
+ if (kind === "accessor") {
30
+ if (result === void 0) continue;
31
+ if (result === null || typeof result !== "object") throw new TypeError("Object expected");
32
+ if (_ = accept(result.get)) descriptor.get = _;
33
+ if (_ = accept(result.set)) descriptor.set = _;
34
+ if (_ = accept(result.init)) initializers.unshift(_);
35
+ }
36
+ else if (_ = accept(result)) {
37
+ if (kind === "field") initializers.unshift(_);
38
+ else descriptor[key] = _;
39
+ }
40
+ }
41
+ if (target) Object.defineProperty(target, contextIn.name, descriptor);
42
+ done = true;
43
+ };`, 2, [], '__esDecorate', '');
44
+ export const runInitializersHelper = new EmitHelper('typescript:runInitializers', false, `var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
45
+ var useValue = arguments.length > 2;
46
+ for (var i = 0; i < initializers.length; i++) {
47
+ value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
48
+ }
49
+ return useValue ? value : void 0;
50
+ };`, 2, [], '__runInitializers', '');
51
+ export const propKeyHelper = new EmitHelper('typescript:propKey', false, `var __propKey = (this && this.__propKey) || function (x) {
52
+ return typeof x === "symbol" ? x : "".concat(x);
53
+ };`, noPriority, [], '__propKey', '');
54
+ export const setFunctionNameHelper = new EmitHelper('typescript:setFunctionName', false, `var __setFunctionName = (this && this.__setFunctionName) || function (f, name, prefix) {
55
+ if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : "";
56
+ return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name });
57
+ };`, noPriority, [], '__setFunctionName', '');
58
+ /** `__decorate([decorators], target, memberName, descriptor)`; the member name and descriptor are optional. */
59
+ export function createDecorateHelper(factory, decorators, target, memberName, descriptor) {
60
+ factory.context.requestEmitHelper(decorateHelper);
61
+ const args = [factory.created(new ArrayLiteralExpression(factory.createNodeList(decorators), true)), target];
62
+ if (memberName !== undefined) {
63
+ args.push(memberName);
64
+ if (descriptor !== undefined)
65
+ args.push(descriptor);
66
+ }
67
+ return factory.createCallExpression(factory.createUnscopedHelperName('__decorate'), args);
68
+ }
69
+ /** `__metadata("key", value)` */
70
+ export function createMetadataHelper(factory, key, value) {
71
+ factory.context.requestEmitHelper(metadataHelper);
72
+ return factory.createCallExpression(factory.createUnscopedHelperName('__metadata'), [
73
+ factory.createStringLiteral(key, 0 /* TokenFlags.None */),
74
+ value,
75
+ ]);
76
+ }
77
+ /** `__param(index, decorator)`, with the range of the decorator. */
78
+ export function createParamHelper(factory, expression, parameterOffset, pos, end) {
79
+ factory.context.requestEmitHelper(paramHelper);
80
+ const helper = factory.createCallExpression(factory.createUnscopedHelperName('__param'), [
81
+ factory.createNumericLiteral(String(parameterOffset)),
82
+ expression,
83
+ ]);
84
+ helper.pos = pos | 0;
85
+ helper.end = end | 0;
86
+ return helper;
87
+ }
88
+ /** `__esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers)` */
89
+ export function createESDecorateHelper(factory, ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
90
+ factory.context.requestEmitHelper(esDecorateHelper);
91
+ return factory.createCallExpression(factory.createUnscopedHelperName('__esDecorate'), [
92
+ ctor,
93
+ descriptorIn,
94
+ decorators,
95
+ contextIn,
96
+ initializers,
97
+ extraInitializers,
98
+ ]);
99
+ }
100
+ /** `__runInitializers(thisArg, initializers, value)`; the value is optional. */
101
+ export function createRunInitializersHelper(factory, thisArg, initializers, value) {
102
+ factory.context.requestEmitHelper(runInitializersHelper);
103
+ const args = value !== undefined ? [thisArg, initializers, value] : [thisArg, initializers];
104
+ return factory.createCallExpression(factory.createUnscopedHelperName('__runInitializers'), args);
105
+ }
106
+ /** `__propKey(expression)` */
107
+ export function createPropKeyHelper(factory, expression) {
108
+ factory.context.requestEmitHelper(propKeyHelper);
109
+ return factory.createCallExpression(factory.createUnscopedHelperName('__propKey'), [expression]);
110
+ }
111
+ /** `__setFunctionName(fn, name, "prefix")`; an empty prefix is omitted. */
112
+ export function createSetFunctionNameHelper(factory, fn, name, prefix) {
113
+ factory.context.requestEmitHelper(setFunctionNameHelper);
114
+ const args = [fn, name];
115
+ if (prefix.length > 0)
116
+ args.push(factory.createStringLiteral(prefix, 0 /* TokenFlags.None */));
117
+ return factory.createCallExpression(factory.createUnscopedHelperName('__setFunctionName'), args);
118
+ }
@@ -0,0 +1,154 @@
1
+ import { FunctionDeclaration, Identifier, type Node, NodeList, SourceFile } from '../ast.js';
2
+ import { SyntaxKind } from '../syntax-kind.js';
3
+ import { EmitFlags } from './emit-flags.js';
4
+ import { AutoGenerateInfo } from './auto-generate.js';
5
+ import { NodeFactory } from './factory.js';
6
+ import type { EmitHelper } from './helpers.js';
7
+ export { EmitHelper, compareEmitHelpers, noPriority } from './helpers.js';
8
+ /** A comment created by a transform rather than read from source text. */
9
+ export declare class SynthesizedComment {
10
+ readonly kind: SyntaxKind;
11
+ readonly hasLeadingNewLine: boolean;
12
+ readonly hasTrailingNewLine: boolean;
13
+ readonly text: string;
14
+ constructor(kind: SyntaxKind, text: string, hasLeadingNewLine: boolean, hasTrailingNewLine: boolean);
15
+ }
16
+ declare const enum EmitNodeFlags {
17
+ None = 0,
18
+ HasCommentRange = 1,
19
+ HasSourceMapRange = 2
20
+ }
21
+ /** Per-node emit data. */
22
+ declare class EmitNode {
23
+ flags: EmitNodeFlags;
24
+ emitFlags: EmitFlags;
25
+ commentPos: number;
26
+ commentEnd: number;
27
+ sourceMapPos: number;
28
+ sourceMapEnd: number;
29
+ /** Token kind → [pos, end] ranges of tokens of this node. */
30
+ tokenSourceMapRanges: Map<SyntaxKind, number[]> | undefined;
31
+ helpers: EmitHelper[] | undefined;
32
+ externalHelpersModuleName: Identifier | undefined;
33
+ leadingComments: SynthesizedComment[] | undefined;
34
+ trailingComments: SynthesizedComment[] | undefined;
35
+ /** The type annotation erased from this name, for comment placement. */
36
+ typeNode: Node | undefined;
37
+ constructor();
38
+ copyFrom(source: EmitNode): EmitNode;
39
+ }
40
+ declare const enum EnvironmentFlags {
41
+ None = 0,
42
+ InParameters = 1,
43
+ VariablesHoistedInParameters = 2
44
+ }
45
+ /** Hoisted declarations collected while transforming a scope. */
46
+ export declare class VariableScope {
47
+ variables: Node[];
48
+ functions: Node[];
49
+ flags: EnvironmentFlags;
50
+ initializationStatements: Node[];
51
+ constructor();
52
+ }
53
+ export { AutoGenerateInfo, newAutoGenerateId } from './auto-generate.js';
54
+ export declare class EmitContext extends NodeFactory {
55
+ readonly autoGenerate: Map<Node, AutoGenerateInfo>;
56
+ readonly textSource: Map<Node, Node>;
57
+ readonly original: Map<Node, Node>;
58
+ readonly emitNodes: Map<Node, EmitNode>;
59
+ private lastLookup;
60
+ private lastEmitNode;
61
+ readonly assignedNames: Map<Node, Node>;
62
+ readonly classThisNames: Map<Node, Node>;
63
+ readonly varScopes: VariableScope[];
64
+ readonly letScopes: VariableScope[];
65
+ /** Requested unscoped helpers, in request order. */
66
+ readonly emitHelpers: EmitHelper[];
67
+ constructor();
68
+ /** The factory that creates nodes for this context: the context itself. */
69
+ get factory(): NodeFactory;
70
+ get context(): EmitContext;
71
+ /**
72
+ * Gives `node` everything emit knows about `source`: its flags, ranges and synthesized
73
+ * comments, as if it were the same node.
74
+ */
75
+ copyEmitNode(node: Node, source: Node): void;
76
+ private emitNode;
77
+ /** The emit data of `node`. The printer asks for several of a node's in a row, so the last answer is kept. */
78
+ private lookup;
79
+ setOriginal(node: Node, original: Node): void;
80
+ setOriginalEx(node: Node, original: Node, allowOverwrite: boolean): void;
81
+ unsetOriginal(node: Node): boolean;
82
+ getOriginal(node: Node): Node | undefined;
83
+ /** The node at the end of the chain of original nodes. */
84
+ mostOriginal(node: Node): Node;
85
+ /** The parse tree node a node was created from, if any. */
86
+ parseNode(node: Node): Node | undefined;
87
+ hasAutoGenerateInfo(node: Node): boolean;
88
+ getAutoGenerateInfo(node: Node): AutoGenerateInfo | undefined;
89
+ /** The node a generated name is based on, following clones of generated names. */
90
+ getNodeForGeneratedName(name: Node): Node;
91
+ getEmitFlags(node: Node): EmitFlags;
92
+ setEmitFlags(node: Node, flags: EmitFlags): Node;
93
+ addEmitFlags(node: Node, flags: EmitFlags): Node;
94
+ commentPos(node: Node): number;
95
+ commentEnd(node: Node): number;
96
+ setCommentRange(node: Node, pos: number, end: number): Node;
97
+ assignCommentRange(to: Node, from: Node): Node;
98
+ sourceMapPos(node: Node): number;
99
+ sourceMapEnd(node: Node): number;
100
+ setSourceMapRange(node: Node, pos: number, end: number): Node;
101
+ assignSourceMapRange(to: Node, from: Node): Node;
102
+ assignCommentAndSourceMapRanges(to: Node, from: Node): Node;
103
+ /** The `[pos, end]` source map range of a token of `node`, if one was set. */
104
+ tokenSourceMapRange(node: Node, kind: SyntaxKind): number[] | undefined;
105
+ setTokenSourceMapRange(node: Node, kind: SyntaxKind, pos: number, end: number): Node;
106
+ getAssignedName(node: Node): Node | undefined;
107
+ setAssignedName(node: Node, name: Node): Node;
108
+ getClassThis(node: Node): Node | undefined;
109
+ setClassThis(node: Node, classThis: Node): Node;
110
+ getTextSource(node: Node): Node | undefined;
111
+ setTextSource(node: Node, source: Node): Node;
112
+ getTypeNode(node: Node): Node | undefined;
113
+ /** Keeps the erased type annotation of a name so its comments can still be emitted. */
114
+ setTypeNode(node: Node, typeNode: Node): Node;
115
+ getSyntheticLeadingComments(node: Node): SynthesizedComment[] | undefined;
116
+ setSyntheticLeadingComments(node: Node, comments: SynthesizedComment[] | undefined): Node;
117
+ addSyntheticLeadingComment(node: Node, kind: SyntaxKind, text: string, hasTrailingNewLine: boolean): Node;
118
+ getSyntheticTrailingComments(node: Node): SynthesizedComment[] | undefined;
119
+ setSyntheticTrailingComments(node: Node, comments: SynthesizedComment[] | undefined): Node;
120
+ addSyntheticTrailingComment(node: Node, kind: SyntaxKind, text: string, hasTrailingNewLine: boolean): Node;
121
+ requestEmitHelper(helper: EmitHelper): EmitHelper;
122
+ readEmitHelpers(): EmitHelper[];
123
+ addEmitHelper(node: Node, helper: EmitHelper): Node;
124
+ getEmitHelpers(node: Node): EmitHelper[] | undefined;
125
+ getExternalHelpersModuleName(file: SourceFile): Identifier | undefined;
126
+ setExternalHelpersModuleName(file: SourceFile, name: Identifier): Identifier;
127
+ hasRecordedExternalHelpers(file: SourceFile): boolean;
128
+ /** Starts collecting hoisted `var` and function declarations (and a lexical scope). */
129
+ startVariableEnvironment(): VariableScope;
130
+ /** Ends the current variable environment, returning the statements to add at the start of its scope. */
131
+ endVariableEnvironment(): Node[];
132
+ startLexicalEnvironment(): VariableScope;
133
+ endLexicalEnvironment(): Node[];
134
+ /** Adds a `var` declaration to the current variable environment. */
135
+ addVariableDeclaration(name: Identifier): Identifier;
136
+ /** Adds a `let` declaration to the current lexical environment. */
137
+ addLexicalDeclaration(name: Identifier): Identifier;
138
+ addHoistedFunctionDeclaration(node: FunctionDeclaration): FunctionDeclaration;
139
+ addInitializationStatement(node: Node): Node;
140
+ /** Marks the current variable scope as visiting parameters; returns the previous flags. */
141
+ enterParameters(): number;
142
+ /** Restores the scope flags; returns whether a variable was hoisted while visiting the parameters. */
143
+ exitParameters(previousFlags: number): boolean;
144
+ /** `statements` with `declarations` from an ended environment merged in, keeping the list's range. */
145
+ mergeEnvironmentList(statements: NodeList, declarations: Node[]): NodeList;
146
+ /**
147
+ * Merges hoisted declarations into statements: prologue directives, then hoisted functions,
148
+ * hoisted variables and other custom prologues, the new ones before the existing ones of each group.
149
+ */
150
+ mergeEnvironment(statements: Node[], declarations: Node[]): Node[];
151
+ private spanEnd;
152
+ private isSpanKind;
153
+ isCustomPrologue(node: Node): boolean;
154
+ }