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,576 @@
1
+ // Side tables that transforms fill in and the printer reads: original nodes, emit flags,
2
+ // comment and source map ranges, synthesized comments, generated names and emit helpers.
3
+ import { ExpressionStatement, FunctionDeclaration, Identifier, NodeList, PrivateIdentifier, StringLiteral, VariableDeclaration, VariableStatement, } from '../ast.js';
4
+ import { NodeFactory } from './factory.js';
5
+ import { isParseTreeNode, isPrologueDirective } from './utilities.js';
6
+ export { EmitHelper, compareEmitHelpers, noPriority } from './helpers.js';
7
+ /** `left` with `right[start:end]` inserted at `at`. */
8
+ function splice(left, at, right, start, end) {
9
+ const result = left.slice(0, at);
10
+ for (let i = start; i < end; i++)
11
+ result.push(right[i]);
12
+ for (let i = at; i < left.length; i++)
13
+ result.push(left[i]);
14
+ return result;
15
+ }
16
+ function prologueText(node) {
17
+ return node instanceof ExpressionStatement && node.expression instanceof StringLiteral ? node.expression.text : '';
18
+ }
19
+ /** A comment created by a transform rather than read from source text. */
20
+ export class SynthesizedComment {
21
+ kind;
22
+ hasLeadingNewLine;
23
+ hasTrailingNewLine;
24
+ text;
25
+ constructor(kind, text, hasLeadingNewLine, hasTrailingNewLine) {
26
+ this.kind = kind;
27
+ this.text = text;
28
+ this.hasLeadingNewLine = hasLeadingNewLine;
29
+ this.hasTrailingNewLine = hasTrailingNewLine;
30
+ }
31
+ }
32
+ /** Per-node emit data. */
33
+ class EmitNode {
34
+ flags;
35
+ emitFlags;
36
+ commentPos;
37
+ commentEnd;
38
+ sourceMapPos;
39
+ sourceMapEnd;
40
+ /** Token kind → [pos, end] ranges of tokens of this node. */
41
+ tokenSourceMapRanges;
42
+ helpers;
43
+ externalHelpersModuleName;
44
+ leadingComments;
45
+ trailingComments;
46
+ /** The type annotation erased from this name, for comment placement. */
47
+ typeNode;
48
+ constructor() {
49
+ this.flags = 0 /* EmitNodeFlags.None */;
50
+ this.emitFlags = 0 /* EmitFlags.None */;
51
+ this.commentPos = -1;
52
+ this.commentEnd = -1;
53
+ this.sourceMapPos = -1;
54
+ this.sourceMapEnd = -1;
55
+ this.tokenSourceMapRanges = undefined;
56
+ this.helpers = undefined;
57
+ this.externalHelpersModuleName = undefined;
58
+ this.leadingComments = undefined;
59
+ this.trailingComments = undefined;
60
+ this.typeNode = undefined;
61
+ }
62
+ copyFrom(source) {
63
+ this.flags = source.flags;
64
+ this.emitFlags = source.emitFlags;
65
+ this.commentPos = source.commentPos;
66
+ this.commentEnd = source.commentEnd;
67
+ this.sourceMapPos = source.sourceMapPos;
68
+ this.sourceMapEnd = source.sourceMapEnd;
69
+ const ranges = source.tokenSourceMapRanges;
70
+ this.tokenSourceMapRanges = ranges === undefined ? undefined : new Map(ranges);
71
+ this.helpers = source.helpers === undefined ? undefined : source.helpers.slice();
72
+ this.externalHelpersModuleName = source.externalHelpersModuleName;
73
+ return this;
74
+ }
75
+ }
76
+ /** Hoisted declarations collected while transforming a scope. */
77
+ export class VariableScope {
78
+ variables;
79
+ functions;
80
+ flags;
81
+ initializationStatements;
82
+ constructor() {
83
+ this.variables = [];
84
+ this.functions = [];
85
+ this.flags = 0 /* EnvironmentFlags.None */;
86
+ this.initializationStatements = [];
87
+ }
88
+ }
89
+ export { AutoGenerateInfo, newAutoGenerateId } from './auto-generate.js';
90
+ export class EmitContext extends NodeFactory {
91
+ autoGenerate;
92
+ textSource;
93
+ original;
94
+ emitNodes;
95
+ lastLookup;
96
+ lastEmitNode;
97
+ assignedNames;
98
+ classThisNames;
99
+ varScopes;
100
+ letScopes;
101
+ /** Requested unscoped helpers, in request order. */
102
+ emitHelpers;
103
+ constructor() {
104
+ super();
105
+ this.autoGenerate = new Map();
106
+ this.textSource = new Map();
107
+ this.original = new Map();
108
+ this.emitNodes = new Map();
109
+ this.lastLookup = undefined;
110
+ this.lastEmitNode = undefined;
111
+ this.assignedNames = new Map();
112
+ this.classThisNames = new Map();
113
+ this.varScopes = [];
114
+ this.letScopes = [];
115
+ this.emitHelpers = [];
116
+ }
117
+ /** The factory that creates nodes for this context: the context itself. */
118
+ get factory() {
119
+ return this;
120
+ }
121
+ get context() {
122
+ return this;
123
+ }
124
+ /**
125
+ * Gives `node` everything emit knows about `source`: its flags, ranges and synthesized
126
+ * comments, as if it were the same node.
127
+ */
128
+ copyEmitNode(node, source) {
129
+ const emitNode = this.lookup(source);
130
+ if (emitNode === undefined)
131
+ return;
132
+ const target = this.emitNode(node).copyFrom(emitNode);
133
+ target.leadingComments = emitNode.leadingComments === undefined ? undefined : emitNode.leadingComments.slice();
134
+ target.trailingComments = emitNode.trailingComments === undefined ? undefined : emitNode.trailingComments.slice();
135
+ target.typeNode = emitNode.typeNode;
136
+ }
137
+ emitNode(node) {
138
+ let emitNode = this.lookup(node);
139
+ if (emitNode === undefined) {
140
+ emitNode = new EmitNode();
141
+ this.emitNodes.set(node, emitNode);
142
+ this.lastLookup = node;
143
+ this.lastEmitNode = emitNode;
144
+ }
145
+ return emitNode;
146
+ }
147
+ /** The emit data of `node`. The printer asks for several of a node's in a row, so the last answer is kept. */
148
+ lookup(node) {
149
+ if (node === this.lastLookup)
150
+ return this.lastEmitNode;
151
+ const emitNode = this.emitNodes.get(node);
152
+ this.lastLookup = node;
153
+ this.lastEmitNode = emitNode;
154
+ return emitNode;
155
+ }
156
+ // Original nodes
157
+ setOriginal(node, original) {
158
+ this.setOriginalEx(node, original, false);
159
+ }
160
+ setOriginalEx(node, original, allowOverwrite) {
161
+ const existing = this.original.get(node);
162
+ if (existing === undefined) {
163
+ this.original.set(node, original);
164
+ const emitNode = this.lookup(original);
165
+ if (emitNode !== undefined)
166
+ this.emitNode(node).copyFrom(emitNode);
167
+ }
168
+ else if (allowOverwrite)
169
+ this.original.set(node, original);
170
+ else if (existing !== original)
171
+ throw new Error('Original node already set.');
172
+ }
173
+ unsetOriginal(node) {
174
+ return this.original.delete(node);
175
+ }
176
+ getOriginal(node) {
177
+ return this.original.get(node);
178
+ }
179
+ /** The node at the end of the chain of original nodes. */
180
+ mostOriginal(node) {
181
+ let original = this.original.get(node);
182
+ while (original !== undefined) {
183
+ node = original;
184
+ original = this.original.get(node);
185
+ }
186
+ return node;
187
+ }
188
+ /** The parse tree node a node was created from, if any. */
189
+ parseNode(node) {
190
+ node = this.mostOriginal(node);
191
+ return isParseTreeNode(node) ? node : undefined;
192
+ }
193
+ // Generated names
194
+ hasAutoGenerateInfo(node) {
195
+ return this.autoGenerate.has(node);
196
+ }
197
+ getAutoGenerateInfo(node) {
198
+ return this.autoGenerate.get(node);
199
+ }
200
+ /** The node a generated name is based on, following clones of generated names. */
201
+ getNodeForGeneratedName(name) {
202
+ const info = this.autoGenerate.get(name);
203
+ if (info === undefined || (info.flags & 7 /* GeneratedIdentifierFlags.KindMask */) !== 4 /* GeneratedIdentifierFlags.Node */)
204
+ return name;
205
+ let node = info.node;
206
+ const id = info.id;
207
+ let original = this.original.get(node);
208
+ while (original !== undefined) {
209
+ node = original;
210
+ if (node instanceof Identifier || node instanceof PrivateIdentifier) {
211
+ const other = this.autoGenerate.get(node);
212
+ if (other === undefined ||
213
+ ((other.flags & 7 /* GeneratedIdentifierFlags.KindMask */) === 4 /* GeneratedIdentifierFlags.Node */ && other.id !== id))
214
+ break;
215
+ if ((other.flags & 7 /* GeneratedIdentifierFlags.KindMask */) === 4 /* GeneratedIdentifierFlags.Node */) {
216
+ original = other.node;
217
+ continue;
218
+ }
219
+ }
220
+ original = this.original.get(node);
221
+ }
222
+ return node;
223
+ }
224
+ // Emit data
225
+ getEmitFlags(node) {
226
+ const emitNode = this.lookup(node);
227
+ return emitNode === undefined ? 0 /* EmitFlags.None */ : emitNode.emitFlags;
228
+ }
229
+ setEmitFlags(node, flags) {
230
+ this.emitNode(node).emitFlags = flags;
231
+ return node;
232
+ }
233
+ addEmitFlags(node, flags) {
234
+ this.emitNode(node).emitFlags |= flags;
235
+ return node;
236
+ }
237
+ commentPos(node) {
238
+ const emitNode = this.lookup(node);
239
+ return emitNode !== undefined && (emitNode.flags & 1 /* EmitNodeFlags.HasCommentRange */) !== 0
240
+ ? emitNode.commentPos
241
+ : node.pos;
242
+ }
243
+ commentEnd(node) {
244
+ const emitNode = this.lookup(node);
245
+ return emitNode !== undefined && (emitNode.flags & 1 /* EmitNodeFlags.HasCommentRange */) !== 0
246
+ ? emitNode.commentEnd
247
+ : node.end;
248
+ }
249
+ setCommentRange(node, pos, end) {
250
+ const emitNode = this.emitNode(node);
251
+ emitNode.commentPos = pos;
252
+ emitNode.commentEnd = end;
253
+ emitNode.flags |= 1 /* EmitNodeFlags.HasCommentRange */;
254
+ return node;
255
+ }
256
+ assignCommentRange(to, from) {
257
+ return this.setCommentRange(to, this.commentPos(from), this.commentEnd(from));
258
+ }
259
+ sourceMapPos(node) {
260
+ const emitNode = this.lookup(node);
261
+ return emitNode !== undefined && (emitNode.flags & 2 /* EmitNodeFlags.HasSourceMapRange */) !== 0
262
+ ? emitNode.sourceMapPos
263
+ : node.pos;
264
+ }
265
+ sourceMapEnd(node) {
266
+ const emitNode = this.lookup(node);
267
+ return emitNode !== undefined && (emitNode.flags & 2 /* EmitNodeFlags.HasSourceMapRange */) !== 0
268
+ ? emitNode.sourceMapEnd
269
+ : node.end;
270
+ }
271
+ setSourceMapRange(node, pos, end) {
272
+ const emitNode = this.emitNode(node);
273
+ emitNode.sourceMapPos = pos;
274
+ emitNode.sourceMapEnd = end;
275
+ emitNode.flags |= 2 /* EmitNodeFlags.HasSourceMapRange */;
276
+ return node;
277
+ }
278
+ assignSourceMapRange(to, from) {
279
+ return this.setSourceMapRange(to, this.sourceMapPos(from), this.sourceMapEnd(from));
280
+ }
281
+ assignCommentAndSourceMapRanges(to, from) {
282
+ const commentPos = this.commentPos(from);
283
+ const commentEnd = this.commentEnd(from);
284
+ const sourceMapPos = this.sourceMapPos(from);
285
+ const sourceMapEnd = this.sourceMapEnd(from);
286
+ const emitNode = this.emitNode(to);
287
+ emitNode.commentPos = commentPos;
288
+ emitNode.commentEnd = commentEnd;
289
+ emitNode.sourceMapPos = sourceMapPos;
290
+ emitNode.sourceMapEnd = sourceMapEnd;
291
+ emitNode.flags |= 1 /* EmitNodeFlags.HasCommentRange */ | 2 /* EmitNodeFlags.HasSourceMapRange */;
292
+ return to;
293
+ }
294
+ /** The `[pos, end]` source map range of a token of `node`, if one was set. */
295
+ tokenSourceMapRange(node, kind) {
296
+ const emitNode = this.lookup(node);
297
+ if (emitNode === undefined || emitNode.tokenSourceMapRanges === undefined)
298
+ return undefined;
299
+ return emitNode.tokenSourceMapRanges.get(kind);
300
+ }
301
+ setTokenSourceMapRange(node, kind, pos, end) {
302
+ const emitNode = this.emitNode(node);
303
+ let ranges = emitNode.tokenSourceMapRanges;
304
+ if (ranges === undefined) {
305
+ ranges = new Map();
306
+ emitNode.tokenSourceMapRanges = ranges;
307
+ }
308
+ ranges.set(kind, [pos, end]);
309
+ return node;
310
+ }
311
+ getAssignedName(node) {
312
+ return this.assignedNames.get(node);
313
+ }
314
+ setAssignedName(node, name) {
315
+ this.assignedNames.set(node, name);
316
+ return node;
317
+ }
318
+ getClassThis(node) {
319
+ return this.classThisNames.get(node);
320
+ }
321
+ setClassThis(node, classThis) {
322
+ this.classThisNames.set(node, classThis);
323
+ return node;
324
+ }
325
+ getTextSource(node) {
326
+ return this.textSource.get(node);
327
+ }
328
+ setTextSource(node, source) {
329
+ this.textSource.set(node, source);
330
+ return node;
331
+ }
332
+ getTypeNode(node) {
333
+ const emitNode = this.lookup(node);
334
+ return emitNode === undefined ? undefined : emitNode.typeNode;
335
+ }
336
+ /** Keeps the erased type annotation of a name so its comments can still be emitted. */
337
+ setTypeNode(node, typeNode) {
338
+ this.emitNode(node).typeNode = typeNode;
339
+ return node;
340
+ }
341
+ // Synthesized comments
342
+ getSyntheticLeadingComments(node) {
343
+ const emitNode = this.lookup(node);
344
+ return emitNode === undefined ? undefined : emitNode.leadingComments;
345
+ }
346
+ setSyntheticLeadingComments(node, comments) {
347
+ this.emitNode(node).leadingComments = comments;
348
+ return node;
349
+ }
350
+ addSyntheticLeadingComment(node, kind, text, hasTrailingNewLine) {
351
+ const emitNode = this.emitNode(node);
352
+ if (emitNode.leadingComments === undefined)
353
+ emitNode.leadingComments = [];
354
+ emitNode.leadingComments.push(new SynthesizedComment(kind, text, false, hasTrailingNewLine));
355
+ return node;
356
+ }
357
+ getSyntheticTrailingComments(node) {
358
+ const emitNode = this.lookup(node);
359
+ return emitNode === undefined ? undefined : emitNode.trailingComments;
360
+ }
361
+ setSyntheticTrailingComments(node, comments) {
362
+ this.emitNode(node).trailingComments = comments;
363
+ return node;
364
+ }
365
+ addSyntheticTrailingComment(node, kind, text, hasTrailingNewLine) {
366
+ const emitNode = this.emitNode(node);
367
+ if (emitNode.trailingComments === undefined)
368
+ emitNode.trailingComments = [];
369
+ emitNode.trailingComments.push(new SynthesizedComment(kind, text, false, hasTrailingNewLine));
370
+ return node;
371
+ }
372
+ // Emit helpers
373
+ requestEmitHelper(helper) {
374
+ if (helper.scoped)
375
+ throw new Error('Cannot request a scoped emit helper');
376
+ for (const dependency of helper.dependencies)
377
+ this.requestEmitHelper(dependency);
378
+ if (this.emitHelpers.indexOf(helper) < 0)
379
+ this.emitHelpers.push(helper);
380
+ return helper;
381
+ }
382
+ readEmitHelpers() {
383
+ const helpers = this.emitHelpers.slice();
384
+ this.emitHelpers.length = 0;
385
+ return helpers;
386
+ }
387
+ addEmitHelper(node, helper) {
388
+ const emitNode = this.emitNode(node);
389
+ if (emitNode.helpers === undefined)
390
+ emitNode.helpers = [];
391
+ if (emitNode.helpers.indexOf(helper) < 0)
392
+ emitNode.helpers.push(helper);
393
+ return node;
394
+ }
395
+ getEmitHelpers(node) {
396
+ const emitNode = this.lookup(node);
397
+ return emitNode === undefined ? undefined : emitNode.helpers;
398
+ }
399
+ getExternalHelpersModuleName(file) {
400
+ const parseNode = this.parseNode(file);
401
+ if (parseNode === undefined)
402
+ return undefined;
403
+ const emitNode = this.lookup(parseNode);
404
+ return emitNode === undefined ? undefined : emitNode.externalHelpersModuleName;
405
+ }
406
+ setExternalHelpersModuleName(file, name) {
407
+ const parseNode = this.parseNode(file);
408
+ if (parseNode === undefined)
409
+ throw new Error('Node must be a parse tree node or have an original parse tree node.');
410
+ this.emitNode(parseNode).externalHelpersModuleName = name;
411
+ return name;
412
+ }
413
+ hasRecordedExternalHelpers(file) {
414
+ const parseNode = this.parseNode(file);
415
+ if (parseNode === undefined)
416
+ return false;
417
+ const emitNode = this.lookup(parseNode);
418
+ return (emitNode !== undefined &&
419
+ (emitNode.externalHelpersModuleName !== undefined || (emitNode.emitFlags & 262144 /* EmitFlags.ExternalHelpers */) !== 0));
420
+ }
421
+ // Hoisted declarations
422
+ /** Starts collecting hoisted `var` and function declarations (and a lexical scope). */
423
+ startVariableEnvironment() {
424
+ const scope = new VariableScope();
425
+ this.varScopes.push(scope);
426
+ this.startLexicalEnvironment();
427
+ return scope;
428
+ }
429
+ /** Ends the current variable environment, returning the statements to add at the start of its scope. */
430
+ endVariableEnvironment() {
431
+ const scope = this.varScopes.pop();
432
+ const factory = this.factory;
433
+ const statements = scope.functions.slice();
434
+ if (scope.variables.length > 0) {
435
+ const statement = factory.createVariableStatement(undefined, factory.createVariableDeclarationList(factory.createNodeList(scope.variables), 0));
436
+ this.setEmitFlags(statement, 65536 /* EmitFlags.CustomPrologue */);
437
+ statements.push(statement);
438
+ }
439
+ for (const statement of scope.initializationStatements)
440
+ statements.push(statement);
441
+ const lexical = this.endLexicalEnvironment();
442
+ for (const statement of lexical)
443
+ statements.push(statement);
444
+ return statements;
445
+ }
446
+ startLexicalEnvironment() {
447
+ const scope = new VariableScope();
448
+ this.letScopes.push(scope);
449
+ return scope;
450
+ }
451
+ endLexicalEnvironment() {
452
+ const scope = this.letScopes.pop();
453
+ const statements = [];
454
+ if (scope.variables.length > 0) {
455
+ const factory = this.factory;
456
+ const statement = factory.createVariableStatement(undefined, factory.createVariableDeclarationList(factory.createNodeList(scope.variables), 1 /* NodeFlags.Let */));
457
+ this.setEmitFlags(statement, 65536 /* EmitFlags.CustomPrologue */);
458
+ statements.push(statement);
459
+ }
460
+ return statements;
461
+ }
462
+ /** Adds a `var` declaration to the current variable environment. */
463
+ addVariableDeclaration(name) {
464
+ const declaration = this.factory.createVariableDeclaration(name, undefined, undefined, undefined);
465
+ this.setEmitFlags(declaration, 16 /* EmitFlags.NoNestedSourceMaps */);
466
+ const scope = this.varScopes[this.varScopes.length - 1];
467
+ scope.variables.push(declaration);
468
+ if ((scope.flags & 1 /* EnvironmentFlags.InParameters */) !== 0)
469
+ scope.flags |= 2 /* EnvironmentFlags.VariablesHoistedInParameters */;
470
+ return name;
471
+ }
472
+ /** Adds a `let` declaration to the current lexical environment. */
473
+ addLexicalDeclaration(name) {
474
+ const declaration = this.factory.createVariableDeclaration(name, undefined, undefined, undefined);
475
+ this.setEmitFlags(declaration, 16 /* EmitFlags.NoNestedSourceMaps */);
476
+ this.letScopes[this.letScopes.length - 1].variables.push(declaration);
477
+ return name;
478
+ }
479
+ addHoistedFunctionDeclaration(node) {
480
+ this.setEmitFlags(node, 65536 /* EmitFlags.CustomPrologue */);
481
+ this.varScopes[this.varScopes.length - 1].functions.push(node);
482
+ return node;
483
+ }
484
+ addInitializationStatement(node) {
485
+ if (this.varScopes.length === 0)
486
+ throw new Error('Tried to add an initialization statement without a surrounding variable scope');
487
+ this.addEmitFlags(node, 65536 /* EmitFlags.CustomPrologue */);
488
+ this.varScopes[this.varScopes.length - 1].initializationStatements.push(node);
489
+ return node;
490
+ }
491
+ /** Marks the current variable scope as visiting parameters; returns the previous flags. */
492
+ enterParameters() {
493
+ const scope = this.varScopes[this.varScopes.length - 1];
494
+ const flags = scope.flags;
495
+ scope.flags |= 1 /* EnvironmentFlags.InParameters */;
496
+ return flags;
497
+ }
498
+ /** Restores the scope flags; returns whether a variable was hoisted while visiting the parameters. */
499
+ exitParameters(previousFlags) {
500
+ const scope = this.varScopes[this.varScopes.length - 1];
501
+ const hoisted = (scope.flags & 2 /* EnvironmentFlags.VariablesHoistedInParameters */) !== 0;
502
+ scope.flags = previousFlags;
503
+ return hoisted;
504
+ }
505
+ /** `statements` with `declarations` from an ended environment merged in, keeping the list's range. */
506
+ mergeEnvironmentList(statements, declarations) {
507
+ const merged = this.mergeEnvironment(statements.nodes, declarations);
508
+ return merged === statements.nodes ? statements : new NodeList(statements.pos, statements.end, merged);
509
+ }
510
+ /**
511
+ * Merges hoisted declarations into statements: prologue directives, then hoisted functions,
512
+ * hoisted variables and other custom prologues, the new ones before the existing ones of each group.
513
+ */
514
+ mergeEnvironment(statements, declarations) {
515
+ if (declarations.length === 0)
516
+ return statements;
517
+ const leftPrologueEnd = this.spanEnd(statements, 0, 0 /* SpanKind.Prologue */);
518
+ const leftFunctionsEnd = this.spanEnd(statements, leftPrologueEnd, 1 /* SpanKind.HoistedFunction */);
519
+ const leftVariablesEnd = this.spanEnd(statements, leftFunctionsEnd, 2 /* SpanKind.HoistedVariable */);
520
+ const rightPrologueEnd = this.spanEnd(declarations, 0, 0 /* SpanKind.Prologue */);
521
+ const rightFunctionsEnd = this.spanEnd(declarations, rightPrologueEnd, 1 /* SpanKind.HoistedFunction */);
522
+ const rightVariablesEnd = this.spanEnd(declarations, rightFunctionsEnd, 2 /* SpanKind.HoistedVariable */);
523
+ const rightCustomEnd = this.spanEnd(declarations, rightVariablesEnd, 3 /* SpanKind.CustomPrologue */);
524
+ if (rightCustomEnd !== declarations.length)
525
+ throw new Error('Expected declarations to be valid standard or custom prologues');
526
+ let left = statements;
527
+ if (rightCustomEnd > rightVariablesEnd)
528
+ left = splice(left, leftVariablesEnd, declarations, rightVariablesEnd, rightCustomEnd);
529
+ if (rightVariablesEnd > rightFunctionsEnd)
530
+ left = splice(left, leftFunctionsEnd, declarations, rightFunctionsEnd, rightVariablesEnd);
531
+ if (rightFunctionsEnd > rightPrologueEnd)
532
+ left = splice(left, leftPrologueEnd, declarations, rightPrologueEnd, rightFunctionsEnd);
533
+ if (rightPrologueEnd > 0) {
534
+ if (leftPrologueEnd === 0)
535
+ left = splice(left, 0, declarations, 0, rightPrologueEnd);
536
+ else {
537
+ const existing = new Set();
538
+ for (let i = 0; i < leftPrologueEnd; i++)
539
+ existing.add(prologueText(statements[i]));
540
+ for (let i = rightPrologueEnd - 1; i >= 0; i--) {
541
+ const declaration = declarations[i];
542
+ if (!existing.has(prologueText(declaration)))
543
+ left = [declaration].concat(left);
544
+ }
545
+ }
546
+ }
547
+ return left;
548
+ }
549
+ spanEnd(nodes, start, kind) {
550
+ let i = start;
551
+ while (i < nodes.length && this.isSpanKind(nodes[i], kind))
552
+ i++;
553
+ return i;
554
+ }
555
+ isSpanKind(node, kind) {
556
+ switch (kind) {
557
+ case 0 /* SpanKind.Prologue */:
558
+ return isPrologueDirective(node);
559
+ case 1 /* SpanKind.HoistedFunction */:
560
+ return this.isCustomPrologue(node) && node instanceof FunctionDeclaration;
561
+ case 2 /* SpanKind.HoistedVariable */:
562
+ if (!this.isCustomPrologue(node) || !(node instanceof VariableStatement))
563
+ return false;
564
+ for (const declaration of node.declarationList.declarations.nodes)
565
+ if (!(declaration instanceof VariableDeclaration) ||
566
+ !(declaration.name instanceof Identifier) ||
567
+ declaration.initializer !== undefined)
568
+ return false;
569
+ return true;
570
+ }
571
+ return this.isCustomPrologue(node);
572
+ }
573
+ isCustomPrologue(node) {
574
+ return (this.getEmitFlags(node) & 65536 /* EmitFlags.CustomPrologue */) !== 0;
575
+ }
576
+ }
@@ -0,0 +1,60 @@
1
+ export declare const enum EmitFlags {
2
+ None = 0,
3
+ /** Emit the node's contents on a single line. */
4
+ SingleLine = 1,
5
+ /** Emit the node's contents on multiple lines. */
6
+ MultiLine = 2,
7
+ NoLeadingSourceMap = 4,
8
+ NoTrailingSourceMap = 8,
9
+ /** No source map locations for children. */
10
+ NoNestedSourceMaps = 16,
11
+ NoTokenLeadingSourceMaps = 32,
12
+ NoTokenTrailingSourceMaps = 64,
13
+ NoLeadingComments = 128,
14
+ NoTrailingComments = 256,
15
+ /** No comments for children. */
16
+ NoNestedComments = 512,
17
+ /** The identifier names an unscoped emit helper. */
18
+ HelperName = 1024,
19
+ /** Prefix the identifier with its export (for exported declarations with a local name). */
20
+ ExportName = 2048,
21
+ /** Don't prefix the identifier with its export. */
22
+ LocalName = 4096,
23
+ /** Indent class and function bodies one more level. */
24
+ Indented = 8192,
25
+ NoIndentation = 16384,
26
+ ReuseTempVariableScope = 32768,
27
+ /** Treat the statement as a prologue directive. */
28
+ CustomPrologue = 65536,
29
+ /** Escape non-ASCII characters of a synthesized literal. */
30
+ NoAsciiEscaping = 131072,
31
+ ExternalHelpers = 262144,
32
+ StartOnNewLine = 524288,
33
+ /** Emit a call as `(0, f)()`. */
34
+ IndirectCall = 1048576,
35
+ AsyncFunctionBody = 2097152,
36
+ NoLexicalArguments = 4194304,
37
+ TransformPrivateStaticElements = 8388608,
38
+ NoLexicalThis = 16777216,
39
+ NoSourceMap = 12,
40
+ NoTokenSourceMaps = 96,
41
+ NoComments = 384
42
+ }
43
+ export declare const enum GeneratedIdentifierFlags {
44
+ None = 0,
45
+ /** A temporary variable such as `_a`. */
46
+ Auto = 1,
47
+ /** A loop variable, preferring `_i`. */
48
+ Loop = 2,
49
+ /** A unique name based on the identifier's text. */
50
+ Unique = 3,
51
+ /** A unique name based on another node. */
52
+ Node = 4,
53
+ KindMask = 7,
54
+ ReservedInNestedScopes = 8,
55
+ /** The first instance doesn't get a `_1` suffix if there's no conflict. */
56
+ Optimistic = 16,
57
+ /** Check conflicts only against the file's identifiers. */
58
+ FileLevel = 32,
59
+ AllowNameSubstitution = 64
60
+ }
@@ -0,0 +1,2 @@
1
+ // Flags transforms set on nodes to customize how the printer emits them.
2
+ export {};