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,32 @@
|
|
|
1
|
+
import { type Diagnostic } from './diagnostics.js';
|
|
2
|
+
import { type OptionDeclaration } from './option-declarations.js';
|
|
3
|
+
import { type BuildOptions, type CompilerOptions, type OptionValue, type WatchOptions } from './options.js';
|
|
4
|
+
/** Reads response files. */
|
|
5
|
+
export declare abstract class CommandLineHost {
|
|
6
|
+
readonly currentDirectory: string;
|
|
7
|
+
constructor(currentDirectory: string);
|
|
8
|
+
/** Returns `undefined` if the file can't be read. */
|
|
9
|
+
abstract readFile(path: string): string | undefined;
|
|
10
|
+
}
|
|
11
|
+
export interface ParsedCommandLine {
|
|
12
|
+
readonly options: CompilerOptions;
|
|
13
|
+
readonly watchOptions: WatchOptions;
|
|
14
|
+
readonly fileNames: readonly string[];
|
|
15
|
+
readonly errors: readonly Diagnostic[];
|
|
16
|
+
/** Options as written, keyed by declaration name in first-seen order. Paths are not made absolute. */
|
|
17
|
+
readonly raw: ReadonlyMap<string, OptionValue>;
|
|
18
|
+
}
|
|
19
|
+
export interface ParsedBuildCommandLine {
|
|
20
|
+
readonly buildOptions: BuildOptions;
|
|
21
|
+
/** Only options shared with `tsc`, and `build`. */
|
|
22
|
+
readonly compilerOptions: CompilerOptions;
|
|
23
|
+
readonly watchOptions: WatchOptions;
|
|
24
|
+
/** Project paths as given; `["."]` if none. */
|
|
25
|
+
readonly projects: readonly string[];
|
|
26
|
+
readonly errors: readonly Diagnostic[];
|
|
27
|
+
readonly raw: ReadonlyMap<string, OptionValue>;
|
|
28
|
+
}
|
|
29
|
+
export declare function parseCommandLine(args: readonly string[], host: CommandLineHost): ParsedCommandLine;
|
|
30
|
+
export declare function parseBuildCommandLine(args: readonly string[], host: CommandLineHost): ParsedBuildCommandLine;
|
|
31
|
+
/** `'a', 'b', 'c'`: the option's value names without deprecated ones. */
|
|
32
|
+
export declare function enumNamesList(option: OptionDeclaration): string;
|
|
@@ -0,0 +1,383 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parses `tsc` and `tsc --build` arguments into options, file names and diagnostics, as tsgo does.
|
|
3
|
+
*/
|
|
4
|
+
import { isUnicodeWhiteSpace, isWhiteSpaceLike } from './character-codes.js';
|
|
5
|
+
import { createCompilerDiagnostic } from './diagnostics.js';
|
|
6
|
+
import { isValidLocale } from './locale.js';
|
|
7
|
+
import { buildOption, buildOptionsByName, compilerOptionsByName, watchOptionsByName, } from './option-declarations.js';
|
|
8
|
+
import { setBuildOption, setCompilerOption, setWatchOption, } from './options.js';
|
|
9
|
+
import { getNormalizedAbsolutePath } from './path.js';
|
|
10
|
+
/** Reads response files. */
|
|
11
|
+
export class CommandLineHost {
|
|
12
|
+
currentDirectory;
|
|
13
|
+
constructor(currentDirectory) {
|
|
14
|
+
this.currentDirectory = currentDirectory;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
const compilerMode = {
|
|
18
|
+
options: compilerOptionsByName,
|
|
19
|
+
unknownOption: 1121 /* Diagnostics.Unknown_compiler_option_0 */,
|
|
20
|
+
missingArgument: 1222 /* Diagnostics.Compiler_option_0_expects_an_argument */,
|
|
21
|
+
otherModeOptions: buildOptionsByName,
|
|
22
|
+
wrongMode: 1167 /* Diagnostics.Compiler_option_0_may_only_be_used_with_build */,
|
|
23
|
+
};
|
|
24
|
+
const buildMode = {
|
|
25
|
+
options: buildOptionsByName,
|
|
26
|
+
unknownOption: 1147 /* Diagnostics.Unknown_build_option_0 */,
|
|
27
|
+
missingArgument: 1148 /* Diagnostics.Build_option_0_requires_a_value_of_type_1 */,
|
|
28
|
+
otherModeOptions: compilerOptionsByName,
|
|
29
|
+
wrongMode: 1168 /* Diagnostics.Compiler_option_0_may_not_be_used_with_build */,
|
|
30
|
+
};
|
|
31
|
+
const watchMode = {
|
|
32
|
+
options: watchOptionsByName,
|
|
33
|
+
unknownOption: 1153 /* Diagnostics.Unknown_watch_option_0 */,
|
|
34
|
+
missingArgument: 1155 /* Diagnostics.Watch_option_0_requires_a_value_of_type_1 */,
|
|
35
|
+
};
|
|
36
|
+
export function parseCommandLine(args, host) {
|
|
37
|
+
const parser = new CommandLineParser(compilerMode, host);
|
|
38
|
+
parser.parseArguments(args);
|
|
39
|
+
const cwd = host.currentDirectory;
|
|
40
|
+
const options = {};
|
|
41
|
+
const watchOptions = {};
|
|
42
|
+
for (const [name, value] of parser.raw) {
|
|
43
|
+
if (parser.droppedLists.has(name))
|
|
44
|
+
continue;
|
|
45
|
+
setCompilerOption(options, name, toAbsolutePaths(name, value, cwd));
|
|
46
|
+
setWatchOption(watchOptions, name, value);
|
|
47
|
+
}
|
|
48
|
+
return { options, watchOptions, fileNames: parser.fileNames, errors: parser.errors, raw: parser.raw };
|
|
49
|
+
}
|
|
50
|
+
export function parseBuildCommandLine(args, host) {
|
|
51
|
+
const parser = new CommandLineParser(buildMode, host);
|
|
52
|
+
parser.parseArguments(args);
|
|
53
|
+
const buildOptions = {};
|
|
54
|
+
const compilerOptions = {};
|
|
55
|
+
const watchOptions = {};
|
|
56
|
+
for (const [name, value] of parser.raw) {
|
|
57
|
+
if (parser.droppedLists.has(name))
|
|
58
|
+
continue;
|
|
59
|
+
const declaration = buildOptionsByName.get(name);
|
|
60
|
+
if (declaration === buildOption || (declaration !== undefined && declaration === compilerOptionsByName.get(name))) {
|
|
61
|
+
setCompilerOption(compilerOptions, name, value);
|
|
62
|
+
}
|
|
63
|
+
setBuildOption(buildOptions, name, value);
|
|
64
|
+
setWatchOption(watchOptions, name, value);
|
|
65
|
+
}
|
|
66
|
+
const errors = parser.errors;
|
|
67
|
+
const { clean, force, verbose, dry } = buildOptions;
|
|
68
|
+
const watch = compilerOptions.watch;
|
|
69
|
+
if (clean === true && force === true)
|
|
70
|
+
errors.push(createCompilerDiagnostic(1465 /* Diagnostics.Options_0_and_1_cannot_be_combined */, 'clean', 'force'));
|
|
71
|
+
if (clean === true && verbose === true)
|
|
72
|
+
errors.push(createCompilerDiagnostic(1465 /* Diagnostics.Options_0_and_1_cannot_be_combined */, 'clean', 'verbose'));
|
|
73
|
+
if (clean === true && watch === true)
|
|
74
|
+
errors.push(createCompilerDiagnostic(1465 /* Diagnostics.Options_0_and_1_cannot_be_combined */, 'clean', 'watch'));
|
|
75
|
+
if (watch === true && dry === true)
|
|
76
|
+
errors.push(createCompilerDiagnostic(1465 /* Diagnostics.Options_0_and_1_cannot_be_combined */, 'watch', 'dry'));
|
|
77
|
+
return {
|
|
78
|
+
buildOptions,
|
|
79
|
+
compilerOptions,
|
|
80
|
+
watchOptions,
|
|
81
|
+
projects: parser.fileNames.length > 0 ? parser.fileNames : ['.'],
|
|
82
|
+
errors,
|
|
83
|
+
raw: parser.raw,
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
/** Resolves file path values of compiler options against `cwd`. */
|
|
87
|
+
function toAbsolutePaths(name, value, cwd) {
|
|
88
|
+
const declaration = compilerOptionsByName.get(name);
|
|
89
|
+
if (declaration === undefined)
|
|
90
|
+
return value;
|
|
91
|
+
if (declaration.kind === 'list') {
|
|
92
|
+
if (declaration.element?.isFilePath === true && Array.isArray(value)) {
|
|
93
|
+
return value.map((path) => getNormalizedAbsolutePath(path, cwd));
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
else if (declaration.isFilePath === true && typeof value === 'string') {
|
|
97
|
+
return getNormalizedAbsolutePath(value, cwd);
|
|
98
|
+
}
|
|
99
|
+
return value;
|
|
100
|
+
}
|
|
101
|
+
class CommandLineParser {
|
|
102
|
+
mode;
|
|
103
|
+
host;
|
|
104
|
+
raw = new Map();
|
|
105
|
+
fileNames = [];
|
|
106
|
+
errors = [];
|
|
107
|
+
/**
|
|
108
|
+
* List options whose items were all dropped (`--types ,`). tsgo leaves them unset,
|
|
109
|
+
* though `raw` (and so `--init`) has `[]`.
|
|
110
|
+
*/
|
|
111
|
+
droppedLists = new Set();
|
|
112
|
+
constructor(mode, host) {
|
|
113
|
+
this.mode = mode;
|
|
114
|
+
this.host = host;
|
|
115
|
+
}
|
|
116
|
+
parseArguments(args) {
|
|
117
|
+
let i = 0;
|
|
118
|
+
while (i < args.length) {
|
|
119
|
+
const arg = args[i];
|
|
120
|
+
i++;
|
|
121
|
+
if (arg === '')
|
|
122
|
+
continue;
|
|
123
|
+
if (arg.startsWith('@')) {
|
|
124
|
+
this.parseResponseFile(arg.slice(1));
|
|
125
|
+
}
|
|
126
|
+
else if (arg.startsWith('-')) {
|
|
127
|
+
const name = arg.startsWith('--') ? arg.slice(2) : arg.slice(1);
|
|
128
|
+
const option = this.mode.options.find(name, true);
|
|
129
|
+
if (option !== undefined) {
|
|
130
|
+
i = this.parseOptionValue(args, i, option, this.mode);
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
const watchOption = watchOptionsByName.find(name, true);
|
|
134
|
+
if (watchOption !== undefined)
|
|
135
|
+
i = this.parseOptionValue(args, i, watchOption, watchMode);
|
|
136
|
+
else
|
|
137
|
+
this.errors.push(this.unknownOptionError(name, arg));
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
this.fileNames.push(arg);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
unknownOptionError(name, arg) {
|
|
146
|
+
const other = this.mode.otherModeOptions?.get(name);
|
|
147
|
+
if (other !== undefined && this.mode.wrongMode !== undefined) {
|
|
148
|
+
const message = other.name === 'build' ? 1464 /* Diagnostics.Option_build_must_be_the_first_command_line_argument */ : this.mode.wrongMode;
|
|
149
|
+
return createCompilerDiagnostic(message, name);
|
|
150
|
+
}
|
|
151
|
+
return createCompilerDiagnostic(this.mode.unknownOption, arg);
|
|
152
|
+
}
|
|
153
|
+
/** Splits a response file into arguments at whitespace; `"` quotes an argument. */
|
|
154
|
+
parseResponseFile(fileName) {
|
|
155
|
+
const path = getNormalizedAbsolutePath(fileName, this.host.currentDirectory);
|
|
156
|
+
const text = this.host.readFile(path);
|
|
157
|
+
if (text === undefined) {
|
|
158
|
+
this.errors.push(createCompilerDiagnostic(1158 /* Diagnostics.Cannot_read_file_0 */, path));
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
161
|
+
const args = [];
|
|
162
|
+
let pos = 0;
|
|
163
|
+
while (pos < text.length) {
|
|
164
|
+
while (pos < text.length && text.charCodeAt(pos) <= 32)
|
|
165
|
+
pos++;
|
|
166
|
+
if (pos >= text.length)
|
|
167
|
+
break;
|
|
168
|
+
const start = pos;
|
|
169
|
+
if (text.charCodeAt(pos) === 34 /* " */) {
|
|
170
|
+
pos++;
|
|
171
|
+
while (pos < text.length && text.charCodeAt(pos) !== 34)
|
|
172
|
+
pos++;
|
|
173
|
+
if (pos < text.length) {
|
|
174
|
+
args.push(text.slice(start + 1, pos));
|
|
175
|
+
pos++;
|
|
176
|
+
}
|
|
177
|
+
else {
|
|
178
|
+
this.errors.push(createCompilerDiagnostic(1223 /* Diagnostics.Unterminated_quoted_string_in_response_file_0 */, path));
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
else {
|
|
182
|
+
// tsgo panics when the file ends in an argument; tsc accepts it.
|
|
183
|
+
while (pos < text.length && text.charCodeAt(pos) > 32)
|
|
184
|
+
pos++;
|
|
185
|
+
args.push(text.slice(start, pos));
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
this.parseArguments(args);
|
|
189
|
+
}
|
|
190
|
+
/** Reads the value of `option` starting at `args[i]`; returns the index of the next argument. */
|
|
191
|
+
parseOptionValue(args, i, option, mode) {
|
|
192
|
+
const name = option.name;
|
|
193
|
+
const next = i < args.length ? args[i] : undefined;
|
|
194
|
+
if (option.isTSConfigOnly === true) {
|
|
195
|
+
const value = next ?? '';
|
|
196
|
+
if (value === 'null') {
|
|
197
|
+
this.raw.set(name, null);
|
|
198
|
+
return i + 1;
|
|
199
|
+
}
|
|
200
|
+
if (option.kind === 'boolean') {
|
|
201
|
+
if (value === 'false') {
|
|
202
|
+
this.raw.set(name, false);
|
|
203
|
+
return i + 1;
|
|
204
|
+
}
|
|
205
|
+
this.errors.push(createCompilerDiagnostic(1382 /* Diagnostics.Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_false_or_null_on_command_line */, name));
|
|
206
|
+
return value === 'true' ? i + 1 : i;
|
|
207
|
+
}
|
|
208
|
+
this.errors.push(createCompilerDiagnostic(1237 /* Diagnostics.Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_null_on_command_line */, name));
|
|
209
|
+
return value !== '' && !value.startsWith('-') ? i + 1 : i;
|
|
210
|
+
}
|
|
211
|
+
if (next === undefined) {
|
|
212
|
+
if (option.kind === 'boolean') {
|
|
213
|
+
this.raw.set(name, true);
|
|
214
|
+
return i;
|
|
215
|
+
}
|
|
216
|
+
this.errors.push(createCompilerDiagnostic(mode.missingArgument, name, valueTypeName(option)));
|
|
217
|
+
if (option.kind === 'list')
|
|
218
|
+
this.raw.set(name, []);
|
|
219
|
+
else if (option.kind === 'enum')
|
|
220
|
+
this.errors.push(invalidEnumValueError(option));
|
|
221
|
+
return i;
|
|
222
|
+
}
|
|
223
|
+
if (next === 'null') {
|
|
224
|
+
this.raw.set(name, null);
|
|
225
|
+
return i + 1;
|
|
226
|
+
}
|
|
227
|
+
switch (option.kind) {
|
|
228
|
+
case 'number': {
|
|
229
|
+
const value = parseInteger(next);
|
|
230
|
+
if (value === undefined) {
|
|
231
|
+
this.errors.push(createCompilerDiagnostic(mode.missingArgument, name, 'number'));
|
|
232
|
+
}
|
|
233
|
+
else if (value >= (option.minValue ?? 0)) {
|
|
234
|
+
this.raw.set(name, value);
|
|
235
|
+
}
|
|
236
|
+
else {
|
|
237
|
+
this.errors.push(createCompilerDiagnostic(1116 /* Diagnostics.Option_0_requires_value_to_be_greater_than_1 */, name, String(option.minValue ?? 0)));
|
|
238
|
+
}
|
|
239
|
+
return i + 1;
|
|
240
|
+
}
|
|
241
|
+
case 'boolean':
|
|
242
|
+
// The value is optional: only a literal `true` or `false` is consumed.
|
|
243
|
+
this.raw.set(name, next !== 'false');
|
|
244
|
+
return next === 'true' || next === 'false' ? i + 1 : i;
|
|
245
|
+
case 'string':
|
|
246
|
+
if (this.validateString(option, next))
|
|
247
|
+
this.raw.set(name, next);
|
|
248
|
+
return i + 1;
|
|
249
|
+
case 'list': {
|
|
250
|
+
const errorCount = this.errors.length;
|
|
251
|
+
const values = this.parseList(option, next);
|
|
252
|
+
this.raw.set(name, values ?? []);
|
|
253
|
+
if (values === undefined)
|
|
254
|
+
this.droppedLists.add(name);
|
|
255
|
+
else
|
|
256
|
+
this.droppedLists.delete(name);
|
|
257
|
+
return (values !== undefined && values.length > 0) || this.errors.length > errorCount ? i + 1 : i;
|
|
258
|
+
}
|
|
259
|
+
case 'enum':
|
|
260
|
+
this.raw.set(name, this.parseEnumValue(option, trimWhiteSpaceLike(next)));
|
|
261
|
+
return i + 1;
|
|
262
|
+
default:
|
|
263
|
+
throw new Error(`Option '${name}' of kind '${option.kind}' can't be given on the command line.`);
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
/** Parses comma-separated items; `undefined` if there were items but none was kept. */
|
|
267
|
+
parseList(option, text) {
|
|
268
|
+
const element = option.element;
|
|
269
|
+
const value = trimSpace(text);
|
|
270
|
+
if (element === undefined || value === '' || value.startsWith('-'))
|
|
271
|
+
return [];
|
|
272
|
+
const result = [];
|
|
273
|
+
for (const item of value.split(',')) {
|
|
274
|
+
if (element.kind === 'string') {
|
|
275
|
+
if (this.validateString(element, item) && item !== '')
|
|
276
|
+
result.push(item);
|
|
277
|
+
}
|
|
278
|
+
else if (element.kind === 'enum') {
|
|
279
|
+
const converted = this.parseEnumValue(element, trimWhiteSpaceLike(item));
|
|
280
|
+
if (typeof converted === 'string' && converted !== '')
|
|
281
|
+
result.push(converted);
|
|
282
|
+
}
|
|
283
|
+
else {
|
|
284
|
+
throw new Error(`Lists of ${element.kind} are not supported.`);
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
return result.length > 0 ? result : undefined;
|
|
288
|
+
}
|
|
289
|
+
/** Maps an enum name to its value; reports unknown names. An empty name is `null`. */
|
|
290
|
+
parseEnumValue(option, text) {
|
|
291
|
+
if (text === '')
|
|
292
|
+
return null;
|
|
293
|
+
const value = option.values?.get(text.toLowerCase());
|
|
294
|
+
if (value !== undefined)
|
|
295
|
+
return value;
|
|
296
|
+
this.errors.push(invalidEnumValueError(option));
|
|
297
|
+
return null;
|
|
298
|
+
}
|
|
299
|
+
/** Runs an option's extra validation; returns whether the value is valid. */
|
|
300
|
+
validateString(option, value) {
|
|
301
|
+
if (option.extraValidation === 'spec') {
|
|
302
|
+
const message = specError(value);
|
|
303
|
+
if (message !== undefined) {
|
|
304
|
+
this.errors.push(createCompilerDiagnostic(message));
|
|
305
|
+
return false;
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
else if (option.extraValidation === 'locale' && !isValidLocale(value)) {
|
|
309
|
+
this.errors.push(createCompilerDiagnostic(1225 /* Diagnostics.Locale_must_be_an_IETF_BCP_47_language_tag_Examples_Colon_0_1 */, 'en', 'ja-jp'));
|
|
310
|
+
return false;
|
|
311
|
+
}
|
|
312
|
+
return true;
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
function valueTypeName(option) {
|
|
316
|
+
if (option.kind === 'list')
|
|
317
|
+
return 'Array';
|
|
318
|
+
if (option.kind === 'listOrElement')
|
|
319
|
+
return (option.element?.kind ?? 'string') + ' or Array';
|
|
320
|
+
return option.kind;
|
|
321
|
+
}
|
|
322
|
+
function invalidEnumValueError(option) {
|
|
323
|
+
return createCompilerDiagnostic(1224 /* Diagnostics.Argument_for_0_option_must_be_Colon_1 */, '--' + option.name, enumNamesList(option));
|
|
324
|
+
}
|
|
325
|
+
/** `'a', 'b', 'c'`: the option's value names without deprecated ones. */
|
|
326
|
+
export function enumNamesList(option) {
|
|
327
|
+
const names = [];
|
|
328
|
+
if (option.values !== undefined) {
|
|
329
|
+
for (const name of option.values.keys()) {
|
|
330
|
+
if (option.deprecatedValues?.has(name) !== true)
|
|
331
|
+
names.push(name);
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
return "'" + names.join("', '") + "'";
|
|
335
|
+
}
|
|
336
|
+
/** Rejects `..` after a `**` wildcard in exclude specs. */
|
|
337
|
+
function specError(spec) {
|
|
338
|
+
const wildcard = spec.startsWith('**/') ? 0 : spec.indexOf('/**/');
|
|
339
|
+
if (wildcard === -1)
|
|
340
|
+
return undefined;
|
|
341
|
+
const lastDotDot = spec.endsWith('/..') ? spec.length : spec.lastIndexOf('/../');
|
|
342
|
+
return lastDotDot > wildcard
|
|
343
|
+
? 1140 /* Diagnostics.File_specification_cannot_contain_a_parent_directory_that_appears_after_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0 */
|
|
344
|
+
: undefined;
|
|
345
|
+
}
|
|
346
|
+
/** Parses a decimal 64-bit integer with an optional sign, like Go's `strconv.Atoi`. */
|
|
347
|
+
function parseInteger(text) {
|
|
348
|
+
let start = 0;
|
|
349
|
+
if (text.startsWith('+') || text.startsWith('-'))
|
|
350
|
+
start = 1;
|
|
351
|
+
if (start === text.length)
|
|
352
|
+
return undefined;
|
|
353
|
+
for (let i = start; i < text.length; i++) {
|
|
354
|
+
const ch = text.charCodeAt(i);
|
|
355
|
+
if (ch < 48 || ch > 57)
|
|
356
|
+
return undefined;
|
|
357
|
+
}
|
|
358
|
+
let digits = text.slice(start);
|
|
359
|
+
while (digits.length > 1 && digits.startsWith('0'))
|
|
360
|
+
digits = digits.slice(1);
|
|
361
|
+
const limit = text.startsWith('-') ? '9223372036854775808' : '9223372036854775807';
|
|
362
|
+
if (digits.length > limit.length || (digits.length === limit.length && digits > limit))
|
|
363
|
+
return undefined;
|
|
364
|
+
return Number(text);
|
|
365
|
+
}
|
|
366
|
+
function trimSpace(text) {
|
|
367
|
+
let start = 0;
|
|
368
|
+
let end = text.length;
|
|
369
|
+
while (start < end && isUnicodeWhiteSpace(text.charCodeAt(start)))
|
|
370
|
+
start++;
|
|
371
|
+
while (end > start && isUnicodeWhiteSpace(text.charCodeAt(end - 1)))
|
|
372
|
+
end--;
|
|
373
|
+
return text.slice(start, end);
|
|
374
|
+
}
|
|
375
|
+
function trimWhiteSpaceLike(text) {
|
|
376
|
+
let start = 0;
|
|
377
|
+
let end = text.length;
|
|
378
|
+
while (start < end && isWhiteSpaceLike(text.charCodeAt(start)))
|
|
379
|
+
start++;
|
|
380
|
+
while (end > start && isWhiteSpaceLike(text.charCodeAt(end - 1)))
|
|
381
|
+
end--;
|
|
382
|
+
return text.slice(start, end);
|
|
383
|
+
}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What `tsc` compiles: a checked program, plain or incremental, with the diagnostics it reports and
|
|
3
|
+
* the emit it does, like tsgo's `ProgramLike`.
|
|
4
|
+
*/
|
|
5
|
+
import type { SourceFile } from './ast.js';
|
|
6
|
+
import type { Diagnostic } from './diagnostics.js';
|
|
7
|
+
import { EmitOnly, EmitResult } from './emitter.js';
|
|
8
|
+
import { type CompilerOptions } from './options.js';
|
|
9
|
+
import type { Program } from './program.js';
|
|
10
|
+
import { CheckedProgram } from './program-checker.js';
|
|
11
|
+
import { DeclarationGlobals } from './transformers/declarations-syntactic.js';
|
|
12
|
+
import { type MergedGlobals } from './transformers/reference-resolver.js';
|
|
13
|
+
/** Where emit writes files. */
|
|
14
|
+
export declare abstract class OutputWriter {
|
|
15
|
+
/**
|
|
16
|
+
* Writes `text` to `fileName`; returns an error message, `''`, or `skippedWrite` for a file left
|
|
17
|
+
* alone. `declarationDiagnostics` are the errors of a forced declaration emit.
|
|
18
|
+
*/
|
|
19
|
+
abstract write(fileName: string, text: string, declarationDiagnostics: readonly Diagnostic[]): string;
|
|
20
|
+
}
|
|
21
|
+
/** Keeps the outputs written to it, as file name and text alternately, instead of writing them. */
|
|
22
|
+
export declare class HoldingWriter extends OutputWriter {
|
|
23
|
+
private outputs;
|
|
24
|
+
write(fileName: string, text: string, _declarationDiagnostics: readonly Diagnostic[]): string;
|
|
25
|
+
/** The outputs kept since the last call. */
|
|
26
|
+
take(): string[];
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Writes the outputs a checker thread held (`EmitResult.heldOutputs`) with `writer`; returns the emit
|
|
30
|
+
* result as if the thread had written them: an output that fails to be written is an error instead of
|
|
31
|
+
* an emitted file, and one the writer leaves unwritten (`skippedWrite`) isn't an emitted file.
|
|
32
|
+
*/
|
|
33
|
+
export declare function writeHeldOutputs(result: EmitResult, writer: OutputWriter): EmitResult;
|
|
34
|
+
/** Collects what a forced declaration emit produces instead of writing it. */
|
|
35
|
+
export declare class CapturingWriter extends OutputWriter {
|
|
36
|
+
/** Whether a file was written; its text can be empty. */
|
|
37
|
+
written: boolean;
|
|
38
|
+
text: string;
|
|
39
|
+
diagnostics: readonly Diagnostic[];
|
|
40
|
+
write(_fileName: string, text: string, declarationDiagnostics: readonly Diagnostic[]): string;
|
|
41
|
+
}
|
|
42
|
+
/** Phase timings in milliseconds, for `--diagnostics`. */
|
|
43
|
+
export declare class CompileTimes {
|
|
44
|
+
configTime: number;
|
|
45
|
+
buildInfoReadTime: number;
|
|
46
|
+
parseTime: number;
|
|
47
|
+
bindTime: number;
|
|
48
|
+
checkTime: number;
|
|
49
|
+
emitTime: number;
|
|
50
|
+
changesComputeTime: number;
|
|
51
|
+
totalTime: number;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* What the emit resolvers of a program index for all its files: the globals of emit's name
|
|
55
|
+
* resolution and, where declarations are resolved, those of declaration emit and the files by path.
|
|
56
|
+
* The thread that shares a program with checker threads builds them before publishing it
|
|
57
|
+
* (`shareWithCheckers`), so that the checkers' resolvers use one copy instead of each building its own.
|
|
58
|
+
*/
|
|
59
|
+
export declare class EmitIndexes {
|
|
60
|
+
readonly globals: MergedGlobals;
|
|
61
|
+
readonly declarations: DeclarationGlobals | undefined;
|
|
62
|
+
constructor(program: Program);
|
|
63
|
+
}
|
|
64
|
+
/** A checked program and the emit of its files. */
|
|
65
|
+
export declare class ProgramEmitter {
|
|
66
|
+
readonly checked: CheckedProgram;
|
|
67
|
+
private host;
|
|
68
|
+
readonly program: Program;
|
|
69
|
+
constructor(checked: CheckedProgram);
|
|
70
|
+
/**
|
|
71
|
+
* The emit host, whose resolver resolves declarations where the options emit them or keep build info,
|
|
72
|
+
* or once `declarations` asks for it: a watch without build info computes the shape signatures of its
|
|
73
|
+
* rebuilds from forced declaration emit (`forcedDeclaration`).
|
|
74
|
+
*/
|
|
75
|
+
private getHost;
|
|
76
|
+
emit(files: readonly SourceFile[], emitOnly: EmitOnly, writer: OutputWriter): EmitResult;
|
|
77
|
+
/** The declaration text and errors of `file`, emitted even without `declaration`. */
|
|
78
|
+
forcedDeclaration(file: SourceFile): CapturingWriter;
|
|
79
|
+
}
|
|
80
|
+
/** A program as `tsc` compiles it. */
|
|
81
|
+
export declare abstract class CompilerProgram {
|
|
82
|
+
readonly checked: CheckedProgram;
|
|
83
|
+
readonly times: CompileTimes;
|
|
84
|
+
readonly emitter: ProgramEmitter;
|
|
85
|
+
constructor(checked: CheckedProgram, times: CompileTimes);
|
|
86
|
+
get program(): Program;
|
|
87
|
+
get options(): CompilerOptions;
|
|
88
|
+
getConfigFileParsingDiagnostics(): readonly Diagnostic[];
|
|
89
|
+
getSyntacticDiagnostics(): Diagnostic[];
|
|
90
|
+
getProgramDiagnostics(): Diagnostic[];
|
|
91
|
+
/** See `CheckedProgram.getGlobalDiagnostics`. */
|
|
92
|
+
getGlobalDiagnostics(withCheckerThreads?: boolean): Diagnostic[];
|
|
93
|
+
/** Semantic diagnostics of every file. */
|
|
94
|
+
abstract getSemanticDiagnostics(): Diagnostic[];
|
|
95
|
+
/** Declaration emit errors of every file. */
|
|
96
|
+
abstract getDeclarationDiagnostics(): Diagnostic[];
|
|
97
|
+
/** Emits the program (or what changed) with `writer`. */
|
|
98
|
+
abstract emit(writer: OutputWriter): EmitResult;
|
|
99
|
+
}
|
|
100
|
+
export declare const discardingWriter: OutputWriter;
|
|
101
|
+
/** The declaration emit errors of `file` (none if it is not emitted). */
|
|
102
|
+
export declare function declarationDiagnosticsOfFile(emitter: ProgramEmitter, file: SourceFile): Diagnostic[];
|
|
103
|
+
/** A program compiled from scratch. */
|
|
104
|
+
export declare class PlainProgram extends CompilerProgram {
|
|
105
|
+
getSemanticDiagnostics(): Diagnostic[];
|
|
106
|
+
getDeclarationDiagnostics(): Diagnostic[];
|
|
107
|
+
emit(writer: OutputWriter): EmitResult;
|
|
108
|
+
}
|
|
109
|
+
/** Under `noEmitOnError`, a skipped emit with the errors that prevent it; otherwise `undefined`. */
|
|
110
|
+
export declare function handleNoEmitOnError(program: CompilerProgram): EmitResult | undefined;
|
|
111
|
+
/**
|
|
112
|
+
* Config and syntax errors; without syntax errors, program, global and semantic errors too, and
|
|
113
|
+
* declaration errors under `noEmit` (or `withDeclarationDiagnostics`).
|
|
114
|
+
*/
|
|
115
|
+
export declare function getDiagnosticsOfProgram(program: CompilerProgram, withDeclarationDiagnostics: boolean): Diagnostic[];
|
|
116
|
+
/** Combines emit results in order. */
|
|
117
|
+
export declare function combineEmitResults(results: readonly EmitResult[]): EmitResult;
|
|
118
|
+
export { CheckedProgram };
|