From c1ebcb9129b23ee0146de531db572b982f969c62 Mon Sep 17 00:00:00 2001 From: Colum Ferry Date: Tue, 11 Feb 2025 16:28:23 +0000 Subject: [PATCH] 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 --- docs/generated/manifests/nx-api.json | 30 +++ docs/generated/packages-metadata.json | 30 +++ .../packages/vite/generators/init.json | 7 + .../migrations/20.5.0-package-updates.json | 15 ++ .../update-20-5-0-install-jiti.json | 12 + ...date-20-5-0-update-resolve-conditions.json | 12 + e2e/vite/src/vite-legacy.test.ts | 4 +- package.json | 2 +- .../__snapshots__/application.spec.ts.snap | 6 +- .../__snapshots__/application.spec.ts.snap | 12 +- .../application.legacy.spec.ts.snap | 4 +- .../__snapshots__/application.spec.ts.snap | 24 +- .../__snapshots__/library.spec.ts.snap | 15 +- .../src/generators/library/library.spec.ts | 6 +- .../application.impl.spec.ts.snap | 27 +- .../tests/routes/_index.spec.tsx__tmpl__ | 5 +- .../lib/update-unit-test-config.ts | 2 + .../__snapshots__/library.impl.spec.ts.snap | 9 +- .../storybook-configuration.impl.spec.ts.snap | 6 +- packages/remix/src/utils/versions.ts | 1 + packages/vite/migrations.json | 23 ++ packages/vite/package.json | 2 +- .../__snapshots__/configuration.spec.ts.snap | 32 +-- .../init/__snapshots__/init.spec.ts.snap | 3 +- .../vite/src/generators/init/lib/utils.ts | 10 +- packages/vite/src/generators/init/schema.d.ts | 1 + packages/vite/src/generators/init/schema.json | 7 + .../vitest/__snapshots__/vitest.spec.ts.snap | 24 +- .../src/generators/vitest/vitest-generator.ts | 7 + .../update-vite-config.spec.ts.snap | 10 +- .../update-17-2-0/lib/edit-test-config.ts | 4 +- .../migrations/update-20-5-0/install-jiti.md | 6 + .../update-20-5-0/install-jiti.spec.ts | 13 + .../migrations/update-20-5-0/install-jiti.ts | 14 + .../update-resolve-conditions.md | 49 ++++ .../update-resolve-conditions.spec.ts | 252 ++++++++++++++++++ .../update-resolve-conditions.ts | 86 ++++++ .../vite/src/utils/generator-utils.spec.ts | 10 +- packages/vite/src/utils/generator-utils.ts | 10 +- packages/vite/src/utils/versions.ts | 6 +- .../vite/src/utils/vite-config-edit-utils.ts | 19 +- .../__snapshots__/application.spec.ts.snap | 21 +- .../application/application.spec.ts | 6 +- .../__snapshots__/library.spec.ts.snap | 15 +- .../src/generators/library/library.spec.ts | 6 +- .../src/generators/preset/preset.spec.ts | 18 +- pnpm-lock.yaml | 224 +++++++++------- 47 files changed, 868 insertions(+), 239 deletions(-) create mode 100644 docs/generated/packages/vite/migrations/20.5.0-package-updates.json create mode 100644 docs/generated/packages/vite/migrations/update-20-5-0-install-jiti.json create mode 100644 docs/generated/packages/vite/migrations/update-20-5-0-update-resolve-conditions.json create mode 100644 packages/vite/src/migrations/update-20-5-0/install-jiti.md create mode 100644 packages/vite/src/migrations/update-20-5-0/install-jiti.spec.ts create mode 100644 packages/vite/src/migrations/update-20-5-0/install-jiti.ts create mode 100644 packages/vite/src/migrations/update-20-5-0/update-resolve-conditions.md create mode 100644 packages/vite/src/migrations/update-20-5-0/update-resolve-conditions.spec.ts create mode 100644 packages/vite/src/migrations/update-20-5-0/update-resolve-conditions.ts diff --git a/docs/generated/manifests/nx-api.json b/docs/generated/manifests/nx-api.json index 9d9b6fa143..9d2dae924e 100644 --- a/docs/generated/manifests/nx-api.json +++ b/docs/generated/manifests/nx-api.json @@ -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", diff --git a/docs/generated/packages-metadata.json b/docs/generated/packages-metadata.json index 5ccc4460a6..36ac1e1dbe 100644 --- a/docs/generated/packages-metadata.json +++ b/docs/generated/packages-metadata.json @@ -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", diff --git a/docs/generated/packages/vite/generators/init.json b/docs/generated/packages/vite/generators/init.json index be270157d4..4d4d0856d9 100644 --- a/docs/generated/packages/vite/generators/init.json +++ b/docs/generated/packages/vite/generators/init.json @@ -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": [] diff --git a/docs/generated/packages/vite/migrations/20.5.0-package-updates.json b/docs/generated/packages/vite/migrations/20.5.0-package-updates.json new file mode 100644 index 0000000000..4ba5f8c6a6 --- /dev/null +++ b/docs/generated/packages/vite/migrations/20.5.0-package-updates.json @@ -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" +} diff --git a/docs/generated/packages/vite/migrations/update-20-5-0-install-jiti.json b/docs/generated/packages/vite/migrations/update-20-5-0-install-jiti.json new file mode 100644 index 0000000000..e06cc5fa68 --- /dev/null +++ b/docs/generated/packages/vite/migrations/update-20-5-0-install-jiti.json @@ -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" +} diff --git a/docs/generated/packages/vite/migrations/update-20-5-0-update-resolve-conditions.json b/docs/generated/packages/vite/migrations/update-20-5-0-update-resolve-conditions.json new file mode 100644 index 0000000000..dc89027aef --- /dev/null +++ b/docs/generated/packages/vite/migrations/update-20-5-0-update-resolve-conditions.json @@ -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" +} diff --git a/e2e/vite/src/vite-legacy.test.ts b/e2e/vite/src/vite-legacy.test.ts index 9eb5213a39..a34f9f900c 100644 --- a/e2e/vite/src/vite-legacy.test.ts +++ b/e2e/vite/src/vite-legacy.test.ts @@ -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', () => { diff --git a/package.json b/package.json index d22dab5e4c..ec3600d5f2 100644 --- a/package.json +++ b/package.json @@ -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", diff --git a/packages/angular/src/generators/application/__snapshots__/application.spec.ts.snap b/packages/angular/src/generators/application/__snapshots__/application.spec.ts.snap index a9bbfcec9e..85d9bb9b62 100644 --- a/packages/angular/src/generators/application/__snapshots__/application.spec.ts.snap +++ b/packages/angular/src/generators/application/__snapshots__/application.spec.ts.snap @@ -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, }, }, -}); +})); " `; diff --git a/packages/nuxt/src/generators/application/__snapshots__/application.spec.ts.snap b/packages/nuxt/src/generators/application/__snapshots__/application.spec.ts.snap index 5dc291382d..629200e500 100644 --- a/packages/nuxt/src/generators/application/__snapshots__/application.spec.ts.snap +++ b/packages/nuxt/src/generators/application/__snapshots__/application.spec.ts.snap @@ -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, }, }, -}); +})); " `; diff --git a/packages/react/src/generators/application/__snapshots__/application.legacy.spec.ts.snap b/packages/react/src/generators/application/__snapshots__/application.legacy.spec.ts.snap index d84e42d4d5..e333edf1b0 100644 --- a/packages/react/src/generators/application/__snapshots__/application.legacy.spec.ts.snap +++ b/packages/react/src/generators/application/__snapshots__/application.legacy.spec.ts.snap @@ -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, }, }, -}); +})); " `; diff --git a/packages/react/src/generators/application/__snapshots__/application.spec.ts.snap b/packages/react/src/generators/application/__snapshots__/application.spec.ts.snap index 8a820d76fa..1d4153440e 100644 --- a/packages/react/src/generators/application/__snapshots__/application.spec.ts.snap +++ b/packages/react/src/generators/application/__snapshots__/application.spec.ts.snap @@ -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, }, }, -}); +})); " `; diff --git a/packages/react/src/generators/library/__snapshots__/library.spec.ts.snap b/packages/react/src/generators/library/__snapshots__/library.spec.ts.snap index 4b3950ce4d..5373769439 100644 --- a/packages/react/src/generators/library/__snapshots__/library.spec.ts.snap +++ b/packages/react/src/generators/library/__snapshots__/library.spec.ts.snap @@ -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, }, }, -}); +})); " `; diff --git a/packages/react/src/generators/library/library.spec.ts b/packages/react/src/generators/library/library.spec.ts index 3362b353d3..5e32e1b939 100644 --- a/packages/react/src/generators/library/library.spec.ts +++ b/packages/react/src/generators/library/library.spec.ts @@ -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, } }, - }); + })); " `); diff --git a/packages/remix/src/generators/application/__snapshots__/application.impl.spec.ts.snap b/packages/remix/src/generators/application/__snapshots__/application.impl.spec.ts.snap index 8b808f47da..d69fd03e13 100644 --- a/packages/remix/src/generators/application/__snapshots__/application.impl.spec.ts.snap +++ b/packages/remix/src/generators/application/__snapshots__/application.impl.spec.ts.snap @@ -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(); - 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(); - 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(); - await waitFor(() => screen.findByText('Hello there,')); + await screen.findByText('Hello there,'); }); " `; diff --git a/packages/remix/src/generators/application/files/common/tests/routes/_index.spec.tsx__tmpl__ b/packages/remix/src/generators/application/files/common/tests/routes/_index.spec.tsx__tmpl__ index adf96ace84..e9ff4d362e 100644 --- a/packages/remix/src/generators/application/files/common/tests/routes/_index.spec.tsx__tmpl__ +++ b/packages/remix/src/generators/application/files/common/tests/routes/_index.spec.tsx__tmpl__ @@ -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(); - await waitFor(() => screen.findByText('Hello there,')); + await screen.findByText('Hello there,'); }); diff --git a/packages/remix/src/generators/application/lib/update-unit-test-config.ts b/packages/remix/src/generators/application/lib/update-unit-test-config.ts index 478c3b9414..4f30bec6d4 100644 --- a/packages/remix/src/generators/application/lib/update-unit-test-config.ts +++ b/packages/remix/src/generators/application/lib/update-unit-test-config.ts @@ -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), diff --git a/packages/remix/src/generators/library/__snapshots__/library.impl.spec.ts.snap b/packages/remix/src/generators/library/__snapshots__/library.impl.spec.ts.snap index 9d626fb564..147e455efa 100644 --- a/packages/remix/src/generators/library/__snapshots__/library.impl.spec.ts.snap +++ b/packages/remix/src/generators/library/__snapshots__/library.impl.spec.ts.snap @@ -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, + }, }, -}); +})); " `; diff --git a/packages/remix/src/generators/storybook-configuration/__snapshots__/storybook-configuration.impl.spec.ts.snap b/packages/remix/src/generators/storybook-configuration/__snapshots__/storybook-configuration.impl.spec.ts.snap index f401250a1b..6ffe05a24c 100644 --- a/packages/remix/src/generators/storybook-configuration/__snapshots__/storybook-configuration.impl.spec.ts.snap +++ b/packages/remix/src/generators/storybook-configuration/__snapshots__/storybook-configuration.impl.spec.ts.snap @@ -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, }, }, -}); +})); " `; diff --git a/packages/remix/src/utils/versions.ts b/packages/remix/src/utils/versions.ts index 718534f0fd..fb96b49d17 100644 --- a/packages/remix/src/utils/versions.ts +++ b/packages/remix/src/utils/versions.ts @@ -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'; diff --git a/packages/vite/migrations.json b/packages/vite/migrations.json index 3fa187b455..ca85137f0a 100644 --- a/packages/vite/migrations.json +++ b/packages/vite/migrations.json @@ -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": { diff --git a/packages/vite/package.json b/packages/vite/package.json index 44362a96cf..bd0a54baa5 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -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": { diff --git a/packages/vite/src/generators/configuration/__snapshots__/configuration.spec.ts.snap b/packages/vite/src/generators/configuration/__snapshots__/configuration.spec.ts.snap index 86c1633d33..d7df311b91 100644 --- a/packages/vite/src/generators/configuration/__snapshots__/configuration.spec.ts.snap +++ b/packages/vite/src/generators/configuration/__snapshots__/configuration.spec.ts.snap @@ -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, }, }, -}); +})); " `; diff --git a/packages/vite/src/generators/init/__snapshots__/init.spec.ts.snap b/packages/vite/src/generators/init/__snapshots__/init.spec.ts.snap index 4a286cb804..b335f5b881 100644 --- a/packages/vite/src/generators/init/__snapshots__/init.spec.ts.snap +++ b/packages/vite/src/generators/init/__snapshots__/init.spec.ts.snap @@ -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", diff --git a/packages/vite/src/generators/init/lib/utils.ts b/packages/vite/src/generators/init/lib/utils.ts index 93254e1bfe..c9fc2de07e 100644 --- a/packages/vite/src/generators/init/lib/utils.ts +++ b/packages/vite/src/generators/init/lib/utils.ts @@ -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 diff --git a/packages/vite/src/generators/init/schema.d.ts b/packages/vite/src/generators/init/schema.d.ts index d68405d006..3c52a303c5 100644 --- a/packages/vite/src/generators/init/schema.d.ts +++ b/packages/vite/src/generators/init/schema.d.ts @@ -6,4 +6,5 @@ export interface InitGeneratorSchema { updatePackageScripts?: boolean; addPlugin?: boolean; vitestOnly?: boolean; + useViteV5?: boolean; } diff --git a/packages/vite/src/generators/init/schema.json b/packages/vite/src/generators/init/schema.json index 353c9e261d..3d4bf413ee 100644 --- a/packages/vite/src/generators/init/schema.json +++ b/packages/vite/src/generators/init/schema.json @@ -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 } } } diff --git a/packages/vite/src/generators/vitest/__snapshots__/vitest.spec.ts.snap b/packages/vite/src/generators/vitest/__snapshots__/vitest.spec.ts.snap index 6c58da0181..bde5bf558f 100644 --- a/packages/vite/src/generators/vitest/__snapshots__/vitest.spec.ts.snap +++ b/packages/vite/src/generators/vitest/__snapshots__/vitest.spec.ts.snap @@ -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, }, }, -}); +})); " `; diff --git a/packages/vite/src/generators/vitest/vitest-generator.ts b/packages/vite/src/generators/vitest/vitest-generator.ts index c8de1bbc6d..069d55611d 100644 --- a/packages/vite/src/generators/vitest/vitest-generator.ts +++ b/packages/vite/src/generators/vitest/vitest-generator.ts @@ -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 })); diff --git a/packages/vite/src/migrations/update-17-2-0/__snapshots__/update-vite-config.spec.ts.snap b/packages/vite/src/migrations/update-17-2-0/__snapshots__/update-vite-config.spec.ts.snap index 0493e2cfcb..8961c89f9d 100644 --- a/packages/vite/src/migrations/update-17-2-0/__snapshots__/update-vite-config.spec.ts.snap +++ b/packages/vite/src/migrations/update-17-2-0/__snapshots__/update-vite-config.spec.ts.snap @@ -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: { diff --git a/packages/vite/src/migrations/update-17-2-0/lib/edit-test-config.ts b/packages/vite/src/migrations/update-17-2-0/lib/edit-test-config.ts index 9597572a11..312f6a05ea 100644 --- a/packages/vite/src/migrations/update-17-2-0/lib/edit-test-config.ts +++ b/packages/vite/src/migrations/update-17-2-0/lib/edit-test-config.ts @@ -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, },`, }); } diff --git a/packages/vite/src/migrations/update-20-5-0/install-jiti.md b/packages/vite/src/migrations/update-20-5-0/install-jiti.md new file mode 100644 index 0000000000..a9cfa55a36 --- /dev/null +++ b/packages/vite/src/migrations/update-20-5-0/install-jiti.md @@ -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) diff --git a/packages/vite/src/migrations/update-20-5-0/install-jiti.spec.ts b/packages/vite/src/migrations/update-20-5-0/install-jiti.spec.ts new file mode 100644 index 0000000000..3042b50d0c --- /dev/null +++ b/packages/vite/src/migrations/update-20-5-0/install-jiti.spec.ts @@ -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"`); + }); +}); diff --git a/packages/vite/src/migrations/update-20-5-0/install-jiti.ts b/packages/vite/src/migrations/update-20-5-0/install-jiti.ts new file mode 100644 index 0000000000..c03b326ab1 --- /dev/null +++ b/packages/vite/src/migrations/update-20-5-0/install-jiti.ts @@ -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; +} diff --git a/packages/vite/src/migrations/update-20-5-0/update-resolve-conditions.md b/packages/vite/src/migrations/update-20-5-0/update-resolve-conditions.md new file mode 100644 index 0000000000..3271d235d0 --- /dev/null +++ b/packages/vite/src/migrations/update-20-5-0/update-resolve-conditions.md @@ -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 %} diff --git a/packages/vite/src/migrations/update-20-5-0/update-resolve-conditions.spec.ts b/packages/vite/src/migrations/update-20-5-0/update-resolve-conditions.spec.ts new file mode 100644 index 0000000000..d555f98619 --- /dev/null +++ b/packages/vite/src/migrations/update-20-5-0/update-resolve-conditions.spec.ts @@ -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()], + }); + " + `); + }); +}); diff --git a/packages/vite/src/migrations/update-20-5-0/update-resolve-conditions.ts b/packages/vite/src/migrations/update-20-5-0/update-resolve-conditions.ts new file mode 100644 index 0000000000..11ad3d68d3 --- /dev/null +++ b/packages/vite/src/migrations/update-20-5-0/update-resolve-conditions.ts @@ -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); +} diff --git a/packages/vite/src/utils/generator-utils.spec.ts b/packages/vite/src/utils/generator-utils.spec.ts index 81921cdcec..6e27a735c9 100644 --- a/packages/vite/src/utils/generator-utils.spec.ts +++ b/packages/vite/src/utils/generator-utils.spec.ts @@ -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, }, }, - }); + })); " `); }); diff --git a/packages/vite/src/utils/generator-utils.ts b/packages/vite/src/utils/generator-utils.ts index 1087bbfc17..e180391479 100644 --- a/packages/vite/src/utils/generator-utils.ts +++ b/packages/vite/src/utils/generator-utils.ts @@ -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'}'`, }, }; diff --git a/packages/vite/src/utils/versions.ts b/packages/vite/src/utils/versions.ts index 116fab57d5..64d03ec899 100644 --- a/packages/vite/src/utils/versions.ts +++ b/packages/vite/src/utils/versions.ts @@ -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'; diff --git a/packages/vite/src/utils/vite-config-edit-utils.ts b/packages/vite/src/utils/vite-config-edit-utils.ts index 8aeb413f74..ac817c01c8 100644 --- a/packages/vite/src/utils/vite-config-edit-utils.ts +++ b/packages/vite/src/utils/vite-config-edit-utils.ts @@ -99,9 +99,22 @@ function handleBuildOrTestNode( configContentObject )) { // NOTE: Watch for formatting. - updatedPropsString += ` '${propName}': ${JSON.stringify( - propValue - )},\n`; + 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} }`; diff --git a/packages/vue/src/generators/application/__snapshots__/application.spec.ts.snap b/packages/vue/src/generators/application/__snapshots__/application.spec.ts.snap index 17512f4489..0ab2b213c6 100644 --- a/packages/vue/src/generators/application/__snapshots__/application.spec.ts.snap +++ b/packages/vue/src/generators/application/__snapshots__/application.spec.ts.snap @@ -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, }, }, -}); +})); " `; diff --git a/packages/vue/src/generators/application/application.spec.ts b/packages/vue/src/generators/application/application.spec.ts index efcd684f89..a539af3b54 100644 --- a/packages/vue/src/generators/application/application.spec.ts +++ b/packages/vue/src/generators/application/application.spec.ts @@ -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, }, }, - }); + })); " `); diff --git a/packages/vue/src/generators/library/__snapshots__/library.spec.ts.snap b/packages/vue/src/generators/library/__snapshots__/library.spec.ts.snap index 24adca1207..2a49000925 100644 --- a/packages/vue/src/generators/library/__snapshots__/library.spec.ts.snap +++ b/packages/vue/src/generators/library/__snapshots__/library.spec.ts.snap @@ -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", }, diff --git a/packages/vue/src/generators/library/library.spec.ts b/packages/vue/src/generators/library/library.spec.ts index ee0b2c4b92..19b071d0bf 100644 --- a/packages/vue/src/generators/library/library.spec.ts +++ b/packages/vue/src/generators/library/library.spec.ts @@ -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, }, }, - }); + })); " `); diff --git a/packages/workspace/src/generators/preset/preset.spec.ts b/packages/workspace/src/generators/preset/preset.spec.ts index e39f75c796..944fa60074 100644 --- a/packages/workspace/src/generators/preset/preset.spec.ts +++ b/packages/workspace/src/generators/preset/preset.spec.ts @@ -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, }, }, - }); + })); " `); }); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2187c106ae..37d1aa1988 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -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: {}