@nx/vite 20.1.0 → 20.2.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nx/vite",
|
|
3
|
-
"version": "20.
|
|
3
|
+
"version": "20.2.0-beta.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "The Nx Plugin for building and testing applications using Vite",
|
|
6
6
|
"repository": {
|
|
@@ -30,11 +30,11 @@
|
|
|
30
30
|
"migrations": "./migrations.json"
|
|
31
31
|
},
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"@nx/devkit": "20.
|
|
33
|
+
"@nx/devkit": "20.2.0-beta.0",
|
|
34
34
|
"@phenomnomnominal/tsquery": "~5.0.1",
|
|
35
35
|
"@swc/helpers": "~0.5.0",
|
|
36
36
|
"enquirer": "~2.3.6",
|
|
37
|
-
"@nx/js": "20.
|
|
37
|
+
"@nx/js": "20.2.0-beta.0",
|
|
38
38
|
"tsconfig-paths": "^4.1.2",
|
|
39
39
|
"minimatch": "9.0.3"
|
|
40
40
|
},
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
|
-
"extends": "
|
|
2
|
+
"extends": "<%= extendedConfig %>",
|
|
3
3
|
"compilerOptions": {
|
|
4
|
-
"outDir": "<%=
|
|
4
|
+
"outDir": "<%= outDir %>",
|
|
5
5
|
"types": ["vitest/globals", "vitest/importMeta", "vite/client", "node"]
|
|
6
6
|
},
|
|
7
7
|
"include": [
|
|
@@ -18,12 +18,13 @@ _export(exports, {
|
|
|
18
18
|
});
|
|
19
19
|
const _extends = require("@swc/helpers/_/_extends");
|
|
20
20
|
const _devkit = require("@nx/devkit");
|
|
21
|
-
const _generatorutils = require("../../utils/generator-utils");
|
|
22
|
-
const _init = require("../init/init");
|
|
23
|
-
const _versions = require("../../utils/versions");
|
|
24
21
|
const _js = require("@nx/js");
|
|
22
|
+
const _tssolutionsetup = require("@nx/js/src/utils/typescript/ts-solution-setup");
|
|
25
23
|
const _path = require("path");
|
|
26
24
|
const _ensuredependencies = require("../../utils/ensure-dependencies");
|
|
25
|
+
const _generatorutils = require("../../utils/generator-utils");
|
|
26
|
+
const _versions = require("../../utils/versions");
|
|
27
|
+
const _init = require("../init/init");
|
|
27
28
|
function vitestGenerator(tree, schema, hasPlugin = false) {
|
|
28
29
|
return vitestGeneratorInternal(tree, _extends._({
|
|
29
30
|
addPlugin: false
|
|
@@ -197,11 +198,14 @@ function updateTsConfig(tree, options, projectRoot, projectType) {
|
|
|
197
198
|
}
|
|
198
199
|
}
|
|
199
200
|
function createFiles(tree, options, projectRoot) {
|
|
201
|
+
const isTsSolutionSetup = (0, _tssolutionsetup.isUsingTsSolutionSetup)(tree);
|
|
202
|
+
const rootOffset = (0, _devkit.offsetFromRoot)(projectRoot);
|
|
200
203
|
(0, _devkit.generateFiles)(tree, (0, _path.join)(__dirname, 'files'), projectRoot, _extends._({
|
|
201
204
|
tmpl: ''
|
|
202
205
|
}, options, {
|
|
203
206
|
projectRoot,
|
|
204
|
-
|
|
207
|
+
extendedConfig: isTsSolutionSetup ? `${rootOffset}tsconfig.base.json` : './tsconfig.json',
|
|
208
|
+
outDir: isTsSolutionSetup ? `./out-tsc/jest` : `${rootOffset}dist/out-tsc`
|
|
205
209
|
}));
|
|
206
210
|
}
|
|
207
211
|
function getCoverageProviderDependency(coverageProvider) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../packages/vite/src/generators/vitest/vitest-generator.ts"],"sourcesContent":["import {\n addDependenciesToPackageJson,\n formatFiles,\n generateFiles,\n GeneratorCallback,\n joinPathFragments,\n logger,\n offsetFromRoot,\n ProjectType,\n readNxJson,\n readProjectConfiguration,\n runTasksInSerial,\n Tree,\n updateJson,\n} from '@nx/devkit';\nimport {\n addOrChangeTestTarget,\n createOrEditViteConfig,\n} from '../../utils/generator-utils';\nimport { VitestGeneratorSchema } from './schema';\n\nimport initGenerator from '../init/init';\nimport {\n vitestCoverageIstanbulVersion,\n vitestCoverageV8Version,\n} from '../../utils/versions';\n\nimport { addTsLibDependencies, initGenerator as jsInitGenerator } from '@nx/js';\nimport { join } from 'path';\nimport { ensureDependencies } from '../../utils/ensure-dependencies';\n\nexport function vitestGenerator(\n tree: Tree,\n schema: VitestGeneratorSchema,\n hasPlugin = false\n) {\n return vitestGeneratorInternal(\n tree,\n { addPlugin: false, ...schema },\n hasPlugin\n );\n}\n\nexport async function vitestGeneratorInternal(\n tree: Tree,\n schema: VitestGeneratorSchema,\n hasPlugin = false\n) {\n // Setting default to jsdom since it is the most common use case (React, Web).\n // The @nx/js:lib generator specifically sets this to node to be more generic.\n schema.testEnvironment ??= 'jsdom';\n\n const tasks: GeneratorCallback[] = [];\n\n const { root, projectType } = readProjectConfiguration(tree, schema.project);\n const isRootProject = root === '.';\n\n tasks.push(await jsInitGenerator(tree, { ...schema, skipFormat: true }));\n const initTask = await initGenerator(tree, {\n skipFormat: true,\n addPlugin: schema.addPlugin,\n });\n tasks.push(initTask);\n tasks.push(ensureDependencies(tree, schema));\n\n const nxJson = readNxJson(tree);\n const hasPluginCheck = nxJson.plugins?.some(\n (p) =>\n (typeof p === 'string'\n ? p === '@nx/vite/plugin'\n : p.plugin === '@nx/vite/plugin') || hasPlugin\n );\n if (!hasPluginCheck) {\n const testTarget = schema.testTarget ?? 'test';\n addOrChangeTestTarget(tree, schema, testTarget);\n }\n\n if (!schema.skipViteConfig) {\n if (schema.uiFramework === 'react') {\n createOrEditViteConfig(\n tree,\n {\n project: schema.project,\n includeLib: projectType === 'library',\n includeVitest: true,\n inSourceTests: schema.inSourceTests,\n rollupOptionsExternal: [\n \"'react'\",\n \"'react-dom'\",\n \"'react/jsx-runtime'\",\n ],\n imports: [\n schema.compiler === 'swc'\n ? `import react from '@vitejs/plugin-react-swc'`\n : `import react from '@vitejs/plugin-react'`,\n ],\n plugins: ['react()'],\n coverageProvider: schema.coverageProvider,\n },\n true\n );\n } else {\n createOrEditViteConfig(\n tree,\n {\n ...schema,\n includeVitest: true,\n includeLib: projectType === 'library',\n },\n true\n );\n }\n }\n\n createFiles(tree, schema, root);\n updateTsConfig(tree, schema, root, projectType);\n\n const coverageProviderDependency = getCoverageProviderDependency(\n schema.coverageProvider\n );\n\n const installCoverageProviderTask = addDependenciesToPackageJson(\n tree,\n {},\n coverageProviderDependency\n );\n tasks.push(installCoverageProviderTask);\n\n // Setup workspace config file (https://vitest.dev/guide/workspace.html)\n if (\n !isRootProject &&\n !tree.exists(`vitest.workspace.ts`) &&\n !tree.exists(`vitest.workspace.js`) &&\n !tree.exists(`vitest.workspace.json`) &&\n !tree.exists(`vitest.projects.ts`) &&\n !tree.exists(`vitest.projects.js`) &&\n !tree.exists(`vitest.projects.json`)\n ) {\n tree.write(\n 'vitest.workspace.ts',\n `export default ['**/*/vite.config.{ts,mts}', '**/*/vitest.config.{ts,mts}'];`\n );\n }\n\n if (!schema.skipFormat) {\n await formatFiles(tree);\n }\n\n return runTasksInSerial(...tasks);\n}\n\nfunction updateTsConfig(\n tree: Tree,\n options: VitestGeneratorSchema,\n projectRoot: string,\n projectType: ProjectType\n) {\n const setupFile = tryFindSetupFile(tree, projectRoot);\n\n if (tree.exists(joinPathFragments(projectRoot, 'tsconfig.spec.json'))) {\n updateJson(\n tree,\n joinPathFragments(projectRoot, 'tsconfig.spec.json'),\n (json) => {\n if (!json.compilerOptions?.types?.includes('vitest')) {\n if (json.compilerOptions?.types) {\n json.compilerOptions.types.push('vitest');\n } else {\n json.compilerOptions ??= {};\n json.compilerOptions.types = ['vitest'];\n }\n }\n\n if (setupFile) {\n json.files = [...(json.files ?? []), setupFile];\n }\n\n return json;\n }\n );\n\n updateJson(\n tree,\n joinPathFragments(projectRoot, 'tsconfig.json'),\n (json) => {\n if (\n json.references &&\n !json.references.some((r) => r.path === './tsconfig.spec.json')\n ) {\n json.references.push({\n path: './tsconfig.spec.json',\n });\n }\n return json;\n }\n );\n } else {\n updateJson(\n tree,\n joinPathFragments(projectRoot, 'tsconfig.json'),\n (json) => {\n if (!json.compilerOptions?.types?.includes('vitest')) {\n if (json.compilerOptions?.types) {\n json.compilerOptions.types.push('vitest');\n } else {\n json.compilerOptions ??= {};\n json.compilerOptions.types = ['vitest'];\n }\n }\n return json;\n }\n );\n }\n\n let runtimeTsconfigPath = joinPathFragments(\n projectRoot,\n projectType === 'application' ? 'tsconfig.app.json' : 'tsconfig.lib.json'\n );\n if (options.runtimeTsconfigFileName) {\n runtimeTsconfigPath = joinPathFragments(\n projectRoot,\n options.runtimeTsconfigFileName\n );\n if (!tree.exists(runtimeTsconfigPath)) {\n throw new Error(\n `Cannot find the specified runtimeTsConfigFileName (\"${options.runtimeTsconfigFileName}\") at the project root \"${projectRoot}\".`\n );\n }\n }\n\n if (tree.exists(runtimeTsconfigPath)) {\n updateJson(tree, runtimeTsconfigPath, (json) => {\n if (options.inSourceTests) {\n (json.compilerOptions.types ??= []).push('vitest/importMeta');\n } else {\n const uniqueExclude = new Set([\n ...(json.exclude || []),\n 'vite.config.ts',\n 'vite.config.mts',\n 'vitest.config.ts',\n 'vitest.config.mts',\n 'src/**/*.test.ts',\n 'src/**/*.spec.ts',\n 'src/**/*.test.tsx',\n 'src/**/*.spec.tsx',\n 'src/**/*.test.js',\n 'src/**/*.spec.js',\n 'src/**/*.test.jsx',\n 'src/**/*.spec.jsx',\n ]);\n json.exclude = [...uniqueExclude];\n }\n\n if (setupFile) {\n json.exclude = [...(json.exclude ?? []), setupFile];\n }\n\n return json;\n });\n } else {\n logger.warn(\n `Couldn't find a runtime tsconfig file at ${runtimeTsconfigPath} to exclude the test files from. ` +\n `If you're using a different filename for your runtime tsconfig, please provide it with the '--runtimeTsconfigFileName' flag.`\n );\n }\n}\n\nfunction createFiles(\n tree: Tree,\n options: VitestGeneratorSchema,\n projectRoot: string\n) {\n generateFiles(tree, join(__dirname, 'files'), projectRoot, {\n tmpl: '',\n ...options,\n projectRoot,\n offsetFromRoot: offsetFromRoot(projectRoot),\n });\n}\n\nfunction getCoverageProviderDependency(\n coverageProvider: VitestGeneratorSchema['coverageProvider']\n) {\n switch (coverageProvider) {\n case 'v8':\n return {\n '@vitest/coverage-v8': vitestCoverageV8Version,\n };\n case 'istanbul':\n return {\n '@vitest/coverage-istanbul': vitestCoverageIstanbulVersion,\n };\n default:\n return {\n '@vitest/coverage-v8': vitestCoverageV8Version,\n };\n }\n}\n\nfunction tryFindSetupFile(tree: Tree, projectRoot: string) {\n const setupFile = joinPathFragments('src', 'test-setup.ts');\n if (tree.exists(joinPathFragments(projectRoot, setupFile))) {\n return setupFile;\n }\n}\n\nexport default vitestGenerator;\n"],"names":["vitestGenerator","vitestGeneratorInternal","tree","schema","hasPlugin","addPlugin","nxJson","testEnvironment","tasks","root","projectType","readProjectConfiguration","project","isRootProject","push","jsInitGenerator","skipFormat","initTask","initGenerator","ensureDependencies","readNxJson","hasPluginCheck","plugins","some","p","plugin","testTarget","addOrChangeTestTarget","skipViteConfig","uiFramework","createOrEditViteConfig","includeLib","includeVitest","inSourceTests","rollupOptionsExternal","imports","compiler","coverageProvider","createFiles","updateTsConfig","coverageProviderDependency","getCoverageProviderDependency","installCoverageProviderTask","addDependenciesToPackageJson","exists","write","formatFiles","runTasksInSerial","options","projectRoot","setupFile","tryFindSetupFile","joinPathFragments","updateJson","json","compilerOptions","types","includes","files","references","r","path","runtimeTsconfigPath","runtimeTsconfigFileName","Error","uniqueExclude","Set","exclude","logger","warn","generateFiles","join","__dirname","tmpl","offsetFromRoot","vitestCoverageV8Version","vitestCoverageIstanbulVersion"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../../../packages/vite/src/generators/vitest/vitest-generator.ts"],"sourcesContent":["import {\n addDependenciesToPackageJson,\n formatFiles,\n generateFiles,\n GeneratorCallback,\n joinPathFragments,\n logger,\n offsetFromRoot,\n ProjectType,\n readNxJson,\n readProjectConfiguration,\n runTasksInSerial,\n Tree,\n updateJson,\n} from '@nx/devkit';\nimport { initGenerator as jsInitGenerator } from '@nx/js';\nimport { isUsingTsSolutionSetup } from '@nx/js/src/utils/typescript/ts-solution-setup';\nimport { join } from 'path';\nimport { ensureDependencies } from '../../utils/ensure-dependencies';\nimport {\n addOrChangeTestTarget,\n createOrEditViteConfig,\n} from '../../utils/generator-utils';\nimport {\n vitestCoverageIstanbulVersion,\n vitestCoverageV8Version,\n} from '../../utils/versions';\nimport initGenerator from '../init/init';\nimport { VitestGeneratorSchema } from './schema';\n\nexport function vitestGenerator(\n tree: Tree,\n schema: VitestGeneratorSchema,\n hasPlugin = false\n) {\n return vitestGeneratorInternal(\n tree,\n { addPlugin: false, ...schema },\n hasPlugin\n );\n}\n\nexport async function vitestGeneratorInternal(\n tree: Tree,\n schema: VitestGeneratorSchema,\n hasPlugin = false\n) {\n // Setting default to jsdom since it is the most common use case (React, Web).\n // The @nx/js:lib generator specifically sets this to node to be more generic.\n schema.testEnvironment ??= 'jsdom';\n\n const tasks: GeneratorCallback[] = [];\n\n const { root, projectType } = readProjectConfiguration(tree, schema.project);\n const isRootProject = root === '.';\n\n tasks.push(await jsInitGenerator(tree, { ...schema, skipFormat: true }));\n const initTask = await initGenerator(tree, {\n skipFormat: true,\n addPlugin: schema.addPlugin,\n });\n tasks.push(initTask);\n tasks.push(ensureDependencies(tree, schema));\n\n const nxJson = readNxJson(tree);\n const hasPluginCheck = nxJson.plugins?.some(\n (p) =>\n (typeof p === 'string'\n ? p === '@nx/vite/plugin'\n : p.plugin === '@nx/vite/plugin') || hasPlugin\n );\n if (!hasPluginCheck) {\n const testTarget = schema.testTarget ?? 'test';\n addOrChangeTestTarget(tree, schema, testTarget);\n }\n\n if (!schema.skipViteConfig) {\n if (schema.uiFramework === 'react') {\n createOrEditViteConfig(\n tree,\n {\n project: schema.project,\n includeLib: projectType === 'library',\n includeVitest: true,\n inSourceTests: schema.inSourceTests,\n rollupOptionsExternal: [\n \"'react'\",\n \"'react-dom'\",\n \"'react/jsx-runtime'\",\n ],\n imports: [\n schema.compiler === 'swc'\n ? `import react from '@vitejs/plugin-react-swc'`\n : `import react from '@vitejs/plugin-react'`,\n ],\n plugins: ['react()'],\n coverageProvider: schema.coverageProvider,\n },\n true\n );\n } else {\n createOrEditViteConfig(\n tree,\n {\n ...schema,\n includeVitest: true,\n includeLib: projectType === 'library',\n },\n true\n );\n }\n }\n\n createFiles(tree, schema, root);\n updateTsConfig(tree, schema, root, projectType);\n\n const coverageProviderDependency = getCoverageProviderDependency(\n schema.coverageProvider\n );\n\n const installCoverageProviderTask = addDependenciesToPackageJson(\n tree,\n {},\n coverageProviderDependency\n );\n tasks.push(installCoverageProviderTask);\n\n // Setup workspace config file (https://vitest.dev/guide/workspace.html)\n if (\n !isRootProject &&\n !tree.exists(`vitest.workspace.ts`) &&\n !tree.exists(`vitest.workspace.js`) &&\n !tree.exists(`vitest.workspace.json`) &&\n !tree.exists(`vitest.projects.ts`) &&\n !tree.exists(`vitest.projects.js`) &&\n !tree.exists(`vitest.projects.json`)\n ) {\n tree.write(\n 'vitest.workspace.ts',\n `export default ['**/*/vite.config.{ts,mts}', '**/*/vitest.config.{ts,mts}'];`\n );\n }\n\n if (!schema.skipFormat) {\n await formatFiles(tree);\n }\n\n return runTasksInSerial(...tasks);\n}\n\nfunction updateTsConfig(\n tree: Tree,\n options: VitestGeneratorSchema,\n projectRoot: string,\n projectType: ProjectType\n) {\n const setupFile = tryFindSetupFile(tree, projectRoot);\n\n if (tree.exists(joinPathFragments(projectRoot, 'tsconfig.spec.json'))) {\n updateJson(\n tree,\n joinPathFragments(projectRoot, 'tsconfig.spec.json'),\n (json) => {\n if (!json.compilerOptions?.types?.includes('vitest')) {\n if (json.compilerOptions?.types) {\n json.compilerOptions.types.push('vitest');\n } else {\n json.compilerOptions ??= {};\n json.compilerOptions.types = ['vitest'];\n }\n }\n\n if (setupFile) {\n json.files = [...(json.files ?? []), setupFile];\n }\n\n return json;\n }\n );\n\n updateJson(\n tree,\n joinPathFragments(projectRoot, 'tsconfig.json'),\n (json) => {\n if (\n json.references &&\n !json.references.some((r) => r.path === './tsconfig.spec.json')\n ) {\n json.references.push({\n path: './tsconfig.spec.json',\n });\n }\n return json;\n }\n );\n } else {\n updateJson(\n tree,\n joinPathFragments(projectRoot, 'tsconfig.json'),\n (json) => {\n if (!json.compilerOptions?.types?.includes('vitest')) {\n if (json.compilerOptions?.types) {\n json.compilerOptions.types.push('vitest');\n } else {\n json.compilerOptions ??= {};\n json.compilerOptions.types = ['vitest'];\n }\n }\n return json;\n }\n );\n }\n\n let runtimeTsconfigPath = joinPathFragments(\n projectRoot,\n projectType === 'application' ? 'tsconfig.app.json' : 'tsconfig.lib.json'\n );\n if (options.runtimeTsconfigFileName) {\n runtimeTsconfigPath = joinPathFragments(\n projectRoot,\n options.runtimeTsconfigFileName\n );\n if (!tree.exists(runtimeTsconfigPath)) {\n throw new Error(\n `Cannot find the specified runtimeTsConfigFileName (\"${options.runtimeTsconfigFileName}\") at the project root \"${projectRoot}\".`\n );\n }\n }\n\n if (tree.exists(runtimeTsconfigPath)) {\n updateJson(tree, runtimeTsconfigPath, (json) => {\n if (options.inSourceTests) {\n (json.compilerOptions.types ??= []).push('vitest/importMeta');\n } else {\n const uniqueExclude = new Set([\n ...(json.exclude || []),\n 'vite.config.ts',\n 'vite.config.mts',\n 'vitest.config.ts',\n 'vitest.config.mts',\n 'src/**/*.test.ts',\n 'src/**/*.spec.ts',\n 'src/**/*.test.tsx',\n 'src/**/*.spec.tsx',\n 'src/**/*.test.js',\n 'src/**/*.spec.js',\n 'src/**/*.test.jsx',\n 'src/**/*.spec.jsx',\n ]);\n json.exclude = [...uniqueExclude];\n }\n\n if (setupFile) {\n json.exclude = [...(json.exclude ?? []), setupFile];\n }\n\n return json;\n });\n } else {\n logger.warn(\n `Couldn't find a runtime tsconfig file at ${runtimeTsconfigPath} to exclude the test files from. ` +\n `If you're using a different filename for your runtime tsconfig, please provide it with the '--runtimeTsconfigFileName' flag.`\n );\n }\n}\n\nfunction createFiles(\n tree: Tree,\n options: VitestGeneratorSchema,\n projectRoot: string\n) {\n const isTsSolutionSetup = isUsingTsSolutionSetup(tree);\n const rootOffset = offsetFromRoot(projectRoot);\n\n generateFiles(tree, join(__dirname, 'files'), projectRoot, {\n tmpl: '',\n ...options,\n projectRoot,\n extendedConfig: isTsSolutionSetup\n ? `${rootOffset}tsconfig.base.json`\n : './tsconfig.json',\n outDir: isTsSolutionSetup ? `./out-tsc/jest` : `${rootOffset}dist/out-tsc`,\n });\n}\n\nfunction getCoverageProviderDependency(\n coverageProvider: VitestGeneratorSchema['coverageProvider']\n) {\n switch (coverageProvider) {\n case 'v8':\n return {\n '@vitest/coverage-v8': vitestCoverageV8Version,\n };\n case 'istanbul':\n return {\n '@vitest/coverage-istanbul': vitestCoverageIstanbulVersion,\n };\n default:\n return {\n '@vitest/coverage-v8': vitestCoverageV8Version,\n };\n }\n}\n\nfunction tryFindSetupFile(tree: Tree, projectRoot: string) {\n const setupFile = joinPathFragments('src', 'test-setup.ts');\n if (tree.exists(joinPathFragments(projectRoot, setupFile))) {\n return setupFile;\n }\n}\n\nexport default vitestGenerator;\n"],"names":["vitestGenerator","vitestGeneratorInternal","tree","schema","hasPlugin","addPlugin","nxJson","testEnvironment","tasks","root","projectType","readProjectConfiguration","project","isRootProject","push","jsInitGenerator","skipFormat","initTask","initGenerator","ensureDependencies","readNxJson","hasPluginCheck","plugins","some","p","plugin","testTarget","addOrChangeTestTarget","skipViteConfig","uiFramework","createOrEditViteConfig","includeLib","includeVitest","inSourceTests","rollupOptionsExternal","imports","compiler","coverageProvider","createFiles","updateTsConfig","coverageProviderDependency","getCoverageProviderDependency","installCoverageProviderTask","addDependenciesToPackageJson","exists","write","formatFiles","runTasksInSerial","options","projectRoot","setupFile","tryFindSetupFile","joinPathFragments","updateJson","json","compilerOptions","types","includes","files","references","r","path","runtimeTsconfigPath","runtimeTsconfigFileName","Error","uniqueExclude","Set","exclude","logger","warn","isTsSolutionSetup","isUsingTsSolutionSetup","rootOffset","offsetFromRoot","generateFiles","join","__dirname","tmpl","extendedConfig","outDir","vitestCoverageV8Version","vitestCoverageIstanbulVersion"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|