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.
- package/README.md +33 -1
- package/dist/api/compiler/ast-utilities.d.ts +82 -0
- package/dist/api/compiler/ast-utilities.js +462 -0
- package/dist/api/compiler/ast.d.ts +2350 -0
- package/dist/api/compiler/ast.js +11206 -0
- package/dist/api/compiler/astnav.d.ts +37 -0
- package/dist/api/compiler/astnav.js +767 -0
- package/dist/api/compiler/binder-utilities.d.ts +182 -0
- package/dist/api/compiler/binder-utilities.js +1240 -0
- package/dist/api/compiler/binder.d.ts +33 -0
- package/dist/api/compiler/binder.js +2358 -0
- package/dist/api/compiler/character-codes.d.ts +161 -0
- package/dist/api/compiler/character-codes.js +160 -0
- package/dist/api/compiler/checker-calls.d.ts +46 -0
- package/dist/api/compiler/checker-calls.js +1640 -0
- package/dist/api/compiler/checker-classes.d.ts +30 -0
- package/dist/api/compiler/checker-classes.js +582 -0
- package/dist/api/compiler/checker-contextual.d.ts +77 -0
- package/dist/api/compiler/checker-contextual.js +1136 -0
- package/dist/api/compiler/checker-declaration-order.d.ts +12 -0
- package/dist/api/compiler/checker-declaration-order.js +356 -0
- package/dist/api/compiler/checker-declarations.d.ts +33 -0
- package/dist/api/compiler/checker-declarations.js +888 -0
- package/dist/api/compiler/checker-declared-types.d.ts +48 -0
- package/dist/api/compiler/checker-declared-types.js +787 -0
- package/dist/api/compiler/checker-decorators.d.ts +26 -0
- package/dist/api/compiler/checker-decorators.js +562 -0
- package/dist/api/compiler/checker-deprecation.d.ts +33 -0
- package/dist/api/compiler/checker-deprecation.js +315 -0
- package/dist/api/compiler/checker-destructuring.d.ts +34 -0
- package/dist/api/compiler/checker-destructuring.js +584 -0
- package/dist/api/compiler/checker-elaboration.d.ts +15 -0
- package/dist/api/compiler/checker-elaboration.js +290 -0
- package/dist/api/compiler/checker-emit-helpers.d.ts +58 -0
- package/dist/api/compiler/checker-emit-helpers.js +154 -0
- package/dist/api/compiler/checker-emit-resolver.d.ts +75 -0
- package/dist/api/compiler/checker-emit-resolver.js +579 -0
- package/dist/api/compiler/checker-evaluator.d.ts +27 -0
- package/dist/api/compiler/checker-evaluator.js +188 -0
- package/dist/api/compiler/checker-expressions.d.ts +67 -0
- package/dist/api/compiler/checker-expressions.js +1351 -0
- package/dist/api/compiler/checker-features.d.ts +6 -0
- package/dist/api/compiler/checker-features.js +354 -0
- package/dist/api/compiler/checker-flow.d.ts +86 -0
- package/dist/api/compiler/checker-flow.js +169 -0
- package/dist/api/compiler/checker-functions.d.ts +43 -0
- package/dist/api/compiler/checker-functions.js +1002 -0
- package/dist/api/compiler/checker-generated-code.d.ts +25 -0
- package/dist/api/compiler/checker-generated-code.js +168 -0
- package/dist/api/compiler/checker-globals.d.ts +14 -0
- package/dist/api/compiler/checker-globals.js +37 -0
- package/dist/api/compiler/checker-grammar.d.ts +35 -0
- package/dist/api/compiler/checker-grammar.js +2573 -0
- package/dist/api/compiler/checker-heritage.d.ts +28 -0
- package/dist/api/compiler/checker-heritage.js +900 -0
- package/dist/api/compiler/checker-inference.d.ts +179 -0
- package/dist/api/compiler/checker-inference.js +2105 -0
- package/dist/api/compiler/checker-iteration.d.ts +115 -0
- package/dist/api/compiler/checker-iteration.js +857 -0
- package/dist/api/compiler/checker-javascript.d.ts +42 -0
- package/dist/api/compiler/checker-javascript.js +441 -0
- package/dist/api/compiler/checker-jsdoc.d.ts +30 -0
- package/dist/api/compiler/checker-jsdoc.js +320 -0
- package/dist/api/compiler/checker-jsx.d.ts +94 -0
- package/dist/api/compiler/checker-jsx.js +1433 -0
- package/dist/api/compiler/checker-literals.d.ts +6 -0
- package/dist/api/compiler/checker-literals.js +43 -0
- package/dist/api/compiler/checker-members.d.ts +198 -0
- package/dist/api/compiler/checker-members.js +2126 -0
- package/dist/api/compiler/checker-modules.d.ts +85 -0
- package/dist/api/compiler/checker-modules.js +2141 -0
- package/dist/api/compiler/checker-narrowing.d.ts +120 -0
- package/dist/api/compiler/checker-narrowing.js +2797 -0
- package/dist/api/compiler/checker-object-literals.d.ts +14 -0
- package/dist/api/compiler/checker-object-literals.js +479 -0
- package/dist/api/compiler/checker-operators.d.ts +33 -0
- package/dist/api/compiler/checker-operators.js +1040 -0
- package/dist/api/compiler/checker-overloads.d.ts +7 -0
- package/dist/api/compiler/checker-overloads.js +270 -0
- package/dist/api/compiler/checker-property-access.d.ts +34 -0
- package/dist/api/compiler/checker-property-access.js +672 -0
- package/dist/api/compiler/checker-services.d.ts +49 -0
- package/dist/api/compiler/checker-services.js +995 -0
- package/dist/api/compiler/checker-signatures.d.ts +55 -0
- package/dist/api/compiler/checker-signatures.js +788 -0
- package/dist/api/compiler/checker-source-file.d.ts +27 -0
- package/dist/api/compiler/checker-source-file.js +619 -0
- package/dist/api/compiler/checker-statements.d.ts +18 -0
- package/dist/api/compiler/checker-statements.js +226 -0
- package/dist/api/compiler/checker-super.d.ts +13 -0
- package/dist/api/compiler/checker-super.js +241 -0
- package/dist/api/compiler/checker-symbol-types.d.ts +67 -0
- package/dist/api/compiler/checker-symbol-types.js +1885 -0
- package/dist/api/compiler/checker-symbols.d.ts +181 -0
- package/dist/api/compiler/checker-symbols.js +1782 -0
- package/dist/api/compiler/checker-type-factory.d.ts +142 -0
- package/dist/api/compiler/checker-type-factory.js +2501 -0
- package/dist/api/compiler/checker-type-nodes.d.ts +26 -0
- package/dist/api/compiler/checker-type-nodes.js +828 -0
- package/dist/api/compiler/checker-type-operators.d.ts +109 -0
- package/dist/api/compiler/checker-type-operators.js +1842 -0
- package/dist/api/compiler/checker-types.d.ts +1027 -0
- package/dist/api/compiler/checker-types.js +1697 -0
- package/dist/api/compiler/checker-unused.d.ts +19 -0
- package/dist/api/compiler/checker-unused.js +524 -0
- package/dist/api/compiler/checker-utilities.d.ts +33 -0
- package/dist/api/compiler/checker-utilities.js +141 -0
- package/dist/api/compiler/checker.d.ts +491 -0
- package/dist/api/compiler/checker.js +912 -0
- package/dist/api/compiler/command-line.d.ts +32 -0
- package/dist/api/compiler/command-line.js +383 -0
- package/dist/api/compiler/compile-program.d.ts +118 -0
- package/dist/api/compiler/compile-program.js +384 -0
- package/dist/api/compiler/diagnostic-locales.d.ts +22 -0
- package/dist/api/compiler/diagnostic-locales.js +64 -0
- package/dist/api/compiler/diagnostic-messages.d.ts +2166 -0
- package/dist/api/compiler/diagnostic-messages.js +184 -0
- package/dist/api/compiler/diagnostics.d.ts +167 -0
- package/dist/api/compiler/diagnostics.js +820 -0
- package/dist/api/compiler/emitter.d.ts +71 -0
- package/dist/api/compiler/emitter.js +327 -0
- package/dist/api/compiler/file-include.d.ts +117 -0
- package/dist/api/compiler/file-include.js +536 -0
- package/dist/api/compiler/file-loader.d.ts +261 -0
- package/dist/api/compiler/file-loader.js +1257 -0
- package/dist/api/compiler/file-system.d.ts +51 -0
- package/dist/api/compiler/file-system.js +132 -0
- package/dist/api/compiler/flow.d.ts +60 -0
- package/dist/api/compiler/flow.js +45 -0
- package/dist/api/compiler/instantiation.d.ts +74 -0
- package/dist/api/compiler/instantiation.js +799 -0
- package/dist/api/compiler/jsdoc.d.ts +75 -0
- package/dist/api/compiler/jsdoc.js +1229 -0
- package/dist/api/compiler/link-tables.d.ts +36 -0
- package/dist/api/compiler/link-tables.js +83 -0
- package/dist/api/compiler/locale-data.d.ts +24 -0
- package/dist/api/compiler/locale-data.js +183 -0
- package/dist/api/compiler/locale.d.ts +4 -0
- package/dist/api/compiler/locale.js +317 -0
- package/dist/api/compiler/locales/cs-CZ.d.ts +2 -0
- package/dist/api/compiler/locales/cs-CZ.js +3 -0
- package/dist/api/compiler/locales/de-DE.d.ts +2 -0
- package/dist/api/compiler/locales/de-DE.js +3 -0
- package/dist/api/compiler/locales/es-ES.d.ts +2 -0
- package/dist/api/compiler/locales/es-ES.js +3 -0
- package/dist/api/compiler/locales/fr-FR.d.ts +2 -0
- package/dist/api/compiler/locales/fr-FR.js +3 -0
- package/dist/api/compiler/locales/it-IT.d.ts +2 -0
- package/dist/api/compiler/locales/it-IT.js +3 -0
- package/dist/api/compiler/locales/ja-JP.d.ts +2 -0
- package/dist/api/compiler/locales/ja-JP.js +3 -0
- package/dist/api/compiler/locales/ko-KR.d.ts +2 -0
- package/dist/api/compiler/locales/ko-KR.js +3 -0
- package/dist/api/compiler/locales/pl-PL.d.ts +2 -0
- package/dist/api/compiler/locales/pl-PL.js +3 -0
- package/dist/api/compiler/locales/pt-BR.d.ts +2 -0
- package/dist/api/compiler/locales/pt-BR.js +3 -0
- package/dist/api/compiler/locales/ru-RU.d.ts +2 -0
- package/dist/api/compiler/locales/ru-RU.js +3 -0
- package/dist/api/compiler/locales/tr-TR.d.ts +2 -0
- package/dist/api/compiler/locales/tr-TR.js +3 -0
- package/dist/api/compiler/locales/zh-CN.d.ts +2 -0
- package/dist/api/compiler/locales/zh-CN.js +3 -0
- package/dist/api/compiler/locales/zh-TW.d.ts +2 -0
- package/dist/api/compiler/locales/zh-TW.js +3 -0
- package/dist/api/compiler/module-resolution-types.d.ts +83 -0
- package/dist/api/compiler/module-resolution-types.js +176 -0
- package/dist/api/compiler/module-resolution.d.ts +71 -0
- package/dist/api/compiler/module-resolution.js +1598 -0
- package/dist/api/compiler/module-specifiers.d.ts +64 -0
- package/dist/api/compiler/module-specifiers.js +1101 -0
- package/dist/api/compiler/name-resolver.d.ts +43 -0
- package/dist/api/compiler/name-resolver.js +509 -0
- package/dist/api/compiler/node-builder-names.d.ts +32 -0
- package/dist/api/compiler/node-builder-names.js +854 -0
- package/dist/api/compiler/node-builder-pseudo.d.ts +36 -0
- package/dist/api/compiler/node-builder-pseudo.js +744 -0
- package/dist/api/compiler/node-builder-reuse.d.ts +4 -0
- package/dist/api/compiler/node-builder-reuse.js +647 -0
- package/dist/api/compiler/node-builder.d.ts +270 -0
- package/dist/api/compiler/node-builder.js +2645 -0
- package/dist/api/compiler/option-declarations.d.ts +90 -0
- package/dist/api/compiler/option-declarations.js +1460 -0
- package/dist/api/compiler/options.d.ts +289 -0
- package/dist/api/compiler/options.js +1197 -0
- package/dist/api/compiler/output-paths.d.ts +42 -0
- package/dist/api/compiler/output-paths.js +195 -0
- package/dist/api/compiler/package-json.d.ts +175 -0
- package/dist/api/compiler/package-json.js +1015 -0
- package/dist/api/compiler/parallel-parse.d.ts +219 -0
- package/dist/api/compiler/parallel-parse.js +537 -0
- package/dist/api/compiler/parser.d.ts +587 -0
- package/dist/api/compiler/parser.js +6407 -0
- package/dist/api/compiler/path.d.ts +91 -0
- package/dist/api/compiler/path.js +705 -0
- package/dist/api/compiler/printer/async-helpers.d.ts +22 -0
- package/dist/api/compiler/printer/async-helpers.js +91 -0
- package/dist/api/compiler/printer/auto-generate.d.ts +13 -0
- package/dist/api/compiler/printer/auto-generate.js +20 -0
- package/dist/api/compiler/printer/decorator-helpers.d.ts +24 -0
- package/dist/api/compiler/printer/decorator-helpers.js +118 -0
- package/dist/api/compiler/printer/emit-context.d.ts +154 -0
- package/dist/api/compiler/printer/emit-context.js +576 -0
- package/dist/api/compiler/printer/emit-flags.d.ts +60 -0
- package/dist/api/compiler/printer/emit-flags.js +2 -0
- package/dist/api/compiler/printer/factory-base.d.ts +171 -0
- package/dist/api/compiler/printer/factory-base.js +1505 -0
- package/dist/api/compiler/printer/factory.d.ts +147 -0
- package/dist/api/compiler/printer/factory.js +542 -0
- package/dist/api/compiler/printer/helpers.d.ts +27 -0
- package/dist/api/compiler/printer/helpers.js +164 -0
- package/dist/api/compiler/printer/name-generator.d.ts +41 -0
- package/dist/api/compiler/printer/name-generator.js +283 -0
- package/dist/api/compiler/printer/printer.d.ts +411 -0
- package/dist/api/compiler/printer/printer.js +4517 -0
- package/dist/api/compiler/printer/text-writer.d.ts +46 -0
- package/dist/api/compiler/printer/text-writer.js +172 -0
- package/dist/api/compiler/printer/utilities.d.ts +82 -0
- package/dist/api/compiler/printer/utilities.js +817 -0
- package/dist/api/compiler/program-checker.d.ts +156 -0
- package/dist/api/compiler/program-checker.js +526 -0
- package/dist/api/compiler/program-utilities.d.ts +52 -0
- package/dist/api/compiler/program-utilities.js +365 -0
- package/dist/api/compiler/program.d.ts +180 -0
- package/dist/api/compiler/program.js +1011 -0
- package/dist/api/compiler/pseudo-bigint.d.ts +5 -0
- package/dist/api/compiler/pseudo-bigint.js +61 -0
- package/dist/api/compiler/regexp-checker.d.ts +38 -0
- package/dist/api/compiler/regexp-checker.js +942 -0
- package/dist/api/compiler/relations.d.ts +263 -0
- package/dist/api/compiler/relations.js +4002 -0
- package/dist/api/compiler/reparser.d.ts +48 -0
- package/dist/api/compiler/reparser.js +1323 -0
- package/dist/api/compiler/scanner.d.ts +256 -0
- package/dist/api/compiler/scanner.js +2853 -0
- package/dist/api/compiler/side-state.d.ts +16 -0
- package/dist/api/compiler/side-state.js +89 -0
- package/dist/api/compiler/sourcemap.d.ts +55 -0
- package/dist/api/compiler/sourcemap.js +340 -0
- package/dist/api/compiler/spelling.d.ts +14 -0
- package/dist/api/compiler/spelling.js +128 -0
- package/dist/api/compiler/symbol-accessibility.d.ts +57 -0
- package/dist/api/compiler/symbol-accessibility.js +894 -0
- package/dist/api/compiler/symbol.d.ts +240 -0
- package/dist/api/compiler/symbol.js +228 -0
- package/dist/api/compiler/symlinks.d.ts +32 -0
- package/dist/api/compiler/symlinks.js +114 -0
- package/dist/api/compiler/syntax-kind.d.ts +389 -0
- package/dist/api/compiler/syntax-kind.js +2 -0
- package/dist/api/compiler/timeline.d.ts +9 -0
- package/dist/api/compiler/timeline.js +54 -0
- package/dist/api/compiler/transformers/alias-references.d.ts +39 -0
- package/dist/api/compiler/transformers/alias-references.js +676 -0
- package/dist/api/compiler/transformers/async-utilities.d.ts +51 -0
- package/dist/api/compiler/transformers/async-utilities.js +260 -0
- package/dist/api/compiler/transformers/async.d.ts +53 -0
- package/dist/api/compiler/transformers/async.js +645 -0
- package/dist/api/compiler/transformers/class-fields.d.ts +206 -0
- package/dist/api/compiler/transformers/class-fields.js +2418 -0
- package/dist/api/compiler/transformers/class-utilities.d.ts +46 -0
- package/dist/api/compiler/transformers/class-utilities.js +261 -0
- package/dist/api/compiler/transformers/commonjs-module.d.ts +103 -0
- package/dist/api/compiler/transformers/commonjs-module.js +1180 -0
- package/dist/api/compiler/transformers/const-enum-inliner.d.ts +11 -0
- package/dist/api/compiler/transformers/const-enum-inliner.js +36 -0
- package/dist/api/compiler/transformers/declarations-diagnostics.d.ts +52 -0
- package/dist/api/compiler/transformers/declarations-diagnostics.js +538 -0
- package/dist/api/compiler/transformers/declarations-pseudo.d.ts +160 -0
- package/dist/api/compiler/transformers/declarations-pseudo.js +797 -0
- package/dist/api/compiler/transformers/declarations-resolver.d.ts +152 -0
- package/dist/api/compiler/transformers/declarations-resolver.js +35 -0
- package/dist/api/compiler/transformers/declarations-syntactic.d.ts +119 -0
- package/dist/api/compiler/transformers/declarations-syntactic.js +1582 -0
- package/dist/api/compiler/transformers/declarations-tracker.d.ts +46 -0
- package/dist/api/compiler/transformers/declarations-tracker.js +197 -0
- package/dist/api/compiler/transformers/declarations.d.ts +175 -0
- package/dist/api/compiler/transformers/declarations.js +2380 -0
- package/dist/api/compiler/transformers/decorator-metadata.d.ts +54 -0
- package/dist/api/compiler/transformers/decorator-metadata.js +554 -0
- package/dist/api/compiler/transformers/decorator-utilities.d.ts +38 -0
- package/dist/api/compiler/transformers/decorator-utilities.js +238 -0
- package/dist/api/compiler/transformers/destructuring.d.ts +25 -0
- package/dist/api/compiler/transformers/destructuring.js +626 -0
- package/dist/api/compiler/transformers/downlevel.d.ts +6 -0
- package/dist/api/compiler/transformers/downlevel.js +45 -0
- package/dist/api/compiler/transformers/emit-resolver.d.ts +61 -0
- package/dist/api/compiler/transformers/emit-resolver.js +197 -0
- package/dist/api/compiler/transformers/es-decorators.d.ts +118 -0
- package/dist/api/compiler/transformers/es-decorators.js +1901 -0
- package/dist/api/compiler/transformers/exponentiation.d.ts +11 -0
- package/dist/api/compiler/transformers/exponentiation.js +76 -0
- package/dist/api/compiler/transformers/external-module-info.d.ts +35 -0
- package/dist/api/compiler/transformers/external-module-info.js +351 -0
- package/dist/api/compiler/transformers/for-await.d.ts +43 -0
- package/dist/api/compiler/transformers/for-await.js +469 -0
- package/dist/api/compiler/transformers/import-elision.d.ts +16 -0
- package/dist/api/compiler/transformers/import-elision.js +124 -0
- package/dist/api/compiler/transformers/jsx-entities.d.ts +1 -0
- package/dist/api/compiler/transformers/jsx-entities.js +256 -0
- package/dist/api/compiler/transformers/jsx.d.ts +71 -0
- package/dist/api/compiler/transformers/jsx.js +700 -0
- package/dist/api/compiler/transformers/legacy-decorators.d.ts +56 -0
- package/dist/api/compiler/transformers/legacy-decorators.js +564 -0
- package/dist/api/compiler/transformers/logical-assignment.d.ts +14 -0
- package/dist/api/compiler/transformers/logical-assignment.js +62 -0
- package/dist/api/compiler/transformers/module-utilities.d.ts +9 -0
- package/dist/api/compiler/transformers/module-utilities.js +36 -0
- package/dist/api/compiler/transformers/module.d.ts +49 -0
- package/dist/api/compiler/transformers/module.js +296 -0
- package/dist/api/compiler/transformers/named-evaluation.d.ts +26 -0
- package/dist/api/compiler/transformers/named-evaluation.js +266 -0
- package/dist/api/compiler/transformers/nullish-coalescing.d.ts +9 -0
- package/dist/api/compiler/transformers/nullish-coalescing.js +26 -0
- package/dist/api/compiler/transformers/object-rest-spread.d.ts +34 -0
- package/dist/api/compiler/transformers/object-rest-spread.js +411 -0
- package/dist/api/compiler/transformers/optional-catch.d.ts +9 -0
- package/dist/api/compiler/transformers/optional-catch.js +20 -0
- package/dist/api/compiler/transformers/optional-chain.d.ts +14 -0
- package/dist/api/compiler/transformers/optional-chain.js +188 -0
- package/dist/api/compiler/transformers/reference-resolver.d.ts +128 -0
- package/dist/api/compiler/transformers/reference-resolver.js +1155 -0
- package/dist/api/compiler/transformers/runtime-syntax.d.ts +71 -0
- package/dist/api/compiler/transformers/runtime-syntax.js +753 -0
- package/dist/api/compiler/transformers/subtree-facts.d.ts +9 -0
- package/dist/api/compiler/transformers/subtree-facts.js +203 -0
- package/dist/api/compiler/transformers/syntax-facts.d.ts +51 -0
- package/dist/api/compiler/transformers/syntax-facts.js +254 -0
- package/dist/api/compiler/transformers/tagged-template.d.ts +17 -0
- package/dist/api/compiler/transformers/tagged-template.js +148 -0
- package/dist/api/compiler/transformers/transformer.d.ts +17 -0
- package/dist/api/compiler/transformers/transformer.js +54 -0
- package/dist/api/compiler/transformers/type-eraser.d.ts +21 -0
- package/dist/api/compiler/transformers/type-eraser.js +346 -0
- package/dist/api/compiler/transformers/type-serialization.d.ts +20 -0
- package/dist/api/compiler/transformers/type-serialization.js +347 -0
- package/dist/api/compiler/transformers/using.d.ts +56 -0
- package/dist/api/compiler/transformers/using.js +453 -0
- package/dist/api/compiler/transformers/utilities.d.ts +50 -0
- package/dist/api/compiler/transformers/utilities.js +347 -0
- package/dist/api/compiler/transformers/visitor-base.d.ts +6 -0
- package/dist/api/compiler/transformers/visitor-base.js +817 -0
- package/dist/api/compiler/transformers/visitor-hooks.d.ts +29 -0
- package/dist/api/compiler/transformers/visitor-hooks.js +189 -0
- package/dist/api/compiler/tsconfig.d.ts +177 -0
- package/dist/api/compiler/tsconfig.js +1311 -0
- package/dist/api/compiler/type-printer.d.ts +15 -0
- package/dist/api/compiler/type-printer.js +74 -0
- package/dist/api/compiler/types.d.ts +87 -0
- package/dist/api/compiler/types.js +23 -0
- package/dist/api/compiler/unicode-identifiers.d.ts +2 -0
- package/dist/api/compiler/unicode-identifiers.js +209 -0
- package/dist/api/compiler/unicode-properties.d.ts +8 -0
- package/dist/api/compiler/unicode-properties.js +531 -0
- package/dist/api/compiler/vfs-match.d.ts +24 -0
- package/dist/api/compiler/vfs-match.js +587 -0
- package/dist/api/library/ast.d.ts +3 -2
- package/dist/api/library/ast.generated.d.ts +127 -139
- package/dist/api/library/checker.d.ts +51 -0
- package/dist/api/library/checker.js +318 -0
- package/dist/api/library/diagnostics.d.ts +13 -0
- package/dist/api/library/diagnostics.js +50 -0
- package/dist/api/library/disk.d.ts +13 -0
- package/dist/api/library/disk.js +66 -0
- package/dist/api/library/errors.d.ts +13 -0
- package/dist/api/library/errors.js +24 -0
- package/dist/api/library/host.d.ts +24 -0
- package/dist/api/library/host.js +52 -0
- package/dist/api/library/index.d.ts +5 -1
- package/dist/api/library/index.js +4 -0
- package/dist/api/library/nodes.d.ts +51 -0
- package/dist/api/library/nodes.js +196 -0
- package/dist/api/library/options.d.ts +144 -0
- package/dist/api/library/options.js +308 -0
- package/dist/api/library/parse.d.ts +19 -0
- package/dist/api/library/parse.js +41 -0
- package/dist/api/library/program.d.ts +21 -0
- package/dist/api/library/program.js +234 -0
- package/dist/api/library/types.d.ts +14 -1
- package/package.json +12 -8
- package/src/compiler/ast-utilities.ts +548 -0
- package/src/compiler/ast.ts +12862 -0
- package/src/compiler/astnav.ts +799 -0
- package/src/compiler/binder-utilities.ts +1392 -0
- package/src/compiler/binder.ts +2703 -0
- package/src/compiler/build-info.ts +1197 -0
- package/src/compiler/character-codes.ts +323 -0
- package/src/compiler/checker-calls.ts +2155 -0
- package/src/compiler/checker-classes.ts +706 -0
- package/src/compiler/checker-contextual.ts +1457 -0
- package/src/compiler/checker-declaration-order.ts +438 -0
- package/src/compiler/checker-declarations.ts +1194 -0
- package/src/compiler/checker-declared-types.ts +919 -0
- package/src/compiler/checker-decorators.ts +694 -0
- package/src/compiler/checker-deprecation.ts +359 -0
- package/src/compiler/checker-destructuring.ts +805 -0
- package/src/compiler/checker-elaboration.ts +477 -0
- package/src/compiler/checker-emit-helpers.ts +224 -0
- package/src/compiler/checker-emit-resolver.ts +769 -0
- package/src/compiler/checker-evaluator.ts +243 -0
- package/src/compiler/checker-expressions.ts +1831 -0
- package/src/compiler/checker-features.ts +361 -0
- package/src/compiler/checker-flow.ts +394 -0
- package/src/compiler/checker-functions.ts +1296 -0
- package/src/compiler/checker-generated-code.ts +227 -0
- package/src/compiler/checker-globals.ts +52 -0
- package/src/compiler/checker-grammar.ts +3584 -0
- package/src/compiler/checker-heritage.ts +1233 -0
- package/src/compiler/checker-inference.ts +2576 -0
- package/src/compiler/checker-iteration.ts +1206 -0
- package/src/compiler/checker-javascript.ts +502 -0
- package/src/compiler/checker-jsdoc.ts +360 -0
- package/src/compiler/checker-jsx.ts +1924 -0
- package/src/compiler/checker-literals.ts +61 -0
- package/src/compiler/checker-members.ts +2436 -0
- package/src/compiler/checker-modules.ts +2886 -0
- package/src/compiler/checker-narrowing.ts +3230 -0
- package/src/compiler/checker-object-literals.ts +575 -0
- package/src/compiler/checker-operators.ts +1422 -0
- package/src/compiler/checker-overloads.ts +328 -0
- package/src/compiler/checker-property-access.ts +906 -0
- package/src/compiler/checker-services.ts +1149 -0
- package/src/compiler/checker-signatures.ts +1032 -0
- package/src/compiler/checker-source-file.ts +732 -0
- package/src/compiler/checker-statements.ts +292 -0
- package/src/compiler/checker-super.ts +261 -0
- package/src/compiler/checker-symbol-types.ts +2107 -0
- package/src/compiler/checker-symbols.ts +2150 -0
- package/src/compiler/checker-type-factory.ts +2579 -0
- package/src/compiler/checker-type-nodes.ts +1033 -0
- package/src/compiler/checker-type-operators.ts +2502 -0
- package/src/compiler/checker-types.ts +2340 -0
- package/src/compiler/checker-unused.ts +642 -0
- package/src/compiler/checker-utilities.ts +161 -0
- package/src/compiler/checker.ts +1116 -0
- package/src/compiler/command-line.ts +436 -0
- package/src/compiler/compile-program.ts +439 -0
- package/src/compiler/decoder.ts +1209 -0
- package/src/compiler/diagnostic-locales.ts +86 -0
- package/src/compiler/diagnostic-messages.ts +2349 -0
- package/src/compiler/diagnostics.ts +897 -0
- package/src/compiler/emitter.ts +434 -0
- package/src/compiler/encoder.ts +1945 -0
- package/src/compiler/file-include.ts +673 -0
- package/src/compiler/file-loader.ts +1528 -0
- package/src/compiler/file-system.ts +143 -0
- package/src/compiler/flow.ts +89 -0
- package/src/compiler/help.ts +473 -0
- package/src/compiler/incremental.ts +2784 -0
- package/src/compiler/init.ts +141 -0
- package/src/compiler/instantiation.ts +894 -0
- package/src/compiler/jsdoc.ts +1386 -0
- package/src/compiler/link-tables.ts +98 -0
- package/src/compiler/locale-data.ts +203 -0
- package/src/compiler/locale.ts +307 -0
- package/src/compiler/locales/cs-CZ.ts +5 -0
- package/src/compiler/locales/de-DE.ts +5 -0
- package/src/compiler/locales/es-ES.ts +5 -0
- package/src/compiler/locales/fr-FR.ts +5 -0
- package/src/compiler/locales/it-IT.ts +5 -0
- package/src/compiler/locales/ja-JP.ts +5 -0
- package/src/compiler/locales/ko-KR.ts +5 -0
- package/src/compiler/locales/pl-PL.ts +5 -0
- package/src/compiler/locales/pt-BR.ts +5 -0
- package/src/compiler/locales/ru-RU.ts +5 -0
- package/src/compiler/locales/tr-TR.ts +5 -0
- package/src/compiler/locales/zh-CN.ts +5 -0
- package/src/compiler/locales/zh-TW.ts +5 -0
- package/src/compiler/module-resolution-types.ts +243 -0
- package/src/compiler/module-resolution.ts +2072 -0
- package/src/compiler/module-specifiers.ts +1491 -0
- package/src/compiler/name-resolver.ts +646 -0
- package/src/compiler/node-builder-names.ts +1069 -0
- package/src/compiler/node-builder-pseudo.ts +892 -0
- package/src/compiler/node-builder-reuse.ts +764 -0
- package/src/compiler/node-builder.ts +3425 -0
- package/src/compiler/option-declarations.ts +1560 -0
- package/src/compiler/options.ts +1576 -0
- package/src/compiler/output-paths.ts +334 -0
- package/src/compiler/package-json.ts +1083 -0
- package/src/compiler/parallel-check.ts +1951 -0
- package/src/compiler/parallel-parse.ts +590 -0
- package/src/compiler/parse-thread.ts +140 -0
- package/src/compiler/parser.ts +7716 -0
- package/src/compiler/path.ts +717 -0
- package/src/compiler/printer/async-helpers.ts +183 -0
- package/src/compiler/printer/auto-generate.ts +27 -0
- package/src/compiler/printer/decorator-helpers.ts +218 -0
- package/src/compiler/printer/emit-context.ts +679 -0
- package/src/compiler/printer/emit-flags.ts +64 -0
- package/src/compiler/printer/factory-base.ts +2577 -0
- package/src/compiler/printer/factory.ts +764 -0
- package/src/compiler/printer/helpers.ts +291 -0
- package/src/compiler/printer/name-generator.ts +372 -0
- package/src/compiler/printer/printer.ts +5072 -0
- package/src/compiler/printer/text-writer.ts +183 -0
- package/src/compiler/printer/utilities.ts +884 -0
- package/src/compiler/program-checker.ts +592 -0
- package/src/compiler/program-utilities.ts +435 -0
- package/src/compiler/program.ts +1419 -0
- package/src/compiler/pseudo-bigint.ts +62 -0
- package/src/compiler/regexp-checker.ts +1142 -0
- package/src/compiler/relations.ts +5149 -0
- package/src/compiler/reparser.ts +1566 -0
- package/src/compiler/scanner.ts +2951 -0
- package/src/compiler/show-config.ts +239 -0
- package/src/compiler/side-state.ts +125 -0
- package/src/compiler/sourcemap.ts +366 -0
- package/src/compiler/spelling.ts +122 -0
- package/src/compiler/symbol-accessibility.ts +1071 -0
- package/src/compiler/symbol.ts +439 -0
- package/src/compiler/symlinks.ts +137 -0
- package/src/compiler/syntax-kind.ts +391 -0
- package/src/compiler/thread-entry.ts +191 -0
- package/src/compiler/timeline.ts +53 -0
- package/src/compiler/transformers/alias-references.ts +757 -0
- package/src/compiler/transformers/async-utilities.ts +335 -0
- package/src/compiler/transformers/async.ts +838 -0
- package/src/compiler/transformers/class-fields.ts +2967 -0
- package/src/compiler/transformers/class-utilities.ts +324 -0
- package/src/compiler/transformers/commonjs-module.ts +1621 -0
- package/src/compiler/transformers/const-enum-inliner.ts +50 -0
- package/src/compiler/transformers/declarations-diagnostics.ts +832 -0
- package/src/compiler/transformers/declarations-pseudo.ts +966 -0
- package/src/compiler/transformers/declarations-resolver.ts +249 -0
- package/src/compiler/transformers/declarations-syntactic.ts +1859 -0
- package/src/compiler/transformers/declarations-tracker.ts +269 -0
- package/src/compiler/transformers/declarations.ts +3120 -0
- package/src/compiler/transformers/decorator-metadata.ts +697 -0
- package/src/compiler/transformers/decorator-utilities.ts +283 -0
- package/src/compiler/transformers/destructuring.ts +708 -0
- package/src/compiler/transformers/downlevel.ts +50 -0
- package/src/compiler/transformers/emit-resolver.ts +258 -0
- package/src/compiler/transformers/es-decorators.ts +2682 -0
- package/src/compiler/transformers/exponentiation.ts +80 -0
- package/src/compiler/transformers/external-module-info.ts +412 -0
- package/src/compiler/transformers/for-await.ts +687 -0
- package/src/compiler/transformers/import-elision.ts +152 -0
- package/src/compiler/transformers/jsx-entities.ts +256 -0
- package/src/compiler/transformers/jsx.ts +824 -0
- package/src/compiler/transformers/legacy-decorators.ts +726 -0
- package/src/compiler/transformers/logical-assignment.ts +75 -0
- package/src/compiler/transformers/module-utilities.ts +42 -0
- package/src/compiler/transformers/module.ts +474 -0
- package/src/compiler/transformers/named-evaluation.ts +389 -0
- package/src/compiler/transformers/nullish-coalescing.ts +35 -0
- package/src/compiler/transformers/object-rest-spread.ts +577 -0
- package/src/compiler/transformers/optional-catch.ts +29 -0
- package/src/compiler/transformers/optional-chain.ts +246 -0
- package/src/compiler/transformers/reference-resolver.ts +1201 -0
- package/src/compiler/transformers/runtime-syntax.ts +942 -0
- package/src/compiler/transformers/subtree-facts.ts +245 -0
- package/src/compiler/transformers/syntax-facts.ts +353 -0
- package/src/compiler/transformers/tagged-template.ts +167 -0
- package/src/compiler/transformers/transformer.ts +56 -0
- package/src/compiler/transformers/type-eraser.ts +520 -0
- package/src/compiler/transformers/type-serialization.ts +374 -0
- package/src/compiler/transformers/using.ts +613 -0
- package/src/compiler/transformers/utilities.ts +419 -0
- package/src/compiler/transformers/visitor-base.ts +1601 -0
- package/src/compiler/transformers/visitor-hooks.ts +252 -0
- package/src/compiler/tsc-build.ts +1418 -0
- package/src/compiler/tsc-cli.ts +666 -0
- package/src/compiler/tsc-compile.ts +437 -0
- package/src/compiler/tsc-watch.ts +854 -0
- package/src/compiler/tsconfig.ts +1574 -0
- package/src/compiler/type-printer.ts +110 -0
- package/src/compiler/types.ts +115 -0
- package/src/compiler/unicode-identifiers.ts +212 -0
- package/src/compiler/unicode-properties.ts +537 -0
- package/src/compiler/vfs-match.ts +597 -0
- package/src/compiler/xxh3.ts +650 -0
- package/src/library/ast.generated.ts +141 -167
- package/src/library/ast.ts +4 -1
- package/src/library/checker.ts +384 -0
- package/src/library/diagnostics.ts +72 -0
- package/src/library/disk.ts +73 -0
- package/src/library/errors.ts +26 -0
- package/src/library/host.ts +63 -0
- package/src/library/index.ts +21 -0
- package/src/library/nodes.ts +232 -0
- package/src/library/options.ts +449 -0
- package/src/library/parse.ts +63 -0
- package/src/library/program.ts +293 -0
- package/src/library/types.ts +14 -1
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type Node } from '../ast.js';
|
|
2
|
+
import type { EmitContext } from '../printer/emit-context.js';
|
|
3
|
+
import { type SyntaxFacts } from './syntax-facts.js';
|
|
4
|
+
import { Transformer } from './transformer.js';
|
|
5
|
+
export declare class ExponentiationTransformer extends Transformer {
|
|
6
|
+
readonly facts: SyntaxFacts;
|
|
7
|
+
constructor(context: EmitContext, facts: SyntaxFacts);
|
|
8
|
+
visit(node: Node): Node | undefined;
|
|
9
|
+
private pow;
|
|
10
|
+
private visitAssignment;
|
|
11
|
+
}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
// Lowers `**` and `**=` to `Math.pow` (ES2016).
|
|
2
|
+
import { BinaryExpression, ElementAccessExpression, PropertyAccessExpression } from '../ast.js';
|
|
3
|
+
import { Transformer } from './transformer.js';
|
|
4
|
+
export class ExponentiationTransformer extends Transformer {
|
|
5
|
+
facts;
|
|
6
|
+
constructor(context, facts) {
|
|
7
|
+
super(context);
|
|
8
|
+
this.facts = facts;
|
|
9
|
+
}
|
|
10
|
+
visit(node) {
|
|
11
|
+
if (!this.facts.has(node, 1024 /* SubtreeFacts.ContainsExponentiationOperator */))
|
|
12
|
+
return node;
|
|
13
|
+
if (node instanceof BinaryExpression) {
|
|
14
|
+
const operator = node.operatorToken.kind;
|
|
15
|
+
if (operator === 67 /* SyntaxKind.AsteriskAsteriskEqualsToken */)
|
|
16
|
+
return this.visitAssignment(node);
|
|
17
|
+
if (operator === 42 /* SyntaxKind.AsteriskAsteriskToken */) {
|
|
18
|
+
const left = this.visitNode(node.left);
|
|
19
|
+
const right = this.visitNode(node.right);
|
|
20
|
+
return this.pow(left, right, node);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return this.visitEachChild(node);
|
|
24
|
+
}
|
|
25
|
+
pow(value, exponent, node) {
|
|
26
|
+
const call = this.factory.createGlobalMethodCall('Math', 'pow', [value, exponent]);
|
|
27
|
+
call.pos = node.pos;
|
|
28
|
+
call.end = node.end;
|
|
29
|
+
return call;
|
|
30
|
+
}
|
|
31
|
+
visitAssignment(node) {
|
|
32
|
+
const factory = this.factory;
|
|
33
|
+
const context = this.context;
|
|
34
|
+
const left = this.visitNode(node.left);
|
|
35
|
+
const right = this.visitNode(node.right);
|
|
36
|
+
let target;
|
|
37
|
+
let value;
|
|
38
|
+
if (left instanceof ElementAccessExpression) {
|
|
39
|
+
// `a[x] **= b` -> `(_a = a)[_x = x] = Math.pow(_a[_x], b)`
|
|
40
|
+
const object = context.addVariableDeclaration(factory.createTempVariable(0));
|
|
41
|
+
const argument = context.addVariableDeclaration(factory.createTempVariable(0));
|
|
42
|
+
const objectAssignment = factory.createAssignment(object, left.expression);
|
|
43
|
+
objectAssignment.pos = left.expression.pos;
|
|
44
|
+
objectAssignment.end = left.expression.end;
|
|
45
|
+
const argumentAssignment = factory.createAssignment(argument, left.argumentExpression);
|
|
46
|
+
argumentAssignment.pos = left.argumentExpression.pos;
|
|
47
|
+
argumentAssignment.end = left.argumentExpression.end;
|
|
48
|
+
target = factory.createElementAccessExpression(objectAssignment, argumentAssignment);
|
|
49
|
+
value = factory.createElementAccessExpression(object, argument);
|
|
50
|
+
value.pos = left.pos;
|
|
51
|
+
value.end = left.end;
|
|
52
|
+
}
|
|
53
|
+
else if (left instanceof PropertyAccessExpression) {
|
|
54
|
+
// `a.x **= b` -> `(_a = a).x = Math.pow(_a.x, b)`
|
|
55
|
+
const object = context.addVariableDeclaration(factory.createTempVariable(0));
|
|
56
|
+
const assignment = factory.createAssignment(object, left.expression);
|
|
57
|
+
assignment.pos = left.expression.pos;
|
|
58
|
+
assignment.end = left.expression.end;
|
|
59
|
+
target = factory.createPropertyAccessExpression(assignment, left.name);
|
|
60
|
+
target.pos = left.pos;
|
|
61
|
+
target.end = left.end;
|
|
62
|
+
value = factory.createPropertyAccessExpression(object, left.name);
|
|
63
|
+
value.pos = left.pos;
|
|
64
|
+
value.end = left.end;
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
// `a **= b` -> `a = Math.pow(a, b)`
|
|
68
|
+
target = left;
|
|
69
|
+
value = left;
|
|
70
|
+
}
|
|
71
|
+
const result = factory.createAssignment(target, this.pow(value, right, node));
|
|
72
|
+
result.pos = node.pos;
|
|
73
|
+
result.end = node.end;
|
|
74
|
+
return result;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { ExportAssignment, ExportSpecifier, FunctionDeclaration, ImportDeclaration, type Node, type SourceFile } from '../ast.js';
|
|
2
|
+
import { type CompilerOptions, ModuleKind } from '../options.js';
|
|
3
|
+
import type { EmitContext } from '../printer/emit-context.js';
|
|
4
|
+
import type { EmitResolver } from './emit-resolver.js';
|
|
5
|
+
export declare class ExternalModuleInfo {
|
|
6
|
+
/** Imports and re-exports of other modules. */
|
|
7
|
+
readonly externalImports: Node[];
|
|
8
|
+
/** Export specifiers by local name, excluding re-exports. */
|
|
9
|
+
readonly exportSpecifiers: Map<string, ExportSpecifier[]>;
|
|
10
|
+
/** The export names of each local declaration. */
|
|
11
|
+
readonly exportedBindings: Map<Node, Node[]>;
|
|
12
|
+
/** Every exported name, except those of exported function declarations. */
|
|
13
|
+
readonly exportedNames: Node[];
|
|
14
|
+
/** Exported function declarations, in order. */
|
|
15
|
+
readonly exportedFunctions: FunctionDeclaration[];
|
|
16
|
+
exportEquals: ExportAssignment | undefined;
|
|
17
|
+
hasExportStarsToExportValues: boolean;
|
|
18
|
+
constructor();
|
|
19
|
+
getExportedBindings(declaration: Node): Node[] | undefined;
|
|
20
|
+
}
|
|
21
|
+
export declare function collectExternalModuleInfo(file: SourceFile, context: EmitContext, resolver: EmitResolver): ExternalModuleInfo;
|
|
22
|
+
export declare function moduleExportNameText(name: Node): string;
|
|
23
|
+
/** `import * as ns` (or `export * as ns`), else undefined. */
|
|
24
|
+
export declare function getNamespaceDeclarationNode(node: Node): Node | undefined;
|
|
25
|
+
export declare function isDefaultImport(node: Node): boolean;
|
|
26
|
+
export declare function containsDefaultReference(node: Node | undefined): boolean;
|
|
27
|
+
export declare function getImportNeedsImportStarHelper(node: ImportDeclaration): boolean;
|
|
28
|
+
export declare function getImportNeedsImportDefaultHelper(node: ImportDeclaration): boolean;
|
|
29
|
+
/**
|
|
30
|
+
* With `importHelpers`, the import of the helpers a module uses: `import tslib = require("tslib")`
|
|
31
|
+
* for CommonJS output, `import { __helper } from "tslib"` for ES modules.
|
|
32
|
+
*/
|
|
33
|
+
export declare function createExternalHelpersImportDeclarationIfNeeded(context: EmitContext, file: SourceFile, options: CompilerOptions, fileModuleKind: ModuleKind): Node | undefined;
|
|
34
|
+
/** An ES module, or a CommonJS module emitted to a CommonJS-family module kind. */
|
|
35
|
+
export declare function isEffectiveExternalModule(file: SourceFile, options: CompilerOptions): boolean;
|
|
@@ -0,0 +1,351 @@
|
|
|
1
|
+
// What a module imports and exports, collected for module transforms.
|
|
2
|
+
import { BindingPattern, BindingElement, ClassDeclaration, ExportAssignment, ExportDeclaration, ExportSpecifier, ExternalModuleReference, FunctionDeclaration, Identifier, ImportClause, ImportDeclaration, ImportEqualsDeclaration, ImportSpecifier, NamedExports, NamedImports, NamespaceExport, NamespaceImport, NotEmittedStatement, StringLiteral, VariableDeclaration, VariableStatement, getImportClause, } from '../ast.js';
|
|
3
|
+
import { ModuleKind, getEmitModuleKind } from '../options.js';
|
|
4
|
+
import { isFileLevelUniqueName } from '../printer/name-generator.js';
|
|
5
|
+
import { hasSyntacticModifier, isExternalModule } from './utilities.js';
|
|
6
|
+
export class ExternalModuleInfo {
|
|
7
|
+
/** Imports and re-exports of other modules. */
|
|
8
|
+
externalImports;
|
|
9
|
+
/** Export specifiers by local name, excluding re-exports. */
|
|
10
|
+
exportSpecifiers;
|
|
11
|
+
/** The export names of each local declaration. */
|
|
12
|
+
exportedBindings;
|
|
13
|
+
/** Every exported name, except those of exported function declarations. */
|
|
14
|
+
exportedNames;
|
|
15
|
+
/** Exported function declarations, in order. */
|
|
16
|
+
exportedFunctions;
|
|
17
|
+
exportEquals;
|
|
18
|
+
hasExportStarsToExportValues;
|
|
19
|
+
constructor() {
|
|
20
|
+
this.externalImports = [];
|
|
21
|
+
this.exportSpecifiers = new Map();
|
|
22
|
+
this.exportedBindings = new Map();
|
|
23
|
+
this.exportedNames = [];
|
|
24
|
+
this.exportedFunctions = [];
|
|
25
|
+
this.exportEquals = undefined;
|
|
26
|
+
this.hasExportStarsToExportValues = false;
|
|
27
|
+
}
|
|
28
|
+
getExportedBindings(declaration) {
|
|
29
|
+
return this.exportedBindings.get(declaration);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
export function collectExternalModuleInfo(file, context, resolver) {
|
|
33
|
+
return new ExternalModuleInfoCollector(context, resolver).collect(file);
|
|
34
|
+
}
|
|
35
|
+
class ExternalModuleInfoCollector {
|
|
36
|
+
context;
|
|
37
|
+
resolver;
|
|
38
|
+
output;
|
|
39
|
+
uniqueExports;
|
|
40
|
+
exportedFunctionSet;
|
|
41
|
+
hasExportDefault;
|
|
42
|
+
constructor(context, resolver) {
|
|
43
|
+
this.context = context;
|
|
44
|
+
this.resolver = resolver;
|
|
45
|
+
this.output = new ExternalModuleInfo();
|
|
46
|
+
this.uniqueExports = new Set();
|
|
47
|
+
this.exportedFunctionSet = new Set();
|
|
48
|
+
this.hasExportDefault = false;
|
|
49
|
+
}
|
|
50
|
+
collect(file) {
|
|
51
|
+
const output = this.output;
|
|
52
|
+
const statements = file.statements.nodes;
|
|
53
|
+
for (let i = 0; i < statements.length; i++) {
|
|
54
|
+
const node = statements[i];
|
|
55
|
+
if (node instanceof NotEmittedStatement) {
|
|
56
|
+
// `declare export = x` is elided but still collected.
|
|
57
|
+
const original = this.context.mostOriginal(node);
|
|
58
|
+
if (original instanceof ExportAssignment && original.isExportEquals && output.exportEquals === undefined)
|
|
59
|
+
output.exportEquals = original;
|
|
60
|
+
continue;
|
|
61
|
+
}
|
|
62
|
+
if (node instanceof ImportDeclaration)
|
|
63
|
+
output.externalImports.push(node);
|
|
64
|
+
else if (node instanceof ImportEqualsDeclaration) {
|
|
65
|
+
if (node.moduleReference.kind === 284 /* SyntaxKind.ExternalModuleReference */)
|
|
66
|
+
output.externalImports.push(node);
|
|
67
|
+
}
|
|
68
|
+
else if (node instanceof ExportDeclaration)
|
|
69
|
+
this.collectExportDeclaration(node);
|
|
70
|
+
else if (node instanceof ExportAssignment) {
|
|
71
|
+
if (node.isExportEquals && output.exportEquals === undefined)
|
|
72
|
+
output.exportEquals = node;
|
|
73
|
+
}
|
|
74
|
+
else if (node instanceof VariableStatement) {
|
|
75
|
+
if (hasSyntacticModifier(node, 32 /* ModifierFlags.Export */)) {
|
|
76
|
+
const declarations = node.declarationList.declarations.nodes;
|
|
77
|
+
for (let j = 0; j < declarations.length; j++)
|
|
78
|
+
this.collectExportedVariableInfo(declarations[j]);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
else if (node instanceof FunctionDeclaration) {
|
|
82
|
+
if (hasSyntacticModifier(node, 32 /* ModifierFlags.Export */))
|
|
83
|
+
this.addExportedFunctionDeclaration(node, undefined, hasSyntacticModifier(node, 2048 /* ModifierFlags.Default */));
|
|
84
|
+
}
|
|
85
|
+
else if (node instanceof ClassDeclaration) {
|
|
86
|
+
if (hasSyntacticModifier(node, 32 /* ModifierFlags.Export */))
|
|
87
|
+
this.collectExportedClass(node);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
return output;
|
|
91
|
+
}
|
|
92
|
+
collectExportDeclaration(node) {
|
|
93
|
+
const output = this.output;
|
|
94
|
+
if (node.moduleSpecifier === undefined)
|
|
95
|
+
return this.addExportedNamesForExportDeclaration(node);
|
|
96
|
+
output.externalImports.push(node);
|
|
97
|
+
const clause = node.exportClause;
|
|
98
|
+
if (clause === undefined)
|
|
99
|
+
output.hasExportStarsToExportValues = true;
|
|
100
|
+
else if (clause instanceof NamedExports)
|
|
101
|
+
this.addExportedNamesForExportDeclaration(node);
|
|
102
|
+
else if (clause instanceof NamespaceExport) {
|
|
103
|
+
const name = clause.name;
|
|
104
|
+
if (this.addUniqueExport(moduleExportNameText(name))) {
|
|
105
|
+
this.addExportedBinding(node, name);
|
|
106
|
+
output.exportedNames.push(name);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
return true;
|
|
110
|
+
}
|
|
111
|
+
collectExportedClass(node) {
|
|
112
|
+
if (hasSyntacticModifier(node, 2048 /* ModifierFlags.Default */)) {
|
|
113
|
+
if (!this.hasExportDefault) {
|
|
114
|
+
const name = node.name !== undefined ? node.name : this.context.factory.createGeneratedNameForNode(node, 0, '', '');
|
|
115
|
+
this.addExportedBinding(node, name);
|
|
116
|
+
this.hasExportDefault = true;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
else if (node.name !== undefined && this.addUniqueExport(node.name.text)) {
|
|
120
|
+
this.addExportedBinding(node, node.name);
|
|
121
|
+
this.output.exportedNames.push(node.name);
|
|
122
|
+
}
|
|
123
|
+
return true;
|
|
124
|
+
}
|
|
125
|
+
addUniqueExport(name) {
|
|
126
|
+
if (this.uniqueExports.has(name))
|
|
127
|
+
return false;
|
|
128
|
+
this.uniqueExports.add(name);
|
|
129
|
+
return true;
|
|
130
|
+
}
|
|
131
|
+
addExportedBinding(declaration, name) {
|
|
132
|
+
const key = this.context.mostOriginal(declaration);
|
|
133
|
+
const names = this.output.exportedBindings.get(key);
|
|
134
|
+
if (names === undefined)
|
|
135
|
+
this.output.exportedBindings.set(key, [name]);
|
|
136
|
+
else
|
|
137
|
+
names.push(name);
|
|
138
|
+
return true;
|
|
139
|
+
}
|
|
140
|
+
addExportedNamesForExportDeclaration(node) {
|
|
141
|
+
const clause = node.exportClause;
|
|
142
|
+
if (!(clause instanceof NamedExports))
|
|
143
|
+
return false;
|
|
144
|
+
const specifiers = clause.elements.nodes;
|
|
145
|
+
for (let i = 0; i < specifiers.length; i++) {
|
|
146
|
+
const specifier = specifiers[i];
|
|
147
|
+
if (!(specifier instanceof ExportSpecifier))
|
|
148
|
+
continue;
|
|
149
|
+
const exportName = moduleExportNameText(specifier.name);
|
|
150
|
+
if (!this.addUniqueExport(exportName))
|
|
151
|
+
continue;
|
|
152
|
+
const local = specifier.propertyName !== undefined ? specifier.propertyName : specifier.name;
|
|
153
|
+
if (local instanceof Identifier) {
|
|
154
|
+
if (node.moduleSpecifier === undefined) {
|
|
155
|
+
const existing = this.output.exportSpecifiers.get(local.text);
|
|
156
|
+
if (existing === undefined)
|
|
157
|
+
this.output.exportSpecifiers.set(local.text, [specifier]);
|
|
158
|
+
else
|
|
159
|
+
existing.push(specifier);
|
|
160
|
+
}
|
|
161
|
+
const original = this.context.mostOriginal(local);
|
|
162
|
+
let declaration = undefined;
|
|
163
|
+
if (original instanceof Identifier) {
|
|
164
|
+
declaration = this.resolver.getReferencedImportDeclaration(original);
|
|
165
|
+
if (declaration === undefined)
|
|
166
|
+
declaration = this.resolver.getReferencedValueDeclaration(original);
|
|
167
|
+
}
|
|
168
|
+
if (declaration instanceof FunctionDeclaration) {
|
|
169
|
+
this.uniqueExports.delete(exportName);
|
|
170
|
+
this.addExportedFunctionDeclaration(declaration, specifier.name, exportName === 'default');
|
|
171
|
+
continue;
|
|
172
|
+
}
|
|
173
|
+
if (declaration !== undefined)
|
|
174
|
+
this.addExportedBinding(declaration, specifier.name);
|
|
175
|
+
}
|
|
176
|
+
this.output.exportedNames.push(specifier.name);
|
|
177
|
+
}
|
|
178
|
+
return true;
|
|
179
|
+
}
|
|
180
|
+
addExportedFunctionDeclaration(node, name, isDefault) {
|
|
181
|
+
const key = this.context.mostOriginal(node);
|
|
182
|
+
if (!this.exportedFunctionSet.has(key)) {
|
|
183
|
+
this.exportedFunctionSet.add(key);
|
|
184
|
+
if (key instanceof FunctionDeclaration)
|
|
185
|
+
this.output.exportedFunctions.push(key);
|
|
186
|
+
}
|
|
187
|
+
if (isDefault) {
|
|
188
|
+
if (!this.hasExportDefault) {
|
|
189
|
+
this.addExportedBinding(node, name !== undefined ? name : this.context.factory.createGeneratedNameForNode(node, 0, '', ''));
|
|
190
|
+
this.hasExportDefault = true;
|
|
191
|
+
}
|
|
192
|
+
return true;
|
|
193
|
+
}
|
|
194
|
+
const exportName = name !== undefined ? name : node.name;
|
|
195
|
+
if (exportName !== undefined && this.addUniqueExport(moduleExportNameText(exportName)))
|
|
196
|
+
this.addExportedBinding(node, exportName);
|
|
197
|
+
return true;
|
|
198
|
+
}
|
|
199
|
+
collectExportedVariableInfo(declaration) {
|
|
200
|
+
const name = declaration instanceof VariableDeclaration ? declaration.name : bindingElementName(declaration);
|
|
201
|
+
if (name instanceof BindingPattern) {
|
|
202
|
+
const elements = name.elements.nodes;
|
|
203
|
+
for (let i = 0; i < elements.length; i++)
|
|
204
|
+
if (bindingElementName(elements[i]) !== undefined)
|
|
205
|
+
this.collectExportedVariableInfo(elements[i]);
|
|
206
|
+
return true;
|
|
207
|
+
}
|
|
208
|
+
if (!(name instanceof Identifier) || this.context.hasAutoGenerateInfo(name))
|
|
209
|
+
return false;
|
|
210
|
+
if (this.addUniqueExport(name.text)) {
|
|
211
|
+
this.output.exportedNames.push(name);
|
|
212
|
+
if ((this.context.getEmitFlags(name) & 4096 /* EmitFlags.LocalName */) !== 0)
|
|
213
|
+
this.addExportedBinding(declaration, name);
|
|
214
|
+
}
|
|
215
|
+
return true;
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
function bindingElementName(node) {
|
|
219
|
+
return node instanceof BindingElement ? node.name : undefined;
|
|
220
|
+
}
|
|
221
|
+
export function moduleExportNameText(name) {
|
|
222
|
+
if (name instanceof Identifier)
|
|
223
|
+
return name.text;
|
|
224
|
+
if (name instanceof StringLiteral)
|
|
225
|
+
return name.text;
|
|
226
|
+
return '';
|
|
227
|
+
}
|
|
228
|
+
/** `import * as ns` (or `export * as ns`), else undefined. */
|
|
229
|
+
export function getNamespaceDeclarationNode(node) {
|
|
230
|
+
if (node instanceof ImportDeclaration) {
|
|
231
|
+
const clause = node.importClause;
|
|
232
|
+
return clause !== undefined && clause.namedBindings instanceof NamespaceImport ? clause.namedBindings : undefined;
|
|
233
|
+
}
|
|
234
|
+
if (node instanceof ImportEqualsDeclaration)
|
|
235
|
+
return node;
|
|
236
|
+
if (node instanceof ExportDeclaration)
|
|
237
|
+
return node.exportClause instanceof NamespaceExport ? node.exportClause : undefined;
|
|
238
|
+
return undefined;
|
|
239
|
+
}
|
|
240
|
+
export function isDefaultImport(node) {
|
|
241
|
+
const clause = getImportClause(node);
|
|
242
|
+
return clause instanceof ImportClause && clause.name !== undefined;
|
|
243
|
+
}
|
|
244
|
+
function isNamedDefaultReference(specifier) {
|
|
245
|
+
if (specifier instanceof ImportSpecifier)
|
|
246
|
+
return (moduleExportNameText(specifier.propertyName !== undefined ? specifier.propertyName : specifier.name) === 'default');
|
|
247
|
+
if (specifier instanceof ExportSpecifier)
|
|
248
|
+
return (moduleExportNameText(specifier.propertyName !== undefined ? specifier.propertyName : specifier.name) === 'default');
|
|
249
|
+
return false;
|
|
250
|
+
}
|
|
251
|
+
export function containsDefaultReference(node) {
|
|
252
|
+
let elements = [];
|
|
253
|
+
if (node instanceof NamedImports)
|
|
254
|
+
elements = node.elements.nodes;
|
|
255
|
+
else if (node instanceof NamedExports)
|
|
256
|
+
elements = node.elements.nodes;
|
|
257
|
+
for (let i = 0; i < elements.length; i++)
|
|
258
|
+
if (isNamedDefaultReference(elements[i]))
|
|
259
|
+
return true;
|
|
260
|
+
return false;
|
|
261
|
+
}
|
|
262
|
+
export function getImportNeedsImportStarHelper(node) {
|
|
263
|
+
if (getNamespaceDeclarationNode(node) !== undefined)
|
|
264
|
+
return true;
|
|
265
|
+
const clause = node.importClause;
|
|
266
|
+
if (clause === undefined || !(clause.namedBindings instanceof NamedImports))
|
|
267
|
+
return false;
|
|
268
|
+
const elements = clause.namedBindings.elements.nodes;
|
|
269
|
+
let defaultReferences = 0;
|
|
270
|
+
for (let i = 0; i < elements.length; i++)
|
|
271
|
+
if (isNamedDefaultReference(elements[i]))
|
|
272
|
+
defaultReferences++;
|
|
273
|
+
// Default references mixed with other names, or other names with a default import.
|
|
274
|
+
return ((defaultReferences > 0 && defaultReferences !== elements.length) ||
|
|
275
|
+
(elements.length - defaultReferences !== 0 && isDefaultImport(node)));
|
|
276
|
+
}
|
|
277
|
+
export function getImportNeedsImportDefaultHelper(node) {
|
|
278
|
+
if (getImportNeedsImportStarHelper(node))
|
|
279
|
+
return false;
|
|
280
|
+
if (isDefaultImport(node))
|
|
281
|
+
return true;
|
|
282
|
+
const clause = node.importClause;
|
|
283
|
+
return clause !== undefined && containsDefaultReference(clause.namedBindings);
|
|
284
|
+
}
|
|
285
|
+
const externalHelpersModuleNameText = 'tslib';
|
|
286
|
+
/**
|
|
287
|
+
* With `importHelpers`, the import of the helpers a module uses: `import tslib = require("tslib")`
|
|
288
|
+
* for CommonJS output, `import { __helper } from "tslib"` for ES modules.
|
|
289
|
+
*/
|
|
290
|
+
export function createExternalHelpersImportDeclarationIfNeeded(context, file, options, fileModuleKind) {
|
|
291
|
+
if (options.importHelpers !== true || !isEffectiveExternalModule(file, options))
|
|
292
|
+
return undefined;
|
|
293
|
+
const factory = context.factory;
|
|
294
|
+
const helpers = getImportedHelpers(context, file);
|
|
295
|
+
const moduleKind = getEmitModuleKind(options);
|
|
296
|
+
if (fileModuleKind === ModuleKind.CommonJS ||
|
|
297
|
+
(fileModuleKind === ModuleKind.None && moduleKind === ModuleKind.CommonJS)) {
|
|
298
|
+
let moduleName = context.getExternalHelpersModuleName(file);
|
|
299
|
+
if (moduleName === undefined) {
|
|
300
|
+
if (helpers.length === 0)
|
|
301
|
+
return undefined;
|
|
302
|
+
moduleName = factory.createUniqueName(externalHelpersModuleNameText, 0 /* GeneratedIdentifierFlags.None */);
|
|
303
|
+
context.setExternalHelpersModuleName(file, moduleName);
|
|
304
|
+
}
|
|
305
|
+
const declaration = factory.created(new ImportEqualsDeclaration(undefined, false, moduleName, factory.created(new ExternalModuleReference(factory.createStringLiteral(externalHelpersModuleNameText, 0 /* TokenFlags.None */)))));
|
|
306
|
+
context.addEmitFlags(declaration, 65536 /* EmitFlags.CustomPrologue */);
|
|
307
|
+
return declaration;
|
|
308
|
+
}
|
|
309
|
+
const names = [];
|
|
310
|
+
for (let i = 0; i < helpers.length; i++) {
|
|
311
|
+
const importName = helpers[i].importName;
|
|
312
|
+
if (importName.length > 0 && names.indexOf(importName) < 0)
|
|
313
|
+
names.push(importName);
|
|
314
|
+
}
|
|
315
|
+
if (names.length === 0)
|
|
316
|
+
return undefined;
|
|
317
|
+
names.sort(compareStringsCaseSensitive);
|
|
318
|
+
const specifiers = [];
|
|
319
|
+
for (let i = 0; i < names.length; i++) {
|
|
320
|
+
const name = names[i];
|
|
321
|
+
// Aliased when the name is used in the file.
|
|
322
|
+
specifiers.push(isFileLevelUniqueName(file, name)
|
|
323
|
+
? factory.created(new ImportSpecifier(false, undefined, factory.createIdentifier(name)))
|
|
324
|
+
: factory.created(new ImportSpecifier(false, factory.createIdentifier(name), factory.createUnscopedHelperName(name))));
|
|
325
|
+
}
|
|
326
|
+
context.addEmitFlags(context.mostOriginal(file), 262144 /* EmitFlags.ExternalHelpers */);
|
|
327
|
+
const declaration = factory.created(new ImportDeclaration(273 /* SyntaxKind.ImportDeclaration */, undefined, factory.created(new ImportClause(undefined, undefined, factory.created(new NamedImports(factory.createNodeList(specifiers))))), factory.createStringLiteral(externalHelpersModuleNameText, 0 /* TokenFlags.None */), undefined));
|
|
328
|
+
context.addEmitFlags(declaration, 65536 /* EmitFlags.CustomPrologue */);
|
|
329
|
+
return declaration;
|
|
330
|
+
}
|
|
331
|
+
function getImportedHelpers(context, file) {
|
|
332
|
+
const all = context.getEmitHelpers(file);
|
|
333
|
+
const helpers = [];
|
|
334
|
+
if (all === undefined)
|
|
335
|
+
return helpers;
|
|
336
|
+
for (let i = 0; i < all.length; i++)
|
|
337
|
+
if (!all[i].scoped)
|
|
338
|
+
helpers.push(all[i]);
|
|
339
|
+
return helpers;
|
|
340
|
+
}
|
|
341
|
+
function compareStringsCaseSensitive(a, b) {
|
|
342
|
+
return a < b ? -1 : a > b ? 1 : 0;
|
|
343
|
+
}
|
|
344
|
+
/** An ES module, or a CommonJS module emitted to a CommonJS-family module kind. */
|
|
345
|
+
export function isEffectiveExternalModule(file, options) {
|
|
346
|
+
if (isExternalModule(file))
|
|
347
|
+
return true;
|
|
348
|
+
const kind = getEmitModuleKind(options);
|
|
349
|
+
return ((kind === ModuleKind.CommonJS || (kind >= ModuleKind.Node16 && kind <= ModuleKind.NodeNext)) &&
|
|
350
|
+
file.commonJSModuleIndicator !== undefined);
|
|
351
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { type Node } from '../ast.js';
|
|
2
|
+
import type { EmitContext } from '../printer/emit-context.js';
|
|
3
|
+
import { type SyntaxFacts } from './syntax-facts.js';
|
|
4
|
+
import { Transformer } from './transformer.js';
|
|
5
|
+
export declare class AsyncIteration extends Transformer {
|
|
6
|
+
private readonly facts;
|
|
7
|
+
private readonly superAccess;
|
|
8
|
+
private readonly fallbackVisitor;
|
|
9
|
+
private enclosingFunctionFlags;
|
|
10
|
+
private hierarchyFacts;
|
|
11
|
+
constructor(context: EmitContext, facts: SyntaxFacts);
|
|
12
|
+
fallback(node: Node): Node | undefined;
|
|
13
|
+
private inAsyncGenerator;
|
|
14
|
+
visit(node: Node): Node | undefined;
|
|
15
|
+
private visitWithFacts;
|
|
16
|
+
private visitScope;
|
|
17
|
+
private visitSourceFile;
|
|
18
|
+
/** `await x` in an async generator as `yield __await(x)`. */
|
|
19
|
+
private visitAwaitExpression;
|
|
20
|
+
/** `yield x` as `yield yield __await(x)`; `yield* x` as `yield __await(yield* __asyncDelegator(__asyncValues(x)))`. */
|
|
21
|
+
private visitYieldExpression;
|
|
22
|
+
private visitReturnStatement;
|
|
23
|
+
private visitLabeledStatement;
|
|
24
|
+
private restoreEnclosingLabel;
|
|
25
|
+
private visitForOfStatement;
|
|
26
|
+
private createDownlevelAwait;
|
|
27
|
+
/** The loop body: assigns the iterated value, clears `nonUserCode`, binds the loop variable. */
|
|
28
|
+
private convertForOfStatementHead;
|
|
29
|
+
private createForOfBindingStatement;
|
|
30
|
+
private transformForAwaitOfStatement;
|
|
31
|
+
private visitConstructor;
|
|
32
|
+
private visitGetAccessor;
|
|
33
|
+
private visitSetAccessor;
|
|
34
|
+
/** Modifiers without `async` for generators, whose `async` moves to `__asyncGenerator`. */
|
|
35
|
+
private generatorModifiers;
|
|
36
|
+
private visitMethodDeclaration;
|
|
37
|
+
private visitFunctionDeclaration;
|
|
38
|
+
private visitFunctionExpression;
|
|
39
|
+
private visitArrowFunction;
|
|
40
|
+
/** The visited parameters if simple, else placeholders up to the first initializer or rest, keeping `length`. */
|
|
41
|
+
private transformAsyncGeneratorParameterList;
|
|
42
|
+
private transformAsyncGeneratorBody;
|
|
43
|
+
}
|