tsc-ts 0.0.10 → 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 +1 -1
- 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 +20 -15
- package/dist/api/compiler/ast.js +1023 -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 +173 -123
- 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 +469 -438
- 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 -113
- 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 +210 -74
- 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 +137 -34
- 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 +93 -31
- package/dist/api/compiler/checker.js +143 -35
- 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 +19 -4
- package/dist/api/compiler/compile-program.js +45 -26
- package/dist/api/compiler/diagnostic-messages.d.ts +1849 -1774
- package/dist/api/compiler/diagnostic-messages.js +128 -122
- package/dist/api/compiler/diagnostics.js +7 -7
- 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 +10 -0
- package/dist/api/compiler/file-loader.js +138 -41
- 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/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 +3 -1
- package/dist/api/compiler/printer/emit-context.js +16 -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 +1 -0
- package/dist/api/compiler/printer/printer.js +303 -281
- package/dist/api/compiler/printer/utilities.js +149 -147
- package/dist/api/compiler/program-checker.d.ts +8 -2
- package/dist/api/compiler/program-checker.js +84 -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 +2 -0
- package/dist/api/compiler/program.js +69 -57
- 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 +337 -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 +22 -13
- package/dist/api/compiler/symbol.js +15 -1
- 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 +55 -26
- package/src/compiler/binder.ts +39 -4
- package/src/compiler/character-codes.ts +2 -2
- package/src/compiler/checker-calls.ts +76 -8
- 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 +133 -60
- package/src/compiler/checker-heritage.ts +22 -21
- package/src/compiler/checker-inference.ts +514 -87
- 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 +197 -55
- 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 +120 -21
- 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 +168 -41
- package/src/compiler/command-line.ts +28 -28
- package/src/compiler/compile-program.ts +51 -25
- package/src/compiler/decoder.ts +13 -4
- package/src/compiler/diagnostic-messages.ts +1973 -1892
- 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 +139 -32
- package/src/compiler/help.ts +10 -14
- package/src/compiler/incremental.ts +86 -18
- 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 +197 -8
- package/src/compiler/parallel-emit.ts +1 -1
- package/src/compiler/parser.ts +156 -39
- package/src/compiler/path.ts +22 -2
- package/src/compiler/printer/emit-context.ts +16 -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 +35 -14
- package/src/compiler/printer/utilities.ts +8 -2
- package/src/compiler/program-checker.ts +53 -5
- package/src/compiler/program-utilities.ts +23 -10
- package/src/compiler/program.ts +13 -1
- package/src/compiler/pseudo-bigint.ts +17 -0
- package/src/compiler/regexp-checker.ts +63 -30
- package/src/compiler/relations.ts +233 -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 +31 -14
- package/src/compiler/syntax-kind.ts +188 -187
- package/src/compiler/thread-entry.ts +19 -2
- 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 +3 -0
- package/src/compiler/tsc-cli.ts +2 -0
- package/src/compiler/tsc-compile.ts +7 -2
- 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
|
@@ -19,6 +19,15 @@ export declare function getRootLength(path: string): number;
|
|
|
19
19
|
export declare function isUrl(path: string): boolean;
|
|
20
20
|
/** True for `/x`, `c:/x` and other disk roots (not URLs). */
|
|
21
21
|
export declare function isRootedDiskPath(path: string): boolean;
|
|
22
|
+
/**
|
|
23
|
+
* Whether Windows may resolve `path` over the network: a UNC path (`//server/share`), a Win32 device path
|
|
24
|
+
* (`//?/…`, `//./…`) or an NT object path (`/??/…`), with either separator. Device and object paths count even
|
|
25
|
+
* for local volumes, since their `UNC` and `GLOBALROOT` forms reach the network redirector. Accessing one can
|
|
26
|
+
* make Windows authenticate to an arbitrary host, so such paths are never accessed on any platform.
|
|
27
|
+
*/
|
|
28
|
+
export declare function isNetworkPath(path: string): boolean;
|
|
29
|
+
/** Whether a path written in a config or on the command line names a network location once resolved. */
|
|
30
|
+
export declare function isNetworkPathValue(value: string, basePath: string): boolean;
|
|
22
31
|
export declare function pathIsAbsolute(path: string): boolean;
|
|
23
32
|
/** True for `.`, `..`, and paths starting with `./` or `../`. */
|
|
24
33
|
export declare function pathIsRelative(path: string): boolean;
|
|
@@ -128,6 +128,26 @@ export function isUrl(path) {
|
|
|
128
128
|
export function isRootedDiskPath(path) {
|
|
129
129
|
return getEncodedRootLength(path) > 0;
|
|
130
130
|
}
|
|
131
|
+
/**
|
|
132
|
+
* Whether Windows may resolve `path` over the network: a UNC path (`//server/share`), a Win32 device path
|
|
133
|
+
* (`//?/…`, `//./…`) or an NT object path (`/??/…`), with either separator. Device and object paths count even
|
|
134
|
+
* for local volumes, since their `UNC` and `GLOBALROOT` forms reach the network redirector. Accessing one can
|
|
135
|
+
* make Windows authenticate to an arbitrary host, so such paths are never accessed on any platform.
|
|
136
|
+
*/
|
|
137
|
+
export function isNetworkPath(path) {
|
|
138
|
+
if (path.length < 2 || !isAnyDirectorySeparator(path.charCodeAt(0)))
|
|
139
|
+
return false;
|
|
140
|
+
if (isAnyDirectorySeparator(path.charCodeAt(1)))
|
|
141
|
+
return true;
|
|
142
|
+
return (path.length >= 3 &&
|
|
143
|
+
path.charCodeAt(1) === 0x3f &&
|
|
144
|
+
path.charCodeAt(2) === 0x3f &&
|
|
145
|
+
(path.length === 3 || isAnyDirectorySeparator(path.charCodeAt(3))));
|
|
146
|
+
}
|
|
147
|
+
/** Whether a path written in a config or on the command line names a network location once resolved. */
|
|
148
|
+
export function isNetworkPathValue(value, basePath) {
|
|
149
|
+
return isNetworkPath(getNormalizedAbsolutePath(value, basePath));
|
|
150
|
+
}
|
|
131
151
|
export function pathIsAbsolute(path) {
|
|
132
152
|
return getEncodedRootLength(path) !== 0;
|
|
133
153
|
}
|
|
@@ -376,9 +396,6 @@ function isNonDotDotPrefix(normalized, rootLength) {
|
|
|
376
396
|
/** Removes `.`, `..` and duplicate separators, keeping a trailing separator. */
|
|
377
397
|
export function normalizePath(path) {
|
|
378
398
|
path = normalizeSlashes(path);
|
|
379
|
-
const simple = simpleNormalizePath(path);
|
|
380
|
-
if (simple !== undefined)
|
|
381
|
-
return simple;
|
|
382
399
|
const normalized = getNormalizedAbsolutePath(path, '');
|
|
383
400
|
return normalized !== '' && hasTrailingDirectorySeparator(path)
|
|
384
401
|
? ensureTrailingDirectorySeparator(normalized)
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { FunctionDeclaration, Identifier, type Node, NodeList, SourceFile } from '../ast.js';
|
|
1
|
+
import { Block, FunctionDeclaration, Identifier, type Node, NodeList, SourceFile } from '../ast.js';
|
|
2
2
|
import { ClusteredLinkTable } from '../link-tables.js';
|
|
3
3
|
import { SyntaxKind } from '../syntax-kind.js';
|
|
4
4
|
import { EmitFlags } from './emit-flags.js';
|
|
@@ -142,6 +142,8 @@ export declare class EmitContext extends NodeFactory {
|
|
|
142
142
|
addLexicalDeclaration(name: Identifier): Identifier;
|
|
143
143
|
addHoistedFunctionDeclaration(node: FunctionDeclaration): FunctionDeclaration;
|
|
144
144
|
addInitializationStatement(node: Node): Node;
|
|
145
|
+
/** `node` as a function body: a block as it is, an expression as `{ return node; }` with the expression's range. */
|
|
146
|
+
convertToFunctionBlock(node: Node, multiLine: boolean): Block;
|
|
145
147
|
/** Marks the current variable scope as visiting parameters; returns the previous flags. */
|
|
146
148
|
enterParameters(): number;
|
|
147
149
|
/** Restores the scope flags; returns whether a variable was hoisted while visiting the parameters. */
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Side tables that transforms fill in and the printer reads: original nodes, emit flags,
|
|
2
2
|
// comment and source map ranges, synthesized comments, generated names and emit helpers.
|
|
3
|
-
import { ExpressionStatement, FunctionDeclaration, Identifier, NodeList, PrivateIdentifier, StringLiteral, VariableDeclaration, VariableStatement, } from '../ast.js';
|
|
3
|
+
import { Block, ExpressionStatement, FunctionDeclaration, Identifier, NodeList, PrivateIdentifier, StringLiteral, VariableDeclaration, VariableStatement, } from '../ast.js';
|
|
4
4
|
import { ClusteredLinkTable } from '../link-tables.js';
|
|
5
5
|
import { NodeFactory } from './factory.js';
|
|
6
6
|
import { isParseTreeNode, isPrologueDirective } from './utilities.js';
|
|
@@ -498,6 +498,21 @@ export class EmitContext extends NodeFactory {
|
|
|
498
498
|
this.varScopes[this.varScopes.length - 1].initializationStatements.push(node);
|
|
499
499
|
return node;
|
|
500
500
|
}
|
|
501
|
+
/** `node` as a function body: a block as it is, an expression as `{ return node; }` with the expression's range. */
|
|
502
|
+
convertToFunctionBlock(node, multiLine) {
|
|
503
|
+
if (node instanceof Block)
|
|
504
|
+
return node;
|
|
505
|
+
const factory = this.factory;
|
|
506
|
+
const statement = factory.createReturnStatement(node);
|
|
507
|
+
statement.pos = node.pos;
|
|
508
|
+
statement.end = node.end;
|
|
509
|
+
const block = factory.createBlock([statement], multiLine);
|
|
510
|
+
block.statements.pos = node.pos;
|
|
511
|
+
block.statements.end = node.end;
|
|
512
|
+
block.pos = node.pos;
|
|
513
|
+
block.end = node.end;
|
|
514
|
+
return block;
|
|
515
|
+
}
|
|
501
516
|
/** Marks the current variable scope as visiting parameters; returns the previous flags. */
|
|
502
517
|
enterParameters() {
|
|
503
518
|
const scope = this.varScopes[this.varScopes.length - 1];
|
|
@@ -111,7 +111,7 @@ export declare abstract class NodeFactoryBase {
|
|
|
111
111
|
updateMethodSignatureDeclaration(node: MethodSignatureDeclaration, modifiers: ModifierList | undefined, name: PropertyName, postfixToken: Token | undefined, typeParameters: NodeList | undefined, parameters: NodeList, typeNode: TypeNode | undefined): MethodSignatureDeclaration;
|
|
112
112
|
updateMissingDeclaration(node: MissingDeclaration, modifiers: ModifierList | undefined): MissingDeclaration;
|
|
113
113
|
updateModuleBlock(node: ModuleBlock, statements: NodeList): ModuleBlock;
|
|
114
|
-
updateModuleDeclaration(node: ModuleDeclaration, modifiers: ModifierList | undefined, keyword: SyntaxKind, name: ModuleName, body: ModuleBody | undefined): ModuleDeclaration;
|
|
114
|
+
updateModuleDeclaration(node: ModuleDeclaration, modifiers: ModifierList | undefined, keyword: SyntaxKind, name: ModuleName, attributes: TypeLiteralNode | undefined, body: ModuleBody | undefined): ModuleDeclaration;
|
|
115
115
|
updateNamedExports(node: NamedExports, elements: NodeList): NamedExports;
|
|
116
116
|
updateNamedImports(node: NamedImports, elements: NodeList): NamedImports;
|
|
117
117
|
updateNamedTupleMember(node: NamedTupleMember, dotDotDotToken: Token | undefined, name: Identifier, questionToken: Token | undefined, typeNode: TypeNode): NamedTupleMember;
|
|
@@ -132,7 +132,7 @@ export declare abstract class NodeFactoryBase {
|
|
|
132
132
|
updatePropertyAssignment(node: PropertyAssignment, modifiers: ModifierList | undefined, name: PropertyName, postfixToken: Token | undefined, typeNode: TypeNode | undefined, initializer: Expression): PropertyAssignment;
|
|
133
133
|
updatePropertyDeclaration(node: PropertyDeclaration, modifiers: ModifierList | undefined, name: PropertyName, postfixToken: Token | undefined, typeNode: TypeNode | undefined, initializer: Expression | undefined): PropertyDeclaration;
|
|
134
134
|
updatePropertySignatureDeclaration(node: PropertySignatureDeclaration, modifiers: ModifierList | undefined, name: PropertyName, postfixToken: Token | undefined, typeNode: TypeNode | undefined, initializer: Expression | undefined): PropertySignatureDeclaration;
|
|
135
|
-
updateQualifiedName(node: QualifiedName, left: EntityName, right:
|
|
135
|
+
updateQualifiedName(node: QualifiedName, left: EntityName, right: MemberName): QualifiedName;
|
|
136
136
|
updateRestTypeNode(node: RestTypeNode, typeNode: TypeNode): RestTypeNode;
|
|
137
137
|
updateReturnStatement(node: ReturnStatement, expression: Expression | undefined): ReturnStatement;
|
|
138
138
|
updateSatisfiesExpression(node: SatisfiesExpression, expression: Expression, typeNode: TypeNode): SatisfiesExpression;
|
|
@@ -998,9 +998,13 @@ export class NodeFactoryBase {
|
|
|
998
998
|
}
|
|
999
999
|
return node;
|
|
1000
1000
|
}
|
|
1001
|
-
updateModuleDeclaration(node, modifiers, keyword, name, body) {
|
|
1002
|
-
if (modifiers !== node.modifiers ||
|
|
1003
|
-
|
|
1001
|
+
updateModuleDeclaration(node, modifiers, keyword, name, attributes, body) {
|
|
1002
|
+
if (modifiers !== node.modifiers ||
|
|
1003
|
+
keyword !== node.keyword ||
|
|
1004
|
+
name !== node.name ||
|
|
1005
|
+
attributes !== node.attributes ||
|
|
1006
|
+
body !== node.body) {
|
|
1007
|
+
const updated = new ModuleDeclaration(modifiers, keyword, name, attributes, body);
|
|
1004
1008
|
this.finishUpdate(updated, node);
|
|
1005
1009
|
return updated;
|
|
1006
1010
|
}
|
|
@@ -175,7 +175,9 @@ export class NodeFactory extends NodeFactoryBase {
|
|
|
175
175
|
createExpressionFromEntityName(node) {
|
|
176
176
|
if (node instanceof QualifiedName) {
|
|
177
177
|
const left = this.createExpressionFromEntityName(node.left);
|
|
178
|
-
const right =
|
|
178
|
+
const right = node.right instanceof PrivateIdentifier
|
|
179
|
+
? this.cloneNode(node.right, new PrivateIdentifier(node.right.text))
|
|
180
|
+
: this.cloneIdentifier(node.right);
|
|
179
181
|
right.pos = node.right.pos;
|
|
180
182
|
right.end = node.right.end;
|
|
181
183
|
right.parent = node.right.parent;
|
|
@@ -70,8 +70,17 @@ export const importDefaultHelper = new EmitHelper('typescript:commonjsimportdefa
|
|
|
70
70
|
export const exportStarHelper = new EmitHelper('typescript:export-star', false, `var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
71
71
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
72
72
|
};`, 2, [createBindingHelper], '__exportStar', '');
|
|
73
|
-
export const rewriteRelativeImportExtensionsHelper = new EmitHelper('typescript:rewriteRelativeImportExtensions', false, `var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExtension) || function (path, preserveJsx) {
|
|
73
|
+
export const rewriteRelativeImportExtensionsHelper = new EmitHelper('typescript:rewriteRelativeImportExtensions', false, `var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExtension) || function (path, preserveJsx, extraExtensions, ignoreCase) {
|
|
74
74
|
if (typeof path === "string" && /^\\.\\.?\\//.test(path)) {
|
|
75
|
+
if (extraExtensions) {
|
|
76
|
+
for (var extension in extraExtensions) {
|
|
77
|
+
var suffix = path.slice(-extension.length);
|
|
78
|
+
if (suffix === extension || ignoreCase && suffix.toLowerCase() === extension.toLowerCase()) {
|
|
79
|
+
var output = extraExtensions[extension];
|
|
80
|
+
return output === extension ? path : path.slice(0, -extension.length) + output;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
75
84
|
return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {
|
|
76
85
|
return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js");
|
|
77
86
|
});
|
|
@@ -37,5 +37,5 @@ export declare class NameGenerator {
|
|
|
37
37
|
}
|
|
38
38
|
/** Forgets the files of earlier emits. */
|
|
39
39
|
export declare function forgetIdentifierSets(): void;
|
|
40
|
-
/** Whether no identifier in `file`
|
|
40
|
+
/** Whether no identifier, private name or literal in `file` has the text `name`. */
|
|
41
41
|
export declare function isFileLevelUniqueName(file: SourceFile, name: string): boolean;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// Chooses the text of generated identifiers (`_a`, `_i`, `name_1`, …) while printing.
|
|
2
|
-
import { ClassExpression, ExportAssignment, PrivateIdentifier, StringLiteral, getLocals, getNextContainer, getText, isLocalsContainer, } from '../ast.js';
|
|
2
|
+
import { ClassExpression, ExportAssignment, NodeVisitor, PrivateIdentifier, StringLiteral, getLocals, getNextContainer, getText, isLocalsContainer, } from '../ast.js';
|
|
3
3
|
import { getName } from '../ast.js';
|
|
4
4
|
import { getExternalModuleName } from '../ast-utilities.js';
|
|
5
5
|
import { ensureLeadingHash, formatGeneratedName, makeIdentifierFromModuleName, removeLeadingHash, } from './utilities.js';
|
|
@@ -137,44 +137,44 @@ export class NameGenerator {
|
|
|
137
137
|
case 79 /* SyntaxKind.Identifier */:
|
|
138
138
|
case 80 /* SyntaxKind.PrivateIdentifier */:
|
|
139
139
|
return this.makeUniqueName(this.host.getTextOfNode(node), false, (flags & 16 /* GeneratedIdentifierFlags.Optimistic */) !== 0, (flags & 8 /* GeneratedIdentifierFlags.ReservedInNestedScopes */) !== 0, privateName, prefix, suffix);
|
|
140
|
-
case
|
|
141
|
-
case
|
|
140
|
+
case 269 /* SyntaxKind.ModuleDeclaration */:
|
|
141
|
+
case 268 /* SyntaxKind.EnumDeclaration */: {
|
|
142
142
|
const name = this.host.getTextOfNode(getName(node));
|
|
143
143
|
if (isUniqueLocalName(name, node))
|
|
144
144
|
return name;
|
|
145
145
|
return this.makeUniqueName(name, false, false, false, false, '', '');
|
|
146
146
|
}
|
|
147
|
-
case
|
|
148
|
-
case
|
|
149
|
-
case
|
|
147
|
+
case 274 /* SyntaxKind.ImportDeclaration */:
|
|
148
|
+
case 347 /* SyntaxKind.JSImportDeclaration */:
|
|
149
|
+
case 280 /* SyntaxKind.ExportDeclaration */: {
|
|
150
150
|
const specifier = getExternalModuleName(node);
|
|
151
151
|
const base = specifier instanceof StringLiteral ? makeIdentifierFromModuleName(specifier.text) : 'module';
|
|
152
152
|
return this.makeUniqueName(base, false, false, false, false, '', '');
|
|
153
153
|
}
|
|
154
|
-
case
|
|
155
|
-
case
|
|
154
|
+
case 264 /* SyntaxKind.FunctionDeclaration */:
|
|
155
|
+
case 265 /* SyntaxKind.ClassDeclaration */: {
|
|
156
156
|
const name = getName(node);
|
|
157
157
|
if (name !== undefined)
|
|
158
158
|
return this.generateNameForNode(name, false, flags, '', '');
|
|
159
159
|
return this.makeUniqueName('default', false, false, false, false, '', '');
|
|
160
160
|
}
|
|
161
|
-
case
|
|
161
|
+
case 279 /* SyntaxKind.ExportAssignment */:
|
|
162
162
|
if (node instanceof ExportAssignment)
|
|
163
163
|
return this.makeUniqueName('default', false, false, false, false, '', '');
|
|
164
164
|
break;
|
|
165
|
-
case
|
|
165
|
+
case 233 /* SyntaxKind.ClassExpression */:
|
|
166
166
|
if (node instanceof ClassExpression)
|
|
167
167
|
return this.makeUniqueName('class', false, false, false, false, '', '');
|
|
168
168
|
break;
|
|
169
|
-
case
|
|
170
|
-
case
|
|
171
|
-
case
|
|
169
|
+
case 176 /* SyntaxKind.MethodDeclaration */:
|
|
170
|
+
case 179 /* SyntaxKind.GetAccessor */:
|
|
171
|
+
case 180 /* SyntaxKind.SetAccessor */: {
|
|
172
172
|
const name = getName(node);
|
|
173
173
|
if (name !== undefined && name.kind === 79 /* SyntaxKind.Identifier */)
|
|
174
174
|
return this.generateNameForNodeCached(name, privateName, 0 /* GeneratedIdentifierFlags.None */, prefix, suffix);
|
|
175
175
|
return this.makeTempVariableName(0 /* TempFlags.Auto */, false, privateName, prefix, suffix);
|
|
176
176
|
}
|
|
177
|
-
case
|
|
177
|
+
case 169 /* SyntaxKind.ComputedPropertyName */:
|
|
178
178
|
return this.makeTempVariableName(0 /* TempFlags.Auto */, true, privateName, prefix, suffix);
|
|
179
179
|
}
|
|
180
180
|
return this.makeTempVariableName(0 /* TempFlags.Auto */, false, privateName, prefix, suffix);
|
|
@@ -270,13 +270,32 @@ const identifierSets = new Map();
|
|
|
270
270
|
export function forgetIdentifierSets() {
|
|
271
271
|
identifierSets.clear();
|
|
272
272
|
}
|
|
273
|
-
/**
|
|
273
|
+
/** Collects the texts of a file's identifiers, private names and literals: the names its generated names avoid. */
|
|
274
|
+
class NameTextCollector extends NodeVisitor {
|
|
275
|
+
texts = new Set();
|
|
276
|
+
visitNode(node) {
|
|
277
|
+
switch (node.kind) {
|
|
278
|
+
case 79 /* SyntaxKind.Identifier */:
|
|
279
|
+
case 80 /* SyntaxKind.PrivateIdentifier */:
|
|
280
|
+
case 10 /* SyntaxKind.StringLiteral */:
|
|
281
|
+
case 8 /* SyntaxKind.NumericLiteral */:
|
|
282
|
+
case 9 /* SyntaxKind.BigIntLiteral */:
|
|
283
|
+
case 14 /* SyntaxKind.NoSubstitutionTemplateLiteral */:
|
|
284
|
+
this.texts.add(getText(node));
|
|
285
|
+
}
|
|
286
|
+
node.forEachChild(this);
|
|
287
|
+
return false;
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
/** Whether no identifier, private name or literal in `file` has the text `name`. */
|
|
274
291
|
export function isFileLevelUniqueName(file, name) {
|
|
275
292
|
let set = identifierSets.get(file);
|
|
276
293
|
if (set === undefined) {
|
|
277
294
|
if (identifierSets.size >= 16)
|
|
278
295
|
identifierSets.clear();
|
|
279
|
-
|
|
296
|
+
const collector = new NameTextCollector();
|
|
297
|
+
file.forEachChild(collector);
|
|
298
|
+
set = collector.texts;
|
|
280
299
|
identifierSets.set(file, set);
|
|
281
300
|
}
|
|
282
301
|
return !set.has(name);
|
|
@@ -356,6 +356,7 @@ export declare class Printer extends NameGeneratorHost {
|
|
|
356
356
|
private emitImportEqualsDeclaration;
|
|
357
357
|
private emitImportDeclaration;
|
|
358
358
|
private emitImportClause;
|
|
359
|
+
private emitNamedImports;
|
|
359
360
|
/** Import and export specifiers. */
|
|
360
361
|
private emitSpecifier;
|
|
361
362
|
private emitExportAssignment;
|