tsc-ts 0.0.9 → 0.1.0
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 +2 -2
- package/bin/tsc-ts.js +70 -1
- package/dist/api/compiler/ast-utilities.d.ts +19 -1
- package/dist/api/compiler/ast-utilities.js +180 -95
- package/dist/api/compiler/ast.d.ts +22 -15
- package/dist/api/compiler/ast.js +1026 -995
- package/dist/api/compiler/astnav.js +15 -15
- package/dist/api/compiler/binder-utilities.js +186 -186
- package/dist/api/compiler/binder.js +290 -263
- package/dist/api/compiler/character-codes.js +2 -2
- package/dist/api/compiler/checker-calls.js +178 -124
- package/dist/api/compiler/checker-classes.d.ts +14 -3
- package/dist/api/compiler/checker-classes.js +134 -90
- package/dist/api/compiler/checker-contextual.js +64 -61
- package/dist/api/compiler/checker-declaration-order.js +79 -79
- package/dist/api/compiler/checker-declarations.d.ts +1 -0
- package/dist/api/compiler/checker-declarations.js +160 -136
- package/dist/api/compiler/checker-declared-types.js +67 -65
- package/dist/api/compiler/checker-decorators.js +77 -77
- package/dist/api/compiler/checker-deprecation.d.ts +8 -3
- package/dist/api/compiler/checker-deprecation.js +76 -55
- package/dist/api/compiler/checker-destructuring.js +47 -45
- package/dist/api/compiler/checker-elaboration.js +24 -24
- package/dist/api/compiler/checker-emit-helpers.js +4 -4
- package/dist/api/compiler/checker-emit-resolver.d.ts +4 -2
- package/dist/api/compiler/checker-emit-resolver.js +25 -13
- package/dist/api/compiler/checker-evaluator.js +9 -9
- package/dist/api/compiler/checker-expressions.js +244 -211
- package/dist/api/compiler/checker-functions.js +113 -107
- package/dist/api/compiler/checker-generated-code.d.ts +0 -11
- package/dist/api/compiler/checker-generated-code.js +28 -52
- package/dist/api/compiler/checker-grammar.d.ts +1 -0
- package/dist/api/compiler/checker-grammar.js +472 -440
- package/dist/api/compiler/checker-heritage.js +91 -93
- package/dist/api/compiler/checker-inference.d.ts +77 -5
- package/dist/api/compiler/checker-inference.js +487 -107
- package/dist/api/compiler/checker-iteration.d.ts +0 -10
- package/dist/api/compiler/checker-iteration.js +35 -52
- package/dist/api/compiler/checker-javascript.js +14 -14
- package/dist/api/compiler/checker-jsdoc.d.ts +8 -10
- package/dist/api/compiler/checker-jsdoc.js +67 -58
- package/dist/api/compiler/checker-jsx.js +105 -88
- package/dist/api/compiler/checker-members.d.ts +9 -2
- package/dist/api/compiler/checker-members.js +212 -75
- package/dist/api/compiler/checker-modules.d.ts +15 -6
- package/dist/api/compiler/checker-modules.js +469 -309
- package/dist/api/compiler/checker-narrowing.js +273 -189
- package/dist/api/compiler/checker-object-literals.js +25 -22
- package/dist/api/compiler/checker-operators.js +126 -118
- package/dist/api/compiler/checker-overloads.js +27 -27
- package/dist/api/compiler/checker-property-access.js +59 -55
- package/dist/api/compiler/checker-services.d.ts +1 -0
- package/dist/api/compiler/checker-services.js +222 -210
- package/dist/api/compiler/checker-signatures.js +65 -49
- package/dist/api/compiler/checker-source-file.d.ts +5 -0
- package/dist/api/compiler/checker-source-file.js +154 -130
- package/dist/api/compiler/checker-statements.js +33 -32
- package/dist/api/compiler/checker-super.js +50 -50
- package/dist/api/compiler/checker-symbol-types.js +109 -93
- package/dist/api/compiler/checker-symbols.d.ts +13 -1
- package/dist/api/compiler/checker-symbols.js +264 -149
- package/dist/api/compiler/checker-type-factory.d.ts +5 -0
- package/dist/api/compiler/checker-type-factory.js +145 -36
- package/dist/api/compiler/checker-type-nodes.d.ts +1 -0
- package/dist/api/compiler/checker-type-nodes.js +179 -141
- package/dist/api/compiler/checker-type-operators.d.ts +2 -0
- package/dist/api/compiler/checker-type-operators.js +110 -63
- package/dist/api/compiler/checker-types.d.ts +80 -3
- package/dist/api/compiler/checker-types.js +121 -2
- package/dist/api/compiler/checker-unused.js +114 -118
- package/dist/api/compiler/checker-utilities.js +11 -11
- package/dist/api/compiler/checker.d.ts +104 -31
- package/dist/api/compiler/checker.js +181 -33
- package/dist/api/compiler/command-line.d.ts +1 -3
- package/dist/api/compiler/command-line.js +47 -44
- package/dist/api/compiler/compile-program.d.ts +42 -3
- package/dist/api/compiler/compile-program.js +139 -27
- package/dist/api/compiler/diagnostic-messages.d.ts +1849 -1774
- package/dist/api/compiler/diagnostic-messages.js +128 -122
- package/dist/api/compiler/diagnostics.d.ts +22 -0
- package/dist/api/compiler/diagnostics.js +93 -11
- package/dist/api/compiler/emitter.d.ts +7 -1
- package/dist/api/compiler/emitter.js +53 -11
- package/dist/api/compiler/file-include.d.ts +2 -1
- package/dist/api/compiler/file-include.js +11 -7
- package/dist/api/compiler/file-loader.d.ts +21 -1
- package/dist/api/compiler/file-loader.js +201 -48
- package/dist/api/compiler/instantiation.d.ts +7 -0
- package/dist/api/compiler/instantiation.js +101 -49
- package/dist/api/compiler/jsdoc.js +23 -23
- package/dist/api/compiler/link-tables.d.ts +48 -18
- package/dist/api/compiler/link-tables.js +80 -37
- package/dist/api/compiler/locales/cs-CZ.d.ts +1 -1
- package/dist/api/compiler/locales/cs-CZ.js +1 -1
- package/dist/api/compiler/locales/de-DE.d.ts +1 -1
- package/dist/api/compiler/locales/de-DE.js +1 -1
- package/dist/api/compiler/locales/es-ES.d.ts +1 -1
- package/dist/api/compiler/locales/es-ES.js +1 -1
- package/dist/api/compiler/locales/fr-FR.d.ts +1 -1
- package/dist/api/compiler/locales/fr-FR.js +1 -1
- package/dist/api/compiler/locales/it-IT.d.ts +1 -1
- package/dist/api/compiler/locales/it-IT.js +1 -1
- package/dist/api/compiler/locales/ja-JP.d.ts +1 -1
- package/dist/api/compiler/locales/ja-JP.js +1 -1
- package/dist/api/compiler/locales/ko-KR.d.ts +1 -1
- package/dist/api/compiler/locales/ko-KR.js +1 -1
- package/dist/api/compiler/locales/pl-PL.d.ts +1 -1
- package/dist/api/compiler/locales/pl-PL.js +1 -1
- package/dist/api/compiler/locales/pt-BR.d.ts +1 -1
- package/dist/api/compiler/locales/pt-BR.js +1 -1
- package/dist/api/compiler/locales/ru-RU.d.ts +1 -1
- package/dist/api/compiler/locales/ru-RU.js +1 -1
- package/dist/api/compiler/locales/tr-TR.d.ts +1 -1
- package/dist/api/compiler/locales/tr-TR.js +1 -1
- package/dist/api/compiler/locales/zh-CN.d.ts +1 -1
- package/dist/api/compiler/locales/zh-CN.js +1 -1
- package/dist/api/compiler/locales/zh-TW.d.ts +1 -1
- package/dist/api/compiler/locales/zh-TW.js +1 -1
- package/dist/api/compiler/module-resolution-types.js +6 -6
- package/dist/api/compiler/module-resolution.d.ts +10 -1
- package/dist/api/compiler/module-resolution.js +115 -84
- package/dist/api/compiler/module-specifiers.d.ts +15 -0
- package/dist/api/compiler/module-specifiers.js +24 -18
- package/dist/api/compiler/name-resolver.js +74 -65
- package/dist/api/compiler/node-builder-names.d.ts +11 -3
- package/dist/api/compiler/node-builder-names.js +210 -90
- package/dist/api/compiler/node-builder-pseudo.js +29 -31
- package/dist/api/compiler/node-builder-reuse.js +23 -22
- package/dist/api/compiler/node-builder.d.ts +18 -1
- package/dist/api/compiler/node-builder.js +191 -102
- package/dist/api/compiler/option-declarations.d.ts +2 -6
- package/dist/api/compiler/option-declarations.js +315 -375
- package/dist/api/compiler/options.d.ts +15 -33
- package/dist/api/compiler/options.js +21 -54
- package/dist/api/compiler/output-paths.d.ts +4 -1
- package/dist/api/compiler/output-paths.js +6 -11
- package/dist/api/compiler/package-json.d.ts +3 -3
- package/dist/api/compiler/package-json.js +11 -10
- package/dist/api/compiler/parallel-parse.d.ts +3 -2
- package/dist/api/compiler/parallel-parse.js +17 -5
- package/dist/api/compiler/parser.d.ts +40 -19
- package/dist/api/compiler/parser.js +308 -216
- package/dist/api/compiler/path.d.ts +9 -0
- package/dist/api/compiler/path.js +20 -3
- package/dist/api/compiler/printer/emit-context.d.ts +5 -1
- package/dist/api/compiler/printer/emit-context.js +20 -1
- package/dist/api/compiler/printer/factory-base.d.ts +2 -2
- package/dist/api/compiler/printer/factory-base.js +7 -3
- package/dist/api/compiler/printer/factory.js +3 -1
- package/dist/api/compiler/printer/helpers.js +10 -1
- package/dist/api/compiler/printer/name-generator.d.ts +1 -1
- package/dist/api/compiler/printer/name-generator.js +35 -16
- package/dist/api/compiler/printer/printer.d.ts +49 -2
- package/dist/api/compiler/printer/printer.js +539 -293
- package/dist/api/compiler/printer/utilities.js +149 -147
- package/dist/api/compiler/program-checker.d.ts +12 -2
- package/dist/api/compiler/program-checker.js +88 -34
- package/dist/api/compiler/program-utilities.d.ts +3 -1
- package/dist/api/compiler/program-utilities.js +28 -15
- package/dist/api/compiler/program.d.ts +4 -6
- package/dist/api/compiler/program.js +74 -87
- package/dist/api/compiler/pseudo-bigint.d.ts +2 -0
- package/dist/api/compiler/pseudo-bigint.js +18 -0
- package/dist/api/compiler/regexp-checker.d.ts +1 -1
- package/dist/api/compiler/regexp-checker.js +93 -76
- package/dist/api/compiler/relations.d.ts +27 -4
- package/dist/api/compiler/relations.js +347 -180
- package/dist/api/compiler/reparser.js +60 -56
- package/dist/api/compiler/scanner.d.ts +19 -2
- package/dist/api/compiler/scanner.js +123 -108
- package/dist/api/compiler/shared-results.d.ts +463 -0
- package/dist/api/compiler/shared-results.js +2128 -0
- package/dist/api/compiler/sourcemap.js +2 -2
- package/dist/api/compiler/symbol-accessibility.js +87 -74
- package/dist/api/compiler/symbol.d.ts +23 -14
- package/dist/api/compiler/symbol.js +23 -11
- package/dist/api/compiler/syntax-kind.d.ts +198 -197
- package/dist/api/compiler/transformers/alias-references.js +247 -139
- package/dist/api/compiler/transformers/async-utilities.js +25 -25
- package/dist/api/compiler/transformers/async.d.ts +0 -1
- package/dist/api/compiler/transformers/async.js +64 -77
- package/dist/api/compiler/transformers/class-fields.d.ts +1 -0
- package/dist/api/compiler/transformers/class-fields.js +81 -78
- package/dist/api/compiler/transformers/commonjs-module.js +18 -15
- package/dist/api/compiler/transformers/const-enum-inliner.js +1 -1
- package/dist/api/compiler/transformers/declarations-diagnostics.js +247 -244
- package/dist/api/compiler/transformers/declarations-pseudo.js +100 -100
- package/dist/api/compiler/transformers/declarations-resolver.d.ts +0 -3
- package/dist/api/compiler/transformers/declarations-syntactic.d.ts +1 -2
- package/dist/api/compiler/transformers/declarations-syntactic.js +134 -156
- package/dist/api/compiler/transformers/declarations-tracker.js +18 -18
- package/dist/api/compiler/transformers/declarations.d.ts +4 -1
- package/dist/api/compiler/transformers/declarations.js +305 -238
- package/dist/api/compiler/transformers/decorator-metadata.d.ts +1 -1
- package/dist/api/compiler/transformers/decorator-metadata.js +53 -45
- package/dist/api/compiler/transformers/decorator-utilities.js +24 -24
- package/dist/api/compiler/transformers/destructuring.js +19 -18
- package/dist/api/compiler/transformers/emit-resolver.js +1 -1
- package/dist/api/compiler/transformers/es-decorators.js +55 -55
- package/dist/api/compiler/transformers/external-module-info.js +3 -3
- package/dist/api/compiler/transformers/for-await.js +25 -25
- package/dist/api/compiler/transformers/import-elision.js +14 -14
- package/dist/api/compiler/transformers/jsx.js +12 -12
- package/dist/api/compiler/transformers/legacy-decorators.js +17 -17
- package/dist/api/compiler/transformers/module.js +8 -8
- package/dist/api/compiler/transformers/named-evaluation.js +4 -4
- package/dist/api/compiler/transformers/object-rest-spread.js +20 -20
- package/dist/api/compiler/transformers/optional-chain.js +10 -10
- package/dist/api/compiler/transformers/reference-resolver.d.ts +12 -1
- package/dist/api/compiler/transformers/reference-resolver.js +131 -69
- package/dist/api/compiler/transformers/runtime-syntax.js +35 -31
- package/dist/api/compiler/transformers/subtree-facts.js +47 -47
- package/dist/api/compiler/transformers/syntax-facts.js +56 -58
- package/dist/api/compiler/transformers/type-eraser.js +73 -66
- package/dist/api/compiler/transformers/type-serialization.js +24 -24
- package/dist/api/compiler/transformers/using.js +12 -12
- package/dist/api/compiler/transformers/utilities.js +77 -77
- package/dist/api/compiler/transformers/visitor-base.js +172 -172
- package/dist/api/compiler/transformers/visitor-hooks.js +6 -2
- package/dist/api/compiler/tsconfig.d.ts +10 -2
- package/dist/api/compiler/tsconfig.js +136 -48
- package/dist/api/compiler/type-printer.js +40 -3
- package/dist/api/compiler/types.d.ts +2 -1
- package/dist/api/library/ast.generated.d.ts +42 -39
- package/dist/api/library/ast.generated.js +1 -1
- package/dist/api/library/compiler-options.generated.d.ts +111 -100
- package/dist/api/library/compiler-options.generated.js +1 -1
- package/dist/api/library/disk.js +12 -1
- package/dist/api/library/enums.generated.d.ts +206 -206
- package/dist/api/library/enums.generated.js +206 -206
- package/dist/api/library/nodes.js +26 -26
- package/package.json +9 -9
- package/src/compiler/ast-utilities.ts +99 -7
- package/src/compiler/ast.ts +58 -26
- package/src/compiler/binder.ts +39 -4
- package/src/compiler/character-codes.ts +2 -2
- package/src/compiler/checker-calls.ts +79 -9
- package/src/compiler/checker-classes.ts +78 -24
- package/src/compiler/checker-contextual.ts +6 -1
- package/src/compiler/checker-declarations.ts +31 -4
- package/src/compiler/checker-declared-types.ts +8 -5
- package/src/compiler/checker-decorators.ts +1 -1
- package/src/compiler/checker-deprecation.ts +29 -8
- package/src/compiler/checker-destructuring.ts +10 -3
- package/src/compiler/checker-emit-helpers.ts +1 -0
- package/src/compiler/checker-emit-resolver.ts +16 -6
- package/src/compiler/checker-expressions.ts +79 -46
- package/src/compiler/checker-functions.ts +21 -6
- package/src/compiler/checker-generated-code.ts +2 -22
- package/src/compiler/checker-grammar.ts +136 -62
- package/src/compiler/checker-heritage.ts +22 -21
- package/src/compiler/checker-inference.ts +514 -82
- package/src/compiler/checker-iteration.ts +18 -31
- package/src/compiler/checker-javascript.ts +1 -1
- package/src/compiler/checker-jsdoc.ts +50 -27
- package/src/compiler/checker-jsx.ts +26 -4
- package/src/compiler/checker-members.ts +200 -56
- package/src/compiler/checker-modules.ts +332 -65
- package/src/compiler/checker-narrowing.ts +98 -19
- package/src/compiler/checker-object-literals.ts +3 -0
- package/src/compiler/checker-operators.ts +11 -4
- package/src/compiler/checker-property-access.ts +7 -2
- package/src/compiler/checker-services.ts +39 -12
- package/src/compiler/checker-signatures.ts +15 -1
- package/src/compiler/checker-source-file.ts +39 -13
- package/src/compiler/checker-statements.ts +3 -2
- package/src/compiler/checker-symbol-types.ts +29 -6
- package/src/compiler/checker-symbols.ts +158 -15
- package/src/compiler/checker-type-factory.ts +124 -23
- package/src/compiler/checker-type-nodes.ts +46 -3
- package/src/compiler/checker-type-operators.ts +83 -26
- package/src/compiler/checker-types.ts +147 -4
- package/src/compiler/checker-unused.ts +9 -14
- package/src/compiler/checker.ts +203 -39
- package/src/compiler/command-line.ts +28 -28
- package/src/compiler/compile-program.ts +167 -27
- package/src/compiler/decoder.ts +13 -4
- package/src/compiler/diagnostic-messages.ts +1973 -1892
- package/src/compiler/diagnostics.ts +84 -3
- package/src/compiler/emitter.ts +57 -8
- package/src/compiler/encoder.ts +23 -8
- package/src/compiler/file-include.ts +9 -3
- package/src/compiler/file-loader.ts +197 -38
- package/src/compiler/help.ts +10 -14
- package/src/compiler/incremental.ts +165 -30
- package/src/compiler/init.ts +2 -7
- package/src/compiler/instantiation.ts +77 -22
- package/src/compiler/jsdoc.ts +3 -1
- package/src/compiler/link-tables.ts +82 -37
- package/src/compiler/locales/cs-CZ.ts +1 -1
- package/src/compiler/locales/de-DE.ts +1 -1
- package/src/compiler/locales/es-ES.ts +1 -1
- package/src/compiler/locales/fr-FR.ts +1 -1
- package/src/compiler/locales/it-IT.ts +1 -1
- package/src/compiler/locales/ja-JP.ts +1 -1
- package/src/compiler/locales/ko-KR.ts +1 -1
- package/src/compiler/locales/pl-PL.ts +1 -1
- package/src/compiler/locales/pt-BR.ts +1 -1
- package/src/compiler/locales/ru-RU.ts +1 -1
- package/src/compiler/locales/tr-TR.ts +1 -1
- package/src/compiler/locales/zh-CN.ts +1 -1
- package/src/compiler/locales/zh-TW.ts +1 -1
- package/src/compiler/module-resolution.ts +44 -8
- package/src/compiler/module-specifiers.ts +62 -20
- package/src/compiler/name-resolver.ts +9 -1
- package/src/compiler/node-builder-names.ts +236 -54
- package/src/compiler/node-builder-pseudo.ts +4 -7
- package/src/compiler/node-builder-reuse.ts +5 -4
- package/src/compiler/node-builder.ts +130 -31
- package/src/compiler/option-declarations.ts +33 -103
- package/src/compiler/options.ts +23 -62
- package/src/compiler/output-paths.ts +5 -18
- package/src/compiler/package-entrypoints.ts +345 -0
- package/src/compiler/package-json.ts +4 -4
- package/src/compiler/parallel-check.ts +326 -52
- package/src/compiler/parallel-emit.ts +320 -0
- package/src/compiler/parallel-parse.ts +16 -5
- package/src/compiler/parse-thread.ts +3 -0
- package/src/compiler/parser.ts +156 -39
- package/src/compiler/path.ts +22 -2
- package/src/compiler/printer/emit-context.ts +21 -0
- package/src/compiler/printer/factory-base.ts +10 -3
- package/src/compiler/printer/factory.ts +4 -1
- package/src/compiler/printer/helpers.ts +10 -1
- package/src/compiler/printer/name-generator.ts +24 -2
- package/src/compiler/printer/printer.ts +266 -30
- package/src/compiler/printer/utilities.ts +8 -2
- package/src/compiler/program-checker.ts +57 -5
- package/src/compiler/program-utilities.ts +23 -10
- package/src/compiler/program.ts +18 -26
- package/src/compiler/pseudo-bigint.ts +17 -0
- package/src/compiler/regexp-checker.ts +63 -30
- package/src/compiler/relations.ts +240 -77
- package/src/compiler/reparser.ts +7 -2
- package/src/compiler/scanner.ts +109 -79
- package/src/compiler/shared-results.ts +2414 -0
- package/src/compiler/show-config.ts +18 -1
- package/src/compiler/sourcemap.ts +2 -2
- package/src/compiler/symbol-accessibility.ts +26 -3
- package/src/compiler/symbol.ts +46 -24
- package/src/compiler/syntax-kind.ts +188 -187
- package/src/compiler/thread-entry.ts +64 -4
- package/src/compiler/transformers/alias-references.ts +123 -4
- package/src/compiler/transformers/async.ts +2 -17
- package/src/compiler/transformers/class-fields.ts +13 -12
- package/src/compiler/transformers/commonjs-module.ts +11 -7
- package/src/compiler/transformers/declarations-diagnostics.ts +5 -3
- package/src/compiler/transformers/declarations-pseudo.ts +2 -4
- package/src/compiler/transformers/declarations-resolver.ts +0 -3
- package/src/compiler/transformers/declarations-syntactic.ts +1 -21
- package/src/compiler/transformers/declarations.ts +134 -48
- package/src/compiler/transformers/decorator-metadata.ts +9 -1
- package/src/compiler/transformers/destructuring.ts +4 -3
- package/src/compiler/transformers/external-module-info.ts +1 -1
- package/src/compiler/transformers/jsx.ts +2 -1
- package/src/compiler/transformers/reference-resolver.ts +83 -19
- package/src/compiler/transformers/runtime-syntax.ts +6 -1
- package/src/compiler/transformers/syntax-facts.ts +2 -7
- package/src/compiler/transformers/type-eraser.ts +10 -1
- package/src/compiler/transformers/type-serialization.ts +3 -2
- package/src/compiler/transformers/visitor-base.ts +2 -1
- package/src/compiler/transformers/visitor-hooks.ts +9 -4
- package/src/compiler/tsc-build.ts +66 -9
- package/src/compiler/tsc-cli.ts +7 -0
- package/src/compiler/tsc-compile.ts +284 -4
- package/src/compiler/tsc-watch.ts +74 -45
- package/src/compiler/tsconfig.ts +176 -19
- package/src/compiler/type-printer.ts +36 -2
- package/src/compiler/types.ts +2 -1
- package/src/library/ast.generated.ts +57 -41
- package/src/library/compiler-options.generated.ts +117 -103
- package/src/library/disk.ts +10 -1
- package/src/library/enums.generated.ts +196 -196
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
import {
|
|
5
5
|
ExportDeclaration,
|
|
6
6
|
ExternalModuleIndicatorOptions,
|
|
7
|
+
Identifier,
|
|
7
8
|
ImportAttribute,
|
|
8
9
|
ImportAttributes,
|
|
9
10
|
ImportClause,
|
|
@@ -19,7 +20,7 @@ import {
|
|
|
19
20
|
type Node,
|
|
20
21
|
type SourceFile,
|
|
21
22
|
} from './ast.js';
|
|
22
|
-
import { isImportCall, isRequireCall } from './ast-utilities.js';
|
|
23
|
+
import { isImportCall, isRequireCall, isSourcePhaseImportCall } from './ast-utilities.js';
|
|
23
24
|
import { libMap } from './option-declarations.js';
|
|
24
25
|
import {
|
|
25
26
|
getEmitModuleDetectionKind,
|
|
@@ -59,6 +60,8 @@ export function getDefaultLibFileName(options: CompilerOptions): string {
|
|
|
59
60
|
switch (getEmitScriptTarget(options)) {
|
|
60
61
|
case ScriptTarget.ESNext:
|
|
61
62
|
return 'lib.esnext.full.d.ts';
|
|
63
|
+
case ScriptTarget.ES2026:
|
|
64
|
+
return 'lib.es2026.full.d.ts';
|
|
62
65
|
case ScriptTarget.ES2025:
|
|
63
66
|
return 'lib.es2025.full.d.ts';
|
|
64
67
|
case ScriptTarget.ES2024:
|
|
@@ -115,6 +118,8 @@ export function scriptTargetName(target: ScriptTarget): string {
|
|
|
115
118
|
return 'ES2024';
|
|
116
119
|
case ScriptTarget.ES2025:
|
|
117
120
|
return 'ES2025';
|
|
121
|
+
case ScriptTarget.ES2026:
|
|
122
|
+
return 'ES2026';
|
|
118
123
|
case ScriptTarget.ESNext:
|
|
119
124
|
return 'ESNext';
|
|
120
125
|
case ScriptTarget.JSON:
|
|
@@ -316,21 +321,27 @@ function literalText(node: Node): string {
|
|
|
316
321
|
|
|
317
322
|
/** The `resolution-mode` of `import type` attributes, or `None`. */
|
|
318
323
|
export function getResolutionModeOverride(attributes: ImportAttributes | undefined): ModuleKind {
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
if (elements.length !== 1) return ModuleKind.None;
|
|
322
|
-
const attribute = elements[0]!;
|
|
323
|
-
if (!(attribute instanceof ImportAttribute)) return ModuleKind.None;
|
|
324
|
-
const name = attribute.name;
|
|
325
|
-
if (name === undefined || !isStringLiteralLike(name) || literalText(name) !== 'resolution-mode')
|
|
326
|
-
return ModuleKind.None;
|
|
327
|
-
if (!isStringLiteralLike(attribute.value)) return ModuleKind.None;
|
|
324
|
+
const attribute = resolutionModeAttribute(attributes);
|
|
325
|
+
if (attribute === undefined || !isStringLiteralLike(attribute.value)) return ModuleKind.None;
|
|
328
326
|
const text = literalText(attribute.value);
|
|
329
327
|
if (text === 'import') return ModuleKind.ESNext;
|
|
330
328
|
if (text === 'require') return ModuleKind.CommonJS;
|
|
331
329
|
return ModuleKind.None;
|
|
332
330
|
}
|
|
333
331
|
|
|
332
|
+
/** The `resolution-mode` attribute among import attributes, as tsgo's `GetResolutionModeOverride` finds it. */
|
|
333
|
+
export function resolutionModeAttribute(attributes: ImportAttributes | undefined): ImportAttribute | undefined {
|
|
334
|
+
if (attributes === undefined) return undefined;
|
|
335
|
+
for (const attribute of attributes.attributes.nodes) {
|
|
336
|
+
if (!(attribute instanceof ImportAttribute)) continue;
|
|
337
|
+
const name = attribute.name;
|
|
338
|
+
if (name === undefined) continue;
|
|
339
|
+
const text = name instanceof Identifier ? name.text : literalText(name);
|
|
340
|
+
if (text === 'resolution-mode') return attribute;
|
|
341
|
+
}
|
|
342
|
+
return undefined;
|
|
343
|
+
}
|
|
344
|
+
|
|
334
345
|
/** The attributes of an import or export declaration or a JSDoc `@import`, if any. */
|
|
335
346
|
function importOrExportAttributes(node: Node | undefined): ImportAttributes | undefined {
|
|
336
347
|
if (node instanceof ImportDeclaration) return node.attributes;
|
|
@@ -404,6 +415,8 @@ export function getEmitSyntaxForUsageLocation(
|
|
|
404
415
|
const fileEmitMode = getEmitModuleFormatOfFile(fileName, options, metadata);
|
|
405
416
|
const call = walkUpParenthesizedExpressions(parent);
|
|
406
417
|
if (call !== undefined && isImportCall(call)) {
|
|
418
|
+
// `import.source()` is never transformed to `require`.
|
|
419
|
+
if (isSourcePhaseImportCall(call)) return ModuleKind.ESNext;
|
|
407
420
|
return shouldTransformImportCall(options, fileEmitMode) ? ModuleKind.CommonJS : ModuleKind.ESNext;
|
|
408
421
|
}
|
|
409
422
|
if (fileEmitMode === ModuleKind.CommonJS) return ModuleKind.CommonJS;
|
package/src/compiler/program.ts
CHANGED
|
@@ -27,6 +27,7 @@ import {
|
|
|
27
27
|
equalDiagnosticsNoRelatedInfo,
|
|
28
28
|
type DiagnosticMessage,
|
|
29
29
|
type Locale,
|
|
30
|
+
sortDiagnostics,
|
|
30
31
|
useThreadTextCaches,
|
|
31
32
|
} from './diagnostics.js';
|
|
32
33
|
import {
|
|
@@ -84,6 +85,7 @@ import {
|
|
|
84
85
|
pathIsRelative,
|
|
85
86
|
toFileNameLowerCase,
|
|
86
87
|
toPath,
|
|
88
|
+
isNetworkPathValue,
|
|
87
89
|
} from './path.js';
|
|
88
90
|
import {
|
|
89
91
|
getDefaultResolutionModeForFile,
|
|
@@ -105,6 +107,7 @@ import {
|
|
|
105
107
|
type SourceOutputAndProjectReference,
|
|
106
108
|
} from './tsconfig.js';
|
|
107
109
|
import { SyntaxKind } from './syntax-kind.js';
|
|
110
|
+
import { isSourcePhaseImport } from './ast-utilities.js';
|
|
108
111
|
import { KnownSymlinks } from './symlinks.js';
|
|
109
112
|
import { mark } from './timeline.js';
|
|
110
113
|
import { LanguageVariant } from './types.js';
|
|
@@ -293,6 +296,11 @@ export class Program implements OutputPathsHost {
|
|
|
293
296
|
return this.processed.redirectTargets.get(path) ?? [];
|
|
294
297
|
}
|
|
295
298
|
|
|
299
|
+
/** The nearest `package.json` lookup at or above `directory`. */
|
|
300
|
+
getPackageScopeForPath(directory: string): PackageJsonInfo | undefined {
|
|
301
|
+
return this.processed.resolver.getPackageScopeForPath(directory);
|
|
302
|
+
}
|
|
303
|
+
|
|
296
304
|
/** The directory of the nearest `package.json` at or above `directory`, or `''`. */
|
|
297
305
|
getNearestAncestorDirectoryWithPackageJson(directory: string): string {
|
|
298
306
|
const scope = this.processed.resolver.getPackageScopeForPath(directory);
|
|
@@ -361,7 +369,8 @@ export class Program implements OutputPathsHost {
|
|
|
361
369
|
)
|
|
362
370
|
continue;
|
|
363
371
|
const resolved = resolver.resolvePackageDirectory(dependency, packageJsonName, ModuleKind.CommonJS);
|
|
364
|
-
|
|
372
|
+
// A dependency installed in place has no original path to map from.
|
|
373
|
+
if (resolved !== undefined && resolved.resolvedFileName !== '' && resolved.originalPath !== '')
|
|
365
374
|
symlinks.processResolution(
|
|
366
375
|
combinePaths(resolved.originalPath, 'package.json'),
|
|
367
376
|
combinePaths(resolved.resolvedFileName, 'package.json'),
|
|
@@ -455,30 +464,9 @@ export class Program implements OutputPathsHost {
|
|
|
455
464
|
return this.processed.resolvedModules.get(file.path)?.get(modeAwareKey(moduleName, mode));
|
|
456
465
|
}
|
|
457
466
|
|
|
458
|
-
/** The
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
* files by file name, finds a file without computing its path when it is resolved by that name.
|
|
462
|
-
*/
|
|
463
|
-
getResolvedFilesOf(file: SourceFile, byFileName?: ReadonlyMap<string, SourceFile>): SourceFile[] {
|
|
464
|
-
const result: SourceFile[] = [];
|
|
465
|
-
const modules = this.processed.resolvedModules.get(file.path);
|
|
466
|
-
if (modules !== undefined)
|
|
467
|
-
for (const resolved of modules.values()) {
|
|
468
|
-
const name = resolved.resolvedFileName;
|
|
469
|
-
if (name === '') continue;
|
|
470
|
-
const target = byFileName?.get(name) ?? this.getSourceFileForResolvedModule(name);
|
|
471
|
-
if (target !== undefined) result.push(target);
|
|
472
|
-
}
|
|
473
|
-
const types = this.processed.typeResolutionsInFile.get(file.path);
|
|
474
|
-
if (types !== undefined)
|
|
475
|
-
for (const resolved of types.values()) {
|
|
476
|
-
const name = resolved.resolvedFileName;
|
|
477
|
-
if (name === '') continue;
|
|
478
|
-
const target = byFileName?.get(name) ?? this.getSourceFile(name);
|
|
479
|
-
if (target !== undefined) result.push(target);
|
|
480
|
-
}
|
|
481
|
-
return result;
|
|
467
|
+
/** The files each file added to the program (`ProcessedFiles.addedFiles`), as indices of `getSourceFiles`. */
|
|
468
|
+
addedFiles(): readonly (readonly number[])[] {
|
|
469
|
+
return this.processed.addedFiles;
|
|
482
470
|
}
|
|
483
471
|
|
|
484
472
|
/** The specifier of the implicit JSX runtime import of `file`, if any. */
|
|
@@ -487,6 +475,8 @@ export class Program implements OutputPathsHost {
|
|
|
487
475
|
}
|
|
488
476
|
|
|
489
477
|
getResolvedModuleFromModuleSpecifier(file: SourceFile, specifier: Node): ResolvedModule | undefined {
|
|
478
|
+
// A source phase import loads no module declarations.
|
|
479
|
+
if (specifier.parent !== undefined && isSourcePhaseImport(specifier.parent)) return undefined;
|
|
490
480
|
const text = specifierText(specifier);
|
|
491
481
|
return this.getResolvedModule(file, text, this.getModeForUsageLocation(file, specifier));
|
|
492
482
|
}
|
|
@@ -935,6 +925,8 @@ export class Program implements OutputPathsHost {
|
|
|
935
925
|
Diagnostics.Non_relative_paths_are_not_allowed_Did_you_forget_a_leading_Slash,
|
|
936
926
|
[],
|
|
937
927
|
);
|
|
928
|
+
} else if (isNetworkPathValue(substitution, options.pathsBasePath ?? this.currentDirectory)) {
|
|
929
|
+
this.pathsValueDiagnostic(key, i, Diagnostics.Network_path_0_is_not_supported, [substitution]);
|
|
938
930
|
}
|
|
939
931
|
}
|
|
940
932
|
}
|
|
@@ -1398,7 +1390,7 @@ class NodeCollector extends NodeVisitor {
|
|
|
1398
1390
|
|
|
1399
1391
|
/** Sorts diagnostics and merges duplicates, combining their related information. */
|
|
1400
1392
|
export function sortAndDeduplicateDiagnostics(diagnostics: readonly Diagnostic[]): Diagnostic[] {
|
|
1401
|
-
const sorted =
|
|
1393
|
+
const sorted = sortDiagnostics(diagnostics);
|
|
1402
1394
|
if (sorted.length < 2) return sorted;
|
|
1403
1395
|
const result: Diagnostic[] = [];
|
|
1404
1396
|
let i = 0;
|
|
@@ -60,3 +60,20 @@ export function parsePseudoBigInt(literal: string): string {
|
|
|
60
60
|
}
|
|
61
61
|
return result;
|
|
62
62
|
}
|
|
63
|
+
|
|
64
|
+
/** Compares two bigint values in decimal, each optionally prefixed with `-`, by numeric value. */
|
|
65
|
+
export function comparePseudoBigInts(a: string, b: string): number {
|
|
66
|
+
const negative = a.charCodeAt(0) === CharacterCodes.minus;
|
|
67
|
+
const r = pseudoBigIntSign(a) - pseudoBigIntSign(b);
|
|
68
|
+
if (r !== 0) return r;
|
|
69
|
+
const digitsA = negative ? a.substring(1) : a;
|
|
70
|
+
const digitsB = negative ? b.substring(1) : b;
|
|
71
|
+
let magnitude = digitsA.length - digitsB.length;
|
|
72
|
+
if (magnitude === 0) magnitude = digitsA < digitsB ? -1 : digitsA > digitsB ? 1 : 0;
|
|
73
|
+
return negative ? -magnitude : magnitude;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
function pseudoBigIntSign(value: string): number {
|
|
77
|
+
if (value.charCodeAt(0) === CharacterCodes.minus) return -1;
|
|
78
|
+
return value === '0' ? 0 : 1;
|
|
79
|
+
}
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
} from './character-codes.js';
|
|
10
10
|
import { Diagnostics } from './diagnostic-messages.js';
|
|
11
11
|
import type { DiagnosticMessage } from './diagnostics.js';
|
|
12
|
-
import type
|
|
12
|
+
import { IdentifierVariant, type Scanner } from './scanner.js';
|
|
13
13
|
import { getSpellingSuggestion } from './spelling.js';
|
|
14
14
|
import { ScriptTarget } from './types.js';
|
|
15
15
|
import {
|
|
@@ -243,13 +243,24 @@ class RegularExpressionChecker {
|
|
|
243
243
|
|
|
244
244
|
// Disjunction ::= Alternative ('|' Alternative)*
|
|
245
245
|
private scanDisjunction(isInGroup: boolean): void {
|
|
246
|
+
// The names any alternative defines. One alternative matches, so in a group they join the
|
|
247
|
+
// enclosing alternative's scope: `(?:(?<a>x))(?<a>z)` defines `a` twice.
|
|
248
|
+
let disjunctionNames: Set<string> | undefined;
|
|
246
249
|
for (;;) {
|
|
247
250
|
this.namedCapturingGroups.push(new Set<string>());
|
|
248
251
|
this.scanAlternative(isInGroup);
|
|
249
|
-
this.namedCapturingGroups.pop()
|
|
250
|
-
if (
|
|
252
|
+
const alternativeNames = this.namedCapturingGroups.pop()!;
|
|
253
|
+
if (alternativeNames.size > 0) {
|
|
254
|
+
if (disjunctionNames === undefined) disjunctionNames = new Set<string>();
|
|
255
|
+
for (const name of alternativeNames) disjunctionNames.add(name);
|
|
256
|
+
}
|
|
257
|
+
if (this.char() !== CharacterCodes.bar) break;
|
|
251
258
|
this.scanner.pos = (this.scanner.pos + 1) | 0;
|
|
252
259
|
}
|
|
260
|
+
if (isInGroup && disjunctionNames !== undefined && this.namedCapturingGroups.length > 0) {
|
|
261
|
+
const parentScope = this.namedCapturingGroups[this.namedCapturingGroups.length - 1]!;
|
|
262
|
+
for (const name of disjunctionNames) parentScope.add(name);
|
|
263
|
+
}
|
|
253
264
|
}
|
|
254
265
|
|
|
255
266
|
// Alternative ::= Term*
|
|
@@ -317,6 +328,14 @@ class RegularExpressionChecker {
|
|
|
317
328
|
noArgs,
|
|
318
329
|
);
|
|
319
330
|
}
|
|
331
|
+
// Modifier characters make this `(?flags:` rather than a plain `(?:` group.
|
|
332
|
+
if (this.scanner.pos !== flagsStart && this.scanner.languageVersion() < ScriptTarget.ES2025)
|
|
333
|
+
this.error(
|
|
334
|
+
Diagnostics.Regular_expression_pattern_modifiers_are_only_available_when_targeting_0_or_later,
|
|
335
|
+
flagsStart,
|
|
336
|
+
this.scanner.pos - flagsStart,
|
|
337
|
+
['es2025'],
|
|
338
|
+
);
|
|
320
339
|
this.scanExpectedChar(CharacterCodes.colon);
|
|
321
340
|
isPreviousTermQuantifiable = true;
|
|
322
341
|
}
|
|
@@ -443,10 +462,8 @@ class RegularExpressionChecker {
|
|
|
443
462
|
size,
|
|
444
463
|
noArgs,
|
|
445
464
|
);
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
this.scanner.checkRegularExpressionFlagAvailability(flag, this.scanner.pos, size);
|
|
449
|
-
}
|
|
465
|
+
// Modifiers need ES2025, later than any flag they can toggle, and the group reports that.
|
|
466
|
+
else currentFlags |= flag;
|
|
450
467
|
this.scanner.pos = (this.scanner.pos + size) | 0;
|
|
451
468
|
}
|
|
452
469
|
return currentFlags;
|
|
@@ -545,9 +562,8 @@ class RegularExpressionChecker {
|
|
|
545
562
|
private scanGroupName(isReference: boolean): void {
|
|
546
563
|
const scanner = this.scanner;
|
|
547
564
|
scanner.tokenStart = this.scanner.pos | 0;
|
|
548
|
-
scanner.scanIdentifier(0);
|
|
549
565
|
const start = scanner.tokenStart;
|
|
550
|
-
if (
|
|
566
|
+
if (!scanner.scanIdentifier(0, IdentifierVariant.RegExpGroupName)) {
|
|
551
567
|
this.error(Diagnostics.Expected_a_capturing_group_name, this.scanner.pos, 0, noArgs);
|
|
552
568
|
return;
|
|
553
569
|
}
|
|
@@ -562,6 +578,20 @@ class RegularExpressionChecker {
|
|
|
562
578
|
noArgs,
|
|
563
579
|
);
|
|
564
580
|
} else {
|
|
581
|
+
// An earlier definition is in a mutually exclusive alternative. Below ES2018 the group is
|
|
582
|
+
// reported already.
|
|
583
|
+
const languageVersion = this.scanner.languageVersion();
|
|
584
|
+
if (
|
|
585
|
+
this.groupSpecifiers.has(name) &&
|
|
586
|
+
languageVersion >= ScriptTarget.ES2018 &&
|
|
587
|
+
languageVersion < ScriptTarget.ES2025
|
|
588
|
+
)
|
|
589
|
+
this.error(
|
|
590
|
+
Diagnostics.Duplicate_named_capturing_groups_are_only_available_when_targeting_0_or_later,
|
|
591
|
+
start,
|
|
592
|
+
this.scanner.pos - start,
|
|
593
|
+
['es2025'],
|
|
594
|
+
);
|
|
565
595
|
if (this.namedCapturingGroups.length > 0)
|
|
566
596
|
this.namedCapturingGroups[this.namedCapturingGroups.length - 1]!.add(name);
|
|
567
597
|
this.groupSpecifiers.add(name);
|
|
@@ -667,9 +697,6 @@ class RegularExpressionChecker {
|
|
|
667
697
|
this.mayContainStrings = !isCharacterComplement && expressionMayContainStrings;
|
|
668
698
|
return this.mayContainStrings;
|
|
669
699
|
}
|
|
670
|
-
this.error(Diagnostics.Unexpected_0_Did_you_mean_to_escape_it_with_backslash, this.scanner.pos, 1, [
|
|
671
|
-
String.fromCharCode(ch),
|
|
672
|
-
]);
|
|
673
700
|
break;
|
|
674
701
|
default:
|
|
675
702
|
if (isCharacterComplement && this.mayContainStrings)
|
|
@@ -730,29 +757,26 @@ class RegularExpressionChecker {
|
|
|
730
757
|
} else if (operand >= 0 && secondOperand >= 0 && operand > secondOperand) {
|
|
731
758
|
this.error(Diagnostics.Range_out_of_order_in_character_class, start, this.scanner.pos - start, noArgs);
|
|
732
759
|
}
|
|
733
|
-
} else if (
|
|
760
|
+
} else if (
|
|
761
|
+
ch === CharacterCodes.ampersand &&
|
|
762
|
+
this.scanner.pos + 1 < this.end &&
|
|
763
|
+
this.charAt(this.scanner.pos + 1) === CharacterCodes.ampersand
|
|
764
|
+
) {
|
|
734
765
|
start = this.scanner.pos;
|
|
735
|
-
this.scanner.pos = (this.scanner.pos +
|
|
766
|
+
this.scanner.pos = (this.scanner.pos + 2) | 0;
|
|
767
|
+
this.error(
|
|
768
|
+
Diagnostics.Operators_must_not_be_mixed_within_a_character_class_Wrap_it_in_a_nested_class_instead,
|
|
769
|
+
this.scanner.pos - 2,
|
|
770
|
+
2,
|
|
771
|
+
noArgs,
|
|
772
|
+
);
|
|
736
773
|
if (this.char() === CharacterCodes.ampersand) {
|
|
737
|
-
this.
|
|
738
|
-
this.error(
|
|
739
|
-
Diagnostics.Operators_must_not_be_mixed_within_a_character_class_Wrap_it_in_a_nested_class_instead,
|
|
740
|
-
this.scanner.pos - 2,
|
|
741
|
-
2,
|
|
742
|
-
noArgs,
|
|
743
|
-
);
|
|
744
|
-
if (this.char() === CharacterCodes.ampersand) {
|
|
745
|
-
this.error(Diagnostics.Unexpected_0_Did_you_mean_to_escape_it_with_backslash, this.scanner.pos, 1, [
|
|
746
|
-
String.fromCharCode(ch),
|
|
747
|
-
]);
|
|
748
|
-
this.scanner.pos = (this.scanner.pos + 1) | 0;
|
|
749
|
-
}
|
|
750
|
-
} else {
|
|
751
|
-
this.error(Diagnostics.Unexpected_0_Did_you_mean_to_escape_it_with_backslash, this.scanner.pos - 1, 1, [
|
|
774
|
+
this.error(Diagnostics.Unexpected_0_Did_you_mean_to_escape_it_with_backslash, this.scanner.pos, 1, [
|
|
752
775
|
String.fromCharCode(ch),
|
|
753
776
|
]);
|
|
777
|
+
this.scanner.pos = (this.scanner.pos + 1) | 0;
|
|
754
778
|
}
|
|
755
|
-
operand =
|
|
779
|
+
operand = ClassValue.String;
|
|
756
780
|
continue;
|
|
757
781
|
}
|
|
758
782
|
if (this.isClassContentExit(this.char())) break;
|
|
@@ -768,6 +792,15 @@ class RegularExpressionChecker {
|
|
|
768
792
|
operand = ClassValue.String;
|
|
769
793
|
} else {
|
|
770
794
|
operand = this.scanClassSetOperand();
|
|
795
|
+
// Each operand of a negated union must match single characters.
|
|
796
|
+
if (isCharacterComplement && this.mayContainStrings)
|
|
797
|
+
this.error(
|
|
798
|
+
Diagnostics.Anything_that_would_possibly_match_more_than_a_single_character_is_invalid_inside_a_negated_character_class,
|
|
799
|
+
start,
|
|
800
|
+
this.scanner.pos - start,
|
|
801
|
+
noArgs,
|
|
802
|
+
);
|
|
803
|
+
expressionMayContainStrings = expressionMayContainStrings || this.mayContainStrings;
|
|
771
804
|
}
|
|
772
805
|
}
|
|
773
806
|
this.mayContainStrings = !isCharacterComplement && expressionMayContainStrings;
|