tsc-ts 0.0.3 → 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 +46 -0
- 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 +74 -0
- package/dist/api/library/ast.generated.d.ts +1145 -0
- package/dist/api/library/ast.generated.js +3 -0
- package/dist/api/library/ast.js +5 -0
- package/dist/api/library/checker.d.ts +51 -0
- package/dist/api/library/checker.js +318 -0
- package/dist/api/library/compiler-options.generated.d.ts +108 -0
- package/dist/api/library/compiler-options.generated.js +3 -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/enums.generated.d.ts +891 -0
- package/dist/api/library/enums.generated.js +916 -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 +14 -0
- package/dist/api/library/index.js +15 -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/symbols.d.ts +8 -0
- package/dist/api/library/symbols.js +11 -0
- package/dist/api/library/types.d.ts +313 -0
- package/dist/api/library/types.js +6 -0
- package/package.json +22 -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 +1685 -0
- package/src/library/ast.ts +104 -0
- package/src/library/checker.ts +384 -0
- package/src/library/compiler-options.generated.ts +114 -0
- package/src/library/diagnostics.ts +72 -0
- package/src/library/disk.ts +73 -0
- package/src/library/enums.generated.ts +1024 -0
- package/src/library/errors.ts +26 -0
- package/src/library/host.ts +63 -0
- package/src/library/index.ts +71 -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/symbols.ts +15 -0
- package/src/library/types.ts +359 -0
|
@@ -0,0 +1,587 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `include`/`exclude` glob matching and directory traversal, without regular expressions.
|
|
3
|
+
*
|
|
4
|
+
* ```ts
|
|
5
|
+
* const files = readDirectory(fs, '/app', '/app', ['.ts'], ['node_modules'], ['src/**\/*'], unlimitedDepth);
|
|
6
|
+
* ```
|
|
7
|
+
*/
|
|
8
|
+
import { compareCodePoints } from './diagnostics.js';
|
|
9
|
+
import { combinePaths, compareStringsCaseInsensitive, containsPath, equateStringsCaseInsensitive, fileExtensionIsOneOf, getBaseFileName, getCanonicalFileName, getDirectoryPath, getPathComponents, isRootedDiskPath, normalizePath, reducePathComponents, removeTrailingDirectorySeparator, } from './path.js';
|
|
10
|
+
/** A depth for `readDirectory` without a limit. */
|
|
11
|
+
export const unlimitedDepth = Number.MAX_SAFE_INTEGER;
|
|
12
|
+
/** Whether an `include` component without an extension or wildcard stands for `component/**\/*`. */
|
|
13
|
+
export function isImplicitGlob(lastPathComponent) {
|
|
14
|
+
for (let i = 0; i < lastPathComponent.length; i++) {
|
|
15
|
+
const ch = lastPathComponent.charCodeAt(i);
|
|
16
|
+
if (ch === 0x2e /* . */ || ch === 0x2a /* * */ || ch === 0x3f /* ? */)
|
|
17
|
+
return false;
|
|
18
|
+
}
|
|
19
|
+
return true;
|
|
20
|
+
}
|
|
21
|
+
function hasWildcard(text) {
|
|
22
|
+
for (let i = 0; i < text.length; i++) {
|
|
23
|
+
const ch = text.charCodeAt(i);
|
|
24
|
+
if (ch === 0x2a || ch === 0x3f)
|
|
25
|
+
return true;
|
|
26
|
+
}
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
/** Files under `path` with one of `extensions` matched by `includes` and not `excludes`, grouped by the first matching include. */
|
|
30
|
+
export function readDirectory(fs, currentDirectory, path, extensions, excludes, includes, depth, onMatch) {
|
|
31
|
+
path = normalizePath(path);
|
|
32
|
+
currentDirectory = normalizePath(currentDirectory);
|
|
33
|
+
const absolutePath = combinePaths(currentDirectory, path);
|
|
34
|
+
const caseSensitive = fs.useCaseSensitiveFileNames;
|
|
35
|
+
const visitor = new GlobVisitor(fs, new GlobMatcher(includes, excludes, absolutePath, caseSensitive, 0 /* MatchUsage.Files */), new GlobMatcher(includes, excludes, absolutePath, caseSensitive, 1 /* MatchUsage.Directories */), extensions, onMatch);
|
|
36
|
+
for (const basePath of getBasePaths(path, includes, caseSensitive)) {
|
|
37
|
+
visitor.visit(basePath, combinePaths(currentDirectory, basePath), depth, '');
|
|
38
|
+
}
|
|
39
|
+
const results = visitor.results;
|
|
40
|
+
if (results.length === 1)
|
|
41
|
+
return results[0];
|
|
42
|
+
const flat = [];
|
|
43
|
+
for (const bucket of results)
|
|
44
|
+
for (const file of bucket)
|
|
45
|
+
flat.push(file);
|
|
46
|
+
return flat;
|
|
47
|
+
}
|
|
48
|
+
/** Matches paths against any of several specs. */
|
|
49
|
+
export class SpecMatcher {
|
|
50
|
+
patterns;
|
|
51
|
+
constructor(patterns) {
|
|
52
|
+
this.patterns = patterns;
|
|
53
|
+
}
|
|
54
|
+
/** `undefined` when no spec can match anything. */
|
|
55
|
+
static create(specs, basePath, usage, useCaseSensitiveFileNames) {
|
|
56
|
+
const patterns = [];
|
|
57
|
+
for (const spec of specs) {
|
|
58
|
+
const pattern = GlobPattern.compile(spec, basePath, usage, useCaseSensitiveFileNames);
|
|
59
|
+
if (pattern !== undefined)
|
|
60
|
+
patterns.push(pattern);
|
|
61
|
+
}
|
|
62
|
+
return patterns.length === 0 ? undefined : new SpecMatcher(patterns);
|
|
63
|
+
}
|
|
64
|
+
matches(path) {
|
|
65
|
+
return this.matchIndex(path) !== -1;
|
|
66
|
+
}
|
|
67
|
+
/** Index of the first matching pattern, or -1. */
|
|
68
|
+
matchIndex(path) {
|
|
69
|
+
for (let i = 0; i < this.patterns.length; i++)
|
|
70
|
+
if (this.patterns[i].matches(path, '', false))
|
|
71
|
+
return i;
|
|
72
|
+
return -1;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
// ---- Base paths
|
|
76
|
+
function getIncludeBasePath(absolute) {
|
|
77
|
+
let wildcard = -1;
|
|
78
|
+
for (let i = 0; i < absolute.length; i++) {
|
|
79
|
+
const ch = absolute.charCodeAt(i);
|
|
80
|
+
if (ch === 0x2a || ch === 0x3f) {
|
|
81
|
+
wildcard = i;
|
|
82
|
+
break;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
if (wildcard < 0) {
|
|
86
|
+
return hasExtension(absolute) ? removeTrailingDirectorySeparator(getDirectoryPath(absolute)) : absolute;
|
|
87
|
+
}
|
|
88
|
+
return absolute.slice(0, Math.max(absolute.lastIndexOf('/', wildcard - 1), 0));
|
|
89
|
+
}
|
|
90
|
+
/** Whether the base name of `path` has a `.`. */
|
|
91
|
+
export function hasExtension(path) {
|
|
92
|
+
return getBaseFileName(path).includes('.');
|
|
93
|
+
}
|
|
94
|
+
/** `path` and the literal prefixes of `includes` that are not inside it or each other. */
|
|
95
|
+
function getBasePaths(path, includes, caseSensitive) {
|
|
96
|
+
const basePaths = [path];
|
|
97
|
+
if (includes.length === 0)
|
|
98
|
+
return basePaths;
|
|
99
|
+
const includeBasePaths = [];
|
|
100
|
+
for (const include of includes) {
|
|
101
|
+
const absolute = isRootedDiskPath(include) ? include : normalizePath(combinePaths(path, include));
|
|
102
|
+
includeBasePaths.push(getIncludeBasePath(absolute));
|
|
103
|
+
}
|
|
104
|
+
includeBasePaths.sort(caseSensitive ? compareCodePoints : compareStringsCaseInsensitive);
|
|
105
|
+
for (const includeBasePath of includeBasePaths) {
|
|
106
|
+
let contained = false;
|
|
107
|
+
for (const basePath of basePaths) {
|
|
108
|
+
if (containsPath(basePath, includeBasePath, caseSensitive, path)) {
|
|
109
|
+
contained = true;
|
|
110
|
+
break;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
if (!contained)
|
|
114
|
+
basePaths.push(includeBasePath);
|
|
115
|
+
}
|
|
116
|
+
return basePaths;
|
|
117
|
+
}
|
|
118
|
+
class Segment {
|
|
119
|
+
kind;
|
|
120
|
+
literal;
|
|
121
|
+
constructor(kind, literal) {
|
|
122
|
+
this.kind = kind;
|
|
123
|
+
this.literal = literal;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
class Component {
|
|
127
|
+
kind;
|
|
128
|
+
literal;
|
|
129
|
+
segments;
|
|
130
|
+
skipPackageFolders;
|
|
131
|
+
mentionsMinSuffix;
|
|
132
|
+
constructor(kind, literal, segments,
|
|
133
|
+
/** Include wildcards don't match `node_modules`, `bower_components` or `jspm_packages`. */
|
|
134
|
+
skipPackageFolders,
|
|
135
|
+
/** A literal segment mentions `.min.`, so `.min.js` files aren't skipped. */
|
|
136
|
+
mentionsMinSuffix) {
|
|
137
|
+
this.kind = kind;
|
|
138
|
+
this.literal = literal;
|
|
139
|
+
this.segments = segments;
|
|
140
|
+
this.skipPackageFolders = skipPackageFolders;
|
|
141
|
+
this.mentionsMinSuffix = mentionsMinSuffix;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
function parseComponent(text, isInclude, caseSensitive) {
|
|
145
|
+
if (text === '**')
|
|
146
|
+
return new Component(2 /* ComponentKind.DoubleAsterisk */, '', [], false, false);
|
|
147
|
+
if (!hasWildcard(text))
|
|
148
|
+
return new Component(0 /* ComponentKind.Literal */, text, [], false, false);
|
|
149
|
+
const segments = [];
|
|
150
|
+
let mentionsMinSuffix = false;
|
|
151
|
+
let start = 0;
|
|
152
|
+
for (let i = 0; i <= text.length; i++) {
|
|
153
|
+
const ch = i < text.length ? text.charCodeAt(i) : -1;
|
|
154
|
+
if (ch !== 0x2a && ch !== 0x3f && ch !== -1)
|
|
155
|
+
continue;
|
|
156
|
+
if (i > start) {
|
|
157
|
+
const literal = text.slice(start, i);
|
|
158
|
+
if ((caseSensitive ? literal : literal.toLowerCase()).includes('.min.'))
|
|
159
|
+
mentionsMinSuffix = true;
|
|
160
|
+
segments.push(new Segment(0 /* SegmentKind.Literal */, literal));
|
|
161
|
+
}
|
|
162
|
+
if (ch !== -1)
|
|
163
|
+
segments.push(new Segment(ch === 0x2a ? 1 /* SegmentKind.Star */ : 2 /* SegmentKind.Question */, ''));
|
|
164
|
+
start = i + 1;
|
|
165
|
+
}
|
|
166
|
+
return new Component(1 /* ComponentKind.Wildcard */, '', segments, isInclude, mentionsMinSuffix);
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Reads the components of `prefix + suffix` without concatenating them, where `prefix` is empty or
|
|
170
|
+
* a directory ending in `/` and `suffix` is a single name. `read` sets `text`, `start` and `end` to the
|
|
171
|
+
* component and `next` to the offset after it, in combined coordinates.
|
|
172
|
+
*/
|
|
173
|
+
class PathReader {
|
|
174
|
+
text = '';
|
|
175
|
+
start = 0;
|
|
176
|
+
end = 0;
|
|
177
|
+
next = 0;
|
|
178
|
+
read(prefix, suffix, offset) {
|
|
179
|
+
if (suffix === '')
|
|
180
|
+
return this.readSingle(prefix, offset, 0);
|
|
181
|
+
if (prefix === '')
|
|
182
|
+
return this.readSingle(suffix, offset, 0);
|
|
183
|
+
if (offset >= prefix.length + suffix.length)
|
|
184
|
+
return false;
|
|
185
|
+
if (offset === 0 && prefix.charCodeAt(0) === 0x2f)
|
|
186
|
+
return this.found(prefix, 0, 0, 1);
|
|
187
|
+
if (offset < prefix.length) {
|
|
188
|
+
while (offset < prefix.length && prefix.charCodeAt(offset) === 0x2f)
|
|
189
|
+
offset++;
|
|
190
|
+
if (offset < prefix.length) {
|
|
191
|
+
const end = prefix.indexOf('/', offset);
|
|
192
|
+
return this.found(prefix, offset, end, end);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
const start = offset - prefix.length;
|
|
196
|
+
if (start >= suffix.length)
|
|
197
|
+
return false;
|
|
198
|
+
return this.found(suffix, start, suffix.length, prefix.length + suffix.length);
|
|
199
|
+
}
|
|
200
|
+
/** Reads from `text`, whose offset 0 is `base` in combined coordinates. */
|
|
201
|
+
readSingle(text, offset, base) {
|
|
202
|
+
if (offset >= text.length)
|
|
203
|
+
return false;
|
|
204
|
+
if (offset === 0 && text.charCodeAt(0) === 0x2f)
|
|
205
|
+
return this.found(text, 0, 0, base + 1);
|
|
206
|
+
while (offset < text.length && text.charCodeAt(offset) === 0x2f)
|
|
207
|
+
offset++;
|
|
208
|
+
if (offset >= text.length)
|
|
209
|
+
return false;
|
|
210
|
+
let end = text.indexOf('/', offset);
|
|
211
|
+
if (end === -1)
|
|
212
|
+
end = text.length;
|
|
213
|
+
return this.found(text, offset, end, base + end);
|
|
214
|
+
}
|
|
215
|
+
found(text, start, end, next) {
|
|
216
|
+
this.text = text;
|
|
217
|
+
this.start = start;
|
|
218
|
+
this.end = end;
|
|
219
|
+
this.next = next;
|
|
220
|
+
return true;
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
/** The components a pattern can be at after the directory `prefix` (`GlobPattern.frontierFrom`). */
|
|
224
|
+
class Frontier {
|
|
225
|
+
/** The directory, ending in `/`; `undefined` before the first. */
|
|
226
|
+
prefix = undefined;
|
|
227
|
+
indices = [];
|
|
228
|
+
/** Whether matching ended with a match within `prefix`. */
|
|
229
|
+
matched = false;
|
|
230
|
+
}
|
|
231
|
+
/** A compiled glob spec such as `src/**\/*.ts`. */
|
|
232
|
+
class GlobPattern {
|
|
233
|
+
components;
|
|
234
|
+
isExclude;
|
|
235
|
+
caseSensitive;
|
|
236
|
+
excludeMinJs;
|
|
237
|
+
reader = new PathReader();
|
|
238
|
+
/** Where matching files, and directories (`prefixOnly`), of the last directory got to. */
|
|
239
|
+
fileFrontier = new Frontier();
|
|
240
|
+
directoryFrontier = new Frontier();
|
|
241
|
+
constructor(components, isExclude, caseSensitive,
|
|
242
|
+
/** `files` patterns skip `.min.js` files unless the pattern mentions them. */
|
|
243
|
+
excludeMinJs) {
|
|
244
|
+
this.components = components;
|
|
245
|
+
this.isExclude = isExclude;
|
|
246
|
+
this.caseSensitive = caseSensitive;
|
|
247
|
+
this.excludeMinJs = excludeMinJs;
|
|
248
|
+
}
|
|
249
|
+
/** `undefined` if the spec matches nothing. */
|
|
250
|
+
static compile(spec, basePath, usage, caseSensitive) {
|
|
251
|
+
const parts = reducePathComponents(getPathComponents(spec, basePath));
|
|
252
|
+
if (usage !== 2 /* MatchUsage.Exclude */ && parts[parts.length - 1] === '**')
|
|
253
|
+
return undefined;
|
|
254
|
+
parts[0] = removeTrailingDirectorySeparator(parts[0]);
|
|
255
|
+
if (isImplicitGlob(parts[parts.length - 1]))
|
|
256
|
+
parts.push('**', '*');
|
|
257
|
+
const isInclude = usage !== 2 /* MatchUsage.Exclude */;
|
|
258
|
+
const components = [];
|
|
259
|
+
for (const part of parts)
|
|
260
|
+
components.push(parseComponent(part, isInclude, caseSensitive));
|
|
261
|
+
return new GlobPattern(components, !isInclude, caseSensitive, usage === 0 /* MatchUsage.Files */);
|
|
262
|
+
}
|
|
263
|
+
/** Whether `prefix + suffix` matches, or with `prefixOnly`, whether files below it could. */
|
|
264
|
+
matches(prefix, suffix, prefixOnly) {
|
|
265
|
+
if (prefix.charCodeAt(prefix.length - 1) !== 0x2f || suffix === '')
|
|
266
|
+
return this.matchFrom(prefix, suffix, 0, 0, prefixOnly);
|
|
267
|
+
// The names of a directory share its prefix: matching goes through it once, to the components
|
|
268
|
+
// matching can be at when it reaches the name.
|
|
269
|
+
const frontier = prefixOnly ? this.directoryFrontier : this.fileFrontier;
|
|
270
|
+
if (frontier.prefix !== prefix) {
|
|
271
|
+
frontier.prefix = prefix;
|
|
272
|
+
frontier.indices.length = 0;
|
|
273
|
+
frontier.matched = this.frontierFrom(prefix, 0, 0, prefixOnly, frontier.indices);
|
|
274
|
+
}
|
|
275
|
+
if (frontier.matched)
|
|
276
|
+
return true;
|
|
277
|
+
for (const index of frontier.indices)
|
|
278
|
+
if (this.matchFrom(prefix, suffix, prefix.length, index, prefixOnly))
|
|
279
|
+
return true;
|
|
280
|
+
return false;
|
|
281
|
+
}
|
|
282
|
+
/**
|
|
283
|
+
* `matchFrom` over the components of `prefix`, a directory ending in `/`, up to the name after it:
|
|
284
|
+
* adds to `indices` the components matching can be at there, and returns whether matching ends with a
|
|
285
|
+
* match before it.
|
|
286
|
+
*/
|
|
287
|
+
frontierFrom(prefix, offset, index, prefixOnly, indices) {
|
|
288
|
+
const reader = this.reader;
|
|
289
|
+
const components = this.components;
|
|
290
|
+
for (;;) {
|
|
291
|
+
// Any name after `prefix` reads the same components of it.
|
|
292
|
+
if (!reader.read(prefix, '*', offset))
|
|
293
|
+
return false;
|
|
294
|
+
if (reader.next > prefix.length) {
|
|
295
|
+
if (!indices.includes(index))
|
|
296
|
+
indices.push(index);
|
|
297
|
+
return false;
|
|
298
|
+
}
|
|
299
|
+
if (index >= components.length)
|
|
300
|
+
return this.isExclude && !prefixOnly;
|
|
301
|
+
const text = reader.text;
|
|
302
|
+
const start = reader.start;
|
|
303
|
+
const end = reader.end;
|
|
304
|
+
const next = reader.next;
|
|
305
|
+
const component = components[index];
|
|
306
|
+
if (component.kind === 2 /* ComponentKind.DoubleAsterisk */) {
|
|
307
|
+
if (this.frontierFrom(prefix, offset, index + 1, prefixOnly, indices))
|
|
308
|
+
return true;
|
|
309
|
+
if (!this.isExclude && (isHidden(text, start, end) || isPackageFolder(text, start, end)))
|
|
310
|
+
return false;
|
|
311
|
+
offset = next;
|
|
312
|
+
continue;
|
|
313
|
+
}
|
|
314
|
+
if (component.kind === 0 /* ComponentKind.Literal */) {
|
|
315
|
+
if (!this.equalAt(component.literal, text, start, end))
|
|
316
|
+
return false;
|
|
317
|
+
}
|
|
318
|
+
else {
|
|
319
|
+
if (component.skipPackageFolders && isPackageFolder(text, start, end))
|
|
320
|
+
return false;
|
|
321
|
+
if (!this.matchWildcard(component, text, start, end))
|
|
322
|
+
return false;
|
|
323
|
+
}
|
|
324
|
+
offset = next;
|
|
325
|
+
index++;
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
matchFrom(prefix, suffix, offset, index, prefixOnly) {
|
|
329
|
+
const reader = this.reader;
|
|
330
|
+
const components = this.components;
|
|
331
|
+
for (;;) {
|
|
332
|
+
if (!reader.read(prefix, suffix, offset))
|
|
333
|
+
return prefixOnly || this.satisfiedFrom(index);
|
|
334
|
+
if (index >= components.length)
|
|
335
|
+
return this.isExclude && !prefixOnly;
|
|
336
|
+
const text = reader.text;
|
|
337
|
+
const start = reader.start;
|
|
338
|
+
const end = reader.end;
|
|
339
|
+
const next = reader.next;
|
|
340
|
+
const component = components[index];
|
|
341
|
+
if (component.kind === 2 /* ComponentKind.DoubleAsterisk */) {
|
|
342
|
+
if (this.matchFrom(prefix, suffix, offset, index + 1, prefixOnly))
|
|
343
|
+
return true;
|
|
344
|
+
if (!this.isExclude && (isHidden(text, start, end) || isPackageFolder(text, start, end)))
|
|
345
|
+
return false;
|
|
346
|
+
offset = next;
|
|
347
|
+
continue;
|
|
348
|
+
}
|
|
349
|
+
if (component.kind === 0 /* ComponentKind.Literal */) {
|
|
350
|
+
if (!this.equalAt(component.literal, text, start, end))
|
|
351
|
+
return false;
|
|
352
|
+
}
|
|
353
|
+
else {
|
|
354
|
+
if (component.skipPackageFolders && isPackageFolder(text, start, end))
|
|
355
|
+
return false;
|
|
356
|
+
if (!this.matchWildcard(component, text, start, end))
|
|
357
|
+
return false;
|
|
358
|
+
}
|
|
359
|
+
offset = next;
|
|
360
|
+
index++;
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
/** Whether the components from `index` on can match nothing: only `**` remain. */
|
|
364
|
+
satisfiedFrom(index) {
|
|
365
|
+
for (let i = index; i < this.components.length; i++) {
|
|
366
|
+
if (this.components[i].kind !== 2 /* ComponentKind.DoubleAsterisk */)
|
|
367
|
+
return false;
|
|
368
|
+
}
|
|
369
|
+
return true;
|
|
370
|
+
}
|
|
371
|
+
matchWildcard(component, text, start, end) {
|
|
372
|
+
const segments = component.segments;
|
|
373
|
+
// Leading wildcards of includes don't match hidden names.
|
|
374
|
+
if (!this.isExclude && isHidden(text, start, end) && segments[0].kind !== 0 /* SegmentKind.Literal */)
|
|
375
|
+
return false;
|
|
376
|
+
if (segments.length === 2 && segments[0].kind === 1 /* SegmentKind.Star */ && segments[1].kind === 0 /* SegmentKind.Literal */) {
|
|
377
|
+
const literal = segments[1].literal;
|
|
378
|
+
if (end - start < literal.length || !this.equalAt(literal, text, end - literal.length, end))
|
|
379
|
+
return false;
|
|
380
|
+
}
|
|
381
|
+
else if (!this.matchSegments(segments, text, start, end)) {
|
|
382
|
+
return false;
|
|
383
|
+
}
|
|
384
|
+
return !this.excludeMinJs || component.mentionsMinSuffix || !this.hasMinJsSuffix(text, start, end);
|
|
385
|
+
}
|
|
386
|
+
/** Matches with backtracking to the last star only, in O(length × segments). */
|
|
387
|
+
matchSegments(segments, text, start, end) {
|
|
388
|
+
let index = 0;
|
|
389
|
+
let position = start;
|
|
390
|
+
let starIndex = -1;
|
|
391
|
+
let starPosition = start;
|
|
392
|
+
while (position < end) {
|
|
393
|
+
if (index < segments.length) {
|
|
394
|
+
const segment = segments[index];
|
|
395
|
+
if (segment.kind === 0 /* SegmentKind.Literal */) {
|
|
396
|
+
const literalEnd = position + segment.literal.length;
|
|
397
|
+
if (literalEnd <= end && this.equalAt(segment.literal, text, position, literalEnd)) {
|
|
398
|
+
position = literalEnd;
|
|
399
|
+
index++;
|
|
400
|
+
continue;
|
|
401
|
+
}
|
|
402
|
+
}
|
|
403
|
+
else if (segment.kind === 2 /* SegmentKind.Question */) {
|
|
404
|
+
if (text.charCodeAt(position) !== 0x2f) {
|
|
405
|
+
position += codePointLength(text, position);
|
|
406
|
+
index++;
|
|
407
|
+
continue;
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
else {
|
|
411
|
+
starIndex = index;
|
|
412
|
+
starPosition = position;
|
|
413
|
+
index++;
|
|
414
|
+
continue;
|
|
415
|
+
}
|
|
416
|
+
}
|
|
417
|
+
if (starIndex >= 0 && starPosition < end && text.charCodeAt(starPosition) !== 0x2f) {
|
|
418
|
+
starPosition += codePointLength(text, starPosition);
|
|
419
|
+
position = starPosition;
|
|
420
|
+
index = starIndex + 1;
|
|
421
|
+
continue;
|
|
422
|
+
}
|
|
423
|
+
return false;
|
|
424
|
+
}
|
|
425
|
+
while (index < segments.length && segments[index].kind === 1 /* SegmentKind.Star */)
|
|
426
|
+
index++;
|
|
427
|
+
return index >= segments.length;
|
|
428
|
+
}
|
|
429
|
+
hasMinJsSuffix(text, start, end) {
|
|
430
|
+
if (end - start < 7)
|
|
431
|
+
return false;
|
|
432
|
+
return this.caseSensitive
|
|
433
|
+
? text.startsWith('.min.js', end - 7)
|
|
434
|
+
: equalIgnoringCaseAt('.min.js', text, end - 7, end);
|
|
435
|
+
}
|
|
436
|
+
equalAt(literal, text, start, end) {
|
|
437
|
+
if (this.caseSensitive)
|
|
438
|
+
return end - start === literal.length && text.startsWith(literal, start);
|
|
439
|
+
return equalIgnoringCaseAt(literal, text, start, end);
|
|
440
|
+
}
|
|
441
|
+
}
|
|
442
|
+
function codePointLength(text, position) {
|
|
443
|
+
const ch = text.charCodeAt(position);
|
|
444
|
+
return ch >= 0xd800 && ch <= 0xdbff && position + 1 < text.length ? 2 : 1;
|
|
445
|
+
}
|
|
446
|
+
/** Whether `text.slice(start, end)` equals `literal` under case folding. */
|
|
447
|
+
function equalIgnoringCaseAt(literal, text, start, end) {
|
|
448
|
+
if (end - start !== literal.length)
|
|
449
|
+
return equateStringsCaseInsensitive(literal, text.slice(start, end));
|
|
450
|
+
for (let i = 0; i < literal.length; i++) {
|
|
451
|
+
const a = literal.charCodeAt(i);
|
|
452
|
+
const b = text.charCodeAt(start + i);
|
|
453
|
+
if (a === b)
|
|
454
|
+
continue;
|
|
455
|
+
if (a >= 0x80 || b >= 0x80)
|
|
456
|
+
return equateStringsCaseInsensitive(literal, text.slice(start, end));
|
|
457
|
+
const lower = a | 0x20;
|
|
458
|
+
if (lower !== (b | 0x20) || lower < 0x61 || lower > 0x7a)
|
|
459
|
+
return false;
|
|
460
|
+
}
|
|
461
|
+
return true;
|
|
462
|
+
}
|
|
463
|
+
function isHidden(text, start, end) {
|
|
464
|
+
return end > start && text.charCodeAt(start) === 0x2e;
|
|
465
|
+
}
|
|
466
|
+
function isPackageFolder(text, start, end) {
|
|
467
|
+
switch (end - start) {
|
|
468
|
+
case 12:
|
|
469
|
+
return equalIgnoringCaseAt('node_modules', text, start, end);
|
|
470
|
+
case 13:
|
|
471
|
+
return equalIgnoringCaseAt('jspm_packages', text, start, end);
|
|
472
|
+
case 16:
|
|
473
|
+
return equalIgnoringCaseAt('bower_components', text, start, end);
|
|
474
|
+
}
|
|
475
|
+
return false;
|
|
476
|
+
}
|
|
477
|
+
// ---- Traversal
|
|
478
|
+
/** Include and exclude patterns together. */
|
|
479
|
+
class GlobMatcher {
|
|
480
|
+
includes = [];
|
|
481
|
+
excludes = [];
|
|
482
|
+
/** Include specs were given, even if none compiled. */
|
|
483
|
+
hadIncludes;
|
|
484
|
+
constructor(includeSpecs, excludeSpecs, basePath, caseSensitive, usage) {
|
|
485
|
+
this.hadIncludes = includeSpecs.length > 0;
|
|
486
|
+
for (const spec of includeSpecs) {
|
|
487
|
+
const pattern = GlobPattern.compile(spec, basePath, usage, caseSensitive);
|
|
488
|
+
if (pattern !== undefined)
|
|
489
|
+
this.includes.push(pattern);
|
|
490
|
+
}
|
|
491
|
+
for (const spec of excludeSpecs) {
|
|
492
|
+
const pattern = GlobPattern.compile(spec, basePath, 2 /* MatchUsage.Exclude */, caseSensitive);
|
|
493
|
+
if (pattern !== undefined)
|
|
494
|
+
this.excludes.push(pattern);
|
|
495
|
+
}
|
|
496
|
+
}
|
|
497
|
+
/** The index of the first include matching `directory + name`, or -1; 0 without includes. */
|
|
498
|
+
matchFile(directory, name) {
|
|
499
|
+
if (this.isExcluded(directory, name))
|
|
500
|
+
return -1;
|
|
501
|
+
if (this.includes.length === 0)
|
|
502
|
+
return this.hadIncludes ? -1 : 0;
|
|
503
|
+
for (let i = 0; i < this.includes.length; i++) {
|
|
504
|
+
if (this.includes[i].matches(directory, name, false))
|
|
505
|
+
return i;
|
|
506
|
+
}
|
|
507
|
+
return -1;
|
|
508
|
+
}
|
|
509
|
+
/** Whether files below `directory + name` could match. */
|
|
510
|
+
matchesDirectory(directory, name) {
|
|
511
|
+
if (this.isExcluded(directory, name))
|
|
512
|
+
return false;
|
|
513
|
+
if (this.includes.length === 0)
|
|
514
|
+
return !this.hadIncludes;
|
|
515
|
+
for (const include of this.includes)
|
|
516
|
+
if (include.matches(directory, name, true))
|
|
517
|
+
return true;
|
|
518
|
+
return false;
|
|
519
|
+
}
|
|
520
|
+
isExcluded(directory, name) {
|
|
521
|
+
for (const exclude of this.excludes)
|
|
522
|
+
if (exclude.matches(directory, name, false))
|
|
523
|
+
return true;
|
|
524
|
+
return false;
|
|
525
|
+
}
|
|
526
|
+
}
|
|
527
|
+
class GlobVisitor {
|
|
528
|
+
fs;
|
|
529
|
+
fileMatcher;
|
|
530
|
+
directoryMatcher;
|
|
531
|
+
extensions;
|
|
532
|
+
onMatch;
|
|
533
|
+
visited = new Set();
|
|
534
|
+
results;
|
|
535
|
+
constructor(fs, fileMatcher, directoryMatcher, extensions,
|
|
536
|
+
/** Called with each file as it matches. */
|
|
537
|
+
onMatch) {
|
|
538
|
+
this.fs = fs;
|
|
539
|
+
this.fileMatcher = fileMatcher;
|
|
540
|
+
this.directoryMatcher = directoryMatcher;
|
|
541
|
+
this.extensions = extensions;
|
|
542
|
+
this.onMatch = onMatch;
|
|
543
|
+
const buckets = Math.max(fileMatcher.includes.length, 1);
|
|
544
|
+
this.results = [];
|
|
545
|
+
for (let i = 0; i < buckets; i++)
|
|
546
|
+
this.results.push([]);
|
|
547
|
+
}
|
|
548
|
+
/** Walks `absolutePath`; `realPath` is its known real path, or `''` to look it up. */
|
|
549
|
+
visit(path, absolutePath, depth, realPath) {
|
|
550
|
+
if (realPath === '')
|
|
551
|
+
realPath = this.fs.realpath(absolutePath);
|
|
552
|
+
const canonical = getCanonicalFileName(realPath, this.fs.useCaseSensitiveFileNames);
|
|
553
|
+
if (this.visited.has(canonical))
|
|
554
|
+
return;
|
|
555
|
+
this.visited.add(canonical);
|
|
556
|
+
const entries = this.fs.getAccessibleEntries(absolutePath);
|
|
557
|
+
const pathPrefix = withTrailingSlash(path);
|
|
558
|
+
const absolutePrefix = withTrailingSlash(absolutePath);
|
|
559
|
+
for (const file of entries.files) {
|
|
560
|
+
if (this.extensions.length > 0 && !fileExtensionIsOneOf(file, this.extensions))
|
|
561
|
+
continue;
|
|
562
|
+
const include = this.fileMatcher.matchFile(absolutePrefix, file);
|
|
563
|
+
if (include === -1)
|
|
564
|
+
continue;
|
|
565
|
+
const match = pathPrefix + file;
|
|
566
|
+
this.results[include].push(match);
|
|
567
|
+
if (this.onMatch !== undefined)
|
|
568
|
+
this.onMatch(match);
|
|
569
|
+
}
|
|
570
|
+
if (depth !== unlimitedDepth) {
|
|
571
|
+
depth--;
|
|
572
|
+
if (depth === 0)
|
|
573
|
+
return;
|
|
574
|
+
}
|
|
575
|
+
for (const directory of entries.directories) {
|
|
576
|
+
if (!this.directoryMatcher.matchesDirectory(absolutePrefix, directory))
|
|
577
|
+
continue;
|
|
578
|
+
// Real paths of plain subdirectories follow from the parent's; symlinks need a lookup.
|
|
579
|
+
const symlinks = entries.symlinks;
|
|
580
|
+
const childRealPath = symlinks !== undefined && !symlinks.has(directory) ? combinePaths(realPath, directory) : '';
|
|
581
|
+
this.visit(pathPrefix + directory, absolutePrefix + directory, depth, childRealPath);
|
|
582
|
+
}
|
|
583
|
+
}
|
|
584
|
+
}
|
|
585
|
+
function withTrailingSlash(path) {
|
|
586
|
+
return path.length > 0 && path.charCodeAt(path.length - 1) !== 0x2f ? path + '/' : path;
|
|
587
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import type { EndOfFile, EntityName, Identifier, KeywordSyntaxKind, ModifierSyntaxKind, NoSubstitutionTemplateLiteral, PropertyAccessExpression, PunctuationSyntaxKind, Statement, StringLiteral, ThisExpression, Token } from './ast.generated.js';
|
|
2
|
+
import type { LanguageVariant, ModifierFlags, NodeFlags, ScriptKind, SyntaxKind } from './enums.generated.js';
|
|
3
|
+
export interface TextRange {
|
|
4
|
+
readonly pos: number;
|
|
5
|
+
readonly end: number;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* A node. `pos` is where the node's leading trivia starts and `end` where the node ends, as UTF-16
|
|
9
|
+
* offsets into the file's text; `tokenStartOfNode` gives the start of its first token. `parent` is the
|
|
10
|
+
* enclosing node, and the source file for its statements; a source file's `parent` is undefined.
|
|
11
|
+
*/
|
|
12
|
+
export interface Node extends TextRange {
|
|
13
|
+
readonly kind: SyntaxKind;
|
|
14
|
+
readonly flags: NodeFlags;
|
|
15
|
+
readonly parent: Node | undefined;
|
|
16
|
+
}
|
|
17
|
+
/** The children of a node in one list: `nodes`, and the range from the list's opening to its closing token. */
|
|
18
|
+
export interface NodeList<T extends Node = Node> extends TextRange {
|
|
19
|
+
readonly nodes: readonly T[];
|
|
20
|
+
/** Whether a comma follows the last node before the list's end. */
|
|
21
|
+
hasTrailingComma(): boolean;
|
|
22
|
+
}
|
|
23
|
+
/** The modifiers of a declaration, with the flags of all of them. */
|
|
24
|
+
export interface ModifierList<T extends Node = Node> extends NodeList<T> {
|
|
25
|
+
readonly modifierFlags: ModifierFlags;
|
|
26
|
+
}
|
|
27
|
+
/** A `/// <reference path>`, `types` or `lib` directive. */
|
|
28
|
+
export interface FileReference extends TextRange {
|
|
29
|
+
readonly fileName: string;
|
|
30
|
+
/** The `resolution-mode` attribute: ModuleKind.ESNext, ModuleKind.CommonJS, or ModuleKind.None without one. */
|
|
31
|
+
readonly resolutionMode: number;
|
|
32
|
+
readonly preserve: boolean;
|
|
33
|
+
}
|
|
34
|
+
export interface LineAndCharacter {
|
|
35
|
+
/** 0-based line number. */
|
|
36
|
+
readonly line: number;
|
|
37
|
+
/** 0-based character offset, in UTF-16 code units, from the start of the line. */
|
|
38
|
+
readonly character: number;
|
|
39
|
+
}
|
|
40
|
+
export interface SourceFile extends Node {
|
|
41
|
+
readonly kind: SyntaxKind.SourceFile;
|
|
42
|
+
readonly statements: NodeList<Statement>;
|
|
43
|
+
readonly endOfFileToken: EndOfFile;
|
|
44
|
+
readonly text: string;
|
|
45
|
+
readonly fileName: string;
|
|
46
|
+
/** The file's path: its absolute, normalized file name, lower-cased where file names are case-insensitive. */
|
|
47
|
+
readonly path: string;
|
|
48
|
+
readonly languageVariant: LanguageVariant;
|
|
49
|
+
readonly scriptKind: ScriptKind;
|
|
50
|
+
readonly isDeclarationFile: boolean;
|
|
51
|
+
readonly referencedFiles: readonly FileReference[];
|
|
52
|
+
readonly typeReferenceDirectives: readonly FileReference[];
|
|
53
|
+
readonly libReferenceDirectives: readonly FileReference[];
|
|
54
|
+
/** The module specifiers of the file's imports, exports, `require` calls and import types, in source order. */
|
|
55
|
+
readonly imports: readonly Node[];
|
|
56
|
+
readonly moduleAugmentations: readonly Node[];
|
|
57
|
+
readonly ambientModuleNames: readonly string[];
|
|
58
|
+
/** The first import or export that makes the file a module, or undefined for a script. */
|
|
59
|
+
readonly externalModuleIndicator: Node | undefined;
|
|
60
|
+
}
|
|
61
|
+
export type PunctuationToken<TKind extends PunctuationSyntaxKind> = Token<TKind>;
|
|
62
|
+
export type KeywordToken<TKind extends KeywordSyntaxKind> = Token<TKind>;
|
|
63
|
+
export type ModifierToken<TKind extends ModifierSyntaxKind> = KeywordToken<TKind>;
|
|
64
|
+
export interface PropertyAccessEntityNameExpression extends PropertyAccessExpression {
|
|
65
|
+
readonly expression: EntityNameExpression;
|
|
66
|
+
readonly name: Identifier;
|
|
67
|
+
}
|
|
68
|
+
export type EntityNameExpression = Identifier | PropertyAccessEntityNameExpression;
|
|
69
|
+
export type StringLiteralLike = StringLiteral | NoSubstitutionTemplateLiteral;
|
|
70
|
+
export type EntityNameOrEntityNameExpression = EntityName | EntityNameExpression;
|
|
71
|
+
export interface JsxTagNamePropertyAccess extends PropertyAccessExpression {
|
|
72
|
+
readonly expression: Identifier | ThisExpression | JsxTagNamePropertyAccess;
|
|
73
|
+
}
|
|
74
|
+
export * from './ast.generated.js';
|