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,315 @@
|
|
|
1
|
+
// Deprecation suggestions: uses of declarations marked `@deprecated` in JSDoc report
|
|
2
|
+
// `'X' is deprecated.` with the tag as related information.
|
|
3
|
+
import { JSDoc, JSDocDeprecatedTag, getExpression, getName, getTagName, getText, } from './ast.js';
|
|
4
|
+
import { isTypeDeclaration } from './ast-utilities.js';
|
|
5
|
+
import { isAccessExpression, getCombinedNodeFlags, getSourceFileOfNode, skipParentheses } from './binder-utilities.js';
|
|
6
|
+
import { createDiagnosticForNode } from './checker.js';
|
|
7
|
+
import { getJSDoc } from './parser.js';
|
|
8
|
+
import { getDeclarationOfAliasSymbol, getParentOfSymbol, resolveAlias } from './checker-symbols.js';
|
|
9
|
+
import { getTargetOfAliasDeclaration } from './checker-modules.js';
|
|
10
|
+
import { hasMatchingArgument } from './checker-narrowing.js';
|
|
11
|
+
import { entityNameToString } from './checker-expressions.js';
|
|
12
|
+
import { isErrorType } from './checker-type-factory.js';
|
|
13
|
+
import { getPropertyOfType } from './checker-members.js';
|
|
14
|
+
import { signatureToString } from './type-printer.js';
|
|
15
|
+
/** Whether `declaration`, or the statement it belongs to, has a `@deprecated` JSDoc tag. */
|
|
16
|
+
export function isDeprecatedDeclaration(declaration) {
|
|
17
|
+
if ((getCombinedNodeFlags(declaration) & 67108864 /* NodeFlags.PossiblyContainsDeprecatedTag */) === 0)
|
|
18
|
+
return false;
|
|
19
|
+
// The JSDoc is on the node with the flag, e.g. the variable statement of a declaration.
|
|
20
|
+
for (let n = declaration; n !== undefined; n = n.parent)
|
|
21
|
+
if ((n.flags & 67108864 /* NodeFlags.PossiblyContainsDeprecatedTag */) !== 0)
|
|
22
|
+
return getJSDocDeprecatedTag(n) !== undefined;
|
|
23
|
+
return false;
|
|
24
|
+
}
|
|
25
|
+
function getJSDocDeprecatedTag(node) {
|
|
26
|
+
for (const jsDoc of getJSDoc(getSourceFileOfNode(node), node)) {
|
|
27
|
+
if (!(jsDoc instanceof JSDoc) || jsDoc.tags === undefined)
|
|
28
|
+
continue;
|
|
29
|
+
for (const tag of jsDoc.tags.nodes)
|
|
30
|
+
if (tag instanceof JSDocDeprecatedTag)
|
|
31
|
+
return tag;
|
|
32
|
+
}
|
|
33
|
+
return undefined;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Whether `symbol` is deprecated: an interface member when any declaration is, other merged
|
|
37
|
+
* members when all are.
|
|
38
|
+
*/
|
|
39
|
+
export function isDeprecatedSymbol(c, symbol) {
|
|
40
|
+
const declarations = symbol.declarations;
|
|
41
|
+
const parentSymbol = getParentOfSymbol(c, symbol);
|
|
42
|
+
if (parentSymbol !== undefined && declarations.length > 1)
|
|
43
|
+
return (parentSymbol.flags & 64 /* SymbolFlags.Interface */) !== 0
|
|
44
|
+
? someDeprecatedDeclaration(declarations)
|
|
45
|
+
: everyDeprecatedDeclaration(declarations);
|
|
46
|
+
return ((symbol.valueDeclaration !== undefined && isDeprecatedDeclaration(symbol.valueDeclaration)) ||
|
|
47
|
+
(declarations.length !== 0 && everyDeprecatedDeclaration(declarations)));
|
|
48
|
+
}
|
|
49
|
+
function someDeprecatedDeclaration(declarations) {
|
|
50
|
+
for (const d of declarations)
|
|
51
|
+
if (isDeprecatedDeclaration(d))
|
|
52
|
+
return true;
|
|
53
|
+
return false;
|
|
54
|
+
}
|
|
55
|
+
function everyDeprecatedDeclaration(declarations) {
|
|
56
|
+
for (const d of declarations)
|
|
57
|
+
if (!isDeprecatedDeclaration(d))
|
|
58
|
+
return false;
|
|
59
|
+
return true;
|
|
60
|
+
}
|
|
61
|
+
export function addDeprecatedSuggestion(c, location, declarations, deprecatedEntity) {
|
|
62
|
+
const diagnostic = createDiagnosticForNode(location, 1475 /* Diagnostics.X_0_is_deprecated */, [deprecatedEntity]);
|
|
63
|
+
return addDeprecatedSuggestionWorker(c, declarations, diagnostic);
|
|
64
|
+
}
|
|
65
|
+
function addDeprecatedSuggestionWorker(c, declarations, diagnostic) {
|
|
66
|
+
for (const declaration of declarations) {
|
|
67
|
+
const deprecatedTag = getJSDocDeprecatedTag(declaration);
|
|
68
|
+
if (deprecatedTag !== undefined) {
|
|
69
|
+
diagnostic.addRelatedInfo(createDiagnosticForNode(deprecatedTag, 930 /* Diagnostics.The_declaration_was_marked_as_deprecated_here */, []));
|
|
70
|
+
break;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
c.addSuggestion(diagnostic);
|
|
74
|
+
return diagnostic;
|
|
75
|
+
}
|
|
76
|
+
/** Reports a call, `new`, tagged template, decorator or JSX element resolved to a deprecated signature. */
|
|
77
|
+
export function checkDeprecatedSignature(c, signature, node) {
|
|
78
|
+
if ((signature.flags & 256 /* SignatureFlags.IsSignatureCandidateForOverloadFailure */) !== 0)
|
|
79
|
+
return;
|
|
80
|
+
const declaration = signature.declaration;
|
|
81
|
+
if (declaration === undefined || !isDeprecatedDeclaration(declaration))
|
|
82
|
+
return;
|
|
83
|
+
const name = tryGetPropertyAccessOrIdentifierToString(getInvokedExpression(node));
|
|
84
|
+
const signatureString = signatureToString(c, signature);
|
|
85
|
+
const diagnostic = name !== ''
|
|
86
|
+
? createDiagnosticForNode(getDeprecatedSuggestionNode(node), 1477 /* Diagnostics.The_signature_0_of_1_is_deprecated */, [
|
|
87
|
+
signatureString,
|
|
88
|
+
name,
|
|
89
|
+
])
|
|
90
|
+
: createDiagnosticForNode(getDeprecatedSuggestionNode(node), 1475 /* Diagnostics.X_0_is_deprecated */, [signatureString]);
|
|
91
|
+
addDeprecatedSuggestionWorker(c, [declaration], diagnostic);
|
|
92
|
+
}
|
|
93
|
+
function getInvokedExpression(node) {
|
|
94
|
+
switch (node.kind) {
|
|
95
|
+
case 216 /* SyntaxKind.TaggedTemplateExpression */:
|
|
96
|
+
return node.tag;
|
|
97
|
+
case 287 /* SyntaxKind.JsxOpeningElement */:
|
|
98
|
+
case 286 /* SyntaxKind.JsxSelfClosingElement */:
|
|
99
|
+
return getTagName(node);
|
|
100
|
+
case 227 /* SyntaxKind.BinaryExpression */:
|
|
101
|
+
return node.right;
|
|
102
|
+
case 290 /* SyntaxKind.JsxOpeningFragment */:
|
|
103
|
+
return node;
|
|
104
|
+
}
|
|
105
|
+
return getExpression(node);
|
|
106
|
+
}
|
|
107
|
+
function tryGetPropertyAccessOrIdentifierToString(expr) {
|
|
108
|
+
switch (expr.kind) {
|
|
109
|
+
case 212 /* SyntaxKind.PropertyAccessExpression */: {
|
|
110
|
+
const base = tryGetPropertyAccessOrIdentifierToString(getExpression(expr));
|
|
111
|
+
return base !== '' ? base + '.' + entityNameToString(getName(expr)) : '';
|
|
112
|
+
}
|
|
113
|
+
case 213 /* SyntaxKind.ElementAccessExpression */: {
|
|
114
|
+
const base = tryGetPropertyAccessOrIdentifierToString(getExpression(expr));
|
|
115
|
+
const argument = expr.argumentExpression;
|
|
116
|
+
return base !== '' && isPropertyNameLiteral(argument) ? base + '.' + getText(argument) : '';
|
|
117
|
+
}
|
|
118
|
+
case 79 /* SyntaxKind.Identifier */:
|
|
119
|
+
return getText(expr);
|
|
120
|
+
case 296 /* SyntaxKind.JsxNamespacedName */: {
|
|
121
|
+
const name = expr;
|
|
122
|
+
return getText(name.namespace) + ':' + getText(name.name);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
return '';
|
|
126
|
+
}
|
|
127
|
+
function isPropertyNameLiteral(node) {
|
|
128
|
+
switch (node.kind) {
|
|
129
|
+
case 79 /* SyntaxKind.Identifier */:
|
|
130
|
+
case 80 /* SyntaxKind.PrivateIdentifier */:
|
|
131
|
+
case 10 /* SyntaxKind.StringLiteral */:
|
|
132
|
+
case 8 /* SyntaxKind.NumericLiteral */:
|
|
133
|
+
case 14 /* SyntaxKind.NoSubstitutionTemplateLiteral */:
|
|
134
|
+
case 9 /* SyntaxKind.BigIntLiteral */:
|
|
135
|
+
return true;
|
|
136
|
+
}
|
|
137
|
+
return false;
|
|
138
|
+
}
|
|
139
|
+
/** The part of a use that a deprecation suggestion underlines. */
|
|
140
|
+
export function getDeprecatedSuggestionNode(node) {
|
|
141
|
+
const current = skipParentheses(node);
|
|
142
|
+
switch (current.kind) {
|
|
143
|
+
case 214 /* SyntaxKind.CallExpression */:
|
|
144
|
+
case 171 /* SyntaxKind.Decorator */:
|
|
145
|
+
case 215 /* SyntaxKind.NewExpression */:
|
|
146
|
+
return getDeprecatedSuggestionNode(getExpression(current));
|
|
147
|
+
case 216 /* SyntaxKind.TaggedTemplateExpression */:
|
|
148
|
+
return getDeprecatedSuggestionNode(current.tag);
|
|
149
|
+
case 287 /* SyntaxKind.JsxOpeningElement */:
|
|
150
|
+
case 286 /* SyntaxKind.JsxSelfClosingElement */:
|
|
151
|
+
return getDeprecatedSuggestionNode(getTagName(current));
|
|
152
|
+
case 213 /* SyntaxKind.ElementAccessExpression */:
|
|
153
|
+
return current.argumentExpression;
|
|
154
|
+
case 212 /* SyntaxKind.PropertyAccessExpression */:
|
|
155
|
+
return getName(current);
|
|
156
|
+
case 184 /* SyntaxKind.TypeReference */: {
|
|
157
|
+
const typeName = current.typeName;
|
|
158
|
+
if (typeName.kind === 167 /* SyntaxKind.QualifiedName */)
|
|
159
|
+
return typeName.right;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
return current;
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Whether a use of a deprecated function or method counts: calls are reported through their
|
|
166
|
+
* signature, unless the reference is also an argument.
|
|
167
|
+
*/
|
|
168
|
+
function isUncalledFunctionReference(c, node, symbol) {
|
|
169
|
+
if ((symbol.flags & (16 /* SymbolFlags.Function */ | 8192 /* SymbolFlags.Method */)) === 0)
|
|
170
|
+
return true;
|
|
171
|
+
let parent = node.parent;
|
|
172
|
+
while (parent !== undefined && isAccessExpression(parent))
|
|
173
|
+
parent = parent.parent;
|
|
174
|
+
if (parent === undefined)
|
|
175
|
+
parent = node.parent;
|
|
176
|
+
if (isCallLikeExpression(parent))
|
|
177
|
+
return ((parent.kind === 214 /* SyntaxKind.CallExpression */ || parent.kind === 215 /* SyntaxKind.NewExpression */) &&
|
|
178
|
+
node.kind === 79 /* SyntaxKind.Identifier */ &&
|
|
179
|
+
hasMatchingArgument(c, parent, node));
|
|
180
|
+
for (const d of symbol.declarations)
|
|
181
|
+
if (isFunctionLikeKind(d.kind) && !isDeprecatedDeclaration(d))
|
|
182
|
+
return false;
|
|
183
|
+
return true;
|
|
184
|
+
}
|
|
185
|
+
function isCallLikeExpression(node) {
|
|
186
|
+
switch (node.kind) {
|
|
187
|
+
case 287 /* SyntaxKind.JsxOpeningElement */:
|
|
188
|
+
case 286 /* SyntaxKind.JsxSelfClosingElement */:
|
|
189
|
+
case 290 /* SyntaxKind.JsxOpeningFragment */:
|
|
190
|
+
case 214 /* SyntaxKind.CallExpression */:
|
|
191
|
+
case 215 /* SyntaxKind.NewExpression */:
|
|
192
|
+
case 216 /* SyntaxKind.TaggedTemplateExpression */:
|
|
193
|
+
case 171 /* SyntaxKind.Decorator */:
|
|
194
|
+
return true;
|
|
195
|
+
case 227 /* SyntaxKind.BinaryExpression */:
|
|
196
|
+
return node.operatorToken.kind === 103 /* SyntaxKind.InstanceOfKeyword */;
|
|
197
|
+
}
|
|
198
|
+
return false;
|
|
199
|
+
}
|
|
200
|
+
function isFunctionLikeKind(kind) {
|
|
201
|
+
switch (kind) {
|
|
202
|
+
case 263 /* SyntaxKind.FunctionDeclaration */:
|
|
203
|
+
case 175 /* SyntaxKind.MethodDeclaration */:
|
|
204
|
+
case 177 /* SyntaxKind.Constructor */:
|
|
205
|
+
case 178 /* SyntaxKind.GetAccessor */:
|
|
206
|
+
case 179 /* SyntaxKind.SetAccessor */:
|
|
207
|
+
case 219 /* SyntaxKind.FunctionExpression */:
|
|
208
|
+
case 220 /* SyntaxKind.ArrowFunction */:
|
|
209
|
+
case 174 /* SyntaxKind.MethodSignature */:
|
|
210
|
+
case 180 /* SyntaxKind.CallSignature */:
|
|
211
|
+
case 318 /* SyntaxKind.JSDocSignature */:
|
|
212
|
+
case 181 /* SyntaxKind.ConstructSignature */:
|
|
213
|
+
case 182 /* SyntaxKind.IndexSignature */:
|
|
214
|
+
case 185 /* SyntaxKind.FunctionType */:
|
|
215
|
+
case 186 /* SyntaxKind.ConstructorType */:
|
|
216
|
+
return true;
|
|
217
|
+
}
|
|
218
|
+
return false;
|
|
219
|
+
}
|
|
220
|
+
/** Resolves an alias, reporting the first deprecated alias along the way to its target. */
|
|
221
|
+
export function resolveAliasWithDeprecationCheck(c, symbol, location) {
|
|
222
|
+
if ((symbol.flags & 2097152 /* SymbolFlags.Alias */) === 0 ||
|
|
223
|
+
isDeprecatedSymbol(c, symbol) ||
|
|
224
|
+
getDeclarationOfAliasSymbol(symbol) === undefined)
|
|
225
|
+
return symbol;
|
|
226
|
+
const targetSymbol = resolveAlias(c, symbol);
|
|
227
|
+
if (targetSymbol === c.unknownSymbol)
|
|
228
|
+
return targetSymbol;
|
|
229
|
+
let current = symbol;
|
|
230
|
+
while ((current.flags & 2097152 /* SymbolFlags.Alias */) !== 0) {
|
|
231
|
+
const target = getImmediateAliasedSymbol(c, current);
|
|
232
|
+
if (target === undefined || target === targetSymbol)
|
|
233
|
+
break;
|
|
234
|
+
if (target.declarations.length !== 0) {
|
|
235
|
+
if (isDeprecatedSymbol(c, target)) {
|
|
236
|
+
addDeprecatedSuggestion(c, location, target.declarations, target.name);
|
|
237
|
+
break;
|
|
238
|
+
}
|
|
239
|
+
if (current === targetSymbol)
|
|
240
|
+
break;
|
|
241
|
+
current = target;
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
return targetSymbol;
|
|
245
|
+
}
|
|
246
|
+
function getImmediateAliasedSymbol(c, symbol) {
|
|
247
|
+
const links = c.symbolLinks(symbol);
|
|
248
|
+
if (links.immediateTarget === undefined)
|
|
249
|
+
links.immediateTarget = getTargetOfAliasDeclaration(c, getDeclarationOfAliasSymbol(symbol));
|
|
250
|
+
return links.immediateTarget;
|
|
251
|
+
}
|
|
252
|
+
// ---- Uses
|
|
253
|
+
/** Resolves the alias an identifier refers to and reports a deprecated target. */
|
|
254
|
+
export function checkDeprecatedIdentifier(c, node, localOrExportSymbol) {
|
|
255
|
+
const targetSymbol = resolveAliasWithDeprecationCheck(c, localOrExportSymbol, node);
|
|
256
|
+
if (targetSymbol.declarations.length !== 0 &&
|
|
257
|
+
isDeprecatedSymbol(c, targetSymbol) &&
|
|
258
|
+
isUncalledFunctionReference(c, node, targetSymbol))
|
|
259
|
+
addDeprecatedSuggestion(c, node, targetSymbol.declarations, getText(node));
|
|
260
|
+
}
|
|
261
|
+
/** Reports a property access to a deprecated property. */
|
|
262
|
+
export function checkDeprecatedProperty(c, node, right, prop) {
|
|
263
|
+
const targetPropSymbol = resolveAliasWithDeprecationCheck(c, prop, right);
|
|
264
|
+
if (isDeprecatedSymbol(c, targetPropSymbol) &&
|
|
265
|
+
isUncalledFunctionReference(c, node, targetPropSymbol) &&
|
|
266
|
+
targetPropSymbol.declarations.length !== 0)
|
|
267
|
+
addDeprecatedSuggestion(c, right, targetPropSymbol.declarations, getText(right));
|
|
268
|
+
}
|
|
269
|
+
/** Reports a property access resolved through a deprecated index signature. */
|
|
270
|
+
export function checkDeprecatedIndexSignature(c, right, declaration) {
|
|
271
|
+
if (declaration !== undefined && isDeprecatedDeclaration(declaration))
|
|
272
|
+
addDeprecatedSuggestion(c, right, [declaration], getText(right));
|
|
273
|
+
}
|
|
274
|
+
/** Reports an element access or indexed access type selecting a deprecated property. */
|
|
275
|
+
export function checkDeprecatedIndexedAccess(c, accessNode, prop, propName) {
|
|
276
|
+
if (prop.declarations.length === 0 ||
|
|
277
|
+
!isDeprecatedSymbol(c, prop) ||
|
|
278
|
+
!isUncalledFunctionReference(c, accessNode, prop))
|
|
279
|
+
return;
|
|
280
|
+
const deprecatedNode = accessNode.kind === 213 /* SyntaxKind.ElementAccessExpression */
|
|
281
|
+
? accessNode.argumentExpression
|
|
282
|
+
: accessNode.kind === 200 /* SyntaxKind.IndexedAccessType */
|
|
283
|
+
? accessNode.indexType
|
|
284
|
+
: accessNode;
|
|
285
|
+
addDeprecatedSuggestion(c, deprecatedNode, prop.declarations, propName);
|
|
286
|
+
}
|
|
287
|
+
/** Reports a type reference or import type naming a deprecated type. */
|
|
288
|
+
export function checkDeprecatedTypeReference(c, node, type) {
|
|
289
|
+
if (isErrorType(c, type))
|
|
290
|
+
return;
|
|
291
|
+
const symbol = c.resolvedSymbols.get(node.id);
|
|
292
|
+
if (symbol === undefined)
|
|
293
|
+
return;
|
|
294
|
+
for (const d of symbol.declarations) {
|
|
295
|
+
if (isTypeDeclaration(d) && isDeprecatedDeclaration(d)) {
|
|
296
|
+
addDeprecatedSuggestion(c, getDeprecatedSuggestionNode(node), symbol.declarations, symbol.name);
|
|
297
|
+
return;
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
/** Reports an import specifier importing a deprecated declaration. */
|
|
302
|
+
export function checkDeprecatedImportSpecifier(c, node, symbol) {
|
|
303
|
+
const targetSymbol = resolveAliasWithDeprecationCheck(c, symbol, node);
|
|
304
|
+
if (isDeprecatedSymbol(c, targetSymbol) && targetSymbol.declarations.length !== 0)
|
|
305
|
+
addDeprecatedSuggestion(c, node, targetSymbol.declarations, targetSymbol.name);
|
|
306
|
+
}
|
|
307
|
+
/** Reports a JSX attribute setting a deprecated property of the element's contextual props type. */
|
|
308
|
+
export function checkDeprecatedJsxAttribute(c, contextualType, attribute) {
|
|
309
|
+
const name = attribute.name;
|
|
310
|
+
if (name.kind !== 79 /* SyntaxKind.Identifier */)
|
|
311
|
+
return;
|
|
312
|
+
const prop = getPropertyOfType(c, contextualType, getText(name));
|
|
313
|
+
if (prop !== undefined && prop.declarations.length !== 0 && isDeprecatedSymbol(c, prop))
|
|
314
|
+
addDeprecatedSuggestion(c, name, prop.declarations, getText(name));
|
|
315
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { type BindingElement, type Node } from './ast.js';
|
|
2
|
+
import { type Symbol } from './symbol.js';
|
|
3
|
+
import type { Checker } from './checker.js';
|
|
4
|
+
import { CheckMode, type Type } from './checker-types.js';
|
|
5
|
+
/** The type of a binding element, from the type of the declaration it destructures. */
|
|
6
|
+
export declare function getTypeForBindingElement(c: Checker, declaration: Node): Type | undefined;
|
|
7
|
+
export declare function getTypeForBindingElementParent(c: Checker, node: Node, checkMode: CheckMode): Type | undefined;
|
|
8
|
+
export declare function getBindingElementTypeFromParentType(c: Checker, declaration: BindingElement, parentTypeIn: Type, noTupleBoundsCheck: boolean): Type;
|
|
9
|
+
/** `t` without undefined, also when it's a generic type whose constraint includes undefined. */
|
|
10
|
+
export declare function getNonUndefinedType(c: Checker, t: Type): Type;
|
|
11
|
+
/** The type implied by a binding pattern, for declarations without annotations or initializers. */
|
|
12
|
+
export declare function getTypeFromBindingPattern(c: Checker, pattern: Node, includePatternInType: boolean, reportErrors: boolean): Type;
|
|
13
|
+
/**
|
|
14
|
+
* The initializer type of a parameter or its binding element, padded with the members its binding
|
|
15
|
+
* pattern defaults or binds past the end of a tuple.
|
|
16
|
+
*/
|
|
17
|
+
export declare function padParameterInitializerType(c: Checker, declaration: Node, t: Type): Type;
|
|
18
|
+
/**
|
|
19
|
+
* A parameter's tuple initializer type, padded with optional elements for the pattern's elements
|
|
20
|
+
* past its end, so `([x, y] = [1])` gets `[number, any?]`.
|
|
21
|
+
*/
|
|
22
|
+
export declare function padTupleType(c: Checker, t: Type, pattern: Node): Type;
|
|
23
|
+
/** Checks an assignment of `sourceType` to a target, which may be an object or array literal pattern. */
|
|
24
|
+
export declare function checkDestructuringAssignment(c: Checker, node: Node, sourceTypeIn: Type, checkMode: CheckMode, rightIsThis: boolean): Type;
|
|
25
|
+
/** Whether a destructuring element has a default value. */
|
|
26
|
+
export declare function hasDefaultValue(node: Node): boolean;
|
|
27
|
+
/** The type of an object rest element: `source` without the named properties. */
|
|
28
|
+
export declare function getRestType(c: Checker, sourceIn: Type, properties: readonly Node[], symbol: Symbol | undefined): Type;
|
|
29
|
+
/** Approximates own properties: non-methods, plus methods declared outside classes. */
|
|
30
|
+
export declare function isSpreadableProperty(prop: Symbol): boolean;
|
|
31
|
+
/** `prop` as a member of a spread or rest type, with the given readonlyness. */
|
|
32
|
+
export declare function getSpreadSymbol(c: Checker, prop: Symbol, readonly: boolean): Symbol;
|
|
33
|
+
/** Whether a type may be spread into an object or destructured by an object rest element. */
|
|
34
|
+
export declare function isValidSpreadType(c: Checker, t: Type): boolean;
|