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,164 @@
1
+ // Runtime helpers emitted at the top of a file, or imported from tslib with `importHelpers`.
2
+ /** A runtime helper such as `__decorate`, emitted once at the top of a file or scope. */
3
+ export class EmitHelper {
4
+ name;
5
+ /** Emitted in the scope that uses it rather than at the top of the file. */
6
+ scoped;
7
+ text;
8
+ /** Lower values are emitted first; helpers without a priority come last. */
9
+ priority;
10
+ dependencies;
11
+ importName;
12
+ /** For helpers that declare a file-level unique name: the base name, written in place of each `{name}` in `text`. */
13
+ uniqueName;
14
+ constructor(name, scoped, text, priority, dependencies, importName, uniqueName) {
15
+ this.name = name;
16
+ this.scoped = scoped;
17
+ this.text = text;
18
+ this.priority = priority;
19
+ this.dependencies = dependencies;
20
+ this.importName = importName;
21
+ this.uniqueName = uniqueName;
22
+ }
23
+ }
24
+ export const noPriority = -1;
25
+ export function compareEmitHelpers(x, y) {
26
+ if (x === y || x.priority === y.priority)
27
+ return 0;
28
+ if (x.priority === noPriority)
29
+ return 1;
30
+ if (y.priority === noPriority)
31
+ return -1;
32
+ return x.priority - y.priority;
33
+ }
34
+ const createBindingHelper = new EmitHelper('typescript:commonjscreatebinding', false, `var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
35
+ if (k2 === undefined) k2 = k;
36
+ var desc = Object.getOwnPropertyDescriptor(m, k);
37
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
38
+ desc = { enumerable: true, get: function() { return m[k]; } };
39
+ }
40
+ Object.defineProperty(o, k2, desc);
41
+ }) : (function(o, m, k, k2) {
42
+ if (k2 === undefined) k2 = k;
43
+ o[k2] = m[k];
44
+ }));`, 1, [], '__createBinding', '');
45
+ const setModuleDefaultHelper = new EmitHelper('typescript:commonjscreatevalue', false, `var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
46
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
47
+ }) : function(o, v) {
48
+ o["default"] = v;
49
+ });`, 1, [], '__setModuleDefault', '');
50
+ export const importStarHelper = new EmitHelper('typescript:commonjsimportstar', false, `var __importStar = (this && this.__importStar) || (function () {
51
+ var ownKeys = function(o) {
52
+ ownKeys = Object.getOwnPropertyNames || function (o) {
53
+ var ar = [];
54
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
55
+ return ar;
56
+ };
57
+ return ownKeys(o);
58
+ };
59
+ return function (mod) {
60
+ if (mod && mod.__esModule) return mod;
61
+ var result = {};
62
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
63
+ __setModuleDefault(result, mod);
64
+ return result;
65
+ };
66
+ })();`, 2, [createBindingHelper, setModuleDefaultHelper], '__importStar', '');
67
+ export const importDefaultHelper = new EmitHelper('typescript:commonjsimportdefault', false, `var __importDefault = (this && this.__importDefault) || function (mod) {
68
+ return (mod && mod.__esModule) ? mod : { "default": mod };
69
+ };`, noPriority, [], '__importDefault', '');
70
+ export const exportStarHelper = new EmitHelper('typescript:export-star', false, `var __exportStar = (this && this.__exportStar) || function(m, exports) {
71
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
72
+ };`, 2, [createBindingHelper], '__exportStar', '');
73
+ export const rewriteRelativeImportExtensionsHelper = new EmitHelper('typescript:rewriteRelativeImportExtensions', false, `var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExtension) || function (path, preserveJsx) {
74
+ if (typeof path === "string" && /^\\.\\.?\\//.test(path)) {
75
+ return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {
76
+ return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js");
77
+ });
78
+ }
79
+ return path;
80
+ };`, noPriority, [], '__rewriteRelativeImportExtension', '');
81
+ export const restHelper = new EmitHelper('typescript:rest', false, `var __rest = (this && this.__rest) || function (s, e) {
82
+ var t = {};
83
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
84
+ t[p] = s[p];
85
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
86
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
87
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
88
+ t[p[i]] = s[p[i]];
89
+ }
90
+ return t;
91
+ };`, noPriority, [], '__rest', '');
92
+ export const classPrivateFieldGetHelper = new EmitHelper('typescript:classPrivateFieldGet', false, `var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
93
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
94
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
95
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
96
+ };`, noPriority, [], '__classPrivateFieldGet', '');
97
+ export const classPrivateFieldSetHelper = new EmitHelper('typescript:classPrivateFieldSet', false, `var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
98
+ if (kind === "m") throw new TypeError("Private method is not writable");
99
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
100
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
101
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
102
+ };`, noPriority, [], '__classPrivateFieldSet', '');
103
+ export const classPrivateFieldInHelper = new EmitHelper('typescript:classPrivateFieldIn', false, `var __classPrivateFieldIn = (this && this.__classPrivateFieldIn) || function(state, receiver) {
104
+ if (receiver === null || (typeof receiver !== "object" && typeof receiver !== "function")) throw new TypeError("Cannot use 'in' operator on non-object");
105
+ return typeof state === "function" ? receiver === state : state.has(receiver);
106
+ };`, noPriority, [], '__classPrivateFieldIn', '');
107
+ export const makeTemplateObjectHelper = new EmitHelper('typescript:makeTemplateObject', false, `var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
108
+ if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
109
+ return cooked;
110
+ };`, 0, [], '__makeTemplateObject', '');
111
+ // ES2018 helpers
112
+ // ESNext helpers
113
+ export const addDisposableResourceHelper = new EmitHelper('typescript:addDisposableResource', false, `var __addDisposableResource = (this && this.__addDisposableResource) || function (env, value, async) {
114
+ if (value !== null && value !== void 0) {
115
+ if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
116
+ var dispose, inner;
117
+ if (async) {
118
+ if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined.");
119
+ dispose = value[Symbol.asyncDispose];
120
+ }
121
+ if (dispose === void 0) {
122
+ if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined.");
123
+ dispose = value[Symbol.dispose];
124
+ if (async) inner = dispose;
125
+ }
126
+ if (typeof dispose !== "function") throw new TypeError("Object not disposable.");
127
+ if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };
128
+ env.stack.push({ value: value, dispose: dispose, async: async });
129
+ }
130
+ else if (async) {
131
+ env.stack.push({ async: true });
132
+ }
133
+ return value;
134
+ };`, noPriority, [], '__addDisposableResource', '');
135
+ export const disposeResourcesHelper = new EmitHelper('typescript:disposeResources', false, `var __disposeResources = (this && this.__disposeResources) || (function (SuppressedError) {
136
+ return function (env) {
137
+ function fail(e) {
138
+ env.error = env.hasError ? new SuppressedError(e, env.error, "An error was suppressed during disposal.") : e;
139
+ env.hasError = true;
140
+ }
141
+ var r, s = 0;
142
+ function next() {
143
+ while (r = env.stack.pop()) {
144
+ try {
145
+ if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);
146
+ if (r.dispose) {
147
+ var result = r.dispose.call(r.value);
148
+ if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });
149
+ }
150
+ else s |= 1;
151
+ }
152
+ catch (e) {
153
+ fail(e);
154
+ }
155
+ }
156
+ if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();
157
+ if (env.hasError) throw env.error;
158
+ }
159
+ return next();
160
+ };
161
+ })(typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
162
+ var e = new Error(message);
163
+ return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
164
+ });`, noPriority, [], '__disposeResources', '');
@@ -0,0 +1,41 @@
1
+ import { type Node, SourceFile } from '../ast.js';
2
+ import type { EmitContext } from './emit-context.js';
3
+ /** Where to look for name conflicts outside generated names. */
4
+ export declare abstract class NameGeneratorHost {
5
+ /** The text of an identifier, private identifier or literal as printed. */
6
+ abstract getTextOfNode(node: Node): string;
7
+ /** Whether no identifier in the file (or global scope) has this name. */
8
+ abstract isFileLevelUniqueName(name: string): boolean;
9
+ }
10
+ export declare class NameGenerator {
11
+ readonly context: EmitContext;
12
+ readonly host: NameGeneratorHost;
13
+ private readonly nodeNames;
14
+ private readonly privateNodeNames;
15
+ private readonly autoGeneratedNames;
16
+ private scope;
17
+ private privateScope;
18
+ private readonly generatedNames;
19
+ constructor(context: EmitContext, host: NameGeneratorHost);
20
+ pushScope(reuseTempVariableScope: boolean): boolean;
21
+ popScope(reuseTempVariableScope: boolean): boolean;
22
+ private ensureScope;
23
+ private getTempFlags;
24
+ private setTempFlags;
25
+ private reserveName;
26
+ /** The text of a name: generated if it has auto-generate info, else its own text. */
27
+ generateName(name: Node): string;
28
+ private generateNameForNodeCached;
29
+ private generateNameForNode;
30
+ private makeName;
31
+ private makeTempVariableName;
32
+ private makeUniqueName;
33
+ makeFileLevelOptimisticUniqueName(name: string): string;
34
+ private checkUniqueName;
35
+ private isUniqueName;
36
+ private isReservedName;
37
+ }
38
+ /** Forgets the files of earlier emits. */
39
+ export declare function forgetIdentifierSets(): void;
40
+ /** Whether no identifier in `file` is named `name`. */
41
+ export declare function isFileLevelUniqueName(file: SourceFile, name: string): boolean;
@@ -0,0 +1,283 @@
1
+ // Chooses the text of generated identifiers (`_a`, `_i`, `name_1`, …) while printing.
2
+ import { ClassExpression, ExportAssignment, PrivateIdentifier, StringLiteral, getLocals, getNextContainer, getText, isLocalsContainer, } from '../ast.js';
3
+ import { getName } from '../ast.js';
4
+ import { getExternalModuleName } from '../ast-utilities.js';
5
+ import { ensureLeadingHash, formatGeneratedName, makeIdentifierFromModuleName, removeLeadingHash, } from './utilities.js';
6
+ class NameScope {
7
+ next;
8
+ tempFlags;
9
+ formattedNameTempFlags;
10
+ reservedNames;
11
+ constructor(next) {
12
+ this.next = next;
13
+ this.tempFlags = 0 /* TempFlags.Auto */;
14
+ this.formattedNameTempFlags = undefined;
15
+ this.reservedNames = undefined;
16
+ }
17
+ }
18
+ /** Where to look for name conflicts outside generated names. */
19
+ export class NameGeneratorHost {
20
+ }
21
+ /** Whether no value declared in `container` or its nested containers has `name`, from the binder's locals. */
22
+ function isUniqueLocalName(name, container) {
23
+ for (let node = container; node !== undefined && isLocalsContainer(node); node = getNextContainer(node)) {
24
+ if (!isDescendantOf(node, container))
25
+ break;
26
+ const locals = getLocals(node);
27
+ const local = locals === undefined ? undefined : locals.get(name);
28
+ if (local !== undefined && (local.flags & (111551 /* SymbolFlags.Value */ | 1048576 /* SymbolFlags.ExportValue */ | 2097152 /* SymbolFlags.Alias */)) !== 0)
29
+ return false;
30
+ }
31
+ return true;
32
+ }
33
+ function isDescendantOf(node, ancestor) {
34
+ for (let current = node; current !== undefined; current = current.parent)
35
+ if (current === ancestor)
36
+ return true;
37
+ return false;
38
+ }
39
+ export class NameGenerator {
40
+ context;
41
+ host;
42
+ nodeNames;
43
+ privateNodeNames;
44
+ autoGeneratedNames;
45
+ scope;
46
+ privateScope;
47
+ generatedNames;
48
+ constructor(context, host) {
49
+ this.context = context;
50
+ this.host = host;
51
+ this.nodeNames = new Map();
52
+ this.privateNodeNames = new Map();
53
+ this.autoGeneratedNames = new Map();
54
+ this.scope = undefined;
55
+ this.privateScope = undefined;
56
+ this.generatedNames = new Set();
57
+ }
58
+ pushScope(reuseTempVariableScope) {
59
+ this.privateScope = new NameScope(this.privateScope);
60
+ if (!reuseTempVariableScope)
61
+ this.scope = new NameScope(this.scope);
62
+ return true;
63
+ }
64
+ popScope(reuseTempVariableScope) {
65
+ if (this.privateScope !== undefined)
66
+ this.privateScope = this.privateScope.next;
67
+ if (!reuseTempVariableScope && this.scope !== undefined)
68
+ this.scope = this.scope.next;
69
+ return true;
70
+ }
71
+ ensureScope(privateName) {
72
+ if (privateName) {
73
+ if (this.privateScope === undefined)
74
+ this.privateScope = new NameScope(undefined);
75
+ return this.privateScope;
76
+ }
77
+ if (this.scope === undefined)
78
+ this.scope = new NameScope(undefined);
79
+ return this.scope;
80
+ }
81
+ getTempFlags(privateName, key) {
82
+ const scope = privateName ? this.privateScope : this.scope;
83
+ if (scope === undefined)
84
+ return 0 /* TempFlags.Auto */;
85
+ if (key.length === 0)
86
+ return scope.tempFlags;
87
+ const flags = scope.formattedNameTempFlags === undefined ? undefined : scope.formattedNameTempFlags.get(key);
88
+ return flags === undefined ? 0 /* TempFlags.Auto */ : flags;
89
+ }
90
+ setTempFlags(privateName, key, flags) {
91
+ const scope = this.ensureScope(privateName);
92
+ if (key.length === 0)
93
+ scope.tempFlags = flags;
94
+ else {
95
+ if (scope.formattedNameTempFlags === undefined)
96
+ scope.formattedNameTempFlags = new Map();
97
+ scope.formattedNameTempFlags.set(key, flags);
98
+ }
99
+ return true;
100
+ }
101
+ reserveName(name, privateName, scoped, temp) {
102
+ const scope = this.ensureScope(privateName);
103
+ if (privateName || scoped) {
104
+ if (scope.reservedNames === undefined)
105
+ scope.reservedNames = new Set();
106
+ scope.reservedNames.add(name);
107
+ }
108
+ else if (!temp)
109
+ this.generatedNames.add(name);
110
+ return true;
111
+ }
112
+ /** The text of a name: generated if it has auto-generate info, else its own text. */
113
+ generateName(name) {
114
+ const info = this.context.autoGenerate.get(name);
115
+ if (info === undefined)
116
+ return this.host.getTextOfNode(name);
117
+ if ((info.flags & 7 /* GeneratedIdentifierFlags.KindMask */) === 4 /* GeneratedIdentifierFlags.Node */)
118
+ return this.generateNameForNodeCached(this.context.getNodeForGeneratedName(name), name instanceof PrivateIdentifier, info.flags, info.prefix, info.suffix);
119
+ const cached = this.autoGeneratedNames.get(info.id);
120
+ if (cached !== undefined)
121
+ return cached;
122
+ const generated = this.makeName(name);
123
+ this.autoGeneratedNames.set(info.id, generated);
124
+ return generated;
125
+ }
126
+ generateNameForNodeCached(node, privateName, flags, prefix, suffix) {
127
+ const cache = privateName ? this.privateNodeNames : this.nodeNames;
128
+ const cached = cache.get(node);
129
+ if (cached !== undefined)
130
+ return cached;
131
+ const name = this.generateNameForNode(node, privateName, flags, prefix, suffix);
132
+ cache.set(node, name);
133
+ return name;
134
+ }
135
+ generateNameForNode(node, privateName, flags, prefix, suffix) {
136
+ switch (node.kind) {
137
+ case 79 /* SyntaxKind.Identifier */:
138
+ case 80 /* SyntaxKind.PrivateIdentifier */:
139
+ return this.makeUniqueName(this.host.getTextOfNode(node), false, (flags & 16 /* GeneratedIdentifierFlags.Optimistic */) !== 0, (flags & 8 /* GeneratedIdentifierFlags.ReservedInNestedScopes */) !== 0, privateName, prefix, suffix);
140
+ case 268 /* SyntaxKind.ModuleDeclaration */:
141
+ case 267 /* SyntaxKind.EnumDeclaration */: {
142
+ const name = this.host.getTextOfNode(getName(node));
143
+ if (isUniqueLocalName(name, node))
144
+ return name;
145
+ return this.makeUniqueName(name, false, false, false, false, '', '');
146
+ }
147
+ case 273 /* SyntaxKind.ImportDeclaration */:
148
+ case 346 /* SyntaxKind.JSImportDeclaration */:
149
+ case 279 /* SyntaxKind.ExportDeclaration */: {
150
+ const specifier = getExternalModuleName(node);
151
+ const base = specifier instanceof StringLiteral ? makeIdentifierFromModuleName(specifier.text) : 'module';
152
+ return this.makeUniqueName(base, false, false, false, false, '', '');
153
+ }
154
+ case 263 /* SyntaxKind.FunctionDeclaration */:
155
+ case 264 /* SyntaxKind.ClassDeclaration */: {
156
+ const name = getName(node);
157
+ if (name !== undefined)
158
+ return this.generateNameForNode(name, false, flags, '', '');
159
+ return this.makeUniqueName('default', false, false, false, false, '', '');
160
+ }
161
+ case 278 /* SyntaxKind.ExportAssignment */:
162
+ if (node instanceof ExportAssignment)
163
+ return this.makeUniqueName('default', false, false, false, false, '', '');
164
+ break;
165
+ case 232 /* SyntaxKind.ClassExpression */:
166
+ if (node instanceof ClassExpression)
167
+ return this.makeUniqueName('class', false, false, false, false, '', '');
168
+ break;
169
+ case 175 /* SyntaxKind.MethodDeclaration */:
170
+ case 178 /* SyntaxKind.GetAccessor */:
171
+ case 179 /* SyntaxKind.SetAccessor */: {
172
+ const name = getName(node);
173
+ if (name !== undefined && name.kind === 79 /* SyntaxKind.Identifier */)
174
+ return this.generateNameForNodeCached(name, privateName, 0 /* GeneratedIdentifierFlags.None */, prefix, suffix);
175
+ return this.makeTempVariableName(0 /* TempFlags.Auto */, false, privateName, prefix, suffix);
176
+ }
177
+ case 168 /* SyntaxKind.ComputedPropertyName */:
178
+ return this.makeTempVariableName(0 /* TempFlags.Auto */, true, privateName, prefix, suffix);
179
+ }
180
+ return this.makeTempVariableName(0 /* TempFlags.Auto */, false, privateName, prefix, suffix);
181
+ }
182
+ makeName(name) {
183
+ const info = this.context.autoGenerate.get(name);
184
+ if (info !== undefined) {
185
+ const reserved = (info.flags & 8 /* GeneratedIdentifierFlags.ReservedInNestedScopes */) !== 0;
186
+ switch (info.flags & 7 /* GeneratedIdentifierFlags.KindMask */) {
187
+ case 1 /* GeneratedIdentifierFlags.Auto */:
188
+ return this.makeTempVariableName(0 /* TempFlags.Auto */, reserved, name instanceof PrivateIdentifier, info.prefix, info.suffix);
189
+ case 2 /* GeneratedIdentifierFlags.Loop */:
190
+ return this.makeTempVariableName(268435456 /* TempFlags.I */, reserved, false, info.prefix, info.suffix);
191
+ case 3 /* GeneratedIdentifierFlags.Unique */:
192
+ return this.makeUniqueName(getText(name), (info.flags & 32 /* GeneratedIdentifierFlags.FileLevel */) !== 0, (info.flags & 16 /* GeneratedIdentifierFlags.Optimistic */) !== 0, reserved, name instanceof PrivateIdentifier, info.prefix, info.suffix);
193
+ }
194
+ }
195
+ return this.host.getTextOfNode(name);
196
+ }
197
+ makeTempVariableName(flags, reservedInNestedScopes, privateName, prefix, suffix) {
198
+ const simple = prefix.length === 0 && suffix.length === 0;
199
+ let key = '';
200
+ if (!simple) {
201
+ key = formatGeneratedName(privateName, prefix, '', suffix);
202
+ if (privateName)
203
+ key = ensureLeadingHash(key);
204
+ }
205
+ let tempFlags = this.getTempFlags(privateName, key);
206
+ if (flags !== 0 && (tempFlags & flags) === 0) {
207
+ const fullName = formatGeneratedName(privateName, prefix, '_i', suffix);
208
+ if (this.isUniqueName(fullName, privateName)) {
209
+ tempFlags |= flags;
210
+ this.reserveName(fullName, privateName, reservedInNestedScopes, true);
211
+ this.setTempFlags(privateName, key, tempFlags);
212
+ return fullName;
213
+ }
214
+ }
215
+ for (;;) {
216
+ const count = tempFlags & 268435455 /* TempFlags.CountMask */;
217
+ tempFlags++;
218
+ // Skip `_i` and `_n`.
219
+ if (count !== 8 && count !== 13) {
220
+ const name = count < 26 ? '_' + String.fromCharCode(0x61 + count) : '_' + (count - 26);
221
+ const fullName = formatGeneratedName(privateName, prefix, name, suffix);
222
+ if (this.isUniqueName(fullName, privateName)) {
223
+ this.reserveName(fullName, privateName, reservedInNestedScopes, true);
224
+ this.setTempFlags(privateName, key, tempFlags);
225
+ return fullName;
226
+ }
227
+ }
228
+ }
229
+ }
230
+ makeUniqueName(baseName, fileLevel, optimistic, scoped, privateName, prefix, suffix) {
231
+ baseName = removeLeadingHash(baseName);
232
+ if (optimistic) {
233
+ const fullName = formatGeneratedName(privateName, prefix, baseName, suffix);
234
+ if (this.checkUniqueName(fullName, privateName, fileLevel)) {
235
+ this.reserveName(fullName, privateName, scoped, false);
236
+ return fullName;
237
+ }
238
+ }
239
+ if (baseName.length > 0 && baseName.charCodeAt(baseName.length - 1) !== 0x5f)
240
+ baseName += '_';
241
+ for (let i = 1;; i++) {
242
+ const fullName = formatGeneratedName(privateName, prefix, baseName + i, suffix);
243
+ if (this.checkUniqueName(fullName, privateName, fileLevel)) {
244
+ this.reserveName(fullName, privateName, scoped, false);
245
+ return fullName;
246
+ }
247
+ }
248
+ }
249
+ makeFileLevelOptimisticUniqueName(name) {
250
+ return this.makeUniqueName(name, true, true, false, false, '', '');
251
+ }
252
+ checkUniqueName(name, privateName, fileLevel) {
253
+ return fileLevel ? this.host.isFileLevelUniqueName(name) : this.isUniqueName(name, privateName);
254
+ }
255
+ isUniqueName(name, privateName) {
256
+ return this.host.isFileLevelUniqueName(name) && !this.isReservedName(name, privateName);
257
+ }
258
+ isReservedName(name, privateName) {
259
+ if (this.generatedNames.has(name))
260
+ return true;
261
+ for (let scope = privateName ? this.privateScope : this.scope; scope !== undefined; scope = scope.next)
262
+ if (scope.reservedNames !== undefined && scope.reservedNames.has(name))
263
+ return true;
264
+ return false;
265
+ }
266
+ }
267
+ // The names used in recently emitted files, kept apart from the files, which are shared and read-only.
268
+ const identifierSets = new Map();
269
+ /** Forgets the files of earlier emits. */
270
+ export function forgetIdentifierSets() {
271
+ identifierSets.clear();
272
+ }
273
+ /** Whether no identifier in `file` is named `name`. */
274
+ export function isFileLevelUniqueName(file, name) {
275
+ let set = identifierSets.get(file);
276
+ if (set === undefined) {
277
+ if (identifierSets.size >= 16)
278
+ identifierSets.clear();
279
+ set = new Set(file.identifierTexts);
280
+ identifierSets.set(file, set);
281
+ }
282
+ return !set.has(name);
283
+ }