feat(vite): add support for vite 6 (#29871)

## Current Behavior
Nx currently supports Vite at version 5. Nx does not generate vite
configurations using Vite 6 which has been released.
 

## Expected Behavior
Nx should use Vite 6 for vite projects.

## TODO
- [x] Add Package Update Migrations for Existing Projects
- [x] Add AST migrations to handle breaking change in resolve.extensions
- [x] Add migration to install `jsx` or `jiti` to handle processing TS
postcss config files
This commit is contained in:
Colum Ferry 2025-02-11 16:28:23 +00:00 committed by GitHub
parent db4544844c
commit c1ebcb9129
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
47 changed files with 868 additions and 239 deletions

View File

@ -5520,6 +5520,36 @@
}
},
"migrations": {
"/nx-api/vite/migrations/update-20-5-0-update-resolve-conditions": {
"description": "Update resolve.conditions to include defaults that are no longer provided by Vite.",
"file": "generated/packages/vite/migrations/update-20-5-0-update-resolve-conditions.json",
"hidden": false,
"name": "update-20-5-0-update-resolve-conditions",
"version": "20.5.0-beta.3",
"originalFilePath": "/packages/vite",
"path": "/nx-api/vite/migrations/update-20-5-0-update-resolve-conditions",
"type": "migration"
},
"/nx-api/vite/migrations/20.5.0-package-updates": {
"description": "",
"file": "generated/packages/vite/migrations/20.5.0-package-updates.json",
"hidden": false,
"name": "20.5.0-package-updates",
"version": "20.5.0-beta.3",
"originalFilePath": "/packages/vite",
"path": "/nx-api/vite/migrations/20.5.0-package-updates",
"type": "migration"
},
"/nx-api/vite/migrations/update-20-5-0-install-jiti": {
"description": "Install jiti as a devDependency to allow vite to parse TS postcss files.",
"file": "generated/packages/vite/migrations/update-20-5-0-install-jiti.json",
"hidden": false,
"name": "update-20-5-0-install-jiti",
"version": "20.5.0-beta.2",
"originalFilePath": "/packages/vite",
"path": "/nx-api/vite/migrations/update-20-5-0-install-jiti",
"type": "migration"
},
"/nx-api/vite/migrations/update-20-3-0": {
"description": "Add gitignore entry for temporary vitest config files.",
"file": "generated/packages/vite/migrations/update-20-3-0.json",

View File

@ -5486,6 +5486,36 @@
}
],
"migrations": [
{
"description": "Update resolve.conditions to include defaults that are no longer provided by Vite.",
"file": "generated/packages/vite/migrations/update-20-5-0-update-resolve-conditions.json",
"hidden": false,
"name": "update-20-5-0-update-resolve-conditions",
"version": "20.5.0-beta.3",
"originalFilePath": "/packages/vite",
"path": "vite/migrations/update-20-5-0-update-resolve-conditions",
"type": "migration"
},
{
"description": "",
"file": "generated/packages/vite/migrations/20.5.0-package-updates.json",
"hidden": false,
"name": "20.5.0-package-updates",
"version": "20.5.0-beta.3",
"originalFilePath": "/packages/vite",
"path": "vite/migrations/20.5.0-package-updates",
"type": "migration"
},
{
"description": "Install jiti as a devDependency to allow vite to parse TS postcss files.",
"file": "generated/packages/vite/migrations/update-20-5-0-install-jiti.json",
"hidden": false,
"name": "update-20-5-0-install-jiti",
"version": "20.5.0-beta.2",
"originalFilePath": "/packages/vite",
"path": "vite/migrations/update-20-5-0-install-jiti",
"type": "migration"
},
{
"description": "Add gitignore entry for temporary vitest config files.",
"file": "generated/packages/vite/migrations/update-20-3-0.json",

View File

@ -34,6 +34,13 @@
"x-priority": "internal",
"description": "Update `package.json` scripts with inferred targets",
"default": false
},
"useViteV5": {
"type": "boolean",
"description": "Use Vite v5",
"default": false,
"x-priority": "internal",
"hidden": true
}
},
"presets": []

View File

@ -0,0 +1,15 @@
{
"name": "20.5.0-package-updates",
"version": "20.5.0-beta.3",
"packages": {
"vite": { "version": "^6.0.0", "alwaysAddToPackageJson": false },
"vite-plugin-dts": { "version": "~4.5.0", "alwaysAddToPackageJson": false }
},
"aliases": [],
"description": "",
"hidden": false,
"implementation": "",
"path": "/packages/vite",
"schema": null,
"type": "migration"
}

View File

@ -0,0 +1,12 @@
{
"name": "update-20-5-0-install-jiti",
"version": "20.5.0-beta.2",
"description": "Install jiti as a devDependency to allow vite to parse TS postcss files.",
"implementation": "/packages/vite/src/migrations/update-20-5-0/install-jiti.ts",
"aliases": [],
"hidden": false,
"path": "/packages/vite",
"schema": null,
"type": "migration",
"examplesFile": "#### Installs the `jiti` package\n\nThis migration ensures that the [`jiti`](https://github.com/unjs/jiti) package is installed. \nThis is a requirement for Vite to parse `postcss` configuration files that use TypeScript.\n\nLearn more: [https://vite.dev/guide/migration#postcss-load-config](https://vite.dev/guide/migration#postcss-load-config)\n"
}

View File

@ -0,0 +1,12 @@
{
"name": "update-20-5-0-update-resolve-conditions",
"version": "20.5.0-beta.3",
"description": "Update resolve.conditions to include defaults that are no longer provided by Vite.",
"implementation": "/packages/vite/src/migrations/update-20-5-0/update-resolve-conditions.ts",
"aliases": [],
"hidden": false,
"path": "/packages/vite",
"schema": null,
"type": "migration",
"examplesFile": "#### Update `resolve.conditions` to include defaults\n\nIn previous Vite versions, the `resolve.conditions` option had defaults that were added internally (i.e. `['module', 'browser', 'development|production']`). \nThis default was removed in Vite 6, so this migration adds it to your existing configuration to ensure that the behavior remains intact.\n\nLearn more: [https://vite.dev/guide/migration#default-value-for-resolve-conditions](https://vite.dev/guide/migration#default-value-for-resolve-conditions)\n\n{% callout type=\"note\" title=\"Remix\" %}\n\nRemix does not currently support Vite 6 and therefore any `vite.config` file for Remix will not be migrated.\n\n{% /callout %}\n\n#### Sample Code Changes\n\n{% tabs %}\n{% tab label=\"Before\" %}\n\n```{% fileName=\"vite.config.ts\" %}\nimport { defineConfig } from 'vite';\n\nexport default defineConfig({\n resolve: {\n conditions: ['require'],\n },\n build: {\n outDir: 'dist',\n },\n});\n```\n\n{% /tab %}\n{% tab label=\"After\" %}\n\n```{% highlightLines=[4,5,6] fileName=\"vite.config.ts\" %}\nimport { defineConfig } from 'vite';\n\nexport default defineConfig({\n resolve: {\n conditions: ['require', 'module', 'browser', 'development|production'],\n },\n build: {\n outDir: 'dist',\n },\n});\n```\n\n{% /tab %}\n{% /tabs %}\n"
}

View File

@ -241,14 +241,14 @@ export default App;
const results = runCLI(`build ${app} --buildLibsFromSource=true`);
expect(results).toContain('Successfully ran target build for project');
// this should be more modules than build from dist
expect(results).toContain('43 modules transformed');
expect(results).toContain('38 modules transformed');
});
it('should build app from libs dist', () => {
const results = runCLI(`build ${app} --buildLibsFromSource=false`);
expect(results).toContain('Successfully ran target build for project');
// this should be less modules than building from source
expect(results).toContain('41 modules transformed');
expect(results).toContain('36 modules transformed');
});
it('should build app from libs without package.json in lib', () => {

View File

@ -306,7 +306,7 @@
"unist-builder": "^4.0.0",
"use-sync-external-store": "^1.2.0",
"verdaccio": "^5.30.0",
"vite": "5.0.8",
"vite": "6.0.11",
"vitest": "3.0.5",
"webpack": "5.88.0",
"webpack-dev-server": "5.0.4",

View File

@ -483,7 +483,7 @@ import angular from '@analogjs/vite-plugin-angular';
import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';
import { nxCopyAssetsPlugin } from '@nx/vite/plugins/nx-copy-assets.plugin';
export default defineConfig({
export default defineConfig(() => ({
root: __dirname,
cacheDir: '../node_modules/.vite/my-app',
plugins: [angular(), nxViteTsPaths(), nxCopyAssetsPlugin(['*.md'])],
@ -500,10 +500,10 @@ export default defineConfig({
reporters: ['default'],
coverage: {
reportsDirectory: '../coverage/my-app',
provider: 'v8',
provider: 'v8' as const,
},
},
});
}));
"
`;

View File

@ -165,7 +165,7 @@ import vue from '@vitejs/plugin-vue';
import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';
import { nxCopyAssetsPlugin } from '@nx/vite/plugins/nx-copy-assets.plugin';
export default defineConfig({
export default defineConfig(() => ({
root: __dirname,
cacheDir: '../node_modules/.vite/my-app',
plugins: [vue(), nxViteTsPaths(), nxCopyAssetsPlugin(['*.md'])],
@ -181,10 +181,10 @@ export default defineConfig({
reporters: ['default'],
coverage: {
reportsDirectory: '../coverage/my-app',
provider: 'v8',
provider: 'v8' as const,
},
},
});
}));
"
`;
@ -559,7 +559,7 @@ import vue from '@vitejs/plugin-vue';
import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';
import { nxCopyAssetsPlugin } from '@nx/vite/plugins/nx-copy-assets.plugin';
export default defineConfig({
export default defineConfig(() => ({
root: __dirname,
cacheDir: '../node_modules/.vite/myApp',
plugins: [vue(), nxViteTsPaths(), nxCopyAssetsPlugin(['*.md'])],
@ -575,10 +575,10 @@ export default defineConfig({
reporters: ['default'],
coverage: {
reportsDirectory: '../coverage/myApp',
provider: 'v8',
provider: 'v8' as const,
},
},
});
}));
"
`;

View File

@ -7,7 +7,7 @@ import react from '@vitejs/plugin-react';
import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';
import { nxCopyAssetsPlugin } from '@nx/vite/plugins/nx-copy-assets.plugin';
export default defineConfig({
export default defineConfig(() => ({
root: __dirname,
cacheDir: '../node_modules/.vite/my-vite-app',
server:{
@ -31,6 +31,6 @@ export default defineConfig({
transformMixedEsModules: true,
},
},
});
}));
"
`;

View File

@ -277,7 +277,7 @@ import react from '@vitejs/plugin-react';
import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';
import { nxCopyAssetsPlugin } from '@nx/vite/plugins/nx-copy-assets.plugin';
export default defineConfig({
export default defineConfig(() => ({
root: __dirname,
cacheDir: '../node_modules/.vite/my-app',
server:{
@ -301,7 +301,7 @@ export default defineConfig({
transformMixedEsModules: true,
},
},
});
}));
"
`;
@ -351,7 +351,7 @@ import react from '@vitejs/plugin-react';
import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';
import { nxCopyAssetsPlugin } from '@nx/vite/plugins/nx-copy-assets.plugin';
export default defineConfig({
export default defineConfig(() => ({
root: __dirname,
cacheDir: '../node_modules/.vite/my-app',
server:{
@ -375,7 +375,7 @@ export default defineConfig({
transformMixedEsModules: true,
},
},
});
}));
"
`;
@ -420,7 +420,7 @@ import react from '@vitejs/plugin-react';
import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';
import { nxCopyAssetsPlugin } from '@nx/vite/plugins/nx-copy-assets.plugin';
export default defineConfig({
export default defineConfig(() => ({
root: __dirname,
cacheDir: '../node_modules/.vite/my-app',
server: {
@ -452,10 +452,10 @@ export default defineConfig({
reporters: ['default'],
coverage: {
reportsDirectory: '../coverage/my-app',
provider: 'v8',
provider: 'v8' as const,
},
},
});
}));
"
`;
@ -483,7 +483,7 @@ import react from '@vitejs/plugin-react';
import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';
import { nxCopyAssetsPlugin } from '@nx/vite/plugins/nx-copy-assets.plugin';
export default defineConfig({
export default defineConfig(() => ({
root: __dirname,
cacheDir: '../node_modules/.vite/my-app',
server: {
@ -515,10 +515,10 @@ export default defineConfig({
reporters: ['default'],
coverage: {
reportsDirectory: '../coverage/my-app',
provider: 'v8',
provider: 'v8' as const,
},
},
});
}));
"
`;
@ -649,7 +649,7 @@ import react from '@vitejs/plugin-react';
import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';
import { nxCopyAssetsPlugin } from '@nx/vite/plugins/nx-copy-assets.plugin';
export default defineConfig({
export default defineConfig(() => ({
root: __dirname,
cacheDir: '../node_modules/.vite/my-app',
server:{
@ -673,7 +673,7 @@ export default defineConfig({
transformMixedEsModules: true,
},
},
});
}));
"
`;

View File

@ -7,7 +7,7 @@ import react from '@vitejs/plugin-react';
import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';
import { nxCopyAssetsPlugin } from '@nx/vite/plugins/nx-copy-assets.plugin';
export default defineConfig({
export default defineConfig(() => ({
root: __dirname,
cacheDir: '../node_modules/.vite/my-lib',
plugins: [react(), nxViteTsPaths(), nxCopyAssetsPlugin(['*.md']), ],
@ -21,9 +21,12 @@ export default defineConfig({
'environment': "jsdom",
'include': ["src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}"],
'reporters': ["default"],
'coverage': {"reportsDirectory":"../coverage/my-lib","provider":"v8"},
'coverage': {
'reportsDirectory': '../coverage/my-lib',
'provider': 'v8' as const,
}
},
});
}));
"
`;
@ -91,7 +94,7 @@ import * as path from 'path';
import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';
import { nxCopyAssetsPlugin } from '@nx/vite/plugins/nx-copy-assets.plugin';
export default defineConfig({
export default defineConfig(() => ({
root: __dirname,
cacheDir: '../node_modules/.vite/my-lib',
plugins: [
@ -138,9 +141,9 @@ export default defineConfig({
reporters: ['default'],
coverage: {
reportsDirectory: '../coverage/my-lib',
provider: 'v8',
provider: 'v8' as const,
},
},
});
}));
"
`;

View File

@ -964,7 +964,7 @@ module.exports = withNx(
import dts from 'vite-plugin-dts';
import * as path from 'path';
export default defineConfig({
export default defineConfig(() => ({
root: __dirname,
cacheDir: '../../node_modules/.vite/libs/mylib',
plugins: [react(), dts({ entryRoot: 'src', tsconfigPath: path.join(__dirname, 'tsconfig.lib.json') })],
@ -1003,10 +1003,10 @@ module.exports = withNx(
reporters: ['default'],
coverage: {
reportsDirectory: './test-output/vitest/coverage',
provider: 'v8',
provider: 'v8' as const,
}
},
});
}));
"
`);

View File

@ -252,7 +252,7 @@ import react from '@vitejs/plugin-react';
import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';
import { nxCopyAssetsPlugin } from '@nx/vite/plugins/nx-copy-assets.plugin';
export default defineConfig({
export default defineConfig(() => ({
root: __dirname,
cacheDir: '../node_modules/.vite/test',
plugins: [react(), nxViteTsPaths(), nxCopyAssetsPlugin(['*.md'])],
@ -269,10 +269,10 @@ export default defineConfig({
reporters: ['default'],
coverage: {
reportsDirectory: '../coverage/test',
provider: 'v8',
provider: 'v8' as const,
},
},
});
}));
"
`;
@ -429,7 +429,8 @@ installGlobals();
exports[`Remix Application Standalone Project Repo --unitTestRunner should generate the correct files for testing using jest 3`] = `
"import { createRemixStub } from '@remix-run/testing';
import { render, screen, waitFor } from '@testing-library/react';
import { render } from '@testing-library/react';
import { screen } from '@testing-library/dom';
import Index from '../../app/routes/_index';
test('renders loader data', async () => {
@ -442,7 +443,7 @@ test('renders loader data', async () => {
render(<RemixStub />);
await waitFor(() => screen.findByText('Hello there,'));
await screen.findByText('Hello there,');
});
"
`;
@ -454,7 +455,7 @@ import react from '@vitejs/plugin-react';
import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';
import { nxCopyAssetsPlugin } from '@nx/vite/plugins/nx-copy-assets.plugin';
export default defineConfig({
export default defineConfig(() => ({
root: __dirname,
cacheDir: './node_modules/.vite/test',
plugins: [react(), nxViteTsPaths(), nxCopyAssetsPlugin(['*.md'])],
@ -471,16 +472,17 @@ export default defineConfig({
reporters: ['default'],
coverage: {
reportsDirectory: './coverage/test',
provider: 'v8',
provider: 'v8' as const,
},
},
});
}));
"
`;
exports[`Remix Application Standalone Project Repo --unitTestRunner should generate the correct files for testing using vitest 2`] = `
"import { createRemixStub } from '@remix-run/testing';
import { render, screen, waitFor } from '@testing-library/react';
import { render } from '@testing-library/react';
import { screen } from '@testing-library/dom';
import Index from '../../app/routes/_index';
test('renders loader data', async () => {
@ -493,7 +495,7 @@ test('renders loader data', async () => {
render(<RemixStub />);
await waitFor(() => screen.findByText('Hello there,'));
await screen.findByText('Hello there,');
});
"
`;
@ -606,7 +608,8 @@ export default function Index() {
exports[`Remix Application Standalone Project Repo should create the application correctly 3`] = `
"import { createRemixStub } from '@remix-run/testing';
import { render, screen, waitFor } from '@testing-library/react';
import { render } from '@testing-library/react';
import { screen } from '@testing-library/dom';
import Index from '../../app/routes/_index';
test('renders loader data', async () => {
@ -619,7 +622,7 @@ test('renders loader data', async () => {
render(<RemixStub />);
await waitFor(() => screen.findByText('Hello there,'));
await screen.findByText('Hello there,');
});
"
`;

View File

@ -1,5 +1,6 @@
import { createRemixStub } from '@remix-run/testing';
import { render, screen, waitFor } from '@testing-library/react';
import { render } from '@testing-library/react';
import { screen } from '@testing-library/dom';
import Index from '../../app/routes/_index';
test('renders loader data', async () => {
@ -12,5 +13,5 @@ test('renders loader data', async () => {
render(<RemixStub />);
await waitFor(() => screen.findByText('Hello there,'));
await screen.findByText('Hello there,');
});

View File

@ -13,6 +13,7 @@ import {
} from '../../../utils/testing-config-utils';
import {
getRemixVersion,
testingLibraryDomVersion,
testingLibraryJestDomVersion,
testingLibraryReactVersion,
testingLibraryUserEventsVersion,
@ -89,6 +90,7 @@ export function updateUnitTestConfig(
{},
{
'@testing-library/jest-dom': testingLibraryJestDomVersion,
'@testing-library/dom': testingLibraryDomVersion,
'@testing-library/react': testingLibraryReactVersion,
'@testing-library/user-event': testingLibraryUserEventsVersion,
'@remix-run/node': getRemixVersion(tree),

View File

@ -28,7 +28,7 @@ import react from '@vitejs/plugin-react';
import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';
import { nxCopyAssetsPlugin } from '@nx/vite/plugins/nx-copy-assets.plugin';
export default defineConfig({
export default defineConfig(() => ({
root: __dirname,
cacheDir: '../node_modules/.vite/test',
plugins: [react(), nxViteTsPaths(), nxCopyAssetsPlugin(['*.md'])],
@ -43,9 +43,12 @@ export default defineConfig({
environment: 'jsdom',
include: ['src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'],
reporters: ['default'],
coverage: { reportsDirectory: '../coverage/test', provider: 'v8' },
coverage: {
reportsDirectory: '../coverage/test',
provider: 'v8' as const,
},
});
},
}));
"
`;

View File

@ -92,7 +92,7 @@ import react from '@vitejs/plugin-react';
import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';
import { nxCopyAssetsPlugin } from '@nx/vite/plugins/nx-copy-assets.plugin';
export default defineConfig({
export default defineConfig(() => ({
root: __dirname,
cacheDir: '../../node_modules/.vite/libs/storybook-test',
plugins: [react(), nxViteTsPaths(), nxCopyAssetsPlugin(['*.md'])],
@ -109,10 +109,10 @@ export default defineConfig({
reporters: ['default'],
coverage: {
reportsDirectory: '../../coverage/libs/storybook-test',
provider: 'v8',
provider: 'v8' as const,
},
},
});
}));
"
`;

View File

@ -16,6 +16,7 @@ export const autoprefixerVersion = '^10.4.19';
export const testingLibraryReactVersion = '^14.1.2';
// TODO(colum): Unpin this when @testing-library/jest-dom pushes a fix
export const testingLibraryJestDomVersion = '6.4.2';
export const testingLibraryDomVersion = '^10.4.0';
export const testingLibraryUserEventsVersion = '^14.5.2';
export const viteVersion = '^5.0.0';

View File

@ -34,9 +34,32 @@
"version": "20.3.0-beta.2",
"description": "Add gitignore entry for temporary vitest config files.",
"implementation": "./src/migrations/update-20-3-0/add-vitest-temp-files-to-git-ignore"
},
"update-20-5-0-install-jiti": {
"version": "20.5.0-beta.2",
"description": "Install jiti as a devDependency to allow vite to parse TS postcss files.",
"implementation": "./src/migrations/update-20-5-0/install-jiti"
},
"update-20-5-0-update-resolve-conditions": {
"version": "20.5.0-beta.3",
"description": "Update resolve.conditions to include defaults that are no longer provided by Vite.",
"implementation": "./src/migrations/update-20-5-0/update-resolve-conditions"
}
},
"packageJsonUpdates": {
"20.5.0": {
"version": "20.5.0-beta.3",
"packages": {
"vite": {
"version": "^6.0.0",
"alwaysAddToPackageJson": false
},
"vite-plugin-dts": {
"version": "~4.5.0",
"alwaysAddToPackageJson": false
}
}
},
"18.1.0": {
"version": "18.1.0-beta.1",
"packages": {

View File

@ -40,7 +40,7 @@
"semver": "^7.6.3"
},
"peerDependencies": {
"vite": "^5.0.0",
"vite": "^5.0.0 || ^6.0.0",
"vitest": "^1.3.1 || ^2.0.0 || ^3.0.0"
},
"publishConfig": {

View File

@ -8,7 +8,7 @@ import * as path from 'path';
import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';
import { nxCopyAssetsPlugin } from '@nx/vite/plugins/nx-copy-assets.plugin';
export default defineConfig({
export default defineConfig(() => ({
root: __dirname,
cacheDir: '../node_modules/.vite/my-lib',
plugins: [
@ -54,10 +54,10 @@ export default defineConfig({
reporters: ['default'],
coverage: {
reportsDirectory: '../coverage/my-lib',
provider: 'v8',
provider: 'v8' as const,
},
},
});
}));
"
`;
@ -178,7 +178,7 @@ import * as path from 'path';
import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';
import { nxCopyAssetsPlugin } from '@nx/vite/plugins/nx-copy-assets.plugin';
export default defineConfig({
export default defineConfig(() => ({
root: __dirname,
cacheDir: '../../node_modules/.vite/libs/react-lib-nonb-jest',
plugins: [
@ -217,7 +217,7 @@ export default defineConfig({
external: ['react', 'react-dom', 'react/jsx-runtime'],
},
},
});
}));
"
`;
@ -230,7 +230,7 @@ import * as path from 'path';
import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';
import { nxCopyAssetsPlugin } from '@nx/vite/plugins/nx-copy-assets.plugin';
export default defineConfig({
export default defineConfig(() => ({
root: __dirname,
cacheDir: '../../node_modules/.vite/libs/react-lib-nonb-jest',
plugins: [
@ -277,10 +277,10 @@ export default defineConfig({
reporters: ['default'],
coverage: {
reportsDirectory: '../../coverage/libs/react-lib-nonb-jest',
provider: 'v8',
provider: 'v8' as const,
},
},
});
}));
"
`;
@ -334,7 +334,7 @@ export default defineConfig({
reporters: ['default'],
coverage: {
reportsDirectory: '../../coverage/libs/react-lib-nonb-vitest',
provider: 'v8',
provider: 'v8' as const,
},
},
});
@ -348,7 +348,7 @@ import react from '@vitejs/plugin-react';
import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';
import { nxCopyAssetsPlugin } from '@nx/vite/plugins/nx-copy-assets.plugin';
export default defineConfig({
export default defineConfig(() => ({
root: __dirname,
cacheDir: '../../node_modules/.vite/apps/my-test-react-app',
server: {
@ -372,7 +372,7 @@ export default defineConfig({
transformMixedEsModules: true,
},
},
});
}));
"
`;
@ -401,7 +401,7 @@ import { defineConfig } from 'vite';
import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';
import { nxCopyAssetsPlugin } from '@nx/vite/plugins/nx-copy-assets.plugin';
export default defineConfig({
export default defineConfig(() => ({
root: __dirname,
cacheDir: '../../node_modules/.vite/apps/my-test-web-app',
server: {
@ -425,7 +425,7 @@ export default defineConfig({
transformMixedEsModules: true,
},
},
});
}));
"
`;
@ -455,7 +455,7 @@ import react from '@vitejs/plugin-react';
import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';
import { nxCopyAssetsPlugin } from '@nx/vite/plugins/nx-copy-assets.plugin';
export default defineConfig({
export default defineConfig(() => ({
root: __dirname,
cacheDir: '../../node_modules/.vite/apps/my-test-react-app',
server: {
@ -487,9 +487,9 @@ export default defineConfig({
reporters: ['default'],
coverage: {
reportsDirectory: '../../coverage/apps/my-test-react-app',
provider: 'v8',
provider: 'v8' as const,
},
},
});
}));
"
`;

View File

@ -10,7 +10,8 @@ exports[`@nx/vite:init dependencies for package.json should add required package
"@nx/web": "0.0.1",
"@vitest/ui": "^3.0.0",
"existing": "1.0.0",
"vite": "^5.0.0",
"jiti": "2.4.2",
"vite": "^6.0.0",
"vitest": "^3.0.0",
},
"name": "@proj/source",

View File

@ -6,7 +6,12 @@ import {
updateJson,
updateNxJson,
} from '@nx/devkit';
import { nxVersion, viteVersion } from '../../../utils/versions';
import {
jitiVersion,
nxVersion,
viteV5Version,
viteVersion,
} from '../../../utils/versions';
import { InitGeneratorSchema } from '../schema';
import { getVitestDependenciesVersionsToInstall } from '../../../utils/version-utils';
@ -21,9 +26,10 @@ export async function checkDependenciesInstalled(
{
'@nx/vite': nxVersion,
'@nx/web': nxVersion,
vite: viteVersion,
vite: schema.useViteV5 ? viteV5Version : viteVersion,
vitest: vitest,
'@vitest/ui': vitest,
jiti: jitiVersion,
},
undefined,
schema.keepExistingVersions

View File

@ -6,4 +6,5 @@ export interface InitGeneratorSchema {
updatePackageScripts?: boolean;
addPlugin?: boolean;
vitestOnly?: boolean;
useViteV5?: boolean;
}

View File

@ -31,6 +31,13 @@
"x-priority": "internal",
"description": "Update `package.json` scripts with inferred targets",
"default": false
},
"useViteV5": {
"type": "boolean",
"description": "Use Vite v5",
"default": false,
"x-priority": "internal",
"hidden": true
}
}
}

View File

@ -23,7 +23,7 @@ import angular from '@analogjs/vite-plugin-angular';
import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';
import { nxCopyAssetsPlugin } from '@nx/vite/plugins/nx-copy-assets.plugin';
export default defineConfig({
export default defineConfig(() => ({
root: __dirname,
cacheDir: '../../node_modules/.vite/apps/my-test-angular-app',
plugins: [angular(), nxViteTsPaths(), nxCopyAssetsPlugin(['*.md'])],
@ -40,10 +40,10 @@ export default defineConfig({
reporters: ['default'],
coverage: {
reportsDirectory: '../../coverage/apps/my-test-angular-app',
provider: 'v8',
provider: 'v8' as const,
},
},
});
}));
"
`;
@ -54,7 +54,7 @@ import react from '@vitejs/plugin-react';
import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';
import { nxCopyAssetsPlugin } from '@nx/vite/plugins/nx-copy-assets.plugin';
export default defineConfig({
export default defineConfig(() => ({
root: __dirname,
cacheDir: '../../node_modules/.vite/apps/my-test-react-app',
plugins: [react(), nxViteTsPaths(), nxCopyAssetsPlugin(['*.md'])],
@ -74,10 +74,10 @@ export default defineConfig({
reporters: ['default'],
coverage: {
reportsDirectory: '../../coverage/apps/my-test-react-app',
provider: 'v8',
provider: 'v8' as const,
},
},
});
}));
"
`;
@ -96,7 +96,7 @@ import react from '@vitejs/plugin-react';
import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';
import { nxCopyAssetsPlugin } from '@nx/vite/plugins/nx-copy-assets.plugin';
export default defineConfig({
export default defineConfig(() => ({
root: __dirname,
cacheDir: '../../node_modules/.vite/libs/react-lib-nonb-jest',
plugins: [react(), nxViteTsPaths(), nxCopyAssetsPlugin(['*.md'])],
@ -112,10 +112,10 @@ export default defineConfig({
reporters: ['default'],
coverage: {
reportsDirectory: '../../coverage/libs/react-lib-nonb-jest',
provider: 'v8',
provider: 'v8' as const,
},
},
});
}));
"
`;
@ -126,7 +126,7 @@ import react from '@vitejs/plugin-react';
import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';
import { nxCopyAssetsPlugin } from '@nx/vite/plugins/nx-copy-assets.plugin';
export default defineConfig({
export default defineConfig(() => ({
root: __dirname,
cacheDir: '../../node_modules/.vite/apps/my-test-react-app',
plugins: [react(), nxViteTsPaths(), nxCopyAssetsPlugin(['*.md'])],
@ -142,9 +142,9 @@ export default defineConfig({
reporters: ['default'],
coverage: {
reportsDirectory: '../../coverage/apps/my-test-react-app',
provider: 'v8',
provider: 'v8' as const,
},
},
});
}));
"
`;

View File

@ -7,6 +7,7 @@ import {
logger,
offsetFromRoot,
ProjectType,
readJson,
readNxJson,
readProjectConfiguration,
runTasksInSerial,
@ -29,6 +30,7 @@ import initGenerator from '../init/init';
import { VitestGeneratorSchema } from './schema';
import { detectUiFramework } from '../../utils/detect-ui-framework';
import { getVitestDependenciesVersionsToInstall } from '../../utils/version-utils';
import { coerce, major } from 'semver';
/**
* @param hasPlugin some frameworks (e.g. Nuxt) provide their own plugin. Their generators handle the plugin detection.
@ -66,9 +68,14 @@ export async function vitestGeneratorInternal(
const isRootProject = root === '.';
tasks.push(await jsInitGenerator(tree, { ...schema, skipFormat: true }));
const pkgJson = readJson(tree, 'package.json');
const useVite5 =
major(coerce(pkgJson.devDependencies['vite']) ?? '6.0.0') === 5;
const initTask = await initGenerator(tree, {
skipFormat: true,
addPlugin: schema.addPlugin,
useViteV5: useVite5,
});
tasks.push(initTask);
tasks.push(ensureDependencies(tree, { ...schema, uiFramework }));

View File

@ -46,7 +46,7 @@ export default defineConfig({
reporters: ['default'],
coverage: {
reportsDirectory: '../../coverage/apps/demo',
provider: 'v8',
provider: 'v8' as const,
},
globals: true,
cache: {
@ -96,7 +96,7 @@ export default defineConfig({
reporters: ['default'],
coverage: {
reportsDirectory: '../coverage/demo2',
provider: 'v8',
provider: 'v8' as const,
},
globals: true,
cache: {
@ -153,7 +153,7 @@ export default defineConfig({
reporters: ['default'],
coverage: {
reportsDirectory: '../coverage/demo3',
provider: 'v8',
provider: 'v8' as const,
},
globals: true,
cache: {
@ -204,7 +204,7 @@ export default defineConfig(({ mode }) => {
reporters: ['default'],
coverage: {
reportsDirectory: '../coverage/demo4',
provider: 'v8',
provider: 'v8' as const,
},
globals: true,
cache: {
@ -256,7 +256,7 @@ export default defineConfig(({ mode }) => {
reporters: ['default'],
coverage: {
reportsDirectory: '../coverage/demo4',
provider: 'v8',
provider: 'v8' as const,
},
globals: true,
cache: {

View File

@ -86,7 +86,7 @@ export function updateTestConfig(
changes.push({
type: ChangeType.Insert,
index: testCoverage.getStart() + `coverage: {`.length + 1,
text: `provider: 'v8',`,
text: `provider: 'v8' as const,`,
});
}
} else if (testObject) {
@ -95,7 +95,7 @@ export function updateTestConfig(
index: testObject.getStart() + `test: {`.length + 1,
text: `coverage: {
reportsDirectory: '${coverageDir}',
provider: 'v8',
provider: 'v8' as const,
},`,
});
}

View File

@ -0,0 +1,6 @@
#### Installs the `jiti` package
This migration ensures that the [`jiti`](https://github.com/unjs/jiti) package is installed.
This is a requirement for Vite to parse `postcss` configuration files that use TypeScript.
Learn more: [https://vite.dev/guide/migration#postcss-load-config](https://vite.dev/guide/migration#postcss-load-config)

View File

@ -0,0 +1,13 @@
import { createTreeWithEmptyWorkspace } from '@nx/devkit/testing';
import installJiti from './install-jiti';
import { readJson } from '@nx/devkit';
describe('installJiti', () => {
it('should add jiti to package.json', async () => {
const tree = createTreeWithEmptyWorkspace();
await installJiti(tree);
const packageJson = readJson(tree, 'package.json');
expect(packageJson.devDependencies.jiti).toBeDefined();
expect(packageJson.devDependencies.jiti).toMatchInlineSnapshot(`"2.4.2"`);
});
});

View File

@ -0,0 +1,14 @@
import { type Tree, addDependenciesToPackageJson } from '@nx/devkit';
import { jitiVersion } from '../../utils/versions';
export default async function installJiti(tree: Tree) {
const installTask = addDependenciesToPackageJson(
tree,
{},
{
jiti: jitiVersion,
}
);
return installTask;
}

View File

@ -0,0 +1,49 @@
#### Update `resolve.conditions` to include defaults
In previous Vite versions, the `resolve.conditions` option had defaults that were added internally (i.e. `['module', 'browser', 'development|production']`).
This default was removed in Vite 6, so this migration adds it to your existing configuration to ensure that the behavior remains intact.
Learn more: [https://vite.dev/guide/migration#default-value-for-resolve-conditions](https://vite.dev/guide/migration#default-value-for-resolve-conditions)
{% callout type="note" title="Remix" %}
Remix does not currently support Vite 6 and therefore any `vite.config` file for Remix will not be migrated.
{% /callout %}
#### Sample Code Changes
{% tabs %}
{% tab label="Before" %}
```{% fileName="vite.config.ts" %}
import { defineConfig } from 'vite';
export default defineConfig({
resolve: {
conditions: ['require'],
},
build: {
outDir: 'dist',
},
});
```
{% /tab %}
{% tab label="After" %}
```{% highlightLines=[4,5,6] fileName="vite.config.ts" %}
import { defineConfig } from 'vite';
export default defineConfig({
resolve: {
conditions: ['require', 'module', 'browser', 'development|production'],
},
build: {
outDir: 'dist',
},
});
```
{% /tab %}
{% /tabs %}

View File

@ -0,0 +1,252 @@
import { createTreeWithEmptyWorkspace } from '@nx/devkit/testing';
import updateResolveConditions from './update-resolve-conditions';
describe('update-resolve-conditions', () => {
it('should not update resolve conditions when resolve does not exist', async () => {
const tree = createTreeWithEmptyWorkspace();
tree.write(
'vite.config.ts',
`import {defineConfig} from 'vite';
export default defineConfig({
plugins: [
viteTsConfigPaths(),
],
});
`
);
await updateResolveConditions(tree);
expect(tree.read('vite.config.ts', 'utf-8')).toMatchInlineSnapshot(`
"import { defineConfig } from 'vite';
export default defineConfig({
plugins: [viteTsConfigPaths()],
});
"
`);
});
it('should not update resolve conditions when conditions does not exist', async () => {
const tree = createTreeWithEmptyWorkspace();
tree.write(
'vite.config.ts',
`import {defineConfig} from 'vite';
export default defineConfig({
resolve: {
alias: {
'@app': 'src/app',
},
},
plugins: [
viteTsConfigPaths(),
],
});
`
);
await updateResolveConditions(tree);
expect(tree.read('vite.config.ts', 'utf-8')).toMatchInlineSnapshot(`
"import { defineConfig } from 'vite';
export default defineConfig({
resolve: {
alias: {
'@app': 'src/app',
},
},
plugins: [viteTsConfigPaths()],
});
"
`);
});
it('should update resolve conditions when conditions exist', async () => {
const tree = createTreeWithEmptyWorkspace();
tree.write(
'vite.config.ts',
`import {defineConfig} from 'vite';
export default defineConfig({
resolve: {
alias: {
'@app': 'src/app',
},
conditions: ['browser', 'import', 'module'],
},
plugins: [
viteTsConfigPaths(),
],
});
`
);
await updateResolveConditions(tree);
expect(tree.read('vite.config.ts', 'utf-8')).toMatchInlineSnapshot(`
"import { defineConfig } from 'vite';
export default defineConfig({
resolve: {
alias: {
'@app': 'src/app',
},
conditions: ['browser', 'import', 'module', 'development|production'],
},
plugins: [viteTsConfigPaths()],
});
"
`);
});
it('should handle backticks', async () => {
const tree = createTreeWithEmptyWorkspace();
tree.write(
'vite.config.ts',
`import {defineConfig} from 'vite';
export default defineConfig({
resolve: {
alias: {
'@app': 'src/app',
},
conditions: [\`browser\`, \`import\`, \`module\`],
},
plugins: [
viteTsConfigPaths(),
],
});
`
);
await updateResolveConditions(tree);
expect(tree.read('vite.config.ts', 'utf-8')).toMatchInlineSnapshot(`
"import { defineConfig } from 'vite';
export default defineConfig({
resolve: {
alias: {
'@app': 'src/app',
},
conditions: ['browser', 'import', 'module', 'development|production'],
},
plugins: [viteTsConfigPaths()],
});
"
`);
});
it('should update resolve conditions when conditions exist and not produce duplicates', async () => {
const tree = createTreeWithEmptyWorkspace();
tree.write(
'vite.config.ts',
`import {defineConfig} from 'vite';
export default defineConfig({
resolve: {
alias: {
'@app': 'src/app',
},
conditions: ['module', 'browser', 'development|production'],
},
plugins: [
viteTsConfigPaths(),
],
});
`
);
await updateResolveConditions(tree);
expect(tree.read('vite.config.ts', 'utf-8')).toMatchInlineSnapshot(`
"import { defineConfig } from 'vite';
export default defineConfig({
resolve: {
alias: {
'@app': 'src/app',
},
conditions: ['module', 'browser', 'development|production'],
},
plugins: [viteTsConfigPaths()],
});
"
`);
});
it('should be idempotent', async () => {
const tree = createTreeWithEmptyWorkspace();
tree.write(
'vite.config.ts',
`import {defineConfig} from 'vite';
export default defineConfig({
resolve: {
alias: {
'@app': 'src/app',
},
conditions: ['module', 'browser', 'development|production'],
},
plugins: [
viteTsConfigPaths(),
],
});
`
);
await updateResolveConditions(tree);
await updateResolveConditions(tree);
expect(tree.read('vite.config.ts', 'utf-8')).toMatchInlineSnapshot(`
"import { defineConfig } from 'vite';
export default defineConfig({
resolve: {
alias: {
'@app': 'src/app',
},
conditions: ['module', 'browser', 'development|production'],
},
plugins: [viteTsConfigPaths()],
});
"
`);
});
it('should ignore remix', async () => {
const tree = createTreeWithEmptyWorkspace();
tree.write(
'vite.config.ts',
`import {defineConfig} from 'vite';
import {vitePlugin as remix} from '@remix-run/dev';
export default defineConfig({
resolve: {
alias: {
'@app': 'src/app',
},
conditions: ['module', 'browser', 'development|production'],
},
plugins: [
viteTsConfigPaths(),
remix()
],
});
`
);
await updateResolveConditions(tree);
expect(tree.read('vite.config.ts', 'utf-8')).toMatchInlineSnapshot(`
"import { defineConfig } from 'vite';
import { vitePlugin as remix } from '@remix-run/dev';
export default defineConfig({
resolve: {
alias: {
'@app': 'src/app',
},
conditions: ['module', 'browser', 'development|production'],
},
plugins: [viteTsConfigPaths(), remix()],
});
"
`);
});
});

View File

@ -0,0 +1,86 @@
import { formatFiles, visitNotIgnoredFiles, type Tree } from '@nx/devkit';
import { tsquery } from '@phenomnomnominal/tsquery';
import { minimatch } from 'minimatch';
const REMIX_IMPORT_SELECTOR =
'ImportDeclaration:has(StringLiteral[value=@remix-run/dev]),CallExpression:has(Identifier[name=require]) StringLiteral[value=@remix-run/dev]';
const DEFINE_CONFIG_OBJECT_SELECTOR = `CallExpression:has(Identifier[name=defineConfig]) > ObjectLiteralExpression`;
const RESOLVE_PROPERTY_SELECTOR = `PropertyAssignment:has(Identifier[name=resolve]) > ObjectLiteralExpression`;
const CONDITIONS_PROPERTY_SELECTOR = `PropertyAssignment:has(Identifier[name=conditions]) > ArrayLiteralExpression`;
const _conditions_array_values = [
'module',
'browser',
'development|production',
];
const _condition_obj = `conditions: ${JSON.stringify(
_conditions_array_values
)},`;
const _resolve = `resolve: {
${_condition_obj}
},`;
export default async function (tree: Tree) {
const viteFiles = [];
visitNotIgnoredFiles(tree, '', (filePath) => {
if (minimatch(filePath, '**/vite.*config*.{js,ts,mjs,mts,cjs,cts}')) {
viteFiles.push(filePath);
}
});
for (const file of viteFiles) {
const contents = tree.read(file, 'utf-8');
const ast = tsquery.ast(contents);
const remixImportNodes = tsquery(ast, REMIX_IMPORT_SELECTOR, {
visitAllChildren: true,
});
if (remixImportNodes.length > 0) {
continue;
}
const defineConfigObjectNodes = tsquery(ast, DEFINE_CONFIG_OBJECT_SELECTOR);
if (defineConfigObjectNodes.length === 0) {
console.warn(
`Could not migrate vite config at ${file}. No "defineConfig" object found. Apply "resolve.conditions: ['module', 'browser', 'development|production']" manually to your vite config.`
);
continue;
}
let newContents = contents;
const defineConfigObjectNode = defineConfigObjectNodes[0];
const resolvePropertyNodes = tsquery(
defineConfigObjectNode,
RESOLVE_PROPERTY_SELECTOR
);
if (resolvePropertyNodes.length === 0) {
// Do not add resolve property if it does not already exist
continue;
} else {
const resolvePropertyNode = resolvePropertyNodes[0];
const conditionsPropertyNodes = tsquery(
resolvePropertyNode,
CONDITIONS_PROPERTY_SELECTOR
);
if (conditionsPropertyNodes.length === 0) {
// do not add conditions property if it does not already exist
continue;
} else {
const conditionPropertyNode = conditionsPropertyNodes[0];
const conditionsArrayValues = JSON.parse(
conditionPropertyNode.getText().replace(/['`]/g, '"')
);
const newConditionArrayValues = [
...new Set([...conditionsArrayValues, ..._conditions_array_values]),
];
newContents =
newContents.slice(0, conditionPropertyNode.getStart()) +
`${JSON.stringify(newConditionArrayValues)}` +
newContents.slice(conditionPropertyNode.getEnd());
}
}
tree.write(file, newContents);
}
await formatFiles(tree);
}

View File

@ -144,7 +144,7 @@ describe('generator utils', () => {
import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';
import { nxCopyAssetsPlugin } from '@nx/vite/plugins/nx-copy-assets.plugin';
export default defineConfig({
export default defineConfig(() => ({
root: __dirname,
cacheDir: '../node_modules/.vite/myproj',
plugins: [nxViteTsPaths(), nxCopyAssetsPlugin(['*.md']), dts({ entryRoot: 'src', tsconfigPath: path.join(__dirname, 'tsconfig.lib.json') })],
@ -187,10 +187,10 @@ describe('generator utils', () => {
reporters: ['default'],
coverage: {
reportsDirectory: '../coverage/myproj',
provider: 'v8',
provider: 'v8' as const,
}
},
});
}));
"
`);
});
@ -218,7 +218,7 @@ describe('generator utils', () => {
import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';
import { nxCopyAssetsPlugin } from '@nx/vite/plugins/nx-copy-assets.plugin';
export default defineConfig({
export default defineConfig(() => ({
root: __dirname,
cacheDir: '../node_modules/.vite/myproj',
server:{
@ -242,7 +242,7 @@ describe('generator utils', () => {
transformMixedEsModules: true,
},
},
});
}));
"
`);
});

View File

@ -482,7 +482,9 @@ ${
coverage: {
reportsDirectory: '${reportsDirectory}',
provider: ${
options.coverageProvider ? `'${options.coverageProvider}'` : `'v8'`
options.coverageProvider
? `'${options.coverageProvider}' as const`
: `'v8' as const`
},
}
},`
@ -547,7 +549,7 @@ ${
import { defineConfig } from 'vite';
${imports.join(';\n')}${imports.length ? ';' : ''}
export default defineConfig({
export default defineConfig(() => ({
root: __dirname,
${printOptions(
cacheDir,
@ -559,7 +561,7 @@ export default defineConfig({
defineOption,
testOption
)}
});
}));
`.replace(/\s+(?=(\n|$))/gm, '\n');
tree.write(viteConfigPath, viteConfigContent);
@ -761,7 +763,7 @@ function handleViteConfigFileExists(
reporters: ['default'],
coverage: {
reportsDirectory: reportsDirectory,
provider: `${options.coverageProvider ?? 'v8'}`,
provider: `'${options.coverageProvider ?? 'v8'}'`,
},
};

View File

@ -1,14 +1,16 @@
export const nxVersion = require('../../package.json').version;
// Also update @nx/remix/utils/versions when changing vite version
export const viteVersion = '^5.0.0';
export const viteVersion = '^6.0.0';
export const viteV5Version = '^5.0.0';
export const vitestVersion = '^3.0.0';
export const vitestV1Version = '^1.3.1';
export const vitePluginReactVersion = '^4.2.0';
export const vitePluginReactSwcVersion = '^3.5.0';
export const jsdomVersion = '~22.1.0';
export const vitePluginDtsVersion = '~3.8.1';
export const vitePluginDtsVersion = '~4.5.0';
export const happyDomVersion = '~9.20.3';
export const edgeRuntimeVmVersion = '~3.0.2';
export const jitiVersion = '2.4.2';
export const analogVitestAngular = '~1.10.0';

View File

@ -99,10 +99,23 @@ function handleBuildOrTestNode(
configContentObject
)) {
// NOTE: Watch for formatting.
if (propName === 'coverage') {
let propString = ` '${propName}': {\n`;
for (const [pName, pValue] of Object.entries(propValue)) {
if (pName === 'provider') {
propString += ` '${pName}': ${pValue} as const,\n`;
} else {
propString += ` '${pName}': '${pValue}',\n`;
}
}
propString += `}`;
updatedPropsString += `${propString}\n`;
} else {
updatedPropsString += ` '${propName}': ${JSON.stringify(
propValue
)},\n`;
}
}
return `${name}: {
${updatedPropsString} }`;
}

View File

@ -46,7 +46,7 @@ import vue from '@vitejs/plugin-vue';
import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';
import { nxCopyAssetsPlugin } from '@nx/vite/plugins/nx-copy-assets.plugin';
export default defineConfig({
export default defineConfig(() => ({
root: __dirname,
cacheDir: '../node_modules/.vite/test',
server: {
@ -78,10 +78,10 @@ export default defineConfig({
reporters: ['default'],
coverage: {
reportsDirectory: '../coverage/test',
provider: 'v8',
provider: 'v8' as const,
},
},
});
}));
"
`;
@ -149,7 +149,7 @@ import { defineConfig } from 'vite';
import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';
import { nxCopyAssetsPlugin } from '@nx/vite/plugins/nx-copy-assets.plugin';
export default defineConfig({
export default defineConfig(() => ({
root: __dirname,
cacheDir: '../node_modules/.vite/test',
plugins: [nxViteTsPaths(), nxCopyAssetsPlugin(['*.md']), vue()],
@ -163,9 +163,12 @@ export default defineConfig({
environment: 'jsdom',
include: ['src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'],
reporters: ['default'],
coverage: { reportsDirectory: '../coverage/test', provider: 'v8' },
coverage: {
reportsDirectory: '../coverage/test',
provider: 'v8' as const,
},
});
},
}));
"
`;
@ -249,7 +252,7 @@ import vue from '@vitejs/plugin-vue';
import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';
import { nxCopyAssetsPlugin } from '@nx/vite/plugins/nx-copy-assets.plugin';
export default defineConfig({
export default defineConfig(() => ({
root: __dirname,
cacheDir: '../node_modules/.vite/test',
server: {
@ -281,10 +284,10 @@ export default defineConfig({
reporters: ['default'],
coverage: {
reportsDirectory: '../coverage/test',
provider: 'v8',
provider: 'v8' as const,
},
},
});
}));
"
`;

View File

@ -195,7 +195,7 @@ describe('application generator', () => {
import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';
export default defineConfig({
export default defineConfig(() => ({
root: __dirname,
cacheDir: '../node_modules/.vite/test',
server: {
@ -227,10 +227,10 @@ describe('application generator', () => {
reporters: ['default'],
coverage: {
reportsDirectory: './test-output/vitest/coverage',
provider: 'v8',
provider: 'v8' as const,
},
},
});
}));
"
`);

View File

@ -9,7 +9,7 @@ import * as path from 'path';
import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';
import { nxCopyAssetsPlugin } from '@nx/vite/plugins/nx-copy-assets.plugin';
export default defineConfig({
export default defineConfig(() => ({
root: __dirname,
cacheDir: '../node_modules/.vite/my-lib',
plugins: [
@ -56,10 +56,10 @@ export default defineConfig({
reporters: ['default'],
coverage: {
reportsDirectory: '../coverage/my-lib',
provider: 'v8',
provider: 'v8' as const,
},
},
});
}));
"
`;
@ -100,7 +100,7 @@ import * as path from 'path';
import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';
import { nxCopyAssetsPlugin } from '@nx/vite/plugins/nx-copy-assets.plugin';
export default defineConfig({
export default defineConfig(() => ({
root: __dirname,
cacheDir: '../node_modules/.vite/my-lib',
plugins: [
@ -147,10 +147,10 @@ export default defineConfig({
reporters: ['default'],
coverage: {
reportsDirectory: '../coverage/my-lib',
provider: 'v8',
provider: 'v8' as const,
},
},
});
}));
"
`;
@ -182,10 +182,11 @@ exports[`library should add vue, vite and vitest to package.json 1`] = `
"eslint": "~8.57.0",
"eslint-config-prettier": "^9.0.0",
"eslint-plugin-vue": "^9.16.1",
"jiti": "2.4.2",
"jsdom": "~22.1.0",
"prettier": "^2.6.2",
"typescript": "~5.7.2",
"vite": "^5.0.0",
"vite": "^6.0.0",
"vitest": "^3.0.0",
"vue-tsc": "^2.0.0",
},

View File

@ -541,7 +541,7 @@ module.exports = [
"import vue from '@vitejs/plugin-vue';
import { defineConfig } from 'vite';
export default defineConfig({
export default defineConfig(() => ({
root: __dirname,
cacheDir: '../node_modules/.vite/my-lib',
plugins: [vue()],
@ -557,10 +557,10 @@ module.exports = [
reporters: ['default'],
coverage: {
reportsDirectory: './test-output/vitest/coverage',
provider: 'v8',
provider: 'v8' as const,
},
},
});
}));
"
`);

View File

@ -130,7 +130,7 @@ describe('preset', () => {
import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';
import { nxCopyAssetsPlugin } from '@nx/vite/plugins/nx-copy-assets.plugin';
export default defineConfig({
export default defineConfig(() => ({
root: __dirname,
cacheDir: '../../node_modules/.vite/apps/vue-preset-monorepo',
server: {
@ -162,10 +162,10 @@ describe('preset', () => {
reporters: ['default'],
coverage: {
reportsDirectory: '../../coverage/apps/vue-preset-monorepo',
provider: 'v8',
provider: 'v8' as const,
},
},
});
}));
"
`);
});
@ -283,7 +283,7 @@ describe('preset', () => {
import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';
import { nxCopyAssetsPlugin } from '@nx/vite/plugins/nx-copy-assets.plugin';
export default defineConfig({
export default defineConfig(() => ({
root: __dirname,
cacheDir: './node_modules/.vite/react-standalone-preset-vite',
server: {
@ -315,10 +315,10 @@ describe('preset', () => {
reporters: ['default'],
coverage: {
reportsDirectory: './coverage/react-standalone-preset-vite',
provider: 'v8',
provider: 'v8' as const,
},
},
});
}));
"
`);
});
@ -339,7 +339,7 @@ describe('preset', () => {
import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';
import { nxCopyAssetsPlugin } from '@nx/vite/plugins/nx-copy-assets.plugin';
export default defineConfig({
export default defineConfig(() => ({
root: __dirname,
cacheDir: './node_modules/.vite/vue-standalone-preset',
server: {
@ -371,10 +371,10 @@ describe('preset', () => {
reporters: ['default'],
coverage: {
reportsDirectory: './coverage/vue-standalone-preset',
provider: 'v8',
provider: 'v8' as const,
},
},
});
}));
"
`);
});

224
pnpm-lock.yaml generated
View File

@ -162,7 +162,7 @@ importers:
version: 0.1901.1(chokidar@3.6.0)
'@angular-devkit/build-angular':
specifier: ~19.1.0
version: 19.1.1(tkqgxtk37qk7xex5cpkqz3s73i)
version: 19.1.1(2txith2327rqlceaqar32q7efi)
'@angular-devkit/core':
specifier: ~19.1.0
version: 19.1.1(chokidar@3.6.0)
@ -288,7 +288,7 @@ importers:
version: 3.13.2(rollup@4.22.0)(webpack-sources@3.2.3)
'@nx/angular':
specifier: 20.5.0-beta.2
version: 20.5.0-beta.2(p23sqyd2nogmo5p3bvnmolz3ve)
version: 20.5.0-beta.2(fj6u555wxobujyt7v5sewyurmy)
'@nx/cypress':
specifier: 20.5.0-beta.2
version: 20.5.0-beta.2(@babel/traverse@7.25.9)(@swc-node/register@1.9.1(@swc/core@1.5.7(@swc/helpers@0.5.11))(@swc/types@0.1.12)(typescript@5.7.3))(@swc/core@1.5.7(@swc/helpers@0.5.11))(@types/node@20.16.10)(@zkochan/js-yaml@0.0.7)(cypress@13.13.0)(eslint@8.57.0)(nx@20.5.0-beta.2(@swc-node/register@1.9.1(@swc/core@1.5.7(@swc/helpers@0.5.11))(@swc/types@0.1.12)(typescript@5.7.3))(@swc/core@1.5.7(@swc/helpers@0.5.11)))(typescript@5.7.3)(verdaccio@5.32.2(encoding@0.1.13)(typanion@3.14.0))
@ -315,7 +315,7 @@ importers:
version: 20.5.0-beta.2(xu5fpn3etgkpja46tbvhc2a5vq)
'@nx/playwright':
specifier: 20.5.0-beta.2
version: 20.5.0-beta.2(ybq7tqldznmdf22etnvkshg2da)
version: 20.5.0-beta.2(q6q6nrxrbzxdrznwsnbjik4egq)
'@nx/powerpack-conformance':
specifier: 1.2.3
version: 1.2.3(@nx/js@20.5.0-beta.2(@babel/traverse@7.25.9)(@swc-node/register@1.9.1(@swc/core@1.5.7(@swc/helpers@0.5.11))(@swc/types@0.1.12)(typescript@5.7.3))(@swc/core@1.5.7(@swc/helpers@0.5.11))(@types/node@20.16.10)(nx@20.5.0-beta.2(@swc-node/register@1.9.1(@swc/core@1.5.7(@swc/helpers@0.5.11))(@swc/types@0.1.12)(typescript@5.7.3))(@swc/core@1.5.7(@swc/helpers@0.5.11)))(typescript@5.7.3)(verdaccio@5.32.2(encoding@0.1.13)(typanion@3.14.0)))(nx@20.5.0-beta.2(@swc-node/register@1.9.1(@swc/core@1.5.7(@swc/helpers@0.5.11))(@swc/types@0.1.12)(typescript@5.7.3))(@swc/core@1.5.7(@swc/helpers@0.5.11)))
@ -339,7 +339,7 @@ importers:
version: 20.5.0-beta.2(@babel/traverse@7.25.9)(@swc-node/register@1.9.1(@swc/core@1.5.7(@swc/helpers@0.5.11))(@swc/types@0.1.12)(typescript@5.7.3))(@swc/core@1.5.7(@swc/helpers@0.5.11))(@types/node@20.16.10)(@zkochan/js-yaml@0.0.7)(cypress@13.13.0)(eslint@8.57.0)(nx@20.5.0-beta.2(@swc-node/register@1.9.1(@swc/core@1.5.7(@swc/helpers@0.5.11))(@swc/types@0.1.12)(typescript@5.7.3))(@swc/core@1.5.7(@swc/helpers@0.5.11)))(typescript@5.7.3)(verdaccio@5.32.2(encoding@0.1.13)(typanion@3.14.0))
'@nx/vite':
specifier: 20.5.0-beta.2
version: 20.5.0-beta.2(@babel/traverse@7.25.9)(@swc-node/register@1.9.1(@swc/core@1.5.7(@swc/helpers@0.5.11))(@swc/types@0.1.12)(typescript@5.7.3))(@swc/core@1.5.7(@swc/helpers@0.5.11))(@types/node@20.16.10)(nx@20.5.0-beta.2(@swc-node/register@1.9.1(@swc/core@1.5.7(@swc/helpers@0.5.11))(@swc/types@0.1.12)(typescript@5.7.3))(@swc/core@1.5.7(@swc/helpers@0.5.11)))(typescript@5.7.3)(verdaccio@5.32.2(encoding@0.1.13)(typanion@3.14.0))(vite@5.0.8(@types/node@20.16.10)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0))(vitest@3.0.5(@types/debug@4.1.12)(@types/node@20.16.10)(jsdom@20.0.3(bufferutil@4.0.7))(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0))
version: 20.5.0-beta.2(@babel/traverse@7.25.9)(@swc-node/register@1.9.1(@swc/core@1.5.7(@swc/helpers@0.5.11))(@swc/types@0.1.12)(typescript@5.7.3))(@swc/core@1.5.7(@swc/helpers@0.5.11))(@types/node@20.16.10)(nx@20.5.0-beta.2(@swc-node/register@1.9.1(@swc/core@1.5.7(@swc/helpers@0.5.11))(@swc/types@0.1.12)(typescript@5.7.3))(@swc/core@1.5.7(@swc/helpers@0.5.11)))(typescript@5.7.3)(verdaccio@5.32.2(encoding@0.1.13)(typanion@3.14.0))(vite@6.0.11(@types/node@20.16.10)(jiti@1.21.6)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)(yaml@2.6.1))(vitest@3.0.5(@types/debug@4.1.12)(@types/node@20.16.10)(jiti@1.21.6)(jsdom@20.0.3(bufferutil@4.0.7))(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)(yaml@2.6.1))
'@nx/web':
specifier: 20.5.0-beta.2
version: 20.5.0-beta.2(@babel/traverse@7.25.9)(@swc-node/register@1.9.1(@swc/core@1.5.7(@swc/helpers@0.5.11))(@swc/types@0.1.12)(typescript@5.7.3))(@swc/core@1.5.7(@swc/helpers@0.5.11))(@types/node@20.16.10)(nx@20.5.0-beta.2(@swc-node/register@1.9.1(@swc/core@1.5.7(@swc/helpers@0.5.11))(@swc/types@0.1.12)(typescript@5.7.3))(@swc/core@1.5.7(@swc/helpers@0.5.11)))(typescript@5.7.3)(verdaccio@5.32.2(encoding@0.1.13)(typanion@3.14.0))
@ -363,7 +363,7 @@ importers:
version: 1.9.0(react-redux@8.0.5(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1))(react@18.3.1)
'@remix-run/dev':
specifier: ^2.14.0
version: 2.14.0(@remix-run/react@2.12.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3))(@types/node@20.16.10)(babel-plugin-macros@3.1.0)(bufferutil@4.0.7)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)(ts-node@10.9.1(@swc/core@1.5.7(@swc/helpers@0.5.11))(@types/node@20.16.10)(typescript@5.7.3))(typescript@5.7.3)(vite@5.0.8(@types/node@20.16.10)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0))
version: 2.14.0(@remix-run/react@2.12.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3))(@types/node@20.16.10)(babel-plugin-macros@3.1.0)(bufferutil@4.0.7)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)(ts-node@10.9.1(@swc/core@1.5.7(@swc/helpers@0.5.11))(@types/node@20.16.10)(typescript@5.7.3))(typescript@5.7.3)(vite@6.0.11(@types/node@20.16.10)(jiti@1.21.6)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)(yaml@2.6.1))
'@remix-run/node':
specifier: ^2.14.0
version: 2.14.0(typescript@5.7.3)
@ -417,7 +417,7 @@ importers:
version: 8.4.6(@storybook/test@8.4.6(storybook@8.4.6(bufferutil@4.0.7)(prettier@2.8.8)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.6(bufferutil@4.0.7)(prettier@2.8.8))(typescript@5.7.3)
'@storybook/react-vite':
specifier: 8.4.6
version: 8.4.6(@storybook/test@8.4.6(storybook@8.4.6(bufferutil@4.0.7)(prettier@2.8.8)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.22.0)(storybook@8.4.6(bufferutil@4.0.7)(prettier@2.8.8))(typescript@5.7.3)(vite@5.0.8(@types/node@20.16.10)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0))(webpack-sources@3.2.3)
version: 8.4.6(@storybook/test@8.4.6(storybook@8.4.6(bufferutil@4.0.7)(prettier@2.8.8)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.22.0)(storybook@8.4.6(bufferutil@4.0.7)(prettier@2.8.8))(typescript@5.7.3)(vite@6.0.11(@types/node@20.16.10)(jiti@1.21.6)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)(yaml@2.6.1))(webpack-sources@3.2.3)
'@storybook/react-webpack5':
specifier: 8.4.6
version: 8.4.6(@rspack/core@1.1.6(@swc/helpers@0.5.11))(@storybook/test@8.4.6(storybook@8.4.6(bufferutil@4.0.7)(prettier@2.8.8)))(@swc/core@1.5.7(@swc/helpers@0.5.11))(esbuild@0.19.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.6(bufferutil@4.0.7)(prettier@2.8.8))(typescript@5.7.3)(webpack-cli@5.1.4(webpack-dev-server@5.0.4)(webpack@5.88.0))
@ -831,7 +831,7 @@ importers:
version: 11.0.1
nuxt:
specifier: ^3.10.0
version: 3.13.2(@azure/identity@4.5.0)(@azure/storage-blob@12.25.0)(@parcel/watcher@2.4.1)(@types/node@20.16.10)(bufferutil@4.0.7)(encoding@0.1.13)(eslint@8.57.0)(ioredis@5.4.1)(less@4.1.3)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.22.0)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)(typescript@5.7.3)(vite@5.0.8(@types/node@20.16.10)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0))(webpack-sources@3.2.3)
version: 3.13.2(@azure/identity@4.5.0)(@azure/storage-blob@12.25.0)(@parcel/watcher@2.4.1)(@types/node@20.16.10)(bufferutil@4.0.7)(encoding@0.1.13)(eslint@8.57.0)(ioredis@5.4.1)(less@4.1.3)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.22.0)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)(typescript@5.7.3)(vite@6.0.11(@types/node@20.16.10)(jiti@1.21.6)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)(yaml@2.6.1))(webpack-sources@3.2.3)
nx:
specifier: 20.5.0-beta.2
version: 20.5.0-beta.2(@swc-node/register@1.9.1(@swc/core@1.5.7(@swc/helpers@0.5.11))(@swc/types@0.1.12)(typescript@5.7.3))(@swc/core@1.5.7(@swc/helpers@0.5.11))
@ -992,11 +992,11 @@ importers:
specifier: ^5.30.0
version: 5.32.2(encoding@0.1.13)(typanion@3.14.0)
vite:
specifier: 5.0.8
version: 5.0.8(@types/node@20.16.10)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)
specifier: 6.0.11
version: 6.0.11(@types/node@20.16.10)(jiti@1.21.6)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)(yaml@2.6.1)
vitest:
specifier: 3.0.5
version: 3.0.5(@types/debug@4.1.12)(@types/node@20.16.10)(jsdom@20.0.3(bufferutil@4.0.7))(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)
version: 3.0.5(@types/debug@4.1.12)(@types/node@20.16.10)(jiti@1.21.6)(jsdom@20.0.3(bufferutil@4.0.7))(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)(yaml@2.6.1)
webpack:
specifier: 5.88.0
version: 5.88.0(@swc/core@1.5.7(@swc/helpers@0.5.11))(esbuild@0.19.5)(webpack-cli@5.1.4(webpack-dev-server@5.0.4)(webpack@5.88.0))
@ -16928,34 +16928,6 @@ packages:
peerDependencies:
vite: ^3.0.0-0 || ^4.0.0-0 || ^5.0.0-0
vite@5.0.8:
resolution: {integrity: sha512-jYMALd8aeqR3yS9xlHd0OzQJndS9fH5ylVgWdB+pxTwxLKdO1pgC5Dlb398BUxpfaBxa4M9oT7j1g503Gaj5IQ==}
engines: {node: ^18.0.0 || >=20.0.0}
hasBin: true
peerDependencies:
'@types/node': ^18.0.0 || >=20.0.0
less: '*'
lightningcss: ^1.21.0
sass: '*'
stylus: '*'
sugarss: '*'
terser: ^5.4.0
peerDependenciesMeta:
'@types/node':
optional: true
less:
optional: true
lightningcss:
optional: true
sass:
optional: true
stylus:
optional: true
sugarss:
optional: true
terser:
optional: true
vite@5.4.11:
resolution: {integrity: sha512-c7jFQRklXua0mTzneGW9QVyxFjUgwcihC4bXEtujIo2ouWCe1Ajt/amn2PCxYnhYfd5k09JX3SB7OYWFKYqj8Q==}
engines: {node: ^18.0.0 || >=20.0.0}
@ -16987,6 +16959,46 @@ packages:
terser:
optional: true
vite@6.0.11:
resolution: {integrity: sha512-4VL9mQPKoHy4+FE0NnRE/kbY51TOfaknxAjt3fJbGJxhIpBZiqVzlZDEesWWsuREXHwNdAoOFZ9MkPEVXczHwg==}
engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
hasBin: true
peerDependencies:
'@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0
jiti: '>=1.21.0'
less: '*'
lightningcss: ^1.21.0
sass: '*'
sass-embedded: '*'
stylus: '*'
sugarss: '*'
terser: ^5.16.0
tsx: ^4.8.1
yaml: ^2.4.2
peerDependenciesMeta:
'@types/node':
optional: true
jiti:
optional: true
less:
optional: true
lightningcss:
optional: true
sass:
optional: true
sass-embedded:
optional: true
stylus:
optional: true
sugarss:
optional: true
terser:
optional: true
tsx:
optional: true
yaml:
optional: true
vite@6.0.7:
resolution: {integrity: sha512-RDt8r/7qx9940f8FcOIAH9PTViRrghKaK2K1jY3RaAURrEUbm9Du1mJ72G+jlhtG3WwodnfzY8ORQZbBavZEAQ==}
engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
@ -17682,7 +17694,7 @@ snapshots:
transitivePeerDependencies:
- chokidar
'@angular-devkit/build-angular@19.1.1(tkqgxtk37qk7xex5cpkqz3s73i)':
'@angular-devkit/build-angular@19.1.1(2txith2327rqlceaqar32q7efi)':
dependencies:
'@ampproject/remapping': 2.3.0
'@angular-devkit/architect': 0.1901.1(chokidar@3.6.0)
@ -17701,7 +17713,7 @@ snapshots:
'@babel/runtime': 7.26.0
'@discoveryjs/json-ext': 0.6.3
'@ngtools/webpack': 19.1.1(@angular/compiler-cli@19.1.1(@angular/compiler@19.1.1(@angular/core@19.1.1(rxjs@7.8.1)(zone.js@0.14.10)))(typescript@5.7.3))(typescript@5.7.3)(webpack@5.97.1(@swc/core@1.5.7(@swc/helpers@0.5.11))(esbuild@0.24.2)(webpack-cli@5.1.4(webpack-dev-server@5.0.4)(webpack@5.88.0)))
'@vitejs/plugin-basic-ssl': 1.2.0(vite@5.0.8(@types/node@20.16.10)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0))
'@vitejs/plugin-basic-ssl': 1.2.0(vite@6.0.11(@types/node@20.16.10)(jiti@1.21.6)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)(yaml@2.6.1))
ansi-colors: 4.1.3
autoprefixer: 10.4.20(postcss@8.4.49)
babel-loader: 9.2.1(@babel/core@7.26.0)(webpack@5.97.1(@swc/core@1.5.7(@swc/helpers@0.5.11))(esbuild@0.24.2)(webpack-cli@5.1.4(webpack-dev-server@5.0.4)(webpack@5.88.0)))
@ -20894,11 +20906,11 @@ snapshots:
'@types/yargs': 17.0.10
chalk: 4.1.2
'@joshwooding/vite-plugin-react-docgen-typescript@0.4.2(typescript@5.7.3)(vite@5.0.8(@types/node@20.16.10)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0))':
'@joshwooding/vite-plugin-react-docgen-typescript@0.4.2(typescript@5.7.3)(vite@6.0.11(@types/node@20.16.10)(jiti@1.21.6)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)(yaml@2.6.1))':
dependencies:
magic-string: 0.27.0
react-docgen-typescript: 2.2.2(typescript@5.7.3)
vite: 5.0.8(@types/node@20.16.10)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)
vite: 6.0.11(@types/node@20.16.10)(jiti@1.21.6)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)(yaml@2.6.1)
optionalDependencies:
typescript: 5.7.3
@ -22082,12 +22094,12 @@ snapshots:
'@nuxt/devalue@2.0.2': {}
'@nuxt/devtools-kit@1.4.2(magicast@0.3.5)(rollup@4.22.0)(vite@5.0.8(@types/node@20.16.10)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0))(webpack-sources@3.2.3)':
'@nuxt/devtools-kit@1.4.2(magicast@0.3.5)(rollup@4.22.0)(vite@6.0.11(@types/node@20.16.10)(jiti@1.21.6)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)(yaml@2.6.1))(webpack-sources@3.2.3)':
dependencies:
'@nuxt/kit': 3.13.2(magicast@0.3.5)(rollup@4.22.0)(webpack-sources@3.2.3)
'@nuxt/schema': 3.13.2(rollup@4.22.0)(webpack-sources@3.2.3)
execa: 7.2.0
vite: 5.0.8(@types/node@20.16.10)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)
vite: 6.0.11(@types/node@20.16.10)(jiti@1.21.6)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)(yaml@2.6.1)
transitivePeerDependencies:
- magicast
- rollup
@ -22107,13 +22119,13 @@ snapshots:
rc9: 2.1.2
semver: 7.6.3
'@nuxt/devtools@1.4.2(bufferutil@4.0.7)(rollup@4.22.0)(vite@5.0.8(@types/node@20.16.10)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0))(vue@3.5.6(typescript@5.7.3))(webpack-sources@3.2.3)':
'@nuxt/devtools@1.4.2(bufferutil@4.0.7)(rollup@4.22.0)(vite@6.0.11(@types/node@20.16.10)(jiti@1.21.6)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)(yaml@2.6.1))(vue@3.5.6(typescript@5.7.3))(webpack-sources@3.2.3)':
dependencies:
'@antfu/utils': 0.7.10
'@nuxt/devtools-kit': 1.4.2(magicast@0.3.5)(rollup@4.22.0)(vite@5.0.8(@types/node@20.16.10)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0))(webpack-sources@3.2.3)
'@nuxt/devtools-kit': 1.4.2(magicast@0.3.5)(rollup@4.22.0)(vite@6.0.11(@types/node@20.16.10)(jiti@1.21.6)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)(yaml@2.6.1))(webpack-sources@3.2.3)
'@nuxt/devtools-wizard': 1.4.2
'@nuxt/kit': 3.13.2(magicast@0.3.5)(rollup@4.22.0)(webpack-sources@3.2.3)
'@vue/devtools-core': 7.4.4(vite@5.0.8(@types/node@20.16.10)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0))(vue@3.5.6(typescript@5.7.3))
'@vue/devtools-core': 7.4.4(vite@6.0.11(@types/node@20.16.10)(jiti@1.21.6)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)(yaml@2.6.1))(vue@3.5.6(typescript@5.7.3))
'@vue/devtools-kit': 7.4.4
birpc: 0.2.17
consola: 3.2.3
@ -22142,9 +22154,9 @@ snapshots:
sirv: 2.0.4
tinyglobby: 0.2.10
unimport: 3.12.0(rollup@4.22.0)(webpack-sources@3.2.3)
vite: 5.0.8(@types/node@20.16.10)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)
vite-plugin-inspect: 0.8.7(@nuxt/kit@3.13.2(magicast@0.3.5)(rollup@4.22.0)(webpack-sources@3.2.3))(rollup@4.22.0)(vite@5.0.8(@types/node@20.16.10)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0))
vite-plugin-vue-inspector: 5.2.0(vite@5.0.8(@types/node@20.16.10)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0))
vite: 6.0.11(@types/node@20.16.10)(jiti@1.21.6)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)(yaml@2.6.1)
vite-plugin-inspect: 0.8.7(@nuxt/kit@3.13.2(magicast@0.3.5)(rollup@4.22.0)(webpack-sources@3.2.3))(rollup@4.22.0)(vite@6.0.11(@types/node@20.16.10)(jiti@1.21.6)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)(yaml@2.6.1))
vite-plugin-vue-inspector: 5.2.0(vite@6.0.11(@types/node@20.16.10)(jiti@1.21.6)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)(yaml@2.6.1))
which: 3.0.1
ws: 8.18.0(bufferutil@4.0.7)
transitivePeerDependencies:
@ -22296,9 +22308,9 @@ snapshots:
transitivePeerDependencies:
- encoding
'@nx/angular@20.5.0-beta.2(p23sqyd2nogmo5p3bvnmolz3ve)':
'@nx/angular@20.5.0-beta.2(fj6u555wxobujyt7v5sewyurmy)':
dependencies:
'@angular-devkit/build-angular': 19.1.1(tkqgxtk37qk7xex5cpkqz3s73i)
'@angular-devkit/build-angular': 19.1.1(2txith2327rqlceaqar32q7efi)
'@angular-devkit/core': 19.1.1(chokidar@3.6.0)
'@angular-devkit/schematics': 19.1.1(chokidar@3.6.0)
'@nx/devkit': 20.5.0-beta.2(nx@20.5.0-beta.2(@swc-node/register@1.9.1(@swc/core@1.5.7(@swc/helpers@0.5.11))(@swc/types@0.1.12)(typescript@5.7.3))(@swc/core@1.5.7(@swc/helpers@0.5.11)))
@ -22687,7 +22699,7 @@ snapshots:
'@nx/nx-win32-x64-msvc@20.5.0-beta.2':
optional: true
'@nx/playwright@20.5.0-beta.2(ybq7tqldznmdf22etnvkshg2da)':
'@nx/playwright@20.5.0-beta.2(q6q6nrxrbzxdrznwsnbjik4egq)':
dependencies:
'@nx/devkit': 20.5.0-beta.2(nx@20.5.0-beta.2(@swc-node/register@1.9.1(@swc/core@1.5.7(@swc/helpers@0.5.11))(@swc/types@0.1.12)(typescript@5.7.3))(@swc/core@1.5.7(@swc/helpers@0.5.11)))
'@nx/eslint': 20.5.0-beta.2(@babel/traverse@7.25.9)(@swc-node/register@1.9.1(@swc/core@1.5.7(@swc/helpers@0.5.11))(@swc/types@0.1.12)(typescript@5.7.3))(@swc/core@1.5.7(@swc/helpers@0.5.11))(@types/node@20.16.10)(@zkochan/js-yaml@0.0.7)(eslint@8.57.0)(nx@20.5.0-beta.2(@swc-node/register@1.9.1(@swc/core@1.5.7(@swc/helpers@0.5.11))(@swc/types@0.1.12)(typescript@5.7.3))(@swc/core@1.5.7(@swc/helpers@0.5.11)))(verdaccio@5.32.2(encoding@0.1.13)(typanion@3.14.0))
@ -22696,7 +22708,7 @@ snapshots:
minimatch: 9.0.3
tslib: 2.8.1
optionalDependencies:
'@nx/vite': 20.5.0-beta.2(@babel/traverse@7.25.9)(@swc-node/register@1.9.1(@swc/core@1.5.7(@swc/helpers@0.5.11))(@swc/types@0.1.12)(typescript@5.7.3))(@swc/core@1.5.7(@swc/helpers@0.5.11))(@types/node@20.16.10)(nx@20.5.0-beta.2(@swc-node/register@1.9.1(@swc/core@1.5.7(@swc/helpers@0.5.11))(@swc/types@0.1.12)(typescript@5.7.3))(@swc/core@1.5.7(@swc/helpers@0.5.11)))(typescript@5.7.3)(verdaccio@5.32.2(encoding@0.1.13)(typanion@3.14.0))(vite@5.0.8(@types/node@20.16.10)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0))(vitest@3.0.5(@types/debug@4.1.12)(@types/node@20.16.10)(jsdom@20.0.3(bufferutil@4.0.7))(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0))
'@nx/vite': 20.5.0-beta.2(@babel/traverse@7.25.9)(@swc-node/register@1.9.1(@swc/core@1.5.7(@swc/helpers@0.5.11))(@swc/types@0.1.12)(typescript@5.7.3))(@swc/core@1.5.7(@swc/helpers@0.5.11))(@types/node@20.16.10)(nx@20.5.0-beta.2(@swc-node/register@1.9.1(@swc/core@1.5.7(@swc/helpers@0.5.11))(@swc/types@0.1.12)(typescript@5.7.3))(@swc/core@1.5.7(@swc/helpers@0.5.11)))(typescript@5.7.3)(verdaccio@5.32.2(encoding@0.1.13)(typanion@3.14.0))(vite@6.0.11(@types/node@20.16.10)(jiti@1.21.6)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)(yaml@2.6.1))(vitest@3.0.5(@types/debug@4.1.12)(@types/node@20.16.10)(jiti@1.21.6)(jsdom@20.0.3(bufferutil@4.0.7))(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)(yaml@2.6.1))
'@nx/webpack': 20.5.0-beta.2(@babel/traverse@7.25.9)(@rspack/core@1.1.6(@swc/helpers@0.5.11))(@swc-node/register@1.9.1(@swc/core@1.5.7(@swc/helpers@0.5.11))(@swc/types@0.1.12)(typescript@5.7.3))(@swc/core@1.5.7(@swc/helpers@0.5.11))(@types/node@20.16.10)(bufferutil@4.0.7)(esbuild@0.19.5)(html-webpack-plugin@5.5.0(webpack@5.88.0(@swc/core@1.5.7(@swc/helpers@0.5.11))(esbuild@0.19.5)(webpack-cli@5.1.4(webpack-dev-server@5.0.4)(webpack@5.88.0))))(nx@20.5.0-beta.2(@swc-node/register@1.9.1(@swc/core@1.5.7(@swc/helpers@0.5.11))(@swc/types@0.1.12)(typescript@5.7.3))(@swc/core@1.5.7(@swc/helpers@0.5.11)))(typescript@5.7.3)(verdaccio@5.32.2(encoding@0.1.13)(typanion@3.14.0))(webpack-cli@5.1.4(webpack-dev-server@5.0.4)(webpack@5.88.0))
'@playwright/test': 1.47.1
transitivePeerDependencies:
@ -22920,7 +22932,7 @@ snapshots:
- typescript
- verdaccio
'@nx/vite@20.5.0-beta.2(@babel/traverse@7.25.9)(@swc-node/register@1.9.1(@swc/core@1.5.7(@swc/helpers@0.5.11))(@swc/types@0.1.12)(typescript@5.7.3))(@swc/core@1.5.7(@swc/helpers@0.5.11))(@types/node@20.16.10)(nx@20.5.0-beta.2(@swc-node/register@1.9.1(@swc/core@1.5.7(@swc/helpers@0.5.11))(@swc/types@0.1.12)(typescript@5.7.3))(@swc/core@1.5.7(@swc/helpers@0.5.11)))(typescript@5.7.3)(verdaccio@5.32.2(encoding@0.1.13)(typanion@3.14.0))(vite@5.0.8(@types/node@20.16.10)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0))(vitest@3.0.5(@types/debug@4.1.12)(@types/node@20.16.10)(jsdom@20.0.3(bufferutil@4.0.7))(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0))':
'@nx/vite@20.5.0-beta.2(@babel/traverse@7.25.9)(@swc-node/register@1.9.1(@swc/core@1.5.7(@swc/helpers@0.5.11))(@swc/types@0.1.12)(typescript@5.7.3))(@swc/core@1.5.7(@swc/helpers@0.5.11))(@types/node@20.16.10)(nx@20.5.0-beta.2(@swc-node/register@1.9.1(@swc/core@1.5.7(@swc/helpers@0.5.11))(@swc/types@0.1.12)(typescript@5.7.3))(@swc/core@1.5.7(@swc/helpers@0.5.11)))(typescript@5.7.3)(verdaccio@5.32.2(encoding@0.1.13)(typanion@3.14.0))(vite@6.0.11(@types/node@20.16.10)(jiti@1.21.6)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)(yaml@2.6.1))(vitest@3.0.5(@types/debug@4.1.12)(@types/node@20.16.10)(jiti@1.21.6)(jsdom@20.0.3(bufferutil@4.0.7))(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)(yaml@2.6.1))':
dependencies:
'@nx/devkit': 20.5.0-beta.2(nx@20.5.0-beta.2(@swc-node/register@1.9.1(@swc/core@1.5.7(@swc/helpers@0.5.11))(@swc/types@0.1.12)(typescript@5.7.3))(@swc/core@1.5.7(@swc/helpers@0.5.11)))
'@nx/js': 20.5.0-beta.2(@babel/traverse@7.25.9)(@swc-node/register@1.9.1(@swc/core@1.5.7(@swc/helpers@0.5.11))(@swc/types@0.1.12)(typescript@5.7.3))(@swc/core@1.5.7(@swc/helpers@0.5.11))(@types/node@20.16.10)(nx@20.5.0-beta.2(@swc-node/register@1.9.1(@swc/core@1.5.7(@swc/helpers@0.5.11))(@swc/types@0.1.12)(typescript@5.7.3))(@swc/core@1.5.7(@swc/helpers@0.5.11)))(typescript@5.7.3)(verdaccio@5.32.2(encoding@0.1.13)(typanion@3.14.0))
@ -22929,8 +22941,8 @@ snapshots:
enquirer: 2.3.6
minimatch: 9.0.3
tsconfig-paths: 4.2.0
vite: 5.0.8(@types/node@20.16.10)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)
vitest: 3.0.5(@types/debug@4.1.12)(@types/node@20.16.10)(jsdom@20.0.3(bufferutil@4.0.7))(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)
vite: 6.0.11(@types/node@20.16.10)(jiti@1.21.6)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)(yaml@2.6.1)
vitest: 3.0.5(@types/debug@4.1.12)(@types/node@20.16.10)(jiti@1.21.6)(jsdom@20.0.3(bufferutil@4.0.7))(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)(yaml@2.6.1)
transitivePeerDependencies:
- '@babel/traverse'
- '@swc-node/register'
@ -23554,7 +23566,7 @@ snapshots:
react: 18.3.1
react-redux: 8.0.5(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1)
'@remix-run/dev@2.14.0(@remix-run/react@2.12.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3))(@types/node@20.16.10)(babel-plugin-macros@3.1.0)(bufferutil@4.0.7)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)(ts-node@10.9.1(@swc/core@1.5.7(@swc/helpers@0.5.11))(@types/node@20.16.10)(typescript@5.7.3))(typescript@5.7.3)(vite@5.0.8(@types/node@20.16.10)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0))':
'@remix-run/dev@2.14.0(@remix-run/react@2.12.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3))(@types/node@20.16.10)(babel-plugin-macros@3.1.0)(bufferutil@4.0.7)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)(ts-node@10.9.1(@swc/core@1.5.7(@swc/helpers@0.5.11))(@types/node@20.16.10)(typescript@5.7.3))(typescript@5.7.3)(vite@6.0.11(@types/node@20.16.10)(jiti@1.21.6)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)(yaml@2.6.1))':
dependencies:
'@babel/core': 7.26.0
'@babel/generator': 7.26.2
@ -23614,7 +23626,7 @@ snapshots:
ws: 7.5.10(bufferutil@4.0.7)
optionalDependencies:
typescript: 5.7.3
vite: 5.0.8(@types/node@20.16.10)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)
vite: 6.0.11(@types/node@20.16.10)(jiti@1.21.6)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)(yaml@2.6.1)
transitivePeerDependencies:
- '@types/node'
- babel-plugin-macros
@ -24218,13 +24230,13 @@ snapshots:
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
'@storybook/builder-vite@8.4.6(storybook@8.4.6(bufferutil@4.0.7)(prettier@2.8.8))(vite@5.0.8(@types/node@20.16.10)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0))(webpack-sources@3.2.3)':
'@storybook/builder-vite@8.4.6(storybook@8.4.6(bufferutil@4.0.7)(prettier@2.8.8))(vite@6.0.11(@types/node@20.16.10)(jiti@1.21.6)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)(yaml@2.6.1))(webpack-sources@3.2.3)':
dependencies:
'@storybook/csf-plugin': 8.4.6(storybook@8.4.6(bufferutil@4.0.7)(prettier@2.8.8))(webpack-sources@3.2.3)
browser-assert: 1.2.1
storybook: 8.4.6(bufferutil@4.0.7)(prettier@2.8.8)
ts-dedent: 2.2.0
vite: 5.0.8(@types/node@20.16.10)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)
vite: 6.0.11(@types/node@20.16.10)(jiti@1.21.6)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)(yaml@2.6.1)
transitivePeerDependencies:
- webpack-sources
@ -24394,11 +24406,11 @@ snapshots:
react-dom: 18.3.1(react@18.3.1)
storybook: 8.4.6(bufferutil@4.0.7)(prettier@2.8.8)
'@storybook/react-vite@8.4.6(@storybook/test@8.4.6(storybook@8.4.6(bufferutil@4.0.7)(prettier@2.8.8)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.22.0)(storybook@8.4.6(bufferutil@4.0.7)(prettier@2.8.8))(typescript@5.7.3)(vite@5.0.8(@types/node@20.16.10)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0))(webpack-sources@3.2.3)':
'@storybook/react-vite@8.4.6(@storybook/test@8.4.6(storybook@8.4.6(bufferutil@4.0.7)(prettier@2.8.8)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.22.0)(storybook@8.4.6(bufferutil@4.0.7)(prettier@2.8.8))(typescript@5.7.3)(vite@6.0.11(@types/node@20.16.10)(jiti@1.21.6)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)(yaml@2.6.1))(webpack-sources@3.2.3)':
dependencies:
'@joshwooding/vite-plugin-react-docgen-typescript': 0.4.2(typescript@5.7.3)(vite@5.0.8(@types/node@20.16.10)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0))
'@joshwooding/vite-plugin-react-docgen-typescript': 0.4.2(typescript@5.7.3)(vite@6.0.11(@types/node@20.16.10)(jiti@1.21.6)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)(yaml@2.6.1))
'@rollup/pluginutils': 5.1.0(rollup@4.22.0)
'@storybook/builder-vite': 8.4.6(storybook@8.4.6(bufferutil@4.0.7)(prettier@2.8.8))(vite@5.0.8(@types/node@20.16.10)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0))(webpack-sources@3.2.3)
'@storybook/builder-vite': 8.4.6(storybook@8.4.6(bufferutil@4.0.7)(prettier@2.8.8))(vite@6.0.11(@types/node@20.16.10)(jiti@1.21.6)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)(yaml@2.6.1))(webpack-sources@3.2.3)
'@storybook/react': 8.4.6(@storybook/test@8.4.6(storybook@8.4.6(bufferutil@4.0.7)(prettier@2.8.8)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.6(bufferutil@4.0.7)(prettier@2.8.8))(typescript@5.7.3)
find-up: 5.0.0
magic-string: 0.30.12
@ -24408,7 +24420,7 @@ snapshots:
resolve: 1.22.8
storybook: 8.4.6(bufferutil@4.0.7)(prettier@2.8.8)
tsconfig-paths: 4.2.0
vite: 5.0.8(@types/node@20.16.10)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)
vite: 6.0.11(@types/node@20.16.10)(jiti@1.21.6)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)(yaml@2.6.1)
transitivePeerDependencies:
- '@storybook/test'
- rollup
@ -25668,9 +25680,9 @@ snapshots:
minimatch: 7.4.6
semver: 7.6.3
'@vitejs/plugin-basic-ssl@1.2.0(vite@5.0.8(@types/node@20.16.10)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0))':
'@vitejs/plugin-basic-ssl@1.2.0(vite@6.0.11(@types/node@20.16.10)(jiti@1.21.6)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)(yaml@2.6.1))':
dependencies:
vite: 5.0.8(@types/node@20.16.10)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)
vite: 6.0.11(@types/node@20.16.10)(jiti@1.21.6)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)(yaml@2.6.1)
'@vitejs/plugin-basic-ssl@1.2.0(vite@6.0.7(@types/node@20.16.10)(jiti@1.21.6)(less@4.2.1)(sass@1.83.1)(stylus@0.64.0)(terser@5.37.0)(yaml@2.6.1))':
dependencies:
@ -25705,13 +25717,13 @@ snapshots:
chai: 5.1.2
tinyrainbow: 2.0.0
'@vitest/mocker@3.0.5(vite@5.0.8(@types/node@20.16.10)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0))':
'@vitest/mocker@3.0.5(vite@5.4.11(@types/node@20.16.10)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0))':
dependencies:
'@vitest/spy': 3.0.5
estree-walker: 3.0.3
magic-string: 0.30.17
optionalDependencies:
vite: 5.0.8(@types/node@20.16.10)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)
vite: 5.4.11(@types/node@20.16.10)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)
'@vitest/pretty-format@2.0.5':
dependencies:
@ -25838,14 +25850,14 @@ snapshots:
'@vue/devtools-api@6.6.4': {}
'@vue/devtools-core@7.4.4(vite@5.0.8(@types/node@20.16.10)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0))(vue@3.5.6(typescript@5.7.3))':
'@vue/devtools-core@7.4.4(vite@6.0.11(@types/node@20.16.10)(jiti@1.21.6)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)(yaml@2.6.1))(vue@3.5.6(typescript@5.7.3))':
dependencies:
'@vue/devtools-kit': 7.4.4
'@vue/devtools-shared': 7.4.5
mitt: 3.0.1
nanoid: 3.3.7
pathe: 1.1.2
vite-hot-client: 0.2.3(vite@5.0.8(@types/node@20.16.10)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0))
vite-hot-client: 0.2.3(vite@6.0.11(@types/node@20.16.10)(jiti@1.21.6)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)(yaml@2.6.1))
vue: 3.5.6(typescript@5.7.3)
transitivePeerDependencies:
- vite
@ -33210,10 +33222,10 @@ snapshots:
optionalDependencies:
fsevents: 2.3.3
nuxt@3.13.2(@azure/identity@4.5.0)(@azure/storage-blob@12.25.0)(@parcel/watcher@2.4.1)(@types/node@20.16.10)(bufferutil@4.0.7)(encoding@0.1.13)(eslint@8.57.0)(ioredis@5.4.1)(less@4.1.3)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.22.0)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)(typescript@5.7.3)(vite@5.0.8(@types/node@20.16.10)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0))(webpack-sources@3.2.3):
nuxt@3.13.2(@azure/identity@4.5.0)(@azure/storage-blob@12.25.0)(@parcel/watcher@2.4.1)(@types/node@20.16.10)(bufferutil@4.0.7)(encoding@0.1.13)(eslint@8.57.0)(ioredis@5.4.1)(less@4.1.3)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.22.0)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)(typescript@5.7.3)(vite@6.0.11(@types/node@20.16.10)(jiti@1.21.6)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)(yaml@2.6.1))(webpack-sources@3.2.3):
dependencies:
'@nuxt/devalue': 2.0.2
'@nuxt/devtools': 1.4.2(bufferutil@4.0.7)(rollup@4.22.0)(vite@5.0.8(@types/node@20.16.10)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0))(vue@3.5.6(typescript@5.7.3))(webpack-sources@3.2.3)
'@nuxt/devtools': 1.4.2(bufferutil@4.0.7)(rollup@4.22.0)(vite@6.0.11(@types/node@20.16.10)(jiti@1.21.6)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)(yaml@2.6.1))(vue@3.5.6(typescript@5.7.3))(webpack-sources@3.2.3)
'@nuxt/kit': 3.13.2(magicast@0.3.5)(rollup@4.22.0)(webpack-sources@3.2.3)
'@nuxt/schema': 3.13.2(rollup@4.22.0)(webpack-sources@3.2.3)
'@nuxt/telemetry': 2.6.0(magicast@0.3.5)(rollup@4.22.0)(webpack-sources@3.2.3)
@ -37398,9 +37410,9 @@ snapshots:
unist-util-stringify-position: 3.0.3
vfile-message: 3.1.4
vite-hot-client@0.2.3(vite@5.0.8(@types/node@20.16.10)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)):
vite-hot-client@0.2.3(vite@6.0.11(@types/node@20.16.10)(jiti@1.21.6)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)(yaml@2.6.1)):
dependencies:
vite: 5.0.8(@types/node@20.16.10)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)
vite: 6.0.11(@types/node@20.16.10)(jiti@1.21.6)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)(yaml@2.6.1)
vite-node@1.6.0(@types/node@20.16.10)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0):
dependencies:
@ -37408,12 +37420,13 @@ snapshots:
debug: 4.3.7(supports-color@8.1.1)
pathe: 1.1.2
picocolors: 1.1.1
vite: 5.0.8(@types/node@20.16.10)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)
vite: 5.4.11(@types/node@20.16.10)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)
transitivePeerDependencies:
- '@types/node'
- less
- lightningcss
- sass
- sass-embedded
- stylus
- sugarss
- supports-color
@ -37424,33 +37437,38 @@ snapshots:
cac: 6.7.14
debug: 4.3.7(supports-color@8.1.1)
pathe: 1.1.2
vite: 5.0.8(@types/node@20.16.10)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)
vite: 5.4.11(@types/node@20.16.10)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)
transitivePeerDependencies:
- '@types/node'
- less
- lightningcss
- sass
- sass-embedded
- stylus
- sugarss
- supports-color
- terser
vite-node@3.0.5(@types/node@20.16.10)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0):
vite-node@3.0.5(@types/node@20.16.10)(jiti@1.21.6)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)(yaml@2.6.1):
dependencies:
cac: 6.7.14
debug: 4.4.0
es-module-lexer: 1.6.0
pathe: 2.0.2
vite: 5.0.8(@types/node@20.16.10)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)
vite: 6.0.11(@types/node@20.16.10)(jiti@1.21.6)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)(yaml@2.6.1)
transitivePeerDependencies:
- '@types/node'
- jiti
- less
- lightningcss
- sass
- sass-embedded
- stylus
- sugarss
- supports-color
- terser
- tsx
- yaml
vite-plugin-checker@0.8.0(eslint@8.57.0)(optionator@0.9.4)(typescript@5.7.3)(vite@5.4.11(@types/node@20.16.10)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)):
dependencies:
@ -37474,7 +37492,7 @@ snapshots:
optionator: 0.9.4
typescript: 5.7.3
vite-plugin-inspect@0.8.7(@nuxt/kit@3.13.2(magicast@0.3.5)(rollup@4.22.0)(webpack-sources@3.2.3))(rollup@4.22.0)(vite@5.0.8(@types/node@20.16.10)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)):
vite-plugin-inspect@0.8.7(@nuxt/kit@3.13.2(magicast@0.3.5)(rollup@4.22.0)(webpack-sources@3.2.3))(rollup@4.22.0)(vite@6.0.11(@types/node@20.16.10)(jiti@1.21.6)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)(yaml@2.6.1)):
dependencies:
'@antfu/utils': 0.7.10
'@rollup/pluginutils': 5.1.0(rollup@4.22.0)
@ -37485,14 +37503,14 @@ snapshots:
perfect-debounce: 1.0.0
picocolors: 1.1.1
sirv: 2.0.4
vite: 5.0.8(@types/node@20.16.10)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)
vite: 6.0.11(@types/node@20.16.10)(jiti@1.21.6)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)(yaml@2.6.1)
optionalDependencies:
'@nuxt/kit': 3.13.2(magicast@0.3.5)(rollup@4.22.0)(webpack-sources@3.2.3)
transitivePeerDependencies:
- rollup
- supports-color
vite-plugin-vue-inspector@5.2.0(vite@5.0.8(@types/node@20.16.10)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)):
vite-plugin-vue-inspector@5.2.0(vite@6.0.11(@types/node@20.16.10)(jiti@1.21.6)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)(yaml@2.6.1)):
dependencies:
'@babel/core': 7.26.0
'@babel/plugin-proposal-decorators': 7.24.7(@babel/core@7.26.0)
@ -37503,23 +37521,10 @@ snapshots:
'@vue/compiler-dom': 3.5.6
kolorist: 1.8.0
magic-string: 0.30.17
vite: 5.0.8(@types/node@20.16.10)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)
vite: 6.0.11(@types/node@20.16.10)(jiti@1.21.6)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)(yaml@2.6.1)
transitivePeerDependencies:
- supports-color
vite@5.0.8(@types/node@20.16.10)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0):
dependencies:
esbuild: 0.19.5
postcss: 8.4.38
rollup: 4.22.0
optionalDependencies:
'@types/node': 20.16.10
fsevents: 2.3.3
less: 4.1.3
sass: 1.55.0
stylus: 0.64.0
terser: 5.37.0
vite@5.4.11(@types/node@20.16.10)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0):
dependencies:
esbuild: 0.21.5
@ -37533,6 +37538,21 @@ snapshots:
stylus: 0.64.0
terser: 5.37.0
vite@6.0.11(@types/node@20.16.10)(jiti@1.21.6)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)(yaml@2.6.1):
dependencies:
esbuild: 0.24.2
postcss: 8.4.49
rollup: 4.30.1
optionalDependencies:
'@types/node': 20.16.10
fsevents: 2.3.3
jiti: 1.21.6
less: 4.1.3
sass: 1.55.0
stylus: 0.64.0
terser: 5.37.0
yaml: 2.6.1
vite@6.0.7(@types/node@20.16.10)(jiti@1.21.6)(less@4.2.1)(sass@1.83.1)(stylus@0.64.0)(terser@5.37.0)(yaml@2.6.1):
dependencies:
esbuild: 0.24.2
@ -37548,10 +37568,10 @@ snapshots:
terser: 5.37.0
yaml: 2.6.1
vitest@3.0.5(@types/debug@4.1.12)(@types/node@20.16.10)(jsdom@20.0.3(bufferutil@4.0.7))(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0):
vitest@3.0.5(@types/debug@4.1.12)(@types/node@20.16.10)(jiti@1.21.6)(jsdom@20.0.3(bufferutil@4.0.7))(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)(yaml@2.6.1):
dependencies:
'@vitest/expect': 3.0.5
'@vitest/mocker': 3.0.5(vite@5.0.8(@types/node@20.16.10)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0))
'@vitest/mocker': 3.0.5(vite@5.4.11(@types/node@20.16.10)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0))
'@vitest/pretty-format': 3.0.5
'@vitest/runner': 3.0.5
'@vitest/snapshot': 3.0.5
@ -37567,22 +37587,26 @@ snapshots:
tinyexec: 0.3.2
tinypool: 1.0.2
tinyrainbow: 2.0.0
vite: 5.0.8(@types/node@20.16.10)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)
vite-node: 3.0.5(@types/node@20.16.10)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)
vite: 5.4.11(@types/node@20.16.10)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)
vite-node: 3.0.5(@types/node@20.16.10)(jiti@1.21.6)(less@4.1.3)(sass@1.55.0)(stylus@0.64.0)(terser@5.37.0)(yaml@2.6.1)
why-is-node-running: 2.3.0
optionalDependencies:
'@types/debug': 4.1.12
'@types/node': 20.16.10
jsdom: 20.0.3(bufferutil@4.0.7)
transitivePeerDependencies:
- jiti
- less
- lightningcss
- msw
- sass
- sass-embedded
- stylus
- sugarss
- supports-color
- terser
- tsx
- yaml
vlq@1.0.1: {}