diff --git a/docs/developer/plugin/development-plugin-resources.asciidoc b/docs/developer/plugin/development-plugin-resources.asciidoc index 3a32c49e40e0f..e3678242157c6 100644 --- a/docs/developer/plugin/development-plugin-resources.asciidoc +++ b/docs/developer/plugin/development-plugin-resources.asciidoc @@ -53,7 +53,7 @@ To enable TypeScript support, create a `tsconfig.json` file at the root of your ----------- { // extend Kibana's tsconfig, or use your own settings - "extends": "../../kibana/tsconfig.json", + "extends": "../../kibana/tsconfig.base.json", // tell the TypeScript compiler where to find your source files "include": [ diff --git a/examples/alerting_example/tsconfig.json b/examples/alerting_example/tsconfig.json index fbcec9de439bd..09c130aca4642 100644 --- a/examples/alerting_example/tsconfig.json +++ b/examples/alerting_example/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../tsconfig.json", + "extends": "../../tsconfig.base.json", "compilerOptions": { "outDir": "./target" }, diff --git a/examples/bfetch_explorer/tsconfig.json b/examples/bfetch_explorer/tsconfig.json index d508076b33199..798a9c222c5ab 100644 --- a/examples/bfetch_explorer/tsconfig.json +++ b/examples/bfetch_explorer/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../tsconfig.json", + "extends": "../../tsconfig.base.json", "compilerOptions": { "outDir": "./target", "skipLibCheck": true diff --git a/examples/dashboard_embeddable_examples/tsconfig.json b/examples/dashboard_embeddable_examples/tsconfig.json index d508076b33199..798a9c222c5ab 100644 --- a/examples/dashboard_embeddable_examples/tsconfig.json +++ b/examples/dashboard_embeddable_examples/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../tsconfig.json", + "extends": "../../tsconfig.base.json", "compilerOptions": { "outDir": "./target", "skipLibCheck": true diff --git a/examples/developer_examples/tsconfig.json b/examples/developer_examples/tsconfig.json index d508076b33199..798a9c222c5ab 100644 --- a/examples/developer_examples/tsconfig.json +++ b/examples/developer_examples/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../tsconfig.json", + "extends": "../../tsconfig.base.json", "compilerOptions": { "outDir": "./target", "skipLibCheck": true diff --git a/examples/embeddable_examples/tsconfig.json b/examples/embeddable_examples/tsconfig.json index 7fa03739119b4..393b845582cfd 100644 --- a/examples/embeddable_examples/tsconfig.json +++ b/examples/embeddable_examples/tsconfig.json @@ -1,8 +1,10 @@ { - "extends": "../../tsconfig.json", + "extends": "../../tsconfig.base.json", "compilerOptions": { + "composite": true, "outDir": "./target", - "skipLibCheck": true + "skipLibCheck": true, + "jsx": "react", }, "include": [ "index.ts", @@ -12,5 +14,6 @@ "server/**/*.ts", "../../typings/**/*" ], - "exclude": [] + "exclude": [], + "references": [{"path": "../../tsconfig.src.json"}] } diff --git a/examples/embeddable_explorer/tsconfig.json b/examples/embeddable_explorer/tsconfig.json index d508076b33199..798a9c222c5ab 100644 --- a/examples/embeddable_explorer/tsconfig.json +++ b/examples/embeddable_explorer/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../tsconfig.json", + "extends": "../../tsconfig.base.json", "compilerOptions": { "outDir": "./target", "skipLibCheck": true diff --git a/examples/state_containers_examples/tsconfig.json b/examples/state_containers_examples/tsconfig.json index 3f43072c2aade..007322e2d9525 100644 --- a/examples/state_containers_examples/tsconfig.json +++ b/examples/state_containers_examples/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../tsconfig.json", + "extends": "../../tsconfig.base.json", "compilerOptions": { "outDir": "./target", "skipLibCheck": true diff --git a/examples/ui_action_examples/tsconfig.json b/examples/ui_action_examples/tsconfig.json index d508076b33199..798a9c222c5ab 100644 --- a/examples/ui_action_examples/tsconfig.json +++ b/examples/ui_action_examples/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../tsconfig.json", + "extends": "../../tsconfig.base.json", "compilerOptions": { "outDir": "./target", "skipLibCheck": true diff --git a/examples/ui_actions_explorer/tsconfig.json b/examples/ui_actions_explorer/tsconfig.json index 199fbe1fcfa26..119209114a7bb 100644 --- a/examples/ui_actions_explorer/tsconfig.json +++ b/examples/ui_actions_explorer/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../tsconfig.json", + "extends": "../../tsconfig.base.json", "compilerOptions": { "outDir": "./target", "skipLibCheck": true diff --git a/examples/url_generators_examples/tsconfig.json b/examples/url_generators_examples/tsconfig.json index 091130487791b..327b4642a8e7f 100644 --- a/examples/url_generators_examples/tsconfig.json +++ b/examples/url_generators_examples/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../tsconfig.json", + "extends": "../../tsconfig.base.json", "compilerOptions": { "outDir": "./target", "skipLibCheck": true diff --git a/examples/url_generators_explorer/tsconfig.json b/examples/url_generators_explorer/tsconfig.json index 091130487791b..327b4642a8e7f 100644 --- a/examples/url_generators_explorer/tsconfig.json +++ b/examples/url_generators_explorer/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../tsconfig.json", + "extends": "../../tsconfig.base.json", "compilerOptions": { "outDir": "./target", "skipLibCheck": true diff --git a/package.json b/package.json index cf735d3663a63..e0cea1429f4be 100644 --- a/package.json +++ b/package.json @@ -88,7 +88,7 @@ "**/@types/chai": "^4.2.11", "**/cypress/@types/lodash": "^4.14.155", "**/cypress/lodash": "^4.15.19", - "**/typescript": "3.9.5", + "**/typescript": "4.0.0-beta", "**/graphql-toolkit/lodash": "^4.17.15", "**/hoist-non-react-statics": "^3.3.2", "**/isomorphic-git/**/base64-js": "^1.2.1", @@ -503,7 +503,7 @@ "supertest-as-promised": "^4.0.2", "tape": "^4.13.0", "tree-kill": "^1.2.2", - "typescript": "3.9.5", + "typescript": "4.0.0-beta", "typings-tester": "^0.3.2", "vinyl-fs": "^3.0.3", "xml2js": "^0.4.22", diff --git a/packages/elastic-datemath/tsconfig.json b/packages/elastic-datemath/tsconfig.json index c23b6635a5c19..22169681dbd59 100644 --- a/packages/elastic-datemath/tsconfig.json +++ b/packages/elastic-datemath/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../tsconfig.json", + "extends": "../../tsconfig.base.json", "compilerOptions": { "declaration": true, "outDir": "./target" diff --git a/packages/kbn-analytics/tsconfig.json b/packages/kbn-analytics/tsconfig.json index fdd9e8281fba8..f28f860b9993c 100644 --- a/packages/kbn-analytics/tsconfig.json +++ b/packages/kbn-analytics/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../tsconfig.json", + "extends": "../../tsconfig.base.json", "compilerOptions": { "declaration": true, "declarationDir": "./target/types", diff --git a/packages/kbn-config-schema/tsconfig.json b/packages/kbn-config-schema/tsconfig.json index f6c61268da17c..6a268f2e7c016 100644 --- a/packages/kbn-config-schema/tsconfig.json +++ b/packages/kbn-config-schema/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../tsconfig.json", + "extends": "../../tsconfig.base.json", "compilerOptions": { "declaration": true, "declarationDir": "./target/types", diff --git a/packages/kbn-dev-utils/tsconfig.json b/packages/kbn-dev-utils/tsconfig.json index 0ec058eeb8a28..1c6c671d0b768 100644 --- a/packages/kbn-dev-utils/tsconfig.json +++ b/packages/kbn-dev-utils/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../tsconfig.json", + "extends": "../../tsconfig.base.json", "compilerOptions": { "outDir": "target", "target": "ES2019", diff --git a/packages/kbn-es/tsconfig.json b/packages/kbn-es/tsconfig.json index 6bb61453c99e7..89a0d93c2ddd5 100644 --- a/packages/kbn-es/tsconfig.json +++ b/packages/kbn-es/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../tsconfig.json", + "extends": "../../tsconfig.base.json", "include": [ "src/**/*.ts" ] diff --git a/packages/kbn-expect/tsconfig.json b/packages/kbn-expect/tsconfig.json index a09ae2d7ae641..6d1e9470ac874 100644 --- a/packages/kbn-expect/tsconfig.json +++ b/packages/kbn-expect/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../tsconfig.json", + "extends": "../../tsconfig.base.json", "include": [ "expect.js.d.ts" ] diff --git a/packages/kbn-i18n/tsconfig.json b/packages/kbn-i18n/tsconfig.json index d3dae3078c1d7..303c29faf1258 100644 --- a/packages/kbn-i18n/tsconfig.json +++ b/packages/kbn-i18n/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../tsconfig.json", + "extends": "../../tsconfig.base.json", "include": [ "src/**/*.ts", "src/**/*.tsx", diff --git a/packages/kbn-interpreter/tsconfig.json b/packages/kbn-interpreter/tsconfig.json index 63376a7ca1ae8..6465c528beda3 100644 --- a/packages/kbn-interpreter/tsconfig.json +++ b/packages/kbn-interpreter/tsconfig.json @@ -1,4 +1,4 @@ { - "extends": "../../tsconfig.json", + "extends": "../../tsconfig.base.json", "include": ["index.d.ts", "src/**/*.d.ts"] } diff --git a/packages/kbn-monaco/tsconfig.json b/packages/kbn-monaco/tsconfig.json index 95acfd32b24dd..6d3f433c6a6d1 100644 --- a/packages/kbn-monaco/tsconfig.json +++ b/packages/kbn-monaco/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../tsconfig.json", + "extends": "../../tsconfig.base.json", "compilerOptions": { "outDir": "./target", "declaration": true, diff --git a/packages/kbn-optimizer/tsconfig.json b/packages/kbn-optimizer/tsconfig.json index e2994f4d02414..ea16da6ff7a8e 100644 --- a/packages/kbn-optimizer/tsconfig.json +++ b/packages/kbn-optimizer/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../tsconfig.json", + "extends": "../../tsconfig.base.json", "include": [ "index.d.ts", "src/**/*" diff --git a/packages/kbn-plugin-generator/tsconfig.json b/packages/kbn-plugin-generator/tsconfig.json index fe0f7112f1fa9..2ba7bb2feed21 100644 --- a/packages/kbn-plugin-generator/tsconfig.json +++ b/packages/kbn-plugin-generator/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../tsconfig.json", + "extends": "../../tsconfig.base.json", "include": ["**/*", "index.js.d.ts"], "exclude": ["sao_template/template/*"] } diff --git a/packages/kbn-plugin-helpers/README.md b/packages/kbn-plugin-helpers/README.md index 4c648fd9bde8c..dd82dc38979cb 100644 --- a/packages/kbn-plugin-helpers/README.md +++ b/packages/kbn-plugin-helpers/README.md @@ -80,7 +80,7 @@ Plugin code can be written in [TypeScript](http://www.typescriptlang.org/) if de ```js { // extend Kibana's tsconfig, or use your own settings - "extends": "../../kibana/tsconfig.json", + "extends": "../../kibana/tsconfig.base.json", // tell the TypeScript compiler where to find your source files "include": [ diff --git a/packages/kbn-plugin-helpers/tsconfig.json b/packages/kbn-plugin-helpers/tsconfig.json index d0dbe1e44f0fa..39722e303776d 100644 --- a/packages/kbn-plugin-helpers/tsconfig.json +++ b/packages/kbn-plugin-helpers/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../tsconfig.json", + "extends": "../../tsconfig.base.json", "compilerOptions": { "outDir": "target", "declaration": true, diff --git a/packages/kbn-pm/tsconfig.json b/packages/kbn-pm/tsconfig.json index bfb13ee8dcf8a..82b23ce8fced4 100644 --- a/packages/kbn-pm/tsconfig.json +++ b/packages/kbn-pm/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../tsconfig.json", + "extends": "../../tsconfig.base.json", "include": [ "./src/**/*.ts", "./dist/*.d.ts", diff --git a/packages/kbn-release-notes/tsconfig.json b/packages/kbn-release-notes/tsconfig.json index 6ffa64d91fba0..02209a29e5817 100644 --- a/packages/kbn-release-notes/tsconfig.json +++ b/packages/kbn-release-notes/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../tsconfig.json", + "extends": "../../tsconfig.base.json", "compilerOptions": { "outDir": "./target", "declaration": true, diff --git a/packages/kbn-telemetry-tools/tsconfig.json b/packages/kbn-telemetry-tools/tsconfig.json index 13ce8ef2bad60..8460e2779d18a 100644 --- a/packages/kbn-telemetry-tools/tsconfig.json +++ b/packages/kbn-telemetry-tools/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../tsconfig.json", + "extends": "../../tsconfig.base.json", "include": [ "src/**/*", ] diff --git a/packages/kbn-test-subj-selector/tsconfig.json b/packages/kbn-test-subj-selector/tsconfig.json index 3604f1004cf6c..8d1c263609c2e 100644 --- a/packages/kbn-test-subj-selector/tsconfig.json +++ b/packages/kbn-test-subj-selector/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../tsconfig.json", + "extends": "../../tsconfig.base.json", "include": [ "index.d.ts" ], diff --git a/packages/kbn-test/tsconfig.json b/packages/kbn-test/tsconfig.json index fdb53de52687b..f07f79c01f5d0 100644 --- a/packages/kbn-test/tsconfig.json +++ b/packages/kbn-test/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../tsconfig.json", + "extends": "../../tsconfig.base.json", "include": [ "types/**/*", "src/**/*", diff --git a/packages/kbn-ui-shared-deps/tsconfig.json b/packages/kbn-ui-shared-deps/tsconfig.json index cef9a442d17bc..7be36f8ef5978 100644 --- a/packages/kbn-ui-shared-deps/tsconfig.json +++ b/packages/kbn-ui-shared-deps/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../tsconfig.json", + "extends": "../../tsconfig.base.json", "include": [ "index.d.ts", "theme.ts" diff --git a/packages/kbn-utility-types/tsconfig.json b/packages/kbn-utility-types/tsconfig.json index 202df37faf561..03cace5b9cb2c 100644 --- a/packages/kbn-utility-types/tsconfig.json +++ b/packages/kbn-utility-types/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../tsconfig.json", + "extends": "../../tsconfig.base.json", "compilerOptions": { "declaration": true, "declarationDir": "./target", diff --git a/src/dev/typescript/project.ts b/src/dev/typescript/project.ts index 4cf87d812a0b3..d46874bcabd7e 100644 --- a/src/dev/typescript/project.ts +++ b/src/dev/typescript/project.ts @@ -53,13 +53,14 @@ export class Project { public name: string; public config: any; public disableTypeCheck: boolean; + public disableNoEmit: boolean; private readonly include: IMinimatch[]; private readonly exclude: IMinimatch[]; constructor( public tsConfigPath: string, - options: { name?: string; disableTypeCheck?: boolean } = {} + options: { name?: string; disableTypeCheck?: boolean; disableNoEmit?: boolean } = {} ) { this.config = parseTsConfig(tsConfigPath); @@ -69,7 +70,7 @@ export class Project { exclude?: string[]; }; - if (files || !include) { + if ((files && files.length > 0) || !include) { throw new Error( 'tsconfig.json files in the Kibana repo must use "include" keys and not "files"' ); @@ -77,8 +78,9 @@ export class Project { this.directory = dirname(this.tsConfigPath); this.disableTypeCheck = options.disableTypeCheck || false; + this.disableNoEmit = options.disableNoEmit || false; this.name = options.name || relative(REPO_ROOT, this.directory) || basename(this.directory); - this.include = makeMatchers(this.directory, include); + this.include = makeMatchers(this.directory, include || []); this.exclude = makeMatchers(this.directory, exclude); } diff --git a/src/dev/typescript/projects.ts b/src/dev/typescript/projects.ts index 065321e355256..9ea61d4f48c42 100644 --- a/src/dev/typescript/projects.ts +++ b/src/dev/typescript/projects.ts @@ -23,7 +23,12 @@ import { REPO_ROOT } from '../constants'; import { Project } from './project'; export const PROJECTS = [ - new Project(resolve(REPO_ROOT, 'tsconfig.json')), + new Project(resolve(REPO_ROOT, 'tsconfig.oss.json'), { + disableNoEmit: true, + }), + new Project(resolve(REPO_ROOT, 'tsconfig.test.json'), { + disableNoEmit: true, + }), new Project(resolve(REPO_ROOT, 'test/tsconfig.json'), { name: 'kibana/test' }), new Project(resolve(REPO_ROOT, 'x-pack/tsconfig.json')), new Project(resolve(REPO_ROOT, 'x-pack/test/tsconfig.json'), { name: 'x-pack/test' }), diff --git a/src/dev/typescript/run_type_check_cli.ts b/src/dev/typescript/run_type_check_cli.ts index 5d4cf14c1cd95..9577d6e744d68 100644 --- a/src/dev/typescript/run_type_check_cli.ts +++ b/src/dev/typescript/run_type_check_cli.ts @@ -79,7 +79,7 @@ export function runTypeCheckCli() { process.exit(); } - const tscArgs = ['--noEmit', '--pretty', ...(opts['skip-lib-check'] ? ['--skipLibCheck'] : [])]; + const tscArgs = ['--pretty', ...(opts['skip-lib-check'] ? ['--skipLibCheck'] : [])]; const projects = filterProjectsByFlag(opts.project).filter((p) => !p.disableTypeCheck); if (!projects.length) { @@ -90,7 +90,9 @@ export function runTypeCheckCli() { execInProjects(log, projects, process.execPath, (project) => [ ...(project.name.startsWith('x-pack') ? ['--max-old-space-size=4096'] : []), require.resolve('typescript/bin/tsc'), - ...['--project', project.tsConfigPath], + ...(project.config.compilerOptions?.composite + ? ['-b', project.tsConfigPath] + : ['--noEmit', '--project', project.tsConfigPath]), ...tscArgs, ]); } diff --git a/test/interpreter_functional/plugins/kbn_tp_run_pipeline/tsconfig.json b/test/interpreter_functional/plugins/kbn_tp_run_pipeline/tsconfig.json index 5fcaeafbb0d85..4d979fbf7f15f 100644 --- a/test/interpreter_functional/plugins/kbn_tp_run_pipeline/tsconfig.json +++ b/test/interpreter_functional/plugins/kbn_tp_run_pipeline/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../../tsconfig.json", + "extends": "../../../../tsconfig.base.json", "compilerOptions": { "outDir": "./target", "skipLibCheck": true diff --git a/test/plugin_functional/plugins/app_link_test/tsconfig.json b/test/plugin_functional/plugins/app_link_test/tsconfig.json index 5fcaeafbb0d85..4d979fbf7f15f 100644 --- a/test/plugin_functional/plugins/app_link_test/tsconfig.json +++ b/test/plugin_functional/plugins/app_link_test/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../../tsconfig.json", + "extends": "../../../../tsconfig.base.json", "compilerOptions": { "outDir": "./target", "skipLibCheck": true diff --git a/test/plugin_functional/plugins/core_app_status/tsconfig.json b/test/plugin_functional/plugins/core_app_status/tsconfig.json index 5fcaeafbb0d85..4d979fbf7f15f 100644 --- a/test/plugin_functional/plugins/core_app_status/tsconfig.json +++ b/test/plugin_functional/plugins/core_app_status/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../../tsconfig.json", + "extends": "../../../../tsconfig.base.json", "compilerOptions": { "outDir": "./target", "skipLibCheck": true diff --git a/test/plugin_functional/plugins/core_plugin_a/tsconfig.json b/test/plugin_functional/plugins/core_plugin_a/tsconfig.json index 1ba21f11b7de2..ccbffc34bce4a 100644 --- a/test/plugin_functional/plugins/core_plugin_a/tsconfig.json +++ b/test/plugin_functional/plugins/core_plugin_a/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../../tsconfig.json", + "extends": "../../../../tsconfig.base.json", "compilerOptions": { "outDir": "./target", "skipLibCheck": true diff --git a/test/plugin_functional/plugins/core_plugin_appleave/tsconfig.json b/test/plugin_functional/plugins/core_plugin_appleave/tsconfig.json index 5fcaeafbb0d85..4d979fbf7f15f 100644 --- a/test/plugin_functional/plugins/core_plugin_appleave/tsconfig.json +++ b/test/plugin_functional/plugins/core_plugin_appleave/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../../tsconfig.json", + "extends": "../../../../tsconfig.base.json", "compilerOptions": { "outDir": "./target", "skipLibCheck": true diff --git a/test/plugin_functional/plugins/core_plugin_b/tsconfig.json b/test/plugin_functional/plugins/core_plugin_b/tsconfig.json index 1ba21f11b7de2..ccbffc34bce4a 100644 --- a/test/plugin_functional/plugins/core_plugin_b/tsconfig.json +++ b/test/plugin_functional/plugins/core_plugin_b/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../../tsconfig.json", + "extends": "../../../../tsconfig.base.json", "compilerOptions": { "outDir": "./target", "skipLibCheck": true diff --git a/test/plugin_functional/plugins/core_plugin_chromeless/tsconfig.json b/test/plugin_functional/plugins/core_plugin_chromeless/tsconfig.json index 5fcaeafbb0d85..4d979fbf7f15f 100644 --- a/test/plugin_functional/plugins/core_plugin_chromeless/tsconfig.json +++ b/test/plugin_functional/plugins/core_plugin_chromeless/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../../tsconfig.json", + "extends": "../../../../tsconfig.base.json", "compilerOptions": { "outDir": "./target", "skipLibCheck": true diff --git a/test/plugin_functional/plugins/core_plugin_legacy/tsconfig.json b/test/plugin_functional/plugins/core_plugin_legacy/tsconfig.json index 1ba21f11b7de2..ccbffc34bce4a 100644 --- a/test/plugin_functional/plugins/core_plugin_legacy/tsconfig.json +++ b/test/plugin_functional/plugins/core_plugin_legacy/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../../tsconfig.json", + "extends": "../../../../tsconfig.base.json", "compilerOptions": { "outDir": "./target", "skipLibCheck": true diff --git a/test/plugin_functional/plugins/core_plugin_static_assets/tsconfig.json b/test/plugin_functional/plugins/core_plugin_static_assets/tsconfig.json index 4a564ee1e5578..433b041b9af3f 100644 --- a/test/plugin_functional/plugins/core_plugin_static_assets/tsconfig.json +++ b/test/plugin_functional/plugins/core_plugin_static_assets/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../../tsconfig.json", + "extends": "../../../../tsconfig.base.json", "compilerOptions": { "outDir": "./target", "skipLibCheck": true diff --git a/test/plugin_functional/plugins/core_provider_plugin/tsconfig.json b/test/plugin_functional/plugins/core_provider_plugin/tsconfig.json index baedb5f2f621b..0aac2eb570987 100644 --- a/test/plugin_functional/plugins/core_provider_plugin/tsconfig.json +++ b/test/plugin_functional/plugins/core_provider_plugin/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../../tsconfig.json", + "extends": "../../../../tsconfig.base.json", "compilerOptions": { "outDir": "./target", "skipLibCheck": true diff --git a/test/plugin_functional/plugins/doc_views_plugin/tsconfig.json b/test/plugin_functional/plugins/doc_views_plugin/tsconfig.json index 4a564ee1e5578..433b041b9af3f 100644 --- a/test/plugin_functional/plugins/doc_views_plugin/tsconfig.json +++ b/test/plugin_functional/plugins/doc_views_plugin/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../../tsconfig.json", + "extends": "../../../../tsconfig.base.json", "compilerOptions": { "outDir": "./target", "skipLibCheck": true diff --git a/test/plugin_functional/plugins/index_patterns/tsconfig.json b/test/plugin_functional/plugins/index_patterns/tsconfig.json index 6f0c32ad30601..d5ccf7adddb2d 100644 --- a/test/plugin_functional/plugins/index_patterns/tsconfig.json +++ b/test/plugin_functional/plugins/index_patterns/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../../tsconfig.json", + "extends": "../../../../tsconfig.base.json", "compilerOptions": { "outDir": "./target", "skipLibCheck": true diff --git a/test/plugin_functional/plugins/kbn_sample_panel_action/tsconfig.json b/test/plugin_functional/plugins/kbn_sample_panel_action/tsconfig.json index 5fcaeafbb0d85..4d979fbf7f15f 100644 --- a/test/plugin_functional/plugins/kbn_sample_panel_action/tsconfig.json +++ b/test/plugin_functional/plugins/kbn_sample_panel_action/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../../tsconfig.json", + "extends": "../../../../tsconfig.base.json", "compilerOptions": { "outDir": "./target", "skipLibCheck": true diff --git a/test/plugin_functional/plugins/kbn_top_nav/tsconfig.json b/test/plugin_functional/plugins/kbn_top_nav/tsconfig.json index 1ba21f11b7de2..ccbffc34bce4a 100644 --- a/test/plugin_functional/plugins/kbn_top_nav/tsconfig.json +++ b/test/plugin_functional/plugins/kbn_top_nav/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../../tsconfig.json", + "extends": "../../../../tsconfig.base.json", "compilerOptions": { "outDir": "./target", "skipLibCheck": true diff --git a/test/plugin_functional/plugins/kbn_tp_custom_visualizations/tsconfig.json b/test/plugin_functional/plugins/kbn_tp_custom_visualizations/tsconfig.json index d8096d9aab27a..d291796e52b06 100644 --- a/test/plugin_functional/plugins/kbn_tp_custom_visualizations/tsconfig.json +++ b/test/plugin_functional/plugins/kbn_tp_custom_visualizations/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "outDir": "./target", "skipLibCheck": true, @@ -16,4 +16,4 @@ "../../../../typings/**/*", ], "exclude": [] -} \ No newline at end of file +} diff --git a/test/plugin_functional/plugins/legacy_plugin/tsconfig.json b/test/plugin_functional/plugins/legacy_plugin/tsconfig.json index 1ba21f11b7de2..ccbffc34bce4a 100644 --- a/test/plugin_functional/plugins/legacy_plugin/tsconfig.json +++ b/test/plugin_functional/plugins/legacy_plugin/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../../tsconfig.json", + "extends": "../../../../tsconfig.base.json", "compilerOptions": { "outDir": "./target", "skipLibCheck": true diff --git a/test/plugin_functional/plugins/management_test_plugin/tsconfig.json b/test/plugin_functional/plugins/management_test_plugin/tsconfig.json index 5fcaeafbb0d85..4d979fbf7f15f 100644 --- a/test/plugin_functional/plugins/management_test_plugin/tsconfig.json +++ b/test/plugin_functional/plugins/management_test_plugin/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../../tsconfig.json", + "extends": "../../../../tsconfig.base.json", "compilerOptions": { "outDir": "./target", "skipLibCheck": true diff --git a/test/plugin_functional/plugins/rendering_plugin/tsconfig.json b/test/plugin_functional/plugins/rendering_plugin/tsconfig.json index 1ba21f11b7de2..ccbffc34bce4a 100644 --- a/test/plugin_functional/plugins/rendering_plugin/tsconfig.json +++ b/test/plugin_functional/plugins/rendering_plugin/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../../tsconfig.json", + "extends": "../../../../tsconfig.base.json", "compilerOptions": { "outDir": "./target", "skipLibCheck": true diff --git a/test/plugin_functional/plugins/ui_settings_plugin/tsconfig.json b/test/plugin_functional/plugins/ui_settings_plugin/tsconfig.json index 7c170405bbfc7..33b2d6c0f64ad 100644 --- a/test/plugin_functional/plugins/ui_settings_plugin/tsconfig.json +++ b/test/plugin_functional/plugins/ui_settings_plugin/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../../tsconfig.json", + "extends": "../../../../tsconfig.base.json", "compilerOptions": { "outDir": "./target", "skipLibCheck": true diff --git a/test/tsconfig.base.json b/test/tsconfig.base.json new file mode 100644 index 0000000000000..6c030850b0b61 --- /dev/null +++ b/test/tsconfig.base.json @@ -0,0 +1,14 @@ +{ + "extends": "../tsconfig.base.json", + "compilerOptions": { + "types": [ + "node", + "mocha", + "flot" + ], + "lib": [ + "esnext", + "dom" + ] + } +} diff --git a/test/tsconfig.json b/test/tsconfig.json index 87e79b295315f..59b0e3108e286 100644 --- a/test/tsconfig.json +++ b/test/tsconfig.json @@ -1,16 +1,5 @@ { - "extends": "../tsconfig.json", - "compilerOptions": { - "types": [ - "node", - "mocha", - "flot" - ], - "lib": [ - "esnext", - "dom" - ] - }, + "extends": "./tsconfig.base.json", "include": [ "**/*.ts", "**/*.tsx", diff --git a/tsconfig.base.json b/tsconfig.base.json new file mode 100644 index 0000000000000..c1dcfe8208e2a --- /dev/null +++ b/tsconfig.base.json @@ -0,0 +1,61 @@ +{ + "compilerOptions": { + "baseUrl": ".", + "paths": { + // Allows for importing from `kibana` package for the exported types. + "kibana": ["./kibana"], + "kibana/public": ["src/core/public"], + "kibana/server": ["src/core/server"], + "plugins/*": ["src/plugins/*"], + "ui/*": [ + "src/legacy/ui/public/*" + ], + "test_utils/*": [ + "src/test_utils/public/*" + ], + "fixtures/*": ["src/fixtures/*"], + }, + // Support .tsx files and transform JSX into calls to React.createElement + "jsx": "react", + // Enables all strict type checking options. + "strict": true, + // enables "core language features" + "lib": [ + "esnext", + // includes support for browser APIs + "dom" + ], + // Node 8 should support everything output by esnext, we override this + // in webpack with loader-level compiler options + "target": "esnext", + // Use commonjs for node, overridden in webpack to keep import statements + // to maintain support for things like `await import()` + "module": "commonjs", + // Allows default imports from modules with no default export. This does not affect code emit, just type checking. + // We have to enable this option explicitly since `esModuleInterop` doesn't enable it automatically when ES2015 or + // ESNext module format is used. + "allowSyntheticDefaultImports": true, + // Emits __importStar and __importDefault helpers for runtime babel ecosystem compatibility. + "esModuleInterop": true, + // Resolve modules in the same way as Node.js. Aka make `require` works the + // same in TypeScript as it does in Node.js. + "moduleResolution": "node", + // Disallow inconsistently-cased references to the same file. + "forceConsistentCasingInFileNames": true, + // Forbid unused local variables as the rule was deprecated by ts-lint + "noUnusedLocals": true, + // Provide full support for iterables in for..of, spread and destructuring when targeting ES5 or ES3. + "downlevelIteration": true, + // import tslib helpers rather than inlining helpers for iteration or spreading, for instance + "importHelpers": true, + // adding global typings + "types": [ + "node", + "jest", + "react", + "flot", + "jest-styled-components", + "@testing-library/jest-dom" + ] + }, +} diff --git a/tsconfig.browser.json b/tsconfig.browser.json index fdfc868157e0d..addae59ce9ade 100644 --- a/tsconfig.browser.json +++ b/tsconfig.browser.json @@ -1,5 +1,5 @@ { - "extends": "./tsconfig.json", + "extends": "./tsconfig.oss.json", "compilerOptions": { "target": "es5", "module": "esnext", diff --git a/tsconfig.json b/tsconfig.json index 66906fb18bb80..674c96416a16b 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,75 +1,11 @@ { - "compilerOptions": { - "baseUrl": ".", - "paths": { - // Allows for importing from `kibana` package for the exported types. - "kibana": ["./kibana"], - "kibana/public": ["src/core/public"], - "kibana/server": ["src/core/server"], - "plugins/*": ["src/legacy/core_plugins/*/public/"], - "ui/*": [ - "src/legacy/ui/public/*" - ], - "test_utils/*": [ - "src/test_utils/public/*" - ], - "fixtures/*": ["src/fixtures/*"] - }, - // Support .tsx files and transform JSX into calls to React.createElement - "jsx": "react", - // Enables all strict type checking options. - "strict": true, - // enables "core language features" - "lib": [ - "esnext", - // includes support for browser APIs - "dom" - ], - // Node 8 should support everything output by esnext, we override this - // in webpack with loader-level compiler options - "target": "esnext", - // Use commonjs for node, overridden in webpack to keep import statements - // to maintain support for things like `await import()` - "module": "commonjs", - // Allows default imports from modules with no default export. This does not affect code emit, just type checking. - // We have to enable this option explicitly since `esModuleInterop` doesn't enable it automatically when ES2015 or - // ESNext module format is used. - "allowSyntheticDefaultImports": true, - // Emits __importStar and __importDefault helpers for runtime babel ecosystem compatibility. - "esModuleInterop": true, - // Resolve modules in the same way as Node.js. Aka make `require` works the - // same in TypeScript as it does in Node.js. - "moduleResolution": "node", - // Disallow inconsistently-cased references to the same file. - "forceConsistentCasingInFileNames": true, - // Forbid unused local variables as the rule was deprecated by ts-lint - "noUnusedLocals": true, - // Provide full support for iterables in for..of, spread and destructuring when targeting ES5 or ES3. - "downlevelIteration": true, - // import tslib helpers rather than inlining helpers for iteration or spreading, for instance - "importHelpers": true, - // adding global typings - "types": [ - "node", - "jest", - "react", - "flot", - "jest-styled-components", - "@testing-library/jest-dom" - ] - }, - "include": [ - "kibana.d.ts", - "src/**/*", - "typings/**/*", - "test_utils/**/*" + "references": [ + {"path": "./tsconfig.src.json"}, + {"path": "./tsconfig.test.json"}, + {"path": "./examples/embeddable_examples"}, + {"path": "./x-pack/tsconfig.src.json"}, + {"path": "./x-pack/tsconfig.test.json"}, ], - "exclude": [ - "src/**/__fixtures__/**/*" - // In the build we actually exclude **/public/**/* from this config so that - // we can run the TSC on both this and the .browser version of this config - // file, but if we did it during development IDEs would not be able to find - // the tsconfig.json file for public files correctly. - // "src/**/public/**/*" - ] + "files": [], + "include": [] } diff --git a/tsconfig.src.json b/tsconfig.src.json new file mode 100644 index 0000000000000..3d3cc8809cce7 --- /dev/null +++ b/tsconfig.src.json @@ -0,0 +1,30 @@ +{ + "extends": "./tsconfig.base.json", + "compilerOptions": { + "composite": true, + "incremental": true, + "tsBuildInfoFile": "./build/tsconfig.src.tsbuildinfo", + "noEmit": true, + "outDir": "./build", + //"emitDeclarationOnly": true, + //"declaration": false, + "declarationMap": true, + // "skipLibCheck": true, // Don't typecheck .d.ts files + }, + "include": [ + "kibana.d.ts", + "src/**/*", + "typings/**/*", + "test_utils/**/*", + ], + "exclude": [ + "src/**/*.test.ts", + "src/**/*.test.tsx", + "src/**/__fixtures__/**/*", + // In the build we actually exclude **/public/**/* from this config so that + // we can run the TSC on both this and the .browser version of this config + // file, but if we did it during development IDEs would not be able to find + // the tsconfig.json file for public files correctly. + // "src/**/public/**/*" + ] +} diff --git a/tsconfig.test.json b/tsconfig.test.json new file mode 100644 index 0000000000000..804417c94ee69 --- /dev/null +++ b/tsconfig.test.json @@ -0,0 +1,27 @@ +{ + "extends": "./tsconfig.base.json", + "compilerOptions": { + "composite": true, + "incremental": true, + "tsBuildInfoFile": "./build/tsconfig.test.tsbuildinfo", + "noEmit": true, + "outDir": "./build", + //"emitDeclarationOnly": true, + //"declaration": true, + //"declarationMap": true, + "skipLibCheck": true, // Don't typecheck .d.ts files + }, + "include": [ + "src/**/*.test.ts", + "src/**/*.test.tsx", + "typings/**/*", + ], + "exclude": [ + "src/**/__fixtures__/**/*", + "src/plugins/ui_actions/public/**/*.test.ts", + "src/plugins/embeddable/public/lib/panel/embeddable_panel.test.tsx", + "src/plugins/dashboard/public/application/tests/dashboard_container.test.tsx", + "src/core/server/utils/crypto/pkcs12.test.ts", + ], + "references": [{"path": "./tsconfig.src.json"}, {"path": "./examples/embeddable_examples"}] +} diff --git a/x-pack/examples/ui_actions_enhanced_examples/tsconfig.json b/x-pack/examples/ui_actions_enhanced_examples/tsconfig.json index d508076b33199..798a9c222c5ab 100644 --- a/x-pack/examples/ui_actions_enhanced_examples/tsconfig.json +++ b/x-pack/examples/ui_actions_enhanced_examples/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../tsconfig.json", + "extends": "../../tsconfig.base.json", "compilerOptions": { "outDir": "./target", "skipLibCheck": true diff --git a/x-pack/legacy/plugins/beats_management/tsconfig.json b/x-pack/legacy/plugins/beats_management/tsconfig.json index 7ade047bad32e..2510ce98e2656 100644 --- a/x-pack/legacy/plugins/beats_management/tsconfig.json +++ b/x-pack/legacy/plugins/beats_management/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.json", + "extends": "../../../tsconfig.base.json", "exclude": ["**/node_modules/**"], "paths": { "react": ["../../../node_modules/@types/react"] diff --git a/x-pack/plugins/apm/e2e/tsconfig.json b/x-pack/plugins/apm/e2e/tsconfig.json index a7091a20186b2..c4587349c7ad7 100644 --- a/x-pack/plugins/apm/e2e/tsconfig.json +++ b/x-pack/plugins/apm/e2e/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../../tsconfig.json", + "extends": "../../../../tsconfig.base.json", "exclude": ["tmp"], "include": ["./**/*"], "compilerOptions": { diff --git a/x-pack/plugins/apm/scripts/tsconfig.json b/x-pack/plugins/apm/scripts/tsconfig.json index 350db55e72446..39e88b693994f 100644 --- a/x-pack/plugins/apm/scripts/tsconfig.json +++ b/x-pack/plugins/apm/scripts/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.json", + "extends": "../../../tsconfig.base.json", "include": [ "./**/*" ], diff --git a/x-pack/plugins/ml/server/routes/apidoc_scripts/tsconfig.json b/x-pack/plugins/ml/server/routes/apidoc_scripts/tsconfig.json index e3108b8c759f4..a8292dba72754 100644 --- a/x-pack/plugins/ml/server/routes/apidoc_scripts/tsconfig.json +++ b/x-pack/plugins/ml/server/routes/apidoc_scripts/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "outDir": "./target", "target": "es6", diff --git a/x-pack/plugins/ml/tsconfig.json b/x-pack/plugins/ml/tsconfig.json index 4082f16a5d91c..9536a0f4139ca 100644 --- a/x-pack/plugins/ml/tsconfig.json +++ b/x-pack/plugins/ml/tsconfig.json @@ -1,3 +1,3 @@ { - "extends": "../../tsconfig.json" + "extends": "../../tsconfig.base.json" } diff --git a/x-pack/plugins/security_solution/cypress/tsconfig.json b/x-pack/plugins/security_solution/cypress/tsconfig.json index 929a3fb39babb..d6e5cc4aed9f7 100644 --- a/x-pack/plugins/security_solution/cypress/tsconfig.json +++ b/x-pack/plugins/security_solution/cypress/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../../tsconfig.json", + "extends": "../../../../tsconfig.base.json", "exclude": [], "include": [ "./**/*" diff --git a/x-pack/plugins/security_solution/scripts/endpoint/cli_tsconfig.json b/x-pack/plugins/security_solution/scripts/endpoint/cli_tsconfig.json index 5c68f8ee0abf2..67aa5768f34cf 100644 --- a/x-pack/plugins/security_solution/scripts/endpoint/cli_tsconfig.json +++ b/x-pack/plugins/security_solution/scripts/endpoint/cli_tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../../tsconfig.json", + "extends": "../../../../tsconfig.base.json", "compilerOptions": { "target": "es2019", "resolveJsonModule": true diff --git a/x-pack/tsconfig.json b/x-pack/tsconfig.base.json similarity index 57% rename from x-pack/tsconfig.json rename to x-pack/tsconfig.base.json index e978702a35634..4fd8827e3fe56 100644 --- a/x-pack/tsconfig.json +++ b/x-pack/tsconfig.base.json @@ -1,22 +1,5 @@ { - "extends": "../tsconfig.json", - "include": [ - "mocks.ts", - "typings/**/*", - "legacy/common/**/*", - "legacy/server/**/*", - "legacy/plugins/**/*", - "plugins/**/*", - "test_utils/**/*", - "tasks/**/*" - ], - "exclude": [ - "test/**/*", - "plugins/security_solution/cypress/**/*", - "plugins/apm/e2e/cypress/**/*", - "plugins/apm/scripts/**/*", - "**/typespec_tests.ts" - ], + "extends": "../tsconfig.base.json", "compilerOptions": { "outDir": ".", "paths": { @@ -34,7 +17,7 @@ "test_utils/*": [ "x-pack/test_utils/*" ], - "plugins/*": ["src/legacy/core_plugins/*/public/"], + "src/plugins/*": ["src/plugins/*"], "fixtures/*": ["src/fixtures/*"], }, "types": [ diff --git a/x-pack/tsconfig.src.json b/x-pack/tsconfig.src.json new file mode 100644 index 0000000000000..d75c45580c07f --- /dev/null +++ b/x-pack/tsconfig.src.json @@ -0,0 +1,45 @@ +{ + "extends": "./tsconfig.base.json", + "compilerOptions": { + "composite": true, + "incremental": true, + "tsBuildInfoFile": "./build/x-pack_tsconfig.src.tsbuildinfo", + "noEmit": true, + "outDir": "../build/x-pack", + "emitDeclarationOnly": true, + // "declaration": true, + // "declarationMap": true, + "skipLibCheck": true, + "types": [ + "node", + "jest", + "flot", + "jest-styled-components", + "@testing-library/jest-dom" + ] + }, + "include": [ + "typings/**/*", + "legacy/common/**/*", + "legacy/server/**/*", + "legacy/plugins/**/*", + "plugins/**/*", + "test_utils/**/*", + "tasks/**/*" + ], + "exclude": [ + "**/*.test.ts", + "**/*.test.tsx", + "**/*.test.ts", + "**/__fixtures__/**/*", + "**/__mocks__/**/*", + "**/__jest__/**/*", + "plugins/security_solution/server/endpoint/mocks.ts", + "test/**/*", + "plugins/security_solution/cypress/**/*", + "plugins/apm/e2e/cypress/**/*", + "plugins/apm/scripts/**/*", + "**/typespec_tests.ts", + ], + "references": [{"path": "../tsconfig.src.json"}] +} diff --git a/x-pack/tsconfig.test.json b/x-pack/tsconfig.test.json new file mode 100644 index 0000000000000..509bded82fa94 --- /dev/null +++ b/x-pack/tsconfig.test.json @@ -0,0 +1,46 @@ +{ + "extends": "./tsconfig.base.json", + "compilerOptions": { + "composite": true, + "incremental": true, + "tsBuildInfoFile": "./build/tsconfig.x-pack.test.tsbuildinfo", + "noEmit": false, + "outDir": "../build/x-pack", + "emitDeclarationOnly": true, + "declaration": true, + "declarationMap": true, + "skipLibCheck": true, + "types": [ + "node", + "jest", + "flot", + "jest-styled-components", + "@testing-library/jest-dom" + ] + }, + "include": [ + "mocks.ts", + "**/*.test.ts", + "**/*.mocks.ts", + "**/*.test.tsx", + "**/__fixtures__/**/*", + "**/__mocks__/**/*", + ], + "exclude": [ + "test/**/*", + "plugins/security_solution/cypress/**/*", + "plugins/apm/e2e/cypress/**/*", + "plugins/apm/scripts/**/*", + "**/typespec_tests.ts", + "x-pack/plugins/discover_enhanced/public/actions/explore_data/explore_data_context_menu_action.test.ts", + "x-pack/plugins/lens/public/editor_frame_service/editor_frame/workspace_panel/workspace_panel.test.tsx", + "x-pack/plugins/discover_enhanced/public/actions/explore_data/explore_data_chart_action.test.ts", + "x-pack/plugins/lens/public/editor_frame_service/editor_frame/workspace_panel/workspace_panel.test.tsx" + ], + "references": [ + {"path": "./tsconfig.src.json"}, + {"path": "../tsconfig.src.json"}, + {"path": "../tsconfig.test.json"}, + {"path": "../examples/embeddable_examples/tsconfig.json"}, + ] +} diff --git a/yarn.lock b/yarn.lock index d2de2e19f36f5..05323bdf36bad 100644 --- a/yarn.lock +++ b/yarn.lock @@ -31182,10 +31182,10 @@ typescript-tuple@^2.2.1: dependencies: typescript-compare "^0.0.2" -typescript@3.9.5, typescript@^3.0.1, typescript@^3.0.3, typescript@^3.2.2, typescript@^3.3.3333, typescript@^3.4.5, typescript@~3.7.2: - version "3.9.5" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.5.tgz#586f0dba300cde8be52dd1ac4f7e1009c1b13f36" - integrity sha512-hSAifV3k+i6lEoCJ2k6R2Z/rp/H3+8sdmcn5NrS3/3kE7+RyZXm9aqvxWqjEXHAd8b0pShatpcdMTvEdvAJltQ== +typescript@3.9.5, typescript@4.0.0-beta, typescript@^3.0.1, typescript@^3.0.3, typescript@^3.2.2, typescript@^3.3.3333, typescript@^3.4.5, typescript@~3.7.2: + version "4.0.0-beta" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.0.0-beta.tgz#a6a65e430562131de69496a3ef5484346bc0cdd2" + integrity sha512-d3s/CogGtB2uPZ2Z8ts6eoUxxyB9PH3R27/UrzvpthuOvpCg4FWWnBbBiqJ0K4eu6eTlgmLiqQkh2dquReJweA== typings-tester@^0.3.2: version "0.3.2"