From b7881700180b70c9b49301b2ab342d31ce92c818 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Mon, 3 Jun 2024 21:14:56 +0100 Subject: [PATCH 001/580] ci: use commit hash at time of release triggger --- .github/workflows/release-pr.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release-pr.yml b/.github/workflows/release-pr.yml index 7c0bbc3a86..5f128f7df6 100644 --- a/.github/workflows/release-pr.yml +++ b/.github/workflows/release-pr.yml @@ -31,7 +31,7 @@ jobs: - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 with: - ref: refs/pull/${{ github.event.issue.number }}/merge + ref: ${{ github.event.issue.pull_request.head.sha }} fetch-depth: 0 - run: corepack enable From b6d797591d4702af354d4f8f59b601bac53dc7e0 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Mon, 3 Jun 2024 21:15:54 +0100 Subject: [PATCH 002/580] build(ui-templates): directly copy templates on build (#27430) --- packages/nuxt/.gitignore | 6 ++++++ packages/nuxt/src/app/components/error-404.vue | 1 - packages/nuxt/src/app/components/error-500.vue | 1 - packages/nuxt/src/app/components/error-dev.vue | 1 - packages/nuxt/src/app/components/welcome.vue | 1 - packages/nuxt/src/core/runtime/nitro/error-500.ts | 1 - packages/nuxt/src/core/runtime/nitro/error-dev.ts | 1 - packages/ui-templates/lib/render.ts | 10 ++++++++++ 8 files changed, 16 insertions(+), 6 deletions(-) create mode 100644 packages/nuxt/.gitignore delete mode 120000 packages/nuxt/src/app/components/error-404.vue delete mode 120000 packages/nuxt/src/app/components/error-500.vue delete mode 120000 packages/nuxt/src/app/components/error-dev.vue delete mode 120000 packages/nuxt/src/app/components/welcome.vue delete mode 120000 packages/nuxt/src/core/runtime/nitro/error-500.ts delete mode 120000 packages/nuxt/src/core/runtime/nitro/error-dev.ts diff --git a/packages/nuxt/.gitignore b/packages/nuxt/.gitignore new file mode 100644 index 0000000000..95c0486757 --- /dev/null +++ b/packages/nuxt/.gitignore @@ -0,0 +1,6 @@ +src/app/components/error-404.vue +src/app/components/error-500.vue +src/app/components/error-dev.vue +src/app/components/welcome.vue +src/core/runtime/nitro/error-500.ts +src/core/runtime/nitro/error-dev.ts diff --git a/packages/nuxt/src/app/components/error-404.vue b/packages/nuxt/src/app/components/error-404.vue deleted file mode 120000 index c2b73ea4bf..0000000000 --- a/packages/nuxt/src/app/components/error-404.vue +++ /dev/null @@ -1 +0,0 @@ -../../../../ui-templates/dist/templates/error-404.vue \ No newline at end of file diff --git a/packages/nuxt/src/app/components/error-500.vue b/packages/nuxt/src/app/components/error-500.vue deleted file mode 120000 index 8d3d1c8b9d..0000000000 --- a/packages/nuxt/src/app/components/error-500.vue +++ /dev/null @@ -1 +0,0 @@ -../../../../ui-templates/dist/templates/error-500.vue \ No newline at end of file diff --git a/packages/nuxt/src/app/components/error-dev.vue b/packages/nuxt/src/app/components/error-dev.vue deleted file mode 120000 index b793df3c2f..0000000000 --- a/packages/nuxt/src/app/components/error-dev.vue +++ /dev/null @@ -1 +0,0 @@ -../../../../ui-templates/dist/templates/error-dev.vue \ No newline at end of file diff --git a/packages/nuxt/src/app/components/welcome.vue b/packages/nuxt/src/app/components/welcome.vue deleted file mode 120000 index e2e9ab51e4..0000000000 --- a/packages/nuxt/src/app/components/welcome.vue +++ /dev/null @@ -1 +0,0 @@ -../../../../ui-templates/dist/templates/welcome.vue \ No newline at end of file diff --git a/packages/nuxt/src/core/runtime/nitro/error-500.ts b/packages/nuxt/src/core/runtime/nitro/error-500.ts deleted file mode 120000 index 7c4f86d19f..0000000000 --- a/packages/nuxt/src/core/runtime/nitro/error-500.ts +++ /dev/null @@ -1 +0,0 @@ -../../../../../ui-templates/dist/templates/error-500.ts \ No newline at end of file diff --git a/packages/nuxt/src/core/runtime/nitro/error-dev.ts b/packages/nuxt/src/core/runtime/nitro/error-dev.ts deleted file mode 120000 index b14fdaa625..0000000000 --- a/packages/nuxt/src/core/runtime/nitro/error-dev.ts +++ /dev/null @@ -1 +0,0 @@ -../../../../../ui-templates/dist/templates/error-dev.ts \ No newline at end of file diff --git a/packages/ui-templates/lib/render.ts b/packages/ui-templates/lib/render.ts index 34ba7c189c..27f0c3bf4a 100644 --- a/packages/ui-templates/lib/render.ts +++ b/packages/ui-templates/lib/render.ts @@ -1,5 +1,6 @@ import { fileURLToPath } from 'node:url' import { readFileSync, rmdirSync, unlinkSync, writeFileSync } from 'node:fs' +import { copyFile } from 'node:fs/promises' import { basename, dirname, join, resolve } from 'pathe' import type { Plugin } from 'vite' // @ts-expect-error https://github.com/GoogleChromeLabs/critters/pull/151 @@ -167,6 +168,15 @@ export const RenderPlugin = () => { unlinkSync(fileName) rmdirSync(dirname(fileName)) } + + // we manually copy files across rather than using symbolic links for better windows support + const nuxtRoot = r('../nuxt') + for (const file of ['error-404.vue', 'error-500.vue', 'error-dev.vue', 'welcome.vue']) { + await copyFile(r(`dist/templates/${file}`), join(nuxtRoot, 'src/app/components', file)) + } + for (const file of ['error-500.ts', 'error-dev.ts']) { + await copyFile(r(`dist/templates/${file}`), join(nuxtRoot, 'src/core/runtime/nitro', file)) + } }, } } From 2afe56c92ca60661fabfb2099d136277c3581183 Mon Sep 17 00:00:00 2001 From: Julien Huang Date: Thu, 6 Jun 2024 13:40:25 +0200 Subject: [PATCH 003/580] chore: build `ui-templates` when stubbing packages (#27446) --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 6dd9b42cd8..78b806b8f8 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "build:stub": "pnpm dev:prepare", "cleanup": "rimraf 'packages/**/node_modules' 'playground/node_modules' 'node_modules'", "dev": "pnpm play", - "dev:prepare": "pnpm --filter './packages/**' prepack --stub", + "dev:prepare": "pnpm --filter './packages/**' prepack --stub && pnpm --filter './packages/ui-templates' build", "lint": "eslint . --cache", "lint:fix": "eslint . --cache --fix", "lint:docs": "markdownlint ./docs && case-police 'docs/**/*.md' *.md", From c1565e2d20ef50972e9eb65fb370dc26346c3880 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 6 Jun 2024 13:47:10 +0100 Subject: [PATCH 004/580] chore(deps): update dependency @vitejs/plugin-vue-jsx to v4 (main) (#27407) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- packages/schema/package.json | 2 +- packages/vite/package.json | 2 +- pnpm-lock.yaml | 407 ++++++++++++++++++++++++++++++++++- 3 files changed, 398 insertions(+), 13 deletions(-) diff --git a/packages/schema/package.json b/packages/schema/package.json index df4e1fa7af..c4bb2ea038 100644 --- a/packages/schema/package.json +++ b/packages/schema/package.json @@ -41,7 +41,7 @@ "@types/sass-loader": "8.0.8", "@unhead/schema": "1.9.11", "@vitejs/plugin-vue": "5.0.4", - "@vitejs/plugin-vue-jsx": "3.1.0", + "@vitejs/plugin-vue-jsx": "4.0.0", "@vue/compiler-core": "3.4.27", "@vue/compiler-sfc": "3.4.27", "@vue/language-core": "2.0.19", diff --git a/packages/vite/package.json b/packages/vite/package.json index 3ce924d64a..6cccb46556 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -35,7 +35,7 @@ "@nuxt/kit": "workspace:*", "@rollup/plugin-replace": "^5.0.5", "@vitejs/plugin-vue": "^5.0.4", - "@vitejs/plugin-vue-jsx": "^3.1.0", + "@vitejs/plugin-vue-jsx": "^4.0.0", "autoprefixer": "^10.4.19", "clear": "^0.1.0", "consola": "^3.2.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 92f0a338c1..83950f9759 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -504,8 +504,8 @@ importers: specifier: 5.0.4 version: 5.0.4(vite@5.2.12(@types/node@20.12.13)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)) '@vitejs/plugin-vue-jsx': - specifier: 3.1.0 - version: 3.1.0(vite@5.2.12(@types/node@20.12.13)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)) + specifier: 4.0.0 + version: 4.0.0(vite@5.2.12(@types/node@20.12.13)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)) '@vue/compiler-core': specifier: 3.4.27 version: 3.4.27 @@ -618,8 +618,8 @@ importers: specifier: ^5.0.4 version: 5.0.4(vite@5.2.12(@types/node@20.12.13)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)) '@vitejs/plugin-vue-jsx': - specifier: ^3.1.0 - version: 3.1.0(vite@5.2.12(@types/node@20.12.13)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)) + specifier: ^4.0.0 + version: 4.0.0(vite@5.2.12(@types/node@20.12.13)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)) autoprefixer: specifier: ^10.4.19 version: 10.4.19(postcss@8.4.38) @@ -998,109 +998,220 @@ packages: resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==} engines: {node: '>=6.9.0'} + '@babel/code-frame@7.24.7': + resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} + engines: {node: '>=6.9.0'} + '@babel/compat-data@7.23.5': resolution: {integrity: sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==} engines: {node: '>=6.9.0'} + '@babel/compat-data@7.24.7': + resolution: {integrity: sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw==} + engines: {node: '>=6.9.0'} + '@babel/core@7.24.5': resolution: {integrity: sha512-tVQRucExLQ02Boi4vdPp49svNGcfL2GhdTCT9aldhXgCJVAI21EtRfBettiuLUwce/7r6bFdgs6JFkcdTiFttA==} engines: {node: '>=6.9.0'} + '@babel/core@7.24.7': + resolution: {integrity: sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g==} + engines: {node: '>=6.9.0'} + '@babel/generator@7.24.5': resolution: {integrity: sha512-x32i4hEXvr+iI0NEoEfDKzlemF8AmtOP8CcrRaEcpzysWuoEb1KknpcvMsHKPONoKZiDuItklgWhB18xEhr9PA==} engines: {node: '>=6.9.0'} + '@babel/generator@7.24.7': + resolution: {integrity: sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==} + engines: {node: '>=6.9.0'} + '@babel/helper-annotate-as-pure@7.22.5': resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} engines: {node: '>=6.9.0'} + '@babel/helper-annotate-as-pure@7.24.7': + resolution: {integrity: sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==} + engines: {node: '>=6.9.0'} + '@babel/helper-compilation-targets@7.23.6': resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==} engines: {node: '>=6.9.0'} + '@babel/helper-compilation-targets@7.24.7': + resolution: {integrity: sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg==} + engines: {node: '>=6.9.0'} + '@babel/helper-create-class-features-plugin@7.24.1': resolution: {integrity: sha512-1yJa9dX9g//V6fDebXoEfEsxkZHk3Hcbm+zLhyu6qVgYFLvmTALTeV+jNU9e5RnYtioBrGEOdoI2joMSNQ/+aA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 + '@babel/helper-create-class-features-plugin@7.24.7': + resolution: {integrity: sha512-kTkaDl7c9vO80zeX1rJxnuRpEsD5tA81yh11X1gQo+PhSti3JS+7qeZo9U4RHobKRiFPKaGK3svUAeb8D0Q7eg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@babel/helper-environment-visitor@7.22.20': resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} engines: {node: '>=6.9.0'} + '@babel/helper-environment-visitor@7.24.7': + resolution: {integrity: sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==} + engines: {node: '>=6.9.0'} + '@babel/helper-function-name@7.23.0': resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} engines: {node: '>=6.9.0'} + '@babel/helper-function-name@7.24.7': + resolution: {integrity: sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==} + engines: {node: '>=6.9.0'} + '@babel/helper-hoist-variables@7.22.5': resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} engines: {node: '>=6.9.0'} + '@babel/helper-hoist-variables@7.24.7': + resolution: {integrity: sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==} + engines: {node: '>=6.9.0'} + '@babel/helper-member-expression-to-functions@7.23.0': resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==} engines: {node: '>=6.9.0'} + '@babel/helper-member-expression-to-functions@7.24.7': + resolution: {integrity: sha512-LGeMaf5JN4hAT471eJdBs/GK1DoYIJ5GCtZN/EsL6KUiiDZOvO/eKE11AMZJa2zP4zk4qe9V2O/hxAmkRc8p6w==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-imports@7.22.15': + resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} + engines: {node: '>=6.9.0'} + '@babel/helper-module-imports@7.24.3': resolution: {integrity: sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==} engines: {node: '>=6.9.0'} + '@babel/helper-module-imports@7.24.7': + resolution: {integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==} + engines: {node: '>=6.9.0'} + '@babel/helper-module-transforms@7.24.5': resolution: {integrity: sha512-9GxeY8c2d2mdQUP1Dye0ks3VDyIMS98kt/llQ2nUId8IsWqTF0l1LkSX0/uP7l7MCDrzXS009Hyhe2gzTiGW8A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 + '@babel/helper-module-transforms@7.24.7': + resolution: {integrity: sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@babel/helper-optimise-call-expression@7.22.5': resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} engines: {node: '>=6.9.0'} + '@babel/helper-optimise-call-expression@7.24.7': + resolution: {integrity: sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==} + engines: {node: '>=6.9.0'} + '@babel/helper-plugin-utils@7.24.0': resolution: {integrity: sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==} engines: {node: '>=6.9.0'} + '@babel/helper-plugin-utils@7.24.7': + resolution: {integrity: sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==} + engines: {node: '>=6.9.0'} + '@babel/helper-replace-supers@7.24.1': resolution: {integrity: sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 + '@babel/helper-replace-supers@7.24.7': + resolution: {integrity: sha512-qTAxxBM81VEyoAY0TtLrx1oAEJc09ZK67Q9ljQToqCnA+55eNwCORaxlKyu+rNfX86o8OXRUSNUnrtsAZXM9sg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@babel/helper-simple-access@7.24.5': resolution: {integrity: sha512-uH3Hmf5q5n7n8mz7arjUlDOCbttY/DW4DYhE6FUsjKJ/oYC1kQQUvwEQWxRwUpX9qQKRXeqLwWxrqilMrf32sQ==} engines: {node: '>=6.9.0'} + '@babel/helper-simple-access@7.24.7': + resolution: {integrity: sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==} + engines: {node: '>=6.9.0'} + '@babel/helper-skip-transparent-expression-wrappers@7.22.5': resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} engines: {node: '>=6.9.0'} + '@babel/helper-skip-transparent-expression-wrappers@7.24.7': + resolution: {integrity: sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==} + engines: {node: '>=6.9.0'} + '@babel/helper-split-export-declaration@7.24.5': resolution: {integrity: sha512-5CHncttXohrHk8GWOFCcCl4oRD9fKosWlIRgWm4ql9VYioKm52Mk2xsmoohvm7f3JoiLSM5ZgJuRaf5QZZYd3Q==} engines: {node: '>=6.9.0'} + '@babel/helper-split-export-declaration@7.24.7': + resolution: {integrity: sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==} + engines: {node: '>=6.9.0'} + '@babel/helper-string-parser@7.24.1': resolution: {integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==} engines: {node: '>=6.9.0'} + '@babel/helper-string-parser@7.24.7': + resolution: {integrity: sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==} + engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@7.24.5': resolution: {integrity: sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==} engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@7.24.7': + resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} + engines: {node: '>=6.9.0'} + '@babel/helper-validator-option@7.23.5': resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} engines: {node: '>=6.9.0'} + '@babel/helper-validator-option@7.24.7': + resolution: {integrity: sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==} + engines: {node: '>=6.9.0'} + '@babel/helpers@7.24.5': resolution: {integrity: sha512-CiQmBMMpMQHwM5m01YnrM6imUG1ebgYJ+fAIW4FZe6m4qHTPaRHti+R8cggAwkdz4oXhtO4/K9JWlh+8hIfR2Q==} engines: {node: '>=6.9.0'} + '@babel/helpers@7.24.7': + resolution: {integrity: sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg==} + engines: {node: '>=6.9.0'} + '@babel/highlight@7.24.2': resolution: {integrity: sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==} engines: {node: '>=6.9.0'} + '@babel/highlight@7.24.7': + resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} + engines: {node: '>=6.9.0'} + '@babel/parser@7.24.5': resolution: {integrity: sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==} engines: {node: '>=6.0.0'} hasBin: true + '@babel/parser@7.24.7': + resolution: {integrity: sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==} + engines: {node: '>=6.0.0'} + hasBin: true + '@babel/plugin-proposal-decorators@7.23.2': resolution: {integrity: sha512-eR0gJQc830fJVGz37oKLvt9W9uUIQSAovUl0e9sJ3YeO09dlcoBVYD3CLrjCj4qHdXmfiyTyFt8yeQYSN5fxLg==} engines: {node: '>=6.9.0'} @@ -1136,6 +1247,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-typescript@7.24.7': + resolution: {integrity: sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-modules-commonjs@7.24.1': resolution: {integrity: sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==} engines: {node: '>=6.9.0'} @@ -1148,6 +1265,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-typescript@7.24.7': + resolution: {integrity: sha512-iLD3UNkgx2n/HrjBesVbYX6j0yqn/sJktvbtKKgcaLIQ4bTTQ8obAypc1VpyHPD2y4Phh9zHOaAt8e/L14wCpw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/preset-typescript@7.24.1': resolution: {integrity: sha512-1DBaMmRDpuYQBPWD8Pf/WEwCrtgRHxsZnP4mIy9G/X+hFfbI47Q2G4t1Paakld84+qsk2fSsUPMKg71jkoOOaQ==} engines: {node: '>=6.9.0'} @@ -1166,14 +1289,26 @@ packages: resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==} engines: {node: '>=6.9.0'} + '@babel/template@7.24.7': + resolution: {integrity: sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==} + engines: {node: '>=6.9.0'} + '@babel/traverse@7.24.5': resolution: {integrity: sha512-7aaBLeDQ4zYcUFDUD41lJc1fG8+5IU9DaNSJAgal866FGvmD5EbWQgnEC6kO1gGLsX0esNkfnJSndbTXA3r7UA==} engines: {node: '>=6.9.0'} + '@babel/traverse@7.24.7': + resolution: {integrity: sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==} + engines: {node: '>=6.9.0'} + '@babel/types@7.24.5': resolution: {integrity: sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==} engines: {node: '>=6.9.0'} + '@babel/types@7.24.7': + resolution: {integrity: sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==} + engines: {node: '>=6.9.0'} + '@bcoe/v8-coverage@0.2.3': resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} @@ -2682,9 +2817,9 @@ packages: engines: {node: '>=16'} hasBin: true - '@vitejs/plugin-vue-jsx@3.1.0': - resolution: {integrity: sha512-w9M6F3LSEU5kszVb9An2/MmXNxocAnUb3WhRr8bHlimhDrXNt6n6D2nJQR3UXpGlZHh/EsgouOHCsM8V3Ln+WA==} - engines: {node: ^14.18.0 || >=16.0.0} + '@vitejs/plugin-vue-jsx@4.0.0': + resolution: {integrity: sha512-A+6wL2AdQhDsLsDnY+2v4rRDI1HLJGIMc97a8FURO9tqKsH5QvjWrzsa5DH3NlZsM742W2wODl2fF+bfcTWtXw==} + engines: {node: ^18.0.0 || >=20.0.0} peerDependencies: vite: 5.2.12 vue: 3.4.27 @@ -2758,11 +2893,27 @@ packages: '@vue/babel-helper-vue-transform-on@1.1.5': resolution: {integrity: sha512-SgUymFpMoAyWeYWLAY+MkCK3QEROsiUnfaw5zxOVD/M64KQs8D/4oK6Q5omVA2hnvEOE0SCkH2TZxs/jnnUj7w==} + '@vue/babel-helper-vue-transform-on@1.2.2': + resolution: {integrity: sha512-nOttamHUR3YzdEqdM/XXDyCSdxMA9VizUKoroLX6yTyRtggzQMHXcmwh8a7ZErcJttIBIc9s68a1B8GZ+Dmvsw==} + '@vue/babel-plugin-jsx@1.1.5': resolution: {integrity: sha512-nKs1/Bg9U1n3qSWnsHhCVQtAzI6aQXqua8j/bZrau8ywT1ilXQbK4FwEJGmU8fV7tcpuFvWmmN7TMmV1OBma1g==} peerDependencies: '@babel/core': ^7.0.0-0 + '@vue/babel-plugin-jsx@1.2.2': + resolution: {integrity: sha512-nYTkZUVTu4nhP199UoORePsql0l+wj7v/oyQjtThUVhJl1U+6qHuoVhIvR3bf7eVKjbCK+Cs2AWd7mi9Mpz9rA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + + '@vue/babel-plugin-resolve-type@1.2.2': + resolution: {integrity: sha512-EntyroPwNg5IPVdUJupqs0CFzuf6lUrVvCspmv2J1FITLeGnUCuoGNNk78dgCusxEiYj6RMkTJflGSxk5aIC4A==} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@vue/compiler-core@3.4.27': resolution: {integrity: sha512-E+RyqY24KnyDXsCuQrI+mlcdW3ALND6U7Gqa/+bVwbcpcR3BRRIckFoz7Qyd4TTlnugtwuI7YgjbvsLmxb+yvg==} @@ -7445,8 +7596,15 @@ snapshots: '@babel/highlight': 7.24.2 picocolors: 1.0.0 + '@babel/code-frame@7.24.7': + dependencies: + '@babel/highlight': 7.24.7 + picocolors: 1.0.0 + '@babel/compat-data@7.23.5': {} + '@babel/compat-data@7.24.7': {} + '@babel/core@7.24.5': dependencies: '@ampproject/remapping': 2.3.0 @@ -7467,6 +7625,26 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/core@7.24.7': + dependencies: + '@ampproject/remapping': 2.3.0 + '@babel/code-frame': 7.24.7 + '@babel/generator': 7.24.7 + '@babel/helper-compilation-targets': 7.24.7 + '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.7) + '@babel/helpers': 7.24.7 + '@babel/parser': 7.24.7 + '@babel/template': 7.24.7 + '@babel/traverse': 7.24.7 + '@babel/types': 7.24.7 + convert-source-map: 2.0.0 + debug: 4.3.4 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + '@babel/generator@7.24.5': dependencies: '@babel/types': 7.24.5 @@ -7474,10 +7652,21 @@ snapshots: '@jridgewell/trace-mapping': 0.3.25 jsesc: 2.5.2 + '@babel/generator@7.24.7': + dependencies: + '@babel/types': 7.24.7 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 2.5.2 + '@babel/helper-annotate-as-pure@7.22.5': dependencies: '@babel/types': 7.24.5 + '@babel/helper-annotate-as-pure@7.24.7': + dependencies: + '@babel/types': 7.24.7 + '@babel/helper-compilation-targets@7.23.6': dependencies: '@babel/compat-data': 7.23.5 @@ -7486,6 +7675,14 @@ snapshots: lru-cache: 5.1.1 semver: 6.3.1 + '@babel/helper-compilation-targets@7.24.7': + dependencies: + '@babel/compat-data': 7.24.7 + '@babel/helper-validator-option': 7.24.7 + browserslist: 4.23.0 + lru-cache: 5.1.1 + semver: 6.3.1 + '@babel/helper-create-class-features-plugin@7.24.1(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 @@ -7499,25 +7696,71 @@ snapshots: '@babel/helper-split-export-declaration': 7.24.5 semver: 6.3.1 + '@babel/helper-create-class-features-plugin@7.24.7(@babel/core@7.24.7)': + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-function-name': 7.24.7 + '@babel/helper-member-expression-to-functions': 7.24.7 + '@babel/helper-optimise-call-expression': 7.24.7 + '@babel/helper-replace-supers': 7.24.7(@babel/core@7.24.7) + '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 + '@babel/helper-split-export-declaration': 7.24.7 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + '@babel/helper-environment-visitor@7.22.20': {} + '@babel/helper-environment-visitor@7.24.7': + dependencies: + '@babel/types': 7.24.7 + '@babel/helper-function-name@7.23.0': dependencies: '@babel/template': 7.24.0 '@babel/types': 7.24.5 + '@babel/helper-function-name@7.24.7': + dependencies: + '@babel/template': 7.24.7 + '@babel/types': 7.24.7 + '@babel/helper-hoist-variables@7.22.5': dependencies: '@babel/types': 7.24.5 + '@babel/helper-hoist-variables@7.24.7': + dependencies: + '@babel/types': 7.24.7 + '@babel/helper-member-expression-to-functions@7.23.0': dependencies: '@babel/types': 7.24.5 + '@babel/helper-member-expression-to-functions@7.24.7': + dependencies: + '@babel/traverse': 7.24.7 + '@babel/types': 7.24.7 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-imports@7.22.15': + dependencies: + '@babel/types': 7.24.5 + '@babel/helper-module-imports@7.24.3': dependencies: '@babel/types': 7.24.5 + '@babel/helper-module-imports@7.24.7': + dependencies: + '@babel/traverse': 7.24.7 + '@babel/types': 7.24.7 + transitivePeerDependencies: + - supports-color + '@babel/helper-module-transforms@7.24.5(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 @@ -7527,12 +7770,29 @@ snapshots: '@babel/helper-split-export-declaration': 7.24.5 '@babel/helper-validator-identifier': 7.24.5 + '@babel/helper-module-transforms@7.24.7(@babel/core@7.24.7)': + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-module-imports': 7.24.7 + '@babel/helper-simple-access': 7.24.7 + '@babel/helper-split-export-declaration': 7.24.7 + '@babel/helper-validator-identifier': 7.24.7 + transitivePeerDependencies: + - supports-color + '@babel/helper-optimise-call-expression@7.22.5': dependencies: '@babel/types': 7.24.5 + '@babel/helper-optimise-call-expression@7.24.7': + dependencies: + '@babel/types': 7.24.7 + '@babel/helper-plugin-utils@7.24.0': {} + '@babel/helper-plugin-utils@7.24.7': {} + '@babel/helper-replace-supers@7.24.1(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 @@ -7540,24 +7800,57 @@ snapshots: '@babel/helper-member-expression-to-functions': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 + '@babel/helper-replace-supers@7.24.7(@babel/core@7.24.7)': + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-member-expression-to-functions': 7.24.7 + '@babel/helper-optimise-call-expression': 7.24.7 + transitivePeerDependencies: + - supports-color + '@babel/helper-simple-access@7.24.5': dependencies: '@babel/types': 7.24.5 + '@babel/helper-simple-access@7.24.7': + dependencies: + '@babel/traverse': 7.24.7 + '@babel/types': 7.24.7 + transitivePeerDependencies: + - supports-color + '@babel/helper-skip-transparent-expression-wrappers@7.22.5': dependencies: '@babel/types': 7.24.5 + '@babel/helper-skip-transparent-expression-wrappers@7.24.7': + dependencies: + '@babel/traverse': 7.24.7 + '@babel/types': 7.24.7 + transitivePeerDependencies: + - supports-color + '@babel/helper-split-export-declaration@7.24.5': dependencies: '@babel/types': 7.24.5 + '@babel/helper-split-export-declaration@7.24.7': + dependencies: + '@babel/types': 7.24.7 + '@babel/helper-string-parser@7.24.1': {} + '@babel/helper-string-parser@7.24.7': {} + '@babel/helper-validator-identifier@7.24.5': {} + '@babel/helper-validator-identifier@7.24.7': {} + '@babel/helper-validator-option@7.23.5': {} + '@babel/helper-validator-option@7.24.7': {} + '@babel/helpers@7.24.5': dependencies: '@babel/template': 7.24.0 @@ -7566,6 +7859,11 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helpers@7.24.7': + dependencies: + '@babel/template': 7.24.7 + '@babel/types': 7.24.7 + '@babel/highlight@7.24.2': dependencies: '@babel/helper-validator-identifier': 7.24.5 @@ -7573,10 +7871,21 @@ snapshots: js-tokens: 4.0.0 picocolors: 1.0.0 + '@babel/highlight@7.24.7': + dependencies: + '@babel/helper-validator-identifier': 7.24.7 + chalk: 2.4.2 + js-tokens: 4.0.0 + picocolors: 1.0.0 + '@babel/parser@7.24.5': dependencies: '@babel/types': 7.24.5 + '@babel/parser@7.24.7': + dependencies: + '@babel/types': 7.24.7 + '@babel/plugin-proposal-decorators@7.23.2(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 @@ -7606,11 +7915,21 @@ snapshots: '@babel/core': 7.24.5 '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-jsx@7.24.1(@babel/core@7.24.7)': + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-typescript@7.24.1(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-typescript@7.24.7(@babel/core@7.24.7)': + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/plugin-transform-modules-commonjs@7.24.1(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 @@ -7626,6 +7945,16 @@ snapshots: '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-typescript': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-typescript@7.24.7(@babel/core@7.24.7)': + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-create-class-features-plugin': 7.24.7(@babel/core@7.24.7) + '@babel/helper-plugin-utils': 7.24.7 + '@babel/plugin-syntax-typescript': 7.24.7(@babel/core@7.24.7) + transitivePeerDependencies: + - supports-color + '@babel/preset-typescript@7.24.1(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 @@ -7647,6 +7976,12 @@ snapshots: '@babel/parser': 7.24.5 '@babel/types': 7.24.5 + '@babel/template@7.24.7': + dependencies: + '@babel/code-frame': 7.24.7 + '@babel/parser': 7.24.7 + '@babel/types': 7.24.7 + '@babel/traverse@7.24.5': dependencies: '@babel/code-frame': 7.24.2 @@ -7662,12 +7997,33 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/traverse@7.24.7': + dependencies: + '@babel/code-frame': 7.24.7 + '@babel/generator': 7.24.7 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-function-name': 7.24.7 + '@babel/helper-hoist-variables': 7.24.7 + '@babel/helper-split-export-declaration': 7.24.7 + '@babel/parser': 7.24.7 + '@babel/types': 7.24.7 + debug: 4.3.4 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + '@babel/types@7.24.5': dependencies: '@babel/helper-string-parser': 7.24.1 '@babel/helper-validator-identifier': 7.24.5 to-fast-properties: 2.0.0 + '@babel/types@7.24.7': + dependencies: + '@babel/helper-string-parser': 7.24.7 + '@babel/helper-validator-identifier': 7.24.7 + to-fast-properties: 2.0.0 + '@bcoe/v8-coverage@0.2.3': {} '@cloudflare/kv-asset-handler@0.3.1': @@ -9252,11 +9608,11 @@ snapshots: - encoding - supports-color - '@vitejs/plugin-vue-jsx@3.1.0(vite@5.2.12(@types/node@20.12.13)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5))': + '@vitejs/plugin-vue-jsx@4.0.0(vite@5.2.12(@types/node@20.12.13)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5))': dependencies: - '@babel/core': 7.24.5 - '@babel/plugin-transform-typescript': 7.24.1(@babel/core@7.24.5) - '@vue/babel-plugin-jsx': 1.1.5(@babel/core@7.24.5) + '@babel/core': 7.24.7 + '@babel/plugin-transform-typescript': 7.24.7(@babel/core@7.24.7) + '@vue/babel-plugin-jsx': 1.2.2(@babel/core@7.24.7) vite: 5.2.12(@types/node@20.12.13)(sass@1.69.4)(terser@5.27.0) vue: 3.4.27(typescript@5.4.5) transitivePeerDependencies: @@ -9385,6 +9741,8 @@ snapshots: '@vue/babel-helper-vue-transform-on@1.1.5': {} + '@vue/babel-helper-vue-transform-on@1.2.2': {} + '@vue/babel-plugin-jsx@1.1.5(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 @@ -9400,6 +9758,33 @@ snapshots: transitivePeerDependencies: - supports-color + '@vue/babel-plugin-jsx@1.2.2(@babel/core@7.24.7)': + dependencies: + '@babel/helper-module-imports': 7.22.15 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.7) + '@babel/template': 7.24.0 + '@babel/traverse': 7.24.5 + '@babel/types': 7.24.5 + '@vue/babel-helper-vue-transform-on': 1.2.2 + '@vue/babel-plugin-resolve-type': 1.2.2(@babel/core@7.24.7) + camelcase: 6.3.0 + html-tags: 3.3.1 + svg-tags: 1.0.0 + optionalDependencies: + '@babel/core': 7.24.7 + transitivePeerDependencies: + - supports-color + + '@vue/babel-plugin-resolve-type@1.2.2(@babel/core@7.24.7)': + dependencies: + '@babel/code-frame': 7.24.2 + '@babel/core': 7.24.7 + '@babel/helper-module-imports': 7.22.15 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/parser': 7.24.5 + '@vue/compiler-sfc': 3.4.27 + '@vue/compiler-core@3.4.27': dependencies: '@babel/parser': 7.24.5 From 3af52b0375d72531f81e84e0754970d1543937a0 Mon Sep 17 00:00:00 2001 From: JD Solanki Date: Thu, 6 Jun 2024 18:17:31 +0530 Subject: [PATCH 005/580] docs: added recipe for consuming SSE via POST request (#27422) --- docs/1.getting-started/6.data-fetching.md | 34 +++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/docs/1.getting-started/6.data-fetching.md b/docs/1.getting-started/6.data-fetching.md index 32976b1f29..84b36df3bf 100644 --- a/docs/1.getting-started/6.data-fetching.md +++ b/docs/1.getting-started/6.data-fetching.md @@ -623,3 +623,37 @@ const { data } = await useFetch('/api/superjson', { }) ``` + +## Recipes + +### Consuming SSE (Server Sent Events) via POST request + +::tip +If you're consuming SSE via GET request, you can use [`EventSource`](https://developer.mozilla.org/en-US/docs/Web/API/EventSource) or VueUse composable [`useEventSource`](https://vueuse.org/core/useEventSource/). +:: + +When consuming SSE via POST request, you need to handle the connection manually. Here's how you can do it: + +```ts +// Make a POST request to the SSE endpoint +const response = await $fetch('/chats/ask-ai', { + method: 'POST', + body: { + query: "Hello AI, how are you?", + }, + responseType: 'stream', +}) + +// Create a new ReadableStream from the response with TextDecoderStream to get the data as text +const reader = response.pipeThrough(new TextDecoderStream()).getReader() + +// Read the chunk of data as we get it +while (true) { + const { value, done } = await reader.read() + + if (done) + break + + console.log('Received:', value) +} +``` From 1ee1f74d57040ca2aba42d82326e66a700e1d8ef Mon Sep 17 00:00:00 2001 From: praburangki Date: Thu, 6 Jun 2024 20:48:00 +0800 Subject: [PATCH 006/580] docs: add deployment advice for client-side rendering (#27426) --- docs/2.guide/1.concepts/3.rendering.md | 30 ++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/docs/2.guide/1.concepts/3.rendering.md b/docs/2.guide/1.concepts/3.rendering.md index 4adf1baaab..8bfe220a30 100644 --- a/docs/2.guide/1.concepts/3.rendering.md +++ b/docs/2.guide/1.concepts/3.rendering.md @@ -69,6 +69,36 @@ If you do use `ssr: false`, you should also place an HTML file in `~/app/spa-loa :read-more{title="SPA Loading Template" to="/docs/api/configuration/nuxt-config#spaloadingtemplate"} :: +::tip{to="https://www.youtube.com/watch?v=7Lr0QTP1Ro8" icon="i-logos-youtube-icon" target="_blank"} +Watch a video from Alexander Lichter about **Building a plain SPA with Nuxt!?**. +:: + +### Deploying a Static Client-Rendered App + +If you deploy your app to [static hosting](/docs/getting-started/deployment#static-hosting) with the `nuxi generate` or `nuxi build --prerender` commands, then by default, Nuxt will render every page as a separate static HTML file. + +If you are using purely client-side rendering, then this might be unnecessary. You might only need a single `index.html` file, plus `200.html` and `404.html` fallbacks, which you can tell your static web host to serve up for all requests. + +In order to achieve this we can change how the routes are prerendered. Just add this to [your hooks](/docs/api/advanced/hooks#nuxt-hooks-build-time) in your `nuxt.config.ts`: + +```ts twoslash [nuxt.config.ts] +export default defineNuxtConfig({ + hooks: { + 'prerender:routes' ({ routes }) { + routes.clear() // Do not generate any routes (except the defaults) + } + }, +}) +``` + +This will produce three files: + +- `index.html` +- `200.html` +- `404.html` + +The `200.html` and `404.html` might be useful for the hosting provider you are using. + ## Hybrid Rendering Hybrid rendering allows different caching rules per route using **Route Rules** and decides how the server should respond to a new request on a given URL. From bf4e6c5360ad78866dcfe8bebee73f8fa9cdf7f5 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Thu, 6 Jun 2024 14:17:46 +0100 Subject: [PATCH 007/580] ci: remove nightly nuxt 2 releases --- .github/workflows/nuxt2-edge.yml | 61 -------------------------------- 1 file changed, 61 deletions(-) delete mode 100644 .github/workflows/nuxt2-edge.yml diff --git a/.github/workflows/nuxt2-edge.yml b/.github/workflows/nuxt2-edge.yml deleted file mode 100644 index 0b12d5c635..0000000000 --- a/.github/workflows/nuxt2-edge.yml +++ /dev/null @@ -1,61 +0,0 @@ -name: nuxt2-nightly - -on: - workflow_dispatch: - schedule: - - cron: '0 0 * * *' - -# https://github.com/vitejs/vite/blob/main/.github/workflows/ci.yml -env: - # 7 GiB by default on GitHub, setting to 6 GiB - # https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners#supported-runners-and-hardware-resources - NODE_OPTIONS: --max-old-space-size=6144 - -permissions: - contents: read - -jobs: - nightly: - if: github.repository_owner == 'nuxt' - runs-on: ubuntu-latest - permissions: - id-token: write - steps: - - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 - with: - ref: '2.x' - fetch-depth: 0 # All history - - name: fetch tags - run: git fetch --depth=1 origin "+refs/tags/*:refs/tags/*" - - uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 - with: - node-version: 18 - registry-url: 'https://registry.npmjs.org' - - name: install - run: yarn --check-files --frozen-lockfile --non-interactive - - name: lint - run: yarn test:lint - - name: audit - run: yarn run audit - - name: build - run: yarn test:fixtures -i - - name: lint app - run: yarn lint:app - - name: test types - run: yarn test:types - - name: test dev - run: yarn test:dev - - name: test unit - run: yarn test:unit - - name: test e2e - run: yarn test:e2e - - name: bump version - run: yarn lerna version --yes --no-changelog --no-git-tag-version --no-push --force-publish "*" --loglevel verbose - - name: build - run: PACKAGE_SUFFIX=edge yarn build - - name: publish - run: ./scripts/workspace-run npm publish -q - env: - NODE_AUTH_TOKEN: ${{secrets.NODE_AUTH_TOKEN}} - NPM_CONFIG_PROVENANCE: true - From e60a912f33d954f5bc1210655b6b41df765408b8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 7 Jun 2024 07:37:13 +0100 Subject: [PATCH 008/580] chore(deps): update all non-major dependencies (main) (#27404) --- .github/workflows/ci.yml | 4 +- .github/workflows/dependency-review.yml | 2 +- .github/workflows/scorecards.yml | 2 +- package.json | 8 +- packages/kit/package.json | 2 +- packages/nuxt/package.json | 10 +- packages/schema/package.json | 2 +- packages/ui-templates/package.json | 6 +- packages/vite/package.json | 6 +- packages/webpack/package.json | 6 +- pnpm-lock.yaml | 1262 +++++++++++------------ test/bundle.test.ts | 2 +- 12 files changed, 612 insertions(+), 700 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 337bde8734..2f98bf80f1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -83,7 +83,7 @@ jobs: run: pnpm install - name: Initialize CodeQL - uses: github/codeql-action/init@9fdb3e49720b44c48891d036bb502feb25684276 # v3.25.6 + uses: github/codeql-action/init@2e230e8fe0ad3a14a340ad0815ddb96d599d2aff # v3.25.8 with: languages: javascript queries: +security-and-quality @@ -95,7 +95,7 @@ jobs: path: packages - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@9fdb3e49720b44c48891d036bb502feb25684276 # v3.25.6 + uses: github/codeql-action/analyze@2e230e8fe0ad3a14a340ad0815ddb96d599d2aff # v3.25.8 with: category: "/language:javascript" diff --git a/.github/workflows/dependency-review.yml b/.github/workflows/dependency-review.yml index 62daccd7f9..7c6cfb6746 100644 --- a/.github/workflows/dependency-review.yml +++ b/.github/workflows/dependency-review.yml @@ -19,4 +19,4 @@ jobs: - name: 'Checkout Repository' uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 - name: 'Dependency Review' - uses: actions/dependency-review-action@0c155c5e8556a497adf53f2c18edabf945ed8e70 # v4.3.2 + uses: actions/dependency-review-action@72eb03d02c7872a771aacd928f3123ac62ad6d3a # v4.3.3 diff --git a/.github/workflows/scorecards.yml b/.github/workflows/scorecards.yml index 1a0a7912d0..7a36b4a412 100644 --- a/.github/workflows/scorecards.yml +++ b/.github/workflows/scorecards.yml @@ -68,7 +68,7 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@9fdb3e49720b44c48891d036bb502feb25684276 # v3.25.6 + uses: github/codeql-action/upload-sarif@2e230e8fe0ad3a14a340ad0815ddb96d599d2aff # v3.25.8 if: github.repository == 'nuxt/nuxt' && success() with: sarif_file: results.sarif diff --git a/package.json b/package.json index 78b806b8f8..0976119838 100644 --- a/package.json +++ b/package.json @@ -46,7 +46,7 @@ "vue": "3.4.27" }, "devDependencies": { - "@eslint/js": "9.3.0", + "@eslint/js": "9.4.0", "@nuxt/eslint-config": "0.3.13", "@nuxt/kit": "workspace:*", "@nuxt/test-utils": "3.13.1", @@ -54,7 +54,7 @@ "@testing-library/vue": "8.1.0", "@types/eslint__js": "8.42.3", "@types/fs-extra": "11.0.4", - "@types/node": "20.12.13", + "@types/node": "20.14.2", "@types/semver": "7.5.8", "@vitest/coverage-v8": "1.6.0", "@vue/test-utils": "2.4.6", @@ -62,7 +62,7 @@ "changelogen": "0.5.5", "consola": "3.2.3", "devalue": "5.0.0", - "eslint": "9.3.0", + "eslint": "9.4.0", "eslint-plugin-no-only-tests": "3.1.0", "eslint-plugin-perfectionist": "2.10.0", "eslint-typegen": "0.2.4", @@ -91,7 +91,7 @@ "vue-router": "4.3.2", "vue-tsc": "2.0.19" }, - "packageManager": "pnpm@9.1.3", + "packageManager": "pnpm@9.2.0", "engines": { "node": "^16.10.0 || >=18.0.0" }, diff --git a/packages/kit/package.json b/packages/kit/package.json index 62d145b029..a4704ee1d2 100644 --- a/packages/kit/package.json +++ b/packages/kit/package.json @@ -37,7 +37,7 @@ "jiti": "^1.21.0", "klona": "^2.0.6", "knitwork": "^1.1.0", - "mlly": "^1.7.0", + "mlly": "^1.7.1", "pathe": "^1.1.2", "pkg-types": "^1.1.1", "scule": "^1.3.0", diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index 403b6c4d87..4eca777d5d 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -60,14 +60,14 @@ }, "dependencies": { "@nuxt/devalue": "^2.0.2", - "@nuxt/devtools": "^1.3.2", + "@nuxt/devtools": "^1.3.3", "@nuxt/kit": "workspace:*", "@nuxt/schema": "workspace:*", "@nuxt/telemetry": "^2.5.4", "@nuxt/vite-builder": "workspace:*", - "@unhead/dom": "^1.9.11", - "@unhead/ssr": "^1.9.11", - "@unhead/vue": "^1.9.11", + "@unhead/dom": "^1.9.12", + "@unhead/ssr": "^1.9.12", + "@unhead/vue": "^1.9.12", "@vue/shared": "^3.4.27", "acorn": "8.11.3", "c12": "^1.10.0", @@ -88,7 +88,7 @@ "klona": "^2.0.6", "knitwork": "^1.1.0", "magic-string": "^0.30.10", - "mlly": "^1.7.0", + "mlly": "^1.7.1", "nitropack": "^2.9.6", "nuxi": "^3.11.1", "nypm": "^0.3.8", diff --git a/packages/schema/package.json b/packages/schema/package.json index c4bb2ea038..91a8d69108 100644 --- a/packages/schema/package.json +++ b/packages/schema/package.json @@ -39,7 +39,7 @@ "@types/file-loader": "5.0.4", "@types/pug": "2.0.10", "@types/sass-loader": "8.0.8", - "@unhead/schema": "1.9.11", + "@unhead/schema": "1.9.12", "@vitejs/plugin-vue": "5.0.4", "@vitejs/plugin-vue-jsx": "4.0.0", "@vue/compiler-core": "3.4.27", diff --git a/packages/ui-templates/package.json b/packages/ui-templates/package.json index 9247a5eeb4..e024dc0154 100644 --- a/packages/ui-templates/package.json +++ b/packages/ui-templates/package.json @@ -20,7 +20,7 @@ }, "devDependencies": { "@types/html-minifier": "4.0.5", - "@unocss/reset": "0.60.3", + "@unocss/reset": "0.60.4", "critters": "0.0.22", "execa": "9.1.0", "globby": "14.0.1", @@ -28,9 +28,9 @@ "jiti": "1.21.0", "knitwork": "1.1.0", "pathe": "1.1.2", - "prettier": "3.2.5", + "prettier": "3.3.1", "scule": "1.3.0", - "unocss": "0.60.3", + "unocss": "0.60.4", "vite": "5.2.12" } } diff --git a/packages/vite/package.json b/packages/vite/package.json index 6cccb46556..0f1fef37cd 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -33,13 +33,13 @@ }, "dependencies": { "@nuxt/kit": "workspace:*", - "@rollup/plugin-replace": "^5.0.5", + "@rollup/plugin-replace": "^5.0.7", "@vitejs/plugin-vue": "^5.0.4", "@vitejs/plugin-vue-jsx": "^4.0.0", "autoprefixer": "^10.4.19", "clear": "^0.1.0", "consola": "^3.2.3", - "cssnano": "^7.0.1", + "cssnano": "^7.0.2", "defu": "^6.1.4", "esbuild": "^0.21.4", "escape-string-regexp": "^5.0.0", @@ -50,7 +50,7 @@ "h3": "^1.11.1", "knitwork": "^1.1.0", "magic-string": "^0.30.10", - "mlly": "^1.7.0", + "mlly": "^1.7.1", "ohash": "^1.1.3", "pathe": "^1.1.2", "perfect-debounce": "^1.0.0", diff --git a/packages/webpack/package.json b/packages/webpack/package.json index 1c98863434..2e4722188e 100644 --- a/packages/webpack/package.json +++ b/packages/webpack/package.json @@ -30,7 +30,7 @@ "autoprefixer": "^10.4.19", "css-loader": "^7.1.2", "css-minimizer-webpack-plugin": "^7.0.0", - "cssnano": "^7.0.1", + "cssnano": "^7.0.2", "defu": "^6.1.4", "esbuild-loader": "^4.1.0", "escape-string-regexp": "^5.0.0", @@ -44,7 +44,7 @@ "magic-string": "^0.30.10", "memfs": "^4.9.2", "mini-css-extract-plugin": "^2.9.0", - "mlly": "^1.7.0", + "mlly": "^1.7.1", "ohash": "^1.1.3", "pathe": "^1.1.2", "pify": "^6.1.0", @@ -66,7 +66,7 @@ "webpack-bundle-analyzer": "^4.10.2", "webpack-dev-middleware": "^7.2.1", "webpack-hot-middleware": "^2.26.1", - "webpack-virtual-modules": "^0.6.1", + "webpack-virtual-modules": "^0.6.2", "webpackbar": "^6.0.1" }, "devDependencies": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 83950f9759..f799fb19d4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -21,17 +21,17 @@ importers: .: devDependencies: '@eslint/js': - specifier: 9.3.0 - version: 9.3.0 + specifier: 9.4.0 + version: 9.4.0 '@nuxt/eslint-config': specifier: 0.3.13 - version: 0.3.13(eslint@9.3.0)(typescript@5.4.5) + version: 0.3.13(eslint@9.4.0)(typescript@5.4.5) '@nuxt/kit': specifier: workspace:* version: link:packages/kit '@nuxt/test-utils': specifier: 3.13.1 - version: 3.13.1(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.27)(vue@3.4.27(typescript@5.4.5)))(@vue/test-utils@2.4.6)(h3@1.11.1)(happy-dom@14.12.0)(nitropack@2.9.6(encoding@0.1.13))(playwright-core@1.44.1)(vite@5.2.12(@types/node@20.12.13)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.12.13)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.2(vue@3.4.27(typescript@5.4.5)))(vue@3.4.27(typescript@5.4.5)) + version: 3.13.1(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.27)(vue@3.4.27(typescript@5.4.5)))(@vue/test-utils@2.4.6)(h3@1.11.1)(happy-dom@14.12.0)(nitropack@2.9.6(encoding@0.1.13))(playwright-core@1.44.1)(vite@5.2.12(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.2)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.2(vue@3.4.27(typescript@5.4.5)))(vue@3.4.27(typescript@5.4.5)) '@nuxt/webpack-builder': specifier: workspace:* version: link:packages/webpack @@ -45,14 +45,14 @@ importers: specifier: 11.0.4 version: 11.0.4 '@types/node': - specifier: 20.12.13 - version: 20.12.13 + specifier: 20.14.2 + version: 20.14.2 '@types/semver': specifier: 7.5.8 version: 7.5.8 '@vitest/coverage-v8': specifier: 1.6.0 - version: 1.6.0(vitest@1.6.0(@types/node@20.12.13)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0)) + version: 1.6.0(vitest@1.6.0(@types/node@20.14.2)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0)) '@vue/test-utils': specifier: 2.4.6 version: 2.4.6 @@ -69,17 +69,17 @@ importers: specifier: 5.0.0 version: 5.0.0 eslint: - specifier: 9.3.0 - version: 9.3.0 + specifier: 9.4.0 + version: 9.4.0 eslint-plugin-no-only-tests: specifier: 3.1.0 version: 3.1.0 eslint-plugin-perfectionist: specifier: 2.10.0 - version: 2.10.0(eslint@9.3.0)(typescript@5.4.5)(vue-eslint-parser@9.4.2(eslint@9.3.0)) + version: 2.10.0(eslint@9.4.0)(typescript@5.4.5)(vue-eslint-parser@9.4.2(eslint@9.4.0)) eslint-typegen: specifier: 0.2.4 - version: 0.2.4(eslint@9.3.0) + version: 0.2.4(eslint@9.4.0) execa: specifier: 9.1.0 version: 9.1.0 @@ -139,10 +139,10 @@ importers: version: 1.5.3 vitest: specifier: 1.6.0 - version: 1.6.0(@types/node@20.12.13)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0) + version: 1.6.0(@types/node@20.14.2)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0) vitest-environment-nuxt: specifier: 1.0.0 - version: 1.0.0(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.27)(vue@3.4.27(typescript@5.4.5)))(@vue/test-utils@2.4.6)(h3@1.11.1)(happy-dom@14.12.0)(nitropack@2.9.6(encoding@0.1.13))(playwright-core@1.44.1)(vite@5.2.12(@types/node@20.12.13)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.12.13)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.2(vue@3.4.27(typescript@5.4.5)))(vue@3.4.27(typescript@5.4.5)) + version: 1.0.0(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.27)(vue@3.4.27(typescript@5.4.5)))(@vue/test-utils@2.4.6)(h3@1.11.1)(happy-dom@14.12.0)(nitropack@2.9.6(encoding@0.1.13))(playwright-core@1.44.1)(vite@5.2.12(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.2)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.2(vue@3.4.27(typescript@5.4.5)))(vue@3.4.27(typescript@5.4.5)) vue: specifier: 3.4.27 version: 3.4.27(typescript@5.4.5) @@ -189,8 +189,8 @@ importers: specifier: ^1.1.0 version: 1.1.0 mlly: - specifier: ^1.7.0 - version: 1.7.0 + specifier: ^1.7.1 + version: 1.7.1 pathe: specifier: ^1.1.2 version: 1.1.2 @@ -236,10 +236,10 @@ importers: version: 2.0.0(sass@1.69.4)(typescript@5.4.5) vite: specifier: 5.2.12 - version: 5.2.12(@types/node@20.12.13)(sass@1.69.4)(terser@5.27.0) + version: 5.2.12(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) vitest: specifier: 1.6.0 - version: 1.6.0(@types/node@20.12.13)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0) + version: 1.6.0(@types/node@20.14.2)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0) webpack: specifier: 5.91.0 version: 5.91.0 @@ -250,8 +250,8 @@ importers: specifier: ^2.0.2 version: 2.0.2 '@nuxt/devtools': - specifier: ^1.3.2 - version: 1.3.2(@unocss/reset@0.60.3)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.60.3(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.12(@types/node@20.12.12)(sass@1.69.4)(terser@5.27.0)))(vite@5.2.12(@types/node@20.12.12)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)) + specifier: ^1.3.3 + version: 1.3.3(@unocss/reset@0.60.4)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.60.4(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.12(@types/node@20.12.12)(sass@1.69.4)(terser@5.27.0)))(vite@5.2.12(@types/node@20.12.12)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)) '@nuxt/kit': specifier: workspace:* version: link:../kit @@ -268,14 +268,14 @@ importers: specifier: ^14.18.0 || >=16.10.0 version: 20.12.12 '@unhead/dom': - specifier: ^1.9.11 - version: 1.9.11 + specifier: ^1.9.12 + version: 1.9.12 '@unhead/ssr': - specifier: ^1.9.11 - version: 1.9.11 + specifier: ^1.9.12 + version: 1.9.12 '@unhead/vue': - specifier: ^1.9.11 - version: 1.9.11(vue@3.4.27(typescript@5.4.5)) + specifier: ^1.9.12 + version: 1.9.12(vue@3.4.27(typescript@5.4.5)) '@vue/shared': specifier: ^3.4.27 version: 3.4.27 @@ -337,8 +337,8 @@ importers: specifier: ^0.30.10 version: 0.30.10 mlly: - specifier: ^1.7.0 - version: 1.7.0 + specifier: ^1.7.1 + version: 1.7.1 nitropack: specifier: ^2.9.6 version: 2.9.6(encoding@0.1.13) @@ -498,14 +498,14 @@ importers: specifier: 8.0.8 version: 8.0.8 '@unhead/schema': - specifier: 1.9.11 - version: 1.9.11 + specifier: 1.9.12 + version: 1.9.12 '@vitejs/plugin-vue': specifier: 5.0.4 - version: 5.0.4(vite@5.2.12(@types/node@20.12.13)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)) + version: 5.0.4(vite@5.2.12(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)) '@vitejs/plugin-vue-jsx': specifier: 4.0.0 - version: 4.0.0(vite@5.2.12(@types/node@20.12.13)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)) + version: 4.0.0(vite@5.2.12(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)) '@vue/compiler-core': specifier: 3.4.27 version: 3.4.27 @@ -544,7 +544,7 @@ importers: version: 1.9.0 vite: specifier: 5.2.12 - version: 5.2.12(@types/node@20.12.13)(sass@1.69.4)(terser@5.27.0) + version: 5.2.12(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) vue: specifier: 3.4.27 version: 3.4.27(typescript@5.4.5) @@ -570,8 +570,8 @@ importers: specifier: 4.0.5 version: 4.0.5 '@unocss/reset': - specifier: 0.60.3 - version: 0.60.3 + specifier: 0.60.4 + version: 0.60.4 critters: specifier: 0.0.22 version: 0.0.22 @@ -594,17 +594,17 @@ importers: specifier: 1.1.2 version: 1.1.2 prettier: - specifier: 3.2.5 - version: 3.2.5 + specifier: 3.3.1 + version: 3.3.1 scule: specifier: 1.3.0 version: 1.3.0 unocss: - specifier: 0.60.3 - version: 0.60.3(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.12(@types/node@20.12.13)(sass@1.69.4)(terser@5.27.0)) + specifier: 0.60.4 + version: 0.60.4(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.12(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) vite: specifier: 5.2.12 - version: 5.2.12(@types/node@20.12.13)(sass@1.69.4)(terser@5.27.0) + version: 5.2.12(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) packages/vite: dependencies: @@ -612,14 +612,14 @@ importers: specifier: workspace:* version: link:../kit '@rollup/plugin-replace': - specifier: ^5.0.5 - version: 5.0.5(rollup@4.18.0) + specifier: ^5.0.7 + version: 5.0.7(rollup@4.18.0) '@vitejs/plugin-vue': specifier: ^5.0.4 - version: 5.0.4(vite@5.2.12(@types/node@20.12.13)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)) + version: 5.0.4(vite@5.2.12(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)) '@vitejs/plugin-vue-jsx': specifier: ^4.0.0 - version: 4.0.0(vite@5.2.12(@types/node@20.12.13)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)) + version: 4.0.0(vite@5.2.12(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)) autoprefixer: specifier: ^10.4.19 version: 10.4.19(postcss@8.4.38) @@ -630,8 +630,8 @@ importers: specifier: ^3.2.3 version: 3.2.3 cssnano: - specifier: ^7.0.1 - version: 7.0.1(postcss@8.4.38) + specifier: ^7.0.2 + version: 7.0.2(postcss@8.4.38) defu: specifier: ^6.1.4 version: 6.1.4 @@ -663,8 +663,8 @@ importers: specifier: ^0.30.10 version: 0.30.10 mlly: - specifier: ^1.7.0 - version: 1.7.0 + specifier: ^1.7.1 + version: 1.7.1 ohash: specifier: ^1.1.3 version: 1.1.3 @@ -700,13 +700,13 @@ importers: version: 1.10.1 vite: specifier: 5.2.12 - version: 5.2.12(@types/node@20.12.13)(sass@1.69.4)(terser@5.27.0) + version: 5.2.12(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) vite-node: specifier: ^1.6.0 - version: 1.6.0(@types/node@20.12.13)(sass@1.69.4)(terser@5.27.0) + version: 1.6.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) vite-plugin-checker: specifier: ^0.6.4 - version: 0.6.4(eslint@9.3.0)(optionator@0.9.3)(typescript@5.4.5)(vite@5.2.12(@types/node@20.12.13)(sass@1.69.4)(terser@5.27.0))(vue-tsc@2.0.19(typescript@5.4.5)) + version: 0.6.4(eslint@9.4.0)(optionator@0.9.3)(typescript@5.4.5)(vite@5.2.12(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue-tsc@2.0.19(typescript@5.4.5)) vue-bundle-renderer: specifier: ^2.1.0 version: 2.1.0 @@ -748,8 +748,8 @@ importers: specifier: ^7.0.0 version: 7.0.0(webpack@5.91.0) cssnano: - specifier: ^7.0.1 - version: 7.0.1(postcss@8.4.38) + specifier: ^7.0.2 + version: 7.0.2(postcss@8.4.38) defu: specifier: ^6.1.4 version: 6.1.4 @@ -790,8 +790,8 @@ importers: specifier: ^2.9.0 version: 2.9.0(webpack@5.91.0) mlly: - specifier: ^1.7.0 - version: 1.7.0 + specifier: ^1.7.1 + version: 1.7.1 ohash: specifier: ^1.1.3 version: 1.1.3 @@ -856,8 +856,8 @@ importers: specifier: ^2.26.1 version: 2.26.1 webpack-virtual-modules: - specifier: ^0.6.1 - version: 0.6.1 + specifier: ^0.6.2 + version: 0.6.2 webpackbar: specifier: ^6.0.1 version: 6.0.1(webpack@5.91.0) @@ -929,7 +929,7 @@ importers: version: 1.3.4 vitest: specifier: 1.5.3 - version: 1.5.3(@types/node@20.12.13)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0) + version: 1.5.3(@types/node@20.14.2)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0) vue: specifier: 3.4.27 version: 3.4.27(typescript@5.4.5) @@ -1026,10 +1026,6 @@ packages: resolution: {integrity: sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==} engines: {node: '>=6.9.0'} - '@babel/helper-annotate-as-pure@7.22.5': - resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} - engines: {node: '>=6.9.0'} - '@babel/helper-annotate-as-pure@7.24.7': resolution: {integrity: sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==} engines: {node: '>=6.9.0'} @@ -1042,12 +1038,6 @@ packages: resolution: {integrity: sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg==} engines: {node: '>=6.9.0'} - '@babel/helper-create-class-features-plugin@7.24.1': - resolution: {integrity: sha512-1yJa9dX9g//V6fDebXoEfEsxkZHk3Hcbm+zLhyu6qVgYFLvmTALTeV+jNU9e5RnYtioBrGEOdoI2joMSNQ/+aA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - '@babel/helper-create-class-features-plugin@7.24.7': resolution: {integrity: sha512-kTkaDl7c9vO80zeX1rJxnuRpEsD5tA81yh11X1gQo+PhSti3JS+7qeZo9U4RHobKRiFPKaGK3svUAeb8D0Q7eg==} engines: {node: '>=6.9.0'} @@ -1078,10 +1068,6 @@ packages: resolution: {integrity: sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==} engines: {node: '>=6.9.0'} - '@babel/helper-member-expression-to-functions@7.23.0': - resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==} - engines: {node: '>=6.9.0'} - '@babel/helper-member-expression-to-functions@7.24.7': resolution: {integrity: sha512-LGeMaf5JN4hAT471eJdBs/GK1DoYIJ5GCtZN/EsL6KUiiDZOvO/eKE11AMZJa2zP4zk4qe9V2O/hxAmkRc8p6w==} engines: {node: '>=6.9.0'} @@ -1110,28 +1096,14 @@ packages: peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-optimise-call-expression@7.22.5': - resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} - engines: {node: '>=6.9.0'} - '@babel/helper-optimise-call-expression@7.24.7': resolution: {integrity: sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==} engines: {node: '>=6.9.0'} - '@babel/helper-plugin-utils@7.24.0': - resolution: {integrity: sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==} - engines: {node: '>=6.9.0'} - '@babel/helper-plugin-utils@7.24.7': resolution: {integrity: sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==} engines: {node: '>=6.9.0'} - '@babel/helper-replace-supers@7.24.1': - resolution: {integrity: sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - '@babel/helper-replace-supers@7.24.7': resolution: {integrity: sha512-qTAxxBM81VEyoAY0TtLrx1oAEJc09ZK67Q9ljQToqCnA+55eNwCORaxlKyu+rNfX86o8OXRUSNUnrtsAZXM9sg==} engines: {node: '>=6.9.0'} @@ -1146,10 +1118,6 @@ packages: resolution: {integrity: sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==} engines: {node: '>=6.9.0'} - '@babel/helper-skip-transparent-expression-wrappers@7.22.5': - resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} - engines: {node: '>=6.9.0'} - '@babel/helper-skip-transparent-expression-wrappers@7.24.7': resolution: {integrity: sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==} engines: {node: '>=6.9.0'} @@ -1235,14 +1203,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-jsx@7.24.1': - resolution: {integrity: sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-typescript@7.24.1': - resolution: {integrity: sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==} + '@babel/plugin-syntax-jsx@7.24.7': + resolution: {integrity: sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1253,14 +1215,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-modules-commonjs@7.24.1': - resolution: {integrity: sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-typescript@7.24.1': - resolution: {integrity: sha512-liYSESjX2fZ7JyBFkYG78nfvHlMKE6IpNdTVnxmlYUR+j5ZLsitFbaAE+eJSK2zPPkNWNw4mXL51rQ8WrvdK0w==} + '@babel/plugin-transform-modules-commonjs@7.24.7': + resolution: {integrity: sha512-iFI8GDxtevHJ/Z22J5xQpVqFLlMNstcLXh994xifFwxxGslr2ZXXLWgtBeLctOD63UFDArdvN6Tg8RFw+aEmjQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1271,8 +1227,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/preset-typescript@7.24.1': - resolution: {integrity: sha512-1DBaMmRDpuYQBPWD8Pf/WEwCrtgRHxsZnP4mIy9G/X+hFfbI47Q2G4t1Paakld84+qsk2fSsUPMKg71jkoOOaQ==} + '@babel/preset-typescript@7.24.7': + resolution: {integrity: sha512-SyXRe3OdWwIwalxDg5UtJnJQO+YPcTfwiIY2B0Xlddh9o7jpWLvv8X1RthIeDOxQ+O1ML5BLPCONToObyVQVuQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1879,12 +1835,20 @@ packages: resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + '@eslint/config-array@0.15.1': + resolution: {integrity: sha512-K4gzNq+yymn/EVsXYmf+SBcBro8MTf+aXJZUphM96CdzUEr+ClGDvAbpmaEK+cGVigVXIgs9gNmvHAlrzzY5JQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/eslintrc@3.1.0': resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.3.0': - resolution: {integrity: sha512-niBqk8iwv96+yuTwjM6bWg8ovzAPF9qkICsGtcoa5/dmqcEMfdwNAX7+/OHcJHc7wj7XqPxH98oAHytFYlw6Sw==} + '@eslint/js@9.4.0': + resolution: {integrity: sha512-fdI7VJjP3Rvc70lC4xkFXHB0fiPeojiL1PxVG6t1ZvXQrarj893PweuBTujxDUFk0Fxj4R7PIIAZ/aiiyZPZcg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/object-schema@2.1.3': + resolution: {integrity: sha512-HAbhAYKfsAC2EkTqve00ibWIZlaU74Z1EHwAjYr4PXF0YU2VEA1zSIKSSpKszRLRWwHzzRZXvK632u+uXzvsvw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@fastify/busboy@2.0.0': @@ -1900,17 +1864,10 @@ packages: '@floating-ui/utils@0.2.1': resolution: {integrity: sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q==} - '@humanwhocodes/config-array@0.13.0': - resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==} - engines: {node: '>=10.10.0'} - '@humanwhocodes/module-importer@1.0.1': resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} engines: {node: '>=12.22'} - '@humanwhocodes/object-schema@2.0.3': - resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} - '@humanwhocodes/retry@0.3.0': resolution: {integrity: sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew==} engines: {node: '>=18.18'} @@ -1918,8 +1875,8 @@ packages: '@iconify/types@2.0.0': resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} - '@iconify/utils@2.1.23': - resolution: {integrity: sha512-YGNbHKM5tyDvdWZ92y2mIkrfvm5Fvhe6WJSkWu7vvOFhMtYDP0casZpoRz0XEHZCrYsR4stdGT3cZ52yp5qZdQ==} + '@iconify/utils@2.1.24': + resolution: {integrity: sha512-H8r2KpL5uKyrkb3z9/3HD/22JcxqW3BJyjEWZhX2T7DehnYVZthEap1cNsEl/UtCDC3TlpNmwiPX8wg3y8E4dg==} '@ioredis/commands@1.2.0': resolution: {integrity: sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==} @@ -2056,18 +2013,18 @@ packages: '@nuxt/devalue@2.0.2': resolution: {integrity: sha512-GBzP8zOc7CGWyFQS6dv1lQz8VVpz5C2yRszbXufwG/9zhStTIH50EtD87NmWbTMwXDvZLNg8GIpb1UFdH93JCA==} - '@nuxt/devtools-kit@1.3.2': - resolution: {integrity: sha512-ZLEFiUYFSIpQnJ4km8DSE7F7+XIZVslfa/ipFlri9VMffTCRN2Pb1Te9Av35jV9ldc7PYiM70Hs+QLXTJOLE6g==} + '@nuxt/devtools-kit@1.3.3': + resolution: {integrity: sha512-YkcuSirzVVi36gWjIl9sJ4lsuiuQiIStY3upLy829zMTIXXeF8yUEBexKL6zHD3UPqCigoF7IuovnfLw78BQ9g==} peerDependencies: nuxt: workspace:* vite: 5.2.12 - '@nuxt/devtools-wizard@1.3.2': - resolution: {integrity: sha512-Oihdsk/aaWa59yO/DSogndVyCOuYf6tr0pKiOn1blFXtAGOvNmcm0h34bX/DV3Z17D95yUFY3nrcnFznG9mFxg==} + '@nuxt/devtools-wizard@1.3.3': + resolution: {integrity: sha512-9Umo9eDgwhSBDnTzWINXwJBYy2J3ay6OviM7Qdr08B9hDu+CU6MrEpsT4hZ3npD7p1E+9t1YQw/4fZ8NMcPVnw==} hasBin: true - '@nuxt/devtools@1.3.2': - resolution: {integrity: sha512-ozIicBZZEr0eDtR8VsuIsAvEhXAjw5JvAhHnbcXY+ajYdJ9uFGF7rTjqgTL0VrCJcCUJ/UA6qTWb7/MdTCs4GQ==} + '@nuxt/devtools@1.3.3': + resolution: {integrity: sha512-rlFIggkUfYvSSZRkk7v9L4aqgmnCGSzcaYJYPA+RGtJQy7asJ3Ziqx/iXnj9Ih81L6vL/BqbX9G49beJGqL/MQ==} hasBin: true peerDependencies: nuxt: workspace:* @@ -2283,6 +2240,15 @@ packages: rollup: optional: true + '@rollup/plugin-replace@5.0.7': + resolution: {integrity: sha512-PqxSfuorkHz/SPpyngLyg5GCEkOcee9M1bkxiVDr41Pd61mqP1PLOoDPbpl44SB2mQGKwV/In74gqQmGITOhEQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^4.18.0 + peerDependenciesMeta: + rollup: + optional: true + '@rollup/plugin-terser@0.4.4': resolution: {integrity: sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==} engines: {node: '>=14.0.0'} @@ -2581,8 +2547,8 @@ packages: '@types/node@20.12.12': resolution: {integrity: sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==} - '@types/node@20.12.13': - resolution: {integrity: sha512-gBGeanV41c1L171rR7wjbMiEpEI/l5XFQdLLfhr/REwpgDy/4U8y89+i8kRiLzDyZdOkXh+cRaTetUnCYutoXA==} + '@types/node@20.14.2': + resolution: {integrity: sha512-xyu6WAMVwv6AKFLB+e/7ySZVr/0zLCzOa7rSpq6jNwpqOrUbcACDWC+53d4n2QHOnDou0fbIsg8wZu/sxrnI4Q==} '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -2709,106 +2675,106 @@ packages: '@ungap/structured-clone@1.2.0': resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - '@unhead/dom@1.9.11': - resolution: {integrity: sha512-mg8DuqPcm+JWSN3SIPa9lbNtFhdQ1M7K2TJe8icI4bK56GSj4eUgJZrbphZAUWPAUAS1UFyFFGJG7N9Y31LKOw==} + '@unhead/dom@1.9.12': + resolution: {integrity: sha512-3MY1TbZmEjGNZapi3wvJW0vWNS2CLKHt7/m57sScDHCNvNBe1mTwrIOhtZFDgAndhml2EVQ68RMa0Vhum/M+cw==} - '@unhead/schema@1.9.11': - resolution: {integrity: sha512-hvIGl20wpQQImyHvAMv2tPgccKLGEwMn8KYQdImUkiCLdQw2Jw9jH7syE/u+TPSqwOQIwsvPja5sK+SChL1KNw==} + '@unhead/schema@1.9.12': + resolution: {integrity: sha512-ue2FKyIZKsuZDpWJBMlBGwMm4s+vFeU3NUWsNt8Z+2JkOUIqO/VG43LxNgY1M595bOS71Gdxk+G9VtzfKJ5uEA==} - '@unhead/shared@1.9.11': - resolution: {integrity: sha512-jgpQ/cPfXzQA7c4F4PKyPXxS9POXAMrJ0QUBMTQYNOW6t6KlljjK89n6nUEmGuiyO4jdJGooZNVS1fXVaKIgYQ==} + '@unhead/shared@1.9.12': + resolution: {integrity: sha512-72wlLXG3FP3sXUrwd42Uv8jYpHSg4R6IFJcsl+QisRjKM89JnjOFSw1DqWO4IOftW5xOxS4J5v7SQyJ4NJo7Bw==} - '@unhead/ssr@1.9.11': - resolution: {integrity: sha512-qp7a1uRxzYGr1nRYtkbrYmbUOMZaxIErYDg3ZXA4cc4AZ90OFqb6CfRvk79ywWdatfavsfSj29K1NMgKQyH9ZQ==} + '@unhead/ssr@1.9.12': + resolution: {integrity: sha512-EbUT55CzAYsXL/A1hjxpDoK0EitV3n1YZVWHfdE+I8Qe13EL/tnQwco2AYILjb1gtA4s70n3PjTNGeJ17cHPnw==} - '@unhead/vue@1.9.11': - resolution: {integrity: sha512-7gCEJGTSnpLcHGQ2j/IsBTz2nIUWbTlqUbbNiwPFgEksJbh8Pz8WduTvLC4ANlnnFy6PDG7yrZcaKJMOrNruoQ==} + '@unhead/vue@1.9.12': + resolution: {integrity: sha512-keE4EuswgzCqVU7zmZprU+ToMvNWc3s8NoLreH5AtJd2u0FgBygD8sxRVyEnZw1KwFYOJ2C7yD2TChSKZioPGQ==} peerDependencies: vue: 3.4.27 - '@unocss/astro@0.60.3': - resolution: {integrity: sha512-duFuyVhqYqQ15JZqx41UNgIxndqYRbOwDkJ7Y+R5N+u59a27vImz8B9eOFkHaZCFBWyH5jywkT8LVK1sfddFaw==} + '@unocss/astro@0.60.4': + resolution: {integrity: sha512-mfWiEVCUP00gxrMewwPfnTuw+ur5b6uIBRH2tIGkvfI21rLyZw8TIF08w7USz9C/47rvzsixBtCqq7v0g3Tw9w==} peerDependencies: vite: 5.2.12 peerDependenciesMeta: vite: optional: true - '@unocss/cli@0.60.3': - resolution: {integrity: sha512-bN829zn6k4hrvDTLnUcI2uAJnSevHwlkOCaYxN/C+v11uGxIewk5Xum6Vm5kZ8JTpCR1jEu/i7wIBNde3XKN5g==} + '@unocss/cli@0.60.4': + resolution: {integrity: sha512-RFt3BOgtp5ZI+cS6grKKo1DqvUJ/e8iRPwn843u6qSw18guIc4CEVTe5jcDAGuLcL4va9hg2wd4NReUEnMCZ/g==} engines: {node: '>=14'} hasBin: true - '@unocss/config@0.60.3': - resolution: {integrity: sha512-3RGD7h3bS4qZA/Khcqhn1EgLgyPc85FSz5rubdywHRdHlpY9sdmuGEJahvqSLMN4MmdYQDmqEIEAJjENrdgZeQ==} + '@unocss/config@0.60.4': + resolution: {integrity: sha512-ri9P2+YztD5JdPYSLiNjcLf6NgoBbwJDVutP/tQnfYYrE72DQ+j+4vepyxEBa1YaH/X4qsmLJCj+2tI/ufIiog==} engines: {node: '>=14'} - '@unocss/core@0.60.3': - resolution: {integrity: sha512-4bBX1pavDl2DSCozEII7bxYGT0IkyO7kKlUuCtooTePWyLjf2F7essdzHkJ00EpNR64kkebR9V0lqBMBo07VPw==} + '@unocss/core@0.60.4': + resolution: {integrity: sha512-6tz8KTzC30oB0YikwRQoIpJ6Y6Dg+ZiK3NfCIsH+UX11bh2J2M53as2EL/5VQCqtiUn3YP0ZEzR2d1AWX78RCA==} - '@unocss/extractor-arbitrary-variants@0.60.3': - resolution: {integrity: sha512-PnwNwkeAHmbJbrf5XN0xQG1KT1VQEye8neYn5yz1MHnT8Cj2nqjrqoCRGLCLhpOUg3/MNj+bpiA7hGnFbXWaCQ==} + '@unocss/extractor-arbitrary-variants@0.60.4': + resolution: {integrity: sha512-USuFGs5CLft9q7IGNdAEp1oliuUns+W7OO0Tx5qtx/oBh6pU/L93lcNNsuuGNrMU8BCmF3atx1/PEmGymgJ7VA==} - '@unocss/inspector@0.60.3': - resolution: {integrity: sha512-2cXAPA1yddB79mmpMXxPpSpizn4TskAsB7aSocbprOTYIU2Ff53gfkkijnLixrBvbG8xw91d9oPuI5Hm9GCyMQ==} + '@unocss/inspector@0.60.4': + resolution: {integrity: sha512-PcnrEQ2H7osZho4Nh0+84O4IXzlkF7pvTUe/7FTJYF1HQGWHB/PfOSoyKn7/sF5sED8hMK9RlSJ9YGUH9ioY+g==} - '@unocss/postcss@0.60.3': - resolution: {integrity: sha512-7jRsKgMz4wr3Rvnr/RpK/7g6o8bMrqjTb01imgHeaw7cmQsa9sH1HPCp+4lvHh2/QKKLwwRAC+fdnNmsf8JKjA==} + '@unocss/postcss@0.60.4': + resolution: {integrity: sha512-mHha4BoOpCWRRL5EFJqsj+BiYxOBPXUZDFbSWmA8oAMBwcA/yqtnaRF2tqI9CK+CDfhmtbYF64KdTLh9pf6BvQ==} engines: {node: '>=14'} peerDependencies: postcss: ^8.4.21 - '@unocss/preset-attributify@0.60.3': - resolution: {integrity: sha512-G/Lx9xq/tVKvjp/CcACyLU+p3mcrpgkMvy+Z3NSHfBAZAmbieBMFhwROxt5R8Bny66q3fYDtxxx+likpokpOAQ==} + '@unocss/preset-attributify@0.60.4': + resolution: {integrity: sha512-J2GWUC0bcmZSXlBGLYUXwWQos/dNzKbq2CKweWVBAmAH9XyfM0mA5CTNBRv05PN1g6C/0z5st7ntUjV6KHJuTg==} - '@unocss/preset-icons@0.60.3': - resolution: {integrity: sha512-L3Ecr36xC+Y8v5WMQcNsGoOzu0HpgNLh5RlC2abs8OyBDGn1k3UqdEFdrhRt3bXpln9b8JkstHO7ZwYPgr2/Cg==} + '@unocss/preset-icons@0.60.4': + resolution: {integrity: sha512-UN/dj+nhI3+S06YxCZQPLw3GZy780iaE71dysyhDMdh+Qq2KFVs3d94mr1427fjz/3Y8ZyXkgqyhCFr7UT0bMQ==} - '@unocss/preset-mini@0.60.3': - resolution: {integrity: sha512-7en8KBX3lN1Y6eCprbzA1QVfyXZD03B+oAxFXH8QPv5jRIL8Lm8sbXqE+VTsSME/OVp4DnS6LdGtDAm9mvIOSw==} + '@unocss/preset-mini@0.60.4': + resolution: {integrity: sha512-ZiHbP69vkyz0xmhqzC4B4PegwV+LPlZOBT7cRhsh0P8oPOQKYOyDRy4rAl+sJBJeIrggn1r1LgN+Z0Xvd8Ytcw==} - '@unocss/preset-tagify@0.60.3': - resolution: {integrity: sha512-pzD6bgtGuIk7M1n/JQiR6EpwnVvafSTHoM70Jhf+T8MSuatDb+KFJCn3VELV2v38aikcUY5cTf95jqHQdzOAhQ==} + '@unocss/preset-tagify@0.60.4': + resolution: {integrity: sha512-GxL/W3qkdWWDqXi43qyLbp/BpEj7gMw99KqkO7bmbVi3BVlFggreTFwmQu89pB6iatxGjxnAsc+TsQZqxKftZA==} - '@unocss/preset-typography@0.60.3': - resolution: {integrity: sha512-cOXOnxkgH0ZiYg/oHBbabzXi1q6oTZWgQ4fqrVxGI2CD4oiWYaPU/wzKsx930D6uBSIlBVDX/cov2j0dPWjgJg==} + '@unocss/preset-typography@0.60.4': + resolution: {integrity: sha512-6j8ySZYEAwMBy9a3Lw3EEfRlcAClti4zvaV0kBtkP4BDZCwlgX2eE1pmw2mTUy+E1yVlXm3NnRzKfDudQUzraA==} - '@unocss/preset-uno@0.60.3': - resolution: {integrity: sha512-PJSR78uaIRTsD9RFSQLwsrGAsjQoW5nWenU4n4GyZeskDsyQVgOcaKtvh+0aYjYdWBa1UvxeUL8Y+m29K4HnAA==} + '@unocss/preset-uno@0.60.4': + resolution: {integrity: sha512-AN8ZTtiKSaZNGKZZIqt/JAhMzSY2hHLwhGEOFDrXgjWFr85UlwZzODMDoT58PrU04VlbhN8+0N4lHfLmZCKpiQ==} - '@unocss/preset-web-fonts@0.60.3': - resolution: {integrity: sha512-uYHvnqgLDawG3o9oBbasPWbSZ93kzk2JQBcH6xmHh7xqYtRdHqVbUjVU1zIqSjXm19SxFriSrNTl4ct2+/pJIg==} + '@unocss/preset-web-fonts@0.60.4': + resolution: {integrity: sha512-COfxOQcREFgpsm6nw234pxrr1EV1zWUVYXBZjlH+vk7x8EhaS5BPAXqN6SneIVTTDvEE9U4opAaoEYz5A3XWaQ==} - '@unocss/preset-wind@0.60.3': - resolution: {integrity: sha512-q7yDJ/SyEkPmPBJvIeHd9Bt50LAu65q7WwKxJYfJkjfJvJUMj6DO8FgPnpeiwBeJh9897m2Ap6zoQ3JqBjPLHQ==} + '@unocss/preset-wind@0.60.4': + resolution: {integrity: sha512-dT/U+RkbL21lDTOP7/mlFZxlBbUAefUzQZINC0BX7vTKvO57G4HxRq62u9xvMGFv38lQ+qXXzKhABVsEPDNpUA==} - '@unocss/reset@0.60.3': - resolution: {integrity: sha512-EuC8gkh8L8WvPOcjS/KqprEJXIKcpBPm+ou5G9D6WgDmJ+TgQrri5oR+QUmOmEnueQkVL7bnkFkIKeg71SJLFA==} + '@unocss/reset@0.60.4': + resolution: {integrity: sha512-MEngG4byIHnfb0osvxqU2gBdBkXPPE4z+G9HeEt3JUadWAp2gggm8ojC1/1PoJF5M31loxGEVVrB0FLSKACw3g==} - '@unocss/rule-utils@0.60.3': - resolution: {integrity: sha512-I47/DcKQ2z12W80+Ffth0K6LzNvqcQPYRWk7KwVemVoEiGYamMV8/s+SbB26Fk9KUFjh+Ns/pGAo4iJZo0ueUQ==} + '@unocss/rule-utils@0.60.4': + resolution: {integrity: sha512-7qUN33NM4T/IwWavm9VIOCZ2+4hLBc0YUGxcMNTDZSFQRQLkWe3N5dOlgwKXtMyMKatZfbIRUKVDUgvEefoCTA==} engines: {node: '>=14'} - '@unocss/scope@0.60.3': - resolution: {integrity: sha512-uDUcBkFe8nRwNiU4YQyrOCjY7/+qFJI/Qr0eouMPOSEsQ6uIXQEWjykqUBJg2fvm0S2vbfBGO9tO/wCDIk5O3w==} + '@unocss/scope@0.60.4': + resolution: {integrity: sha512-AOu/qvi4agy0XfGF3QEBbuxVHkVZHpmU0NMBYuxa0B869YZENT87sTM6DVwtvr75CZvACWxv/hcL3lR68uKBjw==} - '@unocss/transformer-attributify-jsx-babel@0.60.3': - resolution: {integrity: sha512-6WcEFPSaxscGR22dRUcNqY0ippC3/Q/LBVFVSCJh++hoIPVCZbxF505cPq/bOdF2bpNzj9yXW0OJt03nB505Hg==} + '@unocss/transformer-attributify-jsx-babel@0.60.4': + resolution: {integrity: sha512-BL4g2gyLpbseu+fOhkAHKNxYcHcn7brQAjXj5k5Yyy6wpwm43lzHYPZtRPrbLVLniqqAN21FzEbtJXCPIHKlHA==} - '@unocss/transformer-attributify-jsx@0.60.3': - resolution: {integrity: sha512-zcPu4tUm/1EnqcFpf6+XzUzfb2BzJBcfNMkFzl/5BSTMECEDgdj4QGBWxnTuSlSZs4digRABGtuAHUO7k1qfgA==} + '@unocss/transformer-attributify-jsx@0.60.4': + resolution: {integrity: sha512-tQwD1T8Juz5F4JHYxTgekCv5olEegAPRZwAgx75pP+X2+PkV670pdXv8zbK0t5q6bvyF53vEVBrgQ9q1xSH9yQ==} - '@unocss/transformer-compile-class@0.60.3': - resolution: {integrity: sha512-j6wiYgtNqMlrctaZUuN4S+vANW0DMb9wW3KbJ2XvB7lXftfY1bbZ3IKenAyFp0ZLdKs69B6irJbCbIS5OAKKXQ==} + '@unocss/transformer-compile-class@0.60.4': + resolution: {integrity: sha512-zIqKQ7javiCb9Q3fbMvx1QVln8OqvAzWwgCVHsPINzDrDi73KXa3eeCU6GNlsd46tzy0Y9ryRIvW73YS+9Oj1w==} - '@unocss/transformer-directives@0.60.3': - resolution: {integrity: sha512-JuFpxyB1yvS2YoiguO5+8Ou6k9yyojZCnnDYXXZqMGLp1KdLiDcAPZQyShoD5HLzPGHtAbQELUz9TcX3VMLEoQ==} + '@unocss/transformer-directives@0.60.4': + resolution: {integrity: sha512-u3fQI8RszMhUevhJICtQ/bNpAfbh8MEXQf7YNnzUvLvbXGkkoieyU5mj0ray6fbToqxfxVceQtXYcFYIuf4aNg==} - '@unocss/transformer-variant-group@0.60.3': - resolution: {integrity: sha512-jQg0+W49jA7Z+4mRQbZWZKV6aXJXQfAHRC3oo4C9vEyTXL2jb952K12XVcJhXnbLYpnUKwytR+vbshXMIHWZwA==} + '@unocss/transformer-variant-group@0.60.4': + resolution: {integrity: sha512-R4d16G7s3fDXj9prUNFnJi8cZvH8/XZsqiKDzCBjXNKrbf9zp7YnWD2VaMFjUISgW5kSQjQNSWK84soVNWq3UQ==} - '@unocss/vite@0.60.3': - resolution: {integrity: sha512-I3EOR3g245IGDp3DS17AQAMwNQrh6L6kIlXG3+wt5IZ1zu1ahZmKA8/xxh6oo2TNdu4rI6nQbcLIRn+8eSyfQw==} + '@unocss/vite@0.60.4': + resolution: {integrity: sha512-af9hhtW11geF56cotKUE16Fr+FirTdV/Al/usjKJ6P5hnCEQnqSHXQDFXL5Y6vXwcvLDmOhHYNrVR8duKgC8Mw==} peerDependencies: vite: 5.2.12 @@ -2890,17 +2856,9 @@ packages: vue: optional: true - '@vue/babel-helper-vue-transform-on@1.1.5': - resolution: {integrity: sha512-SgUymFpMoAyWeYWLAY+MkCK3QEROsiUnfaw5zxOVD/M64KQs8D/4oK6Q5omVA2hnvEOE0SCkH2TZxs/jnnUj7w==} - '@vue/babel-helper-vue-transform-on@1.2.2': resolution: {integrity: sha512-nOttamHUR3YzdEqdM/XXDyCSdxMA9VizUKoroLX6yTyRtggzQMHXcmwh8a7ZErcJttIBIc9s68a1B8GZ+Dmvsw==} - '@vue/babel-plugin-jsx@1.1.5': - resolution: {integrity: sha512-nKs1/Bg9U1n3qSWnsHhCVQtAzI6aQXqua8j/bZrau8ywT1ilXQbK4FwEJGmU8fV7tcpuFvWmmN7TMmV1OBma1g==} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@vue/babel-plugin-jsx@1.2.2': resolution: {integrity: sha512-nYTkZUVTu4nhP199UoORePsql0l+wj7v/oyQjtThUVhJl1U+6qHuoVhIvR3bf7eVKjbCK+Cs2AWd7mi9Mpz9rA==} peerDependencies: @@ -3701,8 +3659,8 @@ packages: engines: {node: '>=4'} hasBin: true - cssnano-preset-default@7.0.1: - resolution: {integrity: sha512-Fumyr+uZMcjYQeuHssAZxn0cKj3cdQc5GcxkBcmEzISGB+UW9CLNlU4tBOJbJGcPukFDlicG32eFbrc8K9V5pw==} + cssnano-preset-default@7.0.2: + resolution: {integrity: sha512-z95kGKZx8VWHfERj7LFzuiTxylbvEp07ZEYaFu+t6bFyNOXLd/+3oPyNaY7ISwcrfHFCkt8OfRo4IZxVRJZ7dg==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: postcss: ^8.4.31 @@ -3713,8 +3671,8 @@ packages: peerDependencies: postcss: ^8.4.31 - cssnano@7.0.1: - resolution: {integrity: sha512-917Mej/4SdI7b55atsli3sU4MOJ9XDoKgnlCtQtXYj8XUFcM3riTuYHyqBBnnskawW+zWwp0KxJzpEUodlpqUg==} + cssnano@7.0.2: + resolution: {integrity: sha512-LXm/Xx6TNLzfHM2lBaIQHfvtdW5QfdbyLzfJAWZrclCAb47yVa0/yJG69+amcw3Lq0YZ+kyU40rbsMPLcMt9aw==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: postcss: ^8.4.31 @@ -4130,8 +4088,8 @@ packages: resolution: {integrity: sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@9.3.0: - resolution: {integrity: sha512-5Iv4CsZW030lpUqHBapdPo3MJetAPtejVW8B84GIcIIv8+ohFaddXsrn1Gn8uD9ijDb+kcYKFUVmC8qG8B2ORQ==} + eslint@9.4.0: + resolution: {integrity: sha512-sjc7Y8cUD1IlwYcTS9qPSvGjAC8Ne9LctpxKKu3x/1IC9bnOg98Zy6GxEJUfr1NojMgVPlyANXYns8oE2c1TAA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true @@ -5467,8 +5425,8 @@ packages: typescript: optional: true - mlly@1.7.0: - resolution: {integrity: sha512-U9SDaXGEREBYQgfejV97coK0UL1r+qnF2SyO9A3qcI8MzKnsIFKHNVEkrDyNncQTKQQumsasmeq84eNMdBfsNQ==} + mlly@1.7.1: + resolution: {integrity: sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA==} mri@1.2.0: resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} @@ -5949,14 +5907,14 @@ packages: postcss-media-query-parser@0.2.3: resolution: {integrity: sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==} - postcss-merge-longhand@7.0.0: - resolution: {integrity: sha512-0X8I4/9+G03X5/5NnrfopG/YEln2XU8heDh7YqBaiq2SeaKIG3n66ShZPjIolmVuLBQ0BEm3yS8o1mlCLHdW7A==} + postcss-merge-longhand@7.0.1: + resolution: {integrity: sha512-qZlD26hnqSTMxSSOMS8+QCeRWtqOdMKeQHvHcBhjL3mJxKUs47cvO1Y1x3iTdYIk3ioMcRHTiy229TT0mEMH/A==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: postcss: ^8.4.31 - postcss-merge-rules@7.0.0: - resolution: {integrity: sha512-Zty3VlOsD6VSjBMu6PiHCVpLegtBT/qtZRVBcSeyEZ6q1iU5qTYT0WtEoLRV+YubZZguS5/ycfP+NRiKfjv6aw==} + postcss-merge-rules@7.0.1: + resolution: {integrity: sha512-bb8McYQbo2etgs0uVt6AfngajACK3FHSVP3sGLhprrjbtHJWgG03JZ4KKBlJ8/5Fb8/Rr+mMKaybMYeoYrAg0A==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: postcss: ^8.4.31 @@ -5979,8 +5937,8 @@ packages: peerDependencies: postcss: ^8.4.31 - postcss-minify-selectors@7.0.0: - resolution: {integrity: sha512-f00CExZhD6lNw2vTZbcnmfxVgaVKzUw6IRsIFX3JTT8GdsoABc1WnhhGwL1i8YPJ3sSWw39fv7XPtvLb+3Uitw==} + postcss-minify-selectors@7.0.1: + resolution: {integrity: sha512-YfIbGtcgMFquPxV2L/ASs36ZS4DsgfcDX9tQ8cTEIvBTv+0GXFKtcvvpi9tCKto/+DWGWYKMCESFG3Pnan0Feg==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: postcss: ^8.4.31 @@ -6085,14 +6043,18 @@ packages: resolution: {integrity: sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==} engines: {node: '>=4'} - postcss-svgo@7.0.0: - resolution: {integrity: sha512-Xj5DRdvA97yRy3wjbCH2NKXtDUwEnph6EHr5ZXszsBVKCNrKXYBjzAXqav7/Afz5WwJ/1peZoTguCEJIg7ytmA==} + postcss-selector-parser@6.1.0: + resolution: {integrity: sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==} + engines: {node: '>=4'} + + postcss-svgo@7.0.1: + resolution: {integrity: sha512-0WBUlSL4lhD9rA5k1e5D8EN5wCEyZD6HJk0jIvRxl+FDVOMlJ7DePHYWGGVc5QRqrJ3/06FTXM0bxjmJpmTPSA==} engines: {node: ^18.12.0 || ^20.9.0 || >= 18} peerDependencies: postcss: ^8.4.31 - postcss-unique-selectors@7.0.0: - resolution: {integrity: sha512-NYFqcft7vVQMZlQPsMdMPy+qU/zDpy95Malpw4GeA9ZZjM6dVXDshXtDmLc0m4WCD6XeZCJqjTfPT1USsdt+rA==} + postcss-unique-selectors@7.0.1: + resolution: {integrity: sha512-MH7QE/eKUftTB5ta40xcHLl7hkZjgDFydpfTK+QWXeHxghVt3VoPqYL5/G+zYZPPIs+8GuqFXSTgxBSoB1RZtQ==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: postcss: ^8.4.31 @@ -6114,8 +6076,8 @@ packages: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} - prettier@3.2.5: - resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==} + prettier@3.3.1: + resolution: {integrity: sha512-7CAwy5dRsxs8PHXT3twixW9/OEll8MLE0VRPCJyl7CkS6VHGPSlsVaWTiASPTyGyYRyApxlaWTzwUxVNrhcwDg==} engines: {node: '>=14'} hasBin: true @@ -6718,8 +6680,8 @@ packages: strip-literal@2.1.0: resolution: {integrity: sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==} - stylehacks@7.0.0: - resolution: {integrity: sha512-47Nw4pQ6QJb4CA6dzF2m9810sjQik4dfk4UwAm5wlwhrW3syzZKF8AR4/cfO3Cr6lsFgAoznQq0Wg57qhjTA2A==} + stylehacks@7.0.1: + resolution: {integrity: sha512-PnrT4HzajnxbjfChpeBKLSpSykilnGBlD+pIffCoT5KbLur9fcL8uKRQJJap85byR2wCYZl/4Otk5eq76qeZxQ==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: postcss: ^8.4.31 @@ -6747,8 +6709,8 @@ packages: svg-tags@1.0.0: resolution: {integrity: sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==} - svgo@3.2.0: - resolution: {integrity: sha512-4PP6CMW/V7l/GmKRKzsLR8xxjdHTV4IMvhTnpuHwwBazSIlw5W/5SmPjN8Dwyt7lKbSJrRDgp4t9ph0HgChFBQ==} + svgo@3.3.2: + resolution: {integrity: sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==} engines: {node: '>=14.0.0'} hasBin: true @@ -6960,8 +6922,8 @@ packages: unenv@1.9.0: resolution: {integrity: sha512-QKnFNznRxmbOF1hDgzpqrlIf6NC5sbZ2OJ+5Wl3OX8uM+LUJXbj4TXvLJCtwbPTmbMHCLIz6JLKNinNsMShK9g==} - unhead@1.9.11: - resolution: {integrity: sha512-AoX0hOBrpYM5ctX3rNPaKeHkhybIMrrirb+NlonRBMHy/YkodO5m6mretYEe17bu9mQoeU2rnEWRm36MXtG4OQ==} + unhead@1.9.12: + resolution: {integrity: sha512-s6VxcTV45hy8c/IioKQOonFnAO+kBOSpgDfqEHhnU0YVSQYaRPEp9pzW1qSPf0lx+bg9RKeOQyNNbSGGUP26aQ==} unicode-emoji-modifier-base@1.0.0: resolution: {integrity: sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==} @@ -7007,11 +6969,11 @@ packages: resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} engines: {node: '>= 10.0.0'} - unocss@0.60.3: - resolution: {integrity: sha512-pUBbpgGRKCa6oB/LrGEFBWP2/2E1ZOY8XO7aVJKo2x10rqLS8tGykn1VoBUgbGJsv/8W8tskTVz+RFbCyKP+kA==} + unocss@0.60.4: + resolution: {integrity: sha512-KtYVzm1sV1J7hpXFvILPZiJVTni+XzC2vJzKYFTEe80fEGsrL+572YjS3QjZB52TMSppLYJk6WIVTb4mE4RmvQ==} engines: {node: '>=14'} peerDependencies: - '@unocss/webpack': 0.60.3 + '@unocss/webpack': 0.60.4 vite: 5.2.12 peerDependenciesMeta: '@unocss/webpack': @@ -7423,6 +7385,9 @@ packages: webpack-virtual-modules@0.6.1: resolution: {integrity: sha512-poXpCylU7ExuvZK8z+On3kX+S8o/2dQ/SVYueKA0D4WEMXROXgY8Ez50/bQEUmvoSMMrWcrJqCHuhAbsiwg7Dg==} + webpack-virtual-modules@0.6.2: + resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==} + webpack@5.91.0: resolution: {integrity: sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw==} engines: {node: '>=10.13.0'} @@ -7659,10 +7624,6 @@ snapshots: '@jridgewell/trace-mapping': 0.3.25 jsesc: 2.5.2 - '@babel/helper-annotate-as-pure@7.22.5': - dependencies: - '@babel/types': 7.24.5 - '@babel/helper-annotate-as-pure@7.24.7': dependencies: '@babel/types': 7.24.7 @@ -7683,19 +7644,6 @@ snapshots: lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-create-class-features-plugin@7.24.1(@babel/core@7.24.5)': - dependencies: - '@babel/core': 7.24.5 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-member-expression-to-functions': 7.23.0 - '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.5) - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/helper-split-export-declaration': 7.24.5 - semver: 6.3.1 - '@babel/helper-create-class-features-plugin@7.24.7(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 @@ -7720,7 +7668,7 @@ snapshots: '@babel/helper-function-name@7.23.0': dependencies: '@babel/template': 7.24.0 - '@babel/types': 7.24.5 + '@babel/types': 7.24.7 '@babel/helper-function-name@7.24.7': dependencies: @@ -7729,16 +7677,12 @@ snapshots: '@babel/helper-hoist-variables@7.22.5': dependencies: - '@babel/types': 7.24.5 + '@babel/types': 7.24.7 '@babel/helper-hoist-variables@7.24.7': dependencies: '@babel/types': 7.24.7 - '@babel/helper-member-expression-to-functions@7.23.0': - dependencies: - '@babel/types': 7.24.5 - '@babel/helper-member-expression-to-functions@7.24.7': dependencies: '@babel/traverse': 7.24.7 @@ -7748,11 +7692,11 @@ snapshots: '@babel/helper-module-imports@7.22.15': dependencies: - '@babel/types': 7.24.5 + '@babel/types': 7.24.7 '@babel/helper-module-imports@7.24.3': dependencies: - '@babel/types': 7.24.5 + '@babel/types': 7.24.7 '@babel/helper-module-imports@7.24.7': dependencies: @@ -7781,25 +7725,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-optimise-call-expression@7.22.5': - dependencies: - '@babel/types': 7.24.5 - '@babel/helper-optimise-call-expression@7.24.7': dependencies: '@babel/types': 7.24.7 - '@babel/helper-plugin-utils@7.24.0': {} - '@babel/helper-plugin-utils@7.24.7': {} - '@babel/helper-replace-supers@7.24.1(@babel/core@7.24.5)': - dependencies: - '@babel/core': 7.24.5 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-member-expression-to-functions': 7.23.0 - '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-replace-supers@7.24.7(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 @@ -7811,7 +7742,7 @@ snapshots: '@babel/helper-simple-access@7.24.5': dependencies: - '@babel/types': 7.24.5 + '@babel/types': 7.24.7 '@babel/helper-simple-access@7.24.7': dependencies: @@ -7820,10 +7751,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-skip-transparent-expression-wrappers@7.22.5': - dependencies: - '@babel/types': 7.24.5 - '@babel/helper-skip-transparent-expression-wrappers@7.24.7': dependencies: '@babel/traverse': 7.24.7 @@ -7833,7 +7760,7 @@ snapshots: '@babel/helper-split-export-declaration@7.24.5': dependencies: - '@babel/types': 7.24.5 + '@babel/types': 7.24.7 '@babel/helper-split-export-declaration@7.24.7': dependencies: @@ -7886,64 +7813,50 @@ snapshots: dependencies: '@babel/types': 7.24.7 - '@babel/plugin-proposal-decorators@7.23.2(@babel/core@7.24.5)': - dependencies: - '@babel/core': 7.24.5 - '@babel/helper-create-class-features-plugin': 7.24.1(@babel/core@7.24.5) - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.5) - '@babel/helper-split-export-declaration': 7.24.5 - '@babel/plugin-syntax-decorators': 7.22.10(@babel/core@7.24.5) - - '@babel/plugin-syntax-decorators@7.22.10(@babel/core@7.24.5)': - dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.0 - - '@babel/plugin-syntax-import-attributes@7.22.5(@babel/core@7.24.5)': - dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.0 - - '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.5)': - dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.0 - - '@babel/plugin-syntax-jsx@7.24.1(@babel/core@7.24.5)': - dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.0 - - '@babel/plugin-syntax-jsx@7.24.1(@babel/core@7.24.7)': + '@babel/plugin-proposal-decorators@7.23.2(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-create-class-features-plugin': 7.24.7(@babel/core@7.24.7) + '@babel/helper-plugin-utils': 7.24.7 + '@babel/helper-replace-supers': 7.24.7(@babel/core@7.24.7) + '@babel/helper-split-export-declaration': 7.24.7 + '@babel/plugin-syntax-decorators': 7.22.10(@babel/core@7.24.7) + transitivePeerDependencies: + - supports-color - '@babel/plugin-syntax-typescript@7.24.1(@babel/core@7.24.5)': + '@babel/plugin-syntax-decorators@7.22.10(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 + + '@babel/plugin-syntax-import-attributes@7.22.5(@babel/core@7.24.7)': + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 + + '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.7)': + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 + + '@babel/plugin-syntax-jsx@7.24.7(@babel/core@7.24.7)': + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-syntax-typescript@7.24.7(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-transform-modules-commonjs@7.24.1(@babel/core@7.24.5)': + '@babel/plugin-transform-modules-commonjs@7.24.7(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.24.5 - '@babel/helper-module-transforms': 7.24.5(@babel/core@7.24.5) - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-simple-access': 7.24.5 - - '@babel/plugin-transform-typescript@7.24.1(@babel/core@7.24.5)': - dependencies: - '@babel/core': 7.24.5 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.24.1(@babel/core@7.24.5) - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-typescript': 7.24.1(@babel/core@7.24.5) + '@babel/core': 7.24.7 + '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.7) + '@babel/helper-plugin-utils': 7.24.7 + '@babel/helper-simple-access': 7.24.7 + transitivePeerDependencies: + - supports-color '@babel/plugin-transform-typescript@7.24.7(@babel/core@7.24.7)': dependencies: @@ -7955,14 +7868,16 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/preset-typescript@7.24.1(@babel/core@7.24.5)': + '@babel/preset-typescript@7.24.7(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-validator-option': 7.23.5 - '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-transform-typescript': 7.24.1(@babel/core@7.24.5) + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/helper-validator-option': 7.24.7 + '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-modules-commonjs': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-typescript': 7.24.7(@babel/core@7.24.7) + transitivePeerDependencies: + - supports-color '@babel/runtime@7.23.9': dependencies: @@ -8314,13 +8229,21 @@ snapshots: '@esbuild/win32-x64@0.21.4': optional: true - '@eslint-community/eslint-utils@4.4.0(eslint@9.3.0)': + '@eslint-community/eslint-utils@4.4.0(eslint@9.4.0)': dependencies: - eslint: 9.3.0 + eslint: 9.4.0 eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.10.0': {} + '@eslint/config-array@0.15.1': + dependencies: + '@eslint/object-schema': 2.1.3 + debug: 4.3.4 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + '@eslint/eslintrc@3.1.0': dependencies: ajv: 6.12.6 @@ -8335,7 +8258,9 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@9.3.0': {} + '@eslint/js@9.4.0': {} + + '@eslint/object-schema@2.1.3': {} '@fastify/busboy@2.0.0': {} @@ -8349,23 +8274,13 @@ snapshots: '@floating-ui/utils@0.2.1': {} - '@humanwhocodes/config-array@0.13.0': - dependencies: - '@humanwhocodes/object-schema': 2.0.3 - debug: 4.3.4 - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color - '@humanwhocodes/module-importer@1.0.1': {} - '@humanwhocodes/object-schema@2.0.3': {} - '@humanwhocodes/retry@0.3.0': {} '@iconify/types@2.0.0': {} - '@iconify/utils@2.1.23': + '@iconify/utils@2.1.24': dependencies: '@antfu/install-pkg': 0.1.1 '@antfu/utils': 0.7.8 @@ -8373,7 +8288,7 @@ snapshots: debug: 4.3.4 kolorist: 1.8.0 local-pkg: 0.5.0 - mlly: 1.7.0 + mlly: 1.7.1 transitivePeerDependencies: - supports-color @@ -8399,7 +8314,7 @@ snapshots: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.5 '@types/istanbul-reports': 3.0.3 - '@types/node': 20.12.13 + '@types/node': 20.14.2 '@types/yargs': 17.0.28 chalk: 4.1.2 @@ -8555,7 +8470,7 @@ snapshots: '@nuxt/devalue@2.0.2': {} - '@nuxt/devtools-kit@1.3.2(nuxt@packages+nuxt)(vite@5.2.12(@types/node@20.12.12)(sass@1.69.4)(terser@5.27.0))': + '@nuxt/devtools-kit@1.3.3(nuxt@packages+nuxt)(vite@5.2.12(@types/node@20.12.12)(sass@1.69.4)(terser@5.27.0))': dependencies: '@nuxt/kit': link:packages/kit '@nuxt/schema': link:packages/schema @@ -8563,7 +8478,7 @@ snapshots: nuxt: link:packages/nuxt vite: 5.2.12(@types/node@20.12.12)(sass@1.69.4)(terser@5.27.0) - '@nuxt/devtools-wizard@1.3.2': + '@nuxt/devtools-wizard@1.3.3': dependencies: consola: 3.2.3 diff: 5.2.0 @@ -8576,13 +8491,13 @@ snapshots: rc9: 2.1.2 semver: 7.6.2 - '@nuxt/devtools@1.3.2(@unocss/reset@0.60.3)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.60.3(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.12(@types/node@20.12.12)(sass@1.69.4)(terser@5.27.0)))(vite@5.2.12(@types/node@20.12.12)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5))': + '@nuxt/devtools@1.3.3(@unocss/reset@0.60.4)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.60.4(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.12(@types/node@20.12.12)(sass@1.69.4)(terser@5.27.0)))(vite@5.2.12(@types/node@20.12.12)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5))': dependencies: '@antfu/utils': 0.7.8 - '@nuxt/devtools-kit': 1.3.2(nuxt@packages+nuxt)(vite@5.2.12(@types/node@20.12.12)(sass@1.69.4)(terser@5.27.0)) - '@nuxt/devtools-wizard': 1.3.2 + '@nuxt/devtools-kit': 1.3.3(nuxt@packages+nuxt)(vite@5.2.12(@types/node@20.12.12)(sass@1.69.4)(terser@5.27.0)) + '@nuxt/devtools-wizard': 1.3.3 '@nuxt/kit': link:packages/kit - '@vue/devtools-applet': 7.1.3(@unocss/reset@0.60.3)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(unocss@0.60.3(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.12(@types/node@20.12.12)(sass@1.69.4)(terser@5.27.0)))(vite@5.2.12(@types/node@20.12.12)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)) + '@vue/devtools-applet': 7.1.3(@unocss/reset@0.60.4)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(unocss@0.60.4(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.12(@types/node@20.12.12)(sass@1.69.4)(terser@5.27.0)))(vite@5.2.12(@types/node@20.12.12)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)) '@vue/devtools-core': 7.1.3(vite@5.2.12(@types/node@20.12.12)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)) '@vue/devtools-kit': 7.1.3(vue@3.4.27(typescript@5.4.5)) birpc: 0.2.17 @@ -8641,35 +8556,35 @@ snapshots: - utf-8-validate - vue - '@nuxt/eslint-config@0.3.13(eslint@9.3.0)(typescript@5.4.5)': + '@nuxt/eslint-config@0.3.13(eslint@9.4.0)(typescript@5.4.5)': dependencies: - '@eslint/js': 9.3.0 - '@nuxt/eslint-plugin': 0.3.13(eslint@9.3.0)(typescript@5.4.5) + '@eslint/js': 9.4.0 + '@nuxt/eslint-plugin': 0.3.13(eslint@9.4.0)(typescript@5.4.5) '@rushstack/eslint-patch': 1.10.3 - '@stylistic/eslint-plugin': 2.1.0(eslint@9.3.0)(typescript@5.4.5) - '@typescript-eslint/eslint-plugin': 7.9.0(@typescript-eslint/parser@7.9.0(eslint@9.3.0)(typescript@5.4.5))(eslint@9.3.0)(typescript@5.4.5) - '@typescript-eslint/parser': 7.9.0(eslint@9.3.0)(typescript@5.4.5) - eslint: 9.3.0 + '@stylistic/eslint-plugin': 2.1.0(eslint@9.4.0)(typescript@5.4.5) + '@typescript-eslint/eslint-plugin': 7.9.0(@typescript-eslint/parser@7.9.0(eslint@9.4.0)(typescript@5.4.5))(eslint@9.4.0)(typescript@5.4.5) + '@typescript-eslint/parser': 7.9.0(eslint@9.4.0)(typescript@5.4.5) + eslint: 9.4.0 eslint-config-flat-gitignore: 0.1.5 eslint-flat-config-utils: 0.2.5 - eslint-plugin-import-x: 0.5.0(eslint@9.3.0)(typescript@5.4.5) - eslint-plugin-jsdoc: 48.2.5(eslint@9.3.0) - eslint-plugin-regexp: 2.5.0(eslint@9.3.0) - eslint-plugin-unicorn: 53.0.0(eslint@9.3.0) - eslint-plugin-vue: 9.26.0(eslint@9.3.0) + eslint-plugin-import-x: 0.5.0(eslint@9.4.0)(typescript@5.4.5) + eslint-plugin-jsdoc: 48.2.5(eslint@9.4.0) + eslint-plugin-regexp: 2.5.0(eslint@9.4.0) + eslint-plugin-unicorn: 53.0.0(eslint@9.4.0) + eslint-plugin-vue: 9.26.0(eslint@9.4.0) globals: 15.2.0 pathe: 1.1.2 tslib: 2.6.2 - vue-eslint-parser: 9.4.2(eslint@9.3.0) + vue-eslint-parser: 9.4.2(eslint@9.4.0) transitivePeerDependencies: - supports-color - typescript - '@nuxt/eslint-plugin@0.3.13(eslint@9.3.0)(typescript@5.4.5)': + '@nuxt/eslint-plugin@0.3.13(eslint@9.4.0)(typescript@5.4.5)': dependencies: '@typescript-eslint/types': 7.9.0 - '@typescript-eslint/utils': 7.9.0(eslint@9.3.0)(typescript@5.4.5) - eslint: 9.3.0 + '@typescript-eslint/utils': 7.9.0(eslint@9.4.0)(typescript@5.4.5) + eslint: 9.4.0 transitivePeerDependencies: - supports-color - typescript @@ -8702,7 +8617,7 @@ snapshots: rc9: 2.1.2 std-env: 3.7.0 - '@nuxt/test-utils@3.13.1(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.27)(vue@3.4.27(typescript@5.4.5)))(@vue/test-utils@2.4.6)(h3@1.11.1)(happy-dom@14.12.0)(nitropack@2.9.6(encoding@0.1.13))(playwright-core@1.44.1)(vite@5.2.12(@types/node@20.12.13)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.12.13)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.2(vue@3.4.27(typescript@5.4.5)))(vue@3.4.27(typescript@5.4.5))': + '@nuxt/test-utils@3.13.1(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.27)(vue@3.4.27(typescript@5.4.5)))(@vue/test-utils@2.4.6)(h3@1.11.1)(happy-dom@14.12.0)(nitropack@2.9.6(encoding@0.1.13))(playwright-core@1.44.1)(vite@5.2.12(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.2)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.2(vue@3.4.27(typescript@5.4.5)))(vue@3.4.27(typescript@5.4.5))': dependencies: '@nuxt/kit': link:packages/kit '@nuxt/schema': link:packages/schema @@ -8728,8 +8643,8 @@ snapshots: ufo: 1.5.3 unenv: 1.9.0 unplugin: 1.10.1 - vite: 5.2.12(@types/node@20.12.13)(sass@1.69.4)(terser@5.27.0) - vitest-environment-nuxt: 1.0.0(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.27)(vue@3.4.27(typescript@5.4.5)))(@vue/test-utils@2.4.6)(h3@1.11.1)(happy-dom@14.12.0)(nitropack@2.9.6(encoding@0.1.13))(playwright-core@1.44.1)(vite@5.2.12(@types/node@20.12.13)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.12.13)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.2(vue@3.4.27(typescript@5.4.5)))(vue@3.4.27(typescript@5.4.5)) + vite: 5.2.12(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) + vitest-environment-nuxt: 1.0.0(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.27)(vue@3.4.27(typescript@5.4.5)))(@vue/test-utils@2.4.6)(h3@1.11.1)(happy-dom@14.12.0)(nitropack@2.9.6(encoding@0.1.13))(playwright-core@1.44.1)(vite@5.2.12(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.2)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.2(vue@3.4.27(typescript@5.4.5)))(vue@3.4.27(typescript@5.4.5)) vue: 3.4.27(typescript@5.4.5) vue-router: 4.3.2(vue@3.4.27(typescript@5.4.5)) optionalDependencies: @@ -8737,7 +8652,7 @@ snapshots: '@vue/test-utils': 2.4.6 happy-dom: 14.12.0 playwright-core: 1.44.1 - vitest: 1.6.0(@types/node@20.12.13)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0) + vitest: 1.6.0(@types/node@20.14.2)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0) '@nuxtjs/mdc@0.5.0': dependencies: @@ -8896,6 +8811,13 @@ snapshots: optionalDependencies: rollup: 4.18.0 + '@rollup/plugin-replace@5.0.7(rollup@4.18.0)': + dependencies: + '@rollup/pluginutils': 5.1.0(rollup@4.18.0) + magic-string: 0.30.10 + optionalDependencies: + rollup: 4.18.0 + '@rollup/plugin-terser@0.4.4(rollup@4.18.0)': dependencies: serialize-javascript: 6.0.2 @@ -9041,49 +8963,49 @@ snapshots: '@sindresorhus/merge-streams@4.0.0': {} - '@stylistic/eslint-plugin-js@2.1.0(eslint@9.3.0)': + '@stylistic/eslint-plugin-js@2.1.0(eslint@9.4.0)': dependencies: '@types/eslint': 8.56.10 acorn: 8.11.3 - eslint: 9.3.0 + eslint: 9.4.0 eslint-visitor-keys: 4.0.0 espree: 10.0.1 - '@stylistic/eslint-plugin-jsx@2.1.0(eslint@9.3.0)': + '@stylistic/eslint-plugin-jsx@2.1.0(eslint@9.4.0)': dependencies: - '@stylistic/eslint-plugin-js': 2.1.0(eslint@9.3.0) + '@stylistic/eslint-plugin-js': 2.1.0(eslint@9.4.0) '@types/eslint': 8.56.10 - eslint: 9.3.0 + eslint: 9.4.0 estraverse: 5.3.0 picomatch: 4.0.2 - '@stylistic/eslint-plugin-plus@2.1.0(eslint@9.3.0)(typescript@5.4.5)': + '@stylistic/eslint-plugin-plus@2.1.0(eslint@9.4.0)(typescript@5.4.5)': dependencies: '@types/eslint': 8.56.10 - '@typescript-eslint/utils': 7.9.0(eslint@9.3.0)(typescript@5.4.5) - eslint: 9.3.0 + '@typescript-eslint/utils': 7.9.0(eslint@9.4.0)(typescript@5.4.5) + eslint: 9.4.0 transitivePeerDependencies: - supports-color - typescript - '@stylistic/eslint-plugin-ts@2.1.0(eslint@9.3.0)(typescript@5.4.5)': + '@stylistic/eslint-plugin-ts@2.1.0(eslint@9.4.0)(typescript@5.4.5)': dependencies: - '@stylistic/eslint-plugin-js': 2.1.0(eslint@9.3.0) + '@stylistic/eslint-plugin-js': 2.1.0(eslint@9.4.0) '@types/eslint': 8.56.10 - '@typescript-eslint/utils': 7.9.0(eslint@9.3.0)(typescript@5.4.5) - eslint: 9.3.0 + '@typescript-eslint/utils': 7.9.0(eslint@9.4.0)(typescript@5.4.5) + eslint: 9.4.0 transitivePeerDependencies: - supports-color - typescript - '@stylistic/eslint-plugin@2.1.0(eslint@9.3.0)(typescript@5.4.5)': + '@stylistic/eslint-plugin@2.1.0(eslint@9.4.0)(typescript@5.4.5)': dependencies: - '@stylistic/eslint-plugin-js': 2.1.0(eslint@9.3.0) - '@stylistic/eslint-plugin-jsx': 2.1.0(eslint@9.3.0) - '@stylistic/eslint-plugin-plus': 2.1.0(eslint@9.3.0)(typescript@5.4.5) - '@stylistic/eslint-plugin-ts': 2.1.0(eslint@9.3.0)(typescript@5.4.5) + '@stylistic/eslint-plugin-js': 2.1.0(eslint@9.4.0) + '@stylistic/eslint-plugin-jsx': 2.1.0(eslint@9.4.0) + '@stylistic/eslint-plugin-plus': 2.1.0(eslint@9.4.0)(typescript@5.4.5) + '@stylistic/eslint-plugin-ts': 2.1.0(eslint@9.4.0)(typescript@5.4.5) '@types/eslint': 8.56.10 - eslint: 9.3.0 + eslint: 9.4.0 transitivePeerDependencies: - supports-color - typescript @@ -9121,14 +9043,14 @@ snapshots: '@types/clean-css@4.2.11': dependencies: - '@types/node': 20.12.13 + '@types/node': 20.14.2 source-map: 0.6.1 '@types/clear@0.1.4': {} '@types/connect@3.4.37': dependencies: - '@types/node': 20.12.13 + '@types/node': 20.14.2 '@types/debug@4.1.12': dependencies: @@ -9173,7 +9095,7 @@ snapshots: '@types/http-proxy@1.17.14': dependencies: - '@types/node': 20.12.13 + '@types/node': 20.14.2 '@types/istanbul-lib-coverage@2.0.5': {} @@ -9189,7 +9111,7 @@ snapshots: '@types/jsonfile@6.1.2': dependencies: - '@types/node': 20.12.13 + '@types/node': 20.14.2 '@types/lodash-es@4.17.12': dependencies: @@ -9205,13 +9127,13 @@ snapshots: '@types/node-sass@4.11.6': dependencies: - '@types/node': 20.12.13 + '@types/node': 20.14.2 '@types/node@20.12.12': dependencies: undici-types: 5.26.5 - '@types/node@20.12.13': + '@types/node@20.14.2': dependencies: undici-types: 5.26.5 @@ -9272,17 +9194,17 @@ snapshots: '@types/webpack-sources@3.2.1': dependencies: - '@types/node': 20.12.13 + '@types/node': 20.14.2 '@types/source-list-map': 0.1.4 source-map: 0.7.4 '@types/webpack-virtual-modules@0.4.2': dependencies: - webpack-virtual-modules: 0.6.1 + webpack-virtual-modules: 0.6.2 '@types/webpack@4.41.34': dependencies: - '@types/node': 20.12.13 + '@types/node': 20.14.2 '@types/tapable': 1.0.10 '@types/uglify-js': 3.17.3 '@types/webpack-sources': 3.2.1 @@ -9295,15 +9217,15 @@ snapshots: dependencies: '@types/yargs-parser': 21.0.1 - '@typescript-eslint/eslint-plugin@7.9.0(@typescript-eslint/parser@7.9.0(eslint@9.3.0)(typescript@5.4.5))(eslint@9.3.0)(typescript@5.4.5)': + '@typescript-eslint/eslint-plugin@7.9.0(@typescript-eslint/parser@7.9.0(eslint@9.4.0)(typescript@5.4.5))(eslint@9.4.0)(typescript@5.4.5)': dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 7.9.0(eslint@9.3.0)(typescript@5.4.5) + '@typescript-eslint/parser': 7.9.0(eslint@9.4.0)(typescript@5.4.5) '@typescript-eslint/scope-manager': 7.9.0 - '@typescript-eslint/type-utils': 7.9.0(eslint@9.3.0)(typescript@5.4.5) - '@typescript-eslint/utils': 7.9.0(eslint@9.3.0)(typescript@5.4.5) + '@typescript-eslint/type-utils': 7.9.0(eslint@9.4.0)(typescript@5.4.5) + '@typescript-eslint/utils': 7.9.0(eslint@9.4.0)(typescript@5.4.5) '@typescript-eslint/visitor-keys': 7.9.0 - eslint: 9.3.0 + eslint: 9.4.0 graphemer: 1.4.0 ignore: 5.3.1 natural-compare: 1.4.0 @@ -9313,14 +9235,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@7.9.0(eslint@9.3.0)(typescript@5.4.5)': + '@typescript-eslint/parser@7.9.0(eslint@9.4.0)(typescript@5.4.5)': dependencies: '@typescript-eslint/scope-manager': 7.9.0 '@typescript-eslint/types': 7.9.0 '@typescript-eslint/typescript-estree': 7.9.0(typescript@5.4.5) '@typescript-eslint/visitor-keys': 7.9.0 debug: 4.3.4 - eslint: 9.3.0 + eslint: 9.4.0 optionalDependencies: typescript: 5.4.5 transitivePeerDependencies: @@ -9331,12 +9253,12 @@ snapshots: '@typescript-eslint/types': 7.9.0 '@typescript-eslint/visitor-keys': 7.9.0 - '@typescript-eslint/type-utils@7.9.0(eslint@9.3.0)(typescript@5.4.5)': + '@typescript-eslint/type-utils@7.9.0(eslint@9.4.0)(typescript@5.4.5)': dependencies: '@typescript-eslint/typescript-estree': 7.9.0(typescript@5.4.5) - '@typescript-eslint/utils': 7.9.0(eslint@9.3.0)(typescript@5.4.5) + '@typescript-eslint/utils': 7.9.0(eslint@9.4.0)(typescript@5.4.5) debug: 4.3.4 - eslint: 9.3.0 + eslint: 9.4.0 ts-api-utils: 1.3.0(typescript@5.4.5) optionalDependencies: typescript: 5.4.5 @@ -9360,13 +9282,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@7.9.0(eslint@9.3.0)(typescript@5.4.5)': + '@typescript-eslint/utils@7.9.0(eslint@9.4.0)(typescript@5.4.5)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.3.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.4.0) '@typescript-eslint/scope-manager': 7.9.0 '@typescript-eslint/types': 7.9.0 '@typescript-eslint/typescript-estree': 7.9.0(typescript@5.4.5) - eslint: 9.3.0 + eslint: 9.4.0 transitivePeerDependencies: - supports-color - typescript @@ -9384,60 +9306,60 @@ snapshots: '@ungap/structured-clone@1.2.0': {} - '@unhead/dom@1.9.11': + '@unhead/dom@1.9.12': dependencies: - '@unhead/schema': 1.9.11 - '@unhead/shared': 1.9.11 + '@unhead/schema': 1.9.12 + '@unhead/shared': 1.9.12 - '@unhead/schema@1.9.11': + '@unhead/schema@1.9.12': dependencies: hookable: 5.5.3 zhead: 2.2.4 - '@unhead/shared@1.9.11': + '@unhead/shared@1.9.12': dependencies: - '@unhead/schema': 1.9.11 + '@unhead/schema': 1.9.12 - '@unhead/ssr@1.9.11': + '@unhead/ssr@1.9.12': dependencies: - '@unhead/schema': 1.9.11 - '@unhead/shared': 1.9.11 + '@unhead/schema': 1.9.12 + '@unhead/shared': 1.9.12 - '@unhead/vue@1.9.11(vue@3.4.27(typescript@5.4.5))': + '@unhead/vue@1.9.12(vue@3.4.27(typescript@5.4.5))': dependencies: - '@unhead/schema': 1.9.11 - '@unhead/shared': 1.9.11 + '@unhead/schema': 1.9.12 + '@unhead/shared': 1.9.12 hookable: 5.5.3 - unhead: 1.9.11 + unhead: 1.9.12 vue: 3.4.27(typescript@5.4.5) - '@unocss/astro@0.60.3(rollup@4.18.0)(vite@5.2.12(@types/node@20.12.12)(sass@1.69.4)(terser@5.27.0))': + '@unocss/astro@0.60.4(rollup@4.18.0)(vite@5.2.12(@types/node@20.12.12)(sass@1.69.4)(terser@5.27.0))': dependencies: - '@unocss/core': 0.60.3 - '@unocss/reset': 0.60.3 - '@unocss/vite': 0.60.3(rollup@4.18.0)(vite@5.2.12(@types/node@20.12.12)(sass@1.69.4)(terser@5.27.0)) + '@unocss/core': 0.60.4 + '@unocss/reset': 0.60.4 + '@unocss/vite': 0.60.4(rollup@4.18.0)(vite@5.2.12(@types/node@20.12.12)(sass@1.69.4)(terser@5.27.0)) optionalDependencies: vite: 5.2.12(@types/node@20.12.12)(sass@1.69.4)(terser@5.27.0) transitivePeerDependencies: - rollup - '@unocss/astro@0.60.3(rollup@4.18.0)(vite@5.2.12(@types/node@20.12.13)(sass@1.69.4)(terser@5.27.0))': + '@unocss/astro@0.60.4(rollup@4.18.0)(vite@5.2.12(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))': dependencies: - '@unocss/core': 0.60.3 - '@unocss/reset': 0.60.3 - '@unocss/vite': 0.60.3(rollup@4.18.0)(vite@5.2.12(@types/node@20.12.13)(sass@1.69.4)(terser@5.27.0)) + '@unocss/core': 0.60.4 + '@unocss/reset': 0.60.4 + '@unocss/vite': 0.60.4(rollup@4.18.0)(vite@5.2.12(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) optionalDependencies: - vite: 5.2.12(@types/node@20.12.13)(sass@1.69.4)(terser@5.27.0) + vite: 5.2.12(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) transitivePeerDependencies: - rollup - '@unocss/cli@0.60.3(rollup@4.18.0)': + '@unocss/cli@0.60.4(rollup@4.18.0)': dependencies: '@ampproject/remapping': 2.3.0 '@rollup/pluginutils': 5.1.0(rollup@4.18.0) - '@unocss/config': 0.60.3 - '@unocss/core': 0.60.3 - '@unocss/preset-uno': 0.60.3 + '@unocss/config': 0.60.4 + '@unocss/core': 0.60.4 + '@unocss/preset-uno': 0.60.4 cac: 6.7.14 chokidar: 3.6.0 colorette: 2.0.20 @@ -9449,124 +9371,124 @@ snapshots: transitivePeerDependencies: - rollup - '@unocss/config@0.60.3': + '@unocss/config@0.60.4': dependencies: - '@unocss/core': 0.60.3 + '@unocss/core': 0.60.4 unconfig: 0.3.13 - '@unocss/core@0.60.3': {} + '@unocss/core@0.60.4': {} - '@unocss/extractor-arbitrary-variants@0.60.3': + '@unocss/extractor-arbitrary-variants@0.60.4': dependencies: - '@unocss/core': 0.60.3 + '@unocss/core': 0.60.4 - '@unocss/inspector@0.60.3': + '@unocss/inspector@0.60.4': dependencies: - '@unocss/core': 0.60.3 - '@unocss/rule-utils': 0.60.3 + '@unocss/core': 0.60.4 + '@unocss/rule-utils': 0.60.4 gzip-size: 6.0.0 sirv: 2.0.4 - '@unocss/postcss@0.60.3(postcss@8.4.38)': + '@unocss/postcss@0.60.4(postcss@8.4.38)': dependencies: - '@unocss/config': 0.60.3 - '@unocss/core': 0.60.3 - '@unocss/rule-utils': 0.60.3 + '@unocss/config': 0.60.4 + '@unocss/core': 0.60.4 + '@unocss/rule-utils': 0.60.4 css-tree: 2.3.1 fast-glob: 3.3.2 magic-string: 0.30.10 postcss: 8.4.38 - '@unocss/preset-attributify@0.60.3': + '@unocss/preset-attributify@0.60.4': dependencies: - '@unocss/core': 0.60.3 + '@unocss/core': 0.60.4 - '@unocss/preset-icons@0.60.3': + '@unocss/preset-icons@0.60.4': dependencies: - '@iconify/utils': 2.1.23 - '@unocss/core': 0.60.3 + '@iconify/utils': 2.1.24 + '@unocss/core': 0.60.4 ofetch: 1.3.4 transitivePeerDependencies: - supports-color - '@unocss/preset-mini@0.60.3': + '@unocss/preset-mini@0.60.4': dependencies: - '@unocss/core': 0.60.3 - '@unocss/extractor-arbitrary-variants': 0.60.3 - '@unocss/rule-utils': 0.60.3 + '@unocss/core': 0.60.4 + '@unocss/extractor-arbitrary-variants': 0.60.4 + '@unocss/rule-utils': 0.60.4 - '@unocss/preset-tagify@0.60.3': + '@unocss/preset-tagify@0.60.4': dependencies: - '@unocss/core': 0.60.3 + '@unocss/core': 0.60.4 - '@unocss/preset-typography@0.60.3': + '@unocss/preset-typography@0.60.4': dependencies: - '@unocss/core': 0.60.3 - '@unocss/preset-mini': 0.60.3 + '@unocss/core': 0.60.4 + '@unocss/preset-mini': 0.60.4 - '@unocss/preset-uno@0.60.3': + '@unocss/preset-uno@0.60.4': dependencies: - '@unocss/core': 0.60.3 - '@unocss/preset-mini': 0.60.3 - '@unocss/preset-wind': 0.60.3 - '@unocss/rule-utils': 0.60.3 + '@unocss/core': 0.60.4 + '@unocss/preset-mini': 0.60.4 + '@unocss/preset-wind': 0.60.4 + '@unocss/rule-utils': 0.60.4 - '@unocss/preset-web-fonts@0.60.3': + '@unocss/preset-web-fonts@0.60.4': dependencies: - '@unocss/core': 0.60.3 + '@unocss/core': 0.60.4 ofetch: 1.3.4 - '@unocss/preset-wind@0.60.3': + '@unocss/preset-wind@0.60.4': dependencies: - '@unocss/core': 0.60.3 - '@unocss/preset-mini': 0.60.3 - '@unocss/rule-utils': 0.60.3 + '@unocss/core': 0.60.4 + '@unocss/preset-mini': 0.60.4 + '@unocss/rule-utils': 0.60.4 - '@unocss/reset@0.60.3': {} + '@unocss/reset@0.60.4': {} - '@unocss/rule-utils@0.60.3': + '@unocss/rule-utils@0.60.4': dependencies: - '@unocss/core': 0.60.3 + '@unocss/core': 0.60.4 magic-string: 0.30.10 - '@unocss/scope@0.60.3': {} + '@unocss/scope@0.60.4': {} - '@unocss/transformer-attributify-jsx-babel@0.60.3': + '@unocss/transformer-attributify-jsx-babel@0.60.4': dependencies: - '@babel/core': 7.24.5 - '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.5) - '@babel/preset-typescript': 7.24.1(@babel/core@7.24.5) - '@unocss/core': 0.60.3 + '@babel/core': 7.24.7 + '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.24.7) + '@babel/preset-typescript': 7.24.7(@babel/core@7.24.7) + '@unocss/core': 0.60.4 transitivePeerDependencies: - supports-color - '@unocss/transformer-attributify-jsx@0.60.3': + '@unocss/transformer-attributify-jsx@0.60.4': dependencies: - '@unocss/core': 0.60.3 + '@unocss/core': 0.60.4 - '@unocss/transformer-compile-class@0.60.3': + '@unocss/transformer-compile-class@0.60.4': dependencies: - '@unocss/core': 0.60.3 + '@unocss/core': 0.60.4 - '@unocss/transformer-directives@0.60.3': + '@unocss/transformer-directives@0.60.4': dependencies: - '@unocss/core': 0.60.3 - '@unocss/rule-utils': 0.60.3 + '@unocss/core': 0.60.4 + '@unocss/rule-utils': 0.60.4 css-tree: 2.3.1 - '@unocss/transformer-variant-group@0.60.3': + '@unocss/transformer-variant-group@0.60.4': dependencies: - '@unocss/core': 0.60.3 + '@unocss/core': 0.60.4 - '@unocss/vite@0.60.3(rollup@4.18.0)(vite@5.2.12(@types/node@20.12.12)(sass@1.69.4)(terser@5.27.0))': + '@unocss/vite@0.60.4(rollup@4.18.0)(vite@5.2.12(@types/node@20.12.12)(sass@1.69.4)(terser@5.27.0))': dependencies: '@ampproject/remapping': 2.3.0 '@rollup/pluginutils': 5.1.0(rollup@4.18.0) - '@unocss/config': 0.60.3 - '@unocss/core': 0.60.3 - '@unocss/inspector': 0.60.3 - '@unocss/scope': 0.60.3 - '@unocss/transformer-directives': 0.60.3 + '@unocss/config': 0.60.4 + '@unocss/core': 0.60.4 + '@unocss/inspector': 0.60.4 + '@unocss/scope': 0.60.4 + '@unocss/transformer-directives': 0.60.4 chokidar: 3.6.0 fast-glob: 3.3.2 magic-string: 0.30.10 @@ -9574,19 +9496,19 @@ snapshots: transitivePeerDependencies: - rollup - '@unocss/vite@0.60.3(rollup@4.18.0)(vite@5.2.12(@types/node@20.12.13)(sass@1.69.4)(terser@5.27.0))': + '@unocss/vite@0.60.4(rollup@4.18.0)(vite@5.2.12(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))': dependencies: '@ampproject/remapping': 2.3.0 '@rollup/pluginutils': 5.1.0(rollup@4.18.0) - '@unocss/config': 0.60.3 - '@unocss/core': 0.60.3 - '@unocss/inspector': 0.60.3 - '@unocss/scope': 0.60.3 - '@unocss/transformer-directives': 0.60.3 + '@unocss/config': 0.60.4 + '@unocss/core': 0.60.4 + '@unocss/inspector': 0.60.4 + '@unocss/scope': 0.60.4 + '@unocss/transformer-directives': 0.60.4 chokidar: 3.6.0 fast-glob: 3.3.2 magic-string: 0.30.10 - vite: 5.2.12(@types/node@20.12.13)(sass@1.69.4)(terser@5.27.0) + vite: 5.2.12(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) transitivePeerDependencies: - rollup @@ -9608,12 +9530,12 @@ snapshots: - encoding - supports-color - '@vitejs/plugin-vue-jsx@4.0.0(vite@5.2.12(@types/node@20.12.13)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5))': + '@vitejs/plugin-vue-jsx@4.0.0(vite@5.2.12(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5))': dependencies: '@babel/core': 7.24.7 '@babel/plugin-transform-typescript': 7.24.7(@babel/core@7.24.7) '@vue/babel-plugin-jsx': 1.2.2(@babel/core@7.24.7) - vite: 5.2.12(@types/node@20.12.13)(sass@1.69.4)(terser@5.27.0) + vite: 5.2.12(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) vue: 3.4.27(typescript@5.4.5) transitivePeerDependencies: - supports-color @@ -9623,12 +9545,12 @@ snapshots: vite: 5.2.12(@types/node@20.12.12)(sass@1.69.4)(terser@5.27.0) vue: 3.4.27(typescript@5.4.5) - '@vitejs/plugin-vue@5.0.4(vite@5.2.12(@types/node@20.12.13)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5))': + '@vitejs/plugin-vue@5.0.4(vite@5.2.12(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5))': dependencies: - vite: 5.2.12(@types/node@20.12.13)(sass@1.69.4)(terser@5.27.0) + vite: 5.2.12(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) vue: 3.4.27(typescript@5.4.5) - '@vitest/coverage-v8@1.6.0(vitest@1.6.0(@types/node@20.12.13)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))': + '@vitest/coverage-v8@1.6.0(vitest@1.6.0(@types/node@20.14.2)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))': dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 0.2.3 @@ -9643,7 +9565,7 @@ snapshots: std-env: 3.7.0 strip-literal: 2.1.0 test-exclude: 6.0.0 - vitest: 1.6.0(@types/node@20.12.13)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0) + vitest: 1.6.0(@types/node@20.14.2)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0) transitivePeerDependencies: - supports-color @@ -9739,33 +9661,16 @@ snapshots: transitivePeerDependencies: - rollup - '@vue/babel-helper-vue-transform-on@1.1.5': {} - '@vue/babel-helper-vue-transform-on@1.2.2': {} - '@vue/babel-plugin-jsx@1.1.5(@babel/core@7.24.5)': - dependencies: - '@babel/core': 7.24.5 - '@babel/helper-module-imports': 7.24.3 - '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.5) - '@babel/template': 7.24.0 - '@babel/traverse': 7.24.5 - '@babel/types': 7.24.5 - '@vue/babel-helper-vue-transform-on': 1.1.5 - camelcase: 6.3.0 - html-tags: 3.3.1 - svg-tags: 1.0.0 - transitivePeerDependencies: - - supports-color - '@vue/babel-plugin-jsx@1.2.2(@babel/core@7.24.7)': dependencies: '@babel/helper-module-imports': 7.22.15 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.7) - '@babel/template': 7.24.0 - '@babel/traverse': 7.24.5 - '@babel/types': 7.24.5 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.24.7) + '@babel/template': 7.24.7 + '@babel/traverse': 7.24.7 + '@babel/types': 7.24.7 '@vue/babel-helper-vue-transform-on': 1.2.2 '@vue/babel-plugin-resolve-type': 1.2.2(@babel/core@7.24.7) camelcase: 6.3.0 @@ -9778,11 +9683,11 @@ snapshots: '@vue/babel-plugin-resolve-type@1.2.2(@babel/core@7.24.7)': dependencies: - '@babel/code-frame': 7.24.2 + '@babel/code-frame': 7.24.7 '@babel/core': 7.24.7 '@babel/helper-module-imports': 7.22.15 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/parser': 7.24.5 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/parser': 7.24.7 '@vue/compiler-sfc': 3.4.27 '@vue/compiler-core@3.4.27': @@ -9817,12 +9722,12 @@ snapshots: '@vue/devtools-api@6.5.1': {} - '@vue/devtools-applet@7.1.3(@unocss/reset@0.60.3)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(unocss@0.60.3(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.12(@types/node@20.12.12)(sass@1.69.4)(terser@5.27.0)))(vite@5.2.12(@types/node@20.12.12)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5))': + '@vue/devtools-applet@7.1.3(@unocss/reset@0.60.4)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(unocss@0.60.4(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.12(@types/node@20.12.12)(sass@1.69.4)(terser@5.27.0)))(vite@5.2.12(@types/node@20.12.12)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5))': dependencies: '@vue/devtools-core': 7.1.3(vite@5.2.12(@types/node@20.12.12)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)) '@vue/devtools-kit': 7.1.3(vue@3.4.27(typescript@5.4.5)) '@vue/devtools-shared': 7.1.3 - '@vue/devtools-ui': 7.1.3(@unocss/reset@0.60.3)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(unocss@0.60.3(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.12(@types/node@20.12.12)(sass@1.69.4)(terser@5.27.0)))(vue@3.4.27(typescript@5.4.5)) + '@vue/devtools-ui': 7.1.3(@unocss/reset@0.60.4)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(unocss@0.60.4(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.12(@types/node@20.12.12)(sass@1.69.4)(terser@5.27.0)))(vue@3.4.27(typescript@5.4.5)) lodash-es: 4.17.21 perfect-debounce: 1.0.0 shiki: 1.3.0 @@ -9872,9 +9777,9 @@ snapshots: dependencies: rfdc: 1.3.1 - '@vue/devtools-ui@7.1.3(@unocss/reset@0.60.3)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(unocss@0.60.3(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.12(@types/node@20.12.12)(sass@1.69.4)(terser@5.27.0)))(vue@3.4.27(typescript@5.4.5))': + '@vue/devtools-ui@7.1.3(@unocss/reset@0.60.4)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(unocss@0.60.4(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.12(@types/node@20.12.12)(sass@1.69.4)(terser@5.27.0)))(vue@3.4.27(typescript@5.4.5))': dependencies: - '@unocss/reset': 0.60.3 + '@unocss/reset': 0.60.4 '@vue/devtools-shared': 7.1.3 '@vueuse/components': 10.9.0(vue@3.4.27(typescript@5.4.5)) '@vueuse/core': 10.9.0(vue@3.4.27(typescript@5.4.5)) @@ -9882,7 +9787,7 @@ snapshots: colord: 2.9.3 floating-vue: 5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)) focus-trap: 7.5.4 - unocss: 0.60.3(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.12(@types/node@20.12.12)(sass@1.69.4)(terser@5.27.0)) + unocss: 0.60.4(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.12(@types/node@20.12.12)(sass@1.69.4)(terser@5.27.0)) vue: 3.4.27(typescript@5.4.5) transitivePeerDependencies: - '@vue/composition-api' @@ -10261,7 +10166,7 @@ snapshots: babel-walk@3.0.0-canary-5: dependencies: - '@babel/types': 7.24.5 + '@babel/types': 7.24.7 bail@2.0.2: {} @@ -10338,7 +10243,7 @@ snapshots: dotenv: 16.4.5 giget: 1.2.1 jiti: 1.21.0 - mlly: 1.7.0 + mlly: 1.7.1 ohash: 1.1.3 pathe: 1.1.2 perfect-debounce: 1.0.0 @@ -10560,8 +10465,8 @@ snapshots: constantinople@4.0.1: dependencies: - '@babel/parser': 7.24.5 - '@babel/types': 7.24.5 + '@babel/parser': 7.24.7 + '@babel/types': 7.24.7 convert-gitmoji@0.1.3: {} @@ -10644,7 +10549,7 @@ snapshots: css-minimizer-webpack-plugin@7.0.0(webpack@5.91.0): dependencies: '@jridgewell/trace-mapping': 0.3.25 - cssnano: 7.0.1(postcss@8.4.38) + cssnano: 7.0.2(postcss@8.4.38) jest-worker: 29.7.0 postcss: 8.4.38 schema-utils: 4.2.0 @@ -10673,7 +10578,7 @@ snapshots: cssesc@3.0.0: {} - cssnano-preset-default@7.0.1(postcss@8.4.38): + cssnano-preset-default@7.0.2(postcss@8.4.38): dependencies: browserslist: 4.23.0 css-declaration-sorter: 7.2.0(postcss@8.4.38) @@ -10686,12 +10591,12 @@ snapshots: postcss-discard-duplicates: 7.0.0(postcss@8.4.38) postcss-discard-empty: 7.0.0(postcss@8.4.38) postcss-discard-overridden: 7.0.0(postcss@8.4.38) - postcss-merge-longhand: 7.0.0(postcss@8.4.38) - postcss-merge-rules: 7.0.0(postcss@8.4.38) + postcss-merge-longhand: 7.0.1(postcss@8.4.38) + postcss-merge-rules: 7.0.1(postcss@8.4.38) postcss-minify-font-values: 7.0.0(postcss@8.4.38) postcss-minify-gradients: 7.0.0(postcss@8.4.38) postcss-minify-params: 7.0.0(postcss@8.4.38) - postcss-minify-selectors: 7.0.0(postcss@8.4.38) + postcss-minify-selectors: 7.0.1(postcss@8.4.38) postcss-normalize-charset: 7.0.0(postcss@8.4.38) postcss-normalize-display-values: 7.0.0(postcss@8.4.38) postcss-normalize-positions: 7.0.0(postcss@8.4.38) @@ -10704,16 +10609,16 @@ snapshots: postcss-ordered-values: 7.0.0(postcss@8.4.38) postcss-reduce-initial: 7.0.0(postcss@8.4.38) postcss-reduce-transforms: 7.0.0(postcss@8.4.38) - postcss-svgo: 7.0.0(postcss@8.4.38) - postcss-unique-selectors: 7.0.0(postcss@8.4.38) + postcss-svgo: 7.0.1(postcss@8.4.38) + postcss-unique-selectors: 7.0.1(postcss@8.4.38) cssnano-utils@5.0.0(postcss@8.4.38): dependencies: postcss: 8.4.38 - cssnano@7.0.1(postcss@8.4.38): + cssnano@7.0.2(postcss@8.4.38): dependencies: - cssnano-preset-default: 7.0.1(postcss@8.4.38) + cssnano-preset-default: 7.0.2(postcss@8.4.38) lilconfig: 3.1.1 postcss: 8.4.38 @@ -11101,12 +11006,12 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-import-x@0.5.0(eslint@9.3.0)(typescript@5.4.5): + eslint-plugin-import-x@0.5.0(eslint@9.4.0)(typescript@5.4.5): dependencies: - '@typescript-eslint/utils': 7.9.0(eslint@9.3.0)(typescript@5.4.5) + '@typescript-eslint/utils': 7.9.0(eslint@9.4.0)(typescript@5.4.5) debug: 4.3.4 doctrine: 3.0.0 - eslint: 9.3.0 + eslint: 9.4.0 eslint-import-resolver-node: 0.3.9 get-tsconfig: 4.7.3 is-glob: 4.0.3 @@ -11116,14 +11021,14 @@ snapshots: - supports-color - typescript - eslint-plugin-jsdoc@48.2.5(eslint@9.3.0): + eslint-plugin-jsdoc@48.2.5(eslint@9.4.0): dependencies: '@es-joy/jsdoccomment': 0.43.0 are-docs-informative: 0.0.2 comment-parser: 1.4.1 debug: 4.3.4 escape-string-regexp: 4.0.0 - eslint: 9.3.0 + eslint: 9.4.0 esquery: 1.5.0 is-builtin-module: 3.2.1 semver: 7.6.2 @@ -11133,38 +11038,38 @@ snapshots: eslint-plugin-no-only-tests@3.1.0: {} - eslint-plugin-perfectionist@2.10.0(eslint@9.3.0)(typescript@5.4.5)(vue-eslint-parser@9.4.2(eslint@9.3.0)): + eslint-plugin-perfectionist@2.10.0(eslint@9.4.0)(typescript@5.4.5)(vue-eslint-parser@9.4.2(eslint@9.4.0)): dependencies: - '@typescript-eslint/utils': 7.9.0(eslint@9.3.0)(typescript@5.4.5) - eslint: 9.3.0 + '@typescript-eslint/utils': 7.9.0(eslint@9.4.0)(typescript@5.4.5) + eslint: 9.4.0 minimatch: 9.0.4 natural-compare-lite: 1.4.0 optionalDependencies: - vue-eslint-parser: 9.4.2(eslint@9.3.0) + vue-eslint-parser: 9.4.2(eslint@9.4.0) transitivePeerDependencies: - supports-color - typescript - eslint-plugin-regexp@2.5.0(eslint@9.3.0): + eslint-plugin-regexp@2.5.0(eslint@9.4.0): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.3.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.4.0) '@eslint-community/regexpp': 4.10.0 comment-parser: 1.4.1 - eslint: 9.3.0 + eslint: 9.4.0 jsdoc-type-pratt-parser: 4.0.0 refa: 0.12.1 regexp-ast-analysis: 0.7.1 scslre: 0.3.0 - eslint-plugin-unicorn@53.0.0(eslint@9.3.0): + eslint-plugin-unicorn@53.0.0(eslint@9.4.0): dependencies: '@babel/helper-validator-identifier': 7.24.5 - '@eslint-community/eslint-utils': 4.4.0(eslint@9.3.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.4.0) '@eslint/eslintrc': 3.1.0 ci-info: 4.0.0 clean-regexp: 1.0.0 core-js-compat: 3.37.1 - eslint: 9.3.0 + eslint: 9.4.0 esquery: 1.5.0 indent-string: 4.0.0 is-builtin-module: 3.2.1 @@ -11178,16 +11083,16 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-vue@9.26.0(eslint@9.3.0): + eslint-plugin-vue@9.26.0(eslint@9.4.0): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.3.0) - eslint: 9.3.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@9.4.0) + eslint: 9.4.0 globals: 13.24.0 natural-compare: 1.4.0 nth-check: 2.1.1 postcss-selector-parser: 6.0.16 semver: 7.6.2 - vue-eslint-parser: 9.4.2(eslint@9.3.0) + vue-eslint-parser: 9.4.2(eslint@9.4.0) xml-name-validator: 4.0.0 transitivePeerDependencies: - supports-color @@ -11207,10 +11112,10 @@ snapshots: esrecurse: 4.3.0 estraverse: 5.3.0 - eslint-typegen@0.2.4(eslint@9.3.0): + eslint-typegen@0.2.4(eslint@9.4.0): dependencies: '@types/eslint': 8.56.10 - eslint: 9.3.0 + eslint: 9.4.0 json-schema-to-typescript-lite: 14.0.1 ohash: 1.1.3 @@ -11218,13 +11123,13 @@ snapshots: eslint-visitor-keys@4.0.0: {} - eslint@9.3.0: + eslint@9.4.0: dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.3.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.4.0) '@eslint-community/regexpp': 4.10.0 + '@eslint/config-array': 0.15.1 '@eslint/eslintrc': 3.1.0 - '@eslint/js': 9.3.0 - '@humanwhocodes/config-array': 0.13.0 + '@eslint/js': 9.4.0 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.3.0 '@nodelib/fs.walk': 1.2.8 @@ -11353,7 +11258,7 @@ snapshots: externality@1.0.2: dependencies: enhanced-resolve: 5.16.0 - mlly: 1.7.0 + mlly: 1.7.1 pathe: 1.1.2 ufo: 1.5.3 @@ -12125,7 +12030,7 @@ snapshots: jest-util@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 20.12.13 + '@types/node': 20.14.2 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -12133,13 +12038,13 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 20.12.13 + '@types/node': 20.14.2 merge-stream: 2.0.0 supports-color: 8.1.1 jest-worker@29.7.0: dependencies: - '@types/node': 20.12.13 + '@types/node': 20.14.2 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -12258,7 +12163,7 @@ snapshots: h3: 1.11.1 http-shutdown: 1.2.2 jiti: 1.21.0 - mlly: 1.7.0 + mlly: 1.7.1 node-forge: 1.3.1 pathe: 1.1.2 std-env: 3.7.0 @@ -12286,7 +12191,7 @@ snapshots: local-pkg@0.5.0: dependencies: - mlly: 1.7.0 + mlly: 1.7.1 pkg-types: 1.1.1 locate-path@5.0.0: @@ -12341,8 +12246,8 @@ snapshots: magicast@0.3.4: dependencies: - '@babel/parser': 7.24.5 - '@babel/types': 7.24.5 + '@babel/parser': 7.24.7 + '@babel/types': 7.24.7 source-map-js: 1.2.0 make-dir@3.1.0: @@ -12846,14 +12751,14 @@ snapshots: fs-extra: 11.2.0 globby: 13.2.2 jiti: 1.21.0 - mlly: 1.7.0 + mlly: 1.7.1 mri: 1.2.0 pathe: 1.1.2 optionalDependencies: sass: 1.69.4 typescript: 5.4.5 - mlly@1.7.0: + mlly@1.7.1: dependencies: acorn: 8.11.3 pathe: 1.1.2 @@ -12930,7 +12835,7 @@ snapshots: listhen: 1.7.2 magic-string: 0.30.10 mime: 4.0.1 - mlly: 1.7.0 + mlly: 1.7.1 mri: 1.2.0 node-fetch-native: 1.6.4 ofetch: 1.3.4 @@ -13376,7 +13281,7 @@ snapshots: pkg-types@1.1.1: dependencies: confbox: 0.1.7 - mlly: 1.7.0 + mlly: 1.7.1 pathe: 1.1.2 playwright-core@1.44.1: {} @@ -13443,19 +13348,19 @@ snapshots: postcss-media-query-parser@0.2.3: {} - postcss-merge-longhand@7.0.0(postcss@8.4.38): + postcss-merge-longhand@7.0.1(postcss@8.4.38): dependencies: postcss: 8.4.38 postcss-value-parser: 4.2.0 - stylehacks: 7.0.0(postcss@8.4.38) + stylehacks: 7.0.1(postcss@8.4.38) - postcss-merge-rules@7.0.0(postcss@8.4.38): + postcss-merge-rules@7.0.1(postcss@8.4.38): dependencies: browserslist: 4.23.0 caniuse-api: 3.0.0 cssnano-utils: 5.0.0(postcss@8.4.38) postcss: 8.4.38 - postcss-selector-parser: 6.0.16 + postcss-selector-parser: 6.1.0 postcss-minify-font-values@7.0.0(postcss@8.4.38): dependencies: @@ -13476,10 +13381,10 @@ snapshots: postcss: 8.4.38 postcss-value-parser: 4.2.0 - postcss-minify-selectors@7.0.0(postcss@8.4.38): + postcss-minify-selectors@7.0.1(postcss@8.4.38): dependencies: postcss: 8.4.38 - postcss-selector-parser: 6.0.16 + postcss-selector-parser: 6.1.0 postcss-modules-extract-imports@3.1.0(postcss@8.4.38): dependencies: @@ -13569,16 +13474,21 @@ snapshots: cssesc: 3.0.0 util-deprecate: 1.0.2 - postcss-svgo@7.0.0(postcss@8.4.38): + postcss-selector-parser@6.1.0: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + + postcss-svgo@7.0.1(postcss@8.4.38): dependencies: postcss: 8.4.38 postcss-value-parser: 4.2.0 - svgo: 3.2.0 + svgo: 3.3.2 - postcss-unique-selectors@7.0.0(postcss@8.4.38): + postcss-unique-selectors@7.0.1(postcss@8.4.38): dependencies: postcss: 8.4.38 - postcss-selector-parser: 6.0.16 + postcss-selector-parser: 6.1.0 postcss-url@10.1.3(postcss@8.4.38): dependencies: @@ -13598,7 +13508,7 @@ snapshots: prelude-ls@1.2.1: {} - prettier@3.2.5: {} + prettier@3.3.1: {} pretty-bytes@6.1.1: {} @@ -14312,11 +14222,11 @@ snapshots: dependencies: js-tokens: 9.0.0 - stylehacks@7.0.0(postcss@8.4.38): + stylehacks@7.0.1(postcss@8.4.38): dependencies: browserslist: 4.23.0 postcss: 8.4.38 - postcss-selector-parser: 6.0.16 + postcss-selector-parser: 6.1.0 supports-color@5.5.0: dependencies: @@ -14336,7 +14246,7 @@ snapshots: svg-tags@1.0.0: {} - svgo@3.2.0: + svgo@3.3.2: dependencies: '@trysound/sax': 0.2.0 commander: 7.2.0 @@ -14506,7 +14416,7 @@ snapshots: jiti: 1.21.0 magic-string: 0.30.10 mkdist: 1.3.0(sass@1.69.4)(typescript@5.4.5) - mlly: 1.7.0 + mlly: 1.7.1 pathe: 1.1.2 pkg-types: 1.1.1 pretty-bytes: 6.1.1 @@ -14549,11 +14459,11 @@ snapshots: node-fetch-native: 1.6.4 pathe: 1.1.2 - unhead@1.9.11: + unhead@1.9.12: dependencies: - '@unhead/dom': 1.9.11 - '@unhead/schema': 1.9.11 - '@unhead/shared': 1.9.11 + '@unhead/dom': 1.9.12 + '@unhead/schema': 1.9.12 + '@unhead/shared': 1.9.12 hookable: 5.5.3 unicode-emoji-modifier-base@1.0.0: {} @@ -14579,7 +14489,7 @@ snapshots: fast-glob: 3.3.2 local-pkg: 0.5.0 magic-string: 0.30.10 - mlly: 1.7.0 + mlly: 1.7.1 pathe: 1.1.2 pkg-types: 1.1.1 scule: 1.3.0 @@ -14625,28 +14535,28 @@ snapshots: universalify@2.0.0: {} - unocss@0.60.3(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.12(@types/node@20.12.12)(sass@1.69.4)(terser@5.27.0)): + unocss@0.60.4(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.12(@types/node@20.12.12)(sass@1.69.4)(terser@5.27.0)): dependencies: - '@unocss/astro': 0.60.3(rollup@4.18.0)(vite@5.2.12(@types/node@20.12.12)(sass@1.69.4)(terser@5.27.0)) - '@unocss/cli': 0.60.3(rollup@4.18.0) - '@unocss/core': 0.60.3 - '@unocss/extractor-arbitrary-variants': 0.60.3 - '@unocss/postcss': 0.60.3(postcss@8.4.38) - '@unocss/preset-attributify': 0.60.3 - '@unocss/preset-icons': 0.60.3 - '@unocss/preset-mini': 0.60.3 - '@unocss/preset-tagify': 0.60.3 - '@unocss/preset-typography': 0.60.3 - '@unocss/preset-uno': 0.60.3 - '@unocss/preset-web-fonts': 0.60.3 - '@unocss/preset-wind': 0.60.3 - '@unocss/reset': 0.60.3 - '@unocss/transformer-attributify-jsx': 0.60.3 - '@unocss/transformer-attributify-jsx-babel': 0.60.3 - '@unocss/transformer-compile-class': 0.60.3 - '@unocss/transformer-directives': 0.60.3 - '@unocss/transformer-variant-group': 0.60.3 - '@unocss/vite': 0.60.3(rollup@4.18.0)(vite@5.2.12(@types/node@20.12.12)(sass@1.69.4)(terser@5.27.0)) + '@unocss/astro': 0.60.4(rollup@4.18.0)(vite@5.2.12(@types/node@20.12.12)(sass@1.69.4)(terser@5.27.0)) + '@unocss/cli': 0.60.4(rollup@4.18.0) + '@unocss/core': 0.60.4 + '@unocss/extractor-arbitrary-variants': 0.60.4 + '@unocss/postcss': 0.60.4(postcss@8.4.38) + '@unocss/preset-attributify': 0.60.4 + '@unocss/preset-icons': 0.60.4 + '@unocss/preset-mini': 0.60.4 + '@unocss/preset-tagify': 0.60.4 + '@unocss/preset-typography': 0.60.4 + '@unocss/preset-uno': 0.60.4 + '@unocss/preset-web-fonts': 0.60.4 + '@unocss/preset-wind': 0.60.4 + '@unocss/reset': 0.60.4 + '@unocss/transformer-attributify-jsx': 0.60.4 + '@unocss/transformer-attributify-jsx-babel': 0.60.4 + '@unocss/transformer-compile-class': 0.60.4 + '@unocss/transformer-directives': 0.60.4 + '@unocss/transformer-variant-group': 0.60.4 + '@unocss/vite': 0.60.4(rollup@4.18.0)(vite@5.2.12(@types/node@20.12.12)(sass@1.69.4)(terser@5.27.0)) optionalDependencies: vite: 5.2.12(@types/node@20.12.12)(sass@1.69.4)(terser@5.27.0) transitivePeerDependencies: @@ -14654,30 +14564,30 @@ snapshots: - rollup - supports-color - unocss@0.60.3(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.12(@types/node@20.12.13)(sass@1.69.4)(terser@5.27.0)): + unocss@0.60.4(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.12(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)): dependencies: - '@unocss/astro': 0.60.3(rollup@4.18.0)(vite@5.2.12(@types/node@20.12.13)(sass@1.69.4)(terser@5.27.0)) - '@unocss/cli': 0.60.3(rollup@4.18.0) - '@unocss/core': 0.60.3 - '@unocss/extractor-arbitrary-variants': 0.60.3 - '@unocss/postcss': 0.60.3(postcss@8.4.38) - '@unocss/preset-attributify': 0.60.3 - '@unocss/preset-icons': 0.60.3 - '@unocss/preset-mini': 0.60.3 - '@unocss/preset-tagify': 0.60.3 - '@unocss/preset-typography': 0.60.3 - '@unocss/preset-uno': 0.60.3 - '@unocss/preset-web-fonts': 0.60.3 - '@unocss/preset-wind': 0.60.3 - '@unocss/reset': 0.60.3 - '@unocss/transformer-attributify-jsx': 0.60.3 - '@unocss/transformer-attributify-jsx-babel': 0.60.3 - '@unocss/transformer-compile-class': 0.60.3 - '@unocss/transformer-directives': 0.60.3 - '@unocss/transformer-variant-group': 0.60.3 - '@unocss/vite': 0.60.3(rollup@4.18.0)(vite@5.2.12(@types/node@20.12.13)(sass@1.69.4)(terser@5.27.0)) + '@unocss/astro': 0.60.4(rollup@4.18.0)(vite@5.2.12(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) + '@unocss/cli': 0.60.4(rollup@4.18.0) + '@unocss/core': 0.60.4 + '@unocss/extractor-arbitrary-variants': 0.60.4 + '@unocss/postcss': 0.60.4(postcss@8.4.38) + '@unocss/preset-attributify': 0.60.4 + '@unocss/preset-icons': 0.60.4 + '@unocss/preset-mini': 0.60.4 + '@unocss/preset-tagify': 0.60.4 + '@unocss/preset-typography': 0.60.4 + '@unocss/preset-uno': 0.60.4 + '@unocss/preset-web-fonts': 0.60.4 + '@unocss/preset-wind': 0.60.4 + '@unocss/reset': 0.60.4 + '@unocss/transformer-attributify-jsx': 0.60.4 + '@unocss/transformer-attributify-jsx-babel': 0.60.4 + '@unocss/transformer-compile-class': 0.60.4 + '@unocss/transformer-directives': 0.60.4 + '@unocss/transformer-variant-group': 0.60.4 + '@unocss/vite': 0.60.4(rollup@4.18.0)(vite@5.2.12(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) optionalDependencies: - vite: 5.2.12(@types/node@20.12.13)(sass@1.69.4)(terser@5.27.0) + vite: 5.2.12(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) transitivePeerDependencies: - postcss - rollup @@ -14693,7 +14603,7 @@ snapshots: fast-glob: 3.3.2 json5: 2.2.3 local-pkg: 0.4.3 - mlly: 1.7.0 + mlly: 1.7.1 pathe: 1.1.2 scule: 1.3.0 unplugin: 1.10.1 @@ -14752,7 +14662,7 @@ snapshots: dependencies: knitwork: 1.1.0 magic-string: 0.30.10 - mlly: 1.7.0 + mlly: 1.7.1 pathe: 1.1.2 pkg-types: 1.1.1 unplugin: 1.10.1 @@ -14813,13 +14723,13 @@ snapshots: dependencies: vite: 5.2.12(@types/node@20.12.12)(sass@1.69.4)(terser@5.27.0) - vite-node@1.5.3(@types/node@20.12.13)(sass@1.69.4)(terser@5.27.0): + vite-node@1.5.3(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0): dependencies: cac: 6.7.14 debug: 4.3.4 pathe: 1.1.2 picocolors: 1.0.0 - vite: 5.2.12(@types/node@20.12.13)(sass@1.69.4)(terser@5.27.0) + vite: 5.2.12(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) transitivePeerDependencies: - '@types/node' - less @@ -14847,13 +14757,13 @@ snapshots: - supports-color - terser - vite-node@1.6.0(@types/node@20.12.13)(sass@1.69.4)(terser@5.27.0): + vite-node@1.6.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0): dependencies: cac: 6.7.14 debug: 4.3.4 pathe: 1.1.2 picocolors: 1.0.0 - vite: 5.2.12(@types/node@20.12.13)(sass@1.69.4)(terser@5.27.0) + vite: 5.2.12(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) transitivePeerDependencies: - '@types/node' - less @@ -14864,7 +14774,7 @@ snapshots: - supports-color - terser - vite-plugin-checker@0.6.4(eslint@9.3.0)(optionator@0.9.3)(typescript@5.4.5)(vite@5.2.12(@types/node@20.12.13)(sass@1.69.4)(terser@5.27.0))(vue-tsc@2.0.19(typescript@5.4.5)): + vite-plugin-checker@0.6.4(eslint@9.4.0)(optionator@0.9.3)(typescript@5.4.5)(vite@5.2.12(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue-tsc@2.0.19(typescript@5.4.5)): dependencies: '@babel/code-frame': 7.24.2 ansi-escapes: 4.3.2 @@ -14877,13 +14787,13 @@ snapshots: semver: 7.6.2 strip-ansi: 6.0.1 tiny-invariant: 1.3.1 - vite: 5.2.12(@types/node@20.12.13)(sass@1.69.4)(terser@5.27.0) + vite: 5.2.12(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) vscode-languageclient: 7.0.0 vscode-languageserver: 7.0.0 vscode-languageserver-textdocument: 1.0.11 vscode-uri: 3.0.8 optionalDependencies: - eslint: 9.3.0 + eslint: 9.4.0 optionator: 0.9.3 typescript: 5.4.5 vue-tsc: 2.0.19(typescript@5.4.5) @@ -14908,12 +14818,12 @@ snapshots: vite-plugin-vue-inspector@5.1.0(vite@5.2.12(@types/node@20.12.12)(sass@1.69.4)(terser@5.27.0)): dependencies: - '@babel/core': 7.24.5 - '@babel/plugin-proposal-decorators': 7.23.2(@babel/core@7.24.5) - '@babel/plugin-syntax-import-attributes': 7.22.5(@babel/core@7.24.5) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.5) - '@babel/plugin-transform-typescript': 7.24.1(@babel/core@7.24.5) - '@vue/babel-plugin-jsx': 1.1.5(@babel/core@7.24.5) + '@babel/core': 7.24.7 + '@babel/plugin-proposal-decorators': 7.23.2(@babel/core@7.24.7) + '@babel/plugin-syntax-import-attributes': 7.22.5(@babel/core@7.24.7) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.7) + '@babel/plugin-transform-typescript': 7.24.7(@babel/core@7.24.7) + '@vue/babel-plugin-jsx': 1.2.2(@babel/core@7.24.7) '@vue/compiler-dom': 3.4.27 kolorist: 1.8.0 magic-string: 0.30.10 @@ -14932,20 +14842,20 @@ snapshots: sass: 1.69.4 terser: 5.27.0 - vite@5.2.12(@types/node@20.12.13)(sass@1.69.4)(terser@5.27.0): + vite@5.2.12(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0): dependencies: esbuild: 0.20.2 postcss: 8.4.38 rollup: 4.18.0 optionalDependencies: - '@types/node': 20.12.13 + '@types/node': 20.14.2 fsevents: 2.3.3 sass: 1.69.4 terser: 5.27.0 - vitest-environment-nuxt@1.0.0(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.27)(vue@3.4.27(typescript@5.4.5)))(@vue/test-utils@2.4.6)(h3@1.11.1)(happy-dom@14.12.0)(nitropack@2.9.6(encoding@0.1.13))(playwright-core@1.44.1)(vite@5.2.12(@types/node@20.12.13)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.12.13)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.2(vue@3.4.27(typescript@5.4.5)))(vue@3.4.27(typescript@5.4.5)): + vitest-environment-nuxt@1.0.0(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.27)(vue@3.4.27(typescript@5.4.5)))(@vue/test-utils@2.4.6)(h3@1.11.1)(happy-dom@14.12.0)(nitropack@2.9.6(encoding@0.1.13))(playwright-core@1.44.1)(vite@5.2.12(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.2)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.2(vue@3.4.27(typescript@5.4.5)))(vue@3.4.27(typescript@5.4.5)): dependencies: - '@nuxt/test-utils': 3.13.1(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.27)(vue@3.4.27(typescript@5.4.5)))(@vue/test-utils@2.4.6)(h3@1.11.1)(happy-dom@14.12.0)(nitropack@2.9.6(encoding@0.1.13))(playwright-core@1.44.1)(vite@5.2.12(@types/node@20.12.13)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.12.13)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.2(vue@3.4.27(typescript@5.4.5)))(vue@3.4.27(typescript@5.4.5)) + '@nuxt/test-utils': 3.13.1(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.27)(vue@3.4.27(typescript@5.4.5)))(@vue/test-utils@2.4.6)(h3@1.11.1)(happy-dom@14.12.0)(nitropack@2.9.6(encoding@0.1.13))(playwright-core@1.44.1)(vite@5.2.12(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.2)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.2(vue@3.4.27(typescript@5.4.5)))(vue@3.4.27(typescript@5.4.5)) transitivePeerDependencies: - '@cucumber/cucumber' - '@jest/globals' @@ -14963,7 +14873,7 @@ snapshots: - vue - vue-router - vitest@1.5.3(@types/node@20.12.13)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0): + vitest@1.5.3(@types/node@20.14.2)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0): dependencies: '@vitest/expect': 1.5.3 '@vitest/runner': 1.5.3 @@ -14982,11 +14892,11 @@ snapshots: strip-literal: 2.1.0 tinybench: 2.5.1 tinypool: 0.8.4 - vite: 5.2.12(@types/node@20.12.13)(sass@1.69.4)(terser@5.27.0) - vite-node: 1.5.3(@types/node@20.12.13)(sass@1.69.4)(terser@5.27.0) + vite: 5.2.12(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) + vite-node: 1.5.3(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) why-is-node-running: 2.2.2 optionalDependencies: - '@types/node': 20.12.13 + '@types/node': 20.14.2 happy-dom: 14.12.0 transitivePeerDependencies: - less @@ -15031,7 +14941,7 @@ snapshots: - supports-color - terser - vitest@1.6.0(@types/node@20.12.13)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0): + vitest@1.6.0(@types/node@20.14.2)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0): dependencies: '@vitest/expect': 1.6.0 '@vitest/runner': 1.6.0 @@ -15050,11 +14960,11 @@ snapshots: strip-literal: 2.1.0 tinybench: 2.5.1 tinypool: 0.8.4 - vite: 5.2.12(@types/node@20.12.13)(sass@1.69.4)(terser@5.27.0) - vite-node: 1.6.0(@types/node@20.12.13)(sass@1.69.4)(terser@5.27.0) + vite: 5.2.12(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) + vite-node: 1.6.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) why-is-node-running: 2.2.2 optionalDependencies: - '@types/node': 20.12.13 + '@types/node': 20.14.2 happy-dom: 14.12.0 transitivePeerDependencies: - less @@ -15102,10 +15012,10 @@ snapshots: vue-devtools-stub@0.1.0: {} - vue-eslint-parser@9.4.2(eslint@9.3.0): + vue-eslint-parser@9.4.2(eslint@9.4.0): dependencies: debug: 4.3.4 - eslint: 9.3.0 + eslint: 9.4.0 eslint-scope: 7.2.2 eslint-visitor-keys: 3.4.3 espree: 9.6.1 @@ -15222,6 +15132,8 @@ snapshots: webpack-virtual-modules@0.6.1: {} + webpack-virtual-modules@0.6.2: {} + webpack@5.91.0: dependencies: '@types/eslint-scope': 3.7.6 @@ -15318,8 +15230,8 @@ snapshots: with@7.0.2: dependencies: - '@babel/parser': 7.24.5 - '@babel/types': 7.24.5 + '@babel/parser': 7.24.7 + '@babel/types': 7.24.7 assert-never: 1.2.1 babel-walk: 3.0.0-canary-5 diff --git a/test/bundle.test.ts b/test/bundle.test.ts index 6f9dd4fe43..04b0663a3b 100644 --- a/test/bundle.test.ts +++ b/test/bundle.test.ts @@ -75,7 +75,7 @@ describe.skipIf(process.env.SKIP_BUNDLE_SIZE === 'true' || process.env.ECOSYSTEM expect.soft(roundToKilobytes(serverStats.totalBytes)).toMatchInlineSnapshot(`"527k"`) const modules = await analyzeSizes('node_modules/**/*', serverDir) - expect.soft(roundToKilobytes(modules.totalBytes)).toMatchInlineSnapshot(`"76.1k"`) + expect.soft(roundToKilobytes(modules.totalBytes)).toMatchInlineSnapshot(`"76.2k"`) const packages = modules.files .filter(m => m.endsWith('package.json')) From 7b4f1a8b722b8ed0a0e446081d135092809b6dc4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Bedn=C3=A1r?= <33372892+jakubednar@users.noreply.github.com> Date: Fri, 7 Jun 2024 10:05:08 +0200 Subject: [PATCH 009/580] docs: add external parameter behavior navigateTo (#27472) --- docs/3.api/3.utils/navigate-to.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/docs/3.api/3.utils/navigate-to.md b/docs/3.api/3.utils/navigate-to.md index 0347308a58..6117a38c59 100644 --- a/docs/3.api/3.utils/navigate-to.md +++ b/docs/3.api/3.utils/navigate-to.md @@ -52,6 +52,18 @@ export default defineNuxtRouteMiddleware((to, from) => { ### External URL +The `external` parameter in `navigateTo` influences how navigating to URLs is handled: + +- **Without `external: true`**: + - Internal URLs navigate as expected. + - External URLs throw an error. + +- **With `external: true`**: + - Internal URLs navigate with a full-page reload. + - External URLs navigate as expected. + +#### Example + ```vue + + +``` + +This will be translated to: + +```ts [nuxt.config.ts] +export default defineNuxtConfig({ + routeRules: { + "/": { prerender: true }, + }, +}); +``` + +## Runtime prerender configuration + +### `prerenderRoutes` + +You can use this at runtime within a [Nuxt context](/docs/guide/going-further/nuxt-app#the-nuxt-context) to add more routes for Nitro to prerender. + +```vue [pages/index.vue] + + + +``` + +:read-more{title="prerenderRoutes" to="/docs/api/utils/prerender-routes"} + +### `prerender:routes` Nuxt hook + +This is called before prerendering for additional routes to be registered. + +```ts [nitro.config.ts] +export default defineNuxtConfig({ + hooks: { + async "prerender:routes"(ctx) { + const { pages } = await fetch("https://api.some-cms.com/pages").then( + (res) => res.json(), + ); + for (const page of pages) { + ctx.routes.add(`/${page.name}`); + } + }, + }, +}); +``` + +### `prerender:generate` Nitro hook + +This is called for each route during prerendering. You can use this for fine grained handling of each route that gets prerendered. + +```ts [nitro.config.ts] +export default defineNuxtConfig({ + nitro: { + hooks: { + "prerender:generate"(route) { + if (route.route?.includes("private")) { + route.skip = true; + } + }, + }, + }, +}); +``` From 91685a5b2bef68d1b160b4dd002d8194c8d402d3 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Mon, 10 Jun 2024 20:49:43 +0100 Subject: [PATCH 041/580] fix(nuxt): resolve full path to app manifest stub page --- packages/nuxt/src/pages/module.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/nuxt/src/pages/module.ts b/packages/nuxt/src/pages/module.ts index ae80fd4e02..3e5982ea3b 100644 --- a/packages/nuxt/src/pages/module.ts +++ b/packages/nuxt/src/pages/module.ts @@ -1,6 +1,6 @@ import { existsSync, readdirSync } from 'node:fs' import { mkdir, readFile } from 'node:fs/promises' -import { addBuildPlugin, addComponent, addPlugin, addTemplate, addTypeTemplate, addVitePlugin, addWebpackPlugin, defineNuxtModule, findPath, logger, updateTemplates, useNitro } from '@nuxt/kit' +import { addBuildPlugin, addComponent, addPlugin, addTemplate, addTypeTemplate, addVitePlugin, addWebpackPlugin, defineNuxtModule, findPath, logger, resolvePath, updateTemplates, useNitro } from '@nuxt/kit' import { dirname, join, relative, resolve } from 'pathe' import { genImport, genObjectFromRawEntries, genString } from 'knitwork' import type { Nuxt, NuxtApp, NuxtPage } from 'nuxt/schema' @@ -344,6 +344,7 @@ export default defineNuxtModule({ } if (nuxt.options.experimental.appManifest) { + const componentStubPath = await resolvePath(resolve(runtimeDir, 'component-stub')) // Add all redirect paths as valid routes to router; we will handle these in a client-side middleware // when the app manifest is enabled. nuxt.hook('pages:extend', (routes) => { @@ -358,7 +359,7 @@ export default defineNuxtModule({ routes.push({ _sync: true, path: path.replace(/\/[^/]*\*\*/, '/:pathMatch(.*)'), - file: resolve(runtimeDir, 'component-stub'), + file: componentStubPath, }) } }) From dccf2e5f35d68b1b9d1daf3d1c39a6ffe112332c Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Mon, 10 Jun 2024 20:55:04 +0100 Subject: [PATCH 042/580] fix(nuxt): resolve paths without file extensions --- packages/nuxt/src/pages/utils.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/nuxt/src/pages/utils.ts b/packages/nuxt/src/pages/utils.ts index 79e0321e93..85d408727a 100644 --- a/packages/nuxt/src/pages/utils.ts +++ b/packages/nuxt/src/pages/utils.ts @@ -2,7 +2,7 @@ import { runInNewContext } from 'node:vm' import fs from 'node:fs' import { extname, normalize, relative, resolve } from 'pathe' import { encodePath, joinURL, withLeadingSlash } from 'ufo' -import { logger, resolveFiles, useNuxt } from '@nuxt/kit' +import { logger, resolveFiles, resolvePath, useNuxt } from '@nuxt/kit' import { genArrayFromRaw, genDynamicImport, genImport, genSafeVariableName } from 'knitwork' import escapeRE from 'escape-string-regexp' import { filename } from 'pathe/utils' @@ -142,7 +142,7 @@ export function generateRoutesFromFiles (files: ScannedFile[], options: Generate export async function augmentPages (routes: NuxtPage[], vfs: Record, augmentedPages = new Set()) { for (const route of routes) { if (!augmentedPages.has(route) && route.file) { - const fileContent = route.file in vfs ? vfs[route.file] : fs.readFileSync(route.file, 'utf-8') + const fileContent = route.file in vfs ? vfs[route.file] : fs.readFileSync(await resolvePath(route.file), 'utf-8') Object.assign(route, await getRouteMeta(fileContent, route.file)) } From 7bb02735e7883ec14035cf86b6a9055bbcbc6587 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Mon, 10 Jun 2024 21:11:31 +0100 Subject: [PATCH 043/580] fix(kit): revert back to `esnext` target --- packages/kit/src/template.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/kit/src/template.ts b/packages/kit/src/template.ts index 829551de60..194434f69f 100644 --- a/packages/kit/src/template.ts +++ b/packages/kit/src/template.ts @@ -135,7 +135,7 @@ export async function _generateTypes (nuxt: Nuxt) { /* Base options: */ esModuleInterop: true, skipLibCheck: true, - target: 'es2022', + target: 'ESNext', allowJs: true, resolveJsonModule: true, moduleDetection: 'force', @@ -147,11 +147,11 @@ export async function _generateTypes (nuxt: Nuxt) { forceConsistentCasingInFileNames: true, noImplicitOverride: true, /* If NOT transpiling with TypeScript: */ - module: hasTypescriptVersionWithModulePreserve ? 'preserve' : 'es2022', + module: hasTypescriptVersionWithModulePreserve ? 'preserve' : 'ESNext', noEmit: true, /* If your code runs in the DOM: */ lib: [ - 'es2022', + 'ESNext', 'dom', 'dom.iterable', ], From 018b03588ae41bccc761ddf1a129994aeb287892 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Mon, 10 Jun 2024 21:25:42 +0100 Subject: [PATCH 044/580] fix(kit,schema): revert changes to module options types (#26850) This reverts commit c06a683e49a7539ff37096edc1940d90e5421af3. --- packages/kit/src/module/define.ts | 57 ++++++++--------------------- packages/kit/src/module/install.ts | 2 +- packages/schema/src/types/module.ts | 40 ++++++-------------- test/fixtures/basic-types/types.ts | 18 --------- 4 files changed, 28 insertions(+), 89 deletions(-) diff --git a/packages/kit/src/module/define.ts b/packages/kit/src/module/define.ts index 061362370f..ff2a56d2d4 100644 --- a/packages/kit/src/module/define.ts +++ b/packages/kit/src/module/define.ts @@ -3,7 +3,7 @@ import { performance } from 'node:perf_hooks' import { defu } from 'defu' import { applyDefaults } from 'untyped' import { dirname } from 'pathe' -import type { ModuleDefinition, ModuleOptions, ModuleSetupInstallResult, ModuleSetupReturn, Nuxt, NuxtModule, NuxtOptions, ResolvedModuleOptions, ResolvedNuxtTemplate } from '@nuxt/schema' +import type { ModuleDefinition, ModuleOptions, ModuleSetupReturn, Nuxt, NuxtModule, NuxtOptions, ResolvedNuxtTemplate } from '@nuxt/schema' import { logger } from '../logger' import { nuxtCtx, tryUseNuxt, useNuxt } from '../context' import { checkNuxtCompatibility, isNuxt2 } from '../compatibility' @@ -13,53 +13,28 @@ import { compileTemplate, templateUtils } from '../internal/template' * Define a Nuxt module, automatically merging defaults with user provided options, installing * any hooks that are provided, and calling an optional setup function for full control. */ -export function defineNuxtModule (definition: ModuleDefinition | NuxtModule): NuxtModule - -export function defineNuxtModule (): { - with: > ( - definition: ModuleDefinition | NuxtModule - ) => NuxtModule -} - -export function defineNuxtModule (definition?: ModuleDefinition | NuxtModule) { - if (definition) { - return _defineNuxtModule(definition) - } - - return { - with: >( - definition: ModuleDefinition | NuxtModule, - ) => _defineNuxtModule(definition), - } -} - -function _defineNuxtModule> (definition: ModuleDefinition | NuxtModule): NuxtModule { - if (typeof definition === 'function') { return _defineNuxtModule({ setup: definition }) } +export function defineNuxtModule (definition: ModuleDefinition | NuxtModule): NuxtModule { + if (typeof definition === 'function') { return defineNuxtModule({ setup: definition }) } // Normalize definition and meta - const module: ModuleDefinition & Required, 'meta'>> = defu(definition, { meta: {} }) - - module.meta.configKey ||= module.meta.name + const module: ModuleDefinition & Required, 'meta'>> = defu(definition, { meta: {} }) + if (module.meta.configKey === undefined) { + module.meta.configKey = module.meta.name + } // Resolves module options from inline options, [configKey] in nuxt.config, defaults and schema - async function getOptions (inlineOptions?: Partial, nuxt: Nuxt = useNuxt()): Promise> { - const nuxtConfigOptionsKey = module.meta.configKey || module.meta.name - - const nuxtConfigOptions: Partial = nuxtConfigOptionsKey && nuxtConfigOptionsKey in nuxt.options ? nuxt.options[ nuxtConfigOptionsKey] : {} - - const optionsDefaults: TOptionsDefaults = module.defaults instanceof Function ? module.defaults(nuxt) : module.defaults ?? {} - - let options: ResolvedModuleOptions = defu(inlineOptions, nuxtConfigOptions, optionsDefaults) - + async function getOptions (inlineOptions?: OptionsT, nuxt: Nuxt = useNuxt()) { + const configKey = module.meta.configKey || module.meta.name! + const _defaults = module.defaults instanceof Function ? module.defaults(nuxt) : module.defaults + let _options = defu(inlineOptions, nuxt.options[configKey as keyof NuxtOptions], _defaults) as OptionsT if (module.schema) { - options = await applyDefaults(module.schema, options) as any + _options = await applyDefaults(module.schema, _options) as OptionsT } - - return Promise.resolve(options) + return Promise.resolve(_options) } // Module format is always a simple function - async function normalizedModule (this: any, inlineOptions: Partial, nuxt: Nuxt): Promise { + async function normalizedModule (this: any, inlineOptions: OptionsT, nuxt: Nuxt) { if (!nuxt) { nuxt = tryUseNuxt() || this.nuxt /* invoked by nuxt 2 */ } @@ -112,7 +87,7 @@ function _defineNuxtModule { + return defu(res, { timings: { setup: setupTime, }, @@ -123,7 +98,7 @@ function _defineNuxtModule Promise.resolve(module.meta) normalizedModule.getOptions = getOptions - return > normalizedModule + return normalizedModule as NuxtModule } // -- Nuxt 2 compatibility shims -- diff --git a/packages/kit/src/module/install.ts b/packages/kit/src/module/install.ts index 153aab0bd8..beecd62aef 100644 --- a/packages/kit/src/module/install.ts +++ b/packages/kit/src/module/install.ts @@ -31,7 +31,7 @@ export async function installModule< isNuxt2() // @ts-expect-error Nuxt 2 `moduleContainer` is not typed ? await nuxtModule.call(nuxt.moduleContainer, inlineOptions, nuxt) - : await nuxtModule(inlineOptions || {}, nuxt) + : await nuxtModule(inlineOptions, nuxt) ) ?? {} if (res === false /* setup aborted */) { return diff --git a/packages/schema/src/types/module.ts b/packages/schema/src/types/module.ts index 13b42365aa..9b92d6a93e 100644 --- a/packages/schema/src/types/module.ts +++ b/packages/schema/src/types/module.ts @@ -1,4 +1,3 @@ -import type { Defu } from 'defu' import type { NuxtHooks } from './hooks' import type { Nuxt } from './nuxt' import type { NuxtCompatibility } from './compatibility' @@ -27,7 +26,8 @@ export interface ModuleMeta { /** The options received. */ export type ModuleOptions = Record -export type ModuleSetupInstallResult = { +/** Optional result for nuxt modules */ +export interface ModuleSetupReturn { /** * Timing information for the initial setup */ @@ -39,37 +39,19 @@ export type ModuleSetupInstallResult = { } type Awaitable = T | Promise +type _ModuleSetupReturn = Awaitable -type Prettify = { - [K in keyof T]: T[K]; -} & {} - -export type ModuleSetupReturn = Awaitable - -export type ResolvedModuleOptions> = Prettify< - Defu< - Partial, - [Partial, TOptionsDefaults] - > -> - -/** Module definition passed to 'defineNuxtModule(...)' or 'defineNuxtModule().with(...)'. */ -export interface ModuleDefinition< - TOptions extends ModuleOptions, - TOptionsDefaults extends Partial = Partial, -> { +/** Input module passed to defineNuxtModule. */ +export interface ModuleDefinition { meta?: ModuleMeta - defaults?: TOptionsDefaults | ((nuxt: Nuxt) => TOptionsDefaults) - schema?: TOptions + defaults?: T | ((nuxt: Nuxt) => T) + schema?: T hooks?: Partial - setup?: (this: void, resolvedOptions: ResolvedModuleOptions, nuxt: Nuxt) => ModuleSetupReturn + setup?: (this: void, resolvedOptions: T, nuxt: Nuxt) => _ModuleSetupReturn } -export interface NuxtModule< - TOptions extends ModuleOptions = ModuleOptions, - TOptionsDefaults extends Partial = Partial, -> { - (this: void, resolvedOptions: ResolvedModuleOptions, nuxt: Nuxt): ModuleSetupReturn - getOptions?: (inlineOptions?: Partial, nuxt?: Nuxt) => Promise> +export interface NuxtModule { + (this: void, inlineOptions: T, nuxt: Nuxt): _ModuleSetupReturn + getOptions?: (inlineOptions?: T, nuxt?: Nuxt) => Promise getMeta?: () => Promise } diff --git a/test/fixtures/basic-types/types.ts b/test/fixtures/basic-types/types.ts index 343ecb1a88..dad52b4f6a 100644 --- a/test/fixtures/basic-types/types.ts +++ b/test/fixtures/basic-types/types.ts @@ -5,7 +5,6 @@ import type { NavigationFailure, RouteLocationNormalized, RouteLocationRaw, Rout import type { AppConfig, RuntimeValue, UpperSnakeCase } from 'nuxt/schema' import { defineNuxtConfig } from 'nuxt/config' -import { defineNuxtModule } from 'nuxt/kit' import { callWithNuxt, isVue3 } from '#app' import type { NuxtError } from '#app' import type { NavigateToOptions } from '#app/composables/router' @@ -243,23 +242,6 @@ describe('modules', () => { // @ts-expect-error we want to ensure we throw type error on invalid key defineNuxtConfig({ undeclaredKey: { other: false } }) }) - - it('correctly typed resolved options in defineNuxtModule setup using `.with()`', () => { - defineNuxtModule<{ - foo?: string - baz: number - }>().with({ - defaults: { - foo: 'bar', - }, - setup: (resolvedOptions) => { - expectTypeOf(resolvedOptions).toEqualTypeOf<{ - foo: string - baz?: number | undefined - }>() - }, - }) - }) }) describe('nuxtApp', () => { From 11a79359b86f1a3ae677fa058a73d150c6a94962 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Mon, 10 Jun 2024 21:51:40 +0100 Subject: [PATCH 045/580] fix(nuxt): remove `boolean` value for `dedupe` in v4 compat (#27511) --- docs/1.getting-started/12.upgrade.md | 40 +++++++++++++++++++ .../nuxt/src/app/composables/asyncData.ts | 5 +-- packages/nuxt/src/app/defaults.ts | 1 + packages/nuxt/src/core/templates.ts | 9 +++-- .../basic/pages/useAsyncData/override.vue | 2 +- 5 files changed, 50 insertions(+), 7 deletions(-) diff --git a/docs/1.getting-started/12.upgrade.md b/docs/1.getting-started/12.upgrade.md index a50f1f3721..323abdb1d3 100644 --- a/docs/1.getting-started/12.upgrade.md +++ b/docs/1.getting-started/12.upgrade.md @@ -223,6 +223,46 @@ export default defineNuxtConfig({ Please report an issue if you are doing this, as we do not plan to keep this as configurable. +#### Removal of deprecated `boolean` values for `dedupe` option when calling `refresh` in `useAsyncData` and `useFetch` + +🚦 **Impact Level**: Minimal + +##### What Changed + +Previously it was possible to pass `dedupe: boolean` to `refresh`. These were aliases of `cancel` (`true`) and `defer` (`false`). + +```ts twoslash [app.vue] +const { refresh } = await useAsyncData(async () => ({ message: 'Hello, Nuxt 3!' })) + +async function refreshData () { + await refresh({ dedupe: true }) +} +``` + +##### Reasons for Change + +These aliases were removed, for greater clarity. + +The issue came up when adding `dedupe` as an option to `useAsyncData`, and we removed the boolean values as they ended up being _opposites_. + +`refresh({ dedupe: false })` meant 'do not _cancel_ existing requests in favour of this new one'. But passing `dedupe: true` within the options of `useAsyncData` means 'do not make any new requests if there is an existing pending request.' (See [PR](https://github.com/nuxt/nuxt/pull/24564#pullrequestreview-1764584361).) + +##### Migration Steps + +The migration should be straightforward: + +```diff + const { refresh } = await useAsyncData(async () => ({ message: 'Hello, Nuxt 3!' })) + + async function refreshData () { +- await refresh({ dedupe: true }) ++ await refresh({ dedupe: 'cancel' }) + +- await refresh({ dedupe: false }) ++ await refresh({ dedupe: 'defer' }) + } +``` + #### Respect defaults when clearing `data` in `useAsyncData` and `useFetch` 🚦 **Impact Level**: Minimal diff --git a/packages/nuxt/src/app/composables/asyncData.ts b/packages/nuxt/src/app/composables/asyncData.ts index aafb729e14..8ca773a338 100644 --- a/packages/nuxt/src/app/composables/asyncData.ts +++ b/packages/nuxt/src/app/composables/asyncData.ts @@ -11,7 +11,7 @@ import { onNuxtReady } from './ready' import { asyncDataDefaults, resetAsyncDataToUndefined } from '#build/nuxt.config.mjs' // TODO: temporary module for backwards compatibility -import type { DefaultAsyncDataErrorValue, DefaultAsyncDataValue } from '#app/defaults' +import type { DedupeOption, DefaultAsyncDataErrorValue, DefaultAsyncDataValue } from '#app/defaults' export type AsyncDataRequestStatus = 'idle' | 'pending' | 'success' | 'error' @@ -99,7 +99,6 @@ export interface AsyncDataOptions< export interface AsyncDataExecuteOptions { _initial?: boolean - // TODO: remove boolean option in Nuxt 4 /** * Force a refresh, even if there is already a pending request. Previous requests will * not be cancelled, but their result will not affect the data/pending state - and any @@ -108,7 +107,7 @@ export interface AsyncDataExecuteOptions { * Instead of using `boolean` values, use `cancel` for `true` and `defer` for `false`. * Boolean values will be removed in a future release. */ - dedupe?: boolean | 'cancel' | 'defer' + dedupe?: DedupeOption } export interface _AsyncData { diff --git a/packages/nuxt/src/app/defaults.ts b/packages/nuxt/src/app/defaults.ts index c83129cca6..f0dd26ea72 100644 --- a/packages/nuxt/src/app/defaults.ts +++ b/packages/nuxt/src/app/defaults.ts @@ -3,5 +3,6 @@ export type DefaultAsyncDataErrorValue = null export type DefaultAsyncDataValue = null export type DefaultErrorValue = null +export type DedupeOption = boolean | 'cancel' | 'defer' export {} diff --git a/packages/nuxt/src/core/templates.ts b/packages/nuxt/src/core/templates.ts index 0395ff2cbb..9e120da0ff 100644 --- a/packages/nuxt/src/core/templates.ts +++ b/packages/nuxt/src/core/templates.ts @@ -112,6 +112,8 @@ export const pluginsDeclaration: NuxtTemplate = { const pluginsName = (await annotatePlugins(ctx.nuxt, ctx.app.plugins)).filter(p => p.name).map(p => `'${p.name}'`) + const isV4 = ctx.nuxt.options.future.compatibilityVersion === 4 + return `// Generated by Nuxt' import type { Plugin } from '#app' @@ -131,9 +133,10 @@ declare module '#app' { } declare module '#app/defaults' { - type DefaultAsyncDataErrorValue = ${ctx.nuxt.options.future.compatibilityVersion === 4 ? 'undefined' : 'null'} - type DefaultAsyncDataValue = ${ctx.nuxt.options.future.compatibilityVersion === 4 ? 'undefined' : 'null'} - type DefaultErrorValue = ${ctx.nuxt.options.future.compatibilityVersion === 4 ? 'undefined' : 'null'} + type DefaultAsyncDataErrorValue = ${isV4 ? 'undefined' : 'null'} + type DefaultAsyncDataValue = ${isV4 ? 'undefined' : 'null'} + type DefaultErrorValue = ${isV4 ? 'undefined' : 'null'} + type DedupeOption = ${isV4 ? '\'cancel\' | \'defer\'' : 'boolean | \'cancel\' | \'defer\''} } declare module 'vue' { diff --git a/test/fixtures/basic/pages/useAsyncData/override.vue b/test/fixtures/basic/pages/useAsyncData/override.vue index 4741c30054..e0f659a1bc 100644 --- a/test/fixtures/basic/pages/useAsyncData/override.vue +++ b/test/fixtures/basic/pages/useAsyncData/override.vue @@ -15,7 +15,7 @@ if (count || data.value !== 1) { } timeout = 100 -const p = refresh({ dedupe: true, _initial: false }) +const p = refresh({ dedupe: 'cancel', _initial: false }) if (import.meta.client && (count !== 0 || data.value !== 1)) { throw new Error('count should start at 0') From cd95d99704c3ccb3f579c06d2d25da6d4119ac10 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Mon, 10 Jun 2024 21:52:16 +0100 Subject: [PATCH 046/580] feat(nuxt,schema): add `compatibilityDate` flag for future (#27512) --- packages/nuxt/src/core/nitro.ts | 5 ++++- packages/schema/package.json | 3 ++- packages/schema/src/config/common.ts | 12 ++++++++++++ pnpm-lock.yaml | 8 ++++++++ 4 files changed, 26 insertions(+), 2 deletions(-) diff --git a/packages/nuxt/src/core/nitro.ts b/packages/nuxt/src/core/nitro.ts index ce25bdb7db..84d6aec7dd 100644 --- a/packages/nuxt/src/core/nitro.ts +++ b/packages/nuxt/src/core/nitro.ts @@ -388,7 +388,10 @@ export async function initNitro (nuxt: Nuxt & { _nitro?: Nitro }) { } // Init nitro - const nitro = await createNitro(nitroConfig) + const nitro = await createNitro(nitroConfig, { + // @ts-expect-error this will be valid in a future version of Nitro + compatibilityDate: nuxt.options.compatibilityDate, + }) // Trigger Nitro reload when SPA loading template changes const spaLoadingTemplateFilePath = await spaLoadingTemplatePath(nuxt) diff --git a/packages/schema/package.json b/packages/schema/package.json index 1489adfedf..a556e49110 100644 --- a/packages/schema/package.json +++ b/packages/schema/package.json @@ -63,6 +63,7 @@ "webpack-dev-middleware": "7.2.1" }, "dependencies": { + "compatx": "^0.1.3", "consola": "^3.2.3", "defu": "^6.1.4", "hookable": "^5.5.3", @@ -71,8 +72,8 @@ "scule": "^1.3.0", "std-env": "^3.7.0", "ufo": "^1.5.3", - "unimport": "^3.7.2", "uncrypto": "^0.1.3", + "unimport": "^3.7.2", "untyped": "^1.4.2" }, "engines": { diff --git a/packages/schema/src/config/common.ts b/packages/schema/src/config/common.ts index 944bd5f2c2..5f6c866af5 100644 --- a/packages/schema/src/config/common.ts +++ b/packages/schema/src/config/common.ts @@ -20,6 +20,18 @@ export default defineUntypedSchema({ */ extends: null, + /** + * Specify a compatibility date for your app. + * + * This is used to control the behavior of presets in Nitro, Nuxt Image + * and other modules that may change behavior without a major version bump. + * + * We plan to improve the tooling around this feature in the future. + * + * @type {typeof import('compatx').DateString | Record} + */ + compatibilityDate: undefined, + /** * Extend project from a local or remote source. * diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5df508ca68..86d9c16605 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -457,6 +457,9 @@ importers: packages/schema: dependencies: + compatx: + specifier: ^0.1.3 + version: 0.1.3 consola: specifier: ^3.2.3 version: 3.2.3 @@ -3578,6 +3581,9 @@ packages: commondir@1.0.1: resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} + compatx@0.1.3: + resolution: {integrity: sha512-MWspQwvBk5xeLZMetIfjOozTAtmAIICz1mtol6NbBpCSllXOO+HvWMO87B18rcFtqjfrZ0tIFOH9gNG63ep+mw==} + compress-commons@6.0.2: resolution: {integrity: sha512-6FqVXeETqWPoGcfzrXb37E50NP0LXT8kAMu5ooZayhWWdgEY4lBEEcbQNXtkuKQsGduxiIcI4gOTsxTmuq/bSg==} engines: {node: '>= 14'} @@ -10489,6 +10495,8 @@ snapshots: commondir@1.0.1: {} + compatx@0.1.3: {} + compress-commons@6.0.2: dependencies: crc-32: 1.2.2 From 9655ce6f6227ea1e178cb4fd239c4062cfc6a999 Mon Sep 17 00:00:00 2001 From: Maik Kowol Date: Tue, 11 Jun 2024 00:20:27 +0200 Subject: [PATCH 047/580] fix(nuxt): add parent `scopeId` to server components (#27497) --- .../nuxt/src/app/components/nuxt-island.ts | 10 ++++++++- .../components/runtime/server-component.ts | 4 +++- test/nuxt/nuxt-island.test.ts | 21 +++++++++++++++---- 3 files changed, 29 insertions(+), 6 deletions(-) diff --git a/packages/nuxt/src/app/components/nuxt-island.ts b/packages/nuxt/src/app/components/nuxt-island.ts index 503d3e34a8..784132a752 100644 --- a/packages/nuxt/src/app/components/nuxt-island.ts +++ b/packages/nuxt/src/app/components/nuxt-island.ts @@ -1,4 +1,4 @@ -import type { Component } from 'vue' +import type { Component, PropType } from 'vue' import { Fragment, Teleport, computed, createStaticVNode, createVNode, defineComponent, getCurrentInstance, h, nextTick, onMounted, ref, toRaw, watch, withMemo } from 'vue' import { debounce } from 'perfect-debounce' import { hash } from 'ohash' @@ -59,6 +59,10 @@ export default defineComponent({ type: Object, default: () => ({}), }, + scopeId: { + type: String as PropType, + default: () => undefined, + }, source: { type: String, default: () => undefined, @@ -131,6 +135,10 @@ export default defineComponent({ const currentSlots = Object.keys(slots) let html = ssrHTML.value + if (props.scopeId) { + html = html.replace(/^<[^> ]*/, full => full + ' ' + props.scopeId) + } + if (import.meta.client && !canLoadClientComponent.value) { for (const [key, value] of Object.entries(payloads.components || {})) { html = html.replace(new RegExp(` data-island-uid="${uid.value}" data-island-component="${key}"[^>]*>`), (full) => { diff --git a/packages/nuxt/src/components/runtime/server-component.ts b/packages/nuxt/src/components/runtime/server-component.ts index bea615b2dc..c5ecee9b2e 100644 --- a/packages/nuxt/src/components/runtime/server-component.ts +++ b/packages/nuxt/src/components/runtime/server-component.ts @@ -1,4 +1,4 @@ -import { defineComponent, h, ref } from 'vue' +import { defineComponent, getCurrentInstance, h, ref } from 'vue' import NuxtIsland from '#app/components/nuxt-island' import { useRoute } from '#app/composables/router' import { isPrerendered } from '#app/composables/payload' @@ -11,6 +11,7 @@ export const createServerComponent = (name: string) => { props: { lazy: Boolean }, emits: ['error'], setup (props, { attrs, slots, expose, emit }) { + const vm = getCurrentInstance() const islandRef = ref(null) expose({ @@ -22,6 +23,7 @@ export const createServerComponent = (name: string) => { name, lazy: props.lazy, props: attrs, + scopeId: vm?.vnode.scopeId, ref: islandRef, onError: (err) => { emit('error', err) diff --git a/test/nuxt/nuxt-island.test.ts b/test/nuxt/nuxt-island.test.ts index e9cb75ae11..a12123884f 100644 --- a/test/nuxt/nuxt-island.test.ts +++ b/test/nuxt/nuxt-island.test.ts @@ -1,6 +1,6 @@ import { beforeEach } from 'node:test' import { describe, expect, it, vi } from 'vitest' -import { h, nextTick } from 'vue' +import { defineComponent, h, nextTick, popScopeId, pushScopeId } from 'vue' import { mountSuspended } from '@nuxt/test-utils/runtime' import { createServerComponent } from '../../packages/nuxt/src/components/runtime/server-component' import { createSimpleRemoteIslandProvider } from '../fixtures/remote-provider' @@ -133,6 +133,19 @@ describe('runtime server component', () => { expect(wrapper.emitted('error')).toHaveLength(1) vi.mocked(fetch).mockReset() }) + + it('expect NuxtIsland to have parent scopeId', async () => { + const wrapper = await mountSuspended(defineComponent({ + render () { + pushScopeId('data-v-654e2b21') + const vnode = h(createServerComponent('dummyName')) + popScopeId() + return vnode + }, + })) + + expect(wrapper.find('*').attributes()).toHaveProperty('data-v-654e2b21') + }) }) describe('client components', () => { @@ -186,7 +199,7 @@ describe('client components', () => { expect(fetch).toHaveBeenCalledOnce() expect(wrapper.html()).toMatchInlineSnapshot(` - "
hello
+ "
hello
client component
@@ -212,7 +225,7 @@ describe('client components', () => { await wrapper.vm.$.exposed!.refresh() await nextTick() expect(wrapper.html()).toMatchInlineSnapshot(` - "
hello
+ "
hello
fallback
" @@ -305,7 +318,7 @@ describe('client components', () => { }) expect(fetch).toHaveBeenCalledOnce() expect(wrapper.html()).toMatchInlineSnapshot(` - "
hello
+ "
hello
slot in client component
From 13fec55c1030b8a95106773a6a6463107fbf24f4 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Mon, 10 Jun 2024 23:42:55 +0100 Subject: [PATCH 048/580] fix(nuxt): handle symbol keys in wrapped runtime config --- packages/nuxt/src/app/nuxt.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/nuxt/src/app/nuxt.ts b/packages/nuxt/src/app/nuxt.ts index db062b6b58..d8fd5ffb5a 100644 --- a/packages/nuxt/src/app/nuxt.ts +++ b/packages/nuxt/src/app/nuxt.ts @@ -563,8 +563,8 @@ function wrappedConfig (runtimeConfig: Record) { const keys = Object.keys(runtimeConfig).map(key => `\`${key}\``) const lastKey = keys.pop() return new Proxy(runtimeConfig, { - get (target, p: string, receiver) { - if (p !== 'public' && !(p in target) && !p.startsWith('__v') /* vue check for reactivity, e.g. `__v_isRef` */) { + get (target, p, receiver) { + if (typeof p === 'string' && p !== 'public' && !(p in target) && !p.startsWith('__v') /* vue check for reactivity, e.g. `__v_isRef` */) { console.warn(`[nuxt] Could not access \`${p}\`. The only available runtime config keys on the client side are ${keys.join(', ')} and ${lastKey}. See \`https://nuxt.com/docs/guide/going-further/runtime-config\` for more information.`) } return Reflect.get(target, p, receiver) From b75bf870bef90c7791e2bfbdb0fab9168871cb16 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Tue, 11 Jun 2024 09:23:48 +0100 Subject: [PATCH 049/580] fix(nuxt): register augmented pages to avoid re-augmenting --- packages/nuxt/src/pages/utils.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/nuxt/src/pages/utils.ts b/packages/nuxt/src/pages/utils.ts index 85d408727a..19014fbd20 100644 --- a/packages/nuxt/src/pages/utils.ts +++ b/packages/nuxt/src/pages/utils.ts @@ -144,6 +144,7 @@ export async function augmentPages (routes: NuxtPage[], vfs: Record 0) { From 09f6a88e1d7f2b2d59e65a146592ac5b78ed7a07 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Tue, 11 Jun 2024 09:37:35 +0100 Subject: [PATCH 050/580] fix(nuxt): use file path as key for re-augmenting --- packages/nuxt/src/pages/utils.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/nuxt/src/pages/utils.ts b/packages/nuxt/src/pages/utils.ts index 19014fbd20..78080c97cc 100644 --- a/packages/nuxt/src/pages/utils.ts +++ b/packages/nuxt/src/pages/utils.ts @@ -139,12 +139,12 @@ export function generateRoutesFromFiles (files: ScannedFile[], options: Generate return prepareRoutes(routes) } -export async function augmentPages (routes: NuxtPage[], vfs: Record, augmentedPages = new Set()) { +export async function augmentPages (routes: NuxtPage[], vfs: Record, augmentedPages = new Set()) { for (const route of routes) { - if (!augmentedPages.has(route) && route.file) { + if (route.file && !augmentedPages.has(route.file)) { const fileContent = route.file in vfs ? vfs[route.file] : fs.readFileSync(await resolvePath(route.file), 'utf-8') Object.assign(route, await getRouteMeta(fileContent, route.file)) - augmentedPages.add(route) + augmentedPages.add(route.file) } if (route.children && route.children.length > 0) { From 9f06842fa1b323bd0e0911b0335a091a9052b5c3 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 11 Jun 2024 09:44:43 +0100 Subject: [PATCH 051/580] v3.12.0 --- packages/kit/package.json | 2 +- packages/nuxt/package.json | 2 +- packages/schema/package.json | 2 +- packages/vite/package.json | 2 +- packages/webpack/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/kit/package.json b/packages/kit/package.json index 0a3ea10f67..e529e16f46 100644 --- a/packages/kit/package.json +++ b/packages/kit/package.json @@ -1,6 +1,6 @@ { "name": "@nuxt/kit", - "version": "3.11.2", + "version": "3.12.0", "repository": { "type": "git", "url": "git+https://github.com/nuxt/nuxt.git", diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index 7ebf3c3fe6..e033b47fd2 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -1,6 +1,6 @@ { "name": "nuxt", - "version": "3.11.2", + "version": "3.12.0", "repository": { "type": "git", "url": "git+https://github.com/nuxt/nuxt.git", diff --git a/packages/schema/package.json b/packages/schema/package.json index a556e49110..81cd68ff67 100644 --- a/packages/schema/package.json +++ b/packages/schema/package.json @@ -1,6 +1,6 @@ { "name": "@nuxt/schema", - "version": "3.11.2", + "version": "3.12.0", "repository": { "type": "git", "url": "git+https://github.com/nuxt/nuxt.git", diff --git a/packages/vite/package.json b/packages/vite/package.json index 418b7deb92..4b89955a8d 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -1,6 +1,6 @@ { "name": "@nuxt/vite-builder", - "version": "3.11.2", + "version": "3.12.0", "repository": { "type": "git", "url": "git+https://github.com/nuxt/nuxt.git", diff --git a/packages/webpack/package.json b/packages/webpack/package.json index d4c67588e6..d77c7d7d79 100644 --- a/packages/webpack/package.json +++ b/packages/webpack/package.json @@ -1,6 +1,6 @@ { "name": "@nuxt/webpack-builder", - "version": "3.11.2", + "version": "3.12.0", "repository": { "type": "git", "url": "git+https://github.com/nuxt/nuxt.git", From 7777f056413af7c9bc897db380e1eae7132b49d7 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Tue, 11 Jun 2024 09:54:34 +0100 Subject: [PATCH 052/580] chore: fix release script --- scripts/release.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/release.sh b/scripts/release.sh index a247550e97..f8fc5bd819 100755 --- a/scripts/release.sh +++ b/scripts/release.sh @@ -16,7 +16,7 @@ for PKG in packages/* ; do if [[ $PKG == "packages/test-utils" ]] ; then continue fi - if [[ $p == "packages/ui-templates" ]] ; then + if [[ $PKG == "packages/ui-templates" ]] ; then continue fi pushd $PKG From 0252000d7cf604e82ab3e4d8c675b757a5224e6c Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Tue, 11 Jun 2024 10:14:11 +0100 Subject: [PATCH 053/580] fix(nuxt): update registry list for `@nuxt/scripts` --- packages/nuxt/package.json | 1 + packages/nuxt/src/imports/presets.ts | 5 +- packages/nuxt/test/auto-imports.test.ts | 21 +- pnpm-lock.yaml | 369 +++++++++++++++++++++++- 4 files changed, 384 insertions(+), 12 deletions(-) diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index e033b47fd2..a1debe9566 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -118,6 +118,7 @@ "vue-router": "^4.3.3" }, "devDependencies": { + "@nuxt/scripts": "^0.4.7", "@nuxt/ui-templates": "1.3.4", "@parcel/watcher": "2.4.1", "@types/estree": "1.0.5", diff --git a/packages/nuxt/src/imports/presets.ts b/packages/nuxt/src/imports/presets.ts index ba5a513d3c..3b2e85534c 100644 --- a/packages/nuxt/src/imports/presets.ts +++ b/packages/nuxt/src/imports/presets.ts @@ -123,15 +123,16 @@ export const scriptsStubsPreset = { 'useScriptFathomAnalytics', 'useScriptMatomoAnalytics', 'useScriptGoogleTagManager', + 'useScriptGoogleAdsense', 'useScriptSegment', - 'useScriptFacebookPixel', + 'useScriptMetaPixel', 'useScriptXPixel', 'useScriptIntercom', 'useScriptHotjar', 'useScriptStripe', 'useScriptLemonSqueezy', 'useScriptVimeoPlayer', - 'useScriptYouTubeIframe', + 'useScriptYouTubePlayer', 'useScriptGoogleMaps', 'useScriptNpm', ], diff --git a/packages/nuxt/test/auto-imports.test.ts b/packages/nuxt/test/auto-imports.test.ts index 3f8807dc3f..f417369177 100644 --- a/packages/nuxt/test/auto-imports.test.ts +++ b/packages/nuxt/test/auto-imports.test.ts @@ -6,8 +6,9 @@ import * as VueFunctions from 'vue' import type { Import } from 'unimport' import { createUnimport } from 'unimport' import type { Plugin } from 'vite' +import { registry as scriptRegistry } from '@nuxt/scripts/registry' import { TransformPlugin } from '../src/imports/transform' -import { defaultPresets } from '../src/imports/presets' +import { defaultPresets, scriptsStubsPreset } from '../src/imports/presets' describe('imports:transform', () => { const imports: Import[] = [ @@ -193,3 +194,21 @@ describe('imports:vue', () => { }) } }) + +describe('imports:nuxt/scripts', () => { + const scripts = scriptRegistry().map(s => s.import?.name).filter(Boolean) + const globalScripts = new Set([ + 'useScript', + 'useAnalyticsPageEvent', + 'useElementScriptTrigger', + 'useConsentScriptTrigger', + ]) + it.each(scriptsStubsPreset.imports)(`should register %s from @nuxt/scripts`, (name) => { + if (globalScripts.has(name)) { return } + + expect(scripts).toContain(name) + }) + it.each(scripts)(`should register %s from @nuxt/scripts`, (name) => { + expect(scriptsStubsPreset.imports).toContain(name) + }) +}) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 86d9c16605..ec7ca3f7f3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -257,7 +257,7 @@ importers: version: 2.0.2 '@nuxt/devtools': specifier: ^1.3.3 - version: 1.3.3(@unocss/reset@0.60.4)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.60.4(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)) + version: 1.3.3(@unocss/reset@0.60.4)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.91.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)) '@nuxt/kit': specifier: workspace:* version: link:../kit @@ -427,6 +427,9 @@ importers: specifier: ^4.3.3 version: 4.3.3(vue@3.4.27(typescript@5.4.5)) devDependencies: + '@nuxt/scripts': + specifier: ^0.4.7 + version: 0.4.7(@nuxt/devtools@1.3.3(@unocss/reset@0.60.4)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.91.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)))(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.91.0(esbuild@0.21.5)))(@vue/compiler-core@3.4.27)(ioredis@5.3.2)(nuxt@packages+nuxt)(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5))(webpack@5.91.0(esbuild@0.21.5)) '@nuxt/ui-templates': specifier: workspace:* version: link:../ui-templates @@ -619,7 +622,7 @@ importers: version: 1.3.0 unocss: specifier: 0.60.4 - version: 0.60.4(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) + version: 0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) vite: specifier: 5.2.13 version: 5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) @@ -1951,6 +1954,18 @@ packages: resolution: {integrity: sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew==} engines: {node: '>=18.18'} + '@iconify-json/carbon@1.1.35': + resolution: {integrity: sha512-zKqioWceqFRiLJvxpjcCpVP3j2YcokYshlbwSAHBhOih5XNUymUS3hm1kpV4KljMI1xWH96UcozHaaf6x4YzdA==} + + '@iconify-json/logos@1.1.43': + resolution: {integrity: sha512-UtvL1yDHUr9dl1Tqihh6K9m5dmbYKOYyLf3i9aKhymSW76QjOCGjpgQc0PQ4GJCAdU1cAMu+WO61TgPxdonrlg==} + + '@iconify-json/ri@1.1.20': + resolution: {integrity: sha512-yScIGjLFBCJKWKskQTWRjNI2Awoq+VRDkRxEsCQvSfdz41n+xkRtFG2K6J1OVI90ClRHfjFC8VJ2+WzxxyFjTQ==} + + '@iconify-json/tabler@1.1.113': + resolution: {integrity: sha512-dT34D0gyqxgK2t91+8scQ+U387yZ/zb4r7/3CHqhmvaVMsnOT8DFtX0FhJzdr6ldnVH82pGAp59GGr97IT/UfQ==} + '@iconify/types@2.0.0': resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} @@ -2098,6 +2113,11 @@ packages: nuxt: workspace:* vite: 5.2.13 + '@nuxt/devtools-ui-kit@1.3.3': + resolution: {integrity: sha512-vM9dcb/CLXf1big6SmhVL0mh/JzNtZaJwHMYDd3vqv7jAedGuNfURDSGGVYQRFlSFisA3Cn0TnjDDs+dPrGuAA==} + peerDependencies: + '@nuxt/devtools': 1.3.3 + '@nuxt/devtools-wizard@1.3.3': resolution: {integrity: sha512-9Umo9eDgwhSBDnTzWINXwJBYy2J3ay6OviM7Qdr08B9hDu+CU6MrEpsT4hZ3npD7p1E+9t1YQw/4fZ8NMcPVnw==} hasBin: true @@ -2125,6 +2145,9 @@ packages: peerDependencies: webpack: ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 + '@nuxt/scripts@0.4.7': + resolution: {integrity: sha512-zVP7tF3rmO2ZqQW5Hmmy0NQ4WYH+8ye1QBseSJZ0Ab1pDQEpWX+CI7tVak7Fw7IWVnrAcjIMh6TJFt0zQ/ARjg==} + '@nuxt/telemetry@2.5.4': resolution: {integrity: sha512-KH6wxzsNys69daSO0xUv0LEBAfhwwjK1M+0Cdi1/vxmifCslMIY7lN11B4eywSfscbyVPAYJvANyc7XiVPImBQ==} hasBin: true @@ -2170,6 +2193,9 @@ packages: vitest: optional: true + '@nuxtjs/color-mode@3.4.1': + resolution: {integrity: sha512-vZgJqDstxInGw3RGSWbLoCLXtU1mvh1LLeuEA/X3a++DYA4ifwSbNoiSiOyb9qZHFEwz1Xr99H71sXV4IhOaEg==} + '@nuxtjs/mdc@0.5.0': resolution: {integrity: sha512-480Ajc7o/YAl9b21btd0oRtVe/UjUWmVSEWauS+H+izwEGdGvJTVfZRdaiAXcXKl+UmUTpf+POel027sE9HAZQ==} @@ -2445,6 +2471,9 @@ packages: '@shikijs/core@1.3.0': resolution: {integrity: sha512-7fedsBfuILDTBmrYZNFI8B6ATTxhQAasUHllHmjvSZPnoq4bULWoTpHwmuQvZ8Aq03/tAa2IGo6RXqWtHdWaCA==} + '@shikijs/core@1.6.3': + resolution: {integrity: sha512-QnJKHFUW95GnlJLJGP6QLx4M69HM0KlXk+R2Y8lr/x4nAx1Yb/lsuxq4XwybuUjTxbJk+BT0g/kvn0bcsjGGHg==} + '@shikijs/transformers@1.1.2': resolution: {integrity: sha512-tldkUMW7RBkU2F6eXbiRMw3ja+hQer1EjwhD2NGOv6K0pgZdVp3JKjU8uisRtg65tyBqrVHq7zlLHVk7EKmUZA==} @@ -2581,6 +2610,9 @@ packages: '@types/fs-extra@11.0.4': resolution: {integrity: sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==} + '@types/google.maps@3.55.9': + resolution: {integrity: sha512-phaOMtezbT3NaXPKiI3m0OosUS7Nly0auw3Be5s/CgMWLVoDAUP1Yb/Ld0TRoRp8ibrlT4VqM5kmzfvUA0UNLQ==} + '@types/hash-sum@1.0.2': resolution: {integrity: sha512-UP28RddqY8xcU0SCEp9YKutQICXpaAq9N8U2klqF5hegGha7KzTOL8EdhIIV3bOSGBzjEpN9bU/d+nNZBdJYVw==} @@ -2653,6 +2685,9 @@ packages: '@types/source-list-map@0.1.4': resolution: {integrity: sha512-Kdfm7Sk5VX8dFW7Vbp18+fmAatBewzBILa1raHYxrGEFXT0jNl9x3LWfuW7bTbjEKFNey9Dfkj/UzT6z/NvRlg==} + '@types/stripe-v3@3.1.33': + resolution: {integrity: sha512-fIE7F7alypCrnIMsk4naprHf8kXEvPM2Q9FGdL/3TDeGM0xlHohdVWkwuaEZ2tKzXB9QQKoS8k+ocLkPjZajwQ==} + '@types/tapable@1.0.10': resolution: {integrity: sha512-q8F20SdXG5fdVJQ5yxsVlH+f+oekP42QeHv4s5KlrxTMT0eopXn7ol1rhxMcksf8ph7XNv811iVDE2hOpUvEPg==} @@ -2665,6 +2700,9 @@ packages: '@types/unist@3.0.2': resolution: {integrity: sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==} + '@types/vimeo__player@2.18.3': + resolution: {integrity: sha512-IzSzb6doT4I4uAnBHa+mBCiNtK7iAllEJjtpkX0sKY6/s1Vi+aX1134IAiPgiyFlMvFab/oZQpSeccK4r0/T2A==} + '@types/web-bluetooth@0.0.20': resolution: {integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==} @@ -2690,6 +2728,9 @@ packages: '@types/yargs@17.0.28': resolution: {integrity: sha512-N3e3fkS86hNhtk6BEnc0rj3zcehaxx8QWhCROJkqpl5Zaoi7nAic3jH8q94jVD3zu5LGk+PUB6KAiDmimYOEQw==} + '@types/youtube@0.0.50': + resolution: {integrity: sha512-d4GpH4uPYp9W07kc487tiq6V/EUHl18vZWFMbQoe4Sk9LXEWzFi/BMf9x7TI4m7/j7gU3KeX8H6M8aPBgykeLw==} + '@typescript-eslint/eslint-plugin@7.9.0': resolution: {integrity: sha512-6e+X0X3sFe/G/54aC3jt0txuMTURqLyekmEHViqyA2VnxhLMpvA6nqmcjIy+Cr9tLDHPssA74BP5Mx9HQIxBEA==} engines: {node: ^18.18.0 || >=20.0.0} @@ -2797,6 +2838,9 @@ packages: '@unocss/inspector@0.60.4': resolution: {integrity: sha512-PcnrEQ2H7osZho4Nh0+84O4IXzlkF7pvTUe/7FTJYF1HQGWHB/PfOSoyKn7/sF5sED8hMK9RlSJ9YGUH9ioY+g==} + '@unocss/nuxt@0.60.4': + resolution: {integrity: sha512-2lv7tsVlAnGMqqImfZPLm05dtDo3Og0VDrHOAwFwL4XiVaTLXEXQfAf/bOBDRy4qpJ2nFDj9eltuoQYWto1jmA==} + '@unocss/postcss@0.60.4': resolution: {integrity: sha512-mHha4BoOpCWRRL5EFJqsj+BiYxOBPXUZDFbSWmA8oAMBwcA/yqtnaRF2tqI9CK+CDfhmtbYF64KdTLh9pf6BvQ==} engines: {node: '>=14'} @@ -2857,6 +2901,11 @@ packages: peerDependencies: vite: 5.2.13 + '@unocss/webpack@0.60.4': + resolution: {integrity: sha512-TcPuiAZZO+a+xiahrCm7eEHlP8o667n+CWv+kpz4bidY5V8Xyxs1MjzJAPVOk8Kwz86HvQZyf2CG+3powNTwKA==} + peerDependencies: + webpack: ^4 || ^5 + '@vercel/nft@0.26.4': resolution: {integrity: sha512-j4jCOOXke2t8cHZCIxu1dzKLHLcFmYzC3yqAK6MfZznOL1QIJKd0xcFsXK3zcqzU7ScsE2zWkiMMNHGMHgp+FA==} engines: {node: '>=16'} @@ -3029,6 +3078,9 @@ packages: '@vueuse/components@10.9.0': resolution: {integrity: sha512-BHQpA0yIi3y7zKa1gYD0FUzLLkcRTqVhP8smnvsCK6GFpd94Nziq1XVPD7YpFeho0k5BzbBiNZF7V/DpkJ967A==} + '@vueuse/core@10.10.0': + resolution: {integrity: sha512-vexJ/YXYs2S42B783rI95lMt3GzEwkxzC8Hb0Ndpd8rD+p+Lk/Za4bd797Ym7yq4jXqdSyj3JLChunF/vyYjUw==} + '@vueuse/core@10.9.0': resolution: {integrity: sha512-/1vjTol8SXnx6xewDEKfS0Ra//ncg4Hb0DaZiwKf7drgfMsKFExQ+FnnENcN6efPen+1kIzhLQoGSy0eDUVOMg==} @@ -3073,9 +3125,20 @@ packages: universal-cookie: optional: true + '@vueuse/metadata@10.10.0': + resolution: {integrity: sha512-UNAo2sTCAW5ge6OErPEHb5z7NEAg3XcO9Cj7OK45aZXfLLH1QkexDcZD77HBi5zvEiLOm1An+p/4b5K3Worpug==} + '@vueuse/metadata@10.9.0': resolution: {integrity: sha512-iddNbg3yZM0X7qFY2sAotomgdHK7YJ6sKUvQqbvwnf7TmaVPxS4EJydcNsVejNdS8iWCtDk+fYXr7E32nyTnGA==} + '@vueuse/nuxt@10.10.0': + resolution: {integrity: sha512-l8uFNuFASmcjPEaKAbigUrQZDtVQ9wRTfbuIBEpr3oAGnYtXGwBoQqYGnZopUR1Kdh8qiurpKuwvzVQnrzDjyw==} + peerDependencies: + nuxt: workspace:* + + '@vueuse/shared@10.10.0': + resolution: {integrity: sha512-2aW33Ac0Uk0U+9yo3Ypg9s5KcR42cuehRWl7vnUHadQyFvCktseyxxEPBi1Eiq4D2yBGACOnqLZpx1eMc7g5Og==} + '@vueuse/shared@10.9.0': resolution: {integrity: sha512-Uud2IWncmAfJvRaFYzv5OHDli+FbOzxiVEQdLCKQKLyhz94PIyFC3CHcH7EDMwIn8NPtD06+PNbC/PiO0LGLtw==} @@ -6579,6 +6642,9 @@ packages: shiki@1.3.0: resolution: {integrity: sha512-9aNdQy/etMXctnPzsje1h1XIGm9YfRcSksKOGqZWXA/qP9G18/8fpz5Bjpma8bOgz3tqIpjERAd6/lLjFyzoww==} + shiki@1.6.3: + resolution: {integrity: sha512-lE1/YGlzFY0hQSyEfsZj18xGrTWxyhFQkaiILALqTBZPbJeYFWpbUhlmTGPOupYB/qC+H6sV4UznJzcEh3WMHQ==} + side-channel@1.0.4: resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} @@ -6855,6 +6921,9 @@ packages: peerDependencies: tslib: ^2 + third-party-capital@1.0.30: + resolution: {integrity: sha512-hiXyTwFcgmVBCfhPZz92OxqBvd36EbsI6LVesOCHGVcgQwmSM/mr4GC6AkbPiR6KdOkfsGctoqrHII7n3UZRFg==} + time-fix-plugin@2.0.7: resolution: {integrity: sha512-uVFet1LQToeUX0rTcSiYVYVoGuBpc8gP/2jnlUzuHMHe+gux6XLsNzxLUweabMwiUj5ejhoIMsUI55nVSEa/Vw==} peerDependencies: @@ -7168,6 +7237,14 @@ packages: util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + v-lazy-show@0.2.4: + resolution: {integrity: sha512-Lx9Str2i+HTh+zGzs9O3YyhGAZOAAfU+6MUUPcQPPiPxQO1sHBEv9sH3MO9bPc4T09gsjsS2+sbaCWQ1MdhpJQ==} + peerDependencies: + '@vue/compiler-core': ^3.3 + + valibot@0.30.0: + resolution: {integrity: sha512-5POBdbSkM+3nvJ6ZlyQHsggisfRtyT4tVTo1EIIShs6qCdXJnyWU5TJ68vr8iTg5zpOLjXLRiBqNx+9zwZz/rA==} + validate-npm-package-license@3.0.4: resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} @@ -8363,6 +8440,22 @@ snapshots: '@humanwhocodes/retry@0.3.0': {} + '@iconify-json/carbon@1.1.35': + dependencies: + '@iconify/types': 2.0.0 + + '@iconify-json/logos@1.1.43': + dependencies: + '@iconify/types': 2.0.0 + + '@iconify-json/ri@1.1.20': + dependencies: + '@iconify/types': 2.0.0 + + '@iconify-json/tabler@1.1.113': + dependencies: + '@iconify/types': 2.0.0 + '@iconify/types@2.0.0': {} '@iconify/utils@2.1.24': @@ -8563,6 +8656,53 @@ snapshots: nuxt: link:packages/nuxt vite: 5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) + '@nuxt/devtools-ui-kit@1.3.3(@nuxt/devtools@1.3.3(@unocss/reset@0.60.4)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.91.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)))(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.91.0(esbuild@0.21.5)))(@vue/compiler-core@3.4.27)(nuxt@packages+nuxt)(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5))(webpack@5.91.0(esbuild@0.21.5))': + dependencies: + '@iconify-json/carbon': 1.1.35 + '@iconify-json/logos': 1.1.43 + '@iconify-json/ri': 1.1.20 + '@iconify-json/tabler': 1.1.113 + '@nuxt/devtools': 1.3.3(@unocss/reset@0.60.4)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.91.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)) + '@nuxt/devtools-kit': 1.3.3(nuxt@packages+nuxt)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) + '@nuxt/kit': link:packages/kit + '@nuxtjs/color-mode': 3.4.1 + '@unocss/core': 0.60.4 + '@unocss/nuxt': 0.60.4(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(webpack@5.91.0(esbuild@0.21.5)) + '@unocss/preset-attributify': 0.60.4 + '@unocss/preset-icons': 0.60.4 + '@unocss/preset-mini': 0.60.4 + '@unocss/reset': 0.60.4 + '@vueuse/core': 10.10.0(vue@3.4.27(typescript@5.4.5)) + '@vueuse/integrations': 10.9.0(focus-trap@7.5.4)(vue@3.4.27(typescript@5.4.5)) + '@vueuse/nuxt': 10.10.0(nuxt@packages+nuxt)(vue@3.4.27(typescript@5.4.5)) + defu: 6.1.4 + focus-trap: 7.5.4 + splitpanes: 3.1.5 + unocss: 0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) + v-lazy-show: 0.2.4(@vue/compiler-core@3.4.27) + transitivePeerDependencies: + - '@unocss/webpack' + - '@vue/compiler-core' + - '@vue/composition-api' + - async-validator + - axios + - change-case + - drauu + - fuse.js + - idb-keyval + - jwt-decode + - nprogress + - nuxt + - postcss + - qrcode + - rollup + - sortablejs + - supports-color + - universal-cookie + - vite + - vue + - webpack + '@nuxt/devtools-wizard@1.3.3': dependencies: consola: 3.2.3 @@ -8576,13 +8716,13 @@ snapshots: rc9: 2.1.2 semver: 7.6.2 - '@nuxt/devtools@1.3.3(@unocss/reset@0.60.4)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.60.4(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5))': + '@nuxt/devtools@1.3.3(@unocss/reset@0.60.4)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.91.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5))': dependencies: '@antfu/utils': 0.7.8 '@nuxt/devtools-kit': 1.3.3(nuxt@packages+nuxt)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) '@nuxt/devtools-wizard': 1.3.3 '@nuxt/kit': link:packages/kit - '@vue/devtools-applet': 7.1.3(@unocss/reset@0.60.4)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(unocss@0.60.4(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)) + '@vue/devtools-applet': 7.1.3(@unocss/reset@0.60.4)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(unocss@0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.91.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)) '@vue/devtools-core': 7.1.3(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)) '@vue/devtools-kit': 7.1.3(vue@3.4.27(typescript@5.4.5)) birpc: 0.2.17 @@ -8682,6 +8822,74 @@ snapshots: string-width: 4.2.3 webpack: 5.91.0 + '@nuxt/scripts@0.4.7(@nuxt/devtools@1.3.3(@unocss/reset@0.60.4)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.91.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)))(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.91.0(esbuild@0.21.5)))(@vue/compiler-core@3.4.27)(ioredis@5.3.2)(nuxt@packages+nuxt)(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5))(webpack@5.91.0(esbuild@0.21.5))': + dependencies: + '@nuxt/devtools-kit': 1.3.3(nuxt@packages+nuxt)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) + '@nuxt/devtools-ui-kit': 1.3.3(@nuxt/devtools@1.3.3(@unocss/reset@0.60.4)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.91.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)))(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.91.0(esbuild@0.21.5)))(@vue/compiler-core@3.4.27)(nuxt@packages+nuxt)(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5))(webpack@5.91.0(esbuild@0.21.5)) + '@nuxt/kit': link:packages/kit + '@types/google.maps': 3.55.9 + '@types/stripe-v3': 3.1.33 + '@types/vimeo__player': 2.18.3 + '@types/youtube': 0.0.50 + '@unhead/vue': 1.9.12(vue@3.4.27(typescript@5.4.5)) + '@vueuse/core': 10.10.0(vue@3.4.27(typescript@5.4.5)) + consola: 3.2.3 + defu: 6.1.4 + estree-walker: 3.0.3 + h3: 1.11.1 + magic-string: 0.30.10 + mlly: 1.7.1 + ofetch: 1.3.4 + ohash: 1.1.3 + pathe: 1.1.2 + pkg-types: 1.1.1 + semver: 7.6.2 + shiki: 1.6.3 + sirv: 2.0.4 + std-env: 3.7.0 + third-party-capital: 1.0.30 + ufo: 1.5.3 + unimport: 3.7.2(rollup@4.18.0) + unplugin: 1.10.1 + unstorage: 1.10.2(ioredis@5.3.2) + valibot: 0.30.0 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@netlify/blobs' + - '@nuxt/devtools' + - '@planetscale/database' + - '@unocss/webpack' + - '@upstash/redis' + - '@vercel/kv' + - '@vue/compiler-core' + - '@vue/composition-api' + - async-validator + - axios + - change-case + - drauu + - fuse.js + - idb-keyval + - ioredis + - jwt-decode + - nprogress + - nuxt + - postcss + - qrcode + - rollup + - sortablejs + - supports-color + - uWebSockets.js + - universal-cookie + - vite + - vue + - webpack + '@nuxt/telemetry@2.5.4': dependencies: '@nuxt/kit': link:packages/kit @@ -8739,6 +8947,13 @@ snapshots: playwright-core: 1.44.1 vitest: 1.6.0(@types/node@20.14.2)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0) + '@nuxtjs/color-mode@3.4.1': + dependencies: + '@nuxt/kit': link:packages/kit + pathe: 1.1.2 + pkg-types: 1.1.1 + semver: 7.6.2 + '@nuxtjs/mdc@0.5.0': dependencies: '@nuxt/kit': link:packages/kit @@ -8982,6 +9197,8 @@ snapshots: '@shikijs/core@1.3.0': {} + '@shikijs/core@1.6.3': {} + '@shikijs/transformers@1.1.2': dependencies: shiki: 1.1.2 @@ -9166,6 +9383,8 @@ snapshots: '@types/jsonfile': 6.1.2 '@types/node': 20.12.12 + '@types/google.maps@3.55.9': {} + '@types/hash-sum@1.0.2': {} '@types/hast@3.0.4': @@ -9243,6 +9462,8 @@ snapshots: '@types/source-list-map@0.1.4': {} + '@types/stripe-v3@3.1.33': {} + '@types/tapable@1.0.10': {} '@types/uglify-js@3.17.3': @@ -9253,6 +9474,8 @@ snapshots: '@types/unist@3.0.2': {} + '@types/vimeo__player@2.18.3': {} + '@types/web-bluetooth@0.0.20': {} '@types/webpack-bundle-analyzer@4.7.0': @@ -9302,6 +9525,8 @@ snapshots: dependencies: '@types/yargs-parser': 21.0.1 + '@types/youtube@0.0.50': {} + '@typescript-eslint/eslint-plugin@7.9.0(@typescript-eslint/parser@7.9.0(eslint@9.4.0)(typescript@5.4.5))(eslint@9.4.0)(typescript@5.4.5)': dependencies: '@eslint-community/regexpp': 4.10.0 @@ -9464,6 +9689,29 @@ snapshots: gzip-size: 6.0.0 sirv: 2.0.4 + '@unocss/nuxt@0.60.4(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(webpack@5.91.0(esbuild@0.21.5))': + dependencies: + '@nuxt/kit': link:packages/kit + '@unocss/config': 0.60.4 + '@unocss/core': 0.60.4 + '@unocss/preset-attributify': 0.60.4 + '@unocss/preset-icons': 0.60.4 + '@unocss/preset-tagify': 0.60.4 + '@unocss/preset-typography': 0.60.4 + '@unocss/preset-uno': 0.60.4 + '@unocss/preset-web-fonts': 0.60.4 + '@unocss/preset-wind': 0.60.4 + '@unocss/reset': 0.60.4 + '@unocss/vite': 0.60.4(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) + '@unocss/webpack': 0.60.4(rollup@4.18.0)(webpack@5.91.0(esbuild@0.21.5)) + unocss: 0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) + transitivePeerDependencies: + - postcss + - rollup + - supports-color + - vite + - webpack + '@unocss/postcss@0.60.4(postcss@8.4.38)': dependencies: '@unocss/config': 0.60.4 @@ -9571,6 +9819,21 @@ snapshots: transitivePeerDependencies: - rollup + '@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.91.0(esbuild@0.21.5))': + dependencies: + '@ampproject/remapping': 2.3.0 + '@rollup/pluginutils': 5.1.0(rollup@4.18.0) + '@unocss/config': 0.60.4 + '@unocss/core': 0.60.4 + chokidar: 3.6.0 + fast-glob: 3.3.2 + magic-string: 0.30.10 + unplugin: 1.10.1 + webpack: 5.91.0(esbuild@0.21.5) + webpack-sources: 3.2.3 + transitivePeerDependencies: + - rollup + '@vercel/nft@0.26.4(encoding@0.1.13)': dependencies: '@mapbox/node-pre-gyp': 1.0.11(encoding@0.1.13) @@ -9777,12 +10040,12 @@ snapshots: '@vue/devtools-api@6.6.3': {} - '@vue/devtools-applet@7.1.3(@unocss/reset@0.60.4)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(unocss@0.60.4(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5))': + '@vue/devtools-applet@7.1.3(@unocss/reset@0.60.4)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(unocss@0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.91.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5))': dependencies: '@vue/devtools-core': 7.1.3(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)) '@vue/devtools-kit': 7.1.3(vue@3.4.27(typescript@5.4.5)) '@vue/devtools-shared': 7.1.3 - '@vue/devtools-ui': 7.1.3(@unocss/reset@0.60.4)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(unocss@0.60.4(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vue@3.4.27(typescript@5.4.5)) + '@vue/devtools-ui': 7.1.3(@unocss/reset@0.60.4)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(unocss@0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.91.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vue@3.4.27(typescript@5.4.5)) lodash-es: 4.17.21 perfect-debounce: 1.0.0 shiki: 1.3.0 @@ -9832,7 +10095,7 @@ snapshots: dependencies: rfdc: 1.3.1 - '@vue/devtools-ui@7.1.3(@unocss/reset@0.60.4)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(unocss@0.60.4(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vue@3.4.27(typescript@5.4.5))': + '@vue/devtools-ui@7.1.3(@unocss/reset@0.60.4)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(unocss@0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.91.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vue@3.4.27(typescript@5.4.5))': dependencies: '@unocss/reset': 0.60.4 '@vue/devtools-shared': 7.1.3 @@ -9842,7 +10105,7 @@ snapshots: colord: 2.9.3 floating-vue: 5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)) focus-trap: 7.5.4 - unocss: 0.60.4(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) + unocss: 0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) vue: 3.4.27(typescript@5.4.5) transitivePeerDependencies: - '@vue/composition-api' @@ -9921,6 +10184,16 @@ snapshots: - '@vue/composition-api' - vue + '@vueuse/core@10.10.0(vue@3.4.27(typescript@5.4.5))': + dependencies: + '@types/web-bluetooth': 0.0.20 + '@vueuse/metadata': 10.10.0 + '@vueuse/shared': 10.10.0(vue@3.4.27(typescript@5.4.5)) + vue-demi: 0.14.7(vue@3.4.27(typescript@5.4.5)) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + '@vueuse/core@10.9.0(vue@3.4.27(typescript@5.4.5))': dependencies: '@types/web-bluetooth': 0.0.20 @@ -9942,8 +10215,29 @@ snapshots: - '@vue/composition-api' - vue + '@vueuse/metadata@10.10.0': {} + '@vueuse/metadata@10.9.0': {} + '@vueuse/nuxt@10.10.0(nuxt@packages+nuxt)(vue@3.4.27(typescript@5.4.5))': + dependencies: + '@nuxt/kit': link:packages/kit + '@vueuse/core': 10.10.0(vue@3.4.27(typescript@5.4.5)) + '@vueuse/metadata': 10.10.0 + local-pkg: 0.5.0 + nuxt: link:packages/nuxt + vue-demi: 0.14.7(vue@3.4.27(typescript@5.4.5)) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + + '@vueuse/shared@10.10.0(vue@3.4.27(typescript@5.4.5))': + dependencies: + vue-demi: 0.14.7(vue@3.4.27(typescript@5.4.5)) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + '@vueuse/shared@10.9.0(vue@3.4.27(typescript@5.4.5))': dependencies: vue-demi: 0.14.7(vue@3.4.27(typescript@5.4.5)) @@ -14099,6 +14393,10 @@ snapshots: dependencies: '@shikijs/core': 1.3.0 + shiki@1.6.3: + dependencies: + '@shikijs/core': 1.6.3 + side-channel@1.0.4: dependencies: call-bind: 1.0.7 @@ -14338,6 +14636,17 @@ snapshots: mkdirp: 1.0.4 yallist: 4.0.0 + terser-webpack-plugin@5.3.10(esbuild@0.21.5)(webpack@5.91.0(esbuild@0.21.5)): + dependencies: + '@jridgewell/trace-mapping': 0.3.25 + jest-worker: 27.5.1 + schema-utils: 3.3.0 + serialize-javascript: 6.0.2 + terser: 5.27.0 + webpack: 5.91.0(esbuild@0.21.5) + optionalDependencies: + esbuild: 0.21.5 + terser-webpack-plugin@5.3.10(webpack@5.91.0): dependencies: '@jridgewell/trace-mapping': 0.3.25 @@ -14366,6 +14675,10 @@ snapshots: dependencies: tslib: 2.6.2 + third-party-capital@1.0.30: + dependencies: + semver: 7.6.2 + time-fix-plugin@2.0.7(webpack@5.91.0): dependencies: webpack: 5.91.0 @@ -14594,7 +14907,7 @@ snapshots: universalify@2.0.0: {} - unocss@0.60.4(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)): + unocss@0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)): dependencies: '@unocss/astro': 0.60.4(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) '@unocss/cli': 0.60.4(rollup@4.18.0) @@ -14617,6 +14930,7 @@ snapshots: '@unocss/transformer-variant-group': 0.60.4 '@unocss/vite': 0.60.4(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) optionalDependencies: + '@unocss/webpack': 0.60.4(rollup@4.18.0)(webpack@5.91.0(esbuild@0.21.5)) vite: 5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) transitivePeerDependencies: - postcss @@ -14724,6 +15038,12 @@ snapshots: util-deprecate@1.0.2: {} + v-lazy-show@0.2.4(@vue/compiler-core@3.4.27): + dependencies: + '@vue/compiler-core': 3.4.27 + + valibot@0.30.0: {} + validate-npm-package-license@3.0.4: dependencies: spdx-correct: 3.2.0 @@ -15133,6 +15453,37 @@ snapshots: - esbuild - uglify-js + webpack@5.91.0(esbuild@0.21.5): + dependencies: + '@types/eslint-scope': 3.7.6 + '@types/estree': 1.0.5 + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/wasm-edit': 1.12.1 + '@webassemblyjs/wasm-parser': 1.12.1 + acorn: 8.11.3 + acorn-import-assertions: 1.9.0(acorn@8.11.3) + browserslist: 4.23.0 + chrome-trace-event: 1.0.3 + enhanced-resolve: 5.16.0 + es-module-lexer: 1.3.1 + eslint-scope: 5.1.1 + events: 3.3.0 + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + json-parse-even-better-errors: 2.3.1 + loader-runner: 4.3.0 + mime-types: 2.1.35 + neo-async: 2.6.2 + schema-utils: 3.3.0 + tapable: 2.2.1 + terser-webpack-plugin: 5.3.10(esbuild@0.21.5)(webpack@5.91.0(esbuild@0.21.5)) + watchpack: 2.4.1 + webpack-sources: 3.2.3 + transitivePeerDependencies: + - '@swc/core' + - esbuild + - uglify-js + webpackbar@6.0.1(webpack@5.91.0): dependencies: ansi-escapes: 4.3.2 From 52b85a886ba522bb97c51f6eb6ac3904a2b4de93 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Tue, 11 Jun 2024 10:34:22 +0100 Subject: [PATCH 054/580] test: update scrolling test --- test/fixtures/basic/modules/page-extend/index.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/test/fixtures/basic/modules/page-extend/index.ts b/test/fixtures/basic/modules/page-extend/index.ts index 15c18599c5..b5b18ffbe0 100644 --- a/test/fixtures/basic/modules/page-extend/index.ts +++ b/test/fixtures/basic/modules/page-extend/index.ts @@ -16,9 +16,15 @@ export default defineNuxtModule({ }, { path: '/big-page-1', file: resolver.resolve('./pages/big-page.vue'), + meta: { + layout: false + } }, { path: '/big-page-2', file: resolver.resolve('./pages/big-page.vue'), + meta: { + layout: false + } }) }) }, From 4db02e11f47e4bc57010bc53073e1525e1839ccf Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 11 Jun 2024 10:35:01 +0100 Subject: [PATCH 055/580] chore(deps): pin devdependency @nuxt/scripts to 0.4.7 (main) (#27523) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- packages/nuxt/package.json | 2 +- pnpm-lock.yaml | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index a1debe9566..ef0869ca69 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -118,7 +118,7 @@ "vue-router": "^4.3.3" }, "devDependencies": { - "@nuxt/scripts": "^0.4.7", + "@nuxt/scripts": "0.4.7", "@nuxt/ui-templates": "1.3.4", "@parcel/watcher": "2.4.1", "@types/estree": "1.0.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ec7ca3f7f3..9a914d3da1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -428,7 +428,7 @@ importers: version: 4.3.3(vue@3.4.27(typescript@5.4.5)) devDependencies: '@nuxt/scripts': - specifier: ^0.4.7 + specifier: 0.4.7 version: 0.4.7(@nuxt/devtools@1.3.3(@unocss/reset@0.60.4)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.91.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)))(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.91.0(esbuild@0.21.5)))(@vue/compiler-core@3.4.27)(ioredis@5.3.2)(nuxt@packages+nuxt)(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5))(webpack@5.91.0(esbuild@0.21.5)) '@nuxt/ui-templates': specifier: workspace:* @@ -8985,7 +8985,7 @@ snapshots: remark-parse: 11.0.0 remark-rehype: 11.1.0 scule: 1.3.0 - shiki: 1.3.0 + shiki: 1.6.3 ufo: 1.5.3 unified: 11.0.4 unist-builder: 4.0.0 @@ -10100,7 +10100,7 @@ snapshots: '@unocss/reset': 0.60.4 '@vue/devtools-shared': 7.1.3 '@vueuse/components': 10.9.0(vue@3.4.27(typescript@5.4.5)) - '@vueuse/core': 10.9.0(vue@3.4.27(typescript@5.4.5)) + '@vueuse/core': 10.10.0(vue@3.4.27(typescript@5.4.5)) '@vueuse/integrations': 10.9.0(focus-trap@7.5.4)(vue@3.4.27(typescript@5.4.5)) colord: 2.9.3 floating-vue: 5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)) From 1d2eee00d00aad50be3cc36c4c8a695c2547867b Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Tue, 11 Jun 2024 10:56:24 +0100 Subject: [PATCH 056/580] docs: update more references to v3.12 --- docs/2.guide/3.going-further/1.features.md | 2 +- docs/3.api/1.components/12.nuxt-route-announcer.md | 2 +- docs/3.api/2.composables/on-prehydrate.md | 2 +- docs/3.api/2.composables/use-route-announcer.md | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/2.guide/3.going-further/1.features.md b/docs/2.guide/3.going-further/1.features.md index 4ec31794a0..02056f1e12 100644 --- a/docs/2.guide/3.going-further/1.features.md +++ b/docs/2.guide/3.going-further/1.features.md @@ -40,7 +40,7 @@ There is also a `future` namespace for early opting-in to new features that will ### compatibilityVersion ::important -This configuration option is available in Nuxt v3.12+ or in [the nightly release channel](/docs/guide/going-further/nightly-release-channel). +This configuration option is available in Nuxt v3.12+. :: This enables early access to Nuxt features or flags. diff --git a/docs/3.api/1.components/12.nuxt-route-announcer.md b/docs/3.api/1.components/12.nuxt-route-announcer.md index 4f6e908622..b53f9fa925 100644 --- a/docs/3.api/1.components/12.nuxt-route-announcer.md +++ b/docs/3.api/1.components/12.nuxt-route-announcer.md @@ -11,7 +11,7 @@ links: --- ::important -This component will be available in Nuxt v3.12 or in [the nightly release channel](/docs/guide/going-further/nightly-release-channel). +This component is available in Nuxt v3.12+. :: ## Usage diff --git a/docs/3.api/2.composables/on-prehydrate.md b/docs/3.api/2.composables/on-prehydrate.md index 79073123a4..1f034d6cec 100644 --- a/docs/3.api/2.composables/on-prehydrate.md +++ b/docs/3.api/2.composables/on-prehydrate.md @@ -10,7 +10,7 @@ links: --- ::important -This composable will be available in Nuxt v3.12+ or in [the nightly release channel](/docs/guide/going-further/nightly-release-channel). +This composable is available in Nuxt v3.12+. :: `onPrehydrate` is a composable lifecycle hook that allows you to run a callback on the client immediately before diff --git a/docs/3.api/2.composables/use-route-announcer.md b/docs/3.api/2.composables/use-route-announcer.md index c3272631fe..1111eec0a4 100644 --- a/docs/3.api/2.composables/use-route-announcer.md +++ b/docs/3.api/2.composables/use-route-announcer.md @@ -11,7 +11,7 @@ links: --- ::important -This composable will be available in Nuxt v3.12 or in [the nightly release channel](/docs/guide/going-further/nightly-release-channel). +This composable is available in Nuxt v3.12+. :: ## Description From b7d4a5767bdf401bba7c628fedc8542009dc2655 Mon Sep 17 00:00:00 2001 From: Alexander Lichter Date: Tue, 11 Jun 2024 11:56:40 +0200 Subject: [PATCH 057/580] docs: mention 3.12 for testing nuxt 4 (#27525) --- docs/1.getting-started/12.upgrade.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/1.getting-started/12.upgrade.md b/docs/1.getting-started/12.upgrade.md index 323abdb1d3..3017305c77 100644 --- a/docs/1.getting-started/12.upgrade.md +++ b/docs/1.getting-started/12.upgrade.md @@ -23,7 +23,7 @@ To use the latest Nuxt build and test features before their release, read about Nuxt 4 is planned to be released **on or before June 14** (though obviously this is dependent on having enough time after Nitro's major release to be properly tested in the community, so be aware that this is not an exact date). -Until then, it is possible to test many of Nuxt 4's breaking changes on the nightly release channel. +Until then, it is possible to test many of Nuxt 4's breaking changes from Nuxt version 3.12 or via the nightly release channel. ::tip{icon="i-ph-video-duotone" to="https://www.youtube.com/watch?v=r4wFKlcJK6c" target="_blank"} Watch a video from Alexander Lichter showing how to opt in to Nuxt 4's breaking changes already. From b7a35fd956dfc651d3abe40596254046654d9575 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 11 Jun 2024 10:59:35 +0100 Subject: [PATCH 058/580] chore(deps): update devdependency prettier to v3.3.2 (main) (#27518) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- packages/ui-templates/package.json | 2 +- pnpm-lock.yaml | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/ui-templates/package.json b/packages/ui-templates/package.json index 131114835b..4232030b42 100644 --- a/packages/ui-templates/package.json +++ b/packages/ui-templates/package.json @@ -30,7 +30,7 @@ "knitwork": "1.1.0", "lodash-es": "4.17.21", "pathe": "1.1.2", - "prettier": "3.3.1", + "prettier": "3.3.2", "scule": "1.3.0", "unocss": "0.60.4", "vite": "5.2.13" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9a914d3da1..1f2997d7ce 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -615,8 +615,8 @@ importers: specifier: 1.1.2 version: 1.1.2 prettier: - specifier: 3.3.1 - version: 3.3.1 + specifier: 3.3.2 + version: 3.3.2 scule: specifier: 1.3.0 version: 1.3.0 @@ -6224,8 +6224,8 @@ packages: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} - prettier@3.3.1: - resolution: {integrity: sha512-7CAwy5dRsxs8PHXT3twixW9/OEll8MLE0VRPCJyl7CkS6VHGPSlsVaWTiASPTyGyYRyApxlaWTzwUxVNrhcwDg==} + prettier@3.3.2: + resolution: {integrity: sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==} engines: {node: '>=14'} hasBin: true @@ -13861,7 +13861,7 @@ snapshots: prelude-ls@1.2.1: {} - prettier@3.3.1: {} + prettier@3.3.2: {} pretty-bytes@6.1.1: {} From 24b8533e7084ea007940df13410c44ad4771182d Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Tue, 11 Jun 2024 11:01:21 +0100 Subject: [PATCH 059/580] chore: lint --- test/fixtures/basic/modules/page-extend/index.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/test/fixtures/basic/modules/page-extend/index.ts b/test/fixtures/basic/modules/page-extend/index.ts index b5b18ffbe0..60ef2c224c 100644 --- a/test/fixtures/basic/modules/page-extend/index.ts +++ b/test/fixtures/basic/modules/page-extend/index.ts @@ -17,14 +17,14 @@ export default defineNuxtModule({ path: '/big-page-1', file: resolver.resolve('./pages/big-page.vue'), meta: { - layout: false - } + layout: false, + }, }, { path: '/big-page-2', file: resolver.resolve('./pages/big-page.vue'), meta: { - layout: false - } + layout: false, + }, }) }) }, From a8746af43ff6b55fe43fb43bdb586f38be754c9f Mon Sep 17 00:00:00 2001 From: Pooya Parsa Date: Tue, 11 Jun 2024 12:05:26 +0200 Subject: [PATCH 060/580] refactor(schema): use `CompatibilityDateSpec` (#27521) --- packages/schema/src/config/common.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/schema/src/config/common.ts b/packages/schema/src/config/common.ts index 5f6c866af5..89cebec5a5 100644 --- a/packages/schema/src/config/common.ts +++ b/packages/schema/src/config/common.ts @@ -28,7 +28,7 @@ export default defineUntypedSchema({ * * We plan to improve the tooling around this feature in the future. * - * @type {typeof import('compatx').DateString | Record} + * @type {typeof import('compatx').CompatibilityDateSpec} */ compatibilityDate: undefined, From d5d9071d76a73b1996d804a525b1284786afd320 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Tue, 11 Jun 2024 11:44:53 +0100 Subject: [PATCH 061/580] chore: bump `nuxi` dependency (#27526) --- package.json | 2 +- packages/nuxt/package.json | 2 +- pnpm-lock.yaml | 143 ++----------------------- test/fixtures/basic-types/package.json | 2 +- 4 files changed, 12 insertions(+), 137 deletions(-) diff --git a/package.json b/package.json index e3b0b4b304..eec7837f9a 100644 --- a/package.json +++ b/package.json @@ -76,7 +76,7 @@ "jiti": "1.21.6", "markdownlint-cli": "0.41.0", "nitropack": "2.9.6", - "nuxi": "3.11.1", + "nuxi": "3.12.0", "nuxt": "workspace:*", "nuxt-content-twoslash": "0.0.10", "ofetch": "1.3.4", diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index ef0869ca69..487ef079a4 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -90,7 +90,7 @@ "magic-string": "^0.30.10", "mlly": "^1.7.1", "nitropack": "^2.9.6", - "nuxi": "^3.11.1", + "nuxi": "^3.12.0", "nypm": "^0.3.8", "ofetch": "^1.3.4", "ohash": "^1.1.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1f2997d7ce..eec32fed95 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -111,8 +111,8 @@ importers: specifier: 2.9.6 version: 2.9.6(encoding@0.1.13) nuxi: - specifier: 3.11.1 - version: 3.11.1 + specifier: 3.12.0 + version: 3.12.0 nuxt: specifier: workspace:* version: link:packages/nuxt @@ -349,8 +349,8 @@ importers: specifier: ^2.9.6 version: 2.9.6(encoding@0.1.13) nuxi: - specifier: ^3.11.1 - version: 3.11.1 + specifier: ^3.12.0 + version: 3.12.0 nypm: specifier: ^0.3.8 version: 0.3.8 @@ -985,8 +985,8 @@ importers: specifier: ^0.7.0 version: 0.7.0(rollup@4.18.0)(vue-router@4.3.3(vue@3.4.27(typescript@5.4.5)))(vue@3.4.27(typescript@5.4.5)) vitest: - specifier: 1.5.3 - version: 1.5.3(@types/node@20.14.2)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0) + specifier: 1.6.0 + version: 1.6.0(@types/node@20.14.2)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0) vue: specifier: 3.4.27 version: 3.4.27(typescript@5.4.5) @@ -2930,33 +2930,18 @@ packages: peerDependencies: vitest: 1.6.0 - '@vitest/expect@1.5.3': - resolution: {integrity: sha512-y+waPz31pOFr3rD7vWTbwiLe5+MgsMm40jTZbQE8p8/qXyBX3CQsIXRx9XK12IbY7q/t5a5aM/ckt33b4PxK2g==} - '@vitest/expect@1.6.0': resolution: {integrity: sha512-ixEvFVQjycy/oNgHjqsL6AZCDduC+tflRluaHIzKIsdbzkLn2U/iBnVeJwB6HsIjQBdfMR8Z0tRxKUsvFJEeWQ==} - '@vitest/runner@1.5.3': - resolution: {integrity: sha512-7PlfuReN8692IKQIdCxwir1AOaP5THfNkp0Uc4BKr2na+9lALNit7ub9l3/R7MP8aV61+mHKRGiqEKRIwu6iiQ==} - '@vitest/runner@1.6.0': resolution: {integrity: sha512-P4xgwPjwesuBiHisAVz/LSSZtDjOTPYZVmNAnpHHSR6ONrf8eCJOFRvUwdHn30F5M1fxhqtl7QZQUk2dprIXAg==} - '@vitest/snapshot@1.5.3': - resolution: {integrity: sha512-K3mvIsjyKYBhNIDujMD2gfQEzddLe51nNOAf45yKRt/QFJcUIeTQd2trRvv6M6oCBHNVnZwFWbQ4yj96ibiDsA==} - '@vitest/snapshot@1.6.0': resolution: {integrity: sha512-+Hx43f8Chus+DCmygqqfetcAZrDJwvTj0ymqjQq4CvmpKFSTVteEOBzCusu1x2tt4OJcvBflyHUE0DZSLgEMtQ==} - '@vitest/spy@1.5.3': - resolution: {integrity: sha512-Llj7Jgs6lbnL55WoshJUUacdJfjU2honvGcAJBxhra5TPEzTJH8ZuhI3p/JwqqfnTr4PmP7nDmOXP53MS7GJlg==} - '@vitest/spy@1.6.0': resolution: {integrity: sha512-leUTap6B/cqi/bQkXUu6bQV5TZPx7pmMBKBQiI0rJA8c3pB56ZsaTbREnF7CJfmvAS4V2cXIBAh/3rVwrrCYgw==} - '@vitest/utils@1.5.3': - resolution: {integrity: sha512-rE9DTN1BRhzkzqNQO+kw8ZgfeEBCLXiHJwetk668shmNBpSagQxneT5eSqEBLP+cqSiAeecvQmbpFfdMyLcIQA==} - '@vitest/utils@1.6.0': resolution: {integrity: sha512-21cPiuGMoMZwiOHa2i4LXkMkMkCGzA+MVFV70jRwHo95dL4x/ts5GZhML1QWuy7yfp3WzK3lRvZi3JnXTYqrBw==} @@ -5746,8 +5731,8 @@ packages: nth-check@2.1.1: resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} - nuxi@3.11.1: - resolution: {integrity: sha512-AW71TpxRHNg8MplQVju9tEFvXPvX42e0wPYknutSStDuAjV99vWTWYed4jxr/grk2FtKAuv2KvdJxcn2W59qyg==} + nuxi@3.12.0: + resolution: {integrity: sha512-6vRdiXTw9SajEQOUi6Ze/XaIXzy1q/sD5UqHQSv3yqTu7Pot5S7fEihNXV8LpcgLz+9HzjVt70r7jYe7R99c2w==} engines: {node: ^16.10.0 || >=18.0.0} hasBin: true @@ -7266,11 +7251,6 @@ packages: peerDependencies: vite: 5.2.13 - vite-node@1.5.3: - resolution: {integrity: sha512-axFo00qiCpU/JLd8N1gu9iEYL3xTbMbMrbe5nDp9GL0nb6gurIdZLkkFogZXWnE8Oyy5kfSLwNVIcVsnhE7lgQ==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - vite-node@1.6.0: resolution: {integrity: sha512-de6HJgzC+TFzOu0NTC4RAIsyf/DY/ibWDYQUcuEA84EMHhcefTUGkjFHKKEJhQN4A+6I0u++kr3l36ZF2d7XRw==} engines: {node: ^18.0.0 || >=20.0.0} @@ -7353,31 +7333,6 @@ packages: vitest-environment-nuxt@1.0.0: resolution: {integrity: sha512-AWMO9h4HdbaFdPWZw34gALFI8gbBiOpvfbyeZwHIPfh4kWg/TwElYHvYMQ61WPUlCGaS5LebfHkaI0WPyb//Iw==} - vitest@1.5.3: - resolution: {integrity: sha512-2oM7nLXylw3mQlW6GXnRriw+7YvZFk/YNV8AxIC3Z3MfFbuziLGWP9GPxxu/7nRlXhqyxBikpamr+lEEj1sUEw==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@edge-runtime/vm': '*' - '@types/node': ^18.0.0 || >=20.0.0 - '@vitest/browser': 1.5.3 - '@vitest/ui': 1.5.3 - happy-dom: '*' - jsdom: '*' - peerDependenciesMeta: - '@edge-runtime/vm': - optional: true - '@types/node': - optional: true - '@vitest/browser': - optional: true - '@vitest/ui': - optional: true - happy-dom: - optional: true - jsdom: - optional: true - vitest@1.6.0: resolution: {integrity: sha512-H5r/dN06swuFnzNFhq/dnz37bPXnq8xB2xB5JOVk8K09rUtoeNN+LHWkoQ0A/i3hvbUKKcCei9KpbxqHMLhLLA==} engines: {node: ^18.0.0 || >=20.0.0} @@ -9886,57 +9841,28 @@ snapshots: transitivePeerDependencies: - supports-color - '@vitest/expect@1.5.3': - dependencies: - '@vitest/spy': 1.5.3 - '@vitest/utils': 1.5.3 - chai: 4.3.10 - '@vitest/expect@1.6.0': dependencies: '@vitest/spy': 1.6.0 '@vitest/utils': 1.6.0 chai: 4.3.10 - '@vitest/runner@1.5.3': - dependencies: - '@vitest/utils': 1.5.3 - p-limit: 5.0.0 - pathe: 1.1.2 - '@vitest/runner@1.6.0': dependencies: '@vitest/utils': 1.6.0 p-limit: 5.0.0 pathe: 1.1.2 - '@vitest/snapshot@1.5.3': - dependencies: - magic-string: 0.30.10 - pathe: 1.1.2 - pretty-format: 29.7.0 - '@vitest/snapshot@1.6.0': dependencies: magic-string: 0.30.10 pathe: 1.1.2 pretty-format: 29.7.0 - '@vitest/spy@1.5.3': - dependencies: - tinyspy: 2.2.0 - '@vitest/spy@1.6.0': dependencies: tinyspy: 2.2.0 - '@vitest/utils@1.5.3': - dependencies: - diff-sequences: 29.6.3 - estree-walker: 3.0.3 - loupe: 2.3.7 - pretty-format: 29.7.0 - '@vitest/utils@1.6.0': dependencies: diff-sequences: 29.6.3 @@ -13367,7 +13293,7 @@ snapshots: dependencies: boolbase: 1.0.0 - nuxi@3.11.1: + nuxi@3.12.0: optionalDependencies: fsevents: 2.3.3 @@ -15073,23 +14999,6 @@ snapshots: dependencies: vite: 5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) - vite-node@1.5.3(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0): - dependencies: - cac: 6.7.14 - debug: 4.3.4 - pathe: 1.1.2 - picocolors: 1.0.0 - vite: 5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) - transitivePeerDependencies: - - '@types/node' - - less - - lightningcss - - sass - - stylus - - sugarss - - supports-color - - terser - vite-node@1.6.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0): dependencies: cac: 6.7.14 @@ -15195,40 +15104,6 @@ snapshots: - vue - vue-router - vitest@1.5.3(@types/node@20.14.2)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0): - dependencies: - '@vitest/expect': 1.5.3 - '@vitest/runner': 1.5.3 - '@vitest/snapshot': 1.5.3 - '@vitest/spy': 1.5.3 - '@vitest/utils': 1.5.3 - acorn-walk: 8.3.2 - chai: 4.3.10 - debug: 4.3.4 - execa: 8.0.1 - local-pkg: 0.5.0 - magic-string: 0.30.10 - pathe: 1.1.2 - picocolors: 1.0.0 - std-env: 3.7.0 - strip-literal: 2.1.0 - tinybench: 2.5.1 - tinypool: 0.8.4 - vite: 5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) - vite-node: 1.5.3(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) - why-is-node-running: 2.2.2 - optionalDependencies: - '@types/node': 20.14.2 - happy-dom: 14.12.0 - transitivePeerDependencies: - - less - - lightningcss - - sass - - stylus - - sugarss - - supports-color - - terser - vitest@1.6.0(@types/node@20.14.2)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0): dependencies: '@vitest/expect': 1.6.0 diff --git a/test/fixtures/basic-types/package.json b/test/fixtures/basic-types/package.json index 94a09218c1..59851227a6 100644 --- a/test/fixtures/basic-types/package.json +++ b/test/fixtures/basic-types/package.json @@ -11,7 +11,7 @@ "devDependencies": { "ofetch": "latest", "unplugin-vue-router": "^0.7.0", - "vitest": "1.5.3", + "vitest": "1.6.0", "vue": "latest", "vue-router": "latest" } From 41fc45da254408921972ab626101c41cea70de32 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 11 Jun 2024 11:50:45 +0100 Subject: [PATCH 062/580] v3.12.1 --- packages/kit/package.json | 2 +- packages/nuxt/package.json | 2 +- packages/schema/package.json | 2 +- packages/vite/package.json | 2 +- packages/webpack/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/kit/package.json b/packages/kit/package.json index e529e16f46..b7f9cddd6f 100644 --- a/packages/kit/package.json +++ b/packages/kit/package.json @@ -1,6 +1,6 @@ { "name": "@nuxt/kit", - "version": "3.12.0", + "version": "3.12.1", "repository": { "type": "git", "url": "git+https://github.com/nuxt/nuxt.git", diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index 487ef079a4..6b788ebc0b 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -1,6 +1,6 @@ { "name": "nuxt", - "version": "3.12.0", + "version": "3.12.1", "repository": { "type": "git", "url": "git+https://github.com/nuxt/nuxt.git", diff --git a/packages/schema/package.json b/packages/schema/package.json index 81cd68ff67..f4c8a3d989 100644 --- a/packages/schema/package.json +++ b/packages/schema/package.json @@ -1,6 +1,6 @@ { "name": "@nuxt/schema", - "version": "3.12.0", + "version": "3.12.1", "repository": { "type": "git", "url": "git+https://github.com/nuxt/nuxt.git", diff --git a/packages/vite/package.json b/packages/vite/package.json index 4b89955a8d..39dfbfe91f 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -1,6 +1,6 @@ { "name": "@nuxt/vite-builder", - "version": "3.12.0", + "version": "3.12.1", "repository": { "type": "git", "url": "git+https://github.com/nuxt/nuxt.git", diff --git a/packages/webpack/package.json b/packages/webpack/package.json index d77c7d7d79..c0932b511e 100644 --- a/packages/webpack/package.json +++ b/packages/webpack/package.json @@ -1,6 +1,6 @@ { "name": "@nuxt/webpack-builder", - "version": "3.12.0", + "version": "3.12.1", "repository": { "type": "git", "url": "git+https://github.com/nuxt/nuxt.git", From 115fc2d18f48c814f16572ce17bb97f0fa7fd0b9 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Tue, 11 Jun 2024 12:41:34 +0100 Subject: [PATCH 063/580] test: add type test for nuxt module resolved types --- test/fixtures/basic-types/types.ts | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/test/fixtures/basic-types/types.ts b/test/fixtures/basic-types/types.ts index dad52b4f6a..4e593c1b6a 100644 --- a/test/fixtures/basic-types/types.ts +++ b/test/fixtures/basic-types/types.ts @@ -4,6 +4,7 @@ import type { FetchError } from 'ofetch' import type { NavigationFailure, RouteLocationNormalized, RouteLocationRaw, Router, useRouter as vueUseRouter } from '#vue-router' import type { AppConfig, RuntimeValue, UpperSnakeCase } from 'nuxt/schema' +import { defineNuxtModule } from 'nuxt/kit' import { defineNuxtConfig } from 'nuxt/config' import { callWithNuxt, isVue3 } from '#app' import type { NuxtError } from '#app' @@ -242,6 +243,17 @@ describe('modules', () => { // @ts-expect-error we want to ensure we throw type error on invalid key defineNuxtConfig({ undeclaredKey: { other: false } }) }) + + it('preserves options in defineNuxtModule setup without `.with()`', () => { + defineNuxtModule<{ foo?: string, baz: number }>({ + defaults: { + baz: 100, + }, + setup: (resolvedOptions) => { + expectTypeOf(resolvedOptions).toEqualTypeOf<{ foo?: string, baz: number }>() + }, + }) + }) }) describe('nuxtApp', () => { From 14fecc9f73cf6491aef4e715a37b5dfe6d894467 Mon Sep 17 00:00:00 2001 From: Harlan Wilton Date: Tue, 11 Jun 2024 23:33:22 +1000 Subject: [PATCH 064/580] fix(nuxt): call `onNuxtReady` callback without arguments (#27428) --- packages/nuxt/src/app/composables/ready.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/nuxt/src/app/composables/ready.ts b/packages/nuxt/src/app/composables/ready.ts index 2360bc002d..d4a1257a19 100644 --- a/packages/nuxt/src/app/composables/ready.ts +++ b/packages/nuxt/src/app/composables/ready.ts @@ -7,8 +7,8 @@ export const onNuxtReady = (callback: () => any) => { const nuxtApp = useNuxtApp() if (nuxtApp.isHydrating) { - nuxtApp.hooks.hookOnce('app:suspense:resolve', () => { requestIdleCallback(callback) }) + nuxtApp.hooks.hookOnce('app:suspense:resolve', () => { requestIdleCallback(() => callback()) }) } else { - requestIdleCallback(callback) + requestIdleCallback(() => callback()) } } From 1d94bac0af8962e8526aa580374e5c6cabd927a0 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Tue, 11 Jun 2024 17:44:38 +0100 Subject: [PATCH 065/580] fix(schema): don't narrow head string types to literals (#27540) --- packages/schema/src/types/config.ts | 2 +- test/fixtures/basic-types/nuxt.config.ts | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/packages/schema/src/types/config.ts b/packages/schema/src/types/config.ts index 7306c5222e..44a1390734 100644 --- a/packages/schema/src/types/config.ts +++ b/packages/schema/src/types/config.ts @@ -141,7 +141,7 @@ export interface AppConfigInput extends CustomAppConfig { server?: never } -type Serializable = T extends Function ? never : T extends Promise ? Serializable : T extends Record ? { [K in keyof T]: Serializable } : T +type Serializable = T extends Function ? never : T extends Promise ? Serializable : T extends string & {} ? T : T extends Record ? { [K in keyof T]: Serializable } : T export interface NuxtAppConfig { head: Serializable diff --git a/test/fixtures/basic-types/nuxt.config.ts b/test/fixtures/basic-types/nuxt.config.ts index 3278402fa3..93a409cc04 100644 --- a/test/fixtures/basic-types/nuxt.config.ts +++ b/test/fixtures/basic-types/nuxt.config.ts @@ -21,6 +21,13 @@ export default defineNuxtConfig({ title: Promise.resolve('Nuxt Fixture'), // @ts-expect-error Functions are not allowed titleTemplate: title => 'test', + meta: [ + { + // Allows unknown property + property: 'og:thing', + content: '1234567890', + }, + ], }, pageTransition: { // @ts-expect-error Functions are not allowed From 6bbc85ade9b3810c51780db01829edb0c8bbee9f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 11 Jun 2024 19:45:51 +0100 Subject: [PATCH 066/580] chore(deps): update dependency webpack to v5.92.0 (main) (#27539) --- packages/kit/package.json | 2 +- packages/schema/package.json | 2 +- packages/webpack/package.json | 2 +- pnpm-lock.yaml | 185 ++++++++++++++++++---------------- 4 files changed, 100 insertions(+), 91 deletions(-) diff --git a/packages/kit/package.json b/packages/kit/package.json index b7f9cddd6f..3544978785 100644 --- a/packages/kit/package.json +++ b/packages/kit/package.json @@ -56,7 +56,7 @@ "unbuild": "latest", "vite": "5.2.13", "vitest": "1.6.0", - "webpack": "5.91.0" + "webpack": "5.92.0" }, "engines": { "node": "^14.18.0 || >=16.10.0" diff --git a/packages/schema/package.json b/packages/schema/package.json index f4c8a3d989..eb43f7fd84 100644 --- a/packages/schema/package.json +++ b/packages/schema/package.json @@ -59,7 +59,7 @@ "vue-bundle-renderer": "2.1.0", "vue-loader": "17.4.2", "vue-router": "4.3.3", - "webpack": "5.91.0", + "webpack": "5.92.0", "webpack-dev-middleware": "7.2.1" }, "dependencies": { diff --git a/packages/webpack/package.json b/packages/webpack/package.json index c0932b511e..3eb50c34e0 100644 --- a/packages/webpack/package.json +++ b/packages/webpack/package.json @@ -62,7 +62,7 @@ "url-loader": "^4.1.1", "vue-bundle-renderer": "^2.1.0", "vue-loader": "^17.4.2", - "webpack": "^5.91.0", + "webpack": "^5.92.0", "webpack-bundle-analyzer": "^4.10.2", "webpack-dev-middleware": "^7.2.1", "webpack-hot-middleware": "^2.26.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index eec32fed95..490d89d41c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -247,8 +247,8 @@ importers: specifier: 1.6.0 version: 1.6.0(@types/node@20.14.2)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0) webpack: - specifier: 5.91.0 - version: 5.91.0 + specifier: 5.92.0 + version: 5.92.0 packages/nuxt: dependencies: @@ -257,7 +257,7 @@ importers: version: 2.0.2 '@nuxt/devtools': specifier: ^1.3.3 - version: 1.3.3(@unocss/reset@0.60.4)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.91.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)) + version: 1.3.3(@unocss/reset@0.60.4)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)) '@nuxt/kit': specifier: workspace:* version: link:../kit @@ -429,7 +429,7 @@ importers: devDependencies: '@nuxt/scripts': specifier: 0.4.7 - version: 0.4.7(@nuxt/devtools@1.3.3(@unocss/reset@0.60.4)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.91.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)))(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.91.0(esbuild@0.21.5)))(@vue/compiler-core@3.4.27)(ioredis@5.3.2)(nuxt@packages+nuxt)(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5))(webpack@5.91.0(esbuild@0.21.5)) + version: 0.4.7(@nuxt/devtools@1.3.3(@unocss/reset@0.60.4)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)))(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(@vue/compiler-core@3.4.27)(ioredis@5.3.2)(nuxt@packages+nuxt)(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5))(webpack@5.92.0(esbuild@0.21.5)) '@nuxt/ui-templates': specifier: workspace:* version: link:../ui-templates @@ -535,7 +535,7 @@ importers: version: 1.10.0 esbuild-loader: specifier: 4.1.0 - version: 4.1.0(webpack@5.91.0) + version: 4.1.0(webpack@5.92.0) h3: specifier: 1.11.1 version: 1.11.1 @@ -568,16 +568,16 @@ importers: version: 2.1.0 vue-loader: specifier: 17.4.2 - version: 17.4.2(@vue/compiler-sfc@3.4.27)(vue@3.4.27(typescript@5.4.5))(webpack@5.91.0) + version: 17.4.2(@vue/compiler-sfc@3.4.27)(vue@3.4.27(typescript@5.4.5))(webpack@5.92.0) vue-router: specifier: 4.3.3 version: 4.3.3(vue@3.4.27(typescript@5.4.5)) webpack: - specifier: 5.91.0 - version: 5.91.0 + specifier: 5.92.0 + version: 5.92.0 webpack-dev-middleware: specifier: 7.2.1 - version: 7.2.1(webpack@5.91.0) + version: 7.2.1(webpack@5.92.0) packages/ui-templates: devDependencies: @@ -755,7 +755,7 @@ importers: dependencies: '@nuxt/friendly-errors-webpack-plugin': specifier: ^2.6.0 - version: 2.6.0(webpack@5.91.0) + version: 2.6.0(webpack@5.92.0) '@nuxt/kit': specifier: workspace:* version: link:../kit @@ -764,10 +764,10 @@ importers: version: 10.4.19(postcss@8.4.38) css-loader: specifier: ^7.1.2 - version: 7.1.2(webpack@5.91.0) + version: 7.1.2(webpack@5.92.0) css-minimizer-webpack-plugin: specifier: ^7.0.0 - version: 7.0.0(webpack@5.91.0) + version: 7.0.0(webpack@5.92.0) cssnano: specifier: ^7.0.2 version: 7.0.2(postcss@8.4.38) @@ -776,7 +776,7 @@ importers: version: 6.1.4 esbuild-loader: specifier: ^4.1.0 - version: 4.1.0(webpack@5.91.0) + version: 4.1.0(webpack@5.92.0) escape-string-regexp: specifier: ^5.0.0 version: 5.0.0 @@ -785,10 +785,10 @@ importers: version: 3.0.3 file-loader: specifier: ^6.2.0 - version: 6.2.0(webpack@5.91.0) + version: 6.2.0(webpack@5.92.0) fork-ts-checker-webpack-plugin: specifier: ^9.0.2 - version: 9.0.2(typescript@5.4.5)(webpack@5.91.0) + version: 9.0.2(typescript@5.4.5)(webpack@5.92.0) fs-extra: specifier: ^11.2.0 version: 11.2.0 @@ -809,7 +809,7 @@ importers: version: 4.9.2 mini-css-extract-plugin: specifier: ^2.9.0 - version: 2.9.0(webpack@5.91.0) + version: 2.9.0(webpack@5.92.0) mlly: specifier: ^1.7.1 version: 1.7.1 @@ -833,7 +833,7 @@ importers: version: 2.0.0 postcss-loader: specifier: ^8.1.1 - version: 8.1.1(postcss@8.4.38)(typescript@5.4.5)(webpack@5.91.0) + version: 8.1.1(postcss@8.4.38)(typescript@5.4.5)(webpack@5.92.0) postcss-url: specifier: ^10.1.3 version: 10.1.3(postcss@8.4.38) @@ -845,7 +845,7 @@ importers: version: 3.7.0 time-fix-plugin: specifier: ^2.0.7 - version: 2.0.7(webpack@5.91.0) + version: 2.0.7(webpack@5.92.0) ufo: specifier: ^1.5.3 version: 1.5.3 @@ -857,22 +857,22 @@ importers: version: 1.10.1 url-loader: specifier: ^4.1.1 - version: 4.1.1(file-loader@6.2.0(webpack@5.91.0))(webpack@5.91.0) + version: 4.1.1(file-loader@6.2.0(webpack@5.92.0))(webpack@5.92.0) vue-bundle-renderer: specifier: ^2.1.0 version: 2.1.0 vue-loader: specifier: ^17.4.2 - version: 17.4.2(@vue/compiler-sfc@3.4.27)(vue@3.4.27(typescript@5.4.5))(webpack@5.91.0) + version: 17.4.2(@vue/compiler-sfc@3.4.27)(vue@3.4.27(typescript@5.4.5))(webpack@5.92.0) webpack: - specifier: ^5.91.0 - version: 5.91.0 + specifier: ^5.92.0 + version: 5.92.0 webpack-bundle-analyzer: specifier: ^4.10.2 version: 4.10.2 webpack-dev-middleware: specifier: ^7.2.1 - version: 7.2.1(webpack@5.91.0) + version: 7.2.1(webpack@5.92.0) webpack-hot-middleware: specifier: ^2.26.1 version: 2.26.1 @@ -881,7 +881,7 @@ importers: version: 0.6.2 webpackbar: specifier: ^6.0.1 - version: 6.0.1(webpack@5.91.0) + version: 6.0.1(webpack@5.92.0) devDependencies: '@nuxt/schema': specifier: workspace:* @@ -3189,13 +3189,13 @@ packages: resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} engines: {node: '>=6.5'} - acorn-import-assertions@1.9.0: - resolution: {integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==} + acorn-import-attributes@1.9.2: + resolution: {integrity: sha512-O+nfJwNolEA771IYJaiLWK1UAwjNsQmZbTRqqwBYxCgVQTmpFEMvBw6LOIQV0Me339L5UMVYFyRohGnGlQDdIQ==} peerDependencies: acorn: ^8 - acorn-import-attributes@1.9.2: - resolution: {integrity: sha512-O+nfJwNolEA771IYJaiLWK1UAwjNsQmZbTRqqwBYxCgVQTmpFEMvBw6LOIQV0Me339L5UMVYFyRohGnGlQDdIQ==} + acorn-import-attributes@1.9.5: + resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} peerDependencies: acorn: ^8 @@ -4050,6 +4050,10 @@ packages: resolution: {integrity: sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==} engines: {node: '>=10.13.0'} + enhanced-resolve@5.17.0: + resolution: {integrity: sha512-dwDPwZL0dmye8Txp2gzFmA6sxALaSvdRDjPH0viLcKrtlOL3tw62nWWweVD1SdILDTJrbrL6tdWVN58Wo6U3eA==} + engines: {node: '>=10.13.0'} + entities@4.5.0: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} @@ -7505,8 +7509,8 @@ packages: webpack-virtual-modules@0.6.2: resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==} - webpack@5.91.0: - resolution: {integrity: sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw==} + webpack@5.92.0: + resolution: {integrity: sha512-Bsw2X39MYIgxouNATyVpCNVWBCuUwDgWtN78g6lSdPJRLaQ/PUVm/oXcaRAyY/sMFoKFQrsPeqvTizWtq7QPCA==} engines: {node: '>=10.13.0'} hasBin: true peerDependencies: @@ -8611,18 +8615,18 @@ snapshots: nuxt: link:packages/nuxt vite: 5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) - '@nuxt/devtools-ui-kit@1.3.3(@nuxt/devtools@1.3.3(@unocss/reset@0.60.4)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.91.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)))(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.91.0(esbuild@0.21.5)))(@vue/compiler-core@3.4.27)(nuxt@packages+nuxt)(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5))(webpack@5.91.0(esbuild@0.21.5))': + '@nuxt/devtools-ui-kit@1.3.3(@nuxt/devtools@1.3.3(@unocss/reset@0.60.4)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)))(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(@vue/compiler-core@3.4.27)(nuxt@packages+nuxt)(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5))(webpack@5.92.0(esbuild@0.21.5))': dependencies: '@iconify-json/carbon': 1.1.35 '@iconify-json/logos': 1.1.43 '@iconify-json/ri': 1.1.20 '@iconify-json/tabler': 1.1.113 - '@nuxt/devtools': 1.3.3(@unocss/reset@0.60.4)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.91.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)) + '@nuxt/devtools': 1.3.3(@unocss/reset@0.60.4)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)) '@nuxt/devtools-kit': 1.3.3(nuxt@packages+nuxt)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) '@nuxt/kit': link:packages/kit '@nuxtjs/color-mode': 3.4.1 '@unocss/core': 0.60.4 - '@unocss/nuxt': 0.60.4(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(webpack@5.91.0(esbuild@0.21.5)) + '@unocss/nuxt': 0.60.4(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(webpack@5.92.0(esbuild@0.21.5)) '@unocss/preset-attributify': 0.60.4 '@unocss/preset-icons': 0.60.4 '@unocss/preset-mini': 0.60.4 @@ -8671,13 +8675,13 @@ snapshots: rc9: 2.1.2 semver: 7.6.2 - '@nuxt/devtools@1.3.3(@unocss/reset@0.60.4)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.91.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5))': + '@nuxt/devtools@1.3.3(@unocss/reset@0.60.4)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5))': dependencies: '@antfu/utils': 0.7.8 '@nuxt/devtools-kit': 1.3.3(nuxt@packages+nuxt)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) '@nuxt/devtools-wizard': 1.3.3 '@nuxt/kit': link:packages/kit - '@vue/devtools-applet': 7.1.3(@unocss/reset@0.60.4)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(unocss@0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.91.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)) + '@vue/devtools-applet': 7.1.3(@unocss/reset@0.60.4)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(unocss@0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)) '@vue/devtools-core': 7.1.3(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)) '@vue/devtools-kit': 7.1.3(vue@3.4.27(typescript@5.4.5)) birpc: 0.2.17 @@ -8769,18 +8773,18 @@ snapshots: - supports-color - typescript - '@nuxt/friendly-errors-webpack-plugin@2.6.0(webpack@5.91.0)': + '@nuxt/friendly-errors-webpack-plugin@2.6.0(webpack@5.92.0)': dependencies: chalk: 2.4.2 consola: 3.2.3 error-stack-parser: 2.1.4 string-width: 4.2.3 - webpack: 5.91.0 + webpack: 5.92.0 - '@nuxt/scripts@0.4.7(@nuxt/devtools@1.3.3(@unocss/reset@0.60.4)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.91.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)))(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.91.0(esbuild@0.21.5)))(@vue/compiler-core@3.4.27)(ioredis@5.3.2)(nuxt@packages+nuxt)(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5))(webpack@5.91.0(esbuild@0.21.5))': + '@nuxt/scripts@0.4.7(@nuxt/devtools@1.3.3(@unocss/reset@0.60.4)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)))(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(@vue/compiler-core@3.4.27)(ioredis@5.3.2)(nuxt@packages+nuxt)(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5))(webpack@5.92.0(esbuild@0.21.5))': dependencies: '@nuxt/devtools-kit': 1.3.3(nuxt@packages+nuxt)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) - '@nuxt/devtools-ui-kit': 1.3.3(@nuxt/devtools@1.3.3(@unocss/reset@0.60.4)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.91.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)))(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.91.0(esbuild@0.21.5)))(@vue/compiler-core@3.4.27)(nuxt@packages+nuxt)(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5))(webpack@5.91.0(esbuild@0.21.5)) + '@nuxt/devtools-ui-kit': 1.3.3(@nuxt/devtools@1.3.3(@unocss/reset@0.60.4)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)))(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(@vue/compiler-core@3.4.27)(nuxt@packages+nuxt)(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5))(webpack@5.92.0(esbuild@0.21.5)) '@nuxt/kit': link:packages/kit '@types/google.maps': 3.55.9 '@types/stripe-v3': 3.1.33 @@ -9437,7 +9441,7 @@ snapshots: dependencies: '@types/node': 20.12.12 tapable: 2.2.1 - webpack: 5.91.0 + webpack: 5.92.0 transitivePeerDependencies: - '@swc/core' - esbuild @@ -9448,7 +9452,7 @@ snapshots: dependencies: '@types/connect': 3.4.37 tapable: 2.2.1 - webpack: 5.91.0 + webpack: 5.92.0 transitivePeerDependencies: - '@swc/core' - esbuild @@ -9644,7 +9648,7 @@ snapshots: gzip-size: 6.0.0 sirv: 2.0.4 - '@unocss/nuxt@0.60.4(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(webpack@5.91.0(esbuild@0.21.5))': + '@unocss/nuxt@0.60.4(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(webpack@5.92.0(esbuild@0.21.5))': dependencies: '@nuxt/kit': link:packages/kit '@unocss/config': 0.60.4 @@ -9658,7 +9662,7 @@ snapshots: '@unocss/preset-wind': 0.60.4 '@unocss/reset': 0.60.4 '@unocss/vite': 0.60.4(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) - '@unocss/webpack': 0.60.4(rollup@4.18.0)(webpack@5.91.0(esbuild@0.21.5)) + '@unocss/webpack': 0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)) unocss: 0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) transitivePeerDependencies: - postcss @@ -9774,7 +9778,7 @@ snapshots: transitivePeerDependencies: - rollup - '@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.91.0(esbuild@0.21.5))': + '@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5))': dependencies: '@ampproject/remapping': 2.3.0 '@rollup/pluginutils': 5.1.0(rollup@4.18.0) @@ -9784,7 +9788,7 @@ snapshots: fast-glob: 3.3.2 magic-string: 0.30.10 unplugin: 1.10.1 - webpack: 5.91.0(esbuild@0.21.5) + webpack: 5.92.0(esbuild@0.21.5) webpack-sources: 3.2.3 transitivePeerDependencies: - rollup @@ -9966,12 +9970,12 @@ snapshots: '@vue/devtools-api@6.6.3': {} - '@vue/devtools-applet@7.1.3(@unocss/reset@0.60.4)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(unocss@0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.91.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5))': + '@vue/devtools-applet@7.1.3(@unocss/reset@0.60.4)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(unocss@0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5))': dependencies: '@vue/devtools-core': 7.1.3(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)) '@vue/devtools-kit': 7.1.3(vue@3.4.27(typescript@5.4.5)) '@vue/devtools-shared': 7.1.3 - '@vue/devtools-ui': 7.1.3(@unocss/reset@0.60.4)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(unocss@0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.91.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vue@3.4.27(typescript@5.4.5)) + '@vue/devtools-ui': 7.1.3(@unocss/reset@0.60.4)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(unocss@0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vue@3.4.27(typescript@5.4.5)) lodash-es: 4.17.21 perfect-debounce: 1.0.0 shiki: 1.3.0 @@ -10021,7 +10025,7 @@ snapshots: dependencies: rfdc: 1.3.1 - '@vue/devtools-ui@7.1.3(@unocss/reset@0.60.4)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(unocss@0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.91.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vue@3.4.27(typescript@5.4.5))': + '@vue/devtools-ui@7.1.3(@unocss/reset@0.60.4)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(unocss@0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vue@3.4.27(typescript@5.4.5))': dependencies: '@unocss/reset': 0.60.4 '@vue/devtools-shared': 7.1.3 @@ -10259,11 +10263,11 @@ snapshots: dependencies: event-target-shim: 5.0.1 - acorn-import-assertions@1.9.0(acorn@8.11.3): + acorn-import-attributes@1.9.2(acorn@8.11.3): dependencies: acorn: 8.11.3 - acorn-import-attributes@1.9.2(acorn@8.11.3): + acorn-import-attributes@1.9.5(acorn@8.11.3): dependencies: acorn: 8.11.3 @@ -10810,7 +10814,7 @@ snapshots: dependencies: postcss: 8.4.38 - css-loader@7.1.2(webpack@5.91.0): + css-loader@7.1.2(webpack@5.92.0): dependencies: icss-utils: 5.1.0(postcss@8.4.38) postcss: 8.4.38 @@ -10821,9 +10825,9 @@ snapshots: postcss-value-parser: 4.2.0 semver: 7.6.2 optionalDependencies: - webpack: 5.91.0 + webpack: 5.92.0 - css-minimizer-webpack-plugin@7.0.0(webpack@5.91.0): + css-minimizer-webpack-plugin@7.0.0(webpack@5.92.0): dependencies: '@jridgewell/trace-mapping': 0.3.25 cssnano: 7.0.2(postcss@8.4.38) @@ -10831,7 +10835,7 @@ snapshots: postcss: 8.4.38 schema-utils: 4.2.0 serialize-javascript: 6.0.2 - webpack: 5.91.0 + webpack: 5.92.0 css-select@5.1.0: dependencies: @@ -11104,6 +11108,11 @@ snapshots: graceful-fs: 4.2.11 tapable: 2.2.1 + enhanced-resolve@5.17.0: + dependencies: + graceful-fs: 4.2.11 + tapable: 2.2.1 + entities@4.5.0: {} env-paths@2.2.1: {} @@ -11144,12 +11153,12 @@ snapshots: es-module-lexer@1.3.1: {} - esbuild-loader@4.1.0(webpack@5.91.0): + esbuild-loader@4.1.0(webpack@5.92.0): dependencies: esbuild: 0.20.2 get-tsconfig: 4.7.3 loader-utils: 2.0.4 - webpack: 5.91.0 + webpack: 5.92.0 webpack-sources: 1.4.3 esbuild@0.18.20: @@ -11573,11 +11582,11 @@ snapshots: dependencies: flat-cache: 4.0.1 - file-loader@6.2.0(webpack@5.91.0): + file-loader@6.2.0(webpack@5.92.0): dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 - webpack: 5.91.0 + webpack: 5.92.0 file-uri-to-path@1.0.0: {} @@ -11631,7 +11640,7 @@ snapshots: cross-spawn: 7.0.3 signal-exit: 4.1.0 - fork-ts-checker-webpack-plugin@9.0.2(typescript@5.4.5)(webpack@5.91.0): + fork-ts-checker-webpack-plugin@9.0.2(typescript@5.4.5)(webpack@5.92.0): dependencies: '@babel/code-frame': 7.24.2 chalk: 4.1.2 @@ -11646,7 +11655,7 @@ snapshots: semver: 7.6.2 tapable: 2.2.1 typescript: 5.4.5 - webpack: 5.91.0 + webpack: 5.92.0 fraction.js@4.3.7: {} @@ -12944,11 +12953,11 @@ snapshots: min-indent@1.0.1: {} - mini-css-extract-plugin@2.9.0(webpack@5.91.0): + mini-css-extract-plugin@2.9.0(webpack@5.92.0): dependencies: schema-utils: 4.2.0 tapable: 2.2.1 - webpack: 5.91.0 + webpack: 5.92.0 minimatch@3.0.8: dependencies: @@ -13614,14 +13623,14 @@ snapshots: read-cache: 1.0.0 resolve: 1.22.8 - postcss-loader@8.1.1(postcss@8.4.38)(typescript@5.4.5)(webpack@5.91.0): + postcss-loader@8.1.1(postcss@8.4.38)(typescript@5.4.5)(webpack@5.92.0): dependencies: cosmiconfig: 9.0.0(typescript@5.4.5) jiti: 1.21.6 postcss: 8.4.38 semver: 7.6.2 optionalDependencies: - webpack: 5.91.0 + webpack: 5.92.0 transitivePeerDependencies: - typescript @@ -14562,25 +14571,25 @@ snapshots: mkdirp: 1.0.4 yallist: 4.0.0 - terser-webpack-plugin@5.3.10(esbuild@0.21.5)(webpack@5.91.0(esbuild@0.21.5)): + terser-webpack-plugin@5.3.10(esbuild@0.21.5)(webpack@5.92.0(esbuild@0.21.5)): dependencies: '@jridgewell/trace-mapping': 0.3.25 jest-worker: 27.5.1 schema-utils: 3.3.0 serialize-javascript: 6.0.2 terser: 5.27.0 - webpack: 5.91.0(esbuild@0.21.5) + webpack: 5.92.0(esbuild@0.21.5) optionalDependencies: esbuild: 0.21.5 - terser-webpack-plugin@5.3.10(webpack@5.91.0): + terser-webpack-plugin@5.3.10(webpack@5.92.0): dependencies: '@jridgewell/trace-mapping': 0.3.25 jest-worker: 27.5.1 schema-utils: 3.3.0 serialize-javascript: 6.0.2 terser: 5.27.0 - webpack: 5.91.0 + webpack: 5.92.0 terser@5.27.0: dependencies: @@ -14605,9 +14614,9 @@ snapshots: dependencies: semver: 7.6.2 - time-fix-plugin@2.0.7(webpack@5.91.0): + time-fix-plugin@2.0.7(webpack@5.92.0): dependencies: - webpack: 5.91.0 + webpack: 5.92.0 tiny-invariant@1.3.1: {} @@ -14856,7 +14865,7 @@ snapshots: '@unocss/transformer-variant-group': 0.60.4 '@unocss/vite': 0.60.4(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) optionalDependencies: - '@unocss/webpack': 0.60.4(rollup@4.18.0)(webpack@5.91.0(esbuild@0.21.5)) + '@unocss/webpack': 0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)) vite: 5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) transitivePeerDependencies: - postcss @@ -14951,14 +14960,14 @@ snapshots: dependencies: punycode: 2.3.0 - url-loader@4.1.1(file-loader@6.2.0(webpack@5.91.0))(webpack@5.91.0): + url-loader@4.1.1(file-loader@6.2.0(webpack@5.92.0))(webpack@5.92.0): dependencies: loader-utils: 2.0.4 mime-types: 2.1.35 schema-utils: 3.3.0 - webpack: 5.91.0 + webpack: 5.92.0 optionalDependencies: - file-loader: 6.2.0(webpack@5.91.0) + file-loader: 6.2.0(webpack@5.92.0) urlpattern-polyfill@8.0.2: {} @@ -15188,12 +15197,12 @@ snapshots: transitivePeerDependencies: - supports-color - vue-loader@17.4.2(@vue/compiler-sfc@3.4.27)(vue@3.4.27(typescript@5.4.5))(webpack@5.91.0): + vue-loader@17.4.2(@vue/compiler-sfc@3.4.27)(vue@3.4.27(typescript@5.4.5))(webpack@5.92.0): dependencies: chalk: 4.1.2 hash-sum: 2.0.0 watchpack: 2.4.1 - webpack: 5.91.0 + webpack: 5.92.0 optionalDependencies: '@vue/compiler-sfc': 3.4.27 vue: 3.4.27(typescript@5.4.5) @@ -15269,7 +15278,7 @@ snapshots: - bufferutil - utf-8-validate - webpack-dev-middleware@7.2.1(webpack@5.91.0): + webpack-dev-middleware@7.2.1(webpack@5.92.0): dependencies: colorette: 2.0.20 memfs: 4.9.2 @@ -15278,7 +15287,7 @@ snapshots: range-parser: 1.2.1 schema-utils: 4.2.0 optionalDependencies: - webpack: 5.91.0 + webpack: 5.92.0 webpack-hot-middleware@2.26.1: dependencies: @@ -15297,7 +15306,7 @@ snapshots: webpack-virtual-modules@0.6.2: {} - webpack@5.91.0: + webpack@5.92.0: dependencies: '@types/eslint-scope': 3.7.6 '@types/estree': 1.0.5 @@ -15305,10 +15314,10 @@ snapshots: '@webassemblyjs/wasm-edit': 1.12.1 '@webassemblyjs/wasm-parser': 1.12.1 acorn: 8.11.3 - acorn-import-assertions: 1.9.0(acorn@8.11.3) + acorn-import-attributes: 1.9.5(acorn@8.11.3) browserslist: 4.23.0 chrome-trace-event: 1.0.3 - enhanced-resolve: 5.16.0 + enhanced-resolve: 5.17.0 es-module-lexer: 1.3.1 eslint-scope: 5.1.1 events: 3.3.0 @@ -15320,7 +15329,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.10(webpack@5.91.0) + terser-webpack-plugin: 5.3.10(webpack@5.92.0) watchpack: 2.4.1 webpack-sources: 3.2.3 transitivePeerDependencies: @@ -15328,7 +15337,7 @@ snapshots: - esbuild - uglify-js - webpack@5.91.0(esbuild@0.21.5): + webpack@5.92.0(esbuild@0.21.5): dependencies: '@types/eslint-scope': 3.7.6 '@types/estree': 1.0.5 @@ -15336,10 +15345,10 @@ snapshots: '@webassemblyjs/wasm-edit': 1.12.1 '@webassemblyjs/wasm-parser': 1.12.1 acorn: 8.11.3 - acorn-import-assertions: 1.9.0(acorn@8.11.3) + acorn-import-attributes: 1.9.5(acorn@8.11.3) browserslist: 4.23.0 chrome-trace-event: 1.0.3 - enhanced-resolve: 5.16.0 + enhanced-resolve: 5.17.0 es-module-lexer: 1.3.1 eslint-scope: 5.1.1 events: 3.3.0 @@ -15351,7 +15360,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.10(esbuild@0.21.5)(webpack@5.91.0(esbuild@0.21.5)) + terser-webpack-plugin: 5.3.10(esbuild@0.21.5)(webpack@5.92.0(esbuild@0.21.5)) watchpack: 2.4.1 webpack-sources: 3.2.3 transitivePeerDependencies: @@ -15359,7 +15368,7 @@ snapshots: - esbuild - uglify-js - webpackbar@6.0.1(webpack@5.91.0): + webpackbar@6.0.1(webpack@5.92.0): dependencies: ansi-escapes: 4.3.2 chalk: 4.1.2 @@ -15368,7 +15377,7 @@ snapshots: markdown-table: 2.0.0 pretty-time: 1.1.0 std-env: 3.7.0 - webpack: 5.91.0 + webpack: 5.92.0 wrap-ansi: 7.0.0 whatwg-mimetype@3.0.0: {} From bdf8f9e0dda3a06273d7f51bbb18d7b3f7c2f4fa Mon Sep 17 00:00:00 2001 From: Harlan Wilton Date: Wed, 12 Jun 2024 04:47:42 +1000 Subject: [PATCH 067/580] fix(schema): `app/` dir backwards compatibility (#27529) --- packages/schema/src/config/common.ts | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/packages/schema/src/config/common.ts b/packages/schema/src/config/common.ts index 89cebec5a5..152a76a3ca 100644 --- a/packages/schema/src/config/common.ts +++ b/packages/schema/src/config/common.ts @@ -1,4 +1,5 @@ import { existsSync } from 'node:fs' +import { readdir } from 'node:fs/promises' import { defineUntypedSchema } from 'untyped' import { join, relative, resolve } from 'pathe' import { isDebug, isDevelopment, isTest } from 'std-env' @@ -117,7 +118,16 @@ export default defineUntypedSchema({ } const srcDir = resolve(rootDir, 'app') - if (!existsSync(srcDir)) { + const srcDirFiles = new Set() + if (existsSync(srcDir)) { + const files = await readdir(srcDir).catch(() => []) + for (const file of files) { + if (file !== 'spa-loading-template.html' && !file.startsWith('router.options')) { + srcDirFiles.add(file) + } + } + } + if (srcDirFiles.size === 0) { for (const file of ['app.vue', 'App.vue']) { if (existsSync(resolve(rootDir, file))) { return rootDir From b17aa3f08e314b18e45cd742c8f2fb0455ae84bb Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Tue, 11 Jun 2024 19:59:48 +0100 Subject: [PATCH 068/580] fix(nuxt): manually assign payload reactivity when `ssr: false` (#27542) --- packages/nuxt/src/app/composables/payload.ts | 8 +++++--- packages/nuxt/src/app/nuxt.ts | 2 +- packages/nuxt/src/core/runtime/nitro/renderer.ts | 4 ---- 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/packages/nuxt/src/app/composables/payload.ts b/packages/nuxt/src/app/composables/payload.ts index 7a7d8fd2e7..69cd0919db 100644 --- a/packages/nuxt/src/app/composables/payload.ts +++ b/packages/nuxt/src/app/composables/payload.ts @@ -3,6 +3,7 @@ import { parse } from 'devalue' import { useHead } from '@unhead/vue' import { getCurrentInstance, onServerPrefetch } from 'vue' import { useNuxtApp, useRuntimeConfig } from '../nuxt' +import type { NuxtPayload } from '../nuxt' import { useRoute } from './router' import { getAppManifest, getRouteRules } from './manifest' @@ -95,11 +96,12 @@ export async function isPrerendered (url = useRoute().path) { return !!rules.prerender && !rules.redirect } -let payloadCache: any = null +let payloadCache: NuxtPayload | null = null + /** @since 3.4.0 */ export async function getNuxtClientPayload () { if (import.meta.server) { - return + return null } if (payloadCache) { return payloadCache @@ -107,7 +109,7 @@ export async function getNuxtClientPayload () { const el = document.getElementById('__NUXT_DATA__') if (!el) { - return {} + return {} as Partial } const inlineData = await parsePayload(el.textContent || '') diff --git a/packages/nuxt/src/app/nuxt.ts b/packages/nuxt/src/app/nuxt.ts index d8fd5ffb5a..03f08213e4 100644 --- a/packages/nuxt/src/app/nuxt.ts +++ b/packages/nuxt/src/app/nuxt.ts @@ -69,7 +69,7 @@ export interface NuxtSSRContext extends SSRContext { /** whether we are rendering an SSR error */ error?: boolean nuxt: _NuxtApp - payload: NuxtPayload + payload: Partial head: VueHeadClient /** This is used solely to render runtime config with SPA renderer. */ config?: Pick diff --git a/packages/nuxt/src/core/runtime/nitro/renderer.ts b/packages/nuxt/src/core/runtime/nitro/renderer.ts index 4fc1f2839f..f33a9774aa 100644 --- a/packages/nuxt/src/core/runtime/nitro/renderer.ts +++ b/packages/nuxt/src/core/runtime/nitro/renderer.ts @@ -165,11 +165,7 @@ const getSPARenderer = lazyCachedFunction(async () => { const config = useRuntimeConfig(ssrContext.event) ssrContext.modules = ssrContext.modules || new Set() ssrContext!.payload = { - _errors: {}, serverRendered: false, - data: {}, - state: {}, - once: new Set(), } ssrContext.config = { public: config.public, From 9e56b60c6b948596d29f153a0ef002ee04d5c067 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Wed, 12 Jun 2024 12:39:40 +0100 Subject: [PATCH 069/580] fix(nuxt): only log warning once per `runtimeConfig` key --- packages/nuxt/src/app/nuxt.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/nuxt/src/app/nuxt.ts b/packages/nuxt/src/app/nuxt.ts index 03f08213e4..8839005f3b 100644 --- a/packages/nuxt/src/app/nuxt.ts +++ b/packages/nuxt/src/app/nuxt.ts @@ -558,6 +558,7 @@ export function defineAppConfig (config: C): C { /** * Configure error getter on runtime secret property access that doesn't exist on the client side */ +const loggedKeys = new Set() function wrappedConfig (runtimeConfig: Record) { if (!import.meta.dev || import.meta.server) { return runtimeConfig } const keys = Object.keys(runtimeConfig).map(key => `\`${key}\``) @@ -565,7 +566,10 @@ function wrappedConfig (runtimeConfig: Record) { return new Proxy(runtimeConfig, { get (target, p, receiver) { if (typeof p === 'string' && p !== 'public' && !(p in target) && !p.startsWith('__v') /* vue check for reactivity, e.g. `__v_isRef` */) { - console.warn(`[nuxt] Could not access \`${p}\`. The only available runtime config keys on the client side are ${keys.join(', ')} and ${lastKey}. See \`https://nuxt.com/docs/guide/going-further/runtime-config\` for more information.`) + if (!loggedKeys.has(p)) { + loggedKeys.add(p) + console.warn(`[nuxt] Could not access \`${p}\`. The only available runtime config keys on the client side are ${keys.join(', ')} and ${lastKey}. See \`https://nuxt.com/docs/guide/going-further/runtime-config\` for more information.`) + } } return Reflect.get(target, p, receiver) }, From 47aa6a12129e29a589194633735af4197a495bd1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 12 Jun 2024 17:15:39 +0100 Subject: [PATCH 070/580] chore(deps): update all non-major dependencies (main) (#27551) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Daniel Roe --- packages/nuxt/package.json | 2 +- packages/nuxt/src/imports/presets.ts | 1 + packages/nuxt/test/auto-imports.test.ts | 3 + packages/ui-templates/package.json | 4 +- pnpm-lock.yaml | 396 ++++++++++++++++++++++-- 5 files changed, 373 insertions(+), 33 deletions(-) diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index 6b788ebc0b..e08492f35d 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -118,7 +118,7 @@ "vue-router": "^4.3.3" }, "devDependencies": { - "@nuxt/scripts": "0.4.7", + "@nuxt/scripts": "0.5.1", "@nuxt/ui-templates": "1.3.4", "@parcel/watcher": "2.4.1", "@types/estree": "1.0.5", diff --git a/packages/nuxt/src/imports/presets.ts b/packages/nuxt/src/imports/presets.ts index 3b2e85534c..c5a6b52261 100644 --- a/packages/nuxt/src/imports/presets.ts +++ b/packages/nuxt/src/imports/presets.ts @@ -119,6 +119,7 @@ export const scriptsStubsPreset = { 'useScript', 'useScriptGoogleAnalytics', 'useScriptPlausibleAnalytics', + 'useScriptClarity', 'useScriptCloudflareWebAnalytics', 'useScriptFathomAnalytics', 'useScriptMatomoAnalytics', diff --git a/packages/nuxt/test/auto-imports.test.ts b/packages/nuxt/test/auto-imports.test.ts index f417369177..b25587f195 100644 --- a/packages/nuxt/test/auto-imports.test.ts +++ b/packages/nuxt/test/auto-imports.test.ts @@ -202,6 +202,9 @@ describe('imports:nuxt/scripts', () => { 'useAnalyticsPageEvent', 'useElementScriptTrigger', 'useConsentScriptTrigger', + // registered separately + 'useScriptGoogleTagManager', + 'useScriptGoogleAnalytics', ]) it.each(scriptsStubsPreset.imports)(`should register %s from @nuxt/scripts`, (name) => { if (globalScripts.has(name)) { return } diff --git a/packages/ui-templates/package.json b/packages/ui-templates/package.json index 4232030b42..0cb9fec044 100644 --- a/packages/ui-templates/package.json +++ b/packages/ui-templates/package.json @@ -21,7 +21,7 @@ "devDependencies": { "@types/html-minifier": "4.0.5", "@types/lodash-es": "4.17.12", - "@unocss/reset": "0.60.4", + "@unocss/reset": "0.61.0", "critters": "0.0.22", "execa": "9.2.0", "globby": "14.0.1", @@ -32,7 +32,7 @@ "pathe": "1.1.2", "prettier": "3.3.2", "scule": "1.3.0", - "unocss": "0.60.4", + "unocss": "0.61.0", "vite": "5.2.13" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 490d89d41c..bbd4dc3abd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -257,7 +257,7 @@ importers: version: 2.0.2 '@nuxt/devtools': specifier: ^1.3.3 - version: 1.3.3(@unocss/reset@0.60.4)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)) + version: 1.3.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)) '@nuxt/kit': specifier: workspace:* version: link:../kit @@ -428,8 +428,8 @@ importers: version: 4.3.3(vue@3.4.27(typescript@5.4.5)) devDependencies: '@nuxt/scripts': - specifier: 0.4.7 - version: 0.4.7(@nuxt/devtools@1.3.3(@unocss/reset@0.60.4)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)))(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(@vue/compiler-core@3.4.27)(ioredis@5.3.2)(nuxt@packages+nuxt)(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5))(webpack@5.92.0(esbuild@0.21.5)) + specifier: 0.5.1 + version: 0.5.1(@nuxt/devtools@1.3.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)))(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(@vue/compiler-core@3.4.27)(ioredis@5.3.2)(nuxt@packages+nuxt)(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5))(webpack@5.92.0(esbuild@0.21.5)) '@nuxt/ui-templates': specifier: workspace:* version: link:../ui-templates @@ -588,8 +588,8 @@ importers: specifier: 4.17.12 version: 4.17.12 '@unocss/reset': - specifier: 0.60.4 - version: 0.60.4 + specifier: 0.61.0 + version: 0.61.0 critters: specifier: 0.0.22 version: 0.0.22 @@ -621,8 +621,8 @@ importers: specifier: 1.3.0 version: 1.3.0 unocss: - specifier: 0.60.4 - version: 0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) + specifier: 0.61.0 + version: 0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) vite: specifier: 5.2.13 version: 5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) @@ -2145,8 +2145,8 @@ packages: peerDependencies: webpack: ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 - '@nuxt/scripts@0.4.7': - resolution: {integrity: sha512-zVP7tF3rmO2ZqQW5Hmmy0NQ4WYH+8ye1QBseSJZ0Ab1pDQEpWX+CI7tVak7Fw7IWVnrAcjIMh6TJFt0zQ/ARjg==} + '@nuxt/scripts@0.5.1': + resolution: {integrity: sha512-K3v/+Kej9F6Ul2ReTb4cNxB76JNeogDuNft76/4N/n3WUAPuhOqn2rFPTbvjidERsHxqmiLGxCPl7fKrhE0ZZg==} '@nuxt/telemetry@2.5.4': resolution: {integrity: sha512-KH6wxzsNys69daSO0xUv0LEBAfhwwjK1M+0Cdi1/vxmifCslMIY7lN11B4eywSfscbyVPAYJvANyc7XiVPImBQ==} @@ -2474,6 +2474,9 @@ packages: '@shikijs/core@1.6.3': resolution: {integrity: sha512-QnJKHFUW95GnlJLJGP6QLx4M69HM0KlXk+R2Y8lr/x4nAx1Yb/lsuxq4XwybuUjTxbJk+BT0g/kvn0bcsjGGHg==} + '@shikijs/core@1.6.4': + resolution: {integrity: sha512-WTU9rzZae1p2v6LOxMf6LhtmZOkIHYYW160IuahUyJy7YXPPjyWZLR1ag+SgD22ZMxZtz1gfU6Tccc8t0Il/XA==} + '@shikijs/transformers@1.1.2': resolution: {integrity: sha512-tldkUMW7RBkU2F6eXbiRMw3ja+hQer1EjwhD2NGOv6K0pgZdVp3JKjU8uisRtg65tyBqrVHq7zlLHVk7EKmUZA==} @@ -2820,24 +2823,50 @@ packages: vite: optional: true + '@unocss/astro@0.61.0': + resolution: {integrity: sha512-cbgztX/to5rMhAtEGCcR3ClMlK9F+lPxq21A72qsbWVQjiKa7W4O7qKBmUKPYsWRzJEJtdyN11A65H2037aKQw==} + peerDependencies: + vite: 5.2.13 + peerDependenciesMeta: + vite: + optional: true + '@unocss/cli@0.60.4': resolution: {integrity: sha512-RFt3BOgtp5ZI+cS6grKKo1DqvUJ/e8iRPwn843u6qSw18guIc4CEVTe5jcDAGuLcL4va9hg2wd4NReUEnMCZ/g==} engines: {node: '>=14'} hasBin: true + '@unocss/cli@0.61.0': + resolution: {integrity: sha512-NuwBFHpnI40PBu84/3c9JpyO02TBNoRPzZ+kJ0hmFa+dv8Ro7Sb1AMlLJ5t3ZjELhsh0zXQf6ucS9mpqu+785g==} + engines: {node: '>=14'} + hasBin: true + '@unocss/config@0.60.4': resolution: {integrity: sha512-ri9P2+YztD5JdPYSLiNjcLf6NgoBbwJDVutP/tQnfYYrE72DQ+j+4vepyxEBa1YaH/X4qsmLJCj+2tI/ufIiog==} engines: {node: '>=14'} + '@unocss/config@0.61.0': + resolution: {integrity: sha512-k8uV4n8eMti4S6BFeAkc9QBXJefDIlPyOWrdKykUMOHLIWVAIS53JixW9FJNgJRw0RVI6B7UR+rOznWwKpORPA==} + engines: {node: '>=14'} + '@unocss/core@0.60.4': resolution: {integrity: sha512-6tz8KTzC30oB0YikwRQoIpJ6Y6Dg+ZiK3NfCIsH+UX11bh2J2M53as2EL/5VQCqtiUn3YP0ZEzR2d1AWX78RCA==} + '@unocss/core@0.61.0': + resolution: {integrity: sha512-Y/Ly3LPIAzOBlWCdKBVzVzIaaWDsf+oWPIUZlaW7DL++WWypVBCghmxXIT5dyuMGXE560Hj92st4AkXfuVdxGQ==} + '@unocss/extractor-arbitrary-variants@0.60.4': resolution: {integrity: sha512-USuFGs5CLft9q7IGNdAEp1oliuUns+W7OO0Tx5qtx/oBh6pU/L93lcNNsuuGNrMU8BCmF3atx1/PEmGymgJ7VA==} + '@unocss/extractor-arbitrary-variants@0.61.0': + resolution: {integrity: sha512-9ru/UR4kZ1+jGXpMawV9T8kpL54FrJBmWKMuFlDTEDIwtzDyyfLbt/buoXdzKDLmil9hOXH3IH8+dah/OiiDoA==} + '@unocss/inspector@0.60.4': resolution: {integrity: sha512-PcnrEQ2H7osZho4Nh0+84O4IXzlkF7pvTUe/7FTJYF1HQGWHB/PfOSoyKn7/sF5sED8hMK9RlSJ9YGUH9ioY+g==} + '@unocss/inspector@0.61.0': + resolution: {integrity: sha512-gpL2RNw6Cp145kTxWN0BG/tWd4x3LVbgkZfyUlh5IAZHWKAq9MWA0jIifV2RU94h4rbSBNHxz50bodYtkzeM8A==} + '@unocss/nuxt@0.60.4': resolution: {integrity: sha512-2lv7tsVlAnGMqqImfZPLm05dtDo3Og0VDrHOAwFwL4XiVaTLXEXQfAf/bOBDRy4qpJ2nFDj9eltuoQYWto1jmA==} @@ -2847,60 +2876,120 @@ packages: peerDependencies: postcss: ^8.4.21 + '@unocss/postcss@0.61.0': + resolution: {integrity: sha512-0ZHUeLYu057xL1vXg2coV62ly6zaCgYdA/oHKCMaU9KT0TI49+DE73GouHypRNM5YXfuUPfXhPGGUuFWkAbI1A==} + engines: {node: '>=14'} + peerDependencies: + postcss: ^8.4.21 + '@unocss/preset-attributify@0.60.4': resolution: {integrity: sha512-J2GWUC0bcmZSXlBGLYUXwWQos/dNzKbq2CKweWVBAmAH9XyfM0mA5CTNBRv05PN1g6C/0z5st7ntUjV6KHJuTg==} + '@unocss/preset-attributify@0.61.0': + resolution: {integrity: sha512-E0oIfYAnnm8piSU7cbAnLIKKz0TwlHMOfAcg0Z0jv2N/MatCpq0BCJZHeE0fEw53OUc+oa6Dpd509rOEUXp/tA==} + '@unocss/preset-icons@0.60.4': resolution: {integrity: sha512-UN/dj+nhI3+S06YxCZQPLw3GZy780iaE71dysyhDMdh+Qq2KFVs3d94mr1427fjz/3Y8ZyXkgqyhCFr7UT0bMQ==} + '@unocss/preset-icons@0.61.0': + resolution: {integrity: sha512-xI7isKu1fQbyGee1lcJBLwvUlmubYbPN4ymepUamfprNPlWrzb5Gj2+SROERlzzrTaI8C0YdBxsYMGyOV94dXQ==} + '@unocss/preset-mini@0.60.4': resolution: {integrity: sha512-ZiHbP69vkyz0xmhqzC4B4PegwV+LPlZOBT7cRhsh0P8oPOQKYOyDRy4rAl+sJBJeIrggn1r1LgN+Z0Xvd8Ytcw==} + '@unocss/preset-mini@0.61.0': + resolution: {integrity: sha512-P+DdMtPtzAQ2aQ1/WWPoO3X/qvky+Fqq4eKXIvbqXOQ9c2oem7/dnsPeT08zzLIqxVJnuykymPwRT85EumS0gg==} + '@unocss/preset-tagify@0.60.4': resolution: {integrity: sha512-GxL/W3qkdWWDqXi43qyLbp/BpEj7gMw99KqkO7bmbVi3BVlFggreTFwmQu89pB6iatxGjxnAsc+TsQZqxKftZA==} + '@unocss/preset-tagify@0.61.0': + resolution: {integrity: sha512-Q3709A8/4fFZdQ4vfKfgDSugQYd21BoSO+TomJp/QMi9iyPjGsrERQilciMmkuRyAe8Q1rdLh+6ioGiJEU0XHQ==} + '@unocss/preset-typography@0.60.4': resolution: {integrity: sha512-6j8ySZYEAwMBy9a3Lw3EEfRlcAClti4zvaV0kBtkP4BDZCwlgX2eE1pmw2mTUy+E1yVlXm3NnRzKfDudQUzraA==} + '@unocss/preset-typography@0.61.0': + resolution: {integrity: sha512-chT2KvgeKsXoDFSedfP0BjhFLYgcDUBJCX0omJOXVVz9q7vB898abhZ5zA9Rcpmbkby4ovtbIjc2RqG9uIKLaQ==} + '@unocss/preset-uno@0.60.4': resolution: {integrity: sha512-AN8ZTtiKSaZNGKZZIqt/JAhMzSY2hHLwhGEOFDrXgjWFr85UlwZzODMDoT58PrU04VlbhN8+0N4lHfLmZCKpiQ==} + '@unocss/preset-uno@0.61.0': + resolution: {integrity: sha512-mkKOra3dQEc3uI7aPIqa3t8MJXlmpLSgGaPfEJK52xkFe991ex6CiUunYMMWbh6ZSzmdxkO31IwQIH9lcmj/Uw==} + '@unocss/preset-web-fonts@0.60.4': resolution: {integrity: sha512-COfxOQcREFgpsm6nw234pxrr1EV1zWUVYXBZjlH+vk7x8EhaS5BPAXqN6SneIVTTDvEE9U4opAaoEYz5A3XWaQ==} + '@unocss/preset-web-fonts@0.61.0': + resolution: {integrity: sha512-9bYvk2BSryLgguZ5qTDPVEhgD/olZiTAy/7JqHzrKKTh7xPURO1IcG2vbX354unfhTDR6GZIKiAkk64qJZUDPw==} + '@unocss/preset-wind@0.60.4': resolution: {integrity: sha512-dT/U+RkbL21lDTOP7/mlFZxlBbUAefUzQZINC0BX7vTKvO57G4HxRq62u9xvMGFv38lQ+qXXzKhABVsEPDNpUA==} + '@unocss/preset-wind@0.61.0': + resolution: {integrity: sha512-PooyLVAF4wH9KvW4OKfDxYFuM4qmnlU+Ci6O6RGgVsKyQMq76crRqqK76lbnehg7jOoZJVxmWfQ6k5gT3aQeXQ==} + '@unocss/reset@0.60.4': resolution: {integrity: sha512-MEngG4byIHnfb0osvxqU2gBdBkXPPE4z+G9HeEt3JUadWAp2gggm8ojC1/1PoJF5M31loxGEVVrB0FLSKACw3g==} + '@unocss/reset@0.61.0': + resolution: {integrity: sha512-VqemtmzH8Rgu5yNomtv50gIcy4KZ2x1aP+7WZCds9x5ZdTSEjbfCOgUDI9rDrrGSipJkCmJ1yOhUPMC7ND6Hfw==} + '@unocss/rule-utils@0.60.4': resolution: {integrity: sha512-7qUN33NM4T/IwWavm9VIOCZ2+4hLBc0YUGxcMNTDZSFQRQLkWe3N5dOlgwKXtMyMKatZfbIRUKVDUgvEefoCTA==} engines: {node: '>=14'} + '@unocss/rule-utils@0.61.0': + resolution: {integrity: sha512-MCdmfhE6Q9HSWjWqi2sx5/nnKyOEhfhoo+pVumHIqkHQICQ/LuKioFf7Y7e5ycqjFE/7dC2hKGZJ8WTMGIOMwA==} + engines: {node: '>=14'} + '@unocss/scope@0.60.4': resolution: {integrity: sha512-AOu/qvi4agy0XfGF3QEBbuxVHkVZHpmU0NMBYuxa0B869YZENT87sTM6DVwtvr75CZvACWxv/hcL3lR68uKBjw==} + '@unocss/scope@0.61.0': + resolution: {integrity: sha512-uDk84LX2meZHskSvy0Mad7jgF0Be6el16F9DKYYvxlUxlzu/mCj6PQpQrXi8uZ2+O3akneHFqAbO6ewYShKdQA==} + '@unocss/transformer-attributify-jsx-babel@0.60.4': resolution: {integrity: sha512-BL4g2gyLpbseu+fOhkAHKNxYcHcn7brQAjXj5k5Yyy6wpwm43lzHYPZtRPrbLVLniqqAN21FzEbtJXCPIHKlHA==} + '@unocss/transformer-attributify-jsx-babel@0.61.0': + resolution: {integrity: sha512-D9z28MQM4w8oowMZRiz7kxEVlor1/XUfaVBTujAS6Ks7Ly+0/91LuOLSHU9uC7vcKmMRI0Q2+Ww2hsVNf2z7ww==} + '@unocss/transformer-attributify-jsx@0.60.4': resolution: {integrity: sha512-tQwD1T8Juz5F4JHYxTgekCv5olEegAPRZwAgx75pP+X2+PkV670pdXv8zbK0t5q6bvyF53vEVBrgQ9q1xSH9yQ==} + '@unocss/transformer-attributify-jsx@0.61.0': + resolution: {integrity: sha512-mC0+O7KmxP5b0DlPyGVdu/3NM/33f9CgfXmwu+U+3NSsAfcCLjJ7nD1MOjl3vcFV5YpudTy1EVaqhcROQRSZIg==} + '@unocss/transformer-compile-class@0.60.4': resolution: {integrity: sha512-zIqKQ7javiCb9Q3fbMvx1QVln8OqvAzWwgCVHsPINzDrDi73KXa3eeCU6GNlsd46tzy0Y9ryRIvW73YS+9Oj1w==} + '@unocss/transformer-compile-class@0.61.0': + resolution: {integrity: sha512-iTQyWz+IbNZrQWCQaibHMY2+8+VoG4ZpizeyYKXHZe11/HaomSvorJwZdufEUTrdWmUzRhJgumGl1TW4FaJwpg==} + '@unocss/transformer-directives@0.60.4': resolution: {integrity: sha512-u3fQI8RszMhUevhJICtQ/bNpAfbh8MEXQf7YNnzUvLvbXGkkoieyU5mj0ray6fbToqxfxVceQtXYcFYIuf4aNg==} + '@unocss/transformer-directives@0.61.0': + resolution: {integrity: sha512-15nIynJPYFYnW/TUQu0NyZ5uxTDcrRyY8sB3axcYZOqqlu1hgPFotVukl6jqCZgGUR1AbfbnJwuDlcBQeT8xpA==} + '@unocss/transformer-variant-group@0.60.4': resolution: {integrity: sha512-R4d16G7s3fDXj9prUNFnJi8cZvH8/XZsqiKDzCBjXNKrbf9zp7YnWD2VaMFjUISgW5kSQjQNSWK84soVNWq3UQ==} + '@unocss/transformer-variant-group@0.61.0': + resolution: {integrity: sha512-5DHEram3iv+c9jPQW8p629aFyptyzdP5yNnRSMLBZcwyJ672VAKzPUZLYHh5UOUb69eaet3og1cU8uxpHhGKtQ==} + '@unocss/vite@0.60.4': resolution: {integrity: sha512-af9hhtW11geF56cotKUE16Fr+FirTdV/Al/usjKJ6P5hnCEQnqSHXQDFXL5Y6vXwcvLDmOhHYNrVR8duKgC8Mw==} peerDependencies: vite: 5.2.13 + '@unocss/vite@0.61.0': + resolution: {integrity: sha512-gjxLJrja1hqDwdd8z3QvzfMCcKppGqiL2+A6aHwG/AXfEmZMydA50U7VvJK7Wx8/Enm26G6JQrtGrpu+kK3QpQ==} + peerDependencies: + vite: 5.2.13 + '@unocss/webpack@0.60.4': resolution: {integrity: sha512-TcPuiAZZO+a+xiahrCm7eEHlP8o667n+CWv+kpz4bidY5V8Xyxs1MjzJAPVOk8Kwz86HvQZyf2CG+3powNTwKA==} peerDependencies: @@ -3066,6 +3155,9 @@ packages: '@vueuse/core@10.10.0': resolution: {integrity: sha512-vexJ/YXYs2S42B783rI95lMt3GzEwkxzC8Hb0Ndpd8rD+p+Lk/Za4bd797Ym7yq4jXqdSyj3JLChunF/vyYjUw==} + '@vueuse/core@10.10.1': + resolution: {integrity: sha512-8Vr8wxILdK+qfBjbngav8LVI+6UuM2TQCufRKMPz/GrpLHQ6dbY6kL5PLa9Eobq8JRrMaDyArPX9Jj18fMTPew==} + '@vueuse/core@10.9.0': resolution: {integrity: sha512-/1vjTol8SXnx6xewDEKfS0Ra//ncg4Hb0DaZiwKf7drgfMsKFExQ+FnnENcN6efPen+1kIzhLQoGSy0eDUVOMg==} @@ -3113,6 +3205,9 @@ packages: '@vueuse/metadata@10.10.0': resolution: {integrity: sha512-UNAo2sTCAW5ge6OErPEHb5z7NEAg3XcO9Cj7OK45aZXfLLH1QkexDcZD77HBi5zvEiLOm1An+p/4b5K3Worpug==} + '@vueuse/metadata@10.10.1': + resolution: {integrity: sha512-dpEL5afVLUqbchwGiLrV6spkl4/6UOKJ3YgxFE+wWLj/LakyIZUC83bfeFgbHkRcNhsAqTQCGR74jImsLfK8pg==} + '@vueuse/metadata@10.9.0': resolution: {integrity: sha512-iddNbg3yZM0X7qFY2sAotomgdHK7YJ6sKUvQqbvwnf7TmaVPxS4EJydcNsVejNdS8iWCtDk+fYXr7E32nyTnGA==} @@ -3124,6 +3219,9 @@ packages: '@vueuse/shared@10.10.0': resolution: {integrity: sha512-2aW33Ac0Uk0U+9yo3Ypg9s5KcR42cuehRWl7vnUHadQyFvCktseyxxEPBi1Eiq4D2yBGACOnqLZpx1eMc7g5Og==} + '@vueuse/shared@10.10.1': + resolution: {integrity: sha512-edqexI+RQpoeqDxTatqBZa+K87ganbrwpoP++Fd9828U3js5jzwcEDeyrYcUgkKZ5LLL8q7M5SOMvSpMrxBPxg==} + '@vueuse/shared@10.9.0': resolution: {integrity: sha512-Uud2IWncmAfJvRaFYzv5OHDli+FbOzxiVEQdLCKQKLyhz94PIyFC3CHcH7EDMwIn8NPtD06+PNbC/PiO0LGLtw==} @@ -6634,6 +6732,9 @@ packages: shiki@1.6.3: resolution: {integrity: sha512-lE1/YGlzFY0hQSyEfsZj18xGrTWxyhFQkaiILALqTBZPbJeYFWpbUhlmTGPOupYB/qC+H6sV4UznJzcEh3WMHQ==} + shiki@1.6.4: + resolution: {integrity: sha512-X88chM7w8jnadoZtjPTi5ahCJx9pc9f8GfEkZAEYUTlcUZIEw2D/RY86HI/LkkE7Nj8TQWkiBfaFTJ3VJT6ESg==} + side-channel@1.0.4: resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} @@ -7124,6 +7225,18 @@ packages: vite: optional: true + unocss@0.61.0: + resolution: {integrity: sha512-7642v5tHpEpHO9dl9sqYbKT/Ri4X4lmGHhj/znE4uheEfXcptPPiZ1/hVmQVciHUSI8CnQBqDwkZuxNPDG3bTQ==} + engines: {node: '>=14'} + peerDependencies: + '@unocss/webpack': 0.61.0 + vite: 5.2.13 + peerDependenciesMeta: + '@unocss/webpack': + optional: true + vite: + optional: true + unplugin-vue-router@0.7.0: resolution: {integrity: sha512-ddRreGq0t5vlSB7OMy4e4cfU1w2AwBQCwmvW3oP/0IHQiokzbx4hd3TpwBu3eIAFVuhX2cwNQwp1U32UybTVCw==} peerDependencies: @@ -7231,8 +7344,8 @@ packages: peerDependencies: '@vue/compiler-core': ^3.3 - valibot@0.30.0: - resolution: {integrity: sha512-5POBdbSkM+3nvJ6ZlyQHsggisfRtyT4tVTo1EIIShs6qCdXJnyWU5TJ68vr8iTg5zpOLjXLRiBqNx+9zwZz/rA==} + valibot@0.31.1: + resolution: {integrity: sha512-2YYIhPrnVSz/gfT2/iXVTrSj92HwchCt9Cga/6hX4B26iCz9zkIsGTS0HjDYTZfTi1Un0X6aRvhBi1cfqs/i0Q==} validate-npm-package-license@3.0.4: resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} @@ -7407,6 +7520,17 @@ packages: '@vue/composition-api': optional: true + vue-demi@0.14.8: + resolution: {integrity: sha512-Uuqnk9YE9SsWeReYqK2alDI5YzciATE0r2SkA6iMAtuXvNTMNACJLJEXNXaEy94ECuBe4Sk6RzRU80kjdbIo1Q==} + engines: {node: '>=12'} + hasBin: true + peerDependencies: + '@vue/composition-api': ^1.0.0-rc.1 + vue: 3.4.27 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + vue-devtools-stub@0.1.0: resolution: {integrity: sha512-RutnB7X8c5hjq39NceArgXg28WZtZpGc3+J16ljMiYnFhKvd8hITxSWQSQ5bvldxMDU6gG5mkxl1MTQLXckVSQ==} @@ -8615,13 +8739,13 @@ snapshots: nuxt: link:packages/nuxt vite: 5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) - '@nuxt/devtools-ui-kit@1.3.3(@nuxt/devtools@1.3.3(@unocss/reset@0.60.4)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)))(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(@vue/compiler-core@3.4.27)(nuxt@packages+nuxt)(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5))(webpack@5.92.0(esbuild@0.21.5))': + '@nuxt/devtools-ui-kit@1.3.3(@nuxt/devtools@1.3.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)))(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(@vue/compiler-core@3.4.27)(nuxt@packages+nuxt)(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5))(webpack@5.92.0(esbuild@0.21.5))': dependencies: '@iconify-json/carbon': 1.1.35 '@iconify-json/logos': 1.1.43 '@iconify-json/ri': 1.1.20 '@iconify-json/tabler': 1.1.113 - '@nuxt/devtools': 1.3.3(@unocss/reset@0.60.4)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)) + '@nuxt/devtools': 1.3.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)) '@nuxt/devtools-kit': 1.3.3(nuxt@packages+nuxt)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) '@nuxt/kit': link:packages/kit '@nuxtjs/color-mode': 3.4.1 @@ -8631,13 +8755,13 @@ snapshots: '@unocss/preset-icons': 0.60.4 '@unocss/preset-mini': 0.60.4 '@unocss/reset': 0.60.4 - '@vueuse/core': 10.10.0(vue@3.4.27(typescript@5.4.5)) + '@vueuse/core': 10.10.1(vue@3.4.27(typescript@5.4.5)) '@vueuse/integrations': 10.9.0(focus-trap@7.5.4)(vue@3.4.27(typescript@5.4.5)) '@vueuse/nuxt': 10.10.0(nuxt@packages+nuxt)(vue@3.4.27(typescript@5.4.5)) defu: 6.1.4 focus-trap: 7.5.4 splitpanes: 3.1.5 - unocss: 0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) + unocss: 0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) v-lazy-show: 0.2.4(@vue/compiler-core@3.4.27) transitivePeerDependencies: - '@unocss/webpack' @@ -8675,13 +8799,13 @@ snapshots: rc9: 2.1.2 semver: 7.6.2 - '@nuxt/devtools@1.3.3(@unocss/reset@0.60.4)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5))': + '@nuxt/devtools@1.3.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5))': dependencies: '@antfu/utils': 0.7.8 '@nuxt/devtools-kit': 1.3.3(nuxt@packages+nuxt)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) '@nuxt/devtools-wizard': 1.3.3 '@nuxt/kit': link:packages/kit - '@vue/devtools-applet': 7.1.3(@unocss/reset@0.60.4)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(unocss@0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)) + '@vue/devtools-applet': 7.1.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)) '@vue/devtools-core': 7.1.3(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)) '@vue/devtools-kit': 7.1.3(vue@3.4.27(typescript@5.4.5)) birpc: 0.2.17 @@ -8781,17 +8905,17 @@ snapshots: string-width: 4.2.3 webpack: 5.92.0 - '@nuxt/scripts@0.4.7(@nuxt/devtools@1.3.3(@unocss/reset@0.60.4)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)))(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(@vue/compiler-core@3.4.27)(ioredis@5.3.2)(nuxt@packages+nuxt)(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5))(webpack@5.92.0(esbuild@0.21.5))': + '@nuxt/scripts@0.5.1(@nuxt/devtools@1.3.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)))(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(@vue/compiler-core@3.4.27)(ioredis@5.3.2)(nuxt@packages+nuxt)(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5))(webpack@5.92.0(esbuild@0.21.5))': dependencies: '@nuxt/devtools-kit': 1.3.3(nuxt@packages+nuxt)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) - '@nuxt/devtools-ui-kit': 1.3.3(@nuxt/devtools@1.3.3(@unocss/reset@0.60.4)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)))(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(@vue/compiler-core@3.4.27)(nuxt@packages+nuxt)(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5))(webpack@5.92.0(esbuild@0.21.5)) + '@nuxt/devtools-ui-kit': 1.3.3(@nuxt/devtools@1.3.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)))(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(@vue/compiler-core@3.4.27)(nuxt@packages+nuxt)(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5))(webpack@5.92.0(esbuild@0.21.5)) '@nuxt/kit': link:packages/kit '@types/google.maps': 3.55.9 '@types/stripe-v3': 3.1.33 '@types/vimeo__player': 2.18.3 '@types/youtube': 0.0.50 '@unhead/vue': 1.9.12(vue@3.4.27(typescript@5.4.5)) - '@vueuse/core': 10.10.0(vue@3.4.27(typescript@5.4.5)) + '@vueuse/core': 10.10.1(vue@3.4.27(typescript@5.4.5)) consola: 3.2.3 defu: 6.1.4 estree-walker: 3.0.3 @@ -8803,7 +8927,7 @@ snapshots: pathe: 1.1.2 pkg-types: 1.1.1 semver: 7.6.2 - shiki: 1.6.3 + shiki: 1.6.4 sirv: 2.0.4 std-env: 3.7.0 third-party-capital: 1.0.30 @@ -8811,7 +8935,7 @@ snapshots: unimport: 3.7.2(rollup@4.18.0) unplugin: 1.10.1 unstorage: 1.10.2(ioredis@5.3.2) - valibot: 0.30.0 + valibot: 0.31.1 transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -9158,6 +9282,8 @@ snapshots: '@shikijs/core@1.6.3': {} + '@shikijs/core@1.6.4': {} + '@shikijs/transformers@1.1.2': dependencies: shiki: 1.1.2 @@ -9612,6 +9738,16 @@ snapshots: transitivePeerDependencies: - rollup + '@unocss/astro@0.61.0(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))': + dependencies: + '@unocss/core': 0.61.0 + '@unocss/reset': 0.61.0 + '@unocss/vite': 0.61.0(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) + optionalDependencies: + vite: 5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) + transitivePeerDependencies: + - rollup + '@unocss/cli@0.60.4(rollup@4.18.0)': dependencies: '@ampproject/remapping': 2.3.0 @@ -9630,17 +9766,46 @@ snapshots: transitivePeerDependencies: - rollup + '@unocss/cli@0.61.0(rollup@4.18.0)': + dependencies: + '@ampproject/remapping': 2.3.0 + '@rollup/pluginutils': 5.1.0(rollup@4.18.0) + '@unocss/config': 0.61.0 + '@unocss/core': 0.61.0 + '@unocss/preset-uno': 0.61.0 + cac: 6.7.14 + chokidar: 3.6.0 + colorette: 2.0.20 + consola: 3.2.3 + fast-glob: 3.3.2 + magic-string: 0.30.10 + pathe: 1.1.2 + perfect-debounce: 1.0.0 + transitivePeerDependencies: + - rollup + '@unocss/config@0.60.4': dependencies: '@unocss/core': 0.60.4 unconfig: 0.3.13 + '@unocss/config@0.61.0': + dependencies: + '@unocss/core': 0.61.0 + unconfig: 0.3.13 + '@unocss/core@0.60.4': {} + '@unocss/core@0.61.0': {} + '@unocss/extractor-arbitrary-variants@0.60.4': dependencies: '@unocss/core': 0.60.4 + '@unocss/extractor-arbitrary-variants@0.61.0': + dependencies: + '@unocss/core': 0.61.0 + '@unocss/inspector@0.60.4': dependencies: '@unocss/core': 0.60.4 @@ -9648,6 +9813,13 @@ snapshots: gzip-size: 6.0.0 sirv: 2.0.4 + '@unocss/inspector@0.61.0': + dependencies: + '@unocss/core': 0.61.0 + '@unocss/rule-utils': 0.61.0 + gzip-size: 6.0.0 + sirv: 2.0.4 + '@unocss/nuxt@0.60.4(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(webpack@5.92.0(esbuild@0.21.5))': dependencies: '@nuxt/kit': link:packages/kit @@ -9663,7 +9835,7 @@ snapshots: '@unocss/reset': 0.60.4 '@unocss/vite': 0.60.4(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) '@unocss/webpack': 0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)) - unocss: 0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) + unocss: 0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) transitivePeerDependencies: - postcss - rollup @@ -9681,10 +9853,24 @@ snapshots: magic-string: 0.30.10 postcss: 8.4.38 + '@unocss/postcss@0.61.0(postcss@8.4.38)': + dependencies: + '@unocss/config': 0.61.0 + '@unocss/core': 0.61.0 + '@unocss/rule-utils': 0.61.0 + css-tree: 2.3.1 + fast-glob: 3.3.2 + magic-string: 0.30.10 + postcss: 8.4.38 + '@unocss/preset-attributify@0.60.4': dependencies: '@unocss/core': 0.60.4 + '@unocss/preset-attributify@0.61.0': + dependencies: + '@unocss/core': 0.61.0 + '@unocss/preset-icons@0.60.4': dependencies: '@iconify/utils': 2.1.24 @@ -9693,21 +9879,44 @@ snapshots: transitivePeerDependencies: - supports-color + '@unocss/preset-icons@0.61.0': + dependencies: + '@iconify/utils': 2.1.24 + '@unocss/core': 0.61.0 + ofetch: 1.3.4 + transitivePeerDependencies: + - supports-color + '@unocss/preset-mini@0.60.4': dependencies: '@unocss/core': 0.60.4 '@unocss/extractor-arbitrary-variants': 0.60.4 '@unocss/rule-utils': 0.60.4 + '@unocss/preset-mini@0.61.0': + dependencies: + '@unocss/core': 0.61.0 + '@unocss/extractor-arbitrary-variants': 0.61.0 + '@unocss/rule-utils': 0.61.0 + '@unocss/preset-tagify@0.60.4': dependencies: '@unocss/core': 0.60.4 + '@unocss/preset-tagify@0.61.0': + dependencies: + '@unocss/core': 0.61.0 + '@unocss/preset-typography@0.60.4': dependencies: '@unocss/core': 0.60.4 '@unocss/preset-mini': 0.60.4 + '@unocss/preset-typography@0.61.0': + dependencies: + '@unocss/core': 0.61.0 + '@unocss/preset-mini': 0.61.0 + '@unocss/preset-uno@0.60.4': dependencies: '@unocss/core': 0.60.4 @@ -9715,26 +9924,53 @@ snapshots: '@unocss/preset-wind': 0.60.4 '@unocss/rule-utils': 0.60.4 + '@unocss/preset-uno@0.61.0': + dependencies: + '@unocss/core': 0.61.0 + '@unocss/preset-mini': 0.61.0 + '@unocss/preset-wind': 0.61.0 + '@unocss/rule-utils': 0.61.0 + '@unocss/preset-web-fonts@0.60.4': dependencies: '@unocss/core': 0.60.4 ofetch: 1.3.4 + '@unocss/preset-web-fonts@0.61.0': + dependencies: + '@unocss/core': 0.61.0 + ofetch: 1.3.4 + '@unocss/preset-wind@0.60.4': dependencies: '@unocss/core': 0.60.4 '@unocss/preset-mini': 0.60.4 '@unocss/rule-utils': 0.60.4 + '@unocss/preset-wind@0.61.0': + dependencies: + '@unocss/core': 0.61.0 + '@unocss/preset-mini': 0.61.0 + '@unocss/rule-utils': 0.61.0 + '@unocss/reset@0.60.4': {} + '@unocss/reset@0.61.0': {} + '@unocss/rule-utils@0.60.4': dependencies: '@unocss/core': 0.60.4 magic-string: 0.30.10 + '@unocss/rule-utils@0.61.0': + dependencies: + '@unocss/core': 0.61.0 + magic-string: 0.30.10 + '@unocss/scope@0.60.4': {} + '@unocss/scope@0.61.0': {} + '@unocss/transformer-attributify-jsx-babel@0.60.4': dependencies: '@babel/core': 7.24.7 @@ -9744,24 +9980,51 @@ snapshots: transitivePeerDependencies: - supports-color + '@unocss/transformer-attributify-jsx-babel@0.61.0': + dependencies: + '@babel/core': 7.24.7 + '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.24.7) + '@babel/preset-typescript': 7.24.7(@babel/core@7.24.7) + '@unocss/core': 0.61.0 + transitivePeerDependencies: + - supports-color + '@unocss/transformer-attributify-jsx@0.60.4': dependencies: '@unocss/core': 0.60.4 + '@unocss/transformer-attributify-jsx@0.61.0': + dependencies: + '@unocss/core': 0.61.0 + '@unocss/transformer-compile-class@0.60.4': dependencies: '@unocss/core': 0.60.4 + '@unocss/transformer-compile-class@0.61.0': + dependencies: + '@unocss/core': 0.61.0 + '@unocss/transformer-directives@0.60.4': dependencies: '@unocss/core': 0.60.4 '@unocss/rule-utils': 0.60.4 css-tree: 2.3.1 + '@unocss/transformer-directives@0.61.0': + dependencies: + '@unocss/core': 0.61.0 + '@unocss/rule-utils': 0.61.0 + css-tree: 2.3.1 + '@unocss/transformer-variant-group@0.60.4': dependencies: '@unocss/core': 0.60.4 + '@unocss/transformer-variant-group@0.61.0': + dependencies: + '@unocss/core': 0.61.0 + '@unocss/vite@0.60.4(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))': dependencies: '@ampproject/remapping': 2.3.0 @@ -9778,6 +10041,22 @@ snapshots: transitivePeerDependencies: - rollup + '@unocss/vite@0.61.0(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))': + dependencies: + '@ampproject/remapping': 2.3.0 + '@rollup/pluginutils': 5.1.0(rollup@4.18.0) + '@unocss/config': 0.61.0 + '@unocss/core': 0.61.0 + '@unocss/inspector': 0.61.0 + '@unocss/scope': 0.61.0 + '@unocss/transformer-directives': 0.61.0 + chokidar: 3.6.0 + fast-glob: 3.3.2 + magic-string: 0.30.10 + vite: 5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) + transitivePeerDependencies: + - rollup + '@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5))': dependencies: '@ampproject/remapping': 2.3.0 @@ -9970,12 +10249,12 @@ snapshots: '@vue/devtools-api@6.6.3': {} - '@vue/devtools-applet@7.1.3(@unocss/reset@0.60.4)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(unocss@0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5))': + '@vue/devtools-applet@7.1.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5))': dependencies: '@vue/devtools-core': 7.1.3(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)) '@vue/devtools-kit': 7.1.3(vue@3.4.27(typescript@5.4.5)) '@vue/devtools-shared': 7.1.3 - '@vue/devtools-ui': 7.1.3(@unocss/reset@0.60.4)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(unocss@0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vue@3.4.27(typescript@5.4.5)) + '@vue/devtools-ui': 7.1.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vue@3.4.27(typescript@5.4.5)) lodash-es: 4.17.21 perfect-debounce: 1.0.0 shiki: 1.3.0 @@ -10025,9 +10304,9 @@ snapshots: dependencies: rfdc: 1.3.1 - '@vue/devtools-ui@7.1.3(@unocss/reset@0.60.4)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(unocss@0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vue@3.4.27(typescript@5.4.5))': + '@vue/devtools-ui@7.1.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vue@3.4.27(typescript@5.4.5))': dependencies: - '@unocss/reset': 0.60.4 + '@unocss/reset': 0.61.0 '@vue/devtools-shared': 7.1.3 '@vueuse/components': 10.9.0(vue@3.4.27(typescript@5.4.5)) '@vueuse/core': 10.10.0(vue@3.4.27(typescript@5.4.5)) @@ -10035,7 +10314,7 @@ snapshots: colord: 2.9.3 floating-vue: 5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)) focus-trap: 7.5.4 - unocss: 0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) + unocss: 0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) vue: 3.4.27(typescript@5.4.5) transitivePeerDependencies: - '@vue/composition-api' @@ -10124,6 +10403,16 @@ snapshots: - '@vue/composition-api' - vue + '@vueuse/core@10.10.1(vue@3.4.27(typescript@5.4.5))': + dependencies: + '@types/web-bluetooth': 0.0.20 + '@vueuse/metadata': 10.10.1 + '@vueuse/shared': 10.10.1(vue@3.4.27(typescript@5.4.5)) + vue-demi: 0.14.8(vue@3.4.27(typescript@5.4.5)) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + '@vueuse/core@10.9.0(vue@3.4.27(typescript@5.4.5))': dependencies: '@types/web-bluetooth': 0.0.20 @@ -10147,6 +10436,8 @@ snapshots: '@vueuse/metadata@10.10.0': {} + '@vueuse/metadata@10.10.1': {} + '@vueuse/metadata@10.9.0': {} '@vueuse/nuxt@10.10.0(nuxt@packages+nuxt)(vue@3.4.27(typescript@5.4.5))': @@ -10168,6 +10459,13 @@ snapshots: - '@vue/composition-api' - vue + '@vueuse/shared@10.10.1(vue@3.4.27(typescript@5.4.5))': + dependencies: + vue-demi: 0.14.8(vue@3.4.27(typescript@5.4.5)) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + '@vueuse/shared@10.9.0(vue@3.4.27(typescript@5.4.5))': dependencies: vue-demi: 0.14.7(vue@3.4.27(typescript@5.4.5)) @@ -14332,6 +14630,10 @@ snapshots: dependencies: '@shikijs/core': 1.6.3 + shiki@1.6.4: + dependencies: + '@shikijs/core': 1.6.4 + side-channel@1.0.4: dependencies: call-bind: 1.0.7 @@ -14842,7 +15144,7 @@ snapshots: universalify@2.0.0: {} - unocss@0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)): + unocss@0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)): dependencies: '@unocss/astro': 0.60.4(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) '@unocss/cli': 0.60.4(rollup@4.18.0) @@ -14872,6 +15174,36 @@ snapshots: - rollup - supports-color + unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)): + dependencies: + '@unocss/astro': 0.61.0(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) + '@unocss/cli': 0.61.0(rollup@4.18.0) + '@unocss/core': 0.61.0 + '@unocss/extractor-arbitrary-variants': 0.61.0 + '@unocss/postcss': 0.61.0(postcss@8.4.38) + '@unocss/preset-attributify': 0.61.0 + '@unocss/preset-icons': 0.61.0 + '@unocss/preset-mini': 0.61.0 + '@unocss/preset-tagify': 0.61.0 + '@unocss/preset-typography': 0.61.0 + '@unocss/preset-uno': 0.61.0 + '@unocss/preset-web-fonts': 0.61.0 + '@unocss/preset-wind': 0.61.0 + '@unocss/reset': 0.61.0 + '@unocss/transformer-attributify-jsx': 0.61.0 + '@unocss/transformer-attributify-jsx-babel': 0.61.0 + '@unocss/transformer-compile-class': 0.61.0 + '@unocss/transformer-directives': 0.61.0 + '@unocss/transformer-variant-group': 0.61.0 + '@unocss/vite': 0.61.0(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) + optionalDependencies: + '@unocss/webpack': 0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)) + vite: 5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) + transitivePeerDependencies: + - postcss + - rollup + - supports-color + unplugin-vue-router@0.7.0(rollup@4.18.0)(vue-router@4.3.3(vue@3.4.27(typescript@5.4.5)))(vue@3.4.27(typescript@5.4.5)): dependencies: '@babel/types': 7.24.5 @@ -14977,7 +15309,7 @@ snapshots: dependencies: '@vue/compiler-core': 3.4.27 - valibot@0.30.0: {} + valibot@0.31.1: {} validate-npm-package-license@3.0.4: dependencies: @@ -15182,6 +15514,10 @@ snapshots: dependencies: vue: 3.4.27(typescript@5.4.5) + vue-demi@0.14.8(vue@3.4.27(typescript@5.4.5)): + dependencies: + vue: 3.4.27(typescript@5.4.5) + vue-devtools-stub@0.1.0: {} vue-eslint-parser@9.4.2(eslint@9.4.0): From fbb66c43be7dfd502e210cd582d7f80d43694f3a Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Wed, 12 Jun 2024 17:32:53 +0100 Subject: [PATCH 071/580] fix(nuxt): overwrite `#app/defaults` rather than augmenting (#27567) --- packages/nuxt/src/core/nuxt.ts | 1 + packages/nuxt/src/core/templates.ts | 25 +++++++++++++++---------- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/packages/nuxt/src/core/nuxt.ts b/packages/nuxt/src/core/nuxt.ts index e319d53d7c..b64525af10 100644 --- a/packages/nuxt/src/core/nuxt.ts +++ b/packages/nuxt/src/core/nuxt.ts @@ -125,6 +125,7 @@ async function initNuxt (nuxt: Nuxt) { // Add nuxt types nuxt.hook('prepare:types', (opts) => { opts.references.push({ types: 'nuxt' }) + opts.references.push({ path: resolve(nuxt.options.buildDir, 'types/app-defaults.d.ts') }) opts.references.push({ path: resolve(nuxt.options.buildDir, 'types/plugins.d.ts') }) // Add vue shim if (nuxt.options.typescript.shim) { diff --git a/packages/nuxt/src/core/templates.ts b/packages/nuxt/src/core/templates.ts index 9e120da0ff..8c54e9e79d 100644 --- a/packages/nuxt/src/core/templates.ts +++ b/packages/nuxt/src/core/templates.ts @@ -7,7 +7,7 @@ import escapeRE from 'escape-string-regexp' import { hash } from 'ohash' import { camelCase } from 'scule' import { filename } from 'pathe/utils' -import type { NuxtTemplate } from 'nuxt/schema' +import type { NuxtTemplate, NuxtTypeTemplate } from 'nuxt/schema' import { annotatePlugins, checkForCircularDependencies } from './app' @@ -96,6 +96,20 @@ export const serverPluginTemplate: NuxtTemplate = { }, } +export const appDefaults: NuxtTypeTemplate = { + filename: 'types/app-defaults.d.ts', + getContents: (ctx) => { + const isV4 = ctx.nuxt.options.future.compatibilityVersion === 4 + return ` +declare module '#app/defaults' { + type DefaultAsyncDataErrorValue = ${isV4 ? 'undefined' : 'null'} + type DefaultAsyncDataValue = ${isV4 ? 'undefined' : 'null'} + type DefaultErrorValue = ${isV4 ? 'undefined' : 'null'} + type DedupeOption = ${isV4 ? '\'cancel\' | \'defer\'' : 'boolean | \'cancel\' | \'defer\''} +}` + }, +} + export const pluginsDeclaration: NuxtTemplate = { filename: 'types/plugins.d.ts', getContents: async (ctx) => { @@ -112,8 +126,6 @@ export const pluginsDeclaration: NuxtTemplate = { const pluginsName = (await annotatePlugins(ctx.nuxt, ctx.app.plugins)).filter(p => p.name).map(p => `'${p.name}'`) - const isV4 = ctx.nuxt.options.future.compatibilityVersion === 4 - return `// Generated by Nuxt' import type { Plugin } from '#app' @@ -132,13 +144,6 @@ declare module '#app' { } } -declare module '#app/defaults' { - type DefaultAsyncDataErrorValue = ${isV4 ? 'undefined' : 'null'} - type DefaultAsyncDataValue = ${isV4 ? 'undefined' : 'null'} - type DefaultErrorValue = ${isV4 ? 'undefined' : 'null'} - type DedupeOption = ${isV4 ? '\'cancel\' | \'defer\'' : 'boolean | \'cancel\' | \'defer\''} -} - declare module 'vue' { interface ComponentCustomProperties extends NuxtAppInjections { } } From 1321c56483e09b3eb255c1ef3900a13eedd68a28 Mon Sep 17 00:00:00 2001 From: Okuto Oyama <0910yama@gmail.com> Date: Thu, 13 Jun 2024 01:46:17 +0900 Subject: [PATCH 072/580] fix(nuxt): export `useRouteAnnouncer` (#27562) --- packages/nuxt/src/app/composables/index.ts | 1 + packages/nuxt/src/imports/presets.ts | 4 ++++ test/nuxt/composables.test.ts | 1 + 3 files changed, 6 insertions(+) diff --git a/packages/nuxt/src/app/composables/index.ts b/packages/nuxt/src/app/composables/index.ts index dbb5e96079..c0abdec2e4 100644 --- a/packages/nuxt/src/app/composables/index.ts +++ b/packages/nuxt/src/app/composables/index.ts @@ -37,3 +37,4 @@ export { reloadNuxtApp } from './chunk' export { useRequestURL } from './url' export { usePreviewMode } from './preview' export { useId } from './id' +export { useRouteAnnouncer } from './route-announcer' diff --git a/packages/nuxt/src/imports/presets.ts b/packages/nuxt/src/imports/presets.ts index c5a6b52261..068615cb91 100644 --- a/packages/nuxt/src/imports/presets.ts +++ b/packages/nuxt/src/imports/presets.ts @@ -109,6 +109,10 @@ const granularAppPresets: InlinePreset[] = [ imports: ['useId'], from: '#app/composables/id', }, + { + imports: ['useRouteAnnouncer'], + from: '#app/composables/route-announcer', + }, ] export const scriptsStubsPreset = { diff --git a/test/nuxt/composables.test.ts b/test/nuxt/composables.test.ts index d4bf1eaaa4..e22488309b 100644 --- a/test/nuxt/composables.test.ts +++ b/test/nuxt/composables.test.ts @@ -53,6 +53,7 @@ describe('app config', () => { describe('composables', () => { it('are all tested', () => { const testedComposables: string[] = [ + 'useRouteAnnouncer', 'clearNuxtData', 'refreshNuxtData', 'useAsyncData', From 803100e34ea19858e0c193056d3ce6975c2c3234 Mon Sep 17 00:00:00 2001 From: Valerii Strilets Date: Wed, 12 Jun 2024 21:51:09 +0300 Subject: [PATCH 073/580] fix(nuxt): remove backticks around runtimeConfig warning log (#27549) --- packages/nuxt/src/app/nuxt.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/nuxt/src/app/nuxt.ts b/packages/nuxt/src/app/nuxt.ts index 8839005f3b..75ce824a47 100644 --- a/packages/nuxt/src/app/nuxt.ts +++ b/packages/nuxt/src/app/nuxt.ts @@ -568,7 +568,7 @@ function wrappedConfig (runtimeConfig: Record) { if (typeof p === 'string' && p !== 'public' && !(p in target) && !p.startsWith('__v') /* vue check for reactivity, e.g. `__v_isRef` */) { if (!loggedKeys.has(p)) { loggedKeys.add(p) - console.warn(`[nuxt] Could not access \`${p}\`. The only available runtime config keys on the client side are ${keys.join(', ')} and ${lastKey}. See \`https://nuxt.com/docs/guide/going-further/runtime-config\` for more information.`) + console.warn(`[nuxt] Could not access \`${p}\`. The only available runtime config keys on the client side are ${keys.join(', ')} and ${lastKey}. See https://nuxt.com/docs/guide/going-further/runtime-config for more information.`) } } return Reflect.get(target, p, receiver) From 6bca120d02cc974ee74fd0a12c73e21d512948d3 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Wed, 12 Jun 2024 20:55:24 +0100 Subject: [PATCH 074/580] fix(nuxt): close top-level watcher on nuxt 'close' (#27571) --- packages/nuxt/src/core/builder.ts | 1 + packages/nuxt/src/core/nuxt.ts | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/nuxt/src/core/builder.ts b/packages/nuxt/src/core/builder.ts index c66e33c198..ca1b41dfd7 100644 --- a/packages/nuxt/src/core/builder.ts +++ b/packages/nuxt/src/core/builder.ts @@ -136,6 +136,7 @@ function createGranularWatcher () { console.timeEnd('[nuxt] builder:chokidar:watch') } }) + nuxt.hook('close', () => watcher?.close()) } } diff --git a/packages/nuxt/src/core/nuxt.ts b/packages/nuxt/src/core/nuxt.ts index b64525af10..6d4d62524e 100644 --- a/packages/nuxt/src/core/nuxt.ts +++ b/packages/nuxt/src/core/nuxt.ts @@ -49,7 +49,10 @@ export function createNuxt (options: NuxtOptions): Nuxt { addHooks: hooks.addHooks, hook: hooks.hook, ready: () => initNuxt(nuxt), - close: () => Promise.resolve(hooks.callHook('close', nuxt)), + close: async () => { + await hooks.callHook('close', nuxt) + hooks.removeAllHooks() + }, vfs: {}, apps: {}, } From d443a24cff1a05eafe155e2db72f2022daef0719 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 12 Jun 2024 20:55:40 +0100 Subject: [PATCH 075/580] chore(deps): update all non-major dependencies (main) (#27568) --- .github/workflows/ci.yml | 4 +- .github/workflows/scorecards.yml | 2 +- packages/kit/package.json | 2 +- packages/kit/src/loader/config.ts | 4 +- packages/nuxt/package.json | 2 +- packages/schema/package.json | 4 +- pnpm-lock.yaml | 97 ++++++++++++++++--------------- 7 files changed, 59 insertions(+), 56 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2f98bf80f1..7ea1234165 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -83,7 +83,7 @@ jobs: run: pnpm install - name: Initialize CodeQL - uses: github/codeql-action/init@2e230e8fe0ad3a14a340ad0815ddb96d599d2aff # v3.25.8 + uses: github/codeql-action/init@530d4feaa9c62aaab2d250371e2061eb7a172363 # v3.25.9 with: languages: javascript queries: +security-and-quality @@ -95,7 +95,7 @@ jobs: path: packages - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@2e230e8fe0ad3a14a340ad0815ddb96d599d2aff # v3.25.8 + uses: github/codeql-action/analyze@530d4feaa9c62aaab2d250371e2061eb7a172363 # v3.25.9 with: category: "/language:javascript" diff --git a/.github/workflows/scorecards.yml b/.github/workflows/scorecards.yml index 7a36b4a412..1f091275de 100644 --- a/.github/workflows/scorecards.yml +++ b/.github/workflows/scorecards.yml @@ -68,7 +68,7 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@2e230e8fe0ad3a14a340ad0815ddb96d599d2aff # v3.25.8 + uses: github/codeql-action/upload-sarif@530d4feaa9c62aaab2d250371e2061eb7a172363 # v3.25.9 if: github.repository == 'nuxt/nuxt' && success() with: sarif_file: results.sarif diff --git a/packages/kit/package.json b/packages/kit/package.json index 3544978785..576702fa62 100644 --- a/packages/kit/package.json +++ b/packages/kit/package.json @@ -27,7 +27,7 @@ }, "dependencies": { "@nuxt/schema": "workspace:*", - "c12": "^1.10.0", + "c12": "^1.11.1", "consola": "^3.2.3", "defu": "^6.1.4", "destr": "^2.0.3", diff --git a/packages/kit/src/loader/config.ts b/packages/kit/src/loader/config.ts index fab118bf6c..3c5894ea68 100644 --- a/packages/kit/src/loader/config.ts +++ b/packages/kit/src/loader/config.ts @@ -7,7 +7,9 @@ import { NuxtConfigSchema } from '@nuxt/schema' import { globby } from 'globby' import defu from 'defu' -export interface LoadNuxtConfigOptions extends LoadConfigOptions {} +export interface LoadNuxtConfigOptions extends Omit, 'overrides'> { + overrides?: Exclude['overrides'], Promise | Function> +} const layerSchemaKeys = ['future', 'srcDir', 'rootDir', 'dir'] const layerSchema = Object.fromEntries(Object.entries(NuxtConfigSchema).filter(([key]) => layerSchemaKeys.includes(key))) diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index e08492f35d..7f7182a30f 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -70,7 +70,7 @@ "@unhead/vue": "^1.9.12", "@vue/shared": "^3.4.27", "acorn": "8.11.3", - "c12": "^1.10.0", + "c12": "^1.11.1", "chokidar": "^3.6.0", "cookie-es": "^1.1.0", "defu": "^6.1.4", diff --git a/packages/schema/package.json b/packages/schema/package.json index eb43f7fd84..3d1c9b4594 100644 --- a/packages/schema/package.json +++ b/packages/schema/package.json @@ -45,7 +45,7 @@ "@vue/compiler-core": "3.4.27", "@vue/compiler-sfc": "3.4.27", "@vue/language-core": "2.0.21", - "c12": "1.10.0", + "c12": "1.11.1", "esbuild-loader": "4.1.0", "h3": "1.11.1", "ignore": "5.3.1", @@ -63,7 +63,7 @@ "webpack-dev-middleware": "7.2.1" }, "dependencies": { - "compatx": "^0.1.3", + "compatx": "^0.1.8", "consola": "^3.2.3", "defu": "^6.1.4", "hookable": "^5.5.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bbd4dc3abd..1a2b693dd6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -31,7 +31,7 @@ importers: version: link:packages/kit '@nuxt/test-utils': specifier: 3.13.1 - version: 3.13.1(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.27)(vue@3.4.27(typescript@5.4.5)))(@vue/test-utils@2.4.6)(h3@1.11.1)(happy-dom@14.12.0)(nitropack@2.9.6(encoding@0.1.13))(playwright-core@1.44.1)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.2)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.3(vue@3.4.27(typescript@5.4.5)))(vue@3.4.27(typescript@5.4.5)) + version: 3.13.1(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.27)(vue@3.4.27(typescript@5.4.5)))(@vue/test-utils@2.4.6)(h3@1.11.1)(happy-dom@14.12.0)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.44.1)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.2)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.3(vue@3.4.27(typescript@5.4.5)))(vue@3.4.27(typescript@5.4.5)) '@nuxt/webpack-builder': specifier: workspace:* version: link:packages/webpack @@ -67,7 +67,7 @@ importers: version: 0.6.1 changelogen: specifier: 0.5.5 - version: 0.5.5 + version: 0.5.5(magicast@0.3.4) consola: specifier: 3.2.3 version: 3.2.3 @@ -109,7 +109,7 @@ importers: version: 0.41.0 nitropack: specifier: 2.9.6 - version: 2.9.6(encoding@0.1.13) + version: 2.9.6(encoding@0.1.13)(magicast@0.3.4) nuxi: specifier: 3.12.0 version: 3.12.0 @@ -148,7 +148,7 @@ importers: version: 1.6.0(@types/node@20.14.2)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0) vitest-environment-nuxt: specifier: 1.0.0 - version: 1.0.0(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.27)(vue@3.4.27(typescript@5.4.5)))(@vue/test-utils@2.4.6)(h3@1.11.1)(happy-dom@14.12.0)(nitropack@2.9.6(encoding@0.1.13))(playwright-core@1.44.1)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.2)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.3(vue@3.4.27(typescript@5.4.5)))(vue@3.4.27(typescript@5.4.5)) + version: 1.0.0(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.27)(vue@3.4.27(typescript@5.4.5)))(@vue/test-utils@2.4.6)(h3@1.11.1)(happy-dom@14.12.0)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.44.1)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.2)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.3(vue@3.4.27(typescript@5.4.5)))(vue@3.4.27(typescript@5.4.5)) vue: specifier: 3.4.27 version: 3.4.27(typescript@5.4.5) @@ -165,8 +165,8 @@ importers: specifier: workspace:* version: link:../schema c12: - specifier: ^1.10.0 - version: 1.10.0 + specifier: ^1.11.1 + version: 1.11.1(magicast@0.3.4) consola: specifier: ^3.2.3 version: 3.2.3 @@ -236,7 +236,7 @@ importers: version: 4.17.21 nitropack: specifier: 2.9.6 - version: 2.9.6(encoding@0.1.13) + version: 2.9.6(encoding@0.1.13)(magicast@0.3.4) unbuild: specifier: latest version: 2.0.0(sass@1.69.4)(typescript@5.4.5) @@ -289,8 +289,8 @@ importers: specifier: 8.11.3 version: 8.11.3 c12: - specifier: ^1.10.0 - version: 1.10.0 + specifier: ^1.11.1 + version: 1.11.1(magicast@0.3.4) chokidar: specifier: ^3.6.0 version: 3.6.0 @@ -347,7 +347,7 @@ importers: version: 1.7.1 nitropack: specifier: ^2.9.6 - version: 2.9.6(encoding@0.1.13) + version: 2.9.6(encoding@0.1.13)(magicast@0.3.4) nuxi: specifier: ^3.12.0 version: 3.12.0 @@ -461,8 +461,8 @@ importers: packages/schema: dependencies: compatx: - specifier: ^0.1.3 - version: 0.1.3 + specifier: ^0.1.8 + version: 0.1.8 consola: specifier: ^3.2.3 version: 3.2.3 @@ -531,8 +531,8 @@ importers: specifier: 2.0.21 version: 2.0.21(typescript@5.4.5) c12: - specifier: 1.10.0 - version: 1.10.0 + specifier: 1.11.1 + version: 1.11.1(magicast@0.3.4) esbuild-loader: specifier: 4.1.0 version: 4.1.0(webpack@5.92.0) @@ -544,7 +544,7 @@ importers: version: 5.3.1 nitropack: specifier: 2.9.6 - version: 2.9.6(encoding@0.1.13) + version: 2.9.6(encoding@0.1.13)(magicast@0.3.4) ofetch: specifier: 1.3.4 version: 1.3.4 @@ -2471,9 +2471,6 @@ packages: '@shikijs/core@1.3.0': resolution: {integrity: sha512-7fedsBfuILDTBmrYZNFI8B6ATTxhQAasUHllHmjvSZPnoq4bULWoTpHwmuQvZ8Aq03/tAa2IGo6RXqWtHdWaCA==} - '@shikijs/core@1.6.3': - resolution: {integrity: sha512-QnJKHFUW95GnlJLJGP6QLx4M69HM0KlXk+R2Y8lr/x4nAx1Yb/lsuxq4XwybuUjTxbJk+BT0g/kvn0bcsjGGHg==} - '@shikijs/core@1.6.4': resolution: {integrity: sha512-WTU9rzZae1p2v6LOxMf6LhtmZOkIHYYW160IuahUyJy7YXPPjyWZLR1ag+SgD22ZMxZtz1gfU6Tccc8t0Il/XA==} @@ -3544,8 +3541,13 @@ packages: resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} engines: {node: '>=18'} - c12@1.10.0: - resolution: {integrity: sha512-0SsG7UDhoRWcuSvKWHaXmu5uNjDCDN3nkQLRL4Q42IlFy+ze58FcCoI3uPwINXinkz7ZinbhEgyzYFw9u9ZV8g==} + c12@1.11.1: + resolution: {integrity: sha512-KDU0TvSvVdaYcQKQ6iPHATGz/7p/KiVjPg4vQrB6Jg/wX9R0yl5RZxWm9IoZqaIHD2+6PZd81+KMGwRr/lRIUg==} + peerDependencies: + magicast: ^0.3.4 + peerDependenciesMeta: + magicast: + optional: true cac@6.7.14: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} @@ -3727,8 +3729,8 @@ packages: commondir@1.0.1: resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} - compatx@0.1.3: - resolution: {integrity: sha512-MWspQwvBk5xeLZMetIfjOozTAtmAIICz1mtol6NbBpCSllXOO+HvWMO87B18rcFtqjfrZ0tIFOH9gNG63ep+mw==} + compatx@0.1.8: + resolution: {integrity: sha512-jcbsEAR81Bt5s1qOFymBufmCbXCXbk0Ql+K5ouj6gCyx2yHlu6AgmGIi9HxfKixpUDO5bCFJUHQ5uM6ecbTebw==} compress-commons@6.0.2: resolution: {integrity: sha512-6FqVXeETqWPoGcfzrXb37E50NP0LXT8kAMu5ooZayhWWdgEY4lBEEcbQNXtkuKQsGduxiIcI4gOTsxTmuq/bSg==} @@ -4576,8 +4578,8 @@ packages: get-tsconfig@4.7.3: resolution: {integrity: sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg==} - giget@1.2.1: - resolution: {integrity: sha512-4VG22mopWtIeHwogGSy1FViXVo0YT+m6BrqZfz0JJFwbSsePsCdOzdLIIli5BtMp7Xe8f/o2OmBpQX2NBOC24g==} + giget@1.2.3: + resolution: {integrity: sha512-8EHPljDvs7qKykr6uw8b+lqLiUc/vUg+KVTI0uND4s63TdsZM2Xus3mflvF0DDG9SiM4RlCkFGL+7aAjRmV7KA==} hasBin: true git-config-path@2.0.0: @@ -6729,9 +6731,6 @@ packages: shiki@1.3.0: resolution: {integrity: sha512-9aNdQy/etMXctnPzsje1h1XIGm9YfRcSksKOGqZWXA/qP9G18/8fpz5Bjpma8bOgz3tqIpjERAd6/lLjFyzoww==} - shiki@1.6.3: - resolution: {integrity: sha512-lE1/YGlzFY0hQSyEfsZj18xGrTWxyhFQkaiILALqTBZPbJeYFWpbUhlmTGPOupYB/qC+H6sV4UznJzcEh3WMHQ==} - shiki@1.6.4: resolution: {integrity: sha512-X88chM7w8jnadoZtjPTi5ahCJx9pc9f8GfEkZAEYUTlcUZIEw2D/RY86HI/LkkE7Nj8TQWkiBfaFTJ3VJT6ESg==} @@ -8993,11 +8992,11 @@ snapshots: rc9: 2.1.2 std-env: 3.7.0 - '@nuxt/test-utils@3.13.1(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.27)(vue@3.4.27(typescript@5.4.5)))(@vue/test-utils@2.4.6)(h3@1.11.1)(happy-dom@14.12.0)(nitropack@2.9.6(encoding@0.1.13))(playwright-core@1.44.1)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.2)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.3(vue@3.4.27(typescript@5.4.5)))(vue@3.4.27(typescript@5.4.5))': + '@nuxt/test-utils@3.13.1(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.27)(vue@3.4.27(typescript@5.4.5)))(@vue/test-utils@2.4.6)(h3@1.11.1)(happy-dom@14.12.0)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.44.1)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.2)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.3(vue@3.4.27(typescript@5.4.5)))(vue@3.4.27(typescript@5.4.5))': dependencies: '@nuxt/kit': link:packages/kit '@nuxt/schema': link:packages/schema - c12: 1.10.0 + c12: 1.11.1(magicast@0.3.4) consola: 3.2.3 defu: 6.1.4 destr: 2.0.3 @@ -9008,7 +9007,7 @@ snapshots: h3: 1.11.1 local-pkg: 0.5.0 magic-string: 0.30.10 - nitropack: 2.9.6(encoding@0.1.13) + nitropack: 2.9.6(encoding@0.1.13)(magicast@0.3.4) node-fetch-native: 1.6.4 ofetch: 1.3.4 pathe: 1.1.2 @@ -9020,7 +9019,7 @@ snapshots: unenv: 1.9.0 unplugin: 1.10.1 vite: 5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) - vitest-environment-nuxt: 1.0.0(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.27)(vue@3.4.27(typescript@5.4.5)))(@vue/test-utils@2.4.6)(h3@1.11.1)(happy-dom@14.12.0)(nitropack@2.9.6(encoding@0.1.13))(playwright-core@1.44.1)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.2)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.3(vue@3.4.27(typescript@5.4.5)))(vue@3.4.27(typescript@5.4.5)) + vitest-environment-nuxt: 1.0.0(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.27)(vue@3.4.27(typescript@5.4.5)))(@vue/test-utils@2.4.6)(h3@1.11.1)(happy-dom@14.12.0)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.44.1)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.2)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.3(vue@3.4.27(typescript@5.4.5)))(vue@3.4.27(typescript@5.4.5)) vue: 3.4.27(typescript@5.4.5) vue-router: 4.3.3(vue@3.4.27(typescript@5.4.5)) optionalDependencies: @@ -9029,6 +9028,8 @@ snapshots: happy-dom: 14.12.0 playwright-core: 1.44.1 vitest: 1.6.0(@types/node@20.14.2)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0) + transitivePeerDependencies: + - magicast '@nuxtjs/color-mode@3.4.1': dependencies: @@ -9068,7 +9069,7 @@ snapshots: remark-parse: 11.0.0 remark-rehype: 11.1.0 scule: 1.3.0 - shiki: 1.6.3 + shiki: 1.6.4 ufo: 1.5.3 unified: 11.0.4 unist-builder: 4.0.0 @@ -9280,8 +9281,6 @@ snapshots: '@shikijs/core@1.3.0': {} - '@shikijs/core@1.6.3': {} - '@shikijs/core@1.6.4': {} '@shikijs/transformers@1.1.2': @@ -10812,13 +10811,13 @@ snapshots: dependencies: run-applescript: 7.0.0 - c12@1.10.0: + c12@1.11.1(magicast@0.3.4): dependencies: chokidar: 3.6.0 confbox: 0.1.7 defu: 6.1.4 dotenv: 16.4.5 - giget: 1.2.1 + giget: 1.2.3 jiti: 1.21.6 mlly: 1.7.1 ohash: 1.1.3 @@ -10826,6 +10825,8 @@ snapshots: perfect-debounce: 1.0.0 pkg-types: 1.1.1 rc9: 2.1.2 + optionalDependencies: + magicast: 0.3.4 cac@6.7.14: {} @@ -10897,9 +10898,9 @@ snapshots: chalk@5.3.0: {} - changelogen@0.5.5: + changelogen@0.5.5(magicast@0.3.4): dependencies: - c12: 1.10.0 + c12: 1.11.1(magicast@0.3.4) colorette: 2.0.20 consola: 3.2.3 convert-gitmoji: 0.1.3 @@ -10914,6 +10915,8 @@ snapshots: semver: 7.6.2 std-env: 3.7.0 yaml: 2.3.4 + transitivePeerDependencies: + - magicast char-regex@1.0.2: {} @@ -11017,7 +11020,7 @@ snapshots: commondir@1.0.1: {} - compatx@0.1.3: {} + compatx@0.1.8: {} compress-commons@6.0.2: dependencies: @@ -12033,7 +12036,7 @@ snapshots: dependencies: resolve-pkg-maps: 1.0.0 - giget@1.2.1: + giget@1.2.3: dependencies: citty: 0.1.6 consola: 3.2.3 @@ -13377,7 +13380,7 @@ snapshots: neo-async@2.6.2: {} - nitropack@2.9.6(encoding@0.1.13): + nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4): dependencies: '@cloudflare/kv-asset-handler': 0.3.1 '@netlify/functions': 2.6.0 @@ -13392,7 +13395,7 @@ snapshots: '@types/http-proxy': 1.17.14 '@vercel/nft': 0.26.4(encoding@0.1.13) archiver: 7.0.1 - c12: 1.10.0 + c12: 1.11.1(magicast@0.3.4) chalk: 5.3.0 chokidar: 3.6.0 citty: 0.1.6 @@ -13463,6 +13466,7 @@ snapshots: - drizzle-orm - encoding - idb-keyval + - magicast - supports-color - uWebSockets.js @@ -14626,10 +14630,6 @@ snapshots: dependencies: '@shikijs/core': 1.3.0 - shiki@1.6.3: - dependencies: - '@shikijs/core': 1.6.3 - shiki@1.6.4: dependencies: '@shikijs/core': 1.6.4 @@ -15425,9 +15425,9 @@ snapshots: sass: 1.69.4 terser: 5.27.0 - vitest-environment-nuxt@1.0.0(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.27)(vue@3.4.27(typescript@5.4.5)))(@vue/test-utils@2.4.6)(h3@1.11.1)(happy-dom@14.12.0)(nitropack@2.9.6(encoding@0.1.13))(playwright-core@1.44.1)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.2)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.3(vue@3.4.27(typescript@5.4.5)))(vue@3.4.27(typescript@5.4.5)): + vitest-environment-nuxt@1.0.0(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.27)(vue@3.4.27(typescript@5.4.5)))(@vue/test-utils@2.4.6)(h3@1.11.1)(happy-dom@14.12.0)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.44.1)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.2)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.3(vue@3.4.27(typescript@5.4.5)))(vue@3.4.27(typescript@5.4.5)): dependencies: - '@nuxt/test-utils': 3.13.1(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.27)(vue@3.4.27(typescript@5.4.5)))(@vue/test-utils@2.4.6)(h3@1.11.1)(happy-dom@14.12.0)(nitropack@2.9.6(encoding@0.1.13))(playwright-core@1.44.1)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.2)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.3(vue@3.4.27(typescript@5.4.5)))(vue@3.4.27(typescript@5.4.5)) + '@nuxt/test-utils': 3.13.1(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.27)(vue@3.4.27(typescript@5.4.5)))(@vue/test-utils@2.4.6)(h3@1.11.1)(happy-dom@14.12.0)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.44.1)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.2)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.3(vue@3.4.27(typescript@5.4.5)))(vue@3.4.27(typescript@5.4.5)) transitivePeerDependencies: - '@cucumber/cucumber' - '@jest/globals' @@ -15438,6 +15438,7 @@ snapshots: - h3 - happy-dom - jsdom + - magicast - nitropack - playwright-core - vite From c2f2627b990a5c4a99c6e96059c5b13fbd4a678e Mon Sep 17 00:00:00 2001 From: garthreckers Date: Thu, 13 Jun 2024 01:44:30 -0700 Subject: [PATCH 076/580] docs: add warning about bridge migration with `head` (#27575) --- docs/6.bridge/6.meta.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/6.bridge/6.meta.md b/docs/6.bridge/6.meta.md index 6903a774e6..e29ca7995f 100644 --- a/docs/6.bridge/6.meta.md +++ b/docs/6.bridge/6.meta.md @@ -98,6 +98,10 @@ export default defineNuxtComponent({ ``` +::warning +Possible breaking change: `head` receives the nuxt app but cannot access the component instance. If the code in your `head` tries to access the data object through `this` or `this.$data`, you will need to migrate to the `useHead` composable. +:: + ## Title Template If you want to use a function (for full control), then this cannot be set in your nuxt.config, and it is recommended instead to set it within your `/layouts` directory. From d195930aaeff5523721f68bd651f14c6fd5fb3ab Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Thu, 13 Jun 2024 12:51:00 +0100 Subject: [PATCH 077/580] perf(kit): deduplicate layers before resolving config (#27582) --- packages/kit/src/loader/config.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/kit/src/loader/config.ts b/packages/kit/src/loader/config.ts index 3c5894ea68..b2c4d1b883 100644 --- a/packages/kit/src/loader/config.ts +++ b/packages/kit/src/loader/config.ts @@ -42,10 +42,15 @@ export async function loadNuxtConfig (opts: LoadNuxtConfigOptions): Promise[] = [] + const processedLayers = new Set() for (const layer of layers) { // Resolve `rootDir` & `srcDir` of layers layer.config = layer.config || {} - layer.config.rootDir = layer.config.rootDir ?? layer.cwd + layer.config.rootDir = layer.config.rootDir ?? layer.cwd! + + // Only process/resolve layers once + if (processedLayers.has(layer.config.rootDir)) { continue } + processedLayers.add(layer.config.rootDir) // Normalise layer directories layer.config = await applyDefaults(layerSchema, layer.config as NuxtConfig & Record) as unknown as NuxtConfig From cae13aaa24477b0dfa2077f5b3aeb07351eb128e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 13 Jun 2024 13:37:54 +0100 Subject: [PATCH 078/580] chore(deps): update all non-major dependencies (main) (#27573) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/autofix-docs.yml | 2 +- .github/workflows/autofix.yml | 2 +- .github/workflows/benchmark.yml | 2 +- .github/workflows/changelog.yml | 2 +- .github/workflows/check-links.yml | 2 +- .github/workflows/ci.yml | 18 ++-- .github/workflows/dependency-review.yml | 2 +- .github/workflows/docs.yml | 2 +- .github/workflows/introspect.yml | 2 +- .github/workflows/release-pr.yml | 2 +- .github/workflows/release.yml | 2 +- .github/workflows/reproduire.yml | 2 +- .github/workflows/scorecards.yml | 2 +- package.json | 4 +- packages/nuxt/package.json | 6 +- packages/schema/package.json | 2 +- pnpm-lock.yaml | 112 ++++++++++++------------ 17 files changed, 83 insertions(+), 83 deletions(-) diff --git a/.github/workflows/autofix-docs.yml b/.github/workflows/autofix-docs.yml index edc59497ef..d90a8e2f9e 100644 --- a/.github/workflows/autofix-docs.yml +++ b/.github/workflows/autofix-docs.yml @@ -17,7 +17,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 + - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 - run: corepack enable - uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 with: diff --git a/.github/workflows/autofix.yml b/.github/workflows/autofix.yml index 4af68cee5e..03d5a654f3 100644 --- a/.github/workflows/autofix.yml +++ b/.github/workflows/autofix.yml @@ -13,7 +13,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 + - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 - run: corepack enable - uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 with: diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml index f3bc4aa393..83645d7c3e 100644 --- a/.github/workflows/benchmark.yml +++ b/.github/workflows/benchmark.yml @@ -29,7 +29,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 + - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 - run: corepack enable - uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 with: diff --git a/.github/workflows/changelog.yml b/.github/workflows/changelog.yml index b2e4b57ea5..492a0fb118 100644 --- a/.github/workflows/changelog.yml +++ b/.github/workflows/changelog.yml @@ -20,7 +20,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 + - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 with: fetch-depth: 0 - run: corepack enable diff --git a/.github/workflows/check-links.yml b/.github/workflows/check-links.yml index 4a81648ec0..14a3db9075 100644 --- a/.github/workflows/check-links.yml +++ b/.github/workflows/check-links.yml @@ -25,7 +25,7 @@ jobs: restore-keys: cache-lychee- # check links with Lychee - - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 + - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 - name: Lychee link checker uses: lycheeverse/lychee-action@25a231001d1723960a301b7d4c82884dc7ef857d # for v1.8.0 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7ea1234165..2a1e733ab1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -35,7 +35,7 @@ jobs: timeout-minutes: 10 steps: - - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 + - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 - run: corepack enable - uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 with: @@ -72,7 +72,7 @@ jobs: - build steps: - - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 + - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 - run: corepack enable - uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 with: @@ -111,7 +111,7 @@ jobs: module: ["bundler", "node"] steps: - - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 + - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 - run: corepack enable - uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 with: @@ -142,7 +142,7 @@ jobs: timeout-minutes: 10 steps: - - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 + - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 - run: corepack enable - uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 with: @@ -166,7 +166,7 @@ jobs: needs: - build steps: - - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 + - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 - run: corepack enable - uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 with: @@ -218,7 +218,7 @@ jobs: timeout-minutes: 15 steps: - - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 + - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 - run: corepack enable - uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 with: @@ -248,7 +248,7 @@ jobs: TEST_PAYLOAD: ${{ matrix.payload }} SKIP_BUNDLE_SIZE: ${{ github.event_name != 'push' || matrix.env == 'dev' || matrix.builder == 'webpack' || matrix.context == 'default' || matrix.payload == 'js' || runner.os == 'Windows' }} - - uses: codecov/codecov-action@125fc84a9a348dbcf27191600683ec096ec9021c # v4.4.1 + - uses: codecov/codecov-action@e28ff129e5465c2c0dcc6f003fc735cb6ae0c673 # v4.5.0 if: github.event_name != 'push' && matrix.env == 'built' && matrix.builder == 'vite' && matrix.context == 'default' && matrix.os == 'ubuntu-latest' && matrix.manifest == 'manifest-on' with: token: ${{ secrets.CODECOV_TOKEN }} @@ -270,7 +270,7 @@ jobs: timeout-minutes: 20 steps: - - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 + - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 with: fetch-depth: 0 - run: corepack enable @@ -309,7 +309,7 @@ jobs: timeout-minutes: 20 steps: - - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 + - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 with: fetch-depth: 0 - run: corepack enable diff --git a/.github/workflows/dependency-review.yml b/.github/workflows/dependency-review.yml index 7c6cfb6746..7d1ac0d64a 100644 --- a/.github/workflows/dependency-review.yml +++ b/.github/workflows/dependency-review.yml @@ -17,6 +17,6 @@ jobs: runs-on: ubuntu-latest steps: - name: 'Checkout Repository' - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 - name: 'Dependency Review' uses: actions/dependency-review-action@72eb03d02c7872a771aacd928f3123ac62ad6d3a # v4.3.3 diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index f2bdb9b4f1..624cafa244 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -20,7 +20,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 + - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 - run: corepack enable - uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 with: diff --git a/.github/workflows/introspect.yml b/.github/workflows/introspect.yml index 06f7994104..6b7f4fd586 100644 --- a/.github/workflows/introspect.yml +++ b/.github/workflows/introspect.yml @@ -21,7 +21,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 + - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 # From https://github.com/rhysd/actionlint/blob/main/docs/usage.md#use-actionlint-on-github-actions - name: Check workflow files run: | diff --git a/.github/workflows/release-pr.yml b/.github/workflows/release-pr.yml index 5f128f7df6..7a45a29223 100644 --- a/.github/workflows/release-pr.yml +++ b/.github/workflows/release-pr.yml @@ -29,7 +29,7 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 + - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 with: ref: ${{ github.event.issue.pull_request.head.sha }} fetch-depth: 0 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d975a363f3..727d0669ea 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -17,7 +17,7 @@ jobs: runs-on: ubuntu-latest timeout-minutes: 20 steps: - - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 + - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 with: fetch-depth: 0 - run: corepack enable diff --git a/.github/workflows/reproduire.yml b/.github/workflows/reproduire.yml index b001dd9fca..e38add83d7 100644 --- a/.github/workflows/reproduire.yml +++ b/.github/workflows/reproduire.yml @@ -10,7 +10,7 @@ jobs: reproduire: runs-on: ubuntu-latest steps: - - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 + - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 - uses: Hebilicious/reproduire@4b686ae9cbb72dad60f001d278b6e3b2ce40a9ac # v0.0.9-mp with: label: needs reproduction diff --git a/.github/workflows/scorecards.yml b/.github/workflows/scorecards.yml index 1f091275de..9e97020891 100644 --- a/.github/workflows/scorecards.yml +++ b/.github/workflows/scorecards.yml @@ -32,7 +32,7 @@ jobs: steps: - name: "Checkout code" - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 with: persist-credentials: false diff --git a/package.json b/package.json index eec7837f9a..ed71c0d1ec 100644 --- a/package.json +++ b/package.json @@ -56,7 +56,7 @@ "@types/fs-extra": "11.0.4", "@types/node": "20.14.2", "@types/semver": "7.5.8", - "@unhead/schema": "1.9.12", + "@unhead/schema": "1.9.13", "@vitejs/plugin-vue": "5.0.4", "@vitest/coverage-v8": "1.6.0", "@vue/test-utils": "2.4.6", @@ -66,7 +66,7 @@ "devalue": "5.0.0", "eslint": "9.4.0", "eslint-plugin-no-only-tests": "3.1.0", - "eslint-plugin-perfectionist": "2.10.0", + "eslint-plugin-perfectionist": "2.11.0", "eslint-typegen": "0.2.4", "execa": "9.2.0", "fs-extra": "11.2.0", diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index 7f7182a30f..86c3384be6 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -65,9 +65,9 @@ "@nuxt/schema": "workspace:*", "@nuxt/telemetry": "^2.5.4", "@nuxt/vite-builder": "workspace:*", - "@unhead/dom": "^1.9.12", - "@unhead/ssr": "^1.9.12", - "@unhead/vue": "^1.9.12", + "@unhead/dom": "^1.9.13", + "@unhead/ssr": "^1.9.13", + "@unhead/vue": "^1.9.13", "@vue/shared": "^3.4.27", "acorn": "8.11.3", "c12": "^1.11.1", diff --git a/packages/schema/package.json b/packages/schema/package.json index 3d1c9b4594..c68a38367e 100644 --- a/packages/schema/package.json +++ b/packages/schema/package.json @@ -39,7 +39,7 @@ "@types/file-loader": "5.0.4", "@types/pug": "2.0.10", "@types/sass-loader": "8.0.8", - "@unhead/schema": "1.9.12", + "@unhead/schema": "1.9.13", "@vitejs/plugin-vue": "5.0.4", "@vitejs/plugin-vue-jsx": "4.0.0", "@vue/compiler-core": "3.4.27", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1a2b693dd6..1b94d1c395 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -51,8 +51,8 @@ importers: specifier: 7.5.8 version: 7.5.8 '@unhead/schema': - specifier: 1.9.12 - version: 1.9.12 + specifier: 1.9.13 + version: 1.9.13 '@vitejs/plugin-vue': specifier: 5.0.4 version: 5.0.4(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)) @@ -81,8 +81,8 @@ importers: specifier: 3.1.0 version: 3.1.0 eslint-plugin-perfectionist: - specifier: 2.10.0 - version: 2.10.0(eslint@9.4.0)(typescript@5.4.5)(vue-eslint-parser@9.4.2(eslint@9.4.0)) + specifier: 2.11.0 + version: 2.11.0(eslint@9.4.0)(typescript@5.4.5)(vue-eslint-parser@9.4.2(eslint@9.4.0)) eslint-typegen: specifier: 0.2.4 version: 0.2.4(eslint@9.4.0) @@ -274,14 +274,14 @@ importers: specifier: ^14.18.0 || >=16.10.0 version: 20.14.2 '@unhead/dom': - specifier: ^1.9.12 - version: 1.9.12 + specifier: ^1.9.13 + version: 1.9.13 '@unhead/ssr': - specifier: ^1.9.12 - version: 1.9.12 + specifier: ^1.9.13 + version: 1.9.13 '@unhead/vue': - specifier: ^1.9.12 - version: 1.9.12(vue@3.4.27(typescript@5.4.5)) + specifier: ^1.9.13 + version: 1.9.13(vue@3.4.27(typescript@5.4.5)) '@vue/shared': specifier: ^3.4.27 version: 3.4.27 @@ -513,8 +513,8 @@ importers: specifier: 8.0.8 version: 8.0.8 '@unhead/schema': - specifier: 1.9.12 - version: 1.9.12 + specifier: 1.9.13 + version: 1.9.13 '@vitejs/plugin-vue': specifier: 5.0.4 version: 5.0.4(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)) @@ -918,7 +918,7 @@ importers: dependencies: '@unhead/shared': specifier: latest - version: 1.9.12 + version: 1.9.13 '@vue/devtools-api': specifier: latest version: 6.6.3 @@ -930,7 +930,7 @@ importers: version: link:../packages/nuxt unhead: specifier: latest - version: 1.9.12 + version: 1.9.13 vue: specifier: 3.4.27 version: 3.4.27(typescript@5.4.5) @@ -946,10 +946,10 @@ importers: devDependencies: '@unhead/dom': specifier: latest - version: 1.9.12 + version: 1.9.13 '@unhead/shared': specifier: latest - version: 1.9.12 + version: 1.9.13 '@vue/devtools-api': specifier: latest version: 6.6.3 @@ -964,7 +964,7 @@ importers: version: 1.5.3 unhead: specifier: latest - version: 1.9.12 + version: 1.9.13 unplugin: specifier: latest version: 1.10.1 @@ -1020,7 +1020,7 @@ importers: devDependencies: '@unhead/shared': specifier: latest - version: 1.9.12 + version: 1.9.13 '@vue/devtools-api': specifier: latest version: 6.6.3 @@ -1029,7 +1029,7 @@ importers: version: 3.4.27 unhead: specifier: latest - version: 1.9.12 + version: 1.9.13 test/fixtures/suspense: dependencies: @@ -1042,7 +1042,7 @@ importers: devDependencies: '@unhead/shared': specifier: latest - version: 1.9.12 + version: 1.9.13 '@vue/devtools-api': specifier: latest version: 6.6.3 @@ -1054,7 +1054,7 @@ importers: version: 5.4.5 unhead: specifier: latest - version: 1.9.12 + version: 1.9.13 packages: @@ -2795,20 +2795,20 @@ packages: '@ungap/structured-clone@1.2.0': resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - '@unhead/dom@1.9.12': - resolution: {integrity: sha512-3MY1TbZmEjGNZapi3wvJW0vWNS2CLKHt7/m57sScDHCNvNBe1mTwrIOhtZFDgAndhml2EVQ68RMa0Vhum/M+cw==} + '@unhead/dom@1.9.13': + resolution: {integrity: sha512-Fzc929W+5f88c90kn9aKs7EbgRBhphArMqBbifre134GWgrgDVR0odoadNa7i9eH4roPEDE1FIGcKVWuxOIHbg==} - '@unhead/schema@1.9.12': - resolution: {integrity: sha512-ue2FKyIZKsuZDpWJBMlBGwMm4s+vFeU3NUWsNt8Z+2JkOUIqO/VG43LxNgY1M595bOS71Gdxk+G9VtzfKJ5uEA==} + '@unhead/schema@1.9.13': + resolution: {integrity: sha512-keOfTXC/tI21fURcEszBHgGvIg2AszQVQEXBG5BYgC2TQph25Bmv7Fk8W2ogFmj+DdZmFiDnSJdz/NKv3bqnTQ==} - '@unhead/shared@1.9.12': - resolution: {integrity: sha512-72wlLXG3FP3sXUrwd42Uv8jYpHSg4R6IFJcsl+QisRjKM89JnjOFSw1DqWO4IOftW5xOxS4J5v7SQyJ4NJo7Bw==} + '@unhead/shared@1.9.13': + resolution: {integrity: sha512-zNlJ2i5WonQZu/UMHJJzYMyBLhlCCxj1JxHL6lEG+Z6XiERfJDFr8mEAsQY7M2KrGAHR+WRBxNVoLw03j/kfrA==} - '@unhead/ssr@1.9.12': - resolution: {integrity: sha512-EbUT55CzAYsXL/A1hjxpDoK0EitV3n1YZVWHfdE+I8Qe13EL/tnQwco2AYILjb1gtA4s70n3PjTNGeJ17cHPnw==} + '@unhead/ssr@1.9.13': + resolution: {integrity: sha512-YjYrZ3u9uNDzrMybWMVFE0bDcMWBV6Dyqba2Sjq6x84NBRBpZfcUrc7v58iwp5m4XBNfyPs1+r5tOSV0qCiGww==} - '@unhead/vue@1.9.12': - resolution: {integrity: sha512-keE4EuswgzCqVU7zmZprU+ToMvNWc3s8NoLreH5AtJd2u0FgBygD8sxRVyEnZw1KwFYOJ2C7yD2TChSKZioPGQ==} + '@unhead/vue@1.9.13': + resolution: {integrity: sha512-vIMNrB0kZ/3zalmE4j64eBLTkXkrcms78YbptXLvfnnQ9BLGiwsSuB3c0e+4S5Cn1dpMqUTfg5e/hCQYGDMhEA==} peerDependencies: vue: 3.4.27 @@ -4261,13 +4261,13 @@ packages: resolution: {integrity: sha512-Lf4YW/bL6Un1R6A76pRZyE1dl1vr31G/ev8UzIc/geCgFWyrKil8hVjYqWVKGB/UIGmb6Slzs9T0wNezdSVegw==} engines: {node: '>=5.0.0'} - eslint-plugin-perfectionist@2.10.0: - resolution: {integrity: sha512-P+tdrkHeMWBc55+DZsoDOAftV1WCsEoHaKm6JC7zajFus/syfT4vUPBFb3atGFSuyaVnGQGHlcKpP9X3Q0gH/w==} + eslint-plugin-perfectionist@2.11.0: + resolution: {integrity: sha512-XrtBtiu5rbQv88gl+1e2RQud9te9luYNvKIgM9emttQ2zutHPzY/AQUucwxscDKV4qlTkvLTxjOFvxqeDpPorw==} peerDependencies: - astro-eslint-parser: ^0.16.0 + astro-eslint-parser: ^1.0.2 eslint: '>=8.0.0' svelte: '>=3.0.0' - svelte-eslint-parser: ^0.33.0 + svelte-eslint-parser: ^0.37.0 vue-eslint-parser: '>=9.0.0' peerDependenciesMeta: astro-eslint-parser: @@ -7165,8 +7165,8 @@ packages: unenv@1.9.0: resolution: {integrity: sha512-QKnFNznRxmbOF1hDgzpqrlIf6NC5sbZ2OJ+5Wl3OX8uM+LUJXbj4TXvLJCtwbPTmbMHCLIz6JLKNinNsMShK9g==} - unhead@1.9.12: - resolution: {integrity: sha512-s6VxcTV45hy8c/IioKQOonFnAO+kBOSpgDfqEHhnU0YVSQYaRPEp9pzW1qSPf0lx+bg9RKeOQyNNbSGGUP26aQ==} + unhead@1.9.13: + resolution: {integrity: sha512-r7O7s5nw1vUrolueEitawh1HnrzXoekHPM1gsYMF3Tu0A2SzochDJw/1F+Nhu3e073rJ9cUGZqobZY3+RZS4Ew==} unicode-emoji-modifier-base@1.0.0: resolution: {integrity: sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==} @@ -8913,7 +8913,7 @@ snapshots: '@types/stripe-v3': 3.1.33 '@types/vimeo__player': 2.18.3 '@types/youtube': 0.0.50 - '@unhead/vue': 1.9.12(vue@3.4.27(typescript@5.4.5)) + '@unhead/vue': 1.9.13(vue@3.4.27(typescript@5.4.5)) '@vueuse/core': 10.10.1(vue@3.4.27(typescript@5.4.5)) consola: 3.2.3 defu: 6.1.4 @@ -9700,31 +9700,31 @@ snapshots: '@ungap/structured-clone@1.2.0': {} - '@unhead/dom@1.9.12': + '@unhead/dom@1.9.13': dependencies: - '@unhead/schema': 1.9.12 - '@unhead/shared': 1.9.12 + '@unhead/schema': 1.9.13 + '@unhead/shared': 1.9.13 - '@unhead/schema@1.9.12': + '@unhead/schema@1.9.13': dependencies: hookable: 5.5.3 zhead: 2.2.4 - '@unhead/shared@1.9.12': + '@unhead/shared@1.9.13': dependencies: - '@unhead/schema': 1.9.12 + '@unhead/schema': 1.9.13 - '@unhead/ssr@1.9.12': + '@unhead/ssr@1.9.13': dependencies: - '@unhead/schema': 1.9.12 - '@unhead/shared': 1.9.12 + '@unhead/schema': 1.9.13 + '@unhead/shared': 1.9.13 - '@unhead/vue@1.9.12(vue@3.4.27(typescript@5.4.5))': + '@unhead/vue@1.9.13(vue@3.4.27(typescript@5.4.5))': dependencies: - '@unhead/schema': 1.9.12 - '@unhead/shared': 1.9.12 + '@unhead/schema': 1.9.13 + '@unhead/shared': 1.9.13 hookable: 5.5.3 - unhead: 1.9.12 + unhead: 1.9.13 vue: 3.4.27(typescript@5.4.5) '@unocss/astro@0.60.4(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))': @@ -11625,7 +11625,7 @@ snapshots: eslint-plugin-no-only-tests@3.1.0: {} - eslint-plugin-perfectionist@2.10.0(eslint@9.4.0)(typescript@5.4.5)(vue-eslint-parser@9.4.2(eslint@9.4.0)): + eslint-plugin-perfectionist@2.11.0(eslint@9.4.0)(typescript@5.4.5)(vue-eslint-parser@9.4.2(eslint@9.4.0)): dependencies: '@typescript-eslint/utils': 7.9.0(eslint@9.4.0)(typescript@5.4.5) eslint: 9.4.0 @@ -15068,11 +15068,11 @@ snapshots: node-fetch-native: 1.6.4 pathe: 1.1.2 - unhead@1.9.12: + unhead@1.9.13: dependencies: - '@unhead/dom': 1.9.12 - '@unhead/schema': 1.9.12 - '@unhead/shared': 1.9.12 + '@unhead/dom': 1.9.13 + '@unhead/schema': 1.9.13 + '@unhead/shared': 1.9.13 hookable: 5.5.3 unicode-emoji-modifier-base@1.0.0: {} From d202669611d3d1e8f8078e6d7f2e1f7552bae9ba Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Thu, 13 Jun 2024 13:54:49 +0100 Subject: [PATCH 079/580] ci: improve generated changelog --- scripts/update-changelog.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/scripts/update-changelog.ts b/scripts/update-changelog.ts index 65ccb9a2f1..9dab8a8b94 100644 --- a/scripts/update-changelog.ts +++ b/scripts/update-changelog.ts @@ -13,9 +13,9 @@ async function main () { const commits = await getLatestCommits().then(commits => commits.filter( c => config.types[c.type] && !(c.type === 'chore' && c.scope === 'deps' && !c.isBreaking), )) - const bumpType = await determineBumpType() + const bumpType = await determineBumpType() || 'patch' - const newVersion = inc(workspace.find('nuxt').data.version, bumpType || 'patch') + const newVersion = inc(workspace.find('nuxt').data.version, bumpType) const changelog = await generateMarkDown(commits, config) // Create and push a branch with bumped versions if it has not already been created @@ -44,7 +44,8 @@ async function main () { changelog .replace(/^## v.*\n/, '') .replace(`...${releaseBranch}`, `...v${newVersion}`) - .replace(/### ❤️ Contributors[\s\S]*$/, ''), + .replace(/### ❤️ Contributors[\s\S]*$/, '') + .replace(/[\n\r]+/g, '\n'), '### ❤️ Contributors', contributors.map(c => `- ${c.name} (@${c.username})`).join('\n'), ].join('\n') From ab887d90d71ea0d4e977574263d3b8a112f07cef Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Thu, 13 Jun 2024 14:44:08 +0100 Subject: [PATCH 080/580] fix(nuxt): handle tsx code when extracting pageMeta/routeRules (#27583) --- packages/nuxt/src/pages/route-rules.ts | 5 +++-- packages/nuxt/src/pages/utils.ts | 15 +++++++++------ test/fixtures/basic/pages/tsx-page-meta.vue | 9 +++++++++ 3 files changed, 21 insertions(+), 8 deletions(-) create mode 100644 test/fixtures/basic/pages/tsx-page-meta.vue diff --git a/packages/nuxt/src/pages/route-rules.ts b/packages/nuxt/src/pages/route-rules.ts index fef075e03e..24acf217b1 100644 --- a/packages/nuxt/src/pages/route-rules.ts +++ b/packages/nuxt/src/pages/route-rules.ts @@ -18,11 +18,12 @@ export async function extractRouteRules (code: string): Promise]*>([\s\S]*?)<\/script[^>]*>/i +const SFC_SCRIPT_RE = /[^>]*)>(?[\s\S]*?)<\/script[^>]*>/i export function extractScriptContent (html: string) { - const match = html.match(SFC_SCRIPT_RE) + const groups = html.match(SFC_SCRIPT_RE)?.groups || {} - if (match && match[1]) { - return match[1].trim() + if (groups.content) { + return { + loader: groups.attrs.includes('tsx') ? 'tsx' : 'ts', + code: groups.content.trim(), + } as const } return null @@ -185,12 +188,12 @@ async function getRouteMeta (contents: string, absolutePath: string): Promise + + + + From 452d43ab23243628b8a1c23aefb1f3d48bb191bd Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 13 Jun 2024 15:19:05 +0100 Subject: [PATCH 081/580] chore(deps): update dependency vite to v5.3.0 (main) (#27586) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- packages/kit/package.json | 2 +- packages/nuxt/package.json | 2 +- packages/schema/package.json | 2 +- packages/ui-templates/package.json | 2 +- packages/vite/package.json | 2 +- pnpm-lock.yaml | 212 ++++++++++++++--------------- 7 files changed, 112 insertions(+), 112 deletions(-) diff --git a/package.json b/package.json index ed71c0d1ec..03e833fefe 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,7 @@ "magic-string": "^0.30.10", "nuxt": "workspace:*", "rollup": "^4.18.0", - "vite": "5.2.13", + "vite": "5.3.0", "vue": "3.4.27" }, "devDependencies": { diff --git a/packages/kit/package.json b/packages/kit/package.json index 576702fa62..310931589b 100644 --- a/packages/kit/package.json +++ b/packages/kit/package.json @@ -54,7 +54,7 @@ "lodash-es": "4.17.21", "nitropack": "2.9.6", "unbuild": "latest", - "vite": "5.2.13", + "vite": "5.3.0", "vitest": "1.6.0", "webpack": "5.92.0" }, diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index 86c3384be6..bc9c2b3c14 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -126,7 +126,7 @@ "@vitejs/plugin-vue": "5.0.4", "@vue/compiler-sfc": "3.4.27", "unbuild": "latest", - "vite": "5.2.13", + "vite": "5.3.0", "vitest": "1.6.0" }, "peerDependencies": { diff --git a/packages/schema/package.json b/packages/schema/package.json index c68a38367e..d295d4e3df 100644 --- a/packages/schema/package.json +++ b/packages/schema/package.json @@ -54,7 +54,7 @@ "unbuild": "latest", "unctx": "2.3.1", "unenv": "1.9.0", - "vite": "5.2.13", + "vite": "5.3.0", "vue": "3.4.27", "vue-bundle-renderer": "2.1.0", "vue-loader": "17.4.2", diff --git a/packages/ui-templates/package.json b/packages/ui-templates/package.json index 0cb9fec044..efa7de45e7 100644 --- a/packages/ui-templates/package.json +++ b/packages/ui-templates/package.json @@ -33,6 +33,6 @@ "prettier": "3.3.2", "scule": "1.3.0", "unocss": "0.61.0", - "vite": "5.2.13" + "vite": "5.3.0" } } diff --git a/packages/vite/package.json b/packages/vite/package.json index 39dfbfe91f..d2b64f1169 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -62,7 +62,7 @@ "ufo": "^1.5.3", "unenv": "^1.9.0", "unplugin": "^1.10.1", - "vite": "^5.2.13", + "vite": "^5.3.0", "vite-node": "^1.6.0", "vite-plugin-checker": "^0.6.4", "vue-bundle-renderer": "^2.1.0" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1b94d1c395..f38e4b444e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13,7 +13,7 @@ overrides: magic-string: ^0.30.10 nuxt: workspace:* rollup: ^4.18.0 - vite: 5.2.13 + vite: 5.3.0 vue: 3.4.27 importers: @@ -31,7 +31,7 @@ importers: version: link:packages/kit '@nuxt/test-utils': specifier: 3.13.1 - version: 3.13.1(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.27)(vue@3.4.27(typescript@5.4.5)))(@vue/test-utils@2.4.6)(h3@1.11.1)(happy-dom@14.12.0)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.44.1)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.2)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.3(vue@3.4.27(typescript@5.4.5)))(vue@3.4.27(typescript@5.4.5)) + version: 3.13.1(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.27)(vue@3.4.27(typescript@5.4.5)))(@vue/test-utils@2.4.6)(h3@1.11.1)(happy-dom@14.12.0)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.44.1)(vite@5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.2)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.3(vue@3.4.27(typescript@5.4.5)))(vue@3.4.27(typescript@5.4.5)) '@nuxt/webpack-builder': specifier: workspace:* version: link:packages/webpack @@ -55,7 +55,7 @@ importers: version: 1.9.13 '@vitejs/plugin-vue': specifier: 5.0.4 - version: 5.0.4(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)) + version: 5.0.4(vite@5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)) '@vitest/coverage-v8': specifier: 1.6.0 version: 1.6.0(vitest@1.6.0(@types/node@20.14.2)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0)) @@ -148,7 +148,7 @@ importers: version: 1.6.0(@types/node@20.14.2)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0) vitest-environment-nuxt: specifier: 1.0.0 - version: 1.0.0(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.27)(vue@3.4.27(typescript@5.4.5)))(@vue/test-utils@2.4.6)(h3@1.11.1)(happy-dom@14.12.0)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.44.1)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.2)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.3(vue@3.4.27(typescript@5.4.5)))(vue@3.4.27(typescript@5.4.5)) + version: 1.0.0(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.27)(vue@3.4.27(typescript@5.4.5)))(@vue/test-utils@2.4.6)(h3@1.11.1)(happy-dom@14.12.0)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.44.1)(vite@5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.2)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.3(vue@3.4.27(typescript@5.4.5)))(vue@3.4.27(typescript@5.4.5)) vue: specifier: 3.4.27 version: 3.4.27(typescript@5.4.5) @@ -241,8 +241,8 @@ importers: specifier: latest version: 2.0.0(sass@1.69.4)(typescript@5.4.5) vite: - specifier: 5.2.13 - version: 5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) + specifier: 5.3.0 + version: 5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) vitest: specifier: 1.6.0 version: 1.6.0(@types/node@20.14.2)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0) @@ -257,7 +257,7 @@ importers: version: 2.0.2 '@nuxt/devtools': specifier: ^1.3.3 - version: 1.3.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)) + version: 1.3.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)) '@nuxt/kit': specifier: workspace:* version: link:../kit @@ -429,7 +429,7 @@ importers: devDependencies: '@nuxt/scripts': specifier: 0.5.1 - version: 0.5.1(@nuxt/devtools@1.3.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)))(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(@vue/compiler-core@3.4.27)(ioredis@5.3.2)(nuxt@packages+nuxt)(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5))(webpack@5.92.0(esbuild@0.21.5)) + version: 0.5.1(@nuxt/devtools@1.3.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)))(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(@vue/compiler-core@3.4.27)(ioredis@5.3.2)(nuxt@packages+nuxt)(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5))(webpack@5.92.0(esbuild@0.21.5)) '@nuxt/ui-templates': specifier: workspace:* version: link:../ui-templates @@ -444,7 +444,7 @@ importers: version: 11.0.4 '@vitejs/plugin-vue': specifier: 5.0.4 - version: 5.0.4(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)) + version: 5.0.4(vite@5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)) '@vue/compiler-sfc': specifier: 3.4.27 version: 3.4.27 @@ -452,8 +452,8 @@ importers: specifier: latest version: 2.0.0(sass@1.69.4)(typescript@5.4.5) vite: - specifier: 5.2.13 - version: 5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) + specifier: 5.3.0 + version: 5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) vitest: specifier: 1.6.0 version: 1.6.0(@types/node@20.14.2)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0) @@ -517,10 +517,10 @@ importers: version: 1.9.13 '@vitejs/plugin-vue': specifier: 5.0.4 - version: 5.0.4(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)) + version: 5.0.4(vite@5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)) '@vitejs/plugin-vue-jsx': specifier: 4.0.0 - version: 4.0.0(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)) + version: 4.0.0(vite@5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)) '@vue/compiler-core': specifier: 3.4.27 version: 3.4.27 @@ -558,8 +558,8 @@ importers: specifier: 1.9.0 version: 1.9.0 vite: - specifier: 5.2.13 - version: 5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) + specifier: 5.3.0 + version: 5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) vue: specifier: 3.4.27 version: 3.4.27(typescript@5.4.5) @@ -622,10 +622,10 @@ importers: version: 1.3.0 unocss: specifier: 0.61.0 - version: 0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) + version: 0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) vite: - specifier: 5.2.13 - version: 5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) + specifier: 5.3.0 + version: 5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) packages/vite: dependencies: @@ -637,10 +637,10 @@ importers: version: 5.0.7(rollup@4.18.0) '@vitejs/plugin-vue': specifier: ^5.0.4 - version: 5.0.4(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)) + version: 5.0.4(vite@5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)) '@vitejs/plugin-vue-jsx': specifier: ^4.0.0 - version: 4.0.0(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)) + version: 4.0.0(vite@5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)) autoprefixer: specifier: ^10.4.19 version: 10.4.19(postcss@8.4.38) @@ -720,14 +720,14 @@ importers: specifier: ^1.10.1 version: 1.10.1 vite: - specifier: 5.2.13 - version: 5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) + specifier: 5.3.0 + version: 5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) vite-node: specifier: ^1.6.0 version: 1.6.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) vite-plugin-checker: specifier: ^0.6.4 - version: 0.6.4(eslint@9.4.0)(optionator@0.9.3)(typescript@5.4.5)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue-tsc@2.0.21(typescript@5.4.5)) + version: 0.6.4(eslint@9.4.0)(optionator@0.9.3)(typescript@5.4.5)(vite@5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue-tsc@2.0.21(typescript@5.4.5)) vue-bundle-renderer: specifier: ^2.1.0 version: 2.1.0 @@ -2111,7 +2111,7 @@ packages: resolution: {integrity: sha512-YkcuSirzVVi36gWjIl9sJ4lsuiuQiIStY3upLy829zMTIXXeF8yUEBexKL6zHD3UPqCigoF7IuovnfLw78BQ9g==} peerDependencies: nuxt: workspace:* - vite: 5.2.13 + vite: 5.3.0 '@nuxt/devtools-ui-kit@1.3.3': resolution: {integrity: sha512-vM9dcb/CLXf1big6SmhVL0mh/JzNtZaJwHMYDd3vqv7jAedGuNfURDSGGVYQRFlSFisA3Cn0TnjDDs+dPrGuAA==} @@ -2127,7 +2127,7 @@ packages: hasBin: true peerDependencies: nuxt: workspace:* - vite: 5.2.13 + vite: 5.3.0 '@nuxt/eslint-config@0.3.13': resolution: {integrity: sha512-xnMkcrz9vFjtIuKsfOPhNOKFVD51JZClj/16raciHVOK9eiqZuQjbxaf60b7ffk7cmD1EDhlQhbSxaLAJm/QYg==} @@ -2167,7 +2167,7 @@ packages: jsdom: ^22.0.0 || ^23.0.0 || ^24.0.0 nitropack: '*' playwright-core: ^1.43.1 - vite: 5.2.13 + vite: 5.3.0 vitest: ^0.34.6 || ^1.0.0 vue: 3.4.27 vue-router: ^4.0.0 @@ -2815,7 +2815,7 @@ packages: '@unocss/astro@0.60.4': resolution: {integrity: sha512-mfWiEVCUP00gxrMewwPfnTuw+ur5b6uIBRH2tIGkvfI21rLyZw8TIF08w7USz9C/47rvzsixBtCqq7v0g3Tw9w==} peerDependencies: - vite: 5.2.13 + vite: 5.3.0 peerDependenciesMeta: vite: optional: true @@ -2823,7 +2823,7 @@ packages: '@unocss/astro@0.61.0': resolution: {integrity: sha512-cbgztX/to5rMhAtEGCcR3ClMlK9F+lPxq21A72qsbWVQjiKa7W4O7qKBmUKPYsWRzJEJtdyN11A65H2037aKQw==} peerDependencies: - vite: 5.2.13 + vite: 5.3.0 peerDependenciesMeta: vite: optional: true @@ -2980,12 +2980,12 @@ packages: '@unocss/vite@0.60.4': resolution: {integrity: sha512-af9hhtW11geF56cotKUE16Fr+FirTdV/Al/usjKJ6P5hnCEQnqSHXQDFXL5Y6vXwcvLDmOhHYNrVR8duKgC8Mw==} peerDependencies: - vite: 5.2.13 + vite: 5.3.0 '@unocss/vite@0.61.0': resolution: {integrity: sha512-gjxLJrja1hqDwdd8z3QvzfMCcKppGqiL2+A6aHwG/AXfEmZMydA50U7VvJK7Wx8/Enm26G6JQrtGrpu+kK3QpQ==} peerDependencies: - vite: 5.2.13 + vite: 5.3.0 '@unocss/webpack@0.60.4': resolution: {integrity: sha512-TcPuiAZZO+a+xiahrCm7eEHlP8o667n+CWv+kpz4bidY5V8Xyxs1MjzJAPVOk8Kwz86HvQZyf2CG+3powNTwKA==} @@ -3001,14 +3001,14 @@ packages: resolution: {integrity: sha512-A+6wL2AdQhDsLsDnY+2v4rRDI1HLJGIMc97a8FURO9tqKsH5QvjWrzsa5DH3NlZsM742W2wODl2fF+bfcTWtXw==} engines: {node: ^18.0.0 || >=20.0.0} peerDependencies: - vite: 5.2.13 + vite: 5.3.0 vue: 3.4.27 '@vitejs/plugin-vue@5.0.4': resolution: {integrity: sha512-WS3hevEszI6CEVEx28F8RjTX97k3KsrcY6kvTg7+Whm5y3oYvcqzVeGCU3hxSAn4uY2CLCkeokkGKpoctccilQ==} engines: {node: ^18.0.0 || >=20.0.0} peerDependencies: - vite: 5.2.13 + vite: 5.3.0 vue: 3.4.27 '@vitest/coverage-v8@1.6.0': @@ -7217,7 +7217,7 @@ packages: engines: {node: '>=14'} peerDependencies: '@unocss/webpack': 0.60.4 - vite: 5.2.13 + vite: 5.3.0 peerDependenciesMeta: '@unocss/webpack': optional: true @@ -7229,7 +7229,7 @@ packages: engines: {node: '>=14'} peerDependencies: '@unocss/webpack': 0.61.0 - vite: 5.2.13 + vite: 5.3.0 peerDependenciesMeta: '@unocss/webpack': optional: true @@ -7365,7 +7365,7 @@ packages: vite-hot-client@0.2.3: resolution: {integrity: sha512-rOGAV7rUlUHX89fP2p2v0A2WWvV3QMX2UYq0fRqsWSvFvev4atHWqjwGoKaZT1VTKyLGk533ecu3eyd0o59CAg==} peerDependencies: - vite: 5.2.13 + vite: 5.3.0 vite-node@1.6.0: resolution: {integrity: sha512-de6HJgzC+TFzOu0NTC4RAIsyf/DY/ibWDYQUcuEA84EMHhcefTUGkjFHKKEJhQN4A+6I0u++kr3l36ZF2d7XRw==} @@ -7381,7 +7381,7 @@ packages: optionator: ^0.9.1 stylelint: '>=13' typescript: '*' - vite: 5.2.13 + vite: 5.3.0 vls: '*' vti: '*' vue-tsc: '>=1.3.9' @@ -7408,7 +7408,7 @@ packages: engines: {node: '>=14'} peerDependencies: '@nuxt/kit': '*' - vite: 5.2.13 + vite: 5.3.0 peerDependenciesMeta: '@nuxt/kit': optional: true @@ -7416,10 +7416,10 @@ packages: vite-plugin-vue-inspector@5.1.0: resolution: {integrity: sha512-yIw9dvBz9nQW7DPfbJtUVW6JTnt67hqTPRnTwT2CZWMqDvISyQHRjgKl32nlMh1DRH+92533Sv6t59pWMLUCWA==} peerDependencies: - vite: 5.2.13 + vite: 5.3.0 - vite@5.2.13: - resolution: {integrity: sha512-SSq1noJfY9pR3I1TUENL3rQYDQCFqgD+lM6fTRAM8Nv6Lsg5hDLaXkjETVeBt+7vZBCMoibD+6IWnT2mJ+Zb/A==} + vite@5.3.0: + resolution: {integrity: sha512-hA6vAVK977NyW1Qw+fLvqSo7xDPej7von7C3DwwqPRmnnnK36XEBC/J3j1V5lP8fbt7y0TgTKJbpNGSwM+Bdeg==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -8730,26 +8730,26 @@ snapshots: '@nuxt/devalue@2.0.2': {} - '@nuxt/devtools-kit@1.3.3(nuxt@packages+nuxt)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))': + '@nuxt/devtools-kit@1.3.3(nuxt@packages+nuxt)(vite@5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))': dependencies: '@nuxt/kit': link:packages/kit '@nuxt/schema': link:packages/schema execa: 7.2.0 nuxt: link:packages/nuxt - vite: 5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) + vite: 5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) - '@nuxt/devtools-ui-kit@1.3.3(@nuxt/devtools@1.3.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)))(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(@vue/compiler-core@3.4.27)(nuxt@packages+nuxt)(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5))(webpack@5.92.0(esbuild@0.21.5))': + '@nuxt/devtools-ui-kit@1.3.3(@nuxt/devtools@1.3.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)))(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(@vue/compiler-core@3.4.27)(nuxt@packages+nuxt)(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5))(webpack@5.92.0(esbuild@0.21.5))': dependencies: '@iconify-json/carbon': 1.1.35 '@iconify-json/logos': 1.1.43 '@iconify-json/ri': 1.1.20 '@iconify-json/tabler': 1.1.113 - '@nuxt/devtools': 1.3.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)) - '@nuxt/devtools-kit': 1.3.3(nuxt@packages+nuxt)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) + '@nuxt/devtools': 1.3.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)) + '@nuxt/devtools-kit': 1.3.3(nuxt@packages+nuxt)(vite@5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) '@nuxt/kit': link:packages/kit '@nuxtjs/color-mode': 3.4.1 '@unocss/core': 0.60.4 - '@unocss/nuxt': 0.60.4(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(webpack@5.92.0(esbuild@0.21.5)) + '@unocss/nuxt': 0.60.4(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(webpack@5.92.0(esbuild@0.21.5)) '@unocss/preset-attributify': 0.60.4 '@unocss/preset-icons': 0.60.4 '@unocss/preset-mini': 0.60.4 @@ -8760,7 +8760,7 @@ snapshots: defu: 6.1.4 focus-trap: 7.5.4 splitpanes: 3.1.5 - unocss: 0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) + unocss: 0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) v-lazy-show: 0.2.4(@vue/compiler-core@3.4.27) transitivePeerDependencies: - '@unocss/webpack' @@ -8798,14 +8798,14 @@ snapshots: rc9: 2.1.2 semver: 7.6.2 - '@nuxt/devtools@1.3.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5))': + '@nuxt/devtools@1.3.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5))': dependencies: '@antfu/utils': 0.7.8 - '@nuxt/devtools-kit': 1.3.3(nuxt@packages+nuxt)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) + '@nuxt/devtools-kit': 1.3.3(nuxt@packages+nuxt)(vite@5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) '@nuxt/devtools-wizard': 1.3.3 '@nuxt/kit': link:packages/kit - '@vue/devtools-applet': 7.1.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)) - '@vue/devtools-core': 7.1.3(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)) + '@vue/devtools-applet': 7.1.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)) + '@vue/devtools-core': 7.1.3(vite@5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)) '@vue/devtools-kit': 7.1.3(vue@3.4.27(typescript@5.4.5)) birpc: 0.2.17 consola: 3.2.3 @@ -8835,9 +8835,9 @@ snapshots: simple-git: 3.24.0 sirv: 2.0.4 unimport: 3.7.2(rollup@4.18.0) - vite: 5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) - vite-plugin-inspect: 0.8.4(@nuxt/kit@packages+kit)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) - vite-plugin-vue-inspector: 5.1.0(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) + vite: 5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) + vite-plugin-inspect: 0.8.4(@nuxt/kit@packages+kit)(rollup@4.18.0)(vite@5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) + vite-plugin-vue-inspector: 5.1.0(vite@5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) which: 3.0.1 ws: 8.17.0 transitivePeerDependencies: @@ -8904,10 +8904,10 @@ snapshots: string-width: 4.2.3 webpack: 5.92.0 - '@nuxt/scripts@0.5.1(@nuxt/devtools@1.3.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)))(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(@vue/compiler-core@3.4.27)(ioredis@5.3.2)(nuxt@packages+nuxt)(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5))(webpack@5.92.0(esbuild@0.21.5))': + '@nuxt/scripts@0.5.1(@nuxt/devtools@1.3.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)))(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(@vue/compiler-core@3.4.27)(ioredis@5.3.2)(nuxt@packages+nuxt)(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5))(webpack@5.92.0(esbuild@0.21.5))': dependencies: - '@nuxt/devtools-kit': 1.3.3(nuxt@packages+nuxt)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) - '@nuxt/devtools-ui-kit': 1.3.3(@nuxt/devtools@1.3.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)))(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(@vue/compiler-core@3.4.27)(nuxt@packages+nuxt)(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5))(webpack@5.92.0(esbuild@0.21.5)) + '@nuxt/devtools-kit': 1.3.3(nuxt@packages+nuxt)(vite@5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) + '@nuxt/devtools-ui-kit': 1.3.3(@nuxt/devtools@1.3.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)))(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(@vue/compiler-core@3.4.27)(nuxt@packages+nuxt)(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5))(webpack@5.92.0(esbuild@0.21.5)) '@nuxt/kit': link:packages/kit '@types/google.maps': 3.55.9 '@types/stripe-v3': 3.1.33 @@ -8992,7 +8992,7 @@ snapshots: rc9: 2.1.2 std-env: 3.7.0 - '@nuxt/test-utils@3.13.1(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.27)(vue@3.4.27(typescript@5.4.5)))(@vue/test-utils@2.4.6)(h3@1.11.1)(happy-dom@14.12.0)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.44.1)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.2)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.3(vue@3.4.27(typescript@5.4.5)))(vue@3.4.27(typescript@5.4.5))': + '@nuxt/test-utils@3.13.1(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.27)(vue@3.4.27(typescript@5.4.5)))(@vue/test-utils@2.4.6)(h3@1.11.1)(happy-dom@14.12.0)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.44.1)(vite@5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.2)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.3(vue@3.4.27(typescript@5.4.5)))(vue@3.4.27(typescript@5.4.5))': dependencies: '@nuxt/kit': link:packages/kit '@nuxt/schema': link:packages/schema @@ -9018,8 +9018,8 @@ snapshots: ufo: 1.5.3 unenv: 1.9.0 unplugin: 1.10.1 - vite: 5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) - vitest-environment-nuxt: 1.0.0(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.27)(vue@3.4.27(typescript@5.4.5)))(@vue/test-utils@2.4.6)(h3@1.11.1)(happy-dom@14.12.0)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.44.1)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.2)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.3(vue@3.4.27(typescript@5.4.5)))(vue@3.4.27(typescript@5.4.5)) + vite: 5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) + vitest-environment-nuxt: 1.0.0(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.27)(vue@3.4.27(typescript@5.4.5)))(@vue/test-utils@2.4.6)(h3@1.11.1)(happy-dom@14.12.0)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.44.1)(vite@5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.2)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.3(vue@3.4.27(typescript@5.4.5)))(vue@3.4.27(typescript@5.4.5)) vue: 3.4.27(typescript@5.4.5) vue-router: 4.3.3(vue@3.4.27(typescript@5.4.5)) optionalDependencies: @@ -9727,23 +9727,23 @@ snapshots: unhead: 1.9.13 vue: 3.4.27(typescript@5.4.5) - '@unocss/astro@0.60.4(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))': + '@unocss/astro@0.60.4(rollup@4.18.0)(vite@5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))': dependencies: '@unocss/core': 0.60.4 '@unocss/reset': 0.60.4 - '@unocss/vite': 0.60.4(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) + '@unocss/vite': 0.60.4(rollup@4.18.0)(vite@5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) optionalDependencies: - vite: 5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) + vite: 5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) transitivePeerDependencies: - rollup - '@unocss/astro@0.61.0(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))': + '@unocss/astro@0.61.0(rollup@4.18.0)(vite@5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))': dependencies: '@unocss/core': 0.61.0 '@unocss/reset': 0.61.0 - '@unocss/vite': 0.61.0(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) + '@unocss/vite': 0.61.0(rollup@4.18.0)(vite@5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) optionalDependencies: - vite: 5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) + vite: 5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) transitivePeerDependencies: - rollup @@ -9819,7 +9819,7 @@ snapshots: gzip-size: 6.0.0 sirv: 2.0.4 - '@unocss/nuxt@0.60.4(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(webpack@5.92.0(esbuild@0.21.5))': + '@unocss/nuxt@0.60.4(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(webpack@5.92.0(esbuild@0.21.5))': dependencies: '@nuxt/kit': link:packages/kit '@unocss/config': 0.60.4 @@ -9832,9 +9832,9 @@ snapshots: '@unocss/preset-web-fonts': 0.60.4 '@unocss/preset-wind': 0.60.4 '@unocss/reset': 0.60.4 - '@unocss/vite': 0.60.4(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) + '@unocss/vite': 0.60.4(rollup@4.18.0)(vite@5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) '@unocss/webpack': 0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)) - unocss: 0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) + unocss: 0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) transitivePeerDependencies: - postcss - rollup @@ -10024,7 +10024,7 @@ snapshots: dependencies: '@unocss/core': 0.61.0 - '@unocss/vite@0.60.4(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))': + '@unocss/vite@0.60.4(rollup@4.18.0)(vite@5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))': dependencies: '@ampproject/remapping': 2.3.0 '@rollup/pluginutils': 5.1.0(rollup@4.18.0) @@ -10036,11 +10036,11 @@ snapshots: chokidar: 3.6.0 fast-glob: 3.3.2 magic-string: 0.30.10 - vite: 5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) + vite: 5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) transitivePeerDependencies: - rollup - '@unocss/vite@0.61.0(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))': + '@unocss/vite@0.61.0(rollup@4.18.0)(vite@5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))': dependencies: '@ampproject/remapping': 2.3.0 '@rollup/pluginutils': 5.1.0(rollup@4.18.0) @@ -10052,7 +10052,7 @@ snapshots: chokidar: 3.6.0 fast-glob: 3.3.2 magic-string: 0.30.10 - vite: 5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) + vite: 5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) transitivePeerDependencies: - rollup @@ -10089,19 +10089,19 @@ snapshots: - encoding - supports-color - '@vitejs/plugin-vue-jsx@4.0.0(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5))': + '@vitejs/plugin-vue-jsx@4.0.0(vite@5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5))': dependencies: '@babel/core': 7.24.7 '@babel/plugin-transform-typescript': 7.24.7(@babel/core@7.24.7) '@vue/babel-plugin-jsx': 1.2.2(@babel/core@7.24.7) - vite: 5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) + vite: 5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) vue: 3.4.27(typescript@5.4.5) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue@5.0.4(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5))': + '@vitejs/plugin-vue@5.0.4(vite@5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5))': dependencies: - vite: 5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) + vite: 5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) vue: 3.4.27(typescript@5.4.5) '@vitest/coverage-v8@1.6.0(vitest@1.6.0(@types/node@20.14.2)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))': @@ -10248,12 +10248,12 @@ snapshots: '@vue/devtools-api@6.6.3': {} - '@vue/devtools-applet@7.1.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5))': + '@vue/devtools-applet@7.1.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5))': dependencies: - '@vue/devtools-core': 7.1.3(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)) + '@vue/devtools-core': 7.1.3(vite@5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5)) '@vue/devtools-kit': 7.1.3(vue@3.4.27(typescript@5.4.5)) '@vue/devtools-shared': 7.1.3 - '@vue/devtools-ui': 7.1.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vue@3.4.27(typescript@5.4.5)) + '@vue/devtools-ui': 7.1.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vue@3.4.27(typescript@5.4.5)) lodash-es: 4.17.21 perfect-debounce: 1.0.0 shiki: 1.3.0 @@ -10278,14 +10278,14 @@ snapshots: - unocss - vite - '@vue/devtools-core@7.1.3(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5))': + '@vue/devtools-core@7.1.3(vite@5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.27(typescript@5.4.5))': dependencies: '@vue/devtools-kit': 7.1.3(vue@3.4.27(typescript@5.4.5)) '@vue/devtools-shared': 7.1.3 mitt: 3.0.1 nanoid: 3.3.7 pathe: 1.1.2 - vite-hot-client: 0.2.3(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) + vite-hot-client: 0.2.3(vite@5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) transitivePeerDependencies: - vite - vue @@ -10303,7 +10303,7 @@ snapshots: dependencies: rfdc: 1.3.1 - '@vue/devtools-ui@7.1.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vue@3.4.27(typescript@5.4.5))': + '@vue/devtools-ui@7.1.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)))(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vue@3.4.27(typescript@5.4.5))': dependencies: '@unocss/reset': 0.61.0 '@vue/devtools-shared': 7.1.3 @@ -10313,7 +10313,7 @@ snapshots: colord: 2.9.3 floating-vue: 5.2.2(@nuxt/kit@packages+kit)(vue@3.4.27(typescript@5.4.5)) focus-trap: 7.5.4 - unocss: 0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) + unocss: 0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) vue: 3.4.27(typescript@5.4.5) transitivePeerDependencies: - '@vue/composition-api' @@ -15144,9 +15144,9 @@ snapshots: universalify@2.0.0: {} - unocss@0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)): + unocss@0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)): dependencies: - '@unocss/astro': 0.60.4(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) + '@unocss/astro': 0.60.4(rollup@4.18.0)(vite@5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) '@unocss/cli': 0.60.4(rollup@4.18.0) '@unocss/core': 0.60.4 '@unocss/extractor-arbitrary-variants': 0.60.4 @@ -15165,18 +15165,18 @@ snapshots: '@unocss/transformer-compile-class': 0.60.4 '@unocss/transformer-directives': 0.60.4 '@unocss/transformer-variant-group': 0.60.4 - '@unocss/vite': 0.60.4(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) + '@unocss/vite': 0.60.4(rollup@4.18.0)(vite@5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) optionalDependencies: '@unocss/webpack': 0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)) - vite: 5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) + vite: 5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) transitivePeerDependencies: - postcss - rollup - supports-color - unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)): + unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)): dependencies: - '@unocss/astro': 0.61.0(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) + '@unocss/astro': 0.61.0(rollup@4.18.0)(vite@5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) '@unocss/cli': 0.61.0(rollup@4.18.0) '@unocss/core': 0.61.0 '@unocss/extractor-arbitrary-variants': 0.61.0 @@ -15195,10 +15195,10 @@ snapshots: '@unocss/transformer-compile-class': 0.61.0 '@unocss/transformer-directives': 0.61.0 '@unocss/transformer-variant-group': 0.61.0 - '@unocss/vite': 0.61.0(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) + '@unocss/vite': 0.61.0(rollup@4.18.0)(vite@5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) optionalDependencies: '@unocss/webpack': 0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)) - vite: 5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) + vite: 5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) transitivePeerDependencies: - postcss - rollup @@ -15336,9 +15336,9 @@ snapshots: unist-util-stringify-position: 4.0.0 vfile-message: 4.0.2 - vite-hot-client@0.2.3(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)): + vite-hot-client@0.2.3(vite@5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)): dependencies: - vite: 5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) + vite: 5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) vite-node@1.6.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0): dependencies: @@ -15346,7 +15346,7 @@ snapshots: debug: 4.3.4 pathe: 1.1.2 picocolors: 1.0.0 - vite: 5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) + vite: 5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) transitivePeerDependencies: - '@types/node' - less @@ -15357,7 +15357,7 @@ snapshots: - supports-color - terser - vite-plugin-checker@0.6.4(eslint@9.4.0)(optionator@0.9.3)(typescript@5.4.5)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue-tsc@2.0.21(typescript@5.4.5)): + vite-plugin-checker@0.6.4(eslint@9.4.0)(optionator@0.9.3)(typescript@5.4.5)(vite@5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue-tsc@2.0.21(typescript@5.4.5)): dependencies: '@babel/code-frame': 7.24.2 ansi-escapes: 4.3.2 @@ -15370,7 +15370,7 @@ snapshots: semver: 7.6.2 strip-ansi: 6.0.1 tiny-invariant: 1.3.1 - vite: 5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) + vite: 5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) vscode-languageclient: 7.0.0 vscode-languageserver: 7.0.0 vscode-languageserver-textdocument: 1.0.11 @@ -15381,7 +15381,7 @@ snapshots: typescript: 5.4.5 vue-tsc: 2.0.21(typescript@5.4.5) - vite-plugin-inspect@0.8.4(@nuxt/kit@packages+kit)(rollup@4.18.0)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)): + vite-plugin-inspect@0.8.4(@nuxt/kit@packages+kit)(rollup@4.18.0)(vite@5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)): dependencies: '@antfu/utils': 0.7.8 '@rollup/pluginutils': 5.1.0(rollup@4.18.0) @@ -15392,14 +15392,14 @@ snapshots: perfect-debounce: 1.0.0 picocolors: 1.0.0 sirv: 2.0.4 - vite: 5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) + vite: 5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) optionalDependencies: '@nuxt/kit': link:packages/kit transitivePeerDependencies: - rollup - supports-color - vite-plugin-vue-inspector@5.1.0(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)): + vite-plugin-vue-inspector@5.1.0(vite@5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)): dependencies: '@babel/core': 7.24.7 '@babel/plugin-proposal-decorators': 7.23.2(@babel/core@7.24.7) @@ -15410,13 +15410,13 @@ snapshots: '@vue/compiler-dom': 3.4.27 kolorist: 1.8.0 magic-string: 0.30.10 - vite: 5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) + vite: 5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) transitivePeerDependencies: - supports-color - vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0): + vite@5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0): dependencies: - esbuild: 0.20.2 + esbuild: 0.21.5 postcss: 8.4.38 rollup: 4.18.0 optionalDependencies: @@ -15425,9 +15425,9 @@ snapshots: sass: 1.69.4 terser: 5.27.0 - vitest-environment-nuxt@1.0.0(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.27)(vue@3.4.27(typescript@5.4.5)))(@vue/test-utils@2.4.6)(h3@1.11.1)(happy-dom@14.12.0)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.44.1)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.2)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.3(vue@3.4.27(typescript@5.4.5)))(vue@3.4.27(typescript@5.4.5)): + vitest-environment-nuxt@1.0.0(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.27)(vue@3.4.27(typescript@5.4.5)))(@vue/test-utils@2.4.6)(h3@1.11.1)(happy-dom@14.12.0)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.44.1)(vite@5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.2)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.3(vue@3.4.27(typescript@5.4.5)))(vue@3.4.27(typescript@5.4.5)): dependencies: - '@nuxt/test-utils': 3.13.1(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.27)(vue@3.4.27(typescript@5.4.5)))(@vue/test-utils@2.4.6)(h3@1.11.1)(happy-dom@14.12.0)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.44.1)(vite@5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.2)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.3(vue@3.4.27(typescript@5.4.5)))(vue@3.4.27(typescript@5.4.5)) + '@nuxt/test-utils': 3.13.1(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.27)(vue@3.4.27(typescript@5.4.5)))(@vue/test-utils@2.4.6)(h3@1.11.1)(happy-dom@14.12.0)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.44.1)(vite@5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.2)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.3(vue@3.4.27(typescript@5.4.5)))(vue@3.4.27(typescript@5.4.5)) transitivePeerDependencies: - '@cucumber/cucumber' - '@jest/globals' @@ -15465,7 +15465,7 @@ snapshots: strip-literal: 2.1.0 tinybench: 2.5.1 tinypool: 0.8.4 - vite: 5.2.13(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) + vite: 5.3.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) vite-node: 1.6.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) why-is-node-running: 2.2.2 optionalDependencies: From 95458af9a195dd663e299c4fdb2516e0e5c25e9e Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Thu, 13 Jun 2024 16:39:37 +0100 Subject: [PATCH 082/580] fix(nuxt): handle more edge cases with external/custom links (#27487) --- packages/nuxt/src/app/components/nuxt-link.ts | 86 +++++++++++-------- packages/nuxt/test/nuxt-link.test.ts | 19 +++- test/basic.test.ts | 18 ++++ .../basic/pages/nuxt-link/custom-external.vue | 53 ++++++++++++ 4 files changed, 135 insertions(+), 41 deletions(-) create mode 100644 test/fixtures/basic/pages/nuxt-link/custom-external.vue diff --git a/packages/nuxt/src/app/components/nuxt-link.ts b/packages/nuxt/src/app/components/nuxt-link.ts index 16116ebcfd..e4fa62d8a4 100644 --- a/packages/nuxt/src/app/components/nuxt-link.ts +++ b/packages/nuxt/src/app/components/nuxt-link.ts @@ -8,7 +8,7 @@ import type { } from 'vue' import { computed, defineComponent, h, inject, onBeforeUnmount, onMounted, provide, ref, resolveComponent } from 'vue' import type { RouteLocation, RouteLocationRaw, Router, RouterLink, RouterLinkProps, useLink } from '#vue-router' -import { hasProtocol, joinURL, parseQuery, withTrailingSlash, withoutTrailingSlash } from 'ufo' +import { hasProtocol, joinURL, parseQuery, withQuery, withTrailingSlash, withoutTrailingSlash } from 'ufo' import { preloadRouteComponents } from '../composables/preload' import { onNuxtReady } from '../composables/ready' import { navigateTo, useRouter } from '../composables/router' @@ -70,8 +70,8 @@ export interface NuxtLinkProps extends Omit { * @see https://nuxt.com/docs/api/components/nuxt-link */ export interface NuxtLinkOptions extends - Pick, - Pick { + Partial>, + Partial> { /** * The name of the component. * @default "NuxtLink" @@ -124,34 +124,17 @@ export function defineNuxtLink (options: NuxtLinkOptions) { const router = useRouter() const config = useRuntimeConfig() - // Resolving `to` value from `to` and `href` props - const to: ComputedRef = computed(() => { - checkPropConflicts(props, 'to', 'href') - const path = props.to || props.href || '' // Defaults to empty string (won't render any `href` attribute) - return resolveTrailingSlashBehavior(path, router.resolve) - }) + const hasTarget = computed(() => !!props.target && props.target !== '_self') // Lazily check whether to.value has a protocol - const isAbsoluteUrl = computed(() => typeof to.value === 'string' && hasProtocol(to.value, { acceptRelative: true })) - - // Resolves `to` value if it's a route location object - const href = computed(() => (typeof to.value === 'object' - ? router.resolve(to.value)?.href ?? null - : (to.value && !props.external && !isAbsoluteUrl.value) - ? resolveTrailingSlashBehavior(joinURL(config.app.baseURL, to.value), router.resolve) as string - : to.value - )) + const isAbsoluteUrl = computed(() => { + const path = props.to || props.href || '' + return typeof path === 'string' && hasProtocol(path, { acceptRelative: true }) + }) const builtinRouterLink = resolveComponent('RouterLink') as string | typeof RouterLink const useBuiltinLink = builtinRouterLink && typeof builtinRouterLink !== 'string' ? builtinRouterLink.useLink : undefined - const link = useBuiltinLink?.({ - ...props, - to: to.value, - }) - - const hasTarget = computed(() => props.target && props.target !== '_self') - // Resolving link type const isExternal = computed(() => { // External prop is explicitly set @@ -159,17 +142,40 @@ export function defineNuxtLink (options: NuxtLinkOptions) { return true } - // When `target` prop is set, link is external - if (hasTarget.value) { - return true - } + const path = props.to || props.href || '' // When `to` is a route object then it's an internal link - if (typeof to.value === 'object') { + if (typeof path === 'object') { return false } - return to.value === '' || isAbsoluteUrl.value + return path === '' || isAbsoluteUrl.value + }) + + // Resolving `to` value from `to` and `href` props + const to: ComputedRef = computed(() => { + checkPropConflicts(props, 'to', 'href') + const path = props.to || props.href || '' // Defaults to empty string (won't render any `href` attribute) + if (isExternal.value) { return path } + return resolveTrailingSlashBehavior(path, router.resolve) + }) + + const link = isExternal.value ? undefined : useBuiltinLink?.({ ...props, to }) + + // Resolves `to` value if it's a route location object + const href = computed(() => { + if (!to.value || isAbsoluteUrl.value) { return to.value as string } + + if (isExternal.value) { + const path = typeof to.value === 'object' ? resolveRouteObject(to.value) : to.value + return resolveTrailingSlashBehavior(path, router.resolve /* will not be called */) as string + } + + if (typeof to.value === 'object') { + return router.resolve(to.value)?.href ?? null + } + + return resolveTrailingSlashBehavior(joinURL(config.app.baseURL, to.value), router.resolve /* will not be called */) }) return { @@ -183,10 +189,10 @@ export function defineNuxtLink (options: NuxtLinkOptions) { isExactActive: link?.isExactActive ?? computed(() => to.value === router.currentRoute.value.path), route: link?.route ?? computed(() => router.resolve(to.value)), async navigate () { - await navigateTo(href.value, { replace: props.replace, external: props.external }) + await navigateTo(href.value, { replace: props.replace, external: isExternal.value || hasTarget.value }) }, } satisfies ReturnType & { - to: ComputedRef + to: ComputedRef hasTarget: ComputedRef isAbsoluteUrl: ComputedRef isExternal: ComputedRef @@ -307,10 +313,12 @@ export function defineNuxtLink (options: NuxtLinkOptions) { unobserve?.() unobserve = null - const path = typeof to.value === 'string' ? to.value : router.resolve(to.value).fullPath + const path = typeof to.value === 'string' + ? to.value + : isExternal.value ? resolveRouteObject(to.value) : router.resolve(to.value).fullPath await Promise.all([ nuxtApp.hooks.callHook('link:prefetch', path).catch(() => {}), - !isExternal.value && preloadRouteComponents(to.value as string, router).catch(() => {}), + !isExternal.value && !hasTarget.value && preloadRouteComponents(to.value as string, router).catch(() => {}), ]) prefetched.value = true }) @@ -336,7 +344,7 @@ export function defineNuxtLink (options: NuxtLinkOptions) { } return () => { - if (!isExternal.value) { + if (!isExternal.value && !hasTarget.value) { const routerLinkProps: RouterLinkProps & VNodeProps & AllowedComponentProps & AnchorHTMLAttributes = { ref: elRef, to: to.value, @@ -408,7 +416,7 @@ export function defineNuxtLink (options: NuxtLinkOptions) { }, rel, target, - isExternal: isExternal.value, + isExternal: isExternal.value || hasTarget.value, isActive: false, isExactActive: false, }) @@ -487,3 +495,7 @@ function isSlowConnection () { if (cn && (cn.saveData || /2g/.test(cn.effectiveType))) { return true } return false } + +function resolveRouteObject (to: Exclude) { + return withQuery(to.path || '', to.query || {}) + (to.hash ? '#' + to.hash : '') +} diff --git a/packages/nuxt/test/nuxt-link.test.ts b/packages/nuxt/test/nuxt-link.test.ts index 1ee1490837..a712d0f267 100644 --- a/packages/nuxt/test/nuxt-link.test.ts +++ b/packages/nuxt/test/nuxt-link.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it, vi } from 'vitest' -import type { RouteLocation, RouteLocationRaw } from 'vue-router' +import type { RouteLocation } from 'vue-router' import type { NuxtLinkOptions, NuxtLinkProps } from '../src/app/components/nuxt-link' import { defineNuxtLink } from '../src/app/components/nuxt-link' import { useRuntimeConfig } from '../src/app/nuxt' @@ -99,7 +99,11 @@ describe('nuxt-link:isExternal', () => { }) it('returns `false` when `to` is a route location object', () => { - expect(nuxtLink({ to: { to: '/to' } as RouteLocationRaw }).type).toBe(INTERNAL) + expect(nuxtLink({ to: { path: '/to' } }).type).toBe(INTERNAL) + }) + + it('returns `true` when `to` has a `target`', () => { + expect(nuxtLink({ to: { path: '/to' }, target: '_blank' }).type).toBe(EXTERNAL) }) it('honors `external` prop', () => { @@ -122,7 +126,12 @@ describe('nuxt-link:propsOrAttributes', () => { }) it('resolves route location object', () => { - expect(nuxtLink({ to: { to: '/to' } as RouteLocationRaw, external: true }).props.href).toBe('/to') + expect(nuxtLink({ to: { path: '/to' }, external: true }).props.href).toBe('/to') + }) + + it('applies trailing slash behaviour', () => { + expect(nuxtLink({ to: { path: '/to' }, external: true }, { trailingSlash: 'append' }).props.href).toBe('/to/') + expect(nuxtLink({ to: '/to', external: true }, { trailingSlash: 'append' }).props.href).toBe('/to/') }) }) @@ -167,6 +176,8 @@ describe('nuxt-link:propsOrAttributes', () => { }, () => { expect(nuxtLink({ to: 'http://nuxtjs.org/app/about', target: '_blank' }).props.href).toBe('http://nuxtjs.org/app/about') expect(nuxtLink({ to: '//nuxtjs.org/app/about', target: '_blank' }).props.href).toBe('//nuxtjs.org/app/about') + expect(nuxtLink({ to: { path: '/' }, external: true }).props.href).toBe('/') + expect(nuxtLink({ to: '/', external: true }).props.href).toBe('/') }) }) }) @@ -209,7 +220,7 @@ describe('nuxt-link:propsOrAttributes', () => { describe('to', () => { it('forwards `to` prop', () => { expect(nuxtLink({ to: '/to' }).props.to).toBe('/to') - expect(nuxtLink({ to: { to: '/to' } as RouteLocationRaw }).props.to).toEqual({ to: '/to' }) + expect(nuxtLink({ to: { path: '/to' } }).props.to).toEqual({ path: '/to' }) }) }) diff --git a/test/basic.test.ts b/test/basic.test.ts index 1e4db83c89..f86faf36d1 100644 --- a/test/basic.test.ts +++ b/test/basic.test.ts @@ -745,6 +745,24 @@ describe('nuxt links', () => { `) }) + it('respects external links in edge cases', async () => { + const html = await $fetch('/nuxt-link/custom-external') + const hrefs = html.match(/]*href="([^"]+)"/g) + expect(hrefs).toMatchInlineSnapshot(` + [ + " c.text.includes('No match found for location')) + expect(warnings).toMatchInlineSnapshot(`[]`) + await page.close() + }) + it('preserves route state', async () => { const { page } = await renderPage('/nuxt-link/trailing-slash') diff --git a/test/fixtures/basic/pages/nuxt-link/custom-external.vue b/test/fixtures/basic/pages/nuxt-link/custom-external.vue new file mode 100644 index 0000000000..4dff81fb0d --- /dev/null +++ b/test/fixtures/basic/pages/nuxt-link/custom-external.vue @@ -0,0 +1,53 @@ + + + From 220cc502a14f191445d62c4719120c7844c4c3f9 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Thu, 13 Jun 2024 17:59:24 +0100 Subject: [PATCH 083/580] fix(nuxt): preserve route metadata assigned outside page (#27587) --- packages/nuxt/src/pages/utils.ts | 121 +++++++------- .../pages-override-meta-enabled.test.ts.snap | 2 +- packages/nuxt/test/page-metadata.test.ts | 148 ++++++++++++++++++ test/basic.test.ts | 15 ++ test/fixtures/basic/nuxt.config.ts | 11 ++ test/fixtures/basic/pages/meta.vue | 36 +++++ 6 files changed, 274 insertions(+), 59 deletions(-) create mode 100644 packages/nuxt/test/page-metadata.test.ts create mode 100644 test/fixtures/basic/pages/meta.vue diff --git a/packages/nuxt/src/pages/utils.ts b/packages/nuxt/src/pages/utils.ts index 63bb9cacf9..1e713075dd 100644 --- a/packages/nuxt/src/pages/utils.ts +++ b/packages/nuxt/src/pages/utils.ts @@ -9,6 +9,7 @@ import { filename } from 'pathe/utils' import { hash } from 'ohash' import { transform } from 'esbuild' import { parse } from 'acorn' +import { walk } from 'estree-walker' import type { CallExpression, ExpressionStatement, ObjectExpression, Program, Property } from 'estree' import type { NuxtPage } from 'nuxt/schema' @@ -173,7 +174,7 @@ const DYNAMIC_META_KEY = '__nuxt_dynamic_meta_key' as const const pageContentsCache: Record = {} const metaCache: Record>> = {} -async function getRouteMeta (contents: string, absolutePath: string): Promise>> { +export async function getRouteMeta (contents: string, absolutePath: string): Promise>> { // set/update pageContentsCache, invalidate metaCache on cache mismatch if (!(absolutePath in pageContentsCache) || pageContentsCache[absolutePath] !== contents) { pageContentsCache[absolutePath] = contents @@ -199,70 +200,77 @@ async function getRouteMeta (contents: string, absolutePath: string): Promise node.type === 'ExpressionStatement' && node.expression.type === 'CallExpression' && node.expression.callee.type === 'Identifier' && node.expression.callee.name === 'definePageMeta') - if (!pageMetaAST) { - metaCache[absolutePath] = {} - return {} - } - const pageMetaArgument = ((pageMetaAST as ExpressionStatement).expression as CallExpression).arguments[0] as ObjectExpression const extractedMeta = {} as Partial> const extractionKeys = ['name', 'path', 'alias', 'redirect'] as const const dynamicProperties = new Set() - for (const key of extractionKeys) { - const property = pageMetaArgument.properties.find(property => property.type === 'Property' && property.key.type === 'Identifier' && property.key.name === key) as Property - if (!property) { continue } + let foundMeta = false - if (property.value.type === 'ObjectExpression') { - const valueString = js.code.slice(property.value.range![0], property.value.range![1]) - try { - extractedMeta[key] = JSON.parse(runInNewContext(`JSON.stringify(${valueString})`, {})) - } catch { - console.debug(`[nuxt] Skipping extraction of \`${key}\` metadata as it is not JSON-serializable (reading \`${absolutePath}\`).`) - dynamicProperties.add(key) - continue - } - } + walk(ast, { + enter (node) { + if (foundMeta) { return } - if (property.value.type === 'ArrayExpression') { - const values = [] - for (const element of property.value.elements) { - if (!element) { + if (node.type !== 'ExpressionStatement' || node.expression.type !== 'CallExpression' || node.expression.callee.type !== 'Identifier' || node.expression.callee.name !== 'definePageMeta') { return } + + foundMeta = true + const pageMetaArgument = ((node as ExpressionStatement).expression as CallExpression).arguments[0] as ObjectExpression + + for (const key of extractionKeys) { + const property = pageMetaArgument.properties.find(property => property.type === 'Property' && property.key.type === 'Identifier' && property.key.name === key) as Property + if (!property) { continue } + + if (property.value.type === 'ObjectExpression') { + const valueString = js.code.slice(property.value.range![0], property.value.range![1]) + try { + extractedMeta[key] = JSON.parse(runInNewContext(`JSON.stringify(${valueString})`, {})) + } catch { + console.debug(`[nuxt] Skipping extraction of \`${key}\` metadata as it is not JSON-serializable (reading \`${absolutePath}\`).`) + dynamicProperties.add(key) + continue + } + } + + if (property.value.type === 'ArrayExpression') { + const values = [] + for (const element of property.value.elements) { + if (!element) { + continue + } + if (element.type !== 'Literal' || typeof element.value !== 'string') { + console.debug(`[nuxt] Skipping extraction of \`${key}\` metadata as it is not an array of string literals (reading \`${absolutePath}\`).`) + dynamicProperties.add(key) + continue + } + values.push(element.value) + } + extractedMeta[key] = values continue } - if (element.type !== 'Literal' || typeof element.value !== 'string') { - console.debug(`[nuxt] Skipping extraction of \`${key}\` metadata as it is not an array of string literals (reading \`${absolutePath}\`).`) + + if (property.value.type !== 'Literal' || typeof property.value.value !== 'string') { + console.debug(`[nuxt] Skipping extraction of \`${key}\` metadata as it is not a string literal or array of string literals (reading \`${absolutePath}\`).`) dynamicProperties.add(key) continue } - values.push(element.value) + extractedMeta[key] = property.value.value } - extractedMeta[key] = values - continue - } - if (property.value.type !== 'Literal' || typeof property.value.value !== 'string') { - console.debug(`[nuxt] Skipping extraction of \`${key}\` metadata as it is not a string literal or array of string literals (reading \`${absolutePath}\`).`) - dynamicProperties.add(key) - continue - } - extractedMeta[key] = property.value.value - } + const extraneousMetaKeys = pageMetaArgument.properties + .filter(property => property.type === 'Property' && property.key.type === 'Identifier' && !(extractionKeys as unknown as string[]).includes(property.key.name)) + // @ts-expect-error inferred types have been filtered out + .map(property => property.key.name) - const extraneousMetaKeys = pageMetaArgument.properties - .filter(property => property.type === 'Property' && property.key.type === 'Identifier' && !(extractionKeys as unknown as string[]).includes(property.key.name)) - // @ts-expect-error inferred types have been filtered out - .map(property => property.key.name) + if (extraneousMetaKeys.length) { + dynamicProperties.add('meta') + } - if (extraneousMetaKeys.length) { - dynamicProperties.add('meta') - } - - if (dynamicProperties.size) { - extractedMeta.meta ??= {} - extractedMeta.meta[DYNAMIC_META_KEY] = dynamicProperties - } + if (dynamicProperties.size) { + extractedMeta.meta ??= {} + extractedMeta.meta[DYNAMIC_META_KEY] = dynamicProperties + } + }, + }) metaCache[absolutePath] = extractedMeta return extractedMeta @@ -505,19 +513,20 @@ async function createClientPage(loader) { }`) } - if (route.children != null) { + if (route.children) { metaRoute.children = route.children } - if (overrideMeta) { - metaRoute.name = `${metaImportName}?.name` - metaRoute.path = `${metaImportName}?.path ?? ''` + if (route.meta) { + metaRoute.meta = `{ ...(${metaImportName} || {}), ...${route.meta} }` + } + if (overrideMeta) { // skip and retain fallback if marked dynamic // set to extracted value or fallback if none extracted for (const key of ['name', 'path'] satisfies NormalizedRouteKeys) { if (markedDynamic.has(key)) { continue } - metaRoute[key] = route[key] ?? metaRoute[key] + metaRoute[key] = route[key] ?? `${metaImportName}?.${key}` } // set to extracted value or delete if none extracted @@ -532,10 +541,6 @@ async function createClientPage(loader) { metaRoute[key] = route[key] } } else { - if (route.meta != null) { - metaRoute.meta = `{ ...(${metaImportName} || {}), ...${route.meta} }` - } - if (route.alias != null) { metaRoute.alias = `${route.alias}.concat(${metaImportName}?.alias || [])` } diff --git a/packages/nuxt/test/__snapshots__/pages-override-meta-enabled.test.ts.snap b/packages/nuxt/test/__snapshots__/pages-override-meta-enabled.test.ts.snap index 88989345d1..9fb308e7c1 100644 --- a/packages/nuxt/test/__snapshots__/pages-override-meta-enabled.test.ts.snap +++ b/packages/nuxt/test/__snapshots__/pages-override-meta-enabled.test.ts.snap @@ -303,7 +303,7 @@ "alias": "mockMeta?.alias || []", "component": "() => import("pages/index.vue").then(m => m.default || m)", "meta": "mockMeta || {}", - "name": "mockMeta?.name", + "name": "mockMeta?.name ?? "index"", "path": ""/"", "redirect": "mockMeta?.redirect", }, diff --git a/packages/nuxt/test/page-metadata.test.ts b/packages/nuxt/test/page-metadata.test.ts new file mode 100644 index 0000000000..4431b80f2f --- /dev/null +++ b/packages/nuxt/test/page-metadata.test.ts @@ -0,0 +1,148 @@ +import { describe, expect, it } from 'vitest' +import { getRouteMeta, normalizeRoutes } from '../src/pages/utils' +import type { NuxtPage } from '../schema' + +const filePath = '/app/pages/index.vue' + +describe('page metadata', () => { + it('should not extract metadata from empty files', async () => { + expect(await getRouteMeta('', filePath)).toEqual({}) + expect(await getRouteMeta('', filePath)).toEqual({}) + }) + + it('should use and invalidate cache', async () => { + const fileContents = `` + const meta = await getRouteMeta(fileContents, filePath) + expect(meta === await getRouteMeta(fileContents, filePath)).toBeTruthy() + expect(meta === await getRouteMeta(fileContents, '/app/pages/other.vue')).toBeFalsy() + expect(meta === await getRouteMeta('' + fileContents, filePath)).toBeFalsy() + }) + + it('should extract serialisable metadata', async () => { + const meta = await getRouteMeta(` + + `, filePath) + + expect(meta).toMatchInlineSnapshot(` + { + "meta": { + "__nuxt_dynamic_meta_key": Set { + "meta", + }, + }, + "name": "some-custom-name", + "path": "/some-custom-path", + } + `) + }) + + it('should extract serialisable metadata in options api', async () => { + const meta = await getRouteMeta(` + + `, filePath) + + expect(meta).toMatchInlineSnapshot(` + { + "meta": { + "__nuxt_dynamic_meta_key": Set { + "meta", + }, + }, + "name": "some-custom-name", + "path": "/some-custom-path", + } + `) + }) +}) + +describe('normalizeRoutes', () => { + it('should produce valid route objects when used with extracted meta', async () => { + const page: NuxtPage = { path: '/', file: filePath } + Object.assign(page, await getRouteMeta(` + + `, filePath)) + + page.meta ||= {} + page.meta.layout = 'test' + page.meta.foo = 'bar' + + const { routes, imports } = normalizeRoutes([page], new Set(), true) + expect({ routes, imports }).toMatchInlineSnapshot(` + { + "imports": Set { + "import { default as indexN6pT4Un8hYMeta } from "/app/pages/index.vue?macro=true";", + }, + "routes": "[ + { + name: "some-custom-name", + path: indexN6pT4Un8hYMeta?.path ?? "/", + meta: { ...(indexN6pT4Un8hYMeta || {}), ...{"layout":"test","foo":"bar"} }, + redirect: "/", + component: () => import("/app/pages/index.vue").then(m => m.default || m) + } + ]", + } + `) + }) + + it('should produce valid route objects when used without extracted meta', () => { + const page: NuxtPage = { path: '/', file: filePath } + page.meta ||= {} + page.meta.layout = 'test' + page.meta.foo = 'bar' + + const { routes, imports } = normalizeRoutes([page], new Set()) + expect({ routes, imports }).toMatchInlineSnapshot(` + { + "imports": Set { + "import { default as indexN6pT4Un8hYMeta } from "/app/pages/index.vue?macro=true";", + }, + "routes": "[ + { + name: indexN6pT4Un8hYMeta?.name ?? undefined, + path: indexN6pT4Un8hYMeta?.path ?? "/", + meta: { ...(indexN6pT4Un8hYMeta || {}), ...{"layout":"test","foo":"bar"} }, + alias: indexN6pT4Un8hYMeta?.alias || [], + redirect: indexN6pT4Un8hYMeta?.redirect, + component: () => import("/app/pages/index.vue").then(m => m.default || m) + } + ]", + } + `) + }) +}) diff --git a/test/basic.test.ts b/test/basic.test.ts index f86faf36d1..864e48726e 100644 --- a/test/basic.test.ts +++ b/test/basic.test.ts @@ -166,6 +166,21 @@ describe('pages', () => { expect(res.headers.get('x-extend')).toEqual('added in pages:extend') }) + it('preserves page metadata added in pages:extend hook', async () => { + const html = await $fetch('/some-custom-path') + expect (html.match(/
([^<]*)<\/pre>/)?.[1]?.trim().replace(/"/g, '"').replace(/>/g, '>')).toMatchInlineSnapshot(`
+      "{
+        "name": "some-custom-name",
+        "path": "/some-custom-path",
+        "validate": "() => true",
+        "middleware": [
+          "() => true"
+        ],
+        "otherValue": "{\\"foo\\":\\"bar\\"}"
+      }"
+    `)
+  })
+
   it('validates routes', async () => {
     const { status, headers } = await fetch('/forbidden')
     expect(status).toEqual(404)
diff --git a/test/fixtures/basic/nuxt.config.ts b/test/fixtures/basic/nuxt.config.ts
index d312d55944..08f427b2a6 100644
--- a/test/fixtures/basic/nuxt.config.ts
+++ b/test/fixtures/basic/nuxt.config.ts
@@ -151,6 +151,17 @@ export default defineNuxtConfig({
         internalParent!.children = newPages
       })
     },
+    function (_options, nuxt) {
+      // to check that page metadata is preserved
+      nuxt.hook('pages:extend', (pages) => {
+        const customName = pages.find(page => page.name === 'some-custom-name')
+        if (!customName) { throw new Error('Page with custom name not found') }
+        if (customName.path !== '/some-custom-path') { throw new Error('Page path not extracted') }
+
+        customName.meta ||= {}
+        customName.meta.someProp = true
+      })
+    },
     // To test falsy module values
     undefined,
   ],
diff --git a/test/fixtures/basic/pages/meta.vue b/test/fixtures/basic/pages/meta.vue
new file mode 100644
index 0000000000..7983bde1ee
--- /dev/null
+++ b/test/fixtures/basic/pages/meta.vue
@@ -0,0 +1,36 @@
+
+
+

From fbf88f7b101c59bc4a10e28aafa6b79847e4b6e1 Mon Sep 17 00:00:00 2001
From: Daniel Roe 
Date: Thu, 13 Jun 2024 18:51:44 +0100
Subject: [PATCH 084/580] fix(nuxt): use portal to sync nitro/nuxt
 runtimeConfig + routeRules (#27596)

---
 packages/nuxt/src/core/nuxt.ts     | 48 ++++++++++++++++++++++++++++--
 test/fixtures/basic/nuxt.config.ts | 10 ++++++-
 2 files changed, 54 insertions(+), 4 deletions(-)

diff --git a/packages/nuxt/src/core/nuxt.ts b/packages/nuxt/src/core/nuxt.ts
index 6d4d62524e..20d59295dc 100644
--- a/packages/nuxt/src/core/nuxt.ts
+++ b/packages/nuxt/src/core/nuxt.ts
@@ -4,7 +4,7 @@ import ignore from 'ignore'
 import type { LoadNuxtOptions } from '@nuxt/kit'
 import { addBuildPlugin, addComponent, addPlugin, addRouteMiddleware, addServerPlugin, addVitePlugin, addWebpackPlugin, installModule, loadNuxtConfig, logger, nuxtCtx, resolveAlias, resolveFiles, resolveIgnorePatterns, resolvePath, tryResolveModule, useNitro } from '@nuxt/kit'
 import { resolvePath as _resolvePath } from 'mlly'
-import type { Nuxt, NuxtHooks, NuxtModule, NuxtOptions, RuntimeConfig } from 'nuxt/schema'
+import type { Nuxt, NuxtHooks, NuxtModule, NuxtOptions } from 'nuxt/schema'
 import type { PackageJson } from 'pkg-types'
 import { readPackageJSON, resolvePackageJSON } from 'pkg-types'
 import { hash } from 'ohash'
@@ -645,8 +645,22 @@ export async function loadNuxt (opts: LoadNuxtOptions): Promise {
     options._modules.push('@nuxt/telemetry')
   }
 
-  // Ensure we share runtime config between Nuxt and Nitro
-  options.runtimeConfig = options.nitro.runtimeConfig as RuntimeConfig
+  // Ensure we share key config between Nuxt and Nitro
+  createPortalProperties(options.nitro.runtimeConfig, options, ['nitro.runtimeConfig', 'runtimeConfig'])
+  createPortalProperties(options.nitro.routeRules, options, ['nitro.routeRules', 'routeRules'])
+
+  // prevent replacement of options.nitro
+  const nitroOptions = options.nitro
+  Object.defineProperties(options, {
+    nitro: {
+      configurable: false,
+      enumerable: true,
+      get: () => nitroOptions,
+      set (value) {
+        Object.assign(nitroOptions, value)
+      },
+    },
+  })
 
   const nuxt = createNuxt(options)
 
@@ -695,3 +709,31 @@ function deduplicateArray (maybeArray: T): T {
   }
   return fresh as T
 }
+
+function createPortalProperties (sourceValue: any, options: NuxtOptions, paths: string[]) {
+  let sharedValue = sourceValue
+
+  for (const path of paths) {
+    const segments = path.split('.')
+    const key = segments.pop()!
+    let parent: Record = options
+
+    while (segments.length) {
+      const key = segments.shift()!
+      parent = parent[key] || (parent[key] = {})
+    }
+
+    delete parent[key]
+
+    Object.defineProperties(parent, {
+      [key]: {
+        configurable: false,
+        enumerable: true,
+        get: () => sharedValue,
+        set (value) {
+          sharedValue = value
+        },
+      },
+    })
+  }
+}
diff --git a/test/fixtures/basic/nuxt.config.ts b/test/fixtures/basic/nuxt.config.ts
index 08f427b2a6..320f957777 100644
--- a/test/fixtures/basic/nuxt.config.ts
+++ b/test/fixtures/basic/nuxt.config.ts
@@ -1,5 +1,6 @@
 import { addBuildPlugin, addComponent } from 'nuxt/kit'
 import type { NuxtPage } from 'nuxt/schema'
+import { defu } from 'defu'
 import { createUnplugin } from 'unplugin'
 import { withoutLeadingSlash } from 'ufo'
 
@@ -88,10 +89,17 @@ export default defineNuxtConfig({
   runtimeConfig: {
     public: {
       needsFallback: undefined,
-      testConfig: 123,
     },
   },
   modules: [
+    function (_options, nuxt) {
+      // ensure setting `runtimeConfig` also sets `nitro.runtimeConfig`
+      nuxt.options.runtimeConfig = defu(nuxt.options.runtimeConfig, {
+        public: {
+          testConfig: 123,
+        },
+      })
+    },
     function (_options, nuxt) {
       nuxt.hook('modules:done', () => {
         // @ts-expect-error not valid nuxt option

From 2c5102557ab0b0b815c42935c81d25443093bbc7 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu, 13 Jun 2024 19:33:15 +0100
Subject: [PATCH 085/580] chore(deps): update github/codeql-action action to
 v3.25.10 (main) (#27590)

---
 .github/workflows/ci.yml         | 4 ++--
 .github/workflows/scorecards.yml | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 2a1e733ab1..1c4c56cfc2 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -83,7 +83,7 @@ jobs:
         run: pnpm install
 
       - name: Initialize CodeQL
-        uses: github/codeql-action/init@530d4feaa9c62aaab2d250371e2061eb7a172363 # v3.25.9
+        uses: github/codeql-action/init@23acc5c183826b7a8a97bce3cecc52db901f8251 # v3.25.10
         with:
           languages: javascript
           queries: +security-and-quality
@@ -95,7 +95,7 @@ jobs:
           path: packages
 
       - name: Perform CodeQL Analysis
-        uses: github/codeql-action/analyze@530d4feaa9c62aaab2d250371e2061eb7a172363 # v3.25.9
+        uses: github/codeql-action/analyze@23acc5c183826b7a8a97bce3cecc52db901f8251 # v3.25.10
         with:
           category: "/language:javascript"
 
diff --git a/.github/workflows/scorecards.yml b/.github/workflows/scorecards.yml
index 9e97020891..fb0b7dc233 100644
--- a/.github/workflows/scorecards.yml
+++ b/.github/workflows/scorecards.yml
@@ -68,7 +68,7 @@ jobs:
 
       # Upload the results to GitHub's code scanning dashboard.
       - name: "Upload to code-scanning"
-        uses: github/codeql-action/upload-sarif@530d4feaa9c62aaab2d250371e2061eb7a172363 # v3.25.9
+        uses: github/codeql-action/upload-sarif@23acc5c183826b7a8a97bce3cecc52db901f8251 # v3.25.10
         if: github.repository == 'nuxt/nuxt' && success()
         with:
           sarif_file: results.sarif

From e4bfea642878ae742b1747e3e0d5142470000c39 Mon Sep 17 00:00:00 2001
From: Daniel Roe 
Date: Thu, 13 Jun 2024 21:00:11 +0100
Subject: [PATCH 086/580] fix(nuxt,schema): add types for `_installedModules`

---
 packages/kit/src/template.ts           | 2 +-
 packages/nuxt/src/core/nitro.ts        | 2 +-
 packages/schema/src/config/internal.ts | 5 ++++-
 3 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/packages/kit/src/template.ts b/packages/kit/src/template.ts
index 194434f69f..1816ccf536 100644
--- a/packages/kit/src/template.ts
+++ b/packages/kit/src/template.ts
@@ -120,7 +120,7 @@ export async function _generateTypes (nuxt: Nuxt) {
   const modulePaths = await resolveNuxtModule(rootDirWithSlash,
     nuxt.options._installedModules
       .filter(m => m.entryPath)
-      .map(m => getDirectory(m.entryPath)),
+      .map(m => getDirectory(m.entryPath!)),
   )
 
   const isV4 = nuxt.options.future?.compatibilityVersion === 4
diff --git a/packages/nuxt/src/core/nitro.ts b/packages/nuxt/src/core/nitro.ts
index 84d6aec7dd..4c96a48666 100644
--- a/packages/nuxt/src/core/nitro.ts
+++ b/packages/nuxt/src/core/nitro.ts
@@ -43,7 +43,7 @@ export async function initNitro (nuxt: Nuxt & { _nitro?: Nitro }) {
   const modules = await resolveNuxtModule(rootDirWithSlash,
     nuxt.options._installedModules
       .filter(m => m.entryPath)
-      .map(m => m.entryPath),
+      .map(m => m.entryPath!),
   )
 
   const nitroConfig: NitroConfig = defu(nuxt.options.nitro, {
diff --git a/packages/schema/src/config/internal.ts b/packages/schema/src/config/internal.ts
index 5f6545c469..346beff214 100644
--- a/packages/schema/src/config/internal.ts
+++ b/packages/schema/src/config/internal.ts
@@ -23,7 +23,10 @@ export default defineUntypedSchema({
   _nuxtConfigFiles: [],
   /** @private */
   appDir: '',
-  /** @private */
+  /**
+   * @private
+   * @type {Array<{ meta: ModuleMeta; timings?: Record; entryPath?: string }>}
+   */
   _installedModules: [],
   /** @private */
   _modules: [],

From d929cd4ef6bf10a12194ed9b2d2a6204e7c8e1be Mon Sep 17 00:00:00 2001
From: Michael Brevard 
Date: Thu, 13 Jun 2024 21:56:26 +0100
Subject: [PATCH 087/580] perf(webpack): decrease assets map iterations

---
 packages/webpack/src/plugins/vue/client.ts | 25 +++++++++-------------
 1 file changed, 10 insertions(+), 15 deletions(-)

diff --git a/packages/webpack/src/plugins/vue/client.ts b/packages/webpack/src/plugins/vue/client.ts
index 14c0c184e3..10127fcace 100644
--- a/packages/webpack/src/plugins/vue/client.ts
+++ b/packages/webpack/src/plugins/vue/client.ts
@@ -43,24 +43,19 @@ export default class VueSSRClientPlugin {
 
       const allFiles = new Set()
       const asyncFiles = new Set()
-
-      for (const asset of stats.assets!) {
-        const file = asset.name
-        if (!isHotUpdate(file)) {
-          allFiles.add(file)
-          if (initialFiles.has(file)) { continue }
-          if (isJS(file) || isCSS(file)) {
-            asyncFiles.add(file)
-          }
-        }
-      }
-
       const assetsMapping: Record = {}
-      for (const { name, chunkNames = [] } of stats.assets!) {
-        if (isJS(name) && !isHotUpdate(name)) {
+
+      for (const { name: file, chunkNames = [] } of stats.assets!) {
+        if (isHotUpdate(file)) { continue }
+        allFiles.add(file)
+        const isFileJS = isJS(file)
+        if (!initialFiles.has(file) && (isFileJS || isCSS(file))) {
+          asyncFiles.add(file)
+        }
+        if (isFileJS) {
           const componentHash = hash(chunkNames.join('|'))
           const map = assetsMapping[componentHash] ||= []
-          map.push(name)
+          map.push(file)
         }
       }
 

From 7dfc85623bb145b91b2152482604be3cd33e9b2a Mon Sep 17 00:00:00 2001
From: Daniel Roe 
Date: Thu, 13 Jun 2024 22:52:57 +0100
Subject: [PATCH 088/580] perf(kit): various performance improvements (#27600)

Co-authored-by: Michael Brevard 
---
 packages/kit/src/internal/cjs.ts         |  4 +-
 packages/kit/src/internal/template.ts    |  5 +-
 packages/kit/src/loader/config.ts        |  7 +-
 packages/kit/src/module/compatibility.ts |  9 +--
 packages/kit/src/pages.ts                |  5 +-
 packages/kit/src/resolve.ts              | 14 +++-
 packages/kit/src/template.ts             | 97 +++++++++++++++---------
 packages/kit/test/generate-types.spec.ts |  2 +-
 8 files changed, 92 insertions(+), 51 deletions(-)

diff --git a/packages/kit/src/internal/cjs.ts b/packages/kit/src/internal/cjs.ts
index 7e30acfec7..b2c01e8c69 100644
--- a/packages/kit/src/internal/cjs.ts
+++ b/packages/kit/src/internal/cjs.ts
@@ -61,7 +61,7 @@ function getRequireCacheItem (id: string) {
   }
 }
 
-export function getModulePaths (paths?: string[] | string) {
+export function getNodeModulesPaths (paths?: string[] | string) {
   return ([] as Array).concat(
     global.__NUXT_PREPATHS__,
     paths || [],
@@ -73,7 +73,7 @@ export function getModulePaths (paths?: string[] | string) {
 /** @deprecated Do not use CJS utils */
 export function resolveModule (id: string, opts: ResolveModuleOptions = {}) {
   return normalize(_require.resolve(id, {
-    paths: getModulePaths(opts.paths),
+    paths: getNodeModulesPaths(opts.paths),
   }))
 }
 
diff --git a/packages/kit/src/internal/template.ts b/packages/kit/src/internal/template.ts
index 5b40a2a214..343393e5ec 100644
--- a/packages/kit/src/internal/template.ts
+++ b/packages/kit/src/internal/template.ts
@@ -32,10 +32,11 @@ const serialize = (data: any) => JSON.stringify(data, null, 2).replace(/"\{(.+)\
 /** @deprecated */
 const importSources = (sources: string | string[], { lazy = false } = {}) => {
   return toArray(sources).map((src) => {
+    const safeVariableName = genSafeVariableName(src)
     if (lazy) {
-      return `const ${genSafeVariableName(src)} = ${genDynamicImport(src, { comment: `webpackChunkName: ${JSON.stringify(src)}` })}`
+      return `const ${safeVariableName} = ${genDynamicImport(src, { comment: `webpackChunkName: ${JSON.stringify(src)}` })}`
     }
-    return genImport(src, genSafeVariableName(src))
+    return genImport(src, safeVariableName)
   }).join('\n')
 }
 
diff --git a/packages/kit/src/loader/config.ts b/packages/kit/src/loader/config.ts
index b2c4d1b883..8e2c1354a9 100644
--- a/packages/kit/src/loader/config.ts
+++ b/packages/kit/src/loader/config.ts
@@ -12,7 +12,12 @@ export interface LoadNuxtConfigOptions extends Omit layerSchemaKeys.includes(key)))
+const layerSchema = Object.create(null)
+for (const key of layerSchemaKeys) {
+  if (key in NuxtConfigSchema) {
+    layerSchema[key] = NuxtConfigSchema[key]
+  }
+}
 
 export async function loadNuxtConfig (opts: LoadNuxtConfigOptions): Promise {
   // Automatically detect and import layers from `~~/layers/` directory
diff --git a/packages/kit/src/module/compatibility.ts b/packages/kit/src/module/compatibility.ts
index 446e7e3fce..5bccbf8654 100644
--- a/packages/kit/src/module/compatibility.ts
+++ b/packages/kit/src/module/compatibility.ts
@@ -51,11 +51,10 @@ export async function getNuxtModuleVersion (module: string | NuxtModule, nuxt: N
   // need a name from here
   if (!moduleMeta.name) { return false }
   // maybe the version got attached within the installed module instance?
-  const version = nuxt.options._installedModules
-    // @ts-expect-error _installedModules is not typed
-    .filter(m => m.meta.name === moduleMeta.name).map(m => m.meta.version)?.[0]
-  if (version) {
-    return version
+  for (const m of nuxt.options._installedModules) {
+    if (m.meta.name === moduleMeta.name && m.meta.version) {
+      return m.meta.version
+    }
   }
   // it's possible that the module will be installed, it just hasn't been done yet, preemptively load the instance
   if (hasNuxtModule(moduleMeta.name)) {
diff --git a/packages/kit/src/pages.ts b/packages/kit/src/pages.ts
index a5f7fc1d3e..04c7592a55 100644
--- a/packages/kit/src/pages.ts
+++ b/packages/kit/src/pages.ts
@@ -51,11 +51,12 @@ export function addRouteMiddleware (input: NuxtMiddleware | NuxtMiddleware[], op
     for (const middleware of middlewares) {
       const find = app.middleware.findIndex(item => item.name === middleware.name)
       if (find >= 0) {
-        if (app.middleware[find].path === middleware.path) { continue }
+        const foundPath = app.middleware[find].path
+        if (foundPath === middleware.path) { continue }
         if (options.override === true) {
           app.middleware[find] = { ...middleware }
         } else {
-          logger.warn(`'${middleware.name}' middleware already exists at '${app.middleware[find].path}'. You can set \`override: true\` to replace it.`)
+          logger.warn(`'${middleware.name}' middleware already exists at '${foundPath}'. You can set \`override: true\` to replace it.`)
         }
       } else {
         app.middleware.push({ ...middleware })
diff --git a/packages/kit/src/resolve.ts b/packages/kit/src/resolve.ts
index 392dec86d8..b170210efe 100644
--- a/packages/kit/src/resolve.ts
+++ b/packages/kit/src/resolve.ts
@@ -168,8 +168,8 @@ export function createResolver (base: string | URL): Resolver {
   }
 }
 
-export async function resolveNuxtModule (base: string, paths: string[]) {
-  const resolved = []
+export async function resolveNuxtModule (base: string, paths: string[]): Promise {
+  const resolved: string[] = []
   const resolver = createResolver(base)
 
   for (const path of paths) {
@@ -209,6 +209,12 @@ function existsInVFS (path: string, nuxt = tryUseNuxt()) {
 }
 
 export async function resolveFiles (path: string, pattern: string | string[], opts: { followSymbolicLinks?: boolean } = {}) {
-  const files = await globby(pattern, { cwd: path, followSymbolicLinks: opts.followSymbolicLinks ?? true })
-  return files.map(p => resolve(path, p)).filter(p => !isIgnored(p)).sort()
+  const files: string[] = []
+  for (const file of await globby(pattern, { cwd: path, followSymbolicLinks: opts.followSymbolicLinks ?? true })) {
+    const p = resolve(path, file)
+    if (!isIgnored(p)) {
+      files.push(p)
+    }
+  }
+  return files.sort()
 }
diff --git a/packages/kit/src/template.ts b/packages/kit/src/template.ts
index 1816ccf536..8e729c2f20 100644
--- a/packages/kit/src/template.ts
+++ b/packages/kit/src/template.ts
@@ -11,7 +11,7 @@ import { readPackageJSON } from 'pkg-types'
 import { tryResolveModule } from './internal/esm'
 import { getDirectory } from './module/install'
 import { tryUseNuxt, useNuxt } from './context'
-import { getModulePaths } from './internal/cjs'
+import { getNodeModulesPaths } from './internal/cjs'
 import { resolveNuxtModule } from './resolve'
 
 /**
@@ -113,18 +113,55 @@ export async function updateTemplates (options?: { filter?: (template: ResolvedN
 }
 
 export async function _generateTypes (nuxt: Nuxt) {
-  const nodeModulePaths = getModulePaths(nuxt.options.modulesDir)
-
   const rootDirWithSlash = withTrailingSlash(nuxt.options.rootDir)
+  const relativeRootDir = relativeWithDot(nuxt.options.buildDir, nuxt.options.rootDir)
 
-  const modulePaths = await resolveNuxtModule(rootDirWithSlash,
-    nuxt.options._installedModules
-      .filter(m => m.entryPath)
-      .map(m => getDirectory(m.entryPath!)),
-  )
+  const include = new Set([
+    './nuxt.d.ts',
+    join(relativeRootDir, '.config/nuxt.*'),
+    join(relativeRootDir, '**/*'),
+  ])
+
+  if (nuxt.options.srcDir !== nuxt.options.rootDir) {
+    include.add(join(relative(nuxt.options.buildDir, nuxt.options.srcDir), '**/*'))
+  }
+
+  if (nuxt.options.typescript.includeWorkspace && nuxt.options.workspaceDir !== nuxt.options.rootDir) {
+    include.add(join(relative(nuxt.options.buildDir, nuxt.options.workspaceDir), '**/*'))
+  }
+
+  for (const layer of nuxt.options._layers) {
+    const srcOrCwd = layer.config.srcDir ?? layer.cwd
+    if (!srcOrCwd.startsWith(rootDirWithSlash) || srcOrCwd.includes('node_modules')) {
+      include.add(join(relative(nuxt.options.buildDir, srcOrCwd), '**/*'))
+    }
+  }
+
+  const exclude = new Set([
+    // nitro generate output: https://github.com/nuxt/nuxt/blob/main/packages/nuxt/src/core/nitro.ts#L186
+    relativeWithDot(nuxt.options.buildDir, resolve(nuxt.options.rootDir, 'dist')),
+  ])
+
+  for (const dir of nuxt.options.modulesDir) {
+    exclude.add(relativeWithDot(nuxt.options.buildDir, dir))
+  }
+
+  const moduleEntryPaths: string[] = []
+  for (const m of nuxt.options._installedModules) {
+    if (m.entryPath) {
+      moduleEntryPaths.push(getDirectory(m.entryPath))
+    }
+  }
+
+  const modulePaths = await resolveNuxtModule(rootDirWithSlash, moduleEntryPaths)
+
+  for (const path of modulePaths) {
+    const relative = relativeWithDot(nuxt.options.buildDir, path)
+    include.add(join(relative, 'runtime'))
+    exclude.add(join(relative, 'runtime/server'))
+  }
 
   const isV4 = nuxt.options.future?.compatibilityVersion === 4
-
   const hasTypescriptVersionWithModulePreserve = await readPackageJSON('typescript', { url: nuxt.options.modulesDir })
     .then(r => r?.version && gte(r.version, '5.4.0'))
     .catch(() => isV4)
@@ -168,23 +205,8 @@ export async function _generateTypes (nuxt: Nuxt) {
       noImplicitThis: true, /* enabled with `strict` */
       allowSyntheticDefaultImports: true,
     },
-    include: [
-      './nuxt.d.ts',
-      join(relativeWithDot(nuxt.options.buildDir, nuxt.options.rootDir), '.config/nuxt.*'),
-      join(relativeWithDot(nuxt.options.buildDir, nuxt.options.rootDir), '**/*'),
-      ...nuxt.options.srcDir !== nuxt.options.rootDir ? [join(relative(nuxt.options.buildDir, nuxt.options.srcDir), '**/*')] : [],
-      ...nuxt.options._layers.map(layer => layer.config.srcDir ?? layer.cwd)
-        .filter(srcOrCwd => !srcOrCwd.startsWith(rootDirWithSlash) || srcOrCwd.includes('node_modules'))
-        .map(srcOrCwd => join(relative(nuxt.options.buildDir, srcOrCwd), '**/*')),
-      ...nuxt.options.typescript.includeWorkspace && nuxt.options.workspaceDir !== nuxt.options.rootDir ? [join(relative(nuxt.options.buildDir, nuxt.options.workspaceDir), '**/*')] : [],
-      ...modulePaths.map(m => join(relativeWithDot(nuxt.options.buildDir, m), 'runtime')),
-    ],
-    exclude: [
-      ...nuxt.options.modulesDir.map(m => relativeWithDot(nuxt.options.buildDir, m)),
-      ...modulePaths.map(m => join(relativeWithDot(nuxt.options.buildDir, m), 'runtime/server')),
-      // nitro generate output: https://github.com/nuxt/nuxt/blob/main/packages/nuxt/src/core/nitro.ts#L186
-      relativeWithDot(nuxt.options.buildDir, resolve(nuxt.options.rootDir, 'dist')),
-    ],
+    include: [...include],
+    exclude: [...exclude],
   } satisfies TSConfig)
 
   const aliases: Record = {
@@ -195,7 +217,9 @@ export async function _generateTypes (nuxt: Nuxt) {
   // Exclude bridge alias types to support Volar
   const excludedAlias = [/^@vue\/.*$/]
 
-  const basePath = tsConfig.compilerOptions!.baseUrl ? resolve(nuxt.options.buildDir, tsConfig.compilerOptions!.baseUrl) : nuxt.options.buildDir
+  const basePath = tsConfig.compilerOptions!.baseUrl
+    ? resolve(nuxt.options.buildDir, tsConfig.compilerOptions!.baseUrl)
+    : nuxt.options.buildDir
 
   tsConfig.compilerOptions = tsConfig.compilerOptions || {}
   tsConfig.include = tsConfig.include || []
@@ -237,12 +261,13 @@ export async function _generateTypes (nuxt: Nuxt) {
     }
   }
 
-  const references: TSReference[] = await Promise.all([
-    ...nuxt.options.modules,
-    ...nuxt.options._modules,
-  ]
-    .filter(f => typeof f === 'string')
-    .map(async id => ({ types: (await readPackageJSON(id, { url: nodeModulePaths }).catch(() => null))?.name || id })))
+  const references: TSReference[] = []
+  await Promise.all([...nuxt.options.modules, ...nuxt.options._modules].map(async (id) => {
+    if (typeof id !== 'string') { return }
+
+    const pkg = await readPackageJSON(id, { url: getNodeModulesPaths(nuxt.options.modulesDir) }).catch(() => null)
+    references.push(({ types: pkg?.name || id }))
+  }))
 
   const declarations: string[] = []
 
@@ -302,7 +327,11 @@ export async function writeTypes (nuxt: Nuxt) {
 }
 
 function renderAttrs (obj: Record) {
-  return Object.entries(obj).map(e => renderAttr(e[0], e[1])).join(' ')
+  const attrs: string[] = []
+  for (const key in obj) {
+    attrs.push(renderAttr(key, obj[key]))
+  }
+  return attrs.join(' ')
 }
 
 function renderAttr (key: string, value: string) {
diff --git a/packages/kit/test/generate-types.spec.ts b/packages/kit/test/generate-types.spec.ts
index 7ac10ba8d1..b5bcc9a6bb 100644
--- a/packages/kit/test/generate-types.spec.ts
+++ b/packages/kit/test/generate-types.spec.ts
@@ -53,12 +53,12 @@ describe('tsConfig generation', () => {
     }))
     expect(tsConfig.exclude).toMatchInlineSnapshot(`
       [
+        "../dist",
         "../modules/test/node_modules",
         "../modules/node_modules",
         "../node_modules/@some/module/node_modules",
         "../node_modules",
         "../../node_modules",
-        "../dist",
       ]
     `)
   })

From 02945b9fa6d7323f63137e89422007bb5ebd7e4f Mon Sep 17 00:00:00 2001
From: Daniel Roe 
Date: Thu, 13 Jun 2024 22:47:24 +0100
Subject: [PATCH 089/580] chore: add extra types for empty array definitions

---
 packages/nuxt/src/app/components/nuxt-island.ts  | 6 +++---
 packages/nuxt/src/app/components/utils.ts        | 2 +-
 packages/nuxt/src/core/nuxt.ts                   | 2 +-
 packages/nuxt/src/core/runtime/nitro/renderer.ts | 2 +-
 packages/nuxt/src/pages/utils.ts                 | 2 +-
 5 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/packages/nuxt/src/app/components/nuxt-island.ts b/packages/nuxt/src/app/components/nuxt-island.ts
index 784132a752..93832a1eaf 100644
--- a/packages/nuxt/src/app/components/nuxt-island.ts
+++ b/packages/nuxt/src/app/components/nuxt-island.ts
@@ -1,4 +1,4 @@
-import type { Component, PropType } from 'vue'
+import type { Component, PropType, VNode } from 'vue'
 import { Fragment, Teleport, computed, createStaticVNode, createVNode, defineComponent, getCurrentInstance, h, nextTick, onMounted, ref, toRaw, watch, withMemo } from 'vue'
 import { debounce } from 'perfect-debounce'
 import { hash } from 'ohash'
@@ -29,7 +29,7 @@ const getId = import.meta.client ? () => (id++).toString() : randomUUID
 const components = import.meta.client ? new Map() : undefined
 
 async function loadComponents (source = appBaseURL, paths: NuxtIslandResponse['components']) {
-  const promises = []
+  const promises: Array> = []
 
   for (const component in paths) {
     if (!(components!.has(component))) {
@@ -259,7 +259,7 @@ export default defineComponent({
 
         // should away be triggered ONE tick after re-rendering the static node
         withMemo([teleportKey.value], () => {
-          const teleports = []
+          const teleports: Array = []
           // this is used to force trigger Teleport when vue makes the diff between old and new node
           const isKeyOdd = teleportKey.value === 0 || !!(teleportKey.value && !(teleportKey.value % 2))
 
diff --git a/packages/nuxt/src/app/components/utils.ts b/packages/nuxt/src/app/components/utils.ts
index a5e918a89d..3de363755d 100644
--- a/packages/nuxt/src/app/components/utils.ts
+++ b/packages/nuxt/src/app/components/utils.ts
@@ -86,7 +86,7 @@ export function vforToArray (source: any): any[] {
     if (import.meta.dev && !Number.isInteger(source)) {
       console.warn(`The v-for range expect an integer value but got ${source}.`)
     }
-    const array = []
+    const array: number[] = []
     for (let i = 0; i < source; i++) {
       array[i] = i
     }
diff --git a/packages/nuxt/src/core/nuxt.ts b/packages/nuxt/src/core/nuxt.ts
index 20d59295dc..b054abb923 100644
--- a/packages/nuxt/src/core/nuxt.ts
+++ b/packages/nuxt/src/core/nuxt.ts
@@ -698,7 +698,7 @@ const RESTART_RE = /^(?:app|error|app\.config)\.(?:js|ts|mjs|jsx|tsx|vue)$/i
 function deduplicateArray (maybeArray: T): T {
   if (!Array.isArray(maybeArray)) { return maybeArray }
 
-  const fresh = []
+  const fresh: any[] = []
   const hashes = new Set()
   for (const item of maybeArray) {
     const _hash = hash(item)
diff --git a/packages/nuxt/src/core/runtime/nitro/renderer.ts b/packages/nuxt/src/core/runtime/nitro/renderer.ts
index f33a9774aa..4321a2387a 100644
--- a/packages/nuxt/src/core/runtime/nitro/renderer.ts
+++ b/packages/nuxt/src/core/runtime/nitro/renderer.ts
@@ -400,7 +400,7 @@ export default defineRenderHandler(async (event): Promise
Date: Thu, 13 Jun 2024 23:35:00 +0100
Subject: [PATCH 090/580] perf(vite): various performance improvements (#27601)

---
 packages/vite/package.json                   |  1 +
 packages/vite/src/client.ts                  | 13 +++++++++---
 packages/vite/src/css.ts                     | 17 +++++++++------
 packages/vite/src/dev-bundler.ts             |  8 ++++++-
 packages/vite/src/manifest.ts                | 13 +++++++-----
 packages/vite/src/plugins/analyze.ts         | 19 ++++++++++-------
 packages/vite/src/plugins/composable-keys.ts |  7 +++++--
 packages/vite/src/plugins/public-dirs.ts     |  2 +-
 packages/vite/src/plugins/ssr-styles.ts      |  6 +++---
 packages/vite/src/server.ts                  |  2 +-
 packages/vite/src/utils/transpile.ts         |  2 +-
 packages/vite/src/vite.ts                    | 22 +++++++++++++-------
 pnpm-lock.yaml                               |  3 +++
 13 files changed, 77 insertions(+), 38 deletions(-)

diff --git a/packages/vite/package.json b/packages/vite/package.json
index d2b64f1169..24c6384263 100644
--- a/packages/vite/package.json
+++ b/packages/vite/package.json
@@ -28,6 +28,7 @@
     "@types/clear": "0.1.4",
     "@types/estree": "1.0.5",
     "@types/fs-extra": "11.0.4",
+    "rollup": "^4.18.0",
     "unbuild": "latest",
     "vue": "3.4.27"
   },
diff --git a/packages/vite/src/client.ts b/packages/vite/src/client.ts
index 12d746c021..607666f933 100644
--- a/packages/vite/src/client.ts
+++ b/packages/vite/src/client.ts
@@ -163,10 +163,11 @@ export async function buildClient (ctx: ViteBuildContext) {
   }
 
   // We want to respect users' own rollup output options
+  const fileNames = withoutLeadingSlash(join(ctx.nuxt.options.app.buildAssetsDir, '[hash].js'))
   clientConfig.build!.rollupOptions = defu(clientConfig.build!.rollupOptions!, {
     output: {
-      chunkFileNames: ctx.nuxt.options.dev ? undefined : withoutLeadingSlash(join(ctx.nuxt.options.app.buildAssetsDir, '[hash].js')),
-      entryFileNames: ctx.nuxt.options.dev ? 'entry.js' : withoutLeadingSlash(join(ctx.nuxt.options.app.buildAssetsDir, '[hash].js')),
+      chunkFileNames: ctx.nuxt.options.dev ? undefined : fileNames,
+      entryFileNames: ctx.nuxt.options.dev ? 'entry.js' : fileNames,
     } satisfies NonNullable['output'],
   }) as any
 
@@ -228,7 +229,13 @@ export async function buildClient (ctx: ViteBuildContext) {
     })
 
     const viteMiddleware = defineEventHandler(async (event) => {
-      const viteRoutes = viteServer.middlewares.stack.map(m => m.route).filter(r => r.length > 1)
+      const viteRoutes: string[] = []
+      for (const viteRoute of viteServer.middlewares.stack) {
+        const m = viteRoute.route
+        if (m.length > 1) {
+          viteRoutes.push(m)
+        }
+      }
       if (!event.path.startsWith(clientConfig.base!) && !viteRoutes.some(route => event.path.startsWith(route))) {
         // @ts-expect-error _skip_transform is a private property
         event.node.req._skip_transform = true
diff --git a/packages/vite/src/css.ts b/packages/vite/src/css.ts
index 96413a3ce4..e99b323fa4 100644
--- a/packages/vite/src/css.ts
+++ b/packages/vite/src/css.ts
@@ -3,6 +3,8 @@ import type { Nuxt } from '@nuxt/schema'
 import type { InlineConfig as ViteConfig } from 'vite'
 import { distDir } from './dirs'
 
+const lastPlugins = ['autoprefixer', 'cssnano']
+
 export function resolveCSSOptions (nuxt: Nuxt): ViteConfig['css'] {
   const css: ViteConfig['css'] & { postcss: NonNullable['postcss'], string>> } = {
     postcss: {
@@ -10,19 +12,22 @@ export function resolveCSSOptions (nuxt: Nuxt): ViteConfig['css'] {
     },
   }
 
-  const lastPlugins = ['autoprefixer', 'cssnano']
-  css.postcss.plugins = Object.entries(nuxt.options.postcss.plugins)
+  css.postcss.plugins = []
+
+  const plugins = Object.entries(nuxt.options.postcss.plugins)
     .sort((a, b) => lastPlugins.indexOf(a[0]) - lastPlugins.indexOf(b[0]))
-    .filter(([, opts]) => opts)
-    .map(([name, opts]) => {
+
+  for (const [name, opts] of plugins) {
+    if (opts) {
       const plugin = requireModule(name, {
         paths: [
           ...nuxt.options.modulesDir,
           distDir,
         ],
       })
-      return plugin(opts)
-    })
+      css.postcss.plugins.push(plugin(opts))
+    }
+  }
 
   return css
 }
diff --git a/packages/vite/src/dev-bundler.ts b/packages/vite/src/dev-bundler.ts
index cf774c241d..e2d970b524 100644
--- a/packages/vite/src/dev-bundler.ts
+++ b/packages/vite/src/dev-bundler.ts
@@ -238,7 +238,13 @@ export async function initViteDevBundler (ctx: ViteBuildContext, onBuild: () =>
     const { code, ids } = await bundleRequest(options, ctx.entry)
     await fse.writeFile(resolve(ctx.nuxt.options.buildDir, 'dist/server/server.mjs'), code, 'utf-8')
     // Have CSS in the manifest to prevent FOUC on dev SSR
-    await writeManifest(ctx, ids.filter(isCSS).map(i => i.slice(1)))
+    const manifestIds: string[] = []
+    for (const i of ids) {
+      if (isCSS(i)) {
+        manifestIds.push(i.slice(1))
+      }
+    }
+    await writeManifest(ctx, manifestIds)
     const time = (Date.now() - start)
     logger.success(`Vite server built in ${time}ms`)
     await onBuild()
diff --git a/packages/vite/src/manifest.ts b/packages/vite/src/manifest.ts
index f5d3e7aa6a..54471633ec 100644
--- a/packages/vite/src/manifest.ts
+++ b/packages/vite/src/manifest.ts
@@ -50,11 +50,14 @@ export async function writeManifest (ctx: ViteBuildContext, css: string[] = [])
   await fse.mkdirp(serverDist)
 
   if (ctx.config.build?.cssCodeSplit === false) {
-    const entryCSS = Object.values(clientManifest as Record).find(val => (val).file?.endsWith('.css'))?.file
-    if (entryCSS) {
-      const key = relative(ctx.config.root!, ctx.entry)
-      clientManifest[key].css ||= []
-      clientManifest[key].css!.push(entryCSS)
+    for (const key in clientManifest as Record) {
+      const val = clientManifest[key]
+      if (val.file?.endsWith('.css')) {
+        const key = relative(ctx.config.root!, ctx.entry)
+        clientManifest[key].css ||= []
+        clientManifest[key].css!.push(val.file)
+        break
+      }
     }
   }
 
diff --git a/packages/vite/src/plugins/analyze.ts b/packages/vite/src/plugins/analyze.ts
index 3fa23b94b8..ddb923f244 100644
--- a/packages/vite/src/plugins/analyze.ts
+++ b/packages/vite/src/plugins/analyze.ts
@@ -3,6 +3,7 @@ import { transform } from 'esbuild'
 import { visualizer } from 'rollup-plugin-visualizer'
 import defu from 'defu'
 import type { NuxtOptions } from 'nuxt/schema'
+import type { RenderedModule } from 'rollup'
 import type { ViteBuildContext } from '../vite'
 
 export function analyzePlugin (ctx: ViteBuildContext): Plugin[] {
@@ -13,14 +14,18 @@ export function analyzePlugin (ctx: ViteBuildContext): Plugin[] {
     {
       name: 'nuxt:analyze-minify',
       async generateBundle (_opts, outputBundle) {
-        for (const [_bundleId, bundle] of Object.entries(outputBundle)) {
+        for (const _bundleId in outputBundle) {
+          const bundle = outputBundle[_bundleId]
           if (bundle.type !== 'chunk') { continue }
-          const originalEntries = Object.entries(bundle.modules)
-          const minifiedEntries = await Promise.all(originalEntries.map(async ([moduleId, module]) => {
-            const { code } = await transform(module.code || '', { minify: true })
-            return [moduleId, { ...module, code }]
-          }))
-          bundle.modules = Object.fromEntries(minifiedEntries)
+          const minifiedModuleEntryPromises: Array> = []
+          for (const moduleId in bundle.modules) {
+            const module = bundle.modules[moduleId]
+            minifiedModuleEntryPromises.push(
+              transform(module.code || '', { minify: true })
+                .then(result => [moduleId, { ...module, code: result.code }]),
+            )
+          }
+          bundle.modules = Object.fromEntries(await Promise.all(minifiedModuleEntryPromises))
         }
       },
     },
diff --git a/packages/vite/src/plugins/composable-keys.ts b/packages/vite/src/plugins/composable-keys.ts
index 4832d60e61..af967c9eb7 100644
--- a/packages/vite/src/plugins/composable-keys.ts
+++ b/packages/vite/src/plugins/composable-keys.ts
@@ -23,12 +23,15 @@ const SUPPORTED_EXT_RE = /\.(?:m?[jt]sx?|vue)/
 
 export const composableKeysPlugin = createUnplugin((options: ComposableKeysOptions) => {
   const composableMeta: Record = {}
+  const composableLengths = new Set()
+  const keyedFunctions = new Set()
   for (const { name, ...meta } of options.composables) {
     composableMeta[name] = meta
+    keyedFunctions.add(name)
+    composableLengths.add(meta.argumentLength)
   }
 
-  const maxLength = Math.max(...options.composables.map(({ argumentLength }) => argumentLength))
-  const keyedFunctions = new Set(options.composables.map(({ name }) => name))
+  const maxLength = Math.max(...composableLengths)
   const KEYED_FUNCTIONS_RE = new RegExp(`\\b(${[...keyedFunctions].map(f => escapeRE(f)).join('|')})\\b`)
 
   return {
diff --git a/packages/vite/src/plugins/public-dirs.ts b/packages/vite/src/plugins/public-dirs.ts
index 442b87e6e5..379d451819 100644
--- a/packages/vite/src/plugins/public-dirs.ts
+++ b/packages/vite/src/plugins/public-dirs.ts
@@ -25,7 +25,7 @@ export const VitePublicDirsPlugin = createUnplugin((options: { sourcemap?: boole
       resolveId: {
         enforce: 'post',
         handler (id) {
-          if (id === '/__skip_vite' || !id.startsWith('/') || id.startsWith('/@fs')) { return }
+          if (id === '/__skip_vite' || id[0] !== '/' || id.startsWith('/@fs')) { return }
 
           if (resolveFromPublicAssets(id)) {
             return PREFIX + encodeURIComponent(id)
diff --git a/packages/vite/src/plugins/ssr-styles.ts b/packages/vite/src/plugins/ssr-styles.ts
index 37fc7da1f7..b1e785c6e9 100644
--- a/packages/vite/src/plugins/ssr-styles.ts
+++ b/packages/vite/src/plugins/ssr-styles.ts
@@ -66,12 +66,12 @@ export function ssrStylesPlugin (options: SSRStylePluginOptions): Plugin {
         const { files, inBundle } = cssMap[file]
         // File has been tree-shaken out of build (or there are no styles to inline)
         if (!files.length || !inBundle) { continue }
-
+        const fileName = filename(file)
         const base = typeof outputOptions.assetFileNames === 'string'
           ? outputOptions.assetFileNames
           : outputOptions.assetFileNames({
             type: 'asset',
-            name: `${filename(file)}-styles.mjs`,
+            name: `${fileName}-styles.mjs`,
             source: '',
           })
 
@@ -79,7 +79,7 @@ export function ssrStylesPlugin (options: SSRStylePluginOptions): Plugin {
 
         emitted[file] = this.emitFile({
           type: 'asset',
-          name: `${filename(file)}-styles.mjs`,
+          name: `${fileName}-styles.mjs`,
           source: [
             ...files.map((css, i) => `import style_${i} from './${relative(baseDir, this.getFileName(css))}';`),
             `export default [${files.map((_, i) => `style_${i}`).join(', ')}]`,
diff --git a/packages/vite/src/server.ts b/packages/vite/src/server.ts
index 33965931a8..67919c8b2f 100644
--- a/packages/vite/src/server.ts
+++ b/packages/vite/src/server.ts
@@ -105,7 +105,7 @@ export async function buildServer (ctx: ViteBuildContext) {
 
   if (!ctx.nuxt.options.dev) {
     const nitroDependencies = await tryResolveModule('nitropack/package.json', ctx.nuxt.options.modulesDir)
-      .then(r => import(r!)).then(r => Object.keys(r.dependencies || {})).catch(() => [])
+      .then(r => import(r!)).then(r => r.dependencies ? Object.keys(r.dependencies) : []).catch(() => [])
     if (Array.isArray(serverConfig.ssr!.external)) {
       serverConfig.ssr!.external.push(
         // explicit dependencies we use in our ssr renderer - these can be inlined (if necessary) in the nitro build
diff --git a/packages/vite/src/utils/transpile.ts b/packages/vite/src/utils/transpile.ts
index 2484cc7034..8c60c1776a 100644
--- a/packages/vite/src/utils/transpile.ts
+++ b/packages/vite/src/utils/transpile.ts
@@ -10,7 +10,7 @@ interface Envs {
 
 export function transpile (envs: Envs): Array {
   const nuxt = useNuxt()
-  const transpile = []
+  const transpile: Array = []
 
   for (let pattern of nuxt.options.build.transpile) {
     if (typeof pattern === 'function') {
diff --git a/packages/vite/src/vite.ts b/packages/vite/src/vite.ts
index 1c6a9c82f4..b19b29ba0f 100644
--- a/packages/vite/src/vite.ts
+++ b/packages/vite/src/vite.ts
@@ -4,6 +4,7 @@ import { dirname, join, normalize, resolve } from 'pathe'
 import type { Nuxt, NuxtBuilder, ViteConfig } from '@nuxt/schema'
 import { addVitePlugin, isIgnored, logger, resolvePath } from '@nuxt/kit'
 import replace from '@rollup/plugin-replace'
+import type { RollupReplaceOptions } from '@rollup/plugin-replace'
 import { sanitizeFilePath } from 'mlly'
 import { withoutLeadingSlash } from 'ufo'
 import { filename } from 'pathe/utils'
@@ -102,10 +103,7 @@ export const bundle: NuxtBuilder['bundle'] = async (nuxt) => {
             rootDir: nuxt.options.rootDir,
             composables: nuxt.options.optimization.keyedComposables,
           }),
-          replace({
-            ...Object.fromEntries([';', '(', '{', '}', ' ', '\t', '\n'].map(d => [`${d}global.`, `${d}globalThis.`])),
-            preventAssignment: true,
-          }),
+          replace({ preventAssignment: true, ...globalThisReplacements }),
           virtual(nuxt.vfs),
         ],
         server: {
@@ -164,10 +162,16 @@ export const bundle: NuxtBuilder['bundle'] = async (nuxt) => {
   await nuxt.callHook('vite:extend', ctx)
 
   nuxt.hook('vite:extendConfig', (config) => {
-    config.plugins!.push(replace({
-      preventAssignment: true,
-      ...Object.fromEntries(Object.entries(config.define!).filter(([key]) => key.startsWith('import.meta.'))),
-    }))
+    const replaceOptions: RollupReplaceOptions = Object.create(null)
+    replaceOptions.preventAssignment = true
+
+    for (const key in config.define!) {
+      if (key.startsWith('import.meta.')) {
+        replaceOptions[key] = config.define![key]
+      }
+    }
+
+    config.plugins!.push(replace(replaceOptions))
   })
 
   if (!ctx.nuxt.options.dev) {
@@ -224,3 +228,5 @@ export const bundle: NuxtBuilder['bundle'] = async (nuxt) => {
   await buildClient(ctx)
   await buildServer(ctx)
 }
+
+const globalThisReplacements = Object.fromEntries([';', '(', '{', '}', ' ', '\t', '\n'].map(d => [`${d}global.`, `${d}globalThis.`]))
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index f38e4b444e..73b476bb7e 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -744,6 +744,9 @@ importers:
       '@types/fs-extra':
         specifier: 11.0.4
         version: 11.0.4
+      rollup:
+        specifier: ^4.18.0
+        version: 4.18.0
       unbuild:
         specifier: latest
         version: 2.0.0(sass@1.69.4)(typescript@5.4.5)

From 8af56b176182a63b93256dfbe66ac367af677334 Mon Sep 17 00:00:00 2001
From: Daniel Roe 
Date: Thu, 13 Jun 2024 23:35:57 +0100
Subject: [PATCH 091/580] fix(nuxt): include build-time pages in prerender
 routes (#27569)

---
 packages/nuxt/src/pages/module.ts | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/packages/nuxt/src/pages/module.ts b/packages/nuxt/src/pages/module.ts
index 3e5982ea3b..4121e0dd84 100644
--- a/packages/nuxt/src/pages/module.ts
+++ b/packages/nuxt/src/pages/module.ts
@@ -275,6 +275,20 @@ export default defineNuxtModule({
       }
     })
 
+    // TODO: inject routes in `200.html` in next nitro upgrade (2.9.7+) via https://github.com/unjs/nitro/pull/2517
+    if (!nuxt.options.dev && !nuxt.options._prepare) {
+      nuxt.hook('app:templatesGenerated', (app) => {
+        const nitro = useNitro()
+        if (nitro.options.prerender.crawlLinks) {
+          for (const page of app.pages!) {
+            if (page.path && !page.path.includes(':')) {
+              nitro.options.prerender.routes.push(page.path)
+            }
+          }
+        }
+      })
+    }
+
     nuxt.hook('imports:extend', (imports) => {
       imports.push(
         { name: 'definePageMeta', as: 'definePageMeta', from: resolve(runtimeDir, 'composables') },

From 51ab5de3e6c1c9451f8fc20a2ce15910452c5333 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu, 13 Jun 2024 23:36:38 +0100
Subject: [PATCH 092/580] chore(deps): pin devdependency rollup to 4.18.0
 (main) (#27603)

---
 packages/vite/package.json | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/packages/vite/package.json b/packages/vite/package.json
index 24c6384263..0960b6bf51 100644
--- a/packages/vite/package.json
+++ b/packages/vite/package.json
@@ -28,7 +28,7 @@
     "@types/clear": "0.1.4",
     "@types/estree": "1.0.5",
     "@types/fs-extra": "11.0.4",
-    "rollup": "^4.18.0",
+    "rollup": "4.18.0",
     "unbuild": "latest",
     "vue": "3.4.27"
   },

From 58dd7f3a684ff6e7f9e890edb3ec6cb1ba60c29b Mon Sep 17 00:00:00 2001
From: Daniel Roe 
Date: Fri, 14 Jun 2024 13:03:53 +0100
Subject: [PATCH 093/580] chore: remove stub types file for
 `webpack-virtual-modules`

---
 packages/webpack/package.json |  1 -
 pnpm-lock.yaml                | 11 -----------
 2 files changed, 12 deletions(-)

diff --git a/packages/webpack/package.json b/packages/webpack/package.json
index 3eb50c34e0..636293f8d1 100644
--- a/packages/webpack/package.json
+++ b/packages/webpack/package.json
@@ -77,7 +77,6 @@
     "@types/pify": "5.0.4",
     "@types/webpack-bundle-analyzer": "4.7.0",
     "@types/webpack-hot-middleware": "2.25.9",
-    "@types/webpack-virtual-modules": "0.4.2",
     "unbuild": "latest",
     "vue": "3.4.27"
   },
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 73b476bb7e..f771943c8e 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -907,9 +907,6 @@ importers:
       '@types/webpack-hot-middleware':
         specifier: 2.25.9
         version: 2.25.9
-      '@types/webpack-virtual-modules':
-        specifier: 0.4.2
-        version: 0.4.2
       unbuild:
         specifier: latest
         version: 2.0.0(sass@1.69.4)(typescript@5.4.5)
@@ -2718,10 +2715,6 @@ packages:
   '@types/webpack-sources@3.2.1':
     resolution: {integrity: sha512-iLC3Fsx62ejm3ST3PQ8vBMC54Rb3EoCprZjeJGI5q+9QjfDLGt9jeg/k245qz1G9AQnORGk0vqPicJFPT1QODQ==}
 
-  '@types/webpack-virtual-modules@0.4.2':
-    resolution: {integrity: sha512-0ff/n3TXx1FysQV/kSpF8bxnCXUf7cw3Mp6WbXq0IfrgFK/MBIZqAQFN7VUkGwRzHZb+9DfLPZ3dOI+/L+m9ww==}
-    deprecated: This is a stub types definition. webpack-virtual-modules provides its own type definitions, so you do not need this installed.
-
   '@types/webpack@4.41.34':
     resolution: {integrity: sha512-CN2aOGrR3zbMc2v+cKqzaClYP1ldkpPOgtdNvgX+RmlWCSWxHxpzz6WSCVQZRkF8D60ROlkRzAoEpgjWQ+bd2g==}
 
@@ -9593,10 +9586,6 @@ snapshots:
       '@types/source-list-map': 0.1.4
       source-map: 0.7.4
 
-  '@types/webpack-virtual-modules@0.4.2':
-    dependencies:
-      webpack-virtual-modules: 0.6.2
-
   '@types/webpack@4.41.34':
     dependencies:
       '@types/node': 20.14.2

From 4b28d2628c5feff41898c7796e686aab3a91d8cf Mon Sep 17 00:00:00 2001
From: Daniel Roe 
Date: Fri, 14 Jun 2024 14:15:41 +0100
Subject: [PATCH 094/580] docs: update compatibility example

https://github.com/nuxt/nuxt/issues/27613
---
 docs/2.guide/3.going-further/3.modules.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/docs/2.guide/3.going-further/3.modules.md b/docs/2.guide/3.going-further/3.modules.md
index 8c354e5e21..7582e90617 100644
--- a/docs/2.guide/3.going-further/3.modules.md
+++ b/docs/2.guide/3.going-further/3.modules.md
@@ -155,7 +155,7 @@ export default defineNuxtModule({
     // Compatibility constraints
     compatibility: {
       // Semver version of supported nuxt versions
-      nuxt: '^3.0.0'
+      nuxt: '>=3.0.0'
     }
   },
   // Default configuration options for your module, can also be a function returning those

From 18bc2c8bfcc006f3bcd7a2d1323b2d5fe1b5fc57 Mon Sep 17 00:00:00 2001
From: David Nahodyl 
Date: Fri, 14 Jun 2024 09:46:41 -0400
Subject: [PATCH 095/580] docs: document new `clear()` function added in 3.11
 (#27615)

---
 docs/3.api/2.composables/use-async-data.md | 5 +++--
 docs/3.api/2.composables/use-fetch.md      | 7 ++++---
 2 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/docs/3.api/2.composables/use-async-data.md b/docs/3.api/2.composables/use-async-data.md
index 0885af2107..b839fb1d08 100644
--- a/docs/3.api/2.composables/use-async-data.md
+++ b/docs/3.api/2.composables/use-async-data.md
@@ -18,7 +18,7 @@ Within your pages, components, and plugins you can use useAsyncData to get acces
 
 ```vue [pages/index.vue]
 
 ```
 
 ::note
-`data`, `pending`, `status` and `error` are Vue refs and they should be accessed with `.value` when used within the `
+
+
+`, 'hello.server.vue')
+
+      expect(normalizeLineEndings(result)).toMatchInlineSnapshot(`
+        "
+
+        
+        "
+      `)
+    })
+
     it('expect slot fallback transform to match inline snapshot', async () => {
       const result = await viteTransform(`
               
 
 
diff --git a/test/nuxt/composables.test.ts b/test/nuxt/composables.test.ts
index e22488309b..f924bf6d36 100644
--- a/test/nuxt/composables.test.ts
+++ b/test/nuxt/composables.test.ts
@@ -20,8 +20,6 @@ import { callOnce } from '#app/composables/once'
 import { useLoadingIndicator } from '#app/composables/loading-indicator'
 import { useRouteAnnouncer } from '#app/composables/route-announcer'
 
-import { asyncDataDefaults, nuxtDefaultErrorValue } from '#build/nuxt.config.mjs'
-
 registerEndpoint('/api/test', defineEventHandler(event => ({
   method: event.method,
   headers: Object.fromEntries(event.headers.entries()),
@@ -128,7 +126,7 @@ describe('useAsyncData', () => {
       ]
     `)
     expect(res instanceof Promise).toBeTruthy()
-    expect(res.data.value).toBe(asyncDataDefaults.value)
+    expect(res.data.value).toBe(undefined)
     await res
     expect(res.data.value).toBe('test')
   })
@@ -140,7 +138,7 @@ describe('useAsyncData', () => {
     expect(immediate.pending.value).toBe(false)
 
     const nonimmediate = await useAsyncData(() => Promise.resolve('test'), { immediate: false })
-    expect(nonimmediate.data.value).toBe(asyncDataDefaults.value)
+    expect(nonimmediate.data.value).toBe(undefined)
     expect(nonimmediate.status.value).toBe('idle')
     expect(nonimmediate.pending.value).toBe(true)
   })
@@ -165,9 +163,9 @@ describe('useAsyncData', () => {
   // https://github.com/nuxt/nuxt/issues/23411
   it('should initialize with error set to null when immediate: false', async () => {
     const { error, execute } = useAsyncData(() => Promise.resolve({}), { immediate: false })
-    expect(error.value).toBe(asyncDataDefaults.errorValue)
+    expect(error.value).toBe(undefined)
     await execute()
-    expect(error.value).toBe(asyncDataDefaults.errorValue)
+    expect(error.value).toBe(undefined)
   })
 
   it('should be accessible with useNuxtData', async () => {
@@ -208,9 +206,8 @@ describe('useAsyncData', () => {
 
     clear()
 
-    // TODO: update to asyncDataDefaults.value in v4
     expect(data.value).toBeUndefined()
-    expect(error.value).toBe(asyncDataDefaults.errorValue)
+    expect(error.value).toBe(undefined)
     expect(pending.value).toBe(false)
     expect(status.value).toBe('idle')
   })
@@ -354,7 +351,7 @@ describe('errors', () => {
     showError('new error')
     expect(error.value).toMatchInlineSnapshot('[Error: new error]')
     clearError()
-    expect(error.value).toBe(nuxtDefaultErrorValue)
+    expect(error.value).toBe(undefined)
   })
 })
 
@@ -620,7 +617,7 @@ describe('routing utilities: `abortNavigation`', () => {
   it('should throw an error if one is provided', () => {
     const error = useError()
     expect(() => abortNavigation({ message: 'Page not found' })).toThrowErrorMatchingInlineSnapshot('[Error: Page not found]')
-    expect(error.value).toBe(nuxtDefaultErrorValue)
+    expect(error.value).toBe(undefined)
   })
   it('should block navigation if no error is provided', () => {
     expect(abortNavigation()).toMatchInlineSnapshot('false')

From bbcab053bc0fd1a5eadb0f0bdebb192c668e9d42 Mon Sep 17 00:00:00 2001
From: Daniel Roe 
Date: Wed, 19 Jun 2024 18:16:04 +0100
Subject: [PATCH 139/580] ci: run workflows against 3.x branch as well

---
 .github/workflows/check-links.yml | 1 +
 .github/workflows/ci.yml          | 2 ++
 .github/workflows/docs.yml        | 1 +
 .github/workflows/introspect.yml  | 2 ++
 .github/workflows/label-pr.yml    | 1 +
 .github/workflows/scorecards.yml  | 2 +-
 6 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/.github/workflows/check-links.yml b/.github/workflows/check-links.yml
index 14a3db9075..f07aa5b898 100644
--- a/.github/workflows/check-links.yml
+++ b/.github/workflows/check-links.yml
@@ -7,6 +7,7 @@ on:
       - "*.md"
     branches:
       - main
+      - 3.x
 
 # Remove default permissions of GITHUB_TOKEN for security
 # https://docs.github.com/en/actions/using-jobs/assigning-permissions-to-jobs
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index f418e8f084..818fd6e27d 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -7,12 +7,14 @@ on:
       - "*.md"
     branches:
       - main
+      - 3.x
   pull_request:
     paths-ignore:
       - "docs/**"
       - "*.md"
     branches:
       - main
+      - 3.x
       - "!v[0-9]*"
 
 # https://github.com/vitejs/vite/blob/main/.github/workflows/ci.yml
diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml
index 624cafa244..b6ce923d60 100644
--- a/.github/workflows/docs.yml
+++ b/.github/workflows/docs.yml
@@ -9,6 +9,7 @@ on:
     # autofix workflow will be triggered instead for PRs
     branches:
       - main
+      - 3.x
       - "!v[0-9]*"
 
 # Remove default permissions of GITHUB_TOKEN for security
diff --git a/.github/workflows/introspect.yml b/.github/workflows/introspect.yml
index 6b7f4fd586..0820e5407f 100644
--- a/.github/workflows/introspect.yml
+++ b/.github/workflows/introspect.yml
@@ -6,11 +6,13 @@ on:
       - ".github/workflows/**"
     branches:
       - main
+      - 3.x
   pull_request:
     paths:
       - ".github/workflows/**"
     branches:
       - main
+      - 3.x
       - "!v[0-9]*"
 
 permissions:
diff --git a/.github/workflows/label-pr.yml b/.github/workflows/label-pr.yml
index 9d462f9f8c..c173cee01d 100644
--- a/.github/workflows/label-pr.yml
+++ b/.github/workflows/label-pr.yml
@@ -6,6 +6,7 @@ on:
       - opened
     branches:
       - main
+      - 3.x
 
 jobs:
   add-pr-labels:
diff --git a/.github/workflows/scorecards.yml b/.github/workflows/scorecards.yml
index fb0b7dc233..ed941c8316 100644
--- a/.github/workflows/scorecards.yml
+++ b/.github/workflows/scorecards.yml
@@ -12,7 +12,7 @@ on:
   schedule:
     - cron: '20 7 * * 2'
   push:
-    branches: ["main"]
+    branches: ["main", "3.x"]
 
 # Declare default permissions as read only.
 permissions: read-all

From 18f072440255278765902c736e533478406462eb Mon Sep 17 00:00:00 2001
From: Daniel Roe 
Date: Wed, 19 Jun 2024 18:14:12 +0100
Subject: [PATCH 140/580] fix(nuxt): support hoisting types of subpath imports
 (#27720)

---
 packages/nuxt/src/core/nuxt.ts           | 32 ++++++++++++++++++------
 packages/schema/src/config/typescript.ts |  1 +
 2 files changed, 25 insertions(+), 8 deletions(-)

diff --git a/packages/nuxt/src/core/nuxt.ts b/packages/nuxt/src/core/nuxt.ts
index 05a53cfa4d..a121ab8442 100644
--- a/packages/nuxt/src/core/nuxt.ts
+++ b/packages/nuxt/src/core/nuxt.ts
@@ -102,18 +102,34 @@ async function initNuxt (nuxt: Nuxt) {
     // ignore packages that exist in `package.json` as these can be resolved by TypeScript
     if (dependencies.has(pkg) && !(pkg in nightlies)) { return [] }
 
-    // deduplicate types for nightly releases
-    if (pkg in nightlies) {
-      const nightly = nightlies[pkg as keyof typeof nightlies]
-      const path = await _resolvePath(nightly, { url: nuxt.options.modulesDir }).then(r => resolvePackageJSON(r)).catch(() => null)
-      if (path) {
-        return [[pkg, [dirname(path)]], [nightly, [dirname(path)]]]
+    const [_pkg = pkg, _subpath] = /^[^@]+\//.test(pkg) ? pkg.split('/') : [pkg]
+    const subpath = _subpath ? '/' + _subpath : ''
+
+    async function resolveTypePath (path: string) {
+      try {
+        const r = await _resolvePath(path, { url: nuxt.options.modulesDir, conditions: ['types', 'import', 'require'] })
+        if (subpath) {
+          return r.replace(/(?:\.d)?\.[mc]?[jt]s$/, '')
+        }
+        const rootPath = await resolvePackageJSON(r)
+        return dirname(rootPath)
+      } catch {
+        return null
       }
     }
 
-    const path = await _resolvePath(pkg, { url: nuxt.options.modulesDir }).then(r => resolvePackageJSON(r)).catch(() => null)
+    // deduplicate types for nightly releases
+    if (_pkg in nightlies) {
+      const nightly = nightlies[pkg as keyof typeof nightlies]
+      const path = await resolveTypePath(nightly + subpath)
+      if (path) {
+        return [[pkg, [path]], [nightly + subpath, [path]]]
+      }
+    }
+
+    const path = await resolveTypePath(pkg + subpath)
     if (path) {
-      return [[pkg, [dirname(path)]]]
+      return [[pkg, [path]]]
     }
 
     return []
diff --git a/packages/schema/src/config/typescript.ts b/packages/schema/src/config/typescript.ts
index ccb8b54cbc..3586d16ab7 100644
--- a/packages/schema/src/config/typescript.ts
+++ b/packages/schema/src/config/typescript.ts
@@ -47,6 +47,7 @@ export default defineUntypedSchema({
           '@vue/compiler-sfc',
           '@vue/runtime-dom',
           'vue-router',
+          'vue-router/auto',
           '@nuxt/schema',
           'nuxt',
         ]

From cc2e56c71209832fd936c7ca20aefb56e783e8e3 Mon Sep 17 00:00:00 2001
From: Aviv Keller <38299977+RedYetiDev@users.noreply.github.com>
Date: Wed, 19 Jun 2024 13:09:04 -0600
Subject: [PATCH 141/580] ci: use correct SHA calculation for release-pr action
 (#27604)

---
 .github/workflows/release-pr.yml | 19 +++++++++++++++++--
 1 file changed, 17 insertions(+), 2 deletions(-)

diff --git a/.github/workflows/release-pr.yml b/.github/workflows/release-pr.yml
index 7a45a29223..d2151ea277 100644
--- a/.github/workflows/release-pr.yml
+++ b/.github/workflows/release-pr.yml
@@ -29,10 +29,25 @@ jobs:
         env:
           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
 
+      - name: Get PR Info
+        id: pr
+        env:
+          PR_NUMBER: ${{ github.event.issue.number }}
+          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+          GH_REPO: ${{ github.repository }}
+          COMMENT_AT: ${{ github.event.comment.created_at }}
+        run: |
+          pr="$(gh api -H "Accept: application/vnd.github+json" -H "X-GitHub-Api-Version: 2022-11-28" /repos/${GH_REPO}/pulls/${PR_NUMBER})"
+          head_sha="$(echo "$pr" | jq -r .head.sha)"
+          updated_at="$(echo "$pr" | jq -r .updated_at)"
+
+          if [[ $(date -d $updated_at) > $(date -d $COMMENT_AT) ]]; exit 1; fi
+          
+          echo "head_sha=$head_sha" >> $GITHUB_OUTPUT
       - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
         with:
-          ref: ${{ github.event.issue.pull_request.head.sha }}
-          fetch-depth: 0
+          ref: ${{ steps.pr.outputs.head_sha }}
+          fetch-depth: 1
 
       - run: corepack enable
       - uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2

From 95ea3f2aee87e62a2b101ffe0a6bb729107b85c7 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Wed, 19 Jun 2024 21:51:38 +0100
Subject: [PATCH 142/580] chore(deps): update all non-major dependencies (main)
 (#27721)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
 package.json                  |   2 +-
 packages/kit/package.json     |   2 +-
 packages/schema/package.json  |   2 +-
 packages/webpack/package.json |   2 +-
 pnpm-lock.yaml                | 310 +++++++++++++++++-----------------
 5 files changed, 159 insertions(+), 159 deletions(-)

diff --git a/package.json b/package.json
index 8be65ba751..0f59b33e78 100644
--- a/package.json
+++ b/package.json
@@ -54,7 +54,7 @@
     "@testing-library/vue": "8.1.0",
     "@types/eslint__js": "8.42.3",
     "@types/fs-extra": "11.0.4",
-    "@types/node": "20.14.5",
+    "@types/node": "20.14.6",
     "@types/semver": "7.5.8",
     "@unhead/schema": "1.9.13",
     "@vitejs/plugin-vue": "5.0.4",
diff --git a/packages/kit/package.json b/packages/kit/package.json
index 2a5934ef29..9fd8c6fea7 100644
--- a/packages/kit/package.json
+++ b/packages/kit/package.json
@@ -53,7 +53,7 @@
     "unbuild": "latest",
     "vite": "5.3.1",
     "vitest": "1.6.0",
-    "webpack": "5.92.0"
+    "webpack": "5.92.1"
   },
   "engines": {
     "node": "^14.18.0 || >=16.10.0"
diff --git a/packages/schema/package.json b/packages/schema/package.json
index 6bb65341f7..9c8ac00cf2 100644
--- a/packages/schema/package.json
+++ b/packages/schema/package.json
@@ -59,7 +59,7 @@
     "vue-bundle-renderer": "2.1.0",
     "vue-loader": "17.4.2",
     "vue-router": "4.3.3",
-    "webpack": "5.92.0",
+    "webpack": "5.92.1",
     "webpack-dev-middleware": "7.2.1"
   },
   "dependencies": {
diff --git a/packages/webpack/package.json b/packages/webpack/package.json
index 9decffb708..a21e928350 100644
--- a/packages/webpack/package.json
+++ b/packages/webpack/package.json
@@ -62,7 +62,7 @@
     "url-loader": "^4.1.1",
     "vue-bundle-renderer": "^2.1.0",
     "vue-loader": "^17.4.2",
-    "webpack": "^5.92.0",
+    "webpack": "^5.92.1",
     "webpack-bundle-analyzer": "^4.10.2",
     "webpack-dev-middleware": "^7.2.1",
     "webpack-hot-middleware": "^2.26.1",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 495f3195b1..27555ee7ea 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -31,7 +31,7 @@ importers:
         version: link:packages/kit
       '@nuxt/test-utils':
         specifier: 3.13.1
-        version: 3.13.1(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.4.5)))(@vue/test-utils@2.4.6)(h3@1.11.1)(happy-dom@14.12.0)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.44.1)(vite@5.3.1(@types/node@20.14.5)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.5)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.3(vue@3.4.29(typescript@5.4.5)))(vue@3.4.29(typescript@5.4.5))
+        version: 3.13.1(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.4.5)))(@vue/test-utils@2.4.6)(h3@1.11.1)(happy-dom@14.12.0)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.44.1)(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.6)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.3(vue@3.4.29(typescript@5.4.5)))(vue@3.4.29(typescript@5.4.5))
       '@nuxt/webpack-builder':
         specifier: workspace:*
         version: link:packages/webpack
@@ -45,8 +45,8 @@ importers:
         specifier: 11.0.4
         version: 11.0.4
       '@types/node':
-        specifier: 20.14.5
-        version: 20.14.5
+        specifier: 20.14.6
+        version: 20.14.6
       '@types/semver':
         specifier: 7.5.8
         version: 7.5.8
@@ -55,10 +55,10 @@ importers:
         version: 1.9.13
       '@vitejs/plugin-vue':
         specifier: 5.0.4
-        version: 5.0.4(vite@5.3.1(@types/node@20.14.5)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))
+        version: 5.0.4(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))
       '@vitest/coverage-v8':
         specifier: 1.6.0
-        version: 1.6.0(vitest@1.6.0(@types/node@20.14.5)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))
+        version: 1.6.0(vitest@1.6.0(@types/node@20.14.6)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))
       '@vue/test-utils':
         specifier: 2.4.6
         version: 2.4.6
@@ -145,10 +145,10 @@ importers:
         version: 1.5.3
       vitest:
         specifier: 1.6.0
-        version: 1.6.0(@types/node@20.14.5)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0)
+        version: 1.6.0(@types/node@20.14.6)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0)
       vitest-environment-nuxt:
         specifier: 1.0.0
-        version: 1.0.0(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.4.5)))(@vue/test-utils@2.4.6)(h3@1.11.1)(happy-dom@14.12.0)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.44.1)(vite@5.3.1(@types/node@20.14.5)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.5)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.3(vue@3.4.29(typescript@5.4.5)))(vue@3.4.29(typescript@5.4.5))
+        version: 1.0.0(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.4.5)))(@vue/test-utils@2.4.6)(h3@1.11.1)(happy-dom@14.12.0)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.44.1)(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.6)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.3(vue@3.4.29(typescript@5.4.5)))(vue@3.4.29(typescript@5.4.5))
       vue:
         specifier: 3.4.29
         version: 3.4.29(typescript@5.4.5)
@@ -233,13 +233,13 @@ importers:
         version: 2.0.0(sass@1.69.4)(typescript@5.4.5)
       vite:
         specifier: 5.3.1
-        version: 5.3.1(@types/node@20.14.5)(sass@1.69.4)(terser@5.27.0)
+        version: 5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0)
       vitest:
         specifier: 1.6.0
-        version: 1.6.0(@types/node@20.14.5)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0)
+        version: 1.6.0(@types/node@20.14.6)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0)
       webpack:
-        specifier: 5.92.0
-        version: 5.92.0
+        specifier: 5.92.1
+        version: 5.92.1
 
   packages/nuxt:
     dependencies:
@@ -248,7 +248,7 @@ importers:
         version: 2.0.2
       '@nuxt/devtools':
         specifier: ^1.3.3
-        version: 1.3.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))
+        version: 1.3.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))
       '@nuxt/kit':
         specifier: workspace:*
         version: link:../kit
@@ -420,7 +420,7 @@ importers:
     devDependencies:
       '@nuxt/scripts':
         specifier: 0.5.1
-        version: 0.5.1(@nuxt/devtools@1.3.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5)))(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(@vue/compiler-core@3.4.29)(ioredis@5.3.2)(nuxt@packages+nuxt)(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))(webpack@5.92.0(esbuild@0.21.5))
+        version: 0.5.1(@nuxt/devtools@1.3.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5)))(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(@vue/compiler-core@3.4.29)(ioredis@5.3.2)(nuxt@packages+nuxt)(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))(webpack@5.92.1(esbuild@0.21.5))
       '@nuxt/ui-templates':
         specifier: workspace:*
         version: link:../ui-templates
@@ -508,10 +508,10 @@ importers:
         version: 1.9.13
       '@vitejs/plugin-vue':
         specifier: 5.0.4
-        version: 5.0.4(vite@5.3.1(@types/node@20.14.5)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))
+        version: 5.0.4(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))
       '@vitejs/plugin-vue-jsx':
         specifier: 4.0.0
-        version: 4.0.0(vite@5.3.1(@types/node@20.14.5)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))
+        version: 4.0.0(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))
       '@vue/compiler-core':
         specifier: 3.4.29
         version: 3.4.29
@@ -526,7 +526,7 @@ importers:
         version: 1.11.1(magicast@0.3.4)
       esbuild-loader:
         specifier: 4.2.0
-        version: 4.2.0(webpack@5.92.0)
+        version: 4.2.0(webpack@5.92.1)
       h3:
         specifier: 1.11.1
         version: 1.11.1
@@ -550,7 +550,7 @@ importers:
         version: 1.9.0
       vite:
         specifier: 5.3.1
-        version: 5.3.1(@types/node@20.14.5)(sass@1.69.4)(terser@5.27.0)
+        version: 5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0)
       vue:
         specifier: 3.4.29
         version: 3.4.29(typescript@5.4.5)
@@ -559,16 +559,16 @@ importers:
         version: 2.1.0
       vue-loader:
         specifier: 17.4.2
-        version: 17.4.2(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.4.5))(webpack@5.92.0)
+        version: 17.4.2(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.4.5))(webpack@5.92.1)
       vue-router:
         specifier: 4.3.3
         version: 4.3.3(vue@3.4.29(typescript@5.4.5))
       webpack:
-        specifier: 5.92.0
-        version: 5.92.0
+        specifier: 5.92.1
+        version: 5.92.1
       webpack-dev-middleware:
         specifier: 7.2.1
-        version: 7.2.1(webpack@5.92.0)
+        version: 7.2.1(webpack@5.92.1)
 
   packages/ui-templates:
     devDependencies:
@@ -607,10 +607,10 @@ importers:
         version: 1.3.0
       unocss:
         specifier: 0.61.0
-        version: 0.61.0(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.5)(sass@1.69.4)(terser@5.27.0))
+        version: 0.61.0(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0))
       vite:
         specifier: 5.3.1
-        version: 5.3.1(@types/node@20.14.5)(sass@1.69.4)(terser@5.27.0)
+        version: 5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0)
 
   packages/vite:
     dependencies:
@@ -622,10 +622,10 @@ importers:
         version: 5.0.7(rollup@4.18.0)
       '@vitejs/plugin-vue':
         specifier: ^5.0.4
-        version: 5.0.4(vite@5.3.1(@types/node@20.14.5)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))
+        version: 5.0.4(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))
       '@vitejs/plugin-vue-jsx':
         specifier: ^4.0.0
-        version: 4.0.0(vite@5.3.1(@types/node@20.14.5)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))
+        version: 4.0.0(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))
       autoprefixer:
         specifier: ^10.4.19
         version: 10.4.19(postcss@8.4.38)
@@ -706,13 +706,13 @@ importers:
         version: 1.10.1
       vite:
         specifier: 5.3.1
-        version: 5.3.1(@types/node@20.14.5)(sass@1.69.4)(terser@5.27.0)
+        version: 5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0)
       vite-node:
         specifier: ^1.6.0
-        version: 1.6.0(@types/node@20.14.5)(sass@1.69.4)(terser@5.27.0)
+        version: 1.6.0(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0)
       vite-plugin-checker:
         specifier: ^0.6.4
-        version: 0.6.4(eslint@9.5.0)(optionator@0.9.3)(typescript@5.4.5)(vite@5.3.1(@types/node@20.14.5)(sass@1.69.4)(terser@5.27.0))(vue-tsc@2.0.21(typescript@5.4.5))
+        version: 0.6.4(eslint@9.5.0)(optionator@0.9.3)(typescript@5.4.5)(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0))(vue-tsc@2.0.21(typescript@5.4.5))
       vue-bundle-renderer:
         specifier: ^2.1.0
         version: 2.1.0
@@ -743,7 +743,7 @@ importers:
     dependencies:
       '@nuxt/friendly-errors-webpack-plugin':
         specifier: ^2.6.0
-        version: 2.6.0(webpack@5.92.0)
+        version: 2.6.0(webpack@5.92.1)
       '@nuxt/kit':
         specifier: workspace:*
         version: link:../kit
@@ -752,10 +752,10 @@ importers:
         version: 10.4.19(postcss@8.4.38)
       css-loader:
         specifier: ^7.1.2
-        version: 7.1.2(webpack@5.92.0)
+        version: 7.1.2(webpack@5.92.1)
       css-minimizer-webpack-plugin:
         specifier: ^7.0.0
-        version: 7.0.0(webpack@5.92.0)
+        version: 7.0.0(webpack@5.92.1)
       cssnano:
         specifier: ^7.0.3
         version: 7.0.3(postcss@8.4.38)
@@ -764,7 +764,7 @@ importers:
         version: 6.1.4
       esbuild-loader:
         specifier: ^4.2.0
-        version: 4.2.0(webpack@5.92.0)
+        version: 4.2.0(webpack@5.92.1)
       escape-string-regexp:
         specifier: ^5.0.0
         version: 5.0.0
@@ -773,10 +773,10 @@ importers:
         version: 3.0.3
       file-loader:
         specifier: ^6.2.0
-        version: 6.2.0(webpack@5.92.0)
+        version: 6.2.0(webpack@5.92.1)
       fork-ts-checker-webpack-plugin:
         specifier: ^9.0.2
-        version: 9.0.2(typescript@5.4.5)(webpack@5.92.0)
+        version: 9.0.2(typescript@5.4.5)(webpack@5.92.1)
       fs-extra:
         specifier: ^11.2.0
         version: 11.2.0
@@ -797,7 +797,7 @@ importers:
         version: 4.9.3
       mini-css-extract-plugin:
         specifier: ^2.9.0
-        version: 2.9.0(webpack@5.92.0)
+        version: 2.9.0(webpack@5.92.1)
       mlly:
         specifier: ^1.7.1
         version: 1.7.1
@@ -821,7 +821,7 @@ importers:
         version: 2.0.0
       postcss-loader:
         specifier: ^8.1.1
-        version: 8.1.1(postcss@8.4.38)(typescript@5.4.5)(webpack@5.92.0)
+        version: 8.1.1(postcss@8.4.38)(typescript@5.4.5)(webpack@5.92.1)
       postcss-url:
         specifier: ^10.1.3
         version: 10.1.3(postcss@8.4.38)
@@ -833,7 +833,7 @@ importers:
         version: 3.7.0
       time-fix-plugin:
         specifier: ^2.0.7
-        version: 2.0.7(webpack@5.92.0)
+        version: 2.0.7(webpack@5.92.1)
       ufo:
         specifier: ^1.5.3
         version: 1.5.3
@@ -845,22 +845,22 @@ importers:
         version: 1.10.1
       url-loader:
         specifier: ^4.1.1
-        version: 4.1.1(file-loader@6.2.0(webpack@5.92.0))(webpack@5.92.0)
+        version: 4.1.1(file-loader@6.2.0(webpack@5.92.1))(webpack@5.92.1)
       vue-bundle-renderer:
         specifier: ^2.1.0
         version: 2.1.0
       vue-loader:
         specifier: ^17.4.2
-        version: 17.4.2(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.4.5))(webpack@5.92.0)
+        version: 17.4.2(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.4.5))(webpack@5.92.1)
       webpack:
-        specifier: ^5.92.0
-        version: 5.92.0
+        specifier: ^5.92.1
+        version: 5.92.1
       webpack-bundle-analyzer:
         specifier: ^4.10.2
         version: 4.10.2
       webpack-dev-middleware:
         specifier: ^7.2.1
-        version: 7.2.1(webpack@5.92.0)
+        version: 7.2.1(webpack@5.92.1)
       webpack-hot-middleware:
         specifier: ^2.26.1
         version: 2.26.1
@@ -869,7 +869,7 @@ importers:
         version: 0.6.2
       webpackbar:
         specifier: ^6.0.1
-        version: 6.0.1(webpack@5.92.0)
+        version: 6.0.1(webpack@5.92.1)
     devDependencies:
       '@nuxt/schema':
         specifier: workspace:*
@@ -971,7 +971,7 @@ importers:
         version: 0.7.0(rollup@4.18.0)(vue-router@4.3.3(vue@3.4.29(typescript@5.4.5)))(vue@3.4.29(typescript@5.4.5))
       vitest:
         specifier: 1.6.0
-        version: 1.6.0(@types/node@20.14.5)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0)
+        version: 1.6.0(@types/node@20.14.6)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0)
       vue:
         specifier: 3.4.29
         version: 3.4.29(typescript@5.4.5)
@@ -2547,8 +2547,8 @@ packages:
   '@types/node@20.14.2':
     resolution: {integrity: sha512-xyu6WAMVwv6AKFLB+e/7ySZVr/0zLCzOa7rSpq6jNwpqOrUbcACDWC+53d4n2QHOnDou0fbIsg8wZu/sxrnI4Q==}
 
-  '@types/node@20.14.5':
-    resolution: {integrity: sha512-aoRR+fJkZT2l0aGOJhuA8frnCSoNX6W7U2mpNq63+BxBIj5BQFt8rHy627kijCmm63ijdSdwvGgpUsU6MBsZZA==}
+  '@types/node@20.14.6':
+    resolution: {integrity: sha512-JbA0XIJPL1IiNnU7PFxDXyfAwcwVVrOoqyzzyQTyMeVhBzkJVMSkC1LlVsRQ2lpqiY4n6Bb9oCS6lzDKVQxbZw==}
 
   '@types/normalize-package-data@2.4.4':
     resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==}
@@ -7504,8 +7504,8 @@ packages:
   webpack-virtual-modules@0.6.2:
     resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==}
 
-  webpack@5.92.0:
-    resolution: {integrity: sha512-Bsw2X39MYIgxouNATyVpCNVWBCuUwDgWtN78g6lSdPJRLaQ/PUVm/oXcaRAyY/sMFoKFQrsPeqvTizWtq7QPCA==}
+  webpack@5.92.1:
+    resolution: {integrity: sha512-JECQ7IwJb+7fgUFBlrJzbyu3GEuNBcdqr1LD7IbSzwkSmIevTm8PF+wej3Oxuz/JFBUZ6O1o43zsPkwm1C4TmA==}
     engines: {node: '>=10.13.0'}
     hasBin: true
     peerDependencies:
@@ -7714,7 +7714,7 @@ snapshots:
     dependencies:
       '@babel/compat-data': 7.24.7
       '@babel/helper-validator-option': 7.24.7
-      browserslist: 4.23.0
+      browserslist: 4.23.1
       lru-cache: 5.1.1
       semver: 6.3.1
 
@@ -8320,7 +8320,7 @@ snapshots:
       '@jest/schemas': 29.6.3
       '@types/istanbul-lib-coverage': 2.0.5
       '@types/istanbul-reports': 3.0.3
-      '@types/node': 20.14.5
+      '@types/node': 20.14.6
       '@types/yargs': 17.0.28
       chalk: 4.1.2
 
@@ -8484,18 +8484,18 @@ snapshots:
       nuxt: link:packages/nuxt
       vite: 5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)
 
-  '@nuxt/devtools-ui-kit@1.3.3(@nuxt/devtools@1.3.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5)))(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(@vue/compiler-core@3.4.29)(nuxt@packages+nuxt)(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))(webpack@5.92.0(esbuild@0.21.5))':
+  '@nuxt/devtools-ui-kit@1.3.3(@nuxt/devtools@1.3.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5)))(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(@vue/compiler-core@3.4.29)(nuxt@packages+nuxt)(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))(webpack@5.92.1(esbuild@0.21.5))':
     dependencies:
       '@iconify-json/carbon': 1.1.35
       '@iconify-json/logos': 1.1.43
       '@iconify-json/ri': 1.1.20
       '@iconify-json/tabler': 1.1.113
-      '@nuxt/devtools': 1.3.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))
+      '@nuxt/devtools': 1.3.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))
       '@nuxt/devtools-kit': 1.3.3(nuxt@packages+nuxt)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))
       '@nuxt/kit': link:packages/kit
       '@nuxtjs/color-mode': 3.4.1
       '@unocss/core': 0.60.4
-      '@unocss/nuxt': 0.60.4(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(webpack@5.92.0(esbuild@0.21.5))
+      '@unocss/nuxt': 0.60.4(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(webpack@5.92.1(esbuild@0.21.5))
       '@unocss/preset-attributify': 0.60.4
       '@unocss/preset-icons': 0.60.4
       '@unocss/preset-mini': 0.60.4
@@ -8506,7 +8506,7 @@ snapshots:
       defu: 6.1.4
       focus-trap: 7.5.4
       splitpanes: 3.1.5
-      unocss: 0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))
+      unocss: 0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))
       v-lazy-show: 0.2.4(@vue/compiler-core@3.4.29)
     transitivePeerDependencies:
       - '@unocss/webpack'
@@ -8544,13 +8544,13 @@ snapshots:
       rc9: 2.1.2
       semver: 7.6.2
 
-  '@nuxt/devtools@1.3.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))':
+  '@nuxt/devtools@1.3.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))':
     dependencies:
       '@antfu/utils': 0.7.8
       '@nuxt/devtools-kit': 1.3.3(nuxt@packages+nuxt)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))
       '@nuxt/devtools-wizard': 1.3.3
       '@nuxt/kit': link:packages/kit
-      '@vue/devtools-applet': 7.1.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.4.5)))(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))
+      '@vue/devtools-applet': 7.1.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.4.5)))(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))
       '@vue/devtools-core': 7.1.3(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))
       '@vue/devtools-kit': 7.1.3(vue@3.4.29(typescript@5.4.5))
       birpc: 0.2.17
@@ -8642,18 +8642,18 @@ snapshots:
       - supports-color
       - typescript
 
-  '@nuxt/friendly-errors-webpack-plugin@2.6.0(webpack@5.92.0)':
+  '@nuxt/friendly-errors-webpack-plugin@2.6.0(webpack@5.92.1)':
     dependencies:
       chalk: 2.4.2
       consola: 3.2.3
       error-stack-parser: 2.1.4
       string-width: 4.2.3
-      webpack: 5.92.0
+      webpack: 5.92.1
 
-  '@nuxt/scripts@0.5.1(@nuxt/devtools@1.3.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5)))(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(@vue/compiler-core@3.4.29)(ioredis@5.3.2)(nuxt@packages+nuxt)(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))(webpack@5.92.0(esbuild@0.21.5))':
+  '@nuxt/scripts@0.5.1(@nuxt/devtools@1.3.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5)))(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(@vue/compiler-core@3.4.29)(ioredis@5.3.2)(nuxt@packages+nuxt)(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))(webpack@5.92.1(esbuild@0.21.5))':
     dependencies:
       '@nuxt/devtools-kit': 1.3.3(nuxt@packages+nuxt)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))
-      '@nuxt/devtools-ui-kit': 1.3.3(@nuxt/devtools@1.3.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5)))(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(@vue/compiler-core@3.4.29)(nuxt@packages+nuxt)(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))(webpack@5.92.0(esbuild@0.21.5))
+      '@nuxt/devtools-ui-kit': 1.3.3(@nuxt/devtools@1.3.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5)))(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(@vue/compiler-core@3.4.29)(nuxt@packages+nuxt)(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))(webpack@5.92.1(esbuild@0.21.5))
       '@nuxt/kit': link:packages/kit
       '@types/google.maps': 3.55.9
       '@types/stripe-v3': 3.1.33
@@ -8738,7 +8738,7 @@ snapshots:
       rc9: 2.1.2
       std-env: 3.7.0
 
-  '@nuxt/test-utils@3.13.1(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.4.5)))(@vue/test-utils@2.4.6)(h3@1.11.1)(happy-dom@14.12.0)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.44.1)(vite@5.3.1(@types/node@20.14.5)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.5)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.3(vue@3.4.29(typescript@5.4.5)))(vue@3.4.29(typescript@5.4.5))':
+  '@nuxt/test-utils@3.13.1(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.4.5)))(@vue/test-utils@2.4.6)(h3@1.11.1)(happy-dom@14.12.0)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.44.1)(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.6)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.3(vue@3.4.29(typescript@5.4.5)))(vue@3.4.29(typescript@5.4.5))':
     dependencies:
       '@nuxt/kit': link:packages/kit
       '@nuxt/schema': link:packages/schema
@@ -8764,8 +8764,8 @@ snapshots:
       ufo: 1.5.3
       unenv: 1.9.0
       unplugin: 1.10.1
-      vite: 5.3.1(@types/node@20.14.5)(sass@1.69.4)(terser@5.27.0)
-      vitest-environment-nuxt: 1.0.0(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.4.5)))(@vue/test-utils@2.4.6)(h3@1.11.1)(happy-dom@14.12.0)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.44.1)(vite@5.3.1(@types/node@20.14.5)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.5)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.3(vue@3.4.29(typescript@5.4.5)))(vue@3.4.29(typescript@5.4.5))
+      vite: 5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0)
+      vitest-environment-nuxt: 1.0.0(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.4.5)))(@vue/test-utils@2.4.6)(h3@1.11.1)(happy-dom@14.12.0)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.44.1)(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.6)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.3(vue@3.4.29(typescript@5.4.5)))(vue@3.4.29(typescript@5.4.5))
       vue: 3.4.29(typescript@5.4.5)
       vue-router: 4.3.3(vue@3.4.29(typescript@5.4.5))
     optionalDependencies:
@@ -8773,7 +8773,7 @@ snapshots:
       '@vue/test-utils': 2.4.6
       happy-dom: 14.12.0
       playwright-core: 1.44.1
-      vitest: 1.6.0(@types/node@20.14.5)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0)
+      vitest: 1.6.0(@types/node@20.14.6)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0)
     transitivePeerDependencies:
       - magicast
 
@@ -9168,14 +9168,14 @@ snapshots:
 
   '@types/clean-css@4.2.11':
     dependencies:
-      '@types/node': 20.14.5
+      '@types/node': 20.14.6
       source-map: 0.6.1
 
   '@types/clear@0.1.4': {}
 
   '@types/connect@3.4.37':
     dependencies:
-      '@types/node': 20.14.5
+      '@types/node': 20.14.6
 
   '@types/debug@4.1.12':
     dependencies:
@@ -9222,7 +9222,7 @@ snapshots:
 
   '@types/http-proxy@1.17.14':
     dependencies:
-      '@types/node': 20.14.5
+      '@types/node': 20.14.6
 
   '@types/istanbul-lib-coverage@2.0.5': {}
 
@@ -9238,7 +9238,7 @@ snapshots:
 
   '@types/jsonfile@6.1.2':
     dependencies:
-      '@types/node': 20.14.5
+      '@types/node': 20.14.6
 
   '@types/lodash-es@4.17.12':
     dependencies:
@@ -9254,13 +9254,13 @@ snapshots:
 
   '@types/node-sass@4.11.6':
     dependencies:
-      '@types/node': 20.14.5
+      '@types/node': 20.14.6
 
   '@types/node@20.14.2':
     dependencies:
       undici-types: 5.26.5
 
-  '@types/node@20.14.5':
+  '@types/node@20.14.6':
     dependencies:
       undici-types: 5.26.5
 
@@ -9305,7 +9305,7 @@ snapshots:
     dependencies:
       '@types/node': 20.14.2
       tapable: 2.2.1
-      webpack: 5.92.0
+      webpack: 5.92.1
     transitivePeerDependencies:
       - '@swc/core'
       - esbuild
@@ -9316,7 +9316,7 @@ snapshots:
     dependencies:
       '@types/connect': 3.4.37
       tapable: 2.2.1
-      webpack: 5.92.0
+      webpack: 5.92.1
     transitivePeerDependencies:
       - '@swc/core'
       - esbuild
@@ -9325,13 +9325,13 @@ snapshots:
 
   '@types/webpack-sources@3.2.1':
     dependencies:
-      '@types/node': 20.14.5
+      '@types/node': 20.14.6
       '@types/source-list-map': 0.1.4
       source-map: 0.7.4
 
   '@types/webpack@4.41.34':
     dependencies:
-      '@types/node': 20.14.5
+      '@types/node': 20.14.6
       '@types/tapable': 1.0.10
       '@types/uglify-js': 3.17.3
       '@types/webpack-sources': 3.2.1
@@ -9482,13 +9482,13 @@ snapshots:
     transitivePeerDependencies:
       - rollup
 
-  '@unocss/astro@0.61.0(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.5)(sass@1.69.4)(terser@5.27.0))':
+  '@unocss/astro@0.61.0(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0))':
     dependencies:
       '@unocss/core': 0.61.0
       '@unocss/reset': 0.61.0
-      '@unocss/vite': 0.61.0(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.5)(sass@1.69.4)(terser@5.27.0))
+      '@unocss/vite': 0.61.0(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0))
     optionalDependencies:
-      vite: 5.3.1(@types/node@20.14.5)(sass@1.69.4)(terser@5.27.0)
+      vite: 5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0)
     transitivePeerDependencies:
       - rollup
 
@@ -9564,7 +9564,7 @@ snapshots:
       gzip-size: 6.0.0
       sirv: 2.0.4
 
-  '@unocss/nuxt@0.60.4(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(webpack@5.92.0(esbuild@0.21.5))':
+  '@unocss/nuxt@0.60.4(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(webpack@5.92.1(esbuild@0.21.5))':
     dependencies:
       '@nuxt/kit': link:packages/kit
       '@unocss/config': 0.60.4
@@ -9578,8 +9578,8 @@ snapshots:
       '@unocss/preset-wind': 0.60.4
       '@unocss/reset': 0.60.4
       '@unocss/vite': 0.60.4(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))
-      '@unocss/webpack': 0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5))
-      unocss: 0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))
+      '@unocss/webpack': 0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5))
+      unocss: 0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))
     transitivePeerDependencies:
       - postcss
       - rollup
@@ -9801,7 +9801,7 @@ snapshots:
     transitivePeerDependencies:
       - rollup
 
-  '@unocss/vite@0.61.0(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.5)(sass@1.69.4)(terser@5.27.0))':
+  '@unocss/vite@0.61.0(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0))':
     dependencies:
       '@ampproject/remapping': 2.3.0
       '@rollup/pluginutils': 5.1.0(rollup@4.18.0)
@@ -9813,11 +9813,11 @@ snapshots:
       chokidar: 3.6.0
       fast-glob: 3.3.2
       magic-string: 0.30.10
-      vite: 5.3.1(@types/node@20.14.5)(sass@1.69.4)(terser@5.27.0)
+      vite: 5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0)
     transitivePeerDependencies:
       - rollup
 
-  '@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5))':
+  '@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5))':
     dependencies:
       '@ampproject/remapping': 2.3.0
       '@rollup/pluginutils': 5.1.0(rollup@4.18.0)
@@ -9827,7 +9827,7 @@ snapshots:
       fast-glob: 3.3.2
       magic-string: 0.30.10
       unplugin: 1.10.1
-      webpack: 5.92.0(esbuild@0.21.5)
+      webpack: 5.92.1(esbuild@0.21.5)
       webpack-sources: 3.2.3
     transitivePeerDependencies:
       - rollup
@@ -9850,12 +9850,12 @@ snapshots:
       - encoding
       - supports-color
 
-  '@vitejs/plugin-vue-jsx@4.0.0(vite@5.3.1(@types/node@20.14.5)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))':
+  '@vitejs/plugin-vue-jsx@4.0.0(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))':
     dependencies:
       '@babel/core': 7.24.7
       '@babel/plugin-transform-typescript': 7.24.7(@babel/core@7.24.7)
       '@vue/babel-plugin-jsx': 1.2.2(@babel/core@7.24.7)
-      vite: 5.3.1(@types/node@20.14.5)(sass@1.69.4)(terser@5.27.0)
+      vite: 5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0)
       vue: 3.4.29(typescript@5.4.5)
     transitivePeerDependencies:
       - supports-color
@@ -9865,12 +9865,12 @@ snapshots:
       vite: 5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)
       vue: 3.4.29(typescript@5.4.5)
 
-  '@vitejs/plugin-vue@5.0.4(vite@5.3.1(@types/node@20.14.5)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))':
+  '@vitejs/plugin-vue@5.0.4(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))':
     dependencies:
-      vite: 5.3.1(@types/node@20.14.5)(sass@1.69.4)(terser@5.27.0)
+      vite: 5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0)
       vue: 3.4.29(typescript@5.4.5)
 
-  '@vitest/coverage-v8@1.6.0(vitest@1.6.0(@types/node@20.14.5)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))':
+  '@vitest/coverage-v8@1.6.0(vitest@1.6.0(@types/node@20.14.6)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))':
     dependencies:
       '@ampproject/remapping': 2.3.0
       '@bcoe/v8-coverage': 0.2.3
@@ -9885,7 +9885,7 @@ snapshots:
       std-env: 3.7.0
       strip-literal: 2.1.0
       test-exclude: 6.0.0
-      vitest: 1.6.0(@types/node@20.14.5)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0)
+      vitest: 1.6.0(@types/node@20.14.6)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0)
     transitivePeerDependencies:
       - supports-color
 
@@ -10014,12 +10014,12 @@ snapshots:
 
   '@vue/devtools-api@6.6.3': {}
 
-  '@vue/devtools-applet@7.1.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.4.5)))(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))':
+  '@vue/devtools-applet@7.1.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.4.5)))(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))':
     dependencies:
       '@vue/devtools-core': 7.1.3(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))
       '@vue/devtools-kit': 7.1.3(vue@3.4.29(typescript@5.4.5))
       '@vue/devtools-shared': 7.1.3
-      '@vue/devtools-ui': 7.1.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.4.5)))(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vue@3.4.29(typescript@5.4.5))
+      '@vue/devtools-ui': 7.1.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.4.5)))(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vue@3.4.29(typescript@5.4.5))
       lodash-es: 4.17.21
       perfect-debounce: 1.0.0
       shiki: 1.3.0
@@ -10069,7 +10069,7 @@ snapshots:
     dependencies:
       rfdc: 1.3.1
 
-  '@vue/devtools-ui@7.1.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.4.5)))(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vue@3.4.29(typescript@5.4.5))':
+  '@vue/devtools-ui@7.1.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.4.5)))(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vue@3.4.29(typescript@5.4.5))':
     dependencies:
       '@unocss/reset': 0.61.0
       '@vue/devtools-shared': 7.1.3
@@ -10079,7 +10079,7 @@ snapshots:
       colord: 2.9.3
       floating-vue: 5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.4.5))
       focus-trap: 7.5.4
-      unocss: 0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))
+      unocss: 0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))
       vue: 3.4.29(typescript@5.4.5)
     transitivePeerDependencies:
       - '@vue/composition-api'
@@ -10635,7 +10635,7 @@ snapshots:
   caniuse-api@3.0.0:
     dependencies:
       browserslist: 4.23.1
-      caniuse-lite: 1.0.30001599
+      caniuse-lite: 1.0.30001636
       lodash.memoize: 4.1.2
       lodash.uniq: 4.5.0
 
@@ -10830,7 +10830,7 @@ snapshots:
 
   core-js-compat@3.37.1:
     dependencies:
-      browserslist: 4.23.0
+      browserslist: 4.23.1
 
   core-util-is@1.0.3: {}
 
@@ -10887,7 +10887,7 @@ snapshots:
     dependencies:
       postcss: 8.4.38
 
-  css-loader@7.1.2(webpack@5.92.0):
+  css-loader@7.1.2(webpack@5.92.1):
     dependencies:
       icss-utils: 5.1.0(postcss@8.4.38)
       postcss: 8.4.38
@@ -10898,9 +10898,9 @@ snapshots:
       postcss-value-parser: 4.2.0
       semver: 7.6.2
     optionalDependencies:
-      webpack: 5.92.0
+      webpack: 5.92.1
 
-  css-minimizer-webpack-plugin@7.0.0(webpack@5.92.0):
+  css-minimizer-webpack-plugin@7.0.0(webpack@5.92.1):
     dependencies:
       '@jridgewell/trace-mapping': 0.3.25
       cssnano: 7.0.3(postcss@8.4.38)
@@ -10908,7 +10908,7 @@ snapshots:
       postcss: 8.4.38
       schema-utils: 4.2.0
       serialize-javascript: 6.0.2
-      webpack: 5.92.0
+      webpack: 5.92.1
 
   css-select@5.1.0:
     dependencies:
@@ -11223,12 +11223,12 @@ snapshots:
 
   es-module-lexer@1.3.1: {}
 
-  esbuild-loader@4.2.0(webpack@5.92.0):
+  esbuild-loader@4.2.0(webpack@5.92.1):
     dependencies:
       esbuild: 0.21.5
       get-tsconfig: 4.7.3
       loader-utils: 2.0.4
-      webpack: 5.92.0
+      webpack: 5.92.1
       webpack-sources: 1.4.3
 
   esbuild@0.18.20:
@@ -11654,11 +11654,11 @@ snapshots:
     dependencies:
       flat-cache: 4.0.1
 
-  file-loader@6.2.0(webpack@5.92.0):
+  file-loader@6.2.0(webpack@5.92.1):
     dependencies:
       loader-utils: 2.0.4
       schema-utils: 3.3.0
-      webpack: 5.92.0
+      webpack: 5.92.1
 
   file-uri-to-path@1.0.0: {}
 
@@ -11712,7 +11712,7 @@ snapshots:
       cross-spawn: 7.0.3
       signal-exit: 4.1.0
 
-  fork-ts-checker-webpack-plugin@9.0.2(typescript@5.4.5)(webpack@5.92.0):
+  fork-ts-checker-webpack-plugin@9.0.2(typescript@5.4.5)(webpack@5.92.1):
     dependencies:
       '@babel/code-frame': 7.24.7
       chalk: 4.1.2
@@ -11727,7 +11727,7 @@ snapshots:
       semver: 7.6.2
       tapable: 2.2.1
       typescript: 5.4.5
-      webpack: 5.92.0
+      webpack: 5.92.1
 
   fraction.js@4.3.7: {}
 
@@ -12374,7 +12374,7 @@ snapshots:
   jest-util@29.7.0:
     dependencies:
       '@jest/types': 29.6.3
-      '@types/node': 20.14.5
+      '@types/node': 20.14.6
       chalk: 4.1.2
       ci-info: 3.9.0
       graceful-fs: 4.2.11
@@ -12382,13 +12382,13 @@ snapshots:
 
   jest-worker@27.5.1:
     dependencies:
-      '@types/node': 20.14.5
+      '@types/node': 20.14.6
       merge-stream: 2.0.0
       supports-color: 8.1.1
 
   jest-worker@29.7.0:
     dependencies:
-      '@types/node': 20.14.5
+      '@types/node': 20.14.6
       jest-util: 29.7.0
       merge-stream: 2.0.0
       supports-color: 8.1.1
@@ -13016,11 +13016,11 @@ snapshots:
 
   min-indent@1.0.1: {}
 
-  mini-css-extract-plugin@2.9.0(webpack@5.92.0):
+  mini-css-extract-plugin@2.9.0(webpack@5.92.1):
     dependencies:
       schema-utils: 4.2.0
       tapable: 2.2.1
-      webpack: 5.92.0
+      webpack: 5.92.1
 
   minimatch@3.0.8:
     dependencies:
@@ -13683,14 +13683,14 @@ snapshots:
       read-cache: 1.0.0
       resolve: 1.22.8
 
-  postcss-loader@8.1.1(postcss@8.4.38)(typescript@5.4.5)(webpack@5.92.0):
+  postcss-loader@8.1.1(postcss@8.4.38)(typescript@5.4.5)(webpack@5.92.1):
     dependencies:
       cosmiconfig: 9.0.0(typescript@5.4.5)
       jiti: 1.21.6
       postcss: 8.4.38
       semver: 7.6.2
     optionalDependencies:
-      webpack: 5.92.0
+      webpack: 5.92.1
     transitivePeerDependencies:
       - typescript
 
@@ -14602,7 +14602,7 @@ snapshots:
       css-tree: 2.3.1
       css-what: 6.1.0
       csso: 5.0.5
-      picocolors: 1.0.0
+      picocolors: 1.0.1
 
   system-architecture@0.1.0: {}
 
@@ -14627,25 +14627,25 @@ snapshots:
       mkdirp: 1.0.4
       yallist: 4.0.0
 
-  terser-webpack-plugin@5.3.10(esbuild@0.21.5)(webpack@5.92.0(esbuild@0.21.5)):
+  terser-webpack-plugin@5.3.10(esbuild@0.21.5)(webpack@5.92.1(esbuild@0.21.5)):
     dependencies:
       '@jridgewell/trace-mapping': 0.3.25
       jest-worker: 27.5.1
       schema-utils: 3.3.0
       serialize-javascript: 6.0.2
       terser: 5.27.0
-      webpack: 5.92.0(esbuild@0.21.5)
+      webpack: 5.92.1(esbuild@0.21.5)
     optionalDependencies:
       esbuild: 0.21.5
 
-  terser-webpack-plugin@5.3.10(webpack@5.92.0):
+  terser-webpack-plugin@5.3.10(webpack@5.92.1):
     dependencies:
       '@jridgewell/trace-mapping': 0.3.25
       jest-worker: 27.5.1
       schema-utils: 3.3.0
       serialize-javascript: 6.0.2
       terser: 5.27.0
-      webpack: 5.92.0
+      webpack: 5.92.1
 
   terser@5.27.0:
     dependencies:
@@ -14670,9 +14670,9 @@ snapshots:
     dependencies:
       semver: 7.6.2
 
-  time-fix-plugin@2.0.7(webpack@5.92.0):
+  time-fix-plugin@2.0.7(webpack@5.92.1):
     dependencies:
-      webpack: 5.92.0
+      webpack: 5.92.1
 
   tiny-invariant@1.3.1: {}
 
@@ -14902,7 +14902,7 @@ snapshots:
 
   universalify@2.0.0: {}
 
-  unocss@0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)):
+  unocss@0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)):
     dependencies:
       '@unocss/astro': 0.60.4(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))
       '@unocss/cli': 0.60.4(rollup@4.18.0)
@@ -14925,14 +14925,14 @@ snapshots:
       '@unocss/transformer-variant-group': 0.60.4
       '@unocss/vite': 0.60.4(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))
     optionalDependencies:
-      '@unocss/webpack': 0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5))
+      '@unocss/webpack': 0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5))
       vite: 5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)
     transitivePeerDependencies:
       - postcss
       - rollup
       - supports-color
 
-  unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)):
+  unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)):
     dependencies:
       '@unocss/astro': 0.61.0(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))
       '@unocss/cli': 0.61.0(rollup@4.18.0)
@@ -14955,16 +14955,16 @@ snapshots:
       '@unocss/transformer-variant-group': 0.61.0
       '@unocss/vite': 0.61.0(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))
     optionalDependencies:
-      '@unocss/webpack': 0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5))
+      '@unocss/webpack': 0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5))
       vite: 5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)
     transitivePeerDependencies:
       - postcss
       - rollup
       - supports-color
 
-  unocss@0.61.0(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.5)(sass@1.69.4)(terser@5.27.0)):
+  unocss@0.61.0(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0)):
     dependencies:
-      '@unocss/astro': 0.61.0(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.5)(sass@1.69.4)(terser@5.27.0))
+      '@unocss/astro': 0.61.0(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0))
       '@unocss/cli': 0.61.0(rollup@4.18.0)
       '@unocss/core': 0.61.0
       '@unocss/extractor-arbitrary-variants': 0.61.0
@@ -14983,9 +14983,9 @@ snapshots:
       '@unocss/transformer-compile-class': 0.61.0
       '@unocss/transformer-directives': 0.61.0
       '@unocss/transformer-variant-group': 0.61.0
-      '@unocss/vite': 0.61.0(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.5)(sass@1.69.4)(terser@5.27.0))
+      '@unocss/vite': 0.61.0(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0))
     optionalDependencies:
-      vite: 5.3.1(@types/node@20.14.5)(sass@1.69.4)(terser@5.27.0)
+      vite: 5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0)
     transitivePeerDependencies:
       - postcss
       - rollup
@@ -15085,14 +15085,14 @@ snapshots:
     dependencies:
       punycode: 2.3.0
 
-  url-loader@4.1.1(file-loader@6.2.0(webpack@5.92.0))(webpack@5.92.0):
+  url-loader@4.1.1(file-loader@6.2.0(webpack@5.92.1))(webpack@5.92.1):
     dependencies:
       loader-utils: 2.0.4
       mime-types: 2.1.35
       schema-utils: 3.3.0
-      webpack: 5.92.0
+      webpack: 5.92.1
     optionalDependencies:
-      file-loader: 6.2.0(webpack@5.92.0)
+      file-loader: 6.2.0(webpack@5.92.1)
 
   urlpattern-polyfill@8.0.2: {}
 
@@ -15150,13 +15150,13 @@ snapshots:
       - supports-color
       - terser
 
-  vite-node@1.6.0(@types/node@20.14.5)(sass@1.69.4)(terser@5.27.0):
+  vite-node@1.6.0(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0):
     dependencies:
       cac: 6.7.14
       debug: 4.3.4
       pathe: 1.1.2
       picocolors: 1.0.0
-      vite: 5.3.1(@types/node@20.14.5)(sass@1.69.4)(terser@5.27.0)
+      vite: 5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0)
     transitivePeerDependencies:
       - '@types/node'
       - less
@@ -15167,7 +15167,7 @@ snapshots:
       - supports-color
       - terser
 
-  vite-plugin-checker@0.6.4(eslint@9.5.0)(optionator@0.9.3)(typescript@5.4.5)(vite@5.3.1(@types/node@20.14.5)(sass@1.69.4)(terser@5.27.0))(vue-tsc@2.0.21(typescript@5.4.5)):
+  vite-plugin-checker@0.6.4(eslint@9.5.0)(optionator@0.9.3)(typescript@5.4.5)(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0))(vue-tsc@2.0.21(typescript@5.4.5)):
     dependencies:
       '@babel/code-frame': 7.24.7
       ansi-escapes: 4.3.2
@@ -15180,7 +15180,7 @@ snapshots:
       semver: 7.6.2
       strip-ansi: 6.0.1
       tiny-invariant: 1.3.1
-      vite: 5.3.1(@types/node@20.14.5)(sass@1.69.4)(terser@5.27.0)
+      vite: 5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0)
       vscode-languageclient: 7.0.0
       vscode-languageserver: 7.0.0
       vscode-languageserver-textdocument: 1.0.11
@@ -15235,20 +15235,20 @@ snapshots:
       sass: 1.69.4
       terser: 5.27.0
 
-  vite@5.3.1(@types/node@20.14.5)(sass@1.69.4)(terser@5.27.0):
+  vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0):
     dependencies:
       esbuild: 0.21.5
       postcss: 8.4.38
       rollup: 4.18.0
     optionalDependencies:
-      '@types/node': 20.14.5
+      '@types/node': 20.14.6
       fsevents: 2.3.3
       sass: 1.69.4
       terser: 5.27.0
 
-  vitest-environment-nuxt@1.0.0(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.4.5)))(@vue/test-utils@2.4.6)(h3@1.11.1)(happy-dom@14.12.0)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.44.1)(vite@5.3.1(@types/node@20.14.5)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.5)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.3(vue@3.4.29(typescript@5.4.5)))(vue@3.4.29(typescript@5.4.5)):
+  vitest-environment-nuxt@1.0.0(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.4.5)))(@vue/test-utils@2.4.6)(h3@1.11.1)(happy-dom@14.12.0)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.44.1)(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.6)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.3(vue@3.4.29(typescript@5.4.5)))(vue@3.4.29(typescript@5.4.5)):
     dependencies:
-      '@nuxt/test-utils': 3.13.1(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.4.5)))(@vue/test-utils@2.4.6)(h3@1.11.1)(happy-dom@14.12.0)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.44.1)(vite@5.3.1(@types/node@20.14.5)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.5)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.3(vue@3.4.29(typescript@5.4.5)))(vue@3.4.29(typescript@5.4.5))
+      '@nuxt/test-utils': 3.13.1(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.4.5)))(@vue/test-utils@2.4.6)(h3@1.11.1)(happy-dom@14.12.0)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.44.1)(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.6)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.3(vue@3.4.29(typescript@5.4.5)))(vue@3.4.29(typescript@5.4.5))
     transitivePeerDependencies:
       - '@cucumber/cucumber'
       - '@jest/globals'
@@ -15301,7 +15301,7 @@ snapshots:
       - supports-color
       - terser
 
-  vitest@1.6.0(@types/node@20.14.5)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0):
+  vitest@1.6.0(@types/node@20.14.6)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0):
     dependencies:
       '@vitest/expect': 1.6.0
       '@vitest/runner': 1.6.0
@@ -15320,11 +15320,11 @@ snapshots:
       strip-literal: 2.1.0
       tinybench: 2.5.1
       tinypool: 0.8.4
-      vite: 5.3.1(@types/node@20.14.5)(sass@1.69.4)(terser@5.27.0)
-      vite-node: 1.6.0(@types/node@20.14.5)(sass@1.69.4)(terser@5.27.0)
+      vite: 5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0)
+      vite-node: 1.6.0(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0)
       why-is-node-running: 2.2.2
     optionalDependencies:
-      '@types/node': 20.14.5
+      '@types/node': 20.14.6
       happy-dom: 14.12.0
     transitivePeerDependencies:
       - less
@@ -15385,12 +15385,12 @@ snapshots:
     transitivePeerDependencies:
       - supports-color
 
-  vue-loader@17.4.2(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.4.5))(webpack@5.92.0):
+  vue-loader@17.4.2(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.4.5))(webpack@5.92.1):
     dependencies:
       chalk: 4.1.2
       hash-sum: 2.0.0
       watchpack: 2.4.1
-      webpack: 5.92.0
+      webpack: 5.92.1
     optionalDependencies:
       '@vue/compiler-sfc': 3.4.29
       vue: 3.4.29(typescript@5.4.5)
@@ -15466,7 +15466,7 @@ snapshots:
       - bufferutil
       - utf-8-validate
 
-  webpack-dev-middleware@7.2.1(webpack@5.92.0):
+  webpack-dev-middleware@7.2.1(webpack@5.92.1):
     dependencies:
       colorette: 2.0.20
       memfs: 4.9.2
@@ -15475,7 +15475,7 @@ snapshots:
       range-parser: 1.2.1
       schema-utils: 4.2.0
     optionalDependencies:
-      webpack: 5.92.0
+      webpack: 5.92.1
 
   webpack-hot-middleware@2.26.1:
     dependencies:
@@ -15492,7 +15492,7 @@ snapshots:
 
   webpack-virtual-modules@0.6.2: {}
 
-  webpack@5.92.0:
+  webpack@5.92.1:
     dependencies:
       '@types/eslint-scope': 3.7.6
       '@types/estree': 1.0.5
@@ -15501,7 +15501,7 @@ snapshots:
       '@webassemblyjs/wasm-parser': 1.12.1
       acorn: 8.12.0
       acorn-import-attributes: 1.9.5(acorn@8.12.0)
-      browserslist: 4.23.0
+      browserslist: 4.23.1
       chrome-trace-event: 1.0.3
       enhanced-resolve: 5.17.0
       es-module-lexer: 1.3.1
@@ -15515,7 +15515,7 @@ snapshots:
       neo-async: 2.6.2
       schema-utils: 3.3.0
       tapable: 2.2.1
-      terser-webpack-plugin: 5.3.10(webpack@5.92.0)
+      terser-webpack-plugin: 5.3.10(webpack@5.92.1)
       watchpack: 2.4.1
       webpack-sources: 3.2.3
     transitivePeerDependencies:
@@ -15523,7 +15523,7 @@ snapshots:
       - esbuild
       - uglify-js
 
-  webpack@5.92.0(esbuild@0.21.5):
+  webpack@5.92.1(esbuild@0.21.5):
     dependencies:
       '@types/eslint-scope': 3.7.6
       '@types/estree': 1.0.5
@@ -15532,7 +15532,7 @@ snapshots:
       '@webassemblyjs/wasm-parser': 1.12.1
       acorn: 8.12.0
       acorn-import-attributes: 1.9.5(acorn@8.12.0)
-      browserslist: 4.23.0
+      browserslist: 4.23.1
       chrome-trace-event: 1.0.3
       enhanced-resolve: 5.17.0
       es-module-lexer: 1.3.1
@@ -15546,7 +15546,7 @@ snapshots:
       neo-async: 2.6.2
       schema-utils: 3.3.0
       tapable: 2.2.1
-      terser-webpack-plugin: 5.3.10(esbuild@0.21.5)(webpack@5.92.0(esbuild@0.21.5))
+      terser-webpack-plugin: 5.3.10(esbuild@0.21.5)(webpack@5.92.1(esbuild@0.21.5))
       watchpack: 2.4.1
       webpack-sources: 3.2.3
     transitivePeerDependencies:
@@ -15554,7 +15554,7 @@ snapshots:
       - esbuild
       - uglify-js
 
-  webpackbar@6.0.1(webpack@5.92.0):
+  webpackbar@6.0.1(webpack@5.92.1):
     dependencies:
       ansi-escapes: 4.3.2
       chalk: 4.1.2
@@ -15563,7 +15563,7 @@ snapshots:
       markdown-table: 2.0.0
       pretty-time: 1.1.0
       std-env: 3.7.0
-      webpack: 5.92.0
+      webpack: 5.92.1
       wrap-ansi: 7.0.0
 
   whatwg-mimetype@3.0.0: {}

From f2868f8c72320009e4502f97456b13f77c6b0322 Mon Sep 17 00:00:00 2001
From: Daniel Roe 
Date: Thu, 20 Jun 2024 20:26:46 +0100
Subject: [PATCH 143/580] fix(nuxt): resolve routes when `navigateTo` called
 with `open` (#27742)

---
 packages/nuxt/src/app/components/nuxt-link.ts |  8 ++------
 packages/nuxt/src/app/composables/router.ts   | 11 +++++++++--
 packages/nuxt/test/nuxt-link.test.ts          |  6 +++++-
 3 files changed, 16 insertions(+), 9 deletions(-)

diff --git a/packages/nuxt/src/app/components/nuxt-link.ts b/packages/nuxt/src/app/components/nuxt-link.ts
index e4fa62d8a4..a126078b8a 100644
--- a/packages/nuxt/src/app/components/nuxt-link.ts
+++ b/packages/nuxt/src/app/components/nuxt-link.ts
@@ -8,10 +8,10 @@ import type {
 } from 'vue'
 import { computed, defineComponent, h, inject, onBeforeUnmount, onMounted, provide, ref, resolveComponent } from 'vue'
 import type { RouteLocation, RouteLocationRaw, Router, RouterLink, RouterLinkProps, useLink } from '#vue-router'
-import { hasProtocol, joinURL, parseQuery, withQuery, withTrailingSlash, withoutTrailingSlash } from 'ufo'
+import { hasProtocol, joinURL, parseQuery, withTrailingSlash, withoutTrailingSlash } from 'ufo'
 import { preloadRouteComponents } from '../composables/preload'
 import { onNuxtReady } from '../composables/ready'
-import { navigateTo, useRouter } from '../composables/router'
+import { navigateTo, resolveRouteObject, useRouter } from '../composables/router'
 import { useNuxtApp, useRuntimeConfig } from '../nuxt'
 import { cancelIdleCallback, requestIdleCallback } from '../compat/idle-callback'
 
@@ -495,7 +495,3 @@ function isSlowConnection () {
   if (cn && (cn.saveData || /2g/.test(cn.effectiveType))) { return true }
   return false
 }
-
-function resolveRouteObject (to: Exclude) {
-  return withQuery(to.path || '', to.query || {}) + (to.hash ? '#' + to.hash : '')
-}
diff --git a/packages/nuxt/src/app/composables/router.ts b/packages/nuxt/src/app/composables/router.ts
index d6395e5832..fad568a885 100644
--- a/packages/nuxt/src/app/composables/router.ts
+++ b/packages/nuxt/src/app/composables/router.ts
@@ -1,6 +1,6 @@
 import { getCurrentInstance, hasInjectionContext, inject, onScopeDispose } from 'vue'
 import type { Ref } from 'vue'
-import type { NavigationFailure, NavigationGuard, RouteLocationNormalized, RouteLocationPathRaw, RouteLocationRaw, Router, useRoute as _useRoute, useRouter as _useRouter } from '#vue-router'
+import type { NavigationFailure, NavigationGuard, RouteLocationNormalized, RouteLocationRaw, Router, useRoute as _useRoute, useRouter as _useRouter } from '#vue-router'
 import { sanitizeStatusCode } from 'h3'
 import { hasProtocol, isScriptProtocol, joinURL, withQuery } from 'ufo'
 
@@ -120,7 +120,7 @@ export const navigateTo = (to: RouteLocationRaw | undefined | null, options?: Na
     to = '/'
   }
 
-  const toPath = typeof to === 'string' ? to : (withQuery((to as RouteLocationPathRaw).path || '/', to.query || {}) + (to.hash || ''))
+  const toPath = typeof to === 'string' ? to : 'path' in to ? resolveRouteObject(to) : useRouter().resolve(to).href
 
   // Early open handler
   if (import.meta.client && options?.open) {
@@ -252,3 +252,10 @@ export const setPageLayout = (layout: unknown extends PageMeta['layout'] ? strin
     useRoute().meta.layout = layout as Exclude
   }
 }
+
+/**
+ * @internal
+ */
+export function resolveRouteObject (to: Exclude) {
+  return withQuery(to.path || '', to.query || {}) + (to.hash || '')
+}
diff --git a/packages/nuxt/test/nuxt-link.test.ts b/packages/nuxt/test/nuxt-link.test.ts
index a712d0f267..40e714045d 100644
--- a/packages/nuxt/test/nuxt-link.test.ts
+++ b/packages/nuxt/test/nuxt-link.test.ts
@@ -1,5 +1,6 @@
 import { describe, expect, it, vi } from 'vitest'
-import type { RouteLocation } from 'vue-router'
+import type { RouteLocation, RouteLocationRaw } from 'vue-router'
+import { withQuery } from 'ufo'
 import type { NuxtLinkOptions, NuxtLinkProps } from '../src/app/components/nuxt-link'
 import { defineNuxtLink } from '../src/app/components/nuxt-link'
 import { useRuntimeConfig } from '../src/app/nuxt'
@@ -25,6 +26,9 @@ vi.mock('vue', async () => {
 
 // Mocks Nuxt `useRouter()`
 vi.mock('../src/app/composables/router', () => ({
+  resolveRouteObject (to: Exclude) {
+    return withQuery(to.path || '', to.query || {}) + (to.hash || '')
+  },
   useRouter: () => ({
     resolve: (route: string | RouteLocation & { to?: string }): Partial & { href?: string } => {
       if (typeof route === 'string') {

From b279849631e6de73119d0682383befb8fa5d01f9 Mon Sep 17 00:00:00 2001
From: Daniel Roe 
Date: Thu, 20 Jun 2024 19:57:05 +0100
Subject: [PATCH 144/580] fix(nuxt): handle subpaths more correctly

---
 packages/nuxt/src/core/nuxt.ts | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/packages/nuxt/src/core/nuxt.ts b/packages/nuxt/src/core/nuxt.ts
index a121ab8442..8952a1f7df 100644
--- a/packages/nuxt/src/core/nuxt.ts
+++ b/packages/nuxt/src/core/nuxt.ts
@@ -99,12 +99,12 @@ async function initNuxt (nuxt: Nuxt) {
   const packageJSON = await readPackageJSON(nuxt.options.rootDir).catch(() => ({}) as PackageJson)
   const dependencies = new Set([...Object.keys(packageJSON.dependencies || {}), ...Object.keys(packageJSON.devDependencies || {})])
   const paths = Object.fromEntries(await Promise.all(coreTypePackages.map(async (pkg) => {
-    // ignore packages that exist in `package.json` as these can be resolved by TypeScript
-    if (dependencies.has(pkg) && !(pkg in nightlies)) { return [] }
-
     const [_pkg = pkg, _subpath] = /^[^@]+\//.test(pkg) ? pkg.split('/') : [pkg]
     const subpath = _subpath ? '/' + _subpath : ''
 
+    // ignore packages that exist in `package.json` as these can be resolved by TypeScript
+    if (dependencies.has(_pkg) && !(_pkg in nightlies)) { return [] }
+
     async function resolveTypePath (path: string) {
       try {
         const r = await _resolvePath(path, { url: nuxt.options.modulesDir, conditions: ['types', 'import', 'require'] })
@@ -120,14 +120,14 @@ async function initNuxt (nuxt: Nuxt) {
 
     // deduplicate types for nightly releases
     if (_pkg in nightlies) {
-      const nightly = nightlies[pkg as keyof typeof nightlies]
+      const nightly = nightlies[_pkg as keyof typeof nightlies]
       const path = await resolveTypePath(nightly + subpath)
       if (path) {
         return [[pkg, [path]], [nightly + subpath, [path]]]
       }
     }
 
-    const path = await resolveTypePath(pkg + subpath)
+    const path = await resolveTypePath(_pkg + subpath)
     if (path) {
       return [[pkg, [path]]]
     }

From 97f37880092b52a35ec33da4918641779783137a Mon Sep 17 00:00:00 2001
From: Maxime Pauvert 
Date: Fri, 21 Jun 2024 00:18:00 +0200
Subject: [PATCH 145/580] docs: add `refreshCookie` on `useCookie` doc page
 (#27744)

---
 docs/3.api/2.composables/use-cookie.md | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/docs/3.api/2.composables/use-cookie.md b/docs/3.api/2.composables/use-cookie.md
index 804d3e2784..6b06e3a421 100644
--- a/docs/3.api/2.composables/use-cookie.md
+++ b/docs/3.api/2.composables/use-cookie.md
@@ -45,6 +45,10 @@ counter.value = counter.value || Math.round(Math.random() * 1000)
 
 :link-example{to="/docs/examples/advanced/use-cookie"}
 
+::note
+Refresh `useCookie` values manually when a cookie has changed with [`refreshCookie`](/api/utils/refresh-cookie).
+::
+
 ## Options
 
 Cookie composable accepts several options which let you modify the behavior of cookies.
@@ -148,6 +152,10 @@ Specifies the `boolean` or `string` value for [watch](https://vuejs.org/api/reac
 - `shallow` - Will watch cookie ref data changes for only top level properties
 - `false` - Will not watch cookie ref data changes.
 
+::note
+Refresh `useCookie` values manually when a cookie has changed with [`refreshCookie`](/api/utils/refresh-cookie).
+::
+
 **Example 1:**
 
 ```vue

From b026797d7b0958c164d0b939808cb28ba8f9d7d4 Mon Sep 17 00:00:00 2001
From: Daniel Roe 
Date: Thu, 20 Jun 2024 23:18:25 +0100
Subject: [PATCH 146/580] feat(nuxt): await custom `routes` function in
 `router.options` (#27644)

---
 packages/nuxt/src/pages/build.d.ts                          | 6 ++++++
 packages/nuxt/src/pages/runtime/plugins/prerender.server.ts | 1 -
 packages/nuxt/src/pages/runtime/plugins/router.ts           | 3 +--
 packages/schema/src/types/router.ts                         | 2 +-
 4 files changed, 8 insertions(+), 4 deletions(-)
 create mode 100644 packages/nuxt/src/pages/build.d.ts

diff --git a/packages/nuxt/src/pages/build.d.ts b/packages/nuxt/src/pages/build.d.ts
new file mode 100644
index 0000000000..4a17fca4e5
--- /dev/null
+++ b/packages/nuxt/src/pages/build.d.ts
@@ -0,0 +1,6 @@
+declare module '#build/router.options' {
+  import type { RouterOptions } from '@nuxt/schema'
+
+  const _default: RouterOptions
+  export default _default
+}
diff --git a/packages/nuxt/src/pages/runtime/plugins/prerender.server.ts b/packages/nuxt/src/pages/runtime/plugins/prerender.server.ts
index a8cf539151..9a191f9dce 100644
--- a/packages/nuxt/src/pages/runtime/plugins/prerender.server.ts
+++ b/packages/nuxt/src/pages/runtime/plugins/prerender.server.ts
@@ -5,7 +5,6 @@ import { defineNuxtPlugin } from '#app/nuxt'
 import { prerenderRoutes } from '#app/composables/ssr'
 // @ts-expect-error virtual file
 import _routes from '#build/routes'
-// @ts-expect-error virtual file
 import routerOptions from '#build/router.options'
 
 let routes: string[]
diff --git a/packages/nuxt/src/pages/runtime/plugins/router.ts b/packages/nuxt/src/pages/runtime/plugins/router.ts
index fccd8ff78a..f284a80d29 100644
--- a/packages/nuxt/src/pages/runtime/plugins/router.ts
+++ b/packages/nuxt/src/pages/runtime/plugins/router.ts
@@ -24,7 +24,6 @@ import { navigateTo } from '#app/composables/router'
 import { appManifest as isAppManifestEnabled } from '#build/nuxt.config.mjs'
 // @ts-expect-error virtual file
 import _routes from '#build/routes'
-// @ts-expect-error virtual file
 import routerOptions from '#build/router.options'
 // @ts-expect-error virtual file
 import { globalMiddleware, namedMiddleware } from '#build/middleware'
@@ -67,7 +66,7 @@ const plugin: Plugin<{ router: Router }> = defineNuxtPlugin({
       : createMemoryHistory(routerBase)
     )
 
-    const routes = routerOptions.routes?.(_routes) ?? _routes
+    const routes = routerOptions.routes ? await routerOptions.routes(_routes) ?? _routes : _routes
 
     let startPosition: Parameters[2] | null
 
diff --git a/packages/schema/src/types/router.ts b/packages/schema/src/types/router.ts
index 76abc6acb8..c7cb0ce850 100644
--- a/packages/schema/src/types/router.ts
+++ b/packages/schema/src/types/router.ts
@@ -2,7 +2,7 @@ import type { RouterHistory, RouterOptions as _RouterOptions } from 'vue-router'
 
 export type RouterOptions = Partial> & {
   history?: (baseURL?: string) => RouterHistory
-  routes?: (_routes: _RouterOptions['routes']) => _RouterOptions['routes']
+  routes?: (_routes: _RouterOptions['routes']) => _RouterOptions['routes'] | Promise<_RouterOptions['routes']>
   hashMode?: boolean
   scrollBehaviorType?: 'smooth' | 'auto'
 }

From 5e765874901d49ff258b3aa45a2305715a050419 Mon Sep 17 00:00:00 2001
From: Daniel Roe 
Date: Thu, 20 Jun 2024 23:18:57 +0100
Subject: [PATCH 147/580] fix(nuxt): delay navigation until user input is
 acknowledged (#27743)

---
 .../app/plugins/navigation-repaint.client.ts  | 19 +++++++++++++++++++
 packages/nuxt/src/core/nuxt.ts                |  6 ++++++
 packages/nuxt/test/app.test.ts                |  4 ++++
 packages/schema/src/config/experimental.ts    |  8 ++++++++
 4 files changed, 37 insertions(+)
 create mode 100644 packages/nuxt/src/app/plugins/navigation-repaint.client.ts

diff --git a/packages/nuxt/src/app/plugins/navigation-repaint.client.ts b/packages/nuxt/src/app/plugins/navigation-repaint.client.ts
new file mode 100644
index 0000000000..30f3a69cf1
--- /dev/null
+++ b/packages/nuxt/src/app/plugins/navigation-repaint.client.ts
@@ -0,0 +1,19 @@
+import { defineNuxtPlugin } from '../nuxt'
+import { useRouter } from '../composables'
+
+export default defineNuxtPlugin(() => {
+  useRouter().beforeResolve(async () => {
+    /**
+     * This gives an opportunity for the browser to repaint, acknowledging user interaction.
+     * It can reduce INP when navigating on prerendered routes.
+     *
+     * @see https://github.com/nuxt/nuxt/issues/26271#issuecomment-2178582037
+     * @see https://vercel.com/blog/demystifying-inp-new-tools-and-actionable-insights
+     */
+    await new Promise((resolve) => {
+      // Ensure we always resolve, even if the animation frame never fires
+      setTimeout(resolve, 100)
+      requestAnimationFrame(() => { setTimeout(resolve, 0) })
+    })
+  })
+})
diff --git a/packages/nuxt/src/core/nuxt.ts b/packages/nuxt/src/core/nuxt.ts
index 8952a1f7df..d5fe6f8740 100644
--- a/packages/nuxt/src/core/nuxt.ts
+++ b/packages/nuxt/src/core/nuxt.ts
@@ -532,6 +532,12 @@ async function initNuxt (nuxt: Nuxt) {
     }
   }
 
+  if (nuxt.options.experimental.navigationRepaint) {
+    addPlugin({
+      src: resolve(nuxt.options.appDir, 'plugins/navigation-repaint.client'),
+    })
+  }
+
   nuxt.hooks.hook('builder:watch', (event, relativePath) => {
     const path = resolve(nuxt.options.srcDir, relativePath)
     // Local module patterns
diff --git a/packages/nuxt/test/app.test.ts b/packages/nuxt/test/app.test.ts
index 2e66d85bdf..c7424e95ad 100644
--- a/packages/nuxt/test/app.test.ts
+++ b/packages/nuxt/test/app.test.ts
@@ -43,6 +43,10 @@ describe('resolveApp', () => {
             "mode": "client",
             "src": "/packages/nuxt/src/app/plugins/payload.client.ts",
           },
+          {
+            "mode": "client",
+            "src": "/packages/nuxt/src/app/plugins/navigation-repaint.client.ts",
+          },
           {
             "mode": "client",
             "src": "/packages/nuxt/src/app/plugins/check-outdated-build.client.ts",
diff --git a/packages/schema/src/config/experimental.ts b/packages/schema/src/config/experimental.ts
index c1d903ba5d..a9b9b26dcd 100644
--- a/packages/schema/src/config/experimental.ts
+++ b/packages/schema/src/config/experimental.ts
@@ -417,5 +417,13 @@ export default defineUntypedSchema({
      * @type {boolean}
      */
     clientNodeCompat: false,
+
+    /**
+     * Wait for a single animation frame before navigation, which gives an opportunity
+     * for the browser to repaint, acknowledging user interaction.
+     *
+     * It can reduce INP when navigating on prerendered routes.
+     */
+    navigationRepaint: true,
   },
 })

From a4fc866d1c315985afe5b1935185e636beebb2d7 Mon Sep 17 00:00:00 2001
From: Daniel Roe 
Date: Thu, 20 Jun 2024 23:19:13 +0100
Subject: [PATCH 148/580] fix(nuxt): resolve aliases used in nitro plugin paths
 (#27741)

---
 packages/nuxt/src/core/nitro.ts | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/packages/nuxt/src/core/nitro.ts b/packages/nuxt/src/core/nitro.ts
index 0628188db6..c8bcab3ede 100644
--- a/packages/nuxt/src/core/nitro.ts
+++ b/packages/nuxt/src/core/nitro.ts
@@ -6,7 +6,7 @@ import { createRouter as createRadixRouter, exportMatcher, toRouteMatcher } from
 import { joinURL, withTrailingSlash } from 'ufo'
 import { build, copyPublicAssets, createDevServer, createNitro, prepare, prerender, scanHandlers, writeTypes } from 'nitropack'
 import type { Nitro, NitroConfig, NitroOptions } from 'nitropack'
-import { findPath, logger, resolveIgnorePatterns, resolveNuxtModule, resolvePath } from '@nuxt/kit'
+import { findPath, logger, resolveAlias, resolveIgnorePatterns, resolveNuxtModule, resolvePath } from '@nuxt/kit'
 import escapeRE from 'escape-string-regexp'
 import { defu } from 'defu'
 import fsExtra from 'fs-extra'
@@ -218,6 +218,9 @@ export async function initNitro (nuxt: Nuxt & { _nitro?: Nitro }) {
   nitroConfig.srcDir = resolve(nuxt.options.rootDir, nuxt.options.srcDir, nitroConfig.srcDir!)
   nitroConfig.ignore = [...(nitroConfig.ignore || []), ...resolveIgnorePatterns(nitroConfig.srcDir), `!${join(nuxt.options.buildDir, 'dist/client', nuxt.options.app.buildAssetsDir, '**/*')}`]
 
+  // Resolve aliases in user-provided input - so `~/server/test` will work
+  nitroConfig.plugins = nitroConfig.plugins?.map(plugin => plugin ? resolveAlias(plugin, nuxt.options.alias) : plugin)
+
   // Add app manifest handler and prerender configuration
   if (nuxt.options.experimental.appManifest) {
     const buildId = nuxt.options.runtimeConfig.app.buildId ||= nuxt.options.buildId

From 2475ee81cce7584b64530e70817f4d565a4337da Mon Sep 17 00:00:00 2001
From: Lucie <25330882+lihbr@users.noreply.github.com>
Date: Fri, 21 Jun 2024 00:20:49 +0200
Subject: [PATCH 149/580] feat(kit): add new `isNuxtMajorVersion` compatibility
 util (#27579)

---
 packages/kit/src/compatibility.ts | 19 +++++++++++++------
 1 file changed, 13 insertions(+), 6 deletions(-)

diff --git a/packages/kit/src/compatibility.ts b/packages/kit/src/compatibility.ts
index 64f39b9549..8d610041d2 100644
--- a/packages/kit/src/compatibility.ts
+++ b/packages/kit/src/compatibility.ts
@@ -81,19 +81,26 @@ export async function hasNuxtCompatibility (constraints: NuxtCompatibility, nuxt
 }
 
 /**
- * Check if current nuxt instance is version 2 legacy
+ * Check if current Nuxt instance is of specified major version
  */
-export function isNuxt2 (nuxt: Nuxt = useNuxt()) {
+export function isNuxtMajorVersion (majorVersion: 2 | 3 | 4, nuxt: Nuxt = useNuxt()) {
   const version = getNuxtVersion(nuxt)
-  return version[0] === '2' && version[1] === '.'
+
+  return version[0] === majorVersion.toString() && version[1] === '.'
 }
 
 /**
- * Check if current nuxt instance is version 3
+ * @deprecated Use `isNuxtMajorVersion(2, nuxt)` instead. This may be removed in \@nuxt/kit v5 or a future major version.
+ */
+export function isNuxt2 (nuxt: Nuxt = useNuxt()) {
+  return isNuxtMajorVersion(2, nuxt)
+}
+
+/**
+ * @deprecated Use `isNuxtMajorVersion(3, nuxt)` instead. This may be removed in \@nuxt/kit v5 or a future major version.
  */
 export function isNuxt3 (nuxt: Nuxt = useNuxt()) {
-  const version = getNuxtVersion(nuxt)
-  return version[0] === '3' && version[1] === '.'
+  return isNuxtMajorVersion(3, nuxt)
 }
 
 /**

From ae12d72a4001c5e893be019cc475a243b3b57af4 Mon Sep 17 00:00:00 2001
From: Daniel Roe 
Date: Thu, 20 Jun 2024 23:26:06 +0100
Subject: [PATCH 150/580] fix(schema): do not use full path assets/public
 aliases

---
 packages/schema/src/config/common.ts | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/packages/schema/src/config/common.ts b/packages/schema/src/config/common.ts
index aebb01b081..a8d50cde5a 100644
--- a/packages/schema/src/config/common.ts
+++ b/packages/schema/src/config/common.ts
@@ -1,7 +1,7 @@
 import { existsSync } from 'node:fs'
 import { readdir } from 'node:fs/promises'
 import { defineUntypedSchema } from 'untyped'
-import { join, relative, resolve } from 'pathe'
+import { basename, join, relative, resolve } from 'pathe'
 import { isDebug, isDevelopment, isTest } from 'std-env'
 import { defu } from 'defu'
 import { findWorkspaceDir } from 'pkg-types'
@@ -420,8 +420,8 @@ export default defineUntypedSchema({
         '@': srcDir,
         '~~': rootDir,
         '@@': rootDir,
-        [assetsDir]: join(srcDir, assetsDir),
-        [publicDir]: join(srcDir, publicDir),
+        [basename(assetsDir)]: join(srcDir, assetsDir),
+        [basename(publicDir)]: join(srcDir, publicDir),
         ...val,
       }
     },

From 69f09fbae11f150472789313155668075981de7a Mon Sep 17 00:00:00 2001
From: Daniel Roe 
Date: Fri, 21 Jun 2024 07:01:40 +0100
Subject: [PATCH 151/580] fix(nuxt)!: remove old experimental options (#27749)

---
 .../1.experimental-features.md                | 52 ---------------
 packages/nuxt/src/components/module.ts        |  4 +-
 packages/nuxt/src/core/nitro.ts               |  9 ---
 packages/nuxt/src/core/schema.ts              |  3 -
 packages/nuxt/src/head/module.ts              |  5 --
 .../runtime/plugins/vueuse-head-polyfill.ts   | 10 ---
 packages/schema/src/config/experimental.ts    | 65 -------------------
 7 files changed, 2 insertions(+), 146 deletions(-)
 delete mode 100644 packages/nuxt/src/head/runtime/plugins/vueuse-head-polyfill.ts

diff --git a/docs/2.guide/3.going-further/1.experimental-features.md b/docs/2.guide/3.going-further/1.experimental-features.md
index 9105b2ebfa..fd9c065baf 100644
--- a/docs/2.guide/3.going-further/1.experimental-features.md
+++ b/docs/2.guide/3.going-further/1.experimental-features.md
@@ -57,20 +57,6 @@ export default defineNuxtConfig({
 This feature will likely be removed in a near future.
 ::
 
-## treeshakeClientOnly
-
-Tree shakes contents of client-only components from server bundle.
-
-*Enabled by default.*
-
-```ts twoslash [nuxt.config.ts]
-export default defineNuxtConfig({
-  experimental: {
-    treeshakeClientOnly: true
-  }
-})
-```
-
 ## emitRouteChunkError
 
 Emits `app:chunkError` hook when there is an error loading vite/webpack chunks. Default behavior is to perform a hard reload of the new route when a chunk fails to load.
@@ -238,44 +224,6 @@ export default defineNuxtConfig({
 You can follow the server components roadmap on GitHub.
 ::
 
-## configSchema
-
-Enables config schema support.
-
-*Enabled by default.*
-
-```ts twoslash [nuxt.config.ts]
-export default defineNuxtConfig({
-  experimental: {
-    configSchema: true
-  }
-})
-```
-
-## polyfillVueUseHead
-
-Adds a compatibility layer for modules, plugins, or user code relying on the old `@vueuse/head` API.
-
-```ts twoslash [nuxt.config.ts]
-export default defineNuxtConfig({
-  experimental: {
-    polyfillVueUseHead: false
-  }
-})
-```
-
-## respectNoSSRHeader
-
-Allow disabling Nuxt SSR responses by setting the `x-nuxt-no-ssr` header.
-
-```ts twoslash [nuxt.config.ts]
-export default defineNuxtConfig({
-  experimental: {
-    respectNoSSRHeader: false
-  }
-})
-```
-
 ## localLayerAliases
 
 Resolve `~`, `~~`, `@` and `@@` aliases located within layers with respect to their layer source and root directories.
diff --git a/packages/nuxt/src/components/module.ts b/packages/nuxt/src/components/module.ts
index 24fe7f3fbc..649d7c3c80 100644
--- a/packages/nuxt/src/components/module.ts
+++ b/packages/nuxt/src/components/module.ts
@@ -216,7 +216,7 @@ export default defineNuxtModule({
       const mode = isClient ? 'client' : 'server'
 
       config.plugins = config.plugins || []
-      if (nuxt.options.experimental.treeshakeClientOnly && isServer) {
+      if (isServer) {
         config.plugins.push(TreeShakeTemplatePlugin.vite({
           sourcemap: !!nuxt.options.sourcemap[mode],
           getComponents,
@@ -285,7 +285,7 @@ export default defineNuxtModule({
       configs.forEach((config) => {
         const mode = config.name === 'client' ? 'client' : 'server'
         config.plugins = config.plugins || []
-        if (nuxt.options.experimental.treeshakeClientOnly && mode === 'server') {
+        if (mode === 'server') {
           config.plugins.push(TreeShakeTemplatePlugin.webpack({
             sourcemap: !!nuxt.options.sourcemap[mode],
             getComponents,
diff --git a/packages/nuxt/src/core/nitro.ts b/packages/nuxt/src/core/nitro.ts
index c8bcab3ede..639072ba0d 100644
--- a/packages/nuxt/src/core/nitro.ts
+++ b/packages/nuxt/src/core/nitro.ts
@@ -343,15 +343,6 @@ export async function initNitro (nuxt: Nuxt & { _nitro?: Nitro }) {
     }
   }
 
-  // Add backward-compatible middleware to respect `x-nuxt-no-ssr` header
-  if (nuxt.options.experimental.respectNoSSRHeader) {
-    nitroConfig.handlers = nitroConfig.handlers || []
-    nitroConfig.handlers.push({
-      handler: resolve(distDir, 'core/runtime/nitro/no-ssr'),
-      middleware: true,
-    })
-  }
-
   // Register nuxt protection patterns
   nitroConfig.rollupConfig!.plugins = await nitroConfig.rollupConfig!.plugins || []
   nitroConfig.rollupConfig!.plugins = toArray(nitroConfig.rollupConfig!.plugins)
diff --git a/packages/nuxt/src/core/schema.ts b/packages/nuxt/src/core/schema.ts
index f68a62848b..b403e4d269 100644
--- a/packages/nuxt/src/core/schema.ts
+++ b/packages/nuxt/src/core/schema.ts
@@ -20,9 +20,6 @@ export default defineNuxtModule({
     name: 'nuxt-config-schema',
   },
   async setup (_, nuxt) {
-    if (!nuxt.options.experimental.configSchema) {
-      return
-    }
     const resolver = createResolver(import.meta.url)
 
     // Initialize untyped/jiti loader
diff --git a/packages/nuxt/src/head/module.ts b/packages/nuxt/src/head/module.ts
index be319183c8..e22ee47092 100644
--- a/packages/nuxt/src/head/module.ts
+++ b/packages/nuxt/src/head/module.ts
@@ -52,11 +52,6 @@ export default defineNuxtModule({
 
     // Opt-out feature allowing dependencies using @vueuse/head to work
     const unheadVue = await tryResolveModule('@unhead/vue', nuxt.options.modulesDir) || '@unhead/vue'
-    if (nuxt.options.experimental.polyfillVueUseHead) {
-      // backwards compatibility
-      nuxt.options.alias['@vueuse/head'] = unheadVue
-      addPlugin({ src: resolve(runtimeDir, 'plugins/vueuse-head-polyfill') })
-    }
 
     addTemplate({
       filename: 'unhead-plugins.mjs',
diff --git a/packages/nuxt/src/head/runtime/plugins/vueuse-head-polyfill.ts b/packages/nuxt/src/head/runtime/plugins/vueuse-head-polyfill.ts
deleted file mode 100644
index 971806bf13..0000000000
--- a/packages/nuxt/src/head/runtime/plugins/vueuse-head-polyfill.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-import { polyfillAsVueUseHead } from '@unhead/vue/polyfill'
-import { defineNuxtPlugin } from '#app/nuxt'
-
-export default defineNuxtPlugin({
-  name: 'nuxt:vueuse-head-polyfill',
-  setup (nuxtApp) {
-    // avoid breaking ecosystem dependencies using low-level @vueuse/head APIs
-    polyfillAsVueUseHead(nuxtApp.vueApp._context.provides.usehead)
-  },
-})
diff --git a/packages/schema/src/config/experimental.ts b/packages/schema/src/config/experimental.ts
index a9b9b26dcd..69be571683 100644
--- a/packages/schema/src/config/experimental.ts
+++ b/packages/schema/src/config/experimental.ts
@@ -106,22 +106,6 @@ export default defineUntypedSchema({
      */
     externalVue: true,
 
-    /**
-     * Tree shakes contents of client-only components from server bundle.
-     * @see [Nuxt PR #5750](https://github.com/nuxt/framework/pull/5750)
-     * @deprecated This option will no longer be configurable in Nuxt v4
-     */
-    treeshakeClientOnly: {
-      async $resolve (val, get) {
-        const isV4 = ((await get('future') as Record).compatibilityVersion === 4)
-        if (isV4 && val === false) {
-          console.warn('Enabling `experimental.treeshakeClientOnly` in v4 compatibility mode as it will no longer be configurable in Nuxt v4.')
-          return true
-        }
-        return val ?? true
-      },
-    },
-
     /**
      * Emit `app:chunkError` hook when there is an error loading vite/webpack
      * chunks.
@@ -226,55 +210,6 @@ export default defineUntypedSchema({
       },
     },
 
-    /**
-     * Config schema support
-     * @see [Nuxt Issue #15592](https://github.com/nuxt/nuxt/issues/15592)
-     * @deprecated This option will no longer be configurable in Nuxt v4
-     */
-    configSchema: {
-      async $resolve (val, get) {
-        const isV4 = ((await get('future') as Record).compatibilityVersion === 4)
-        if (isV4 && val === false) {
-          console.warn('Enabling `experimental.configSchema` in v4 compatibility mode as it will no longer be configurable in Nuxt v4.')
-          return true
-        }
-        return val ?? true
-      },
-    },
-
-    /**
-     * Whether or not to add a compatibility layer for modules, plugins or user code relying on the old
-     * `@vueuse/head` API.
-     *
-     * This is disabled to reduce the client-side bundle by ~0.5kb.
-     * @deprecated This feature will be removed in Nuxt v4.
-     */
-    polyfillVueUseHead: {
-      async $resolve (val, get) {
-        const isV4 = ((await get('future') as Record).compatibilityVersion === 4)
-        if (isV4 && val === true) {
-          console.warn('Disabling `experimental.polyfillVueUseHead` in v4 compatibility mode as it will no longer be configurable in Nuxt v4.')
-          return false
-        }
-        return val ?? false
-      },
-    },
-
-    /**
-     * Allow disabling Nuxt SSR responses by setting the `x-nuxt-no-ssr` header.
-     * @deprecated This feature will be removed in Nuxt v4.
-     */
-    respectNoSSRHeader: {
-      async $resolve (val, get) {
-        const isV4 = ((await get('future') as Record).compatibilityVersion === 4)
-        if (isV4 && val === true) {
-          console.warn('Disabling `experimental.respectNoSSRHeader` in v4 compatibility mode as it will no longer be configurable in Nuxt v4.')
-          return false
-        }
-        return val ?? false
-      },
-    },
-
     /** Resolve `~`, `~~`, `@` and `@@` aliases located within layers with respect to their layer source and root directories. */
     localLayerAliases: true,
 

From 3a59c02cfd048093d8b076cd18c67d65dc95755e Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Fri, 21 Jun 2024 09:33:00 +0100
Subject: [PATCH 152/580] chore(deps): update all non-major dependencies (main)
 (#27733)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Roe 
---
 package.json                  |  10 +-
 packages/nuxt/package.json    |   8 +-
 packages/schema/package.json  |   4 +-
 packages/vite/package.json    |   2 +-
 packages/webpack/package.json |   2 +-
 pnpm-lock.yaml                | 999 ++++++++++++++--------------------
 test/bundle.test.ts           |   4 +-
 7 files changed, 417 insertions(+), 612 deletions(-)

diff --git a/package.json b/package.json
index 0f59b33e78..931e5aeace 100644
--- a/package.json
+++ b/package.json
@@ -54,9 +54,9 @@
     "@testing-library/vue": "8.1.0",
     "@types/eslint__js": "8.42.3",
     "@types/fs-extra": "11.0.4",
-    "@types/node": "20.14.6",
+    "@types/node": "20.14.7",
     "@types/semver": "7.5.8",
-    "@unhead/schema": "1.9.13",
+    "@unhead/schema": "1.9.14",
     "@vitejs/plugin-vue": "5.0.4",
     "@vitest/coverage-v8": "1.6.0",
     "@vue/test-utils": "2.4.6",
@@ -71,8 +71,8 @@
     "execa": "9.2.0",
     "fs-extra": "11.2.0",
     "globby": "14.0.1",
-    "h3": "1.11.1",
-    "happy-dom": "14.12.0",
+    "h3": "1.12.0",
+    "happy-dom": "14.12.3",
     "jiti": "1.21.6",
     "markdownlint-cli": "0.41.0",
     "nitropack": "2.9.6",
@@ -85,7 +85,7 @@
     "rimraf": "5.0.7",
     "semver": "7.6.2",
     "std-env": "3.7.0",
-    "typescript": "5.4.5",
+    "typescript": "5.5.2",
     "ufo": "1.5.3",
     "vitest": "1.6.0",
     "vitest-environment-nuxt": "1.0.0",
diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json
index ea9939edf9..27a9330c23 100644
--- a/packages/nuxt/package.json
+++ b/packages/nuxt/package.json
@@ -65,9 +65,9 @@
     "@nuxt/schema": "workspace:*",
     "@nuxt/telemetry": "^2.5.4",
     "@nuxt/vite-builder": "workspace:*",
-    "@unhead/dom": "^1.9.13",
-    "@unhead/ssr": "^1.9.13",
-    "@unhead/vue": "^1.9.13",
+    "@unhead/dom": "^1.9.14",
+    "@unhead/ssr": "^1.9.14",
+    "@unhead/vue": "^1.9.14",
     "@vue/shared": "^3.4.29",
     "acorn": "8.12.0",
     "c12": "^1.11.1",
@@ -81,7 +81,7 @@
     "estree-walker": "^3.0.3",
     "fs-extra": "^11.2.0",
     "globby": "^14.0.1",
-    "h3": "^1.11.1",
+    "h3": "^1.12.0",
     "hookable": "^5.5.3",
     "ignore": "^5.3.1",
     "jiti": "^1.21.6",
diff --git a/packages/schema/package.json b/packages/schema/package.json
index 9c8ac00cf2..2c8d188fa7 100644
--- a/packages/schema/package.json
+++ b/packages/schema/package.json
@@ -39,7 +39,7 @@
     "@types/file-loader": "5.0.4",
     "@types/pug": "2.0.10",
     "@types/sass-loader": "8.0.8",
-    "@unhead/schema": "1.9.13",
+    "@unhead/schema": "1.9.14",
     "@vitejs/plugin-vue": "5.0.4",
     "@vitejs/plugin-vue-jsx": "4.0.0",
     "@vue/compiler-core": "3.4.29",
@@ -47,7 +47,7 @@
     "@vue/language-core": "2.0.21",
     "c12": "1.11.1",
     "esbuild-loader": "4.2.0",
-    "h3": "1.11.1",
+    "h3": "1.12.0",
     "ignore": "5.3.1",
     "nitropack": "2.9.6",
     "ofetch": "1.3.4",
diff --git a/packages/vite/package.json b/packages/vite/package.json
index cbfeab4891..d48970a161 100644
--- a/packages/vite/package.json
+++ b/packages/vite/package.json
@@ -48,7 +48,7 @@
     "externality": "^1.0.2",
     "fs-extra": "^11.2.0",
     "get-port-please": "^3.1.2",
-    "h3": "^1.11.1",
+    "h3": "^1.12.0",
     "knitwork": "^1.1.0",
     "magic-string": "^0.30.10",
     "mlly": "^1.7.1",
diff --git a/packages/webpack/package.json b/packages/webpack/package.json
index a21e928350..e8c3846459 100644
--- a/packages/webpack/package.json
+++ b/packages/webpack/package.json
@@ -38,7 +38,7 @@
     "file-loader": "^6.2.0",
     "fork-ts-checker-webpack-plugin": "^9.0.2",
     "fs-extra": "^11.2.0",
-    "h3": "^1.11.1",
+    "h3": "^1.12.0",
     "hash-sum": "^2.0.0",
     "lodash-es": "4.17.21",
     "magic-string": "^0.30.10",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 27555ee7ea..ca42f491c4 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -25,19 +25,19 @@ importers:
         version: 9.5.0
       '@nuxt/eslint-config':
         specifier: 0.3.13
-        version: 0.3.13(eslint@9.5.0)(typescript@5.4.5)
+        version: 0.3.13(eslint@9.5.0)(typescript@5.5.2)
       '@nuxt/kit':
         specifier: workspace:*
         version: link:packages/kit
       '@nuxt/test-utils':
         specifier: 3.13.1
-        version: 3.13.1(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.4.5)))(@vue/test-utils@2.4.6)(h3@1.11.1)(happy-dom@14.12.0)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.44.1)(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.6)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.3(vue@3.4.29(typescript@5.4.5)))(vue@3.4.29(typescript@5.4.5))
+        version: 3.13.1(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.5.2)))(@vue/test-utils@2.4.6)(h3@1.12.0)(happy-dom@14.12.3)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.44.1)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.7)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.3(vue@3.4.29(typescript@5.5.2)))(vue@3.4.29(typescript@5.5.2))
       '@nuxt/webpack-builder':
         specifier: workspace:*
         version: link:packages/webpack
       '@testing-library/vue':
         specifier: 8.1.0
-        version: 8.1.0(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.4.5))
+        version: 8.1.0(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.5.2))
       '@types/eslint__js':
         specifier: 8.42.3
         version: 8.42.3
@@ -45,20 +45,20 @@ importers:
         specifier: 11.0.4
         version: 11.0.4
       '@types/node':
-        specifier: 20.14.6
-        version: 20.14.6
+        specifier: 20.14.7
+        version: 20.14.7
       '@types/semver':
         specifier: 7.5.8
         version: 7.5.8
       '@unhead/schema':
-        specifier: 1.9.13
-        version: 1.9.13
+        specifier: 1.9.14
+        version: 1.9.14
       '@vitejs/plugin-vue':
         specifier: 5.0.4
-        version: 5.0.4(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))
+        version: 5.0.4(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.5.2))
       '@vitest/coverage-v8':
         specifier: 1.6.0
-        version: 1.6.0(vitest@1.6.0(@types/node@20.14.6)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))
+        version: 1.6.0(vitest@1.6.0(@types/node@20.14.7)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0))
       '@vue/test-utils':
         specifier: 2.4.6
         version: 2.4.6
@@ -82,7 +82,7 @@ importers:
         version: 3.1.0
       eslint-plugin-perfectionist:
         specifier: 2.11.0
-        version: 2.11.0(eslint@9.5.0)(typescript@5.4.5)(vue-eslint-parser@9.4.2(eslint@9.5.0))
+        version: 2.11.0(eslint@9.5.0)(typescript@5.5.2)(vue-eslint-parser@9.4.2(eslint@9.5.0))
       eslint-typegen:
         specifier: 0.2.4
         version: 0.2.4(eslint@9.5.0)
@@ -96,11 +96,11 @@ importers:
         specifier: 14.0.1
         version: 14.0.1
       h3:
-        specifier: 1.11.1
-        version: 1.11.1
+        specifier: 1.12.0
+        version: 1.12.0
       happy-dom:
-        specifier: 14.12.0
-        version: 14.12.0
+        specifier: 14.12.3
+        version: 14.12.3
       jiti:
         specifier: 1.21.6
         version: 1.21.6
@@ -138,26 +138,26 @@ importers:
         specifier: 3.7.0
         version: 3.7.0
       typescript:
-        specifier: 5.4.5
-        version: 5.4.5
+        specifier: 5.5.2
+        version: 5.5.2
       ufo:
         specifier: 1.5.3
         version: 1.5.3
       vitest:
         specifier: 1.6.0
-        version: 1.6.0(@types/node@20.14.6)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0)
+        version: 1.6.0(@types/node@20.14.7)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0)
       vitest-environment-nuxt:
         specifier: 1.0.0
-        version: 1.0.0(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.4.5)))(@vue/test-utils@2.4.6)(h3@1.11.1)(happy-dom@14.12.0)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.44.1)(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.6)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.3(vue@3.4.29(typescript@5.4.5)))(vue@3.4.29(typescript@5.4.5))
+        version: 1.0.0(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.5.2)))(@vue/test-utils@2.4.6)(h3@1.12.0)(happy-dom@14.12.3)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.44.1)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.7)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.3(vue@3.4.29(typescript@5.5.2)))(vue@3.4.29(typescript@5.5.2))
       vue:
         specifier: 3.4.29
-        version: 3.4.29(typescript@5.4.5)
+        version: 3.4.29(typescript@5.5.2)
       vue-router:
         specifier: 4.3.3
-        version: 4.3.3(vue@3.4.29(typescript@5.4.5))
+        version: 4.3.3(vue@3.4.29(typescript@5.5.2))
       vue-tsc:
         specifier: 2.0.21
-        version: 2.0.21(typescript@5.4.5)
+        version: 2.0.21(typescript@5.5.2)
 
   packages/kit:
     dependencies:
@@ -230,13 +230,13 @@ importers:
         version: 2.9.6(encoding@0.1.13)(magicast@0.3.4)
       unbuild:
         specifier: latest
-        version: 2.0.0(sass@1.69.4)(typescript@5.4.5)
+        version: 2.0.0(sass@1.69.4)(typescript@5.5.2)
       vite:
         specifier: 5.3.1
-        version: 5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0)
+        version: 5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0)
       vitest:
         specifier: 1.6.0
-        version: 1.6.0(@types/node@20.14.6)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0)
+        version: 1.6.0(@types/node@20.14.7)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0)
       webpack:
         specifier: 5.92.1
         version: 5.92.1
@@ -248,7 +248,7 @@ importers:
         version: 2.0.2
       '@nuxt/devtools':
         specifier: ^1.3.3
-        version: 1.3.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))
+        version: 1.3.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.5.2)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.5.2))
       '@nuxt/kit':
         specifier: workspace:*
         version: link:../kit
@@ -263,16 +263,16 @@ importers:
         version: link:../vite
       '@types/node':
         specifier: ^14.18.0 || >=16.10.0
-        version: 20.14.2
+        version: 20.14.7
       '@unhead/dom':
-        specifier: ^1.9.13
-        version: 1.9.13
+        specifier: ^1.9.14
+        version: 1.9.14
       '@unhead/ssr':
-        specifier: ^1.9.13
-        version: 1.9.13
+        specifier: ^1.9.14
+        version: 1.9.14
       '@unhead/vue':
-        specifier: ^1.9.13
-        version: 1.9.13(vue@3.4.29(typescript@5.4.5))
+        specifier: ^1.9.14
+        version: 1.9.14(vue@3.4.29(typescript@5.5.2))
       '@vue/shared':
         specifier: ^3.4.29
         version: 3.4.29
@@ -313,8 +313,8 @@ importers:
         specifier: ^14.0.1
         version: 14.0.1
       h3:
-        specifier: ^1.11.1
-        version: 1.11.1
+        specifier: ^1.12.0
+        version: 1.12.0
       hookable:
         specifier: ^5.5.3
         version: 5.5.3
@@ -398,7 +398,7 @@ importers:
         version: 1.10.1
       unplugin-vue-router:
         specifier: ^0.7.0
-        version: 0.7.0(rollup@4.18.0)(vue-router@4.3.3(vue@3.4.29(typescript@5.4.5)))(vue@3.4.29(typescript@5.4.5))
+        version: 0.7.0(rollup@4.18.0)(vue-router@4.3.3(vue@3.4.29(typescript@5.5.2)))(vue@3.4.29(typescript@5.5.2))
       unstorage:
         specifier: ^1.10.2
         version: 1.10.2(ioredis@5.3.2)
@@ -407,7 +407,7 @@ importers:
         version: 1.4.2
       vue:
         specifier: 3.4.29
-        version: 3.4.29(typescript@5.4.5)
+        version: 3.4.29(typescript@5.5.2)
       vue-bundle-renderer:
         specifier: ^2.1.0
         version: 2.1.0
@@ -416,11 +416,11 @@ importers:
         version: 0.1.0
       vue-router:
         specifier: ^4.3.3
-        version: 4.3.3(vue@3.4.29(typescript@5.4.5))
+        version: 4.3.3(vue@3.4.29(typescript@5.5.2))
     devDependencies:
       '@nuxt/scripts':
         specifier: 0.5.1
-        version: 0.5.1(@nuxt/devtools@1.3.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5)))(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(@vue/compiler-core@3.4.29)(ioredis@5.3.2)(nuxt@packages+nuxt)(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))(webpack@5.92.1(esbuild@0.21.5))
+        version: 0.5.1(@nuxt/devtools@1.3.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.5.2)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.5.2)))(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(@vue/compiler-core@3.4.29)(ioredis@5.3.2)(nuxt@packages+nuxt)(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.5.2))(webpack@5.92.1(esbuild@0.21.5))
       '@nuxt/ui-templates':
         specifier: workspace:*
         version: link:../ui-templates
@@ -435,19 +435,19 @@ importers:
         version: 11.0.4
       '@vitejs/plugin-vue':
         specifier: 5.0.4
-        version: 5.0.4(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))
+        version: 5.0.4(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.5.2))
       '@vue/compiler-sfc':
         specifier: 3.4.29
         version: 3.4.29
       unbuild:
         specifier: latest
-        version: 2.0.0(sass@1.69.4)(typescript@5.4.5)
+        version: 2.0.0(sass@1.69.4)(typescript@5.5.2)
       vite:
         specifier: 5.3.1
-        version: 5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)
+        version: 5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0)
       vitest:
         specifier: 1.6.0
-        version: 1.6.0(@types/node@20.14.2)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0)
+        version: 1.6.0(@types/node@20.14.7)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0)
 
   packages/schema:
     dependencies:
@@ -504,14 +504,14 @@ importers:
         specifier: 8.0.8
         version: 8.0.8
       '@unhead/schema':
-        specifier: 1.9.13
-        version: 1.9.13
+        specifier: 1.9.14
+        version: 1.9.14
       '@vitejs/plugin-vue':
         specifier: 5.0.4
-        version: 5.0.4(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))
+        version: 5.0.4(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.5.2))
       '@vitejs/plugin-vue-jsx':
         specifier: 4.0.0
-        version: 4.0.0(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))
+        version: 4.0.0(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.5.2))
       '@vue/compiler-core':
         specifier: 3.4.29
         version: 3.4.29
@@ -520,7 +520,7 @@ importers:
         version: 3.4.29
       '@vue/language-core':
         specifier: 2.0.21
-        version: 2.0.21(typescript@5.4.5)
+        version: 2.0.21(typescript@5.5.2)
       c12:
         specifier: 1.11.1
         version: 1.11.1(magicast@0.3.4)
@@ -528,8 +528,8 @@ importers:
         specifier: 4.2.0
         version: 4.2.0(webpack@5.92.1)
       h3:
-        specifier: 1.11.1
-        version: 1.11.1
+        specifier: 1.12.0
+        version: 1.12.0
       ignore:
         specifier: 5.3.1
         version: 5.3.1
@@ -541,7 +541,7 @@ importers:
         version: 1.3.4
       unbuild:
         specifier: latest
-        version: 2.0.0(sass@1.69.4)(typescript@5.4.5)
+        version: 2.0.0(sass@1.69.4)(typescript@5.5.2)
       unctx:
         specifier: 2.3.1
         version: 2.3.1
@@ -550,19 +550,19 @@ importers:
         version: 1.9.0
       vite:
         specifier: 5.3.1
-        version: 5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0)
+        version: 5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0)
       vue:
         specifier: 3.4.29
-        version: 3.4.29(typescript@5.4.5)
+        version: 3.4.29(typescript@5.5.2)
       vue-bundle-renderer:
         specifier: 2.1.0
         version: 2.1.0
       vue-loader:
         specifier: 17.4.2
-        version: 17.4.2(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.4.5))(webpack@5.92.1)
+        version: 17.4.2(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.5.2))(webpack@5.92.1)
       vue-router:
         specifier: 4.3.3
-        version: 4.3.3(vue@3.4.29(typescript@5.4.5))
+        version: 4.3.3(vue@3.4.29(typescript@5.5.2))
       webpack:
         specifier: 5.92.1
         version: 5.92.1
@@ -607,10 +607,10 @@ importers:
         version: 1.3.0
       unocss:
         specifier: 0.61.0
-        version: 0.61.0(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0))
+        version: 0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))
       vite:
         specifier: 5.3.1
-        version: 5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0)
+        version: 5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0)
 
   packages/vite:
     dependencies:
@@ -622,10 +622,10 @@ importers:
         version: 5.0.7(rollup@4.18.0)
       '@vitejs/plugin-vue':
         specifier: ^5.0.4
-        version: 5.0.4(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))
+        version: 5.0.4(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.5.2))
       '@vitejs/plugin-vue-jsx':
         specifier: ^4.0.0
-        version: 4.0.0(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))
+        version: 4.0.0(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.5.2))
       autoprefixer:
         specifier: ^10.4.19
         version: 10.4.19(postcss@8.4.38)
@@ -660,8 +660,8 @@ importers:
         specifier: ^3.1.2
         version: 3.1.2
       h3:
-        specifier: ^1.11.1
-        version: 1.11.1
+        specifier: ^1.12.0
+        version: 1.12.0
       knitwork:
         specifier: ^1.1.0
         version: 1.1.0
@@ -706,13 +706,13 @@ importers:
         version: 1.10.1
       vite:
         specifier: 5.3.1
-        version: 5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0)
+        version: 5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0)
       vite-node:
         specifier: ^1.6.0
-        version: 1.6.0(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0)
+        version: 1.6.0(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0)
       vite-plugin-checker:
         specifier: ^0.6.4
-        version: 0.6.4(eslint@9.5.0)(optionator@0.9.3)(typescript@5.4.5)(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0))(vue-tsc@2.0.21(typescript@5.4.5))
+        version: 0.6.4(eslint@9.5.0)(optionator@0.9.3)(typescript@5.5.2)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))(vue-tsc@2.0.21(typescript@5.5.2))
       vue-bundle-renderer:
         specifier: ^2.1.0
         version: 2.1.0
@@ -734,10 +734,10 @@ importers:
         version: 4.18.0
       unbuild:
         specifier: latest
-        version: 2.0.0(sass@1.69.4)(typescript@5.4.5)
+        version: 2.0.0(sass@1.69.4)(typescript@5.5.2)
       vue:
         specifier: 3.4.29
-        version: 3.4.29(typescript@5.4.5)
+        version: 3.4.29(typescript@5.5.2)
 
   packages/webpack:
     dependencies:
@@ -776,13 +776,13 @@ importers:
         version: 6.2.0(webpack@5.92.1)
       fork-ts-checker-webpack-plugin:
         specifier: ^9.0.2
-        version: 9.0.2(typescript@5.4.5)(webpack@5.92.1)
+        version: 9.0.2(typescript@5.5.2)(webpack@5.92.1)
       fs-extra:
         specifier: ^11.2.0
         version: 11.2.0
       h3:
-        specifier: ^1.11.1
-        version: 1.11.1
+        specifier: ^1.12.0
+        version: 1.12.0
       hash-sum:
         specifier: ^2.0.0
         version: 2.0.0
@@ -821,7 +821,7 @@ importers:
         version: 2.0.0
       postcss-loader:
         specifier: ^8.1.1
-        version: 8.1.1(postcss@8.4.38)(typescript@5.4.5)(webpack@5.92.1)
+        version: 8.1.1(postcss@8.4.38)(typescript@5.5.2)(webpack@5.92.1)
       postcss-url:
         specifier: ^10.1.3
         version: 10.1.3(postcss@8.4.38)
@@ -851,7 +851,7 @@ importers:
         version: 2.1.0
       vue-loader:
         specifier: ^17.4.2
-        version: 17.4.2(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.4.5))(webpack@5.92.1)
+        version: 17.4.2(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.5.2))(webpack@5.92.1)
       webpack:
         specifier: ^5.92.1
         version: 5.92.1
@@ -894,16 +894,16 @@ importers:
         version: 2.25.9
       unbuild:
         specifier: latest
-        version: 2.0.0(sass@1.69.4)(typescript@5.4.5)
+        version: 2.0.0(sass@1.69.4)(typescript@5.5.2)
       vue:
         specifier: 3.4.29
-        version: 3.4.29(typescript@5.4.5)
+        version: 3.4.29(typescript@5.5.2)
 
   playground:
     dependencies:
       '@unhead/shared':
         specifier: latest
-        version: 1.9.13
+        version: 1.9.14
       '@vue/devtools-api':
         specifier: latest
         version: 6.6.3
@@ -915,10 +915,10 @@ importers:
         version: link:../packages/nuxt
       unhead:
         specifier: latest
-        version: 1.9.13
+        version: 1.9.14
       vue:
         specifier: 3.4.29
-        version: 3.4.29(typescript@5.4.5)
+        version: 3.4.29(typescript@5.5.2)
 
   test/fixtures/basic:
     dependencies:
@@ -931,10 +931,10 @@ importers:
     devDependencies:
       '@unhead/dom':
         specifier: latest
-        version: 1.9.13
+        version: 1.9.14
       '@unhead/shared':
         specifier: latest
-        version: 1.9.13
+        version: 1.9.14
       '@vue/devtools-api':
         specifier: latest
         version: 6.6.3
@@ -949,13 +949,13 @@ importers:
         version: 1.5.3
       unhead:
         specifier: latest
-        version: 1.9.13
+        version: 1.9.14
       unplugin:
         specifier: latest
         version: 1.10.1
       vue:
         specifier: 3.4.29
-        version: 3.4.29(typescript@5.4.5)
+        version: 3.4.29(typescript@5.5.2)
 
   test/fixtures/basic-types:
     dependencies:
@@ -968,16 +968,16 @@ importers:
         version: 1.3.4
       unplugin-vue-router:
         specifier: ^0.7.0
-        version: 0.7.0(rollup@4.18.0)(vue-router@4.3.3(vue@3.4.29(typescript@5.4.5)))(vue@3.4.29(typescript@5.4.5))
+        version: 0.7.0(rollup@4.18.0)(vue-router@4.3.3(vue@3.4.29(typescript@5.5.2)))(vue@3.4.29(typescript@5.5.2))
       vitest:
         specifier: 1.6.0
-        version: 1.6.0(@types/node@20.14.6)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0)
+        version: 1.6.0(@types/node@20.14.7)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0)
       vue:
         specifier: 3.4.29
-        version: 3.4.29(typescript@5.4.5)
+        version: 3.4.29(typescript@5.5.2)
       vue-router:
         specifier: latest
-        version: 4.3.3(vue@3.4.29(typescript@5.4.5))
+        version: 4.3.3(vue@3.4.29(typescript@5.5.2))
 
   test/fixtures/minimal:
     dependencies:
@@ -986,7 +986,7 @@ importers:
         version: link:../../../packages/nuxt
       vue:
         specifier: 3.4.29
-        version: 3.4.29(typescript@5.4.5)
+        version: 3.4.29(typescript@5.5.2)
 
   test/fixtures/minimal-types:
     dependencies:
@@ -995,7 +995,7 @@ importers:
         version: link:../../../packages/nuxt
       vue:
         specifier: 3.4.29
-        version: 3.4.29(typescript@5.4.5)
+        version: 3.4.29(typescript@5.5.2)
 
   test/fixtures/runtime-compiler:
     dependencies:
@@ -1005,7 +1005,7 @@ importers:
     devDependencies:
       '@unhead/shared':
         specifier: latest
-        version: 1.9.13
+        version: 1.9.14
       '@vue/devtools-api':
         specifier: latest
         version: 6.6.3
@@ -1014,7 +1014,7 @@ importers:
         version: 3.4.29
       unhead:
         specifier: latest
-        version: 1.9.13
+        version: 1.9.14
 
   test/fixtures/suspense:
     dependencies:
@@ -1023,11 +1023,11 @@ importers:
         version: link:../../../packages/nuxt
       vue:
         specifier: 3.4.29
-        version: 3.4.29(typescript@5.4.5)
+        version: 3.4.29(typescript@5.5.2)
     devDependencies:
       '@unhead/shared':
         specifier: latest
-        version: 1.9.13
+        version: 1.9.14
       '@vue/devtools-api':
         specifier: latest
         version: 6.6.3
@@ -1036,10 +1036,10 @@ importers:
         version: 3.4.29
       typescript:
         specifier: latest
-        version: 5.4.5
+        version: 5.5.2
       unhead:
         specifier: latest
-        version: 1.9.13
+        version: 1.9.14
 
 packages:
 
@@ -2544,11 +2544,8 @@ packages:
   '@types/node-sass@4.11.6':
     resolution: {integrity: sha512-Qkf5Fs9zzsXchenUY7oVdIHyv8FtPgqIXqOJzhh3FDqpYjqvc/gtZ3hlZVFmKQhl7wyI4+WkRbYufYC5pfY7iw==}
 
-  '@types/node@20.14.2':
-    resolution: {integrity: sha512-xyu6WAMVwv6AKFLB+e/7ySZVr/0zLCzOa7rSpq6jNwpqOrUbcACDWC+53d4n2QHOnDou0fbIsg8wZu/sxrnI4Q==}
-
-  '@types/node@20.14.6':
-    resolution: {integrity: sha512-JbA0XIJPL1IiNnU7PFxDXyfAwcwVVrOoqyzzyQTyMeVhBzkJVMSkC1LlVsRQ2lpqiY4n6Bb9oCS6lzDKVQxbZw==}
+  '@types/node@20.14.7':
+    resolution: {integrity: sha512-uTr2m2IbJJucF3KUxgnGOZvYbN0QgkGyWxG6973HCpMYFy2KfcgYuIwkJQMQkt1VbBMlvWRbpshFTLxnxCZjKQ==}
 
   '@types/normalize-package-data@2.4.4':
     resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==}
@@ -2680,20 +2677,20 @@ packages:
   '@ungap/structured-clone@1.2.0':
     resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==}
 
-  '@unhead/dom@1.9.13':
-    resolution: {integrity: sha512-Fzc929W+5f88c90kn9aKs7EbgRBhphArMqBbifre134GWgrgDVR0odoadNa7i9eH4roPEDE1FIGcKVWuxOIHbg==}
+  '@unhead/dom@1.9.14':
+    resolution: {integrity: sha512-XZSZ2Wmm1Sv7k9scSFGrarbteSIl3p3I3oOUprKPDboBTvuG5q81Qz8O99NKUGKGJ8BKUkxCqE982eH3S8DKJA==}
 
-  '@unhead/schema@1.9.13':
-    resolution: {integrity: sha512-keOfTXC/tI21fURcEszBHgGvIg2AszQVQEXBG5BYgC2TQph25Bmv7Fk8W2ogFmj+DdZmFiDnSJdz/NKv3bqnTQ==}
+  '@unhead/schema@1.9.14':
+    resolution: {integrity: sha512-60NYSM6QjfK/wx4/QfaYyZ3XnNtwxS9a1oij2abEkGHPmA2/fqBOXeuHtnBo4eD42/Eg+owcS5s3mClPL8AkXw==}
 
-  '@unhead/shared@1.9.13':
-    resolution: {integrity: sha512-zNlJ2i5WonQZu/UMHJJzYMyBLhlCCxj1JxHL6lEG+Z6XiERfJDFr8mEAsQY7M2KrGAHR+WRBxNVoLw03j/kfrA==}
+  '@unhead/shared@1.9.14':
+    resolution: {integrity: sha512-7ZIC7uDV8gp3KHm5JxJ/NXMENQgkh+SCyTcsILSpOhkAGeszMHABrB6vjeZDGM4J9mRUxwyPn24KI2zG/R+XiQ==}
 
-  '@unhead/ssr@1.9.13':
-    resolution: {integrity: sha512-YjYrZ3u9uNDzrMybWMVFE0bDcMWBV6Dyqba2Sjq6x84NBRBpZfcUrc7v58iwp5m4XBNfyPs1+r5tOSV0qCiGww==}
+  '@unhead/ssr@1.9.14':
+    resolution: {integrity: sha512-OIBZu+WBiyCcDMJ4Ysu7uA6yMZ3fWXWyVrT2w0my5oQJgA0BS7lzfReRL8Sw6+ORlupn9Rn++HXfV0ixtxCxIA==}
 
-  '@unhead/vue@1.9.13':
-    resolution: {integrity: sha512-vIMNrB0kZ/3zalmE4j64eBLTkXkrcms78YbptXLvfnnQ9BLGiwsSuB3c0e+4S5Cn1dpMqUTfg5e/hCQYGDMhEA==}
+  '@unhead/vue@1.9.14':
+    resolution: {integrity: sha512-Yc7Qv0ze+iLte4urHiA+ghkF7y+svrawrT+ZrCuGXkZ/eRTF/AY2SKex+rJQJZsP+fKEQ2pGb72IsI5kHFZT3A==}
     peerDependencies:
       vue: 3.4.29
 
@@ -3391,11 +3388,6 @@ packages:
     resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
     engines: {node: '>=8'}
 
-  browserslist@4.23.0:
-    resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==}
-    engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
-    hasBin: true
-
   browserslist@4.23.1:
     resolution: {integrity: sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==}
     engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
@@ -3460,9 +3452,6 @@ packages:
   caniuse-api@3.0.0:
     resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==}
 
-  caniuse-lite@1.0.30001599:
-    resolution: {integrity: sha512-LRAQHZ4yT1+f9LemSMeqdMpMxZcc4RMWdj4tiFe3G8tNkWK+E58g+/tzotb5cU6TbcVJLr4fySiAW7XmxQvZQA==}
-
   caniuse-lite@1.0.30001636:
     resolution: {integrity: sha512-bMg2vmr8XBsbL6Lr0UHXy/21m84FTxDLWn2FSqMd5PrlbMxwJlQnC2YWYxVgp66PZE+BBNF2jYQUBKCo1FDeZg==}
 
@@ -4004,9 +3993,6 @@ packages:
   ee-first@1.1.1:
     resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
 
-  electron-to-chromium@1.4.681:
-    resolution: {integrity: sha512-1PpuqJUFWoXZ1E54m8bsLPVYwIVCRzvaL+n5cjigGga4z854abDnFRc+cTa2th4S79kyGqya/1xoR7h+Y5G5lg==}
-
   electron-to-chromium@1.4.806:
     resolution: {integrity: sha512-nkoEX2QIB8kwCOtvtgwhXWy2IHVcOLQZu9Qo36uaGB835mdX/h8uLRlosL6QIhLVUnAiicXRW00PwaPZC74Nrg==}
 
@@ -4104,10 +4090,6 @@ packages:
     engines: {node: '>=12'}
     hasBin: true
 
-  escalade@3.1.1:
-    resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==}
-    engines: {node: '>=6'}
-
   escalade@3.1.2:
     resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==}
     engines: {node: '>=6'}
@@ -4560,11 +4542,11 @@ packages:
     resolution: {integrity: sha512-O1Ld7Dr+nqPnmGpdhzLmMTQ4vAsD+rHwMm1NLUmoUFFymBOMKxCCrtDxqdBRYXdeEPEi3SyoR4TizJLQrnKBNA==}
     engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
 
-  h3@1.11.1:
-    resolution: {integrity: sha512-AbaH6IDnZN6nmbnJOH72y3c5Wwh9P97soSVdGSBbcDACRdkC0FEWf25pzx4f/NuOCK6quHmW18yF2Wx+G4Zi1A==}
+  h3@1.12.0:
+    resolution: {integrity: sha512-Zi/CcNeWBXDrFNlV0hUBJQR9F7a96RjMeAZweW/ZWkR9fuXrMcvKnSA63f/zZ9l0GgQOZDVHGvXivNN9PWOwhA==}
 
-  happy-dom@14.12.0:
-    resolution: {integrity: sha512-dHcnlGFY2o2CdxfuYpqwSrBrpj/Kuzv4u4f3TU5yHW1GL24dKij4pv1BRjXnXc3uWo8qsCbToF9weaDsm/He8A==}
+  happy-dom@14.12.3:
+    resolution: {integrity: sha512-vsYlEs3E9gLwA1Hp+w3qzu+RUDFf4VTT8cyKqVICoZ2k7WM++Qyd2LwzyTi5bqMJFiIC/vNpTDYuxdreENRK/g==}
     engines: {node: '>=16.0.0'}
 
   has-bigints@1.0.2:
@@ -5305,10 +5287,6 @@ packages:
     resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==}
     engines: {node: '>= 4.0.0'}
 
-  memfs@4.9.2:
-    resolution: {integrity: sha512-f16coDZlTG1jskq3mxarwB+fGRrd0uXWt+o1WIhRfOwbXQZqUDsTVxQBFK9JjRQHblg8eAG2JSbprDXKjc7ijQ==}
-    engines: {node: '>= 4.0.0'}
-
   memfs@4.9.3:
     resolution: {integrity: sha512-bsYSSnirtYTWi1+OPMFb0M048evMKyUYe0EbtuGQgq6BVQM1g1W8/KIUJCCvjgI/El0j6Q4WsmMiBwLUBSw8LA==}
     engines: {node: '>= 4.0.0'}
@@ -5921,9 +5899,6 @@ packages:
   perfect-debounce@1.0.0:
     resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==}
 
-  picocolors@1.0.0:
-    resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
-
   picocolors@1.0.1:
     resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==}
 
@@ -6670,12 +6645,6 @@ packages:
     resolution: {integrity: sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==}
     engines: {node: '>= 10.13.0', npm: '>= 3.0.0'}
 
-  sonic-forest@1.0.0:
-    resolution: {integrity: sha512-yFO2N4uTUFtgKLw03WWFpN1iEwZySweMsa18XN3Kt0yYrlmVHunC2ZgM+437zDoKISAJHcH3Cg18U7d6tuSgSQ==}
-    engines: {node: '>=10.0'}
-    peerDependencies:
-      tslib: '2'
-
   source-list-map@2.0.1:
     resolution: {integrity: sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==}
 
@@ -6998,8 +6967,8 @@ packages:
     resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==}
     engines: {node: '>=14.16'}
 
-  typescript@5.4.5:
-    resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==}
+  typescript@5.5.2:
+    resolution: {integrity: sha512-NcRtPEOsPFFWjobJEtfihkLCZCXZt/os3zf8nTxjVH3RvTSxjrCamJpbExGvYOF+tFHc3pA65qpdwPbzjohhew==}
     engines: {node: '>=14.17'}
     hasBin: true
 
@@ -7045,8 +7014,8 @@ packages:
   unenv@1.9.0:
     resolution: {integrity: sha512-QKnFNznRxmbOF1hDgzpqrlIf6NC5sbZ2OJ+5Wl3OX8uM+LUJXbj4TXvLJCtwbPTmbMHCLIz6JLKNinNsMShK9g==}
 
-  unhead@1.9.13:
-    resolution: {integrity: sha512-r7O7s5nw1vUrolueEitawh1HnrzXoekHPM1gsYMF3Tu0A2SzochDJw/1F+Nhu3e073rJ9cUGZqobZY3+RZS4Ew==}
+  unhead@1.9.14:
+    resolution: {integrity: sha512-npdYu6CfasX/IhB8OO27e3u4A1zhAY77T1FwWDIIUaJvugYTte5hjsolPX0/fG5jmjnWTFTuIkmbCSfj7bfIkg==}
 
   unicode-emoji-modifier-base@1.0.0:
     resolution: {integrity: sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==}
@@ -7187,12 +7156,6 @@ packages:
   unwasm@0.3.9:
     resolution: {integrity: sha512-LDxTx/2DkFURUd+BU1vUsF/moj0JsoTvl+2tcg2AUOiEzVturhGGx17/IMgGvKUYdZwr33EJHtChCJuhu9Ouvg==}
 
-  update-browserslist-db@1.0.13:
-    resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==}
-    hasBin: true
-    peerDependencies:
-      browserslist: '>= 4.21.0'
-
   update-browserslist-db@1.0.16:
     resolution: {integrity: sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==}
     hasBin: true
@@ -7675,7 +7638,7 @@ snapshots:
   '@babel/code-frame@7.24.7':
     dependencies:
       '@babel/highlight': 7.24.7
-      picocolors: 1.0.0
+      picocolors: 1.0.1
 
   '@babel/compat-data@7.24.7': {}
 
@@ -7824,7 +7787,7 @@ snapshots:
       '@babel/helper-validator-identifier': 7.24.7
       chalk: 2.4.2
       js-tokens: 4.0.0
-      picocolors: 1.0.0
+      picocolors: 1.0.1
 
   '@babel/parser@7.24.7':
     dependencies:
@@ -8320,7 +8283,7 @@ snapshots:
       '@jest/schemas': 29.6.3
       '@types/istanbul-lib-coverage': 2.0.5
       '@types/istanbul-reports': 3.0.3
-      '@types/node': 20.14.6
+      '@types/node': 20.14.7
       '@types/yargs': 17.0.28
       chalk: 4.1.2
 
@@ -8476,37 +8439,37 @@ snapshots:
 
   '@nuxt/devalue@2.0.2': {}
 
-  '@nuxt/devtools-kit@1.3.3(nuxt@packages+nuxt)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))':
+  '@nuxt/devtools-kit@1.3.3(nuxt@packages+nuxt)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))':
     dependencies:
       '@nuxt/kit': link:packages/kit
       '@nuxt/schema': link:packages/schema
       execa: 7.2.0
       nuxt: link:packages/nuxt
-      vite: 5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)
+      vite: 5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0)
 
-  '@nuxt/devtools-ui-kit@1.3.3(@nuxt/devtools@1.3.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5)))(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(@vue/compiler-core@3.4.29)(nuxt@packages+nuxt)(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))(webpack@5.92.1(esbuild@0.21.5))':
+  '@nuxt/devtools-ui-kit@1.3.3(@nuxt/devtools@1.3.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.5.2)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.5.2)))(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(@vue/compiler-core@3.4.29)(nuxt@packages+nuxt)(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.5.2))(webpack@5.92.1(esbuild@0.21.5))':
     dependencies:
       '@iconify-json/carbon': 1.1.35
       '@iconify-json/logos': 1.1.43
       '@iconify-json/ri': 1.1.20
       '@iconify-json/tabler': 1.1.113
-      '@nuxt/devtools': 1.3.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))
-      '@nuxt/devtools-kit': 1.3.3(nuxt@packages+nuxt)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))
+      '@nuxt/devtools': 1.3.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.5.2)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.5.2))
+      '@nuxt/devtools-kit': 1.3.3(nuxt@packages+nuxt)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))
       '@nuxt/kit': link:packages/kit
       '@nuxtjs/color-mode': 3.4.1
       '@unocss/core': 0.60.4
-      '@unocss/nuxt': 0.60.4(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(webpack@5.92.1(esbuild@0.21.5))
+      '@unocss/nuxt': 0.60.4(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))(webpack@5.92.1(esbuild@0.21.5))
       '@unocss/preset-attributify': 0.60.4
       '@unocss/preset-icons': 0.60.4
       '@unocss/preset-mini': 0.60.4
       '@unocss/reset': 0.60.4
-      '@vueuse/core': 10.10.1(vue@3.4.29(typescript@5.4.5))
-      '@vueuse/integrations': 10.9.0(focus-trap@7.5.4)(vue@3.4.29(typescript@5.4.5))
-      '@vueuse/nuxt': 10.10.0(nuxt@packages+nuxt)(vue@3.4.29(typescript@5.4.5))
+      '@vueuse/core': 10.10.1(vue@3.4.29(typescript@5.5.2))
+      '@vueuse/integrations': 10.9.0(focus-trap@7.5.4)(vue@3.4.29(typescript@5.5.2))
+      '@vueuse/nuxt': 10.10.0(nuxt@packages+nuxt)(vue@3.4.29(typescript@5.5.2))
       defu: 6.1.4
       focus-trap: 7.5.4
       splitpanes: 3.1.5
-      unocss: 0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))
+      unocss: 0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))
       v-lazy-show: 0.2.4(@vue/compiler-core@3.4.29)
     transitivePeerDependencies:
       - '@unocss/webpack'
@@ -8544,15 +8507,15 @@ snapshots:
       rc9: 2.1.2
       semver: 7.6.2
 
-  '@nuxt/devtools@1.3.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))':
+  '@nuxt/devtools@1.3.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.5.2)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.5.2))':
     dependencies:
       '@antfu/utils': 0.7.8
-      '@nuxt/devtools-kit': 1.3.3(nuxt@packages+nuxt)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))
+      '@nuxt/devtools-kit': 1.3.3(nuxt@packages+nuxt)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))
       '@nuxt/devtools-wizard': 1.3.3
       '@nuxt/kit': link:packages/kit
-      '@vue/devtools-applet': 7.1.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.4.5)))(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))
-      '@vue/devtools-core': 7.1.3(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))
-      '@vue/devtools-kit': 7.1.3(vue@3.4.29(typescript@5.4.5))
+      '@vue/devtools-applet': 7.1.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.5.2)))(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.5.2))
+      '@vue/devtools-core': 7.1.3(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.5.2))
+      '@vue/devtools-kit': 7.1.3(vue@3.4.29(typescript@5.5.2))
       birpc: 0.2.17
       consola: 3.2.3
       cronstrue: 2.50.0
@@ -8581,9 +8544,9 @@ snapshots:
       simple-git: 3.24.0
       sirv: 2.0.4
       unimport: 3.7.2(rollup@4.18.0)
-      vite: 5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)
-      vite-plugin-inspect: 0.8.4(@nuxt/kit@packages+kit)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))
-      vite-plugin-vue-inspector: 5.1.0(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))
+      vite: 5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0)
+      vite-plugin-inspect: 0.8.4(@nuxt/kit@packages+kit)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))
+      vite-plugin-vue-inspector: 5.1.0(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))
       which: 3.0.1
       ws: 8.17.0
     transitivePeerDependencies:
@@ -8609,18 +8572,18 @@ snapshots:
       - utf-8-validate
       - vue
 
-  '@nuxt/eslint-config@0.3.13(eslint@9.5.0)(typescript@5.4.5)':
+  '@nuxt/eslint-config@0.3.13(eslint@9.5.0)(typescript@5.5.2)':
     dependencies:
       '@eslint/js': 9.5.0
-      '@nuxt/eslint-plugin': 0.3.13(eslint@9.5.0)(typescript@5.4.5)
+      '@nuxt/eslint-plugin': 0.3.13(eslint@9.5.0)(typescript@5.5.2)
       '@rushstack/eslint-patch': 1.10.3
-      '@stylistic/eslint-plugin': 2.1.0(eslint@9.5.0)(typescript@5.4.5)
-      '@typescript-eslint/eslint-plugin': 7.9.0(@typescript-eslint/parser@7.9.0(eslint@9.5.0)(typescript@5.4.5))(eslint@9.5.0)(typescript@5.4.5)
-      '@typescript-eslint/parser': 7.9.0(eslint@9.5.0)(typescript@5.4.5)
+      '@stylistic/eslint-plugin': 2.1.0(eslint@9.5.0)(typescript@5.5.2)
+      '@typescript-eslint/eslint-plugin': 7.9.0(@typescript-eslint/parser@7.9.0(eslint@9.5.0)(typescript@5.5.2))(eslint@9.5.0)(typescript@5.5.2)
+      '@typescript-eslint/parser': 7.9.0(eslint@9.5.0)(typescript@5.5.2)
       eslint: 9.5.0
       eslint-config-flat-gitignore: 0.1.5
       eslint-flat-config-utils: 0.2.5
-      eslint-plugin-import-x: 0.5.0(eslint@9.5.0)(typescript@5.4.5)
+      eslint-plugin-import-x: 0.5.0(eslint@9.5.0)(typescript@5.5.2)
       eslint-plugin-jsdoc: 48.2.5(eslint@9.5.0)
       eslint-plugin-regexp: 2.5.0(eslint@9.5.0)
       eslint-plugin-unicorn: 53.0.0(eslint@9.5.0)
@@ -8633,10 +8596,10 @@ snapshots:
       - supports-color
       - typescript
 
-  '@nuxt/eslint-plugin@0.3.13(eslint@9.5.0)(typescript@5.4.5)':
+  '@nuxt/eslint-plugin@0.3.13(eslint@9.5.0)(typescript@5.5.2)':
     dependencies:
       '@typescript-eslint/types': 7.9.0
-      '@typescript-eslint/utils': 7.9.0(eslint@9.5.0)(typescript@5.4.5)
+      '@typescript-eslint/utils': 7.9.0(eslint@9.5.0)(typescript@5.5.2)
       eslint: 9.5.0
     transitivePeerDependencies:
       - supports-color
@@ -8650,21 +8613,21 @@ snapshots:
       string-width: 4.2.3
       webpack: 5.92.1
 
-  '@nuxt/scripts@0.5.1(@nuxt/devtools@1.3.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5)))(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(@vue/compiler-core@3.4.29)(ioredis@5.3.2)(nuxt@packages+nuxt)(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))(webpack@5.92.1(esbuild@0.21.5))':
+  '@nuxt/scripts@0.5.1(@nuxt/devtools@1.3.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.5.2)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.5.2)))(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(@vue/compiler-core@3.4.29)(ioredis@5.3.2)(nuxt@packages+nuxt)(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.5.2))(webpack@5.92.1(esbuild@0.21.5))':
     dependencies:
-      '@nuxt/devtools-kit': 1.3.3(nuxt@packages+nuxt)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))
-      '@nuxt/devtools-ui-kit': 1.3.3(@nuxt/devtools@1.3.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5)))(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(@vue/compiler-core@3.4.29)(nuxt@packages+nuxt)(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))(webpack@5.92.1(esbuild@0.21.5))
+      '@nuxt/devtools-kit': 1.3.3(nuxt@packages+nuxt)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))
+      '@nuxt/devtools-ui-kit': 1.3.3(@nuxt/devtools@1.3.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.5.2)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.5.2)))(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(@vue/compiler-core@3.4.29)(nuxt@packages+nuxt)(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.5.2))(webpack@5.92.1(esbuild@0.21.5))
       '@nuxt/kit': link:packages/kit
       '@types/google.maps': 3.55.9
       '@types/stripe-v3': 3.1.33
       '@types/vimeo__player': 2.18.3
       '@types/youtube': 0.0.50
-      '@unhead/vue': 1.9.13(vue@3.4.29(typescript@5.4.5))
-      '@vueuse/core': 10.10.1(vue@3.4.29(typescript@5.4.5))
+      '@unhead/vue': 1.9.14(vue@3.4.29(typescript@5.5.2))
+      '@vueuse/core': 10.10.1(vue@3.4.29(typescript@5.5.2))
       consola: 3.2.3
       defu: 6.1.4
       estree-walker: 3.0.3
-      h3: 1.11.1
+      h3: 1.12.0
       magic-string: 0.30.10
       mlly: 1.7.1
       ofetch: 1.3.4
@@ -8738,7 +8701,7 @@ snapshots:
       rc9: 2.1.2
       std-env: 3.7.0
 
-  '@nuxt/test-utils@3.13.1(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.4.5)))(@vue/test-utils@2.4.6)(h3@1.11.1)(happy-dom@14.12.0)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.44.1)(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.6)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.3(vue@3.4.29(typescript@5.4.5)))(vue@3.4.29(typescript@5.4.5))':
+  '@nuxt/test-utils@3.13.1(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.5.2)))(@vue/test-utils@2.4.6)(h3@1.12.0)(happy-dom@14.12.3)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.44.1)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.7)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.3(vue@3.4.29(typescript@5.5.2)))(vue@3.4.29(typescript@5.5.2))':
     dependencies:
       '@nuxt/kit': link:packages/kit
       '@nuxt/schema': link:packages/schema
@@ -8750,7 +8713,7 @@ snapshots:
       execa: 8.0.1
       fake-indexeddb: 5.0.2
       get-port-please: 3.1.2
-      h3: 1.11.1
+      h3: 1.12.0
       local-pkg: 0.5.0
       magic-string: 0.30.10
       nitropack: 2.9.6(encoding@0.1.13)(magicast@0.3.4)
@@ -8764,16 +8727,16 @@ snapshots:
       ufo: 1.5.3
       unenv: 1.9.0
       unplugin: 1.10.1
-      vite: 5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0)
-      vitest-environment-nuxt: 1.0.0(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.4.5)))(@vue/test-utils@2.4.6)(h3@1.11.1)(happy-dom@14.12.0)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.44.1)(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.6)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.3(vue@3.4.29(typescript@5.4.5)))(vue@3.4.29(typescript@5.4.5))
-      vue: 3.4.29(typescript@5.4.5)
-      vue-router: 4.3.3(vue@3.4.29(typescript@5.4.5))
+      vite: 5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0)
+      vitest-environment-nuxt: 1.0.0(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.5.2)))(@vue/test-utils@2.4.6)(h3@1.12.0)(happy-dom@14.12.3)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.44.1)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.7)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.3(vue@3.4.29(typescript@5.5.2)))(vue@3.4.29(typescript@5.5.2))
+      vue: 3.4.29(typescript@5.5.2)
+      vue-router: 4.3.3(vue@3.4.29(typescript@5.5.2))
     optionalDependencies:
-      '@testing-library/vue': 8.1.0(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.4.5))
+      '@testing-library/vue': 8.1.0(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.5.2))
       '@vue/test-utils': 2.4.6
-      happy-dom: 14.12.0
+      happy-dom: 14.12.3
       playwright-core: 1.44.1
-      vitest: 1.6.0(@types/node@20.14.6)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0)
+      vitest: 1.6.0(@types/node@20.14.7)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0)
     transitivePeerDependencies:
       - magicast
 
@@ -9026,25 +8989,25 @@ snapshots:
     dependencies:
       shiki: 1.1.2
 
-  '@shikijs/twoslash@1.1.6(typescript@5.4.5)':
+  '@shikijs/twoslash@1.1.6(typescript@5.5.2)':
     dependencies:
       '@shikijs/core': 1.1.6
-      twoslash: 0.2.4(typescript@5.4.5)
+      twoslash: 0.2.4(typescript@5.5.2)
     transitivePeerDependencies:
       - supports-color
       - typescript
 
-  '@shikijs/vitepress-twoslash@1.1.6(@nuxt/kit@packages+kit)(typescript@5.4.5)':
+  '@shikijs/vitepress-twoslash@1.1.6(@nuxt/kit@packages+kit)(typescript@5.5.2)':
     dependencies:
-      '@shikijs/twoslash': 1.1.6(typescript@5.4.5)
-      floating-vue: 5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.4.5))
+      '@shikijs/twoslash': 1.1.6(typescript@5.5.2)
+      floating-vue: 5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.5.2))
       mdast-util-from-markdown: 2.0.0
       mdast-util-gfm: 3.0.0
       mdast-util-to-hast: 13.1.0
       shiki: 1.1.6
-      twoslash: 0.2.4(typescript@5.4.5)
-      twoslash-vue: 0.2.4(typescript@5.4.5)
-      vue: 3.4.29(typescript@5.4.5)
+      twoslash: 0.2.4(typescript@5.5.2)
+      twoslash-vue: 0.2.4(typescript@5.5.2)
+      vue: 3.4.29(typescript@5.5.2)
     transitivePeerDependencies:
       - '@nuxt/kit'
       - supports-color
@@ -9104,31 +9067,31 @@ snapshots:
       estraverse: 5.3.0
       picomatch: 4.0.2
 
-  '@stylistic/eslint-plugin-plus@2.1.0(eslint@9.5.0)(typescript@5.4.5)':
+  '@stylistic/eslint-plugin-plus@2.1.0(eslint@9.5.0)(typescript@5.5.2)':
     dependencies:
       '@types/eslint': 8.56.10
-      '@typescript-eslint/utils': 7.9.0(eslint@9.5.0)(typescript@5.4.5)
+      '@typescript-eslint/utils': 7.9.0(eslint@9.5.0)(typescript@5.5.2)
       eslint: 9.5.0
     transitivePeerDependencies:
       - supports-color
       - typescript
 
-  '@stylistic/eslint-plugin-ts@2.1.0(eslint@9.5.0)(typescript@5.4.5)':
+  '@stylistic/eslint-plugin-ts@2.1.0(eslint@9.5.0)(typescript@5.5.2)':
     dependencies:
       '@stylistic/eslint-plugin-js': 2.1.0(eslint@9.5.0)
       '@types/eslint': 8.56.10
-      '@typescript-eslint/utils': 7.9.0(eslint@9.5.0)(typescript@5.4.5)
+      '@typescript-eslint/utils': 7.9.0(eslint@9.5.0)(typescript@5.5.2)
       eslint: 9.5.0
     transitivePeerDependencies:
       - supports-color
       - typescript
 
-  '@stylistic/eslint-plugin@2.1.0(eslint@9.5.0)(typescript@5.4.5)':
+  '@stylistic/eslint-plugin@2.1.0(eslint@9.5.0)(typescript@5.5.2)':
     dependencies:
       '@stylistic/eslint-plugin-js': 2.1.0(eslint@9.5.0)
       '@stylistic/eslint-plugin-jsx': 2.1.0(eslint@9.5.0)
-      '@stylistic/eslint-plugin-plus': 2.1.0(eslint@9.5.0)(typescript@5.4.5)
-      '@stylistic/eslint-plugin-ts': 2.1.0(eslint@9.5.0)(typescript@5.4.5)
+      '@stylistic/eslint-plugin-plus': 2.1.0(eslint@9.5.0)(typescript@5.5.2)
+      '@stylistic/eslint-plugin-ts': 2.1.0(eslint@9.5.0)(typescript@5.5.2)
       '@types/eslint': 8.56.10
       eslint: 9.5.0
     transitivePeerDependencies:
@@ -9146,12 +9109,12 @@ snapshots:
       lz-string: 1.5.0
       pretty-format: 27.5.1
 
-  '@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.4.5))':
+  '@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.5.2))':
     dependencies:
       '@babel/runtime': 7.23.9
       '@testing-library/dom': 9.3.4
       '@vue/test-utils': 2.4.6
-      vue: 3.4.29(typescript@5.4.5)
+      vue: 3.4.29(typescript@5.5.2)
     optionalDependencies:
       '@vue/compiler-sfc': 3.4.29
 
@@ -9168,14 +9131,14 @@ snapshots:
 
   '@types/clean-css@4.2.11':
     dependencies:
-      '@types/node': 20.14.6
+      '@types/node': 20.14.7
       source-map: 0.6.1
 
   '@types/clear@0.1.4': {}
 
   '@types/connect@3.4.37':
     dependencies:
-      '@types/node': 20.14.6
+      '@types/node': 20.14.7
 
   '@types/debug@4.1.12':
     dependencies:
@@ -9204,7 +9167,7 @@ snapshots:
   '@types/fs-extra@11.0.4':
     dependencies:
       '@types/jsonfile': 6.1.2
-      '@types/node': 20.14.2
+      '@types/node': 20.14.7
 
   '@types/google.maps@3.55.9': {}
 
@@ -9222,7 +9185,7 @@ snapshots:
 
   '@types/http-proxy@1.17.14':
     dependencies:
-      '@types/node': 20.14.6
+      '@types/node': 20.14.7
 
   '@types/istanbul-lib-coverage@2.0.5': {}
 
@@ -9238,7 +9201,7 @@ snapshots:
 
   '@types/jsonfile@6.1.2':
     dependencies:
-      '@types/node': 20.14.6
+      '@types/node': 20.14.7
 
   '@types/lodash-es@4.17.12':
     dependencies:
@@ -9254,13 +9217,9 @@ snapshots:
 
   '@types/node-sass@4.11.6':
     dependencies:
-      '@types/node': 20.14.6
+      '@types/node': 20.14.7
 
-  '@types/node@20.14.2':
-    dependencies:
-      undici-types: 5.26.5
-
-  '@types/node@20.14.6':
+  '@types/node@20.14.7':
     dependencies:
       undici-types: 5.26.5
 
@@ -9276,7 +9235,7 @@ snapshots:
 
   '@types/sass-loader@8.0.8':
     dependencies:
-      '@types/node': 20.14.2
+      '@types/node': 20.14.7
       '@types/node-sass': 4.11.6
       '@types/webpack': 4.41.34
       sass: 1.69.4
@@ -9303,7 +9262,7 @@ snapshots:
 
   '@types/webpack-bundle-analyzer@4.7.0':
     dependencies:
-      '@types/node': 20.14.2
+      '@types/node': 20.14.7
       tapable: 2.2.1
       webpack: 5.92.1
     transitivePeerDependencies:
@@ -9325,13 +9284,13 @@ snapshots:
 
   '@types/webpack-sources@3.2.1':
     dependencies:
-      '@types/node': 20.14.6
+      '@types/node': 20.14.7
       '@types/source-list-map': 0.1.4
       source-map: 0.7.4
 
   '@types/webpack@4.41.34':
     dependencies:
-      '@types/node': 20.14.6
+      '@types/node': 20.14.7
       '@types/tapable': 1.0.10
       '@types/uglify-js': 3.17.3
       '@types/webpack-sources': 3.2.1
@@ -9346,34 +9305,34 @@ snapshots:
 
   '@types/youtube@0.0.50': {}
 
-  '@typescript-eslint/eslint-plugin@7.9.0(@typescript-eslint/parser@7.9.0(eslint@9.5.0)(typescript@5.4.5))(eslint@9.5.0)(typescript@5.4.5)':
+  '@typescript-eslint/eslint-plugin@7.9.0(@typescript-eslint/parser@7.9.0(eslint@9.5.0)(typescript@5.5.2))(eslint@9.5.0)(typescript@5.5.2)':
     dependencies:
       '@eslint-community/regexpp': 4.10.0
-      '@typescript-eslint/parser': 7.9.0(eslint@9.5.0)(typescript@5.4.5)
+      '@typescript-eslint/parser': 7.9.0(eslint@9.5.0)(typescript@5.5.2)
       '@typescript-eslint/scope-manager': 7.9.0
-      '@typescript-eslint/type-utils': 7.9.0(eslint@9.5.0)(typescript@5.4.5)
-      '@typescript-eslint/utils': 7.9.0(eslint@9.5.0)(typescript@5.4.5)
+      '@typescript-eslint/type-utils': 7.9.0(eslint@9.5.0)(typescript@5.5.2)
+      '@typescript-eslint/utils': 7.9.0(eslint@9.5.0)(typescript@5.5.2)
       '@typescript-eslint/visitor-keys': 7.9.0
       eslint: 9.5.0
       graphemer: 1.4.0
       ignore: 5.3.1
       natural-compare: 1.4.0
-      ts-api-utils: 1.3.0(typescript@5.4.5)
+      ts-api-utils: 1.3.0(typescript@5.5.2)
     optionalDependencies:
-      typescript: 5.4.5
+      typescript: 5.5.2
     transitivePeerDependencies:
       - supports-color
 
-  '@typescript-eslint/parser@7.9.0(eslint@9.5.0)(typescript@5.4.5)':
+  '@typescript-eslint/parser@7.9.0(eslint@9.5.0)(typescript@5.5.2)':
     dependencies:
       '@typescript-eslint/scope-manager': 7.9.0
       '@typescript-eslint/types': 7.9.0
-      '@typescript-eslint/typescript-estree': 7.9.0(typescript@5.4.5)
+      '@typescript-eslint/typescript-estree': 7.9.0(typescript@5.5.2)
       '@typescript-eslint/visitor-keys': 7.9.0
       debug: 4.3.4
       eslint: 9.5.0
     optionalDependencies:
-      typescript: 5.4.5
+      typescript: 5.5.2
     transitivePeerDependencies:
       - supports-color
 
@@ -9382,21 +9341,21 @@ snapshots:
       '@typescript-eslint/types': 7.9.0
       '@typescript-eslint/visitor-keys': 7.9.0
 
-  '@typescript-eslint/type-utils@7.9.0(eslint@9.5.0)(typescript@5.4.5)':
+  '@typescript-eslint/type-utils@7.9.0(eslint@9.5.0)(typescript@5.5.2)':
     dependencies:
-      '@typescript-eslint/typescript-estree': 7.9.0(typescript@5.4.5)
-      '@typescript-eslint/utils': 7.9.0(eslint@9.5.0)(typescript@5.4.5)
+      '@typescript-eslint/typescript-estree': 7.9.0(typescript@5.5.2)
+      '@typescript-eslint/utils': 7.9.0(eslint@9.5.0)(typescript@5.5.2)
       debug: 4.3.4
       eslint: 9.5.0
-      ts-api-utils: 1.3.0(typescript@5.4.5)
+      ts-api-utils: 1.3.0(typescript@5.5.2)
     optionalDependencies:
-      typescript: 5.4.5
+      typescript: 5.5.2
     transitivePeerDependencies:
       - supports-color
 
   '@typescript-eslint/types@7.9.0': {}
 
-  '@typescript-eslint/typescript-estree@7.9.0(typescript@5.4.5)':
+  '@typescript-eslint/typescript-estree@7.9.0(typescript@5.5.2)':
     dependencies:
       '@typescript-eslint/types': 7.9.0
       '@typescript-eslint/visitor-keys': 7.9.0
@@ -9405,18 +9364,18 @@ snapshots:
       is-glob: 4.0.3
       minimatch: 9.0.4
       semver: 7.6.2
-      ts-api-utils: 1.3.0(typescript@5.4.5)
+      ts-api-utils: 1.3.0(typescript@5.5.2)
     optionalDependencies:
-      typescript: 5.4.5
+      typescript: 5.5.2
     transitivePeerDependencies:
       - supports-color
 
-  '@typescript-eslint/utils@7.9.0(eslint@9.5.0)(typescript@5.4.5)':
+  '@typescript-eslint/utils@7.9.0(eslint@9.5.0)(typescript@5.5.2)':
     dependencies:
       '@eslint-community/eslint-utils': 4.4.0(eslint@9.5.0)
       '@typescript-eslint/scope-manager': 7.9.0
       '@typescript-eslint/types': 7.9.0
-      '@typescript-eslint/typescript-estree': 7.9.0(typescript@5.4.5)
+      '@typescript-eslint/typescript-estree': 7.9.0(typescript@5.5.2)
       eslint: 9.5.0
     transitivePeerDependencies:
       - supports-color
@@ -9435,60 +9394,50 @@ snapshots:
 
   '@ungap/structured-clone@1.2.0': {}
 
-  '@unhead/dom@1.9.13':
+  '@unhead/dom@1.9.14':
     dependencies:
-      '@unhead/schema': 1.9.13
-      '@unhead/shared': 1.9.13
+      '@unhead/schema': 1.9.14
+      '@unhead/shared': 1.9.14
 
-  '@unhead/schema@1.9.13':
+  '@unhead/schema@1.9.14':
     dependencies:
       hookable: 5.5.3
       zhead: 2.2.4
 
-  '@unhead/shared@1.9.13':
+  '@unhead/shared@1.9.14':
     dependencies:
-      '@unhead/schema': 1.9.13
+      '@unhead/schema': 1.9.14
 
-  '@unhead/ssr@1.9.13':
+  '@unhead/ssr@1.9.14':
     dependencies:
-      '@unhead/schema': 1.9.13
-      '@unhead/shared': 1.9.13
+      '@unhead/schema': 1.9.14
+      '@unhead/shared': 1.9.14
 
-  '@unhead/vue@1.9.13(vue@3.4.29(typescript@5.4.5))':
+  '@unhead/vue@1.9.14(vue@3.4.29(typescript@5.5.2))':
     dependencies:
-      '@unhead/schema': 1.9.13
-      '@unhead/shared': 1.9.13
+      '@unhead/schema': 1.9.14
+      '@unhead/shared': 1.9.14
       hookable: 5.5.3
-      unhead: 1.9.13
-      vue: 3.4.29(typescript@5.4.5)
+      unhead: 1.9.14
+      vue: 3.4.29(typescript@5.5.2)
 
-  '@unocss/astro@0.60.4(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))':
+  '@unocss/astro@0.60.4(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))':
     dependencies:
       '@unocss/core': 0.60.4
       '@unocss/reset': 0.60.4
-      '@unocss/vite': 0.60.4(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))
+      '@unocss/vite': 0.60.4(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))
     optionalDependencies:
-      vite: 5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)
+      vite: 5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0)
     transitivePeerDependencies:
       - rollup
 
-  '@unocss/astro@0.61.0(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))':
+  '@unocss/astro@0.61.0(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))':
     dependencies:
       '@unocss/core': 0.61.0
       '@unocss/reset': 0.61.0
-      '@unocss/vite': 0.61.0(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))
+      '@unocss/vite': 0.61.0(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))
     optionalDependencies:
-      vite: 5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)
-    transitivePeerDependencies:
-      - rollup
-
-  '@unocss/astro@0.61.0(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0))':
-    dependencies:
-      '@unocss/core': 0.61.0
-      '@unocss/reset': 0.61.0
-      '@unocss/vite': 0.61.0(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0))
-    optionalDependencies:
-      vite: 5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0)
+      vite: 5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0)
     transitivePeerDependencies:
       - rollup
 
@@ -9564,7 +9513,7 @@ snapshots:
       gzip-size: 6.0.0
       sirv: 2.0.4
 
-  '@unocss/nuxt@0.60.4(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(webpack@5.92.1(esbuild@0.21.5))':
+  '@unocss/nuxt@0.60.4(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))(webpack@5.92.1(esbuild@0.21.5))':
     dependencies:
       '@nuxt/kit': link:packages/kit
       '@unocss/config': 0.60.4
@@ -9577,9 +9526,9 @@ snapshots:
       '@unocss/preset-web-fonts': 0.60.4
       '@unocss/preset-wind': 0.60.4
       '@unocss/reset': 0.60.4
-      '@unocss/vite': 0.60.4(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))
+      '@unocss/vite': 0.60.4(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))
       '@unocss/webpack': 0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5))
-      unocss: 0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))
+      unocss: 0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))
     transitivePeerDependencies:
       - postcss
       - rollup
@@ -9769,7 +9718,7 @@ snapshots:
     dependencies:
       '@unocss/core': 0.61.0
 
-  '@unocss/vite@0.60.4(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))':
+  '@unocss/vite@0.60.4(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))':
     dependencies:
       '@ampproject/remapping': 2.3.0
       '@rollup/pluginutils': 5.1.0(rollup@4.18.0)
@@ -9781,11 +9730,11 @@ snapshots:
       chokidar: 3.6.0
       fast-glob: 3.3.2
       magic-string: 0.30.10
-      vite: 5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)
+      vite: 5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0)
     transitivePeerDependencies:
       - rollup
 
-  '@unocss/vite@0.61.0(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))':
+  '@unocss/vite@0.61.0(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))':
     dependencies:
       '@ampproject/remapping': 2.3.0
       '@rollup/pluginutils': 5.1.0(rollup@4.18.0)
@@ -9797,23 +9746,7 @@ snapshots:
       chokidar: 3.6.0
       fast-glob: 3.3.2
       magic-string: 0.30.10
-      vite: 5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)
-    transitivePeerDependencies:
-      - rollup
-
-  '@unocss/vite@0.61.0(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0))':
-    dependencies:
-      '@ampproject/remapping': 2.3.0
-      '@rollup/pluginutils': 5.1.0(rollup@4.18.0)
-      '@unocss/config': 0.61.0
-      '@unocss/core': 0.61.0
-      '@unocss/inspector': 0.61.0
-      '@unocss/scope': 0.61.0
-      '@unocss/transformer-directives': 0.61.0
-      chokidar: 3.6.0
-      fast-glob: 3.3.2
-      magic-string: 0.30.10
-      vite: 5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0)
+      vite: 5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0)
     transitivePeerDependencies:
       - rollup
 
@@ -9850,27 +9783,22 @@ snapshots:
       - encoding
       - supports-color
 
-  '@vitejs/plugin-vue-jsx@4.0.0(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))':
+  '@vitejs/plugin-vue-jsx@4.0.0(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.5.2))':
     dependencies:
       '@babel/core': 7.24.7
       '@babel/plugin-transform-typescript': 7.24.7(@babel/core@7.24.7)
       '@vue/babel-plugin-jsx': 1.2.2(@babel/core@7.24.7)
-      vite: 5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0)
-      vue: 3.4.29(typescript@5.4.5)
+      vite: 5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0)
+      vue: 3.4.29(typescript@5.5.2)
     transitivePeerDependencies:
       - supports-color
 
-  '@vitejs/plugin-vue@5.0.4(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))':
+  '@vitejs/plugin-vue@5.0.4(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.5.2))':
     dependencies:
-      vite: 5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)
-      vue: 3.4.29(typescript@5.4.5)
+      vite: 5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0)
+      vue: 3.4.29(typescript@5.5.2)
 
-  '@vitejs/plugin-vue@5.0.4(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))':
-    dependencies:
-      vite: 5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0)
-      vue: 3.4.29(typescript@5.4.5)
-
-  '@vitest/coverage-v8@1.6.0(vitest@1.6.0(@types/node@20.14.6)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))':
+  '@vitest/coverage-v8@1.6.0(vitest@1.6.0(@types/node@20.14.7)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0))':
     dependencies:
       '@ampproject/remapping': 2.3.0
       '@bcoe/v8-coverage': 0.2.3
@@ -9881,11 +9809,11 @@ snapshots:
       istanbul-reports: 3.1.6
       magic-string: 0.30.10
       magicast: 0.3.4
-      picocolors: 1.0.0
+      picocolors: 1.0.1
       std-env: 3.7.0
       strip-literal: 2.1.0
       test-exclude: 6.0.0
-      vitest: 1.6.0(@types/node@20.14.6)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0)
+      vitest: 1.6.0(@types/node@20.14.7)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0)
     transitivePeerDependencies:
       - supports-color
 
@@ -9940,7 +9868,7 @@ snapshots:
       path-browserify: 1.0.1
       vscode-uri: 3.0.8
 
-  '@vue-macros/common@1.10.1(rollup@4.18.0)(vue@3.4.29(typescript@5.4.5))':
+  '@vue-macros/common@1.10.1(rollup@4.18.0)(vue@3.4.29(typescript@5.5.2))':
     dependencies:
       '@babel/types': 7.24.7
       '@rollup/pluginutils': 5.1.0(rollup@4.18.0)
@@ -9949,7 +9877,7 @@ snapshots:
       local-pkg: 0.5.0
       magic-string-ast: 0.3.0
     optionalDependencies:
-      vue: 3.4.29(typescript@5.4.5)
+      vue: 3.4.29(typescript@5.5.2)
     transitivePeerDependencies:
       - rollup
 
@@ -10014,18 +9942,18 @@ snapshots:
 
   '@vue/devtools-api@6.6.3': {}
 
-  '@vue/devtools-applet@7.1.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.4.5)))(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))':
+  '@vue/devtools-applet@7.1.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.5.2)))(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.5.2))':
     dependencies:
-      '@vue/devtools-core': 7.1.3(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))
-      '@vue/devtools-kit': 7.1.3(vue@3.4.29(typescript@5.4.5))
+      '@vue/devtools-core': 7.1.3(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.5.2))
+      '@vue/devtools-kit': 7.1.3(vue@3.4.29(typescript@5.5.2))
       '@vue/devtools-shared': 7.1.3
-      '@vue/devtools-ui': 7.1.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.4.5)))(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vue@3.4.29(typescript@5.4.5))
+      '@vue/devtools-ui': 7.1.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.5.2)))(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0)))(vue@3.4.29(typescript@5.5.2))
       lodash-es: 4.17.21
       perfect-debounce: 1.0.0
       shiki: 1.3.0
       splitpanes: 3.1.5
-      vue: 3.4.29(typescript@5.4.5)
-      vue-virtual-scroller: 2.0.0-beta.8(vue@3.4.29(typescript@5.4.5))
+      vue: 3.4.29(typescript@5.5.2)
+      vue-virtual-scroller: 2.0.0-beta.8(vue@3.4.29(typescript@5.5.2))
     transitivePeerDependencies:
       - '@unocss/reset'
       - '@vue/composition-api'
@@ -10044,43 +9972,43 @@ snapshots:
       - unocss
       - vite
 
-  '@vue/devtools-core@7.1.3(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))':
+  '@vue/devtools-core@7.1.3(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.5.2))':
     dependencies:
-      '@vue/devtools-kit': 7.1.3(vue@3.4.29(typescript@5.4.5))
+      '@vue/devtools-kit': 7.1.3(vue@3.4.29(typescript@5.5.2))
       '@vue/devtools-shared': 7.1.3
       mitt: 3.0.1
       nanoid: 3.3.7
       pathe: 1.1.2
-      vite-hot-client: 0.2.3(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))
+      vite-hot-client: 0.2.3(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))
     transitivePeerDependencies:
       - vite
       - vue
 
-  '@vue/devtools-kit@7.1.3(vue@3.4.29(typescript@5.4.5))':
+  '@vue/devtools-kit@7.1.3(vue@3.4.29(typescript@5.5.2))':
     dependencies:
       '@vue/devtools-shared': 7.1.3
       hookable: 5.5.3
       mitt: 3.0.1
       perfect-debounce: 1.0.0
       speakingurl: 14.0.1
-      vue: 3.4.29(typescript@5.4.5)
+      vue: 3.4.29(typescript@5.5.2)
 
   '@vue/devtools-shared@7.1.3':
     dependencies:
       rfdc: 1.3.1
 
-  '@vue/devtools-ui@7.1.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.4.5)))(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vue@3.4.29(typescript@5.4.5))':
+  '@vue/devtools-ui@7.1.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.5.2)))(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0)))(vue@3.4.29(typescript@5.5.2))':
     dependencies:
       '@unocss/reset': 0.61.0
       '@vue/devtools-shared': 7.1.3
-      '@vueuse/components': 10.9.0(vue@3.4.29(typescript@5.4.5))
-      '@vueuse/core': 10.10.1(vue@3.4.29(typescript@5.4.5))
-      '@vueuse/integrations': 10.9.0(focus-trap@7.5.4)(vue@3.4.29(typescript@5.4.5))
+      '@vueuse/components': 10.9.0(vue@3.4.29(typescript@5.5.2))
+      '@vueuse/core': 10.10.1(vue@3.4.29(typescript@5.5.2))
+      '@vueuse/integrations': 10.9.0(focus-trap@7.5.4)(vue@3.4.29(typescript@5.5.2))
       colord: 2.9.3
-      floating-vue: 5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.4.5))
+      floating-vue: 5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.5.2))
       focus-trap: 7.5.4
-      unocss: 0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))
-      vue: 3.4.29(typescript@5.4.5)
+      unocss: 0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))
+      vue: 3.4.29(typescript@5.5.2)
     transitivePeerDependencies:
       - '@vue/composition-api'
       - async-validator
@@ -10095,7 +10023,7 @@ snapshots:
       - sortablejs
       - universal-cookie
 
-  '@vue/language-core@1.8.27(typescript@5.4.5)':
+  '@vue/language-core@1.8.27(typescript@5.5.2)':
     dependencies:
       '@volar/language-core': 1.11.1
       '@volar/source-map': 1.11.1
@@ -10107,9 +10035,9 @@ snapshots:
       path-browserify: 1.0.1
       vue-template-compiler: 2.7.14
     optionalDependencies:
-      typescript: 5.4.5
+      typescript: 5.5.2
 
-  '@vue/language-core@2.0.21(typescript@5.4.5)':
+  '@vue/language-core@2.0.21(typescript@5.5.2)':
     dependencies:
       '@volar/language-core': 2.3.0-alpha.15
       '@vue/compiler-dom': 3.4.29
@@ -10119,7 +10047,7 @@ snapshots:
       path-browserify: 1.0.1
       vue-template-compiler: 2.7.14
     optionalDependencies:
-      typescript: 5.4.5
+      typescript: 5.5.2
 
   '@vue/reactivity@3.4.29':
     dependencies:
@@ -10137,11 +10065,11 @@ snapshots:
       '@vue/shared': 3.4.29
       csstype: 3.1.3
 
-  '@vue/server-renderer@3.4.29(vue@3.4.29(typescript@5.4.5))':
+  '@vue/server-renderer@3.4.29(vue@3.4.29(typescript@5.5.2))':
     dependencies:
       '@vue/compiler-ssr': 3.4.29
       '@vue/shared': 3.4.29
-      vue: 3.4.29(typescript@5.4.5)
+      vue: 3.4.29(typescript@5.5.2)
 
   '@vue/shared@3.4.29': {}
 
@@ -10150,50 +10078,50 @@ snapshots:
       js-beautify: 1.14.9
       vue-component-type-helpers: 2.0.6
 
-  '@vueuse/components@10.9.0(vue@3.4.29(typescript@5.4.5))':
+  '@vueuse/components@10.9.0(vue@3.4.29(typescript@5.5.2))':
     dependencies:
-      '@vueuse/core': 10.9.0(vue@3.4.29(typescript@5.4.5))
-      '@vueuse/shared': 10.9.0(vue@3.4.29(typescript@5.4.5))
-      vue-demi: 0.14.8(vue@3.4.29(typescript@5.4.5))
+      '@vueuse/core': 10.9.0(vue@3.4.29(typescript@5.5.2))
+      '@vueuse/shared': 10.9.0(vue@3.4.29(typescript@5.5.2))
+      vue-demi: 0.14.8(vue@3.4.29(typescript@5.5.2))
     transitivePeerDependencies:
       - '@vue/composition-api'
       - vue
 
-  '@vueuse/core@10.10.0(vue@3.4.29(typescript@5.4.5))':
+  '@vueuse/core@10.10.0(vue@3.4.29(typescript@5.5.2))':
     dependencies:
       '@types/web-bluetooth': 0.0.20
       '@vueuse/metadata': 10.10.0
-      '@vueuse/shared': 10.10.0(vue@3.4.29(typescript@5.4.5))
-      vue-demi: 0.14.8(vue@3.4.29(typescript@5.4.5))
+      '@vueuse/shared': 10.10.0(vue@3.4.29(typescript@5.5.2))
+      vue-demi: 0.14.8(vue@3.4.29(typescript@5.5.2))
     transitivePeerDependencies:
       - '@vue/composition-api'
       - vue
 
-  '@vueuse/core@10.10.1(vue@3.4.29(typescript@5.4.5))':
+  '@vueuse/core@10.10.1(vue@3.4.29(typescript@5.5.2))':
     dependencies:
       '@types/web-bluetooth': 0.0.20
       '@vueuse/metadata': 10.10.1
-      '@vueuse/shared': 10.10.1(vue@3.4.29(typescript@5.4.5))
-      vue-demi: 0.14.8(vue@3.4.29(typescript@5.4.5))
+      '@vueuse/shared': 10.10.1(vue@3.4.29(typescript@5.5.2))
+      vue-demi: 0.14.8(vue@3.4.29(typescript@5.5.2))
     transitivePeerDependencies:
       - '@vue/composition-api'
       - vue
 
-  '@vueuse/core@10.9.0(vue@3.4.29(typescript@5.4.5))':
+  '@vueuse/core@10.9.0(vue@3.4.29(typescript@5.5.2))':
     dependencies:
       '@types/web-bluetooth': 0.0.20
       '@vueuse/metadata': 10.9.0
-      '@vueuse/shared': 10.9.0(vue@3.4.29(typescript@5.4.5))
-      vue-demi: 0.14.8(vue@3.4.29(typescript@5.4.5))
+      '@vueuse/shared': 10.9.0(vue@3.4.29(typescript@5.5.2))
+      vue-demi: 0.14.8(vue@3.4.29(typescript@5.5.2))
     transitivePeerDependencies:
       - '@vue/composition-api'
       - vue
 
-  '@vueuse/integrations@10.9.0(focus-trap@7.5.4)(vue@3.4.29(typescript@5.4.5))':
+  '@vueuse/integrations@10.9.0(focus-trap@7.5.4)(vue@3.4.29(typescript@5.5.2))':
     dependencies:
-      '@vueuse/core': 10.9.0(vue@3.4.29(typescript@5.4.5))
-      '@vueuse/shared': 10.9.0(vue@3.4.29(typescript@5.4.5))
-      vue-demi: 0.14.8(vue@3.4.29(typescript@5.4.5))
+      '@vueuse/core': 10.9.0(vue@3.4.29(typescript@5.5.2))
+      '@vueuse/shared': 10.9.0(vue@3.4.29(typescript@5.5.2))
+      vue-demi: 0.14.8(vue@3.4.29(typescript@5.5.2))
     optionalDependencies:
       focus-trap: 7.5.4
     transitivePeerDependencies:
@@ -10206,35 +10134,35 @@ snapshots:
 
   '@vueuse/metadata@10.9.0': {}
 
-  '@vueuse/nuxt@10.10.0(nuxt@packages+nuxt)(vue@3.4.29(typescript@5.4.5))':
+  '@vueuse/nuxt@10.10.0(nuxt@packages+nuxt)(vue@3.4.29(typescript@5.5.2))':
     dependencies:
       '@nuxt/kit': link:packages/kit
-      '@vueuse/core': 10.10.0(vue@3.4.29(typescript@5.4.5))
+      '@vueuse/core': 10.10.0(vue@3.4.29(typescript@5.5.2))
       '@vueuse/metadata': 10.10.0
       local-pkg: 0.5.0
       nuxt: link:packages/nuxt
-      vue-demi: 0.14.8(vue@3.4.29(typescript@5.4.5))
+      vue-demi: 0.14.8(vue@3.4.29(typescript@5.5.2))
     transitivePeerDependencies:
       - '@vue/composition-api'
       - vue
 
-  '@vueuse/shared@10.10.0(vue@3.4.29(typescript@5.4.5))':
+  '@vueuse/shared@10.10.0(vue@3.4.29(typescript@5.5.2))':
     dependencies:
-      vue-demi: 0.14.8(vue@3.4.29(typescript@5.4.5))
+      vue-demi: 0.14.8(vue@3.4.29(typescript@5.5.2))
     transitivePeerDependencies:
       - '@vue/composition-api'
       - vue
 
-  '@vueuse/shared@10.10.1(vue@3.4.29(typescript@5.4.5))':
+  '@vueuse/shared@10.10.1(vue@3.4.29(typescript@5.5.2))':
     dependencies:
-      vue-demi: 0.14.8(vue@3.4.29(typescript@5.4.5))
+      vue-demi: 0.14.8(vue@3.4.29(typescript@5.5.2))
     transitivePeerDependencies:
       - '@vue/composition-api'
       - vue
 
-  '@vueuse/shared@10.9.0(vue@3.4.29(typescript@5.4.5))':
+  '@vueuse/shared@10.9.0(vue@3.4.29(typescript@5.5.2))':
     dependencies:
-      vue-demi: 0.14.8(vue@3.4.29(typescript@5.4.5))
+      vue-demi: 0.14.8(vue@3.4.29(typescript@5.5.2))
     transitivePeerDependencies:
       - '@vue/composition-api'
       - vue
@@ -10491,11 +10419,11 @@ snapshots:
 
   autoprefixer@10.4.19(postcss@8.4.38):
     dependencies:
-      browserslist: 4.23.0
-      caniuse-lite: 1.0.30001599
+      browserslist: 4.23.1
+      caniuse-lite: 1.0.30001636
       fraction.js: 4.3.7
       normalize-range: 0.1.2
-      picocolors: 1.0.0
+      picocolors: 1.0.1
       postcss: 8.4.38
       postcss-value-parser: 4.2.0
 
@@ -10544,13 +10472,6 @@ snapshots:
     dependencies:
       fill-range: 7.0.1
 
-  browserslist@4.23.0:
-    dependencies:
-      caniuse-lite: 1.0.30001599
-      electron-to-chromium: 1.4.681
-      node-releases: 2.0.14
-      update-browserslist-db: 1.0.13(browserslist@4.23.0)
-
   browserslist@4.23.1:
     dependencies:
       caniuse-lite: 1.0.30001636
@@ -10639,8 +10560,6 @@ snapshots:
       lodash.memoize: 4.1.2
       lodash.uniq: 4.5.0
 
-  caniuse-lite@1.0.30001599: {}
-
   caniuse-lite@1.0.30001636: {}
 
   case-police@0.6.1: {}
@@ -10834,23 +10753,23 @@ snapshots:
 
   core-util-is@1.0.3: {}
 
-  cosmiconfig@8.3.6(typescript@5.4.5):
+  cosmiconfig@8.3.6(typescript@5.5.2):
     dependencies:
       import-fresh: 3.3.0
       js-yaml: 4.1.0
       parse-json: 5.2.0
       path-type: 4.0.0
     optionalDependencies:
-      typescript: 5.4.5
+      typescript: 5.5.2
 
-  cosmiconfig@9.0.0(typescript@5.4.5):
+  cosmiconfig@9.0.0(typescript@5.5.2):
     dependencies:
       env-paths: 2.2.1
       import-fresh: 3.3.0
       js-yaml: 4.1.0
       parse-json: 5.2.0
     optionalDependencies:
-      typescript: 5.4.5
+      typescript: 5.5.2
 
   crc-32@1.2.2: {}
 
@@ -11151,8 +11070,6 @@ snapshots:
 
   ee-first@1.1.1: {}
 
-  electron-to-chromium@1.4.681: {}
-
   electron-to-chromium@1.4.806: {}
 
   emoji-regex@8.0.0: {}
@@ -11334,8 +11251,6 @@ snapshots:
       '@esbuild/win32-ia32': 0.21.5
       '@esbuild/win32-x64': 0.21.5
 
-  escalade@3.1.1: {}
-
   escalade@3.1.2: {}
 
   escape-html@1.0.3: {}
@@ -11364,9 +11279,9 @@ snapshots:
     transitivePeerDependencies:
       - supports-color
 
-  eslint-plugin-import-x@0.5.0(eslint@9.5.0)(typescript@5.4.5):
+  eslint-plugin-import-x@0.5.0(eslint@9.5.0)(typescript@5.5.2):
     dependencies:
-      '@typescript-eslint/utils': 7.9.0(eslint@9.5.0)(typescript@5.4.5)
+      '@typescript-eslint/utils': 7.9.0(eslint@9.5.0)(typescript@5.5.2)
       debug: 4.3.4
       doctrine: 3.0.0
       eslint: 9.5.0
@@ -11396,9 +11311,9 @@ snapshots:
 
   eslint-plugin-no-only-tests@3.1.0: {}
 
-  eslint-plugin-perfectionist@2.11.0(eslint@9.5.0)(typescript@5.4.5)(vue-eslint-parser@9.4.2(eslint@9.5.0)):
+  eslint-plugin-perfectionist@2.11.0(eslint@9.5.0)(typescript@5.5.2)(vue-eslint-parser@9.4.2(eslint@9.5.0)):
     dependencies:
-      '@typescript-eslint/utils': 7.9.0(eslint@9.5.0)(typescript@5.4.5)
+      '@typescript-eslint/utils': 7.9.0(eslint@9.5.0)(typescript@5.5.2)
       eslint: 9.5.0
       minimatch: 9.0.4
       natural-compare-lite: 1.4.0
@@ -11691,11 +11606,11 @@ snapshots:
 
   flatted@3.3.1: {}
 
-  floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.4.5)):
+  floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.5.2)):
     dependencies:
       '@floating-ui/dom': 1.1.1
-      vue: 3.4.29(typescript@5.4.5)
-      vue-resize: 2.0.0-alpha.1(vue@3.4.29(typescript@5.4.5))
+      vue: 3.4.29(typescript@5.5.2)
+      vue-resize: 2.0.0-alpha.1(vue@3.4.29(typescript@5.5.2))
     optionalDependencies:
       '@nuxt/kit': link:packages/kit
 
@@ -11712,12 +11627,12 @@ snapshots:
       cross-spawn: 7.0.3
       signal-exit: 4.1.0
 
-  fork-ts-checker-webpack-plugin@9.0.2(typescript@5.4.5)(webpack@5.92.1):
+  fork-ts-checker-webpack-plugin@9.0.2(typescript@5.5.2)(webpack@5.92.1):
     dependencies:
       '@babel/code-frame': 7.24.7
       chalk: 4.1.2
       chokidar: 3.6.0
-      cosmiconfig: 8.3.6(typescript@5.4.5)
+      cosmiconfig: 8.3.6(typescript@5.5.2)
       deepmerge: 4.3.1
       fs-extra: 10.1.0
       memfs: 3.5.3
@@ -11726,7 +11641,7 @@ snapshots:
       schema-utils: 3.3.0
       semver: 7.6.2
       tapable: 2.2.1
-      typescript: 5.4.5
+      typescript: 5.5.2
       webpack: 5.92.1
 
   fraction.js@4.3.7: {}
@@ -11922,7 +11837,7 @@ snapshots:
     dependencies:
       duplexer: 0.1.2
 
-  h3@1.11.1:
+  h3@1.12.0:
     dependencies:
       cookie-es: 1.1.0
       crossws: 0.2.4
@@ -11937,7 +11852,7 @@ snapshots:
     transitivePeerDependencies:
       - uWebSockets.js
 
-  happy-dom@14.12.0:
+  happy-dom@14.12.3:
     dependencies:
       entities: 4.5.0
       webidl-conversions: 7.0.0
@@ -12374,7 +12289,7 @@ snapshots:
   jest-util@29.7.0:
     dependencies:
       '@jest/types': 29.6.3
-      '@types/node': 20.14.6
+      '@types/node': 20.14.7
       chalk: 4.1.2
       ci-info: 3.9.0
       graceful-fs: 4.2.11
@@ -12382,13 +12297,13 @@ snapshots:
 
   jest-worker@27.5.1:
     dependencies:
-      '@types/node': 20.14.6
+      '@types/node': 20.14.7
       merge-stream: 2.0.0
       supports-color: 8.1.1
 
   jest-worker@29.7.0:
     dependencies:
-      '@types/node': 20.14.6
+      '@types/node': 20.14.7
       jest-util: 29.7.0
       merge-stream: 2.0.0
       supports-color: 8.1.1
@@ -12474,7 +12389,7 @@ snapshots:
 
   launch-editor@2.6.1:
     dependencies:
-      picocolors: 1.0.0
+      picocolors: 1.0.1
       shell-quote: 1.8.1
 
   lazystream@1.0.1:
@@ -12504,7 +12419,7 @@ snapshots:
       crossws: 0.2.4
       defu: 6.1.4
       get-port-please: 3.1.2
-      h3: 1.11.1
+      h3: 1.12.0
       http-shutdown: 1.2.2
       jiti: 1.21.6
       mlly: 1.7.1
@@ -12777,13 +12692,6 @@ snapshots:
     dependencies:
       fs-monkey: 1.0.5
 
-  memfs@4.9.2:
-    dependencies:
-      '@jsonjoy.com/json-pack': 1.0.3(tslib@2.6.2)
-      '@jsonjoy.com/util': 1.1.2(tslib@2.6.2)
-      sonic-forest: 1.0.0(tslib@2.6.2)
-      tslib: 2.6.2
-
   memfs@4.9.3:
     dependencies:
       '@jsonjoy.com/json-pack': 1.0.3(tslib@2.6.2)
@@ -13092,7 +13000,7 @@ snapshots:
 
   mkdirp@1.0.4: {}
 
-  mkdist@1.3.0(sass@1.69.4)(typescript@5.4.5):
+  mkdist@1.3.0(sass@1.69.4)(typescript@5.5.2):
     dependencies:
       citty: 0.1.6
       defu: 6.1.4
@@ -13105,7 +13013,7 @@ snapshots:
       pathe: 1.1.2
     optionalDependencies:
       sass: 1.69.4
-      typescript: 5.4.5
+      typescript: 5.5.2
 
   mlly@1.7.1:
     dependencies:
@@ -13173,7 +13081,7 @@ snapshots:
       fs-extra: 11.2.0
       globby: 14.0.1
       gzip-size: 7.0.0
-      h3: 1.11.1
+      h3: 1.12.0
       hookable: 5.5.3
       httpxy: 0.1.5
       ioredis: 5.3.2
@@ -13373,16 +13281,16 @@ snapshots:
       '@nuxt/kit': link:packages/kit
       '@nuxt/schema': link:packages/schema
       '@nuxtjs/mdc': 0.5.0
-      '@shikijs/vitepress-twoslash': 1.1.6(@nuxt/kit@packages+kit)(typescript@5.4.5)
+      '@shikijs/vitepress-twoslash': 1.1.6(@nuxt/kit@packages+kit)(typescript@5.5.2)
       cac: 6.7.14
       chokidar: 3.6.0
       fast-glob: 3.3.2
       pathe: 1.1.2
-      picocolors: 1.0.0
+      picocolors: 1.0.1
       remark-parse: 11.0.0
       shiki: 1.6.4
-      twoslash: 0.2.4(typescript@5.4.5)
-      typescript: 5.4.5
+      twoslash: 0.2.4(typescript@5.5.2)
+      typescript: 5.5.2
       unified: 11.0.4
       unist-util-visit: 5.0.0
     transitivePeerDependencies:
@@ -13613,8 +13521,6 @@ snapshots:
 
   perfect-debounce@1.0.0: {}
 
-  picocolors@1.0.0: {}
-
   picocolors@1.0.1: {}
 
   picomatch@2.3.1: {}
@@ -13683,9 +13589,9 @@ snapshots:
       read-cache: 1.0.0
       resolve: 1.22.8
 
-  postcss-loader@8.1.1(postcss@8.4.38)(typescript@5.4.5)(webpack@5.92.1):
+  postcss-loader@8.1.1(postcss@8.4.38)(typescript@5.5.2)(webpack@5.92.1):
     dependencies:
-      cosmiconfig: 9.0.0(typescript@5.4.5)
+      cosmiconfig: 9.0.0(typescript@5.5.2)
       jiti: 1.21.6
       postcss: 8.4.38
       semver: 7.6.2
@@ -13847,7 +13753,7 @@ snapshots:
   postcss@8.4.38:
     dependencies:
       nanoid: 3.3.7
-      picocolors: 1.0.0
+      picocolors: 1.0.1
       source-map-js: 1.2.0
 
   prelude-ls@1.2.1: {}
@@ -14214,11 +14120,11 @@ snapshots:
     dependencies:
       glob: 10.4.1
 
-  rollup-plugin-dts@6.1.0(rollup@4.18.0)(typescript@5.4.5):
+  rollup-plugin-dts@6.1.0(rollup@4.18.0)(typescript@5.5.2):
     dependencies:
       magic-string: 0.30.10
       rollup: 4.18.0
-      typescript: 5.4.5
+      typescript: 5.5.2
     optionalDependencies:
       '@babel/code-frame': 7.24.7
 
@@ -14456,10 +14362,6 @@ snapshots:
       ip: 2.0.1
       smart-buffer: 4.2.0
 
-  sonic-forest@1.0.0(tslib@2.6.2):
-    dependencies:
-      tslib: 2.6.2
-
   source-list-map@2.0.1: {}
 
   source-map-js@1.2.0: {}
@@ -14706,9 +14608,9 @@ snapshots:
 
   trough@2.2.0: {}
 
-  ts-api-utils@1.3.0(typescript@5.4.5):
+  ts-api-utils@1.3.0(typescript@5.5.2):
     dependencies:
-      typescript: 5.4.5
+      typescript: 5.5.2
 
   tslib@2.6.2: {}
 
@@ -14722,20 +14624,20 @@ snapshots:
 
   twoslash-protocol@0.2.4: {}
 
-  twoslash-vue@0.2.4(typescript@5.4.5):
+  twoslash-vue@0.2.4(typescript@5.5.2):
     dependencies:
-      '@vue/language-core': 1.8.27(typescript@5.4.5)
-      twoslash: 0.2.4(typescript@5.4.5)
+      '@vue/language-core': 1.8.27(typescript@5.5.2)
+      twoslash: 0.2.4(typescript@5.5.2)
       twoslash-protocol: 0.2.4
-      typescript: 5.4.5
+      typescript: 5.5.2
     transitivePeerDependencies:
       - supports-color
 
-  twoslash@0.2.4(typescript@5.4.5):
+  twoslash@0.2.4(typescript@5.5.2):
     dependencies:
       '@typescript/vfs': 1.5.0
       twoslash-protocol: 0.2.4
-      typescript: 5.4.5
+      typescript: 5.5.2
     transitivePeerDependencies:
       - supports-color
 
@@ -14755,7 +14657,7 @@ snapshots:
 
   type-fest@3.13.1: {}
 
-  typescript@5.4.5: {}
+  typescript@5.5.2: {}
 
   uc.micro@2.1.0: {}
 
@@ -14765,7 +14667,7 @@ snapshots:
 
   ultrahtml@1.5.3: {}
 
-  unbuild@2.0.0(sass@1.69.4)(typescript@5.4.5):
+  unbuild@2.0.0(sass@1.69.4)(typescript@5.5.2):
     dependencies:
       '@rollup/plugin-alias': 5.1.0(rollup@4.18.0)
       '@rollup/plugin-commonjs': 25.0.7(rollup@4.18.0)
@@ -14782,17 +14684,17 @@ snapshots:
       hookable: 5.5.3
       jiti: 1.21.6
       magic-string: 0.30.10
-      mkdist: 1.3.0(sass@1.69.4)(typescript@5.4.5)
+      mkdist: 1.3.0(sass@1.69.4)(typescript@5.5.2)
       mlly: 1.7.1
       pathe: 1.1.2
       pkg-types: 1.1.1
       pretty-bytes: 6.1.1
       rollup: 4.18.0
-      rollup-plugin-dts: 6.1.0(rollup@4.18.0)(typescript@5.4.5)
+      rollup-plugin-dts: 6.1.0(rollup@4.18.0)(typescript@5.5.2)
       scule: 1.3.0
       untyped: 1.4.2
     optionalDependencies:
-      typescript: 5.4.5
+      typescript: 5.5.2
     transitivePeerDependencies:
       - sass
       - supports-color
@@ -14826,11 +14728,11 @@ snapshots:
       node-fetch-native: 1.6.4
       pathe: 1.1.2
 
-  unhead@1.9.13:
+  unhead@1.9.14:
     dependencies:
-      '@unhead/dom': 1.9.13
-      '@unhead/schema': 1.9.13
-      '@unhead/shared': 1.9.13
+      '@unhead/dom': 1.9.14
+      '@unhead/schema': 1.9.14
+      '@unhead/shared': 1.9.14
       hookable: 5.5.3
 
   unicode-emoji-modifier-base@1.0.0: {}
@@ -14902,9 +14804,9 @@ snapshots:
 
   universalify@2.0.0: {}
 
-  unocss@0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)):
+  unocss@0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0)):
     dependencies:
-      '@unocss/astro': 0.60.4(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))
+      '@unocss/astro': 0.60.4(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))
       '@unocss/cli': 0.60.4(rollup@4.18.0)
       '@unocss/core': 0.60.4
       '@unocss/extractor-arbitrary-variants': 0.60.4
@@ -14923,18 +14825,18 @@ snapshots:
       '@unocss/transformer-compile-class': 0.60.4
       '@unocss/transformer-directives': 0.60.4
       '@unocss/transformer-variant-group': 0.60.4
-      '@unocss/vite': 0.60.4(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))
+      '@unocss/vite': 0.60.4(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))
     optionalDependencies:
       '@unocss/webpack': 0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5))
-      vite: 5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)
+      vite: 5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0)
     transitivePeerDependencies:
       - postcss
       - rollup
       - supports-color
 
-  unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)):
+  unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0)):
     dependencies:
-      '@unocss/astro': 0.61.0(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))
+      '@unocss/astro': 0.61.0(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))
       '@unocss/cli': 0.61.0(rollup@4.18.0)
       '@unocss/core': 0.61.0
       '@unocss/extractor-arbitrary-variants': 0.61.0
@@ -14953,49 +14855,20 @@ snapshots:
       '@unocss/transformer-compile-class': 0.61.0
       '@unocss/transformer-directives': 0.61.0
       '@unocss/transformer-variant-group': 0.61.0
-      '@unocss/vite': 0.61.0(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))
+      '@unocss/vite': 0.61.0(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))
     optionalDependencies:
       '@unocss/webpack': 0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5))
-      vite: 5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)
+      vite: 5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0)
     transitivePeerDependencies:
       - postcss
       - rollup
       - supports-color
 
-  unocss@0.61.0(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0)):
-    dependencies:
-      '@unocss/astro': 0.61.0(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0))
-      '@unocss/cli': 0.61.0(rollup@4.18.0)
-      '@unocss/core': 0.61.0
-      '@unocss/extractor-arbitrary-variants': 0.61.0
-      '@unocss/postcss': 0.61.0(postcss@8.4.38)
-      '@unocss/preset-attributify': 0.61.0
-      '@unocss/preset-icons': 0.61.0
-      '@unocss/preset-mini': 0.61.0
-      '@unocss/preset-tagify': 0.61.0
-      '@unocss/preset-typography': 0.61.0
-      '@unocss/preset-uno': 0.61.0
-      '@unocss/preset-web-fonts': 0.61.0
-      '@unocss/preset-wind': 0.61.0
-      '@unocss/reset': 0.61.0
-      '@unocss/transformer-attributify-jsx': 0.61.0
-      '@unocss/transformer-attributify-jsx-babel': 0.61.0
-      '@unocss/transformer-compile-class': 0.61.0
-      '@unocss/transformer-directives': 0.61.0
-      '@unocss/transformer-variant-group': 0.61.0
-      '@unocss/vite': 0.61.0(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0))
-    optionalDependencies:
-      vite: 5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0)
-    transitivePeerDependencies:
-      - postcss
-      - rollup
-      - supports-color
-
-  unplugin-vue-router@0.7.0(rollup@4.18.0)(vue-router@4.3.3(vue@3.4.29(typescript@5.4.5)))(vue@3.4.29(typescript@5.4.5)):
+  unplugin-vue-router@0.7.0(rollup@4.18.0)(vue-router@4.3.3(vue@3.4.29(typescript@5.5.2)))(vue@3.4.29(typescript@5.5.2)):
     dependencies:
       '@babel/types': 7.24.7
       '@rollup/pluginutils': 5.1.0(rollup@4.18.0)
-      '@vue-macros/common': 1.10.1(rollup@4.18.0)(vue@3.4.29(typescript@5.4.5))
+      '@vue-macros/common': 1.10.1(rollup@4.18.0)(vue@3.4.29(typescript@5.5.2))
       ast-walker-scope: 0.5.0(rollup@4.18.0)
       chokidar: 3.6.0
       fast-glob: 3.3.2
@@ -15007,7 +14880,7 @@ snapshots:
       unplugin: 1.10.1
       yaml: 2.3.4
     optionalDependencies:
-      vue-router: 4.3.3(vue@3.4.29(typescript@5.4.5))
+      vue-router: 4.3.3(vue@3.4.29(typescript@5.5.2))
     transitivePeerDependencies:
       - rollup
       - vue
@@ -15024,7 +14897,7 @@ snapshots:
       anymatch: 3.1.3
       chokidar: 3.6.0
       destr: 2.0.3
-      h3: 1.11.1
+      h3: 1.12.0
       listhen: 1.7.2
       lru-cache: 10.2.0
       mri: 1.2.0
@@ -15065,12 +14938,6 @@ snapshots:
       pkg-types: 1.1.1
       unplugin: 1.10.1
 
-  update-browserslist-db@1.0.13(browserslist@4.23.0):
-    dependencies:
-      browserslist: 4.23.0
-      escalade: 3.1.1
-      picocolors: 1.0.0
-
   update-browserslist-db@1.0.16(browserslist@4.23.1):
     dependencies:
       browserslist: 4.23.1
@@ -15129,17 +14996,17 @@ snapshots:
       unist-util-stringify-position: 4.0.0
       vfile-message: 4.0.2
 
-  vite-hot-client@0.2.3(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)):
+  vite-hot-client@0.2.3(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0)):
     dependencies:
-      vite: 5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)
+      vite: 5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0)
 
-  vite-node@1.6.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0):
+  vite-node@1.6.0(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0):
     dependencies:
       cac: 6.7.14
       debug: 4.3.4
       pathe: 1.1.2
-      picocolors: 1.0.0
-      vite: 5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)
+      picocolors: 1.0.1
+      vite: 5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0)
     transitivePeerDependencies:
       - '@types/node'
       - less
@@ -15150,24 +15017,7 @@ snapshots:
       - supports-color
       - terser
 
-  vite-node@1.6.0(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0):
-    dependencies:
-      cac: 6.7.14
-      debug: 4.3.4
-      pathe: 1.1.2
-      picocolors: 1.0.0
-      vite: 5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0)
-    transitivePeerDependencies:
-      - '@types/node'
-      - less
-      - lightningcss
-      - sass
-      - stylus
-      - sugarss
-      - supports-color
-      - terser
-
-  vite-plugin-checker@0.6.4(eslint@9.5.0)(optionator@0.9.3)(typescript@5.4.5)(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0))(vue-tsc@2.0.21(typescript@5.4.5)):
+  vite-plugin-checker@0.6.4(eslint@9.5.0)(optionator@0.9.3)(typescript@5.5.2)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))(vue-tsc@2.0.21(typescript@5.5.2)):
     dependencies:
       '@babel/code-frame': 7.24.7
       ansi-escapes: 4.3.2
@@ -15180,7 +15030,7 @@ snapshots:
       semver: 7.6.2
       strip-ansi: 6.0.1
       tiny-invariant: 1.3.1
-      vite: 5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0)
+      vite: 5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0)
       vscode-languageclient: 7.0.0
       vscode-languageserver: 7.0.0
       vscode-languageserver-textdocument: 1.0.11
@@ -15188,10 +15038,10 @@ snapshots:
     optionalDependencies:
       eslint: 9.5.0
       optionator: 0.9.3
-      typescript: 5.4.5
-      vue-tsc: 2.0.21(typescript@5.4.5)
+      typescript: 5.5.2
+      vue-tsc: 2.0.21(typescript@5.5.2)
 
-  vite-plugin-inspect@0.8.4(@nuxt/kit@packages+kit)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)):
+  vite-plugin-inspect@0.8.4(@nuxt/kit@packages+kit)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0)):
     dependencies:
       '@antfu/utils': 0.7.8
       '@rollup/pluginutils': 5.1.0(rollup@4.18.0)
@@ -15200,16 +15050,16 @@ snapshots:
       fs-extra: 11.2.0
       open: 10.1.0
       perfect-debounce: 1.0.0
-      picocolors: 1.0.0
+      picocolors: 1.0.1
       sirv: 2.0.4
-      vite: 5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)
+      vite: 5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0)
     optionalDependencies:
       '@nuxt/kit': link:packages/kit
     transitivePeerDependencies:
       - rollup
       - supports-color
 
-  vite-plugin-vue-inspector@5.1.0(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)):
+  vite-plugin-vue-inspector@5.1.0(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0)):
     dependencies:
       '@babel/core': 7.24.7
       '@babel/plugin-proposal-decorators': 7.23.2(@babel/core@7.24.7)
@@ -15220,35 +15070,24 @@ snapshots:
       '@vue/compiler-dom': 3.4.29
       kolorist: 1.8.0
       magic-string: 0.30.10
-      vite: 5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)
+      vite: 5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0)
     transitivePeerDependencies:
       - supports-color
 
-  vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0):
+  vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0):
     dependencies:
       esbuild: 0.21.5
       postcss: 8.4.38
       rollup: 4.18.0
     optionalDependencies:
-      '@types/node': 20.14.2
+      '@types/node': 20.14.7
       fsevents: 2.3.3
       sass: 1.69.4
       terser: 5.27.0
 
-  vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0):
+  vitest-environment-nuxt@1.0.0(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.5.2)))(@vue/test-utils@2.4.6)(h3@1.12.0)(happy-dom@14.12.3)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.44.1)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.7)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.3(vue@3.4.29(typescript@5.5.2)))(vue@3.4.29(typescript@5.5.2)):
     dependencies:
-      esbuild: 0.21.5
-      postcss: 8.4.38
-      rollup: 4.18.0
-    optionalDependencies:
-      '@types/node': 20.14.6
-      fsevents: 2.3.3
-      sass: 1.69.4
-      terser: 5.27.0
-
-  vitest-environment-nuxt@1.0.0(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.4.5)))(@vue/test-utils@2.4.6)(h3@1.11.1)(happy-dom@14.12.0)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.44.1)(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.6)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.3(vue@3.4.29(typescript@5.4.5)))(vue@3.4.29(typescript@5.4.5)):
-    dependencies:
-      '@nuxt/test-utils': 3.13.1(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.4.5)))(@vue/test-utils@2.4.6)(h3@1.11.1)(happy-dom@14.12.0)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.44.1)(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.6)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.3(vue@3.4.29(typescript@5.4.5)))(vue@3.4.29(typescript@5.4.5))
+      '@nuxt/test-utils': 3.13.1(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.5.2)))(@vue/test-utils@2.4.6)(h3@1.12.0)(happy-dom@14.12.3)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.44.1)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.7)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.3(vue@3.4.29(typescript@5.5.2)))(vue@3.4.29(typescript@5.5.2))
     transitivePeerDependencies:
       - '@cucumber/cucumber'
       - '@jest/globals'
@@ -15267,7 +15106,7 @@ snapshots:
       - vue
       - vue-router
 
-  vitest@1.6.0(@types/node@20.14.2)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0):
+  vitest@1.6.0(@types/node@20.14.7)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0):
     dependencies:
       '@vitest/expect': 1.6.0
       '@vitest/runner': 1.6.0
@@ -15281,51 +15120,17 @@ snapshots:
       local-pkg: 0.5.0
       magic-string: 0.30.10
       pathe: 1.1.2
-      picocolors: 1.0.0
+      picocolors: 1.0.1
       std-env: 3.7.0
       strip-literal: 2.1.0
       tinybench: 2.5.1
       tinypool: 0.8.4
-      vite: 5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)
-      vite-node: 1.6.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)
+      vite: 5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0)
+      vite-node: 1.6.0(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0)
       why-is-node-running: 2.2.2
     optionalDependencies:
-      '@types/node': 20.14.2
-      happy-dom: 14.12.0
-    transitivePeerDependencies:
-      - less
-      - lightningcss
-      - sass
-      - stylus
-      - sugarss
-      - supports-color
-      - terser
-
-  vitest@1.6.0(@types/node@20.14.6)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0):
-    dependencies:
-      '@vitest/expect': 1.6.0
-      '@vitest/runner': 1.6.0
-      '@vitest/snapshot': 1.6.0
-      '@vitest/spy': 1.6.0
-      '@vitest/utils': 1.6.0
-      acorn-walk: 8.3.2
-      chai: 4.3.10
-      debug: 4.3.4
-      execa: 8.0.1
-      local-pkg: 0.5.0
-      magic-string: 0.30.10
-      pathe: 1.1.2
-      picocolors: 1.0.0
-      std-env: 3.7.0
-      strip-literal: 2.1.0
-      tinybench: 2.5.1
-      tinypool: 0.8.4
-      vite: 5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0)
-      vite-node: 1.6.0(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0)
-      why-is-node-running: 2.2.2
-    optionalDependencies:
-      '@types/node': 20.14.6
-      happy-dom: 14.12.0
+      '@types/node': 20.14.7
+      happy-dom: 14.12.3
     transitivePeerDependencies:
       - less
       - lightningcss
@@ -15366,9 +15171,9 @@ snapshots:
 
   vue-component-type-helpers@2.0.6: {}
 
-  vue-demi@0.14.8(vue@3.4.29(typescript@5.4.5)):
+  vue-demi@0.14.8(vue@3.4.29(typescript@5.5.2)):
     dependencies:
-      vue: 3.4.29(typescript@5.4.5)
+      vue: 3.4.29(typescript@5.5.2)
 
   vue-devtools-stub@0.1.0: {}
 
@@ -15385,7 +15190,7 @@ snapshots:
     transitivePeerDependencies:
       - supports-color
 
-  vue-loader@17.4.2(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.4.5))(webpack@5.92.1):
+  vue-loader@17.4.2(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.5.2))(webpack@5.92.1):
     dependencies:
       chalk: 4.1.2
       hash-sum: 2.0.0
@@ -15393,49 +15198,49 @@ snapshots:
       webpack: 5.92.1
     optionalDependencies:
       '@vue/compiler-sfc': 3.4.29
-      vue: 3.4.29(typescript@5.4.5)
+      vue: 3.4.29(typescript@5.5.2)
 
-  vue-observe-visibility@2.0.0-alpha.1(vue@3.4.29(typescript@5.4.5)):
+  vue-observe-visibility@2.0.0-alpha.1(vue@3.4.29(typescript@5.5.2)):
     dependencies:
-      vue: 3.4.29(typescript@5.4.5)
+      vue: 3.4.29(typescript@5.5.2)
 
-  vue-resize@2.0.0-alpha.1(vue@3.4.29(typescript@5.4.5)):
+  vue-resize@2.0.0-alpha.1(vue@3.4.29(typescript@5.5.2)):
     dependencies:
-      vue: 3.4.29(typescript@5.4.5)
+      vue: 3.4.29(typescript@5.5.2)
 
-  vue-router@4.3.3(vue@3.4.29(typescript@5.4.5)):
+  vue-router@4.3.3(vue@3.4.29(typescript@5.5.2)):
     dependencies:
       '@vue/devtools-api': 6.6.3
-      vue: 3.4.29(typescript@5.4.5)
+      vue: 3.4.29(typescript@5.5.2)
 
   vue-template-compiler@2.7.14:
     dependencies:
       de-indent: 1.0.2
       he: 1.2.0
 
-  vue-tsc@2.0.21(typescript@5.4.5):
+  vue-tsc@2.0.21(typescript@5.5.2):
     dependencies:
       '@volar/typescript': 2.3.0-alpha.15
-      '@vue/language-core': 2.0.21(typescript@5.4.5)
+      '@vue/language-core': 2.0.21(typescript@5.5.2)
       semver: 7.6.2
-      typescript: 5.4.5
+      typescript: 5.5.2
 
-  vue-virtual-scroller@2.0.0-beta.8(vue@3.4.29(typescript@5.4.5)):
+  vue-virtual-scroller@2.0.0-beta.8(vue@3.4.29(typescript@5.5.2)):
     dependencies:
       mitt: 2.1.0
-      vue: 3.4.29(typescript@5.4.5)
-      vue-observe-visibility: 2.0.0-alpha.1(vue@3.4.29(typescript@5.4.5))
-      vue-resize: 2.0.0-alpha.1(vue@3.4.29(typescript@5.4.5))
+      vue: 3.4.29(typescript@5.5.2)
+      vue-observe-visibility: 2.0.0-alpha.1(vue@3.4.29(typescript@5.5.2))
+      vue-resize: 2.0.0-alpha.1(vue@3.4.29(typescript@5.5.2))
 
-  vue@3.4.29(typescript@5.4.5):
+  vue@3.4.29(typescript@5.5.2):
     dependencies:
       '@vue/compiler-dom': 3.4.29
       '@vue/compiler-sfc': 3.4.29
       '@vue/runtime-dom': 3.4.29
-      '@vue/server-renderer': 3.4.29(vue@3.4.29(typescript@5.4.5))
+      '@vue/server-renderer': 3.4.29(vue@3.4.29(typescript@5.5.2))
       '@vue/shared': 3.4.29
     optionalDependencies:
-      typescript: 5.4.5
+      typescript: 5.5.2
 
   watchpack@2.4.1:
     dependencies:
@@ -15459,7 +15264,7 @@ snapshots:
       gzip-size: 6.0.0
       html-escaper: 2.0.2
       opener: 1.5.2
-      picocolors: 1.0.0
+      picocolors: 1.0.1
       sirv: 2.0.4
       ws: 7.5.9
     transitivePeerDependencies:
@@ -15469,7 +15274,7 @@ snapshots:
   webpack-dev-middleware@7.2.1(webpack@5.92.1):
     dependencies:
       colorette: 2.0.20
-      memfs: 4.9.2
+      memfs: 4.9.3
       mime-types: 2.1.35
       on-finished: 2.4.1
       range-parser: 1.2.1
@@ -15661,7 +15466,7 @@ snapshots:
   yargs@17.7.2:
     dependencies:
       cliui: 8.0.1
-      escalade: 3.1.1
+      escalade: 3.1.2
       get-caller-file: 2.0.5
       require-directory: 2.1.1
       string-width: 4.2.3
diff --git a/test/bundle.test.ts b/test/bundle.test.ts
index 2afe8693f9..14878051b8 100644
--- a/test/bundle.test.ts
+++ b/test/bundle.test.ts
@@ -32,7 +32,7 @@ describe.skipIf(process.env.SKIP_BUNDLE_SIZE === 'true' || process.env.ECOSYSTEM
     const serverDir = join(rootDir, '.output/server')
 
     const serverStats = await analyzeSizes(['**/*.mjs', '!node_modules'], serverDir)
-    expect.soft(roundToKilobytes(serverStats.totalBytes)).toMatchInlineSnapshot(`"209k"`)
+    expect.soft(roundToKilobytes(serverStats.totalBytes)).toMatchInlineSnapshot(`"210k"`)
 
     const modules = await analyzeSizes('node_modules/**/*', serverDir)
     expect.soft(roundToKilobytes(modules.totalBytes)).toMatchInlineSnapshot(`"1340k"`)
@@ -72,7 +72,7 @@ describe.skipIf(process.env.SKIP_BUNDLE_SIZE === 'true' || process.env.ECOSYSTEM
     const serverDir = join(rootDir, '.output-inline/server')
 
     const serverStats = await analyzeSizes(['**/*.mjs', '!node_modules'], serverDir)
-    expect.soft(roundToKilobytes(serverStats.totalBytes)).toMatchInlineSnapshot(`"530k"`)
+    expect.soft(roundToKilobytes(serverStats.totalBytes)).toMatchInlineSnapshot(`"531k"`)
 
     const modules = await analyzeSizes('node_modules/**/*', serverDir)
     expect.soft(roundToKilobytes(modules.totalBytes)).toMatchInlineSnapshot(`"76.2k"`)

From e374474df3755054d5217ed0b28643ccce0b2eef Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Damian=20G=C5=82owala?= 
Date: Fri, 21 Jun 2024 10:33:42 +0200
Subject: [PATCH 153/580] feat(kit,schema): add `.with` for better module
 options types (#27520)

---
 packages/kit/src/module/define.ts   | 80 +++++++++++++++++++++++------
 packages/kit/src/module/install.ts  |  2 +-
 packages/schema/src/types/module.ts | 65 +++++++++++++++++++----
 test/fixtures/basic-types/types.ts  | 17 ++++++
 4 files changed, 136 insertions(+), 28 deletions(-)

diff --git a/packages/kit/src/module/define.ts b/packages/kit/src/module/define.ts
index e0986ef59a..e5a771cff5 100644
--- a/packages/kit/src/module/define.ts
+++ b/packages/kit/src/module/define.ts
@@ -1,7 +1,7 @@
 import { performance } from 'node:perf_hooks'
 import { defu } from 'defu'
 import { applyDefaults } from 'untyped'
-import type { ModuleDefinition, ModuleOptions, ModuleSetupReturn, Nuxt, NuxtModule, NuxtOptions } from '@nuxt/schema'
+import type { ModuleDefinition, ModuleOptions, ModuleSetupInstallResult, ModuleSetupReturn, Nuxt, NuxtModule, NuxtOptions, ResolvedModuleOptions } from '@nuxt/schema'
 import { logger } from '../logger'
 import { tryUseNuxt, useNuxt } from '../context'
 import { checkNuxtCompatibility } from '../compatibility'
@@ -10,28 +10,76 @@ import { checkNuxtCompatibility } from '../compatibility'
  * Define a Nuxt module, automatically merging defaults with user provided options, installing
  * any hooks that are provided, and calling an optional setup function for full control.
  */
-export function defineNuxtModule (definition: ModuleDefinition | NuxtModule): NuxtModule {
-  if (typeof definition === 'function') { return defineNuxtModule({ setup: definition }) }
+export function defineNuxtModule (
+  definition: ModuleDefinition, false> | NuxtModule, false>
+): NuxtModule
 
-  // Normalize definition and meta
-  const module: ModuleDefinition & Required, 'meta'>> = defu(definition, { meta: {} })
-  if (module.meta.configKey === undefined) {
-    module.meta.configKey = module.meta.name
+export function defineNuxtModule (): {
+  with: > (
+    definition: ModuleDefinition | NuxtModule
+  ) => NuxtModule
+}
+
+export function defineNuxtModule (
+  definition?: ModuleDefinition, false> | NuxtModule, false>,
+) {
+  if (definition) {
+    return _defineNuxtModule(definition)
   }
 
+  return {
+    with: >(
+      definition: ModuleDefinition | NuxtModule,
+    ) => _defineNuxtModule(definition),
+  }
+}
+
+function _defineNuxtModule<
+  TOptions extends ModuleOptions,
+  TOptionsDefaults extends Partial,
+  TWith extends boolean,
+> (
+  definition: ModuleDefinition | NuxtModule,
+): NuxtModule {
+  if (typeof definition === 'function') {
+    return _defineNuxtModule({ setup: definition })
+  }
+
+  // Normalize definition and meta
+  const module: ModuleDefinition & Required, 'meta'>> = defu(definition, { meta: {} })
+
+  module.meta.configKey ||= module.meta.name
+
   // Resolves module options from inline options, [configKey] in nuxt.config, defaults and schema
-  async function getOptions (inlineOptions?: OptionsT, nuxt: Nuxt = useNuxt()) {
-    const configKey = module.meta.configKey || module.meta.name!
-    const _defaults = module.defaults instanceof Function ? module.defaults(nuxt) : module.defaults
-    let _options = defu(inlineOptions, nuxt.options[configKey as keyof NuxtOptions], _defaults) as OptionsT
+  async function getOptions (
+    inlineOptions?: Partial,
+    nuxt: Nuxt = useNuxt(),
+  ): Promise<
+    TWith extends true
+      ? ResolvedModuleOptions
+      : TOptions
+  > {
+    const nuxtConfigOptionsKey = module.meta.configKey || module.meta.name
+
+    const nuxtConfigOptions: Partial = nuxtConfigOptionsKey && nuxtConfigOptionsKey in nuxt.options ? nuxt.options[ nuxtConfigOptionsKey] : {}
+
+    const optionsDefaults: TOptionsDefaults =
+      module.defaults instanceof Function
+        ? module.defaults(nuxt)
+        : module.defaults ??  {}
+
+    let options = defu(inlineOptions, nuxtConfigOptions, optionsDefaults)
+
     if (module.schema) {
-      _options = await applyDefaults(module.schema, _options) as OptionsT
+      options = await applyDefaults(module.schema, options) as any
     }
-    return Promise.resolve(_options)
+
+    // @ts-expect-error ignore type mismatch when calling `defineNuxtModule` without `.with()`
+    return Promise.resolve(options)
   }
 
   // Module format is always a simple function
-  async function normalizedModule (this: any, inlineOptions: OptionsT, nuxt: Nuxt) {
+  async function normalizedModule (this: any, inlineOptions: Partial, nuxt: Nuxt): Promise {
     if (!nuxt) {
       nuxt = tryUseNuxt() || this.nuxt /* invoked by nuxt 2 */
     }
@@ -81,7 +129,7 @@ export function defineNuxtModule (definition: Mo
     if (res === false) { return false }
 
     // Return module install result
-    return defu(res,  {
+    return defu(res,  {
       timings: {
         setup: setupTime,
       },
@@ -92,5 +140,5 @@ export function defineNuxtModule (definition: Mo
   normalizedModule.getMeta = () => Promise.resolve(module.meta)
   normalizedModule.getOptions = getOptions
 
-  return normalizedModule as NuxtModule
+  return > normalizedModule
 }
diff --git a/packages/kit/src/module/install.ts b/packages/kit/src/module/install.ts
index 6d04cef352..7a0488258e 100644
--- a/packages/kit/src/module/install.ts
+++ b/packages/kit/src/module/install.ts
@@ -26,7 +26,7 @@ export async function installModule<
   }
 
   // Call module
-  const res = await nuxtModule(inlineOptions, nuxt) ?? {}
+  const res = await nuxtModule(inlineOptions || {}, nuxt) ?? {}
   if (res === false /* setup aborted */) {
     return
   }
diff --git a/packages/schema/src/types/module.ts b/packages/schema/src/types/module.ts
index 9b92d6a93e..1879678923 100644
--- a/packages/schema/src/types/module.ts
+++ b/packages/schema/src/types/module.ts
@@ -1,3 +1,4 @@
+import type { Defu } from 'defu'
 import type { NuxtHooks } from './hooks'
 import type { Nuxt } from './nuxt'
 import type { NuxtCompatibility } from './compatibility'
@@ -26,8 +27,7 @@ export interface ModuleMeta {
 /** The options received.  */
 export type ModuleOptions = Record
 
-/** Optional result for nuxt modules */
-export interface ModuleSetupReturn {
+export type ModuleSetupInstallResult = {
   /**
    * Timing information for the initial setup
    */
@@ -39,19 +39,62 @@ export interface ModuleSetupReturn {
 }
 
 type Awaitable = T | Promise
-type _ModuleSetupReturn = Awaitable
 
-/** Input module passed to defineNuxtModule. */
-export interface ModuleDefinition {
+type Prettify = {
+  [K in keyof T]: T[K];
+} & {}
+
+export type ModuleSetupReturn = Awaitable
+
+export type ResolvedModuleOptions<
+  TOptions extends ModuleOptions,
+  TOptionsDefaults extends Partial,
+> =
+  Prettify<
+    Defu<
+      Partial,
+      [Partial, TOptionsDefaults]
+    >
+  >
+
+/** Module definition passed to 'defineNuxtModule(...)' or 'defineNuxtModule().with(...)'. */
+export interface ModuleDefinition<
+  TOptions extends ModuleOptions,
+  TOptionsDefaults extends Partial,
+  TWith extends boolean,
+> {
   meta?: ModuleMeta
-  defaults?: T | ((nuxt: Nuxt) => T)
-  schema?: T
+  defaults?: TOptionsDefaults | ((nuxt: Nuxt) => TOptionsDefaults)
+  schema?: TOptions
   hooks?: Partial
-  setup?: (this: void, resolvedOptions: T, nuxt: Nuxt) => _ModuleSetupReturn
+  setup?: (
+    this: void,
+    resolvedOptions: TWith extends true
+      ? ResolvedModuleOptions
+      : TOptions,
+    nuxt: Nuxt
+  ) => ModuleSetupReturn
 }
 
-export interface NuxtModule {
-  (this: void, inlineOptions: T, nuxt: Nuxt): _ModuleSetupReturn
-  getOptions?: (inlineOptions?: T, nuxt?: Nuxt) => Promise
+export interface NuxtModule<
+  TOptions extends ModuleOptions = ModuleOptions,
+  TOptionsDefaults extends Partial = Partial,
+  TWith extends boolean = false,
+> {
+  (
+    this: void,
+    resolvedOptions: TWith extends true
+      ? ResolvedModuleOptions
+      : TOptions,
+    nuxt: Nuxt
+  ): ModuleSetupReturn
+  getOptions?: (
+    inlineOptions?: Partial,
+    nuxt?: Nuxt
+  ) => Promise<
+    TWith extends true
+      ? ResolvedModuleOptions
+      : TOptions
+  >
   getMeta?: () => Promise
 }
diff --git a/test/fixtures/basic-types/types.ts b/test/fixtures/basic-types/types.ts
index a6dc98d189..a3338af471 100644
--- a/test/fixtures/basic-types/types.ts
+++ b/test/fixtures/basic-types/types.ts
@@ -254,6 +254,23 @@ describe('modules', () => {
       },
     })
   })
+
+  it('correctly typed resolved options in defineNuxtModule setup using `.with()`', () => {
+    defineNuxtModule<{
+      foo?: string
+      baz: number
+    }>().with({
+      defaults: {
+        foo: 'bar',
+      },
+      setup: (resolvedOptions) => {
+        expectTypeOf(resolvedOptions).toEqualTypeOf<{
+          foo: string
+          baz?: number | undefined
+        }>()
+      },
+    })
+  })
 })
 
 describe('nuxtApp', () => {

From 209e81b60d22cecce671eb4e7bd3bcdbf5017886 Mon Sep 17 00:00:00 2001
From: Daniel Roe 
Date: Fri, 21 Jun 2024 10:28:23 +0100
Subject: [PATCH 154/580] refactor(nuxt)!: move `#app/components/layout` ->
 `#app/components/nuxt-layout`

resolves https://github.com/nuxt/nuxt/issues/25333
---
 packages/nuxt/src/app/components/layout.ts | 2 --
 1 file changed, 2 deletions(-)
 delete mode 100644 packages/nuxt/src/app/components/layout.ts

diff --git a/packages/nuxt/src/app/components/layout.ts b/packages/nuxt/src/app/components/layout.ts
deleted file mode 100644
index b88def1a94..0000000000
--- a/packages/nuxt/src/app/components/layout.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-// TODO: remove in 4.x
-export { default } from './nuxt-layout'

From c87ca8607cf5dde72979c44abbd0da818d608078 Mon Sep 17 00:00:00 2001
From: Daniel Roe 
Date: Fri, 21 Jun 2024 12:12:43 +0100
Subject: [PATCH 155/580] fix(nuxt): defer registering inp handler until nuxt
 is mounted

---
 .../app/plugins/navigation-repaint.client.ts  | 30 +++++++++++--------
 1 file changed, 17 insertions(+), 13 deletions(-)

diff --git a/packages/nuxt/src/app/plugins/navigation-repaint.client.ts b/packages/nuxt/src/app/plugins/navigation-repaint.client.ts
index 30f3a69cf1..fa368bf593 100644
--- a/packages/nuxt/src/app/plugins/navigation-repaint.client.ts
+++ b/packages/nuxt/src/app/plugins/navigation-repaint.client.ts
@@ -1,19 +1,23 @@
 import { defineNuxtPlugin } from '../nuxt'
-import { useRouter } from '../composables'
+import { onNuxtReady } from '../composables/ready'
+import { useRouter } from '../composables/router'
 
 export default defineNuxtPlugin(() => {
-  useRouter().beforeResolve(async () => {
-    /**
-     * This gives an opportunity for the browser to repaint, acknowledging user interaction.
-     * It can reduce INP when navigating on prerendered routes.
-     *
-     * @see https://github.com/nuxt/nuxt/issues/26271#issuecomment-2178582037
-     * @see https://vercel.com/blog/demystifying-inp-new-tools-and-actionable-insights
-     */
-    await new Promise((resolve) => {
-      // Ensure we always resolve, even if the animation frame never fires
-      setTimeout(resolve, 100)
-      requestAnimationFrame(() => { setTimeout(resolve, 0) })
+  const router = useRouter()
+  onNuxtReady(() => {
+    router.beforeResolve(async () => {
+      /**
+       * This gives an opportunity for the browser to repaint, acknowledging user interaction.
+       * It can reduce INP when navigating on prerendered routes.
+       *
+       * @see https://github.com/nuxt/nuxt/issues/26271#issuecomment-2178582037
+       * @see https://vercel.com/blog/demystifying-inp-new-tools-and-actionable-insights
+       */
+      await new Promise((resolve) => {
+        // Ensure we always resolve, even if the animation frame never fires
+        setTimeout(resolve, 100)
+        requestAnimationFrame(() => { setTimeout(resolve, 0) })
+      })
     })
   })
 })

From 54e8bd0e7e5ba78108a846d717ddfd1f39ea6fbc Mon Sep 17 00:00:00 2001
From: Daniel Roe 
Date: Mon, 24 Jun 2024 10:39:38 +0100
Subject: [PATCH 156/580] perf(nuxt,vite): use native fs utils rather than
 `fs-extra` (#27787)

---
 package.json                               |  2 --
 packages/nuxt/package.json                 |  2 --
 packages/nuxt/src/core/nitro.ts            |  2 --
 packages/nuxt/src/core/nuxt.ts             |  7 ++--
 packages/vite/package.json                 |  2 --
 packages/vite/src/manifest.ts              | 14 ++++----
 packages/vite/src/utils/index.ts           | 10 ------
 packages/vite/src/utils/wpfs.ts            |  7 ----
 packages/vite/src/vite-node.ts             |  6 ++--
 packages/webpack/package.json              |  2 --
 packages/webpack/src/plugins/vue/client.ts | 10 +++---
 pnpm-lock.yaml                             | 39 ----------------------
 test/prepare.ts                            |  8 +++--
 test/setup.ts                              | 15 +++++----
 14 files changed, 35 insertions(+), 91 deletions(-)
 delete mode 100644 packages/vite/src/utils/wpfs.ts

diff --git a/package.json b/package.json
index 931e5aeace..e6a52fa401 100644
--- a/package.json
+++ b/package.json
@@ -53,7 +53,6 @@
     "@nuxt/webpack-builder": "workspace:*",
     "@testing-library/vue": "8.1.0",
     "@types/eslint__js": "8.42.3",
-    "@types/fs-extra": "11.0.4",
     "@types/node": "20.14.7",
     "@types/semver": "7.5.8",
     "@unhead/schema": "1.9.14",
@@ -69,7 +68,6 @@
     "eslint-plugin-perfectionist": "2.11.0",
     "eslint-typegen": "0.2.4",
     "execa": "9.2.0",
-    "fs-extra": "11.2.0",
     "globby": "14.0.1",
     "h3": "1.12.0",
     "happy-dom": "14.12.3",
diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json
index 27a9330c23..dcf6d24318 100644
--- a/packages/nuxt/package.json
+++ b/packages/nuxt/package.json
@@ -79,7 +79,6 @@
     "esbuild": "^0.21.5",
     "escape-string-regexp": "^5.0.0",
     "estree-walker": "^3.0.3",
-    "fs-extra": "^11.2.0",
     "globby": "^14.0.1",
     "h3": "^1.12.0",
     "hookable": "^5.5.3",
@@ -122,7 +121,6 @@
     "@nuxt/ui-templates": "1.3.4",
     "@parcel/watcher": "2.4.1",
     "@types/estree": "1.0.5",
-    "@types/fs-extra": "11.0.4",
     "@vitejs/plugin-vue": "5.0.4",
     "@vue/compiler-sfc": "3.4.29",
     "unbuild": "latest",
diff --git a/packages/nuxt/src/core/nitro.ts b/packages/nuxt/src/core/nitro.ts
index 639072ba0d..37b18e278c 100644
--- a/packages/nuxt/src/core/nitro.ts
+++ b/packages/nuxt/src/core/nitro.ts
@@ -9,7 +9,6 @@ import type { Nitro, NitroConfig, NitroOptions } from 'nitropack'
 import { findPath, logger, resolveAlias, resolveIgnorePatterns, resolveNuxtModule, resolvePath } from '@nuxt/kit'
 import escapeRE from 'escape-string-regexp'
 import { defu } from 'defu'
-import fsExtra from 'fs-extra'
 import { dynamicEventHandler } from 'h3'
 import { isWindows } from 'std-env'
 import type { Nuxt, NuxtOptions } from 'nuxt/schema'
@@ -534,7 +533,6 @@ export async function initNitro (nuxt: Nuxt & { _nitro?: Nitro }) {
 
   // nuxt dev
   if (nuxt.options.dev) {
-    nuxt.hook('webpack:compile', ({ compiler }) => { compiler.outputFileSystem = { ...fsExtra, join } as any })
     nuxt.hook('webpack:compiled', () => { nuxt.server.reload() })
     nuxt.hook('vite:compiled', () => { nuxt.server.reload() })
 
diff --git a/packages/nuxt/src/core/nuxt.ts b/packages/nuxt/src/core/nuxt.ts
index d5fe6f8740..4987fb3d98 100644
--- a/packages/nuxt/src/core/nuxt.ts
+++ b/packages/nuxt/src/core/nuxt.ts
@@ -1,3 +1,5 @@
+import { existsSync } from 'node:fs'
+import { rm } from 'node:fs/promises'
 import { dirname, join, normalize, relative, resolve } from 'pathe'
 import { createDebugger, createHooks } from 'hookable'
 import ignore from 'ignore'
@@ -10,7 +12,6 @@ import { readPackageJSON, resolvePackageJSON } from 'pkg-types'
 import { hash } from 'ohash'
 
 import escapeRE from 'escape-string-regexp'
-import fse from 'fs-extra'
 import { withTrailingSlash, withoutLeadingSlash } from 'ufo'
 
 import defu from 'defu'
@@ -159,7 +160,7 @@ async function initNuxt (nuxt: Nuxt) {
 
     for (const layer of nuxt.options._layers) {
       const declaration = join(layer.cwd, 'index.d.ts')
-      if (fse.existsSync(declaration)) {
+      if (existsSync(declaration)) {
         opts.references.push({ path: declaration })
       }
     }
@@ -277,7 +278,7 @@ async function initNuxt (nuxt: Nuxt) {
     nuxt.hook('build:manifest', async (manifest) => {
       for (const file in manifest) {
         if (manifest[file].resourceType === 'script') {
-          await fse.rm(resolve(nuxt.options.buildDir, 'dist/client', withoutLeadingSlash(nuxt.options.app.buildAssetsDir), manifest[file].file), { force: true })
+          await rm(resolve(nuxt.options.buildDir, 'dist/client', withoutLeadingSlash(nuxt.options.app.buildAssetsDir), manifest[file].file), { force: true })
           manifest[file].file = ''
         }
       }
diff --git a/packages/vite/package.json b/packages/vite/package.json
index d48970a161..2b628b0e77 100644
--- a/packages/vite/package.json
+++ b/packages/vite/package.json
@@ -27,7 +27,6 @@
     "@nuxt/schema": "workspace:*",
     "@types/clear": "0.1.4",
     "@types/estree": "1.0.5",
-    "@types/fs-extra": "11.0.4",
     "rollup": "4.18.0",
     "unbuild": "latest",
     "vue": "3.4.29"
@@ -46,7 +45,6 @@
     "escape-string-regexp": "^5.0.0",
     "estree-walker": "^3.0.3",
     "externality": "^1.0.2",
-    "fs-extra": "^11.2.0",
     "get-port-please": "^3.1.2",
     "h3": "^1.12.0",
     "knitwork": "^1.1.0",
diff --git a/packages/vite/src/manifest.ts b/packages/vite/src/manifest.ts
index 54471633ec..9d4490f36b 100644
--- a/packages/vite/src/manifest.ts
+++ b/packages/vite/src/manifest.ts
@@ -1,4 +1,6 @@
-import fse from 'fs-extra'
+import { readFileSync } from 'node:fs'
+import { mkdir, rm, writeFile } from 'node:fs/promises'
+
 import { relative, resolve } from 'pathe'
 import { withTrailingSlash, withoutLeadingSlash } from 'ufo'
 import escapeRE from 'escape-string-regexp'
@@ -30,7 +32,7 @@ export async function writeManifest (ctx: ViteBuildContext, css: string[] = [])
   const manifestFile = resolve(clientDist, 'manifest.json')
   const clientManifest = ctx.nuxt.options.dev
     ? devClientManifest
-    : await fse.readJSON(manifestFile)
+    : JSON.parse(readFileSync(manifestFile, 'utf-8'))
 
   const buildAssetsDir = withTrailingSlash(withoutLeadingSlash(ctx.nuxt.options.app.buildAssetsDir))
   const BASE_RE = new RegExp(`^${escapeRE(buildAssetsDir)}`)
@@ -47,7 +49,7 @@ export async function writeManifest (ctx: ViteBuildContext, css: string[] = [])
     }
   }
 
-  await fse.mkdirp(serverDist)
+  await mkdir(serverDist, { recursive: true })
 
   if (ctx.config.build?.cssCodeSplit === false) {
     for (const key in clientManifest as Record) {
@@ -64,10 +66,10 @@ export async function writeManifest (ctx: ViteBuildContext, css: string[] = [])
   const manifest = normalizeViteManifest(clientManifest)
   await ctx.nuxt.callHook('build:manifest', manifest)
   const stringifiedManifest = JSON.stringify(manifest, null, 2)
-  await fse.writeFile(resolve(serverDist, 'client.manifest.json'), stringifiedManifest, 'utf8')
-  await fse.writeFile(resolve(serverDist, 'client.manifest.mjs'), 'export default ' + stringifiedManifest, 'utf8')
+  await writeFile(resolve(serverDist, 'client.manifest.json'), stringifiedManifest, 'utf8')
+  await writeFile(resolve(serverDist, 'client.manifest.mjs'), 'export default ' + stringifiedManifest, 'utf8')
 
   if (!ctx.nuxt.options.dev) {
-    await fse.rm(manifestFile, { force: true })
+    await rm(manifestFile, { force: true })
   }
 }
diff --git a/packages/vite/src/utils/index.ts b/packages/vite/src/utils/index.ts
index c667b96b20..9221d70278 100644
--- a/packages/vite/src/utils/index.ts
+++ b/packages/vite/src/utils/index.ts
@@ -1,11 +1,5 @@
-import { hash } from 'ohash'
-
 export { isVue } from '../../../nuxt/src/core/utils/plugins'
 
-export function uniq (arr: T[]): T[] {
-  return Array.from(new Set(arr))
-}
-
 // Copied from vue-bundle-renderer utils
 const IS_CSS_RE = /\.(?:css|scss|sass|postcss|pcss|less|stylus|styl)(?:\?[^.]+)?$/
 
@@ -13,10 +7,6 @@ export function isCSS (file: string) {
   return IS_CSS_RE.test(file)
 }
 
-export function hashId (id: string) {
-  return '$id_' + hash(id)
-}
-
 export function matchWithStringOrRegex (value: string, matcher: string | RegExp) {
   if (typeof matcher === 'string') {
     return value === matcher
diff --git a/packages/vite/src/utils/wpfs.ts b/packages/vite/src/utils/wpfs.ts
deleted file mode 100644
index 5538f0bf7e..0000000000
--- a/packages/vite/src/utils/wpfs.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-import { join } from 'pathe'
-import fse from 'fs-extra'
-
-export const wpfs = {
-  ...fse,
-  join,
-} as typeof fse & { join: typeof join }
diff --git a/packages/vite/src/vite-node.ts b/packages/vite/src/vite-node.ts
index 8bbbe98ed0..b4af79e8b0 100644
--- a/packages/vite/src/vite-node.ts
+++ b/packages/vite/src/vite-node.ts
@@ -1,7 +1,7 @@
+import { writeFile } from 'node:fs/promises'
 import { pathToFileURL } from 'node:url'
 import { createApp, createError, defineEventHandler, defineLazyEventHandler, eventHandler, toNodeListener } from 'h3'
 import { ViteNodeServer } from 'vite-node/server'
-import fse from 'fs-extra'
 import { isAbsolute, normalize, resolve } from 'pathe'
 import { addDevServerHandler } from '@nuxt/kit'
 import { isFileServingAllowed } from 'vite'
@@ -181,11 +181,11 @@ export async function initViteNodeServer (ctx: ViteBuildContext) {
   const serverResolvedPath = resolve(distDir, 'runtime/vite-node.mjs')
   const manifestResolvedPath = resolve(distDir, 'runtime/client.manifest.mjs')
 
-  await fse.writeFile(
+  await writeFile(
     resolve(ctx.nuxt.options.buildDir, 'dist/server/server.mjs'),
     `export { default } from ${JSON.stringify(pathToFileURL(serverResolvedPath).href)}`,
   )
-  await fse.writeFile(
+  await writeFile(
     resolve(ctx.nuxt.options.buildDir, 'dist/server/client.manifest.mjs'),
     `export { default } from ${JSON.stringify(pathToFileURL(manifestResolvedPath).href)}`,
   )
diff --git a/packages/webpack/package.json b/packages/webpack/package.json
index e8c3846459..6a4e03a8bd 100644
--- a/packages/webpack/package.json
+++ b/packages/webpack/package.json
@@ -37,7 +37,6 @@
     "estree-walker": "^3.0.3",
     "file-loader": "^6.2.0",
     "fork-ts-checker-webpack-plugin": "^9.0.2",
-    "fs-extra": "^11.2.0",
     "h3": "^1.12.0",
     "hash-sum": "^2.0.0",
     "lodash-es": "4.17.21",
@@ -71,7 +70,6 @@
   },
   "devDependencies": {
     "@nuxt/schema": "workspace:*",
-    "@types/fs-extra": "11.0.4",
     "@types/hash-sum": "1.0.2",
     "@types/lodash-es": "4.17.12",
     "@types/pify": "5.0.4",
diff --git a/packages/webpack/src/plugins/vue/client.ts b/packages/webpack/src/plugins/vue/client.ts
index 10127fcace..23259c6cba 100644
--- a/packages/webpack/src/plugins/vue/client.ts
+++ b/packages/webpack/src/plugins/vue/client.ts
@@ -3,13 +3,15 @@
  * https://github.com/vuejs/vue/blob/dev/src/server/webpack-plugin/client.js
  */
 
+import { mkdir, writeFile } from 'node:fs/promises'
+
 import { normalizeWebpackManifest } from 'vue-bundle-renderer'
 import { dirname } from 'pathe'
 import hash from 'hash-sum'
-import fse from 'fs-extra'
 
 import type { Nuxt } from '@nuxt/schema'
 import type { Compilation, Compiler } from 'webpack'
+
 import { isCSS, isHotUpdate, isJS } from './util'
 
 interface PluginOptions {
@@ -121,11 +123,11 @@ export default class VueSSRClientPlugin {
 
       const src = JSON.stringify(manifest, null, 2)
 
-      await fse.mkdirp(dirname(this.options.filename))
-      await fse.writeFile(this.options.filename, src)
+      await mkdir(dirname(this.options.filename), { recursive: true })
+      await writeFile(this.options.filename, src)
 
       const mjsSrc = 'export default ' + src
-      await fse.writeFile(this.options.filename.replace('.json', '.mjs'), mjsSrc)
+      await writeFile(this.options.filename.replace('.json', '.mjs'), mjsSrc)
 
       // assets[this.options.filename] = {
       //   source: () => src,
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index ca42f491c4..4244e351ff 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -41,9 +41,6 @@ importers:
       '@types/eslint__js':
         specifier: 8.42.3
         version: 8.42.3
-      '@types/fs-extra':
-        specifier: 11.0.4
-        version: 11.0.4
       '@types/node':
         specifier: 20.14.7
         version: 20.14.7
@@ -89,9 +86,6 @@ importers:
       execa:
         specifier: 9.2.0
         version: 9.2.0
-      fs-extra:
-        specifier: 11.2.0
-        version: 11.2.0
       globby:
         specifier: 14.0.1
         version: 14.0.1
@@ -306,9 +300,6 @@ importers:
       estree-walker:
         specifier: ^3.0.3
         version: 3.0.3
-      fs-extra:
-        specifier: ^11.2.0
-        version: 11.2.0
       globby:
         specifier: ^14.0.1
         version: 14.0.1
@@ -430,9 +421,6 @@ importers:
       '@types/estree':
         specifier: 1.0.5
         version: 1.0.5
-      '@types/fs-extra':
-        specifier: 11.0.4
-        version: 11.0.4
       '@vitejs/plugin-vue':
         specifier: 5.0.4
         version: 5.0.4(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.5.2))
@@ -653,9 +641,6 @@ importers:
       externality:
         specifier: ^1.0.2
         version: 1.0.2
-      fs-extra:
-        specifier: ^11.2.0
-        version: 11.2.0
       get-port-please:
         specifier: ^3.1.2
         version: 3.1.2
@@ -726,9 +711,6 @@ importers:
       '@types/estree':
         specifier: 1.0.5
         version: 1.0.5
-      '@types/fs-extra':
-        specifier: 11.0.4
-        version: 11.0.4
       rollup:
         specifier: ^4.18.0
         version: 4.18.0
@@ -777,9 +759,6 @@ importers:
       fork-ts-checker-webpack-plugin:
         specifier: ^9.0.2
         version: 9.0.2(typescript@5.5.2)(webpack@5.92.1)
-      fs-extra:
-        specifier: ^11.2.0
-        version: 11.2.0
       h3:
         specifier: ^1.12.0
         version: 1.12.0
@@ -874,9 +853,6 @@ importers:
       '@nuxt/schema':
         specifier: workspace:*
         version: link:../schema
-      '@types/fs-extra':
-        specifier: 11.0.4
-        version: 11.0.4
       '@types/hash-sum':
         specifier: 1.0.2
         version: 1.0.2
@@ -2496,9 +2472,6 @@ packages:
   '@types/file-loader@5.0.4':
     resolution: {integrity: sha512-aB4X92oi5D2nIGI8/kolnJ47btRM2MQjQS4eJgA/VnCD12x0+kP5v7b5beVQWKHLOcquwUXvv6aMt8PmMy9uug==}
 
-  '@types/fs-extra@11.0.4':
-    resolution: {integrity: sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==}
-
   '@types/google.maps@3.55.9':
     resolution: {integrity: sha512-phaOMtezbT3NaXPKiI3m0OosUS7Nly0auw3Be5s/CgMWLVoDAUP1Yb/Ld0TRoRp8ibrlT4VqM5kmzfvUA0UNLQ==}
 
@@ -2526,9 +2499,6 @@ packages:
   '@types/json-schema@7.0.15':
     resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
 
-  '@types/jsonfile@6.1.2':
-    resolution: {integrity: sha512-8t92P+oeW4d/CRQfJaSqEwXujrhH4OEeHRjGU3v1Q8mUS8GPF3yiX26sw4svv6faL2HfBtGTe2xWIoVgN3dy9w==}
-
   '@types/lodash-es@4.17.12':
     resolution: {integrity: sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==}
 
@@ -9164,11 +9134,6 @@ snapshots:
     dependencies:
       '@types/webpack': 4.41.34
 
-  '@types/fs-extra@11.0.4':
-    dependencies:
-      '@types/jsonfile': 6.1.2
-      '@types/node': 20.14.7
-
   '@types/google.maps@3.55.9': {}
 
   '@types/hash-sum@1.0.2': {}
@@ -9199,10 +9164,6 @@ snapshots:
 
   '@types/json-schema@7.0.15': {}
 
-  '@types/jsonfile@6.1.2':
-    dependencies:
-      '@types/node': 20.14.7
-
   '@types/lodash-es@4.17.12':
     dependencies:
       '@types/lodash': 4.14.200
diff --git a/test/prepare.ts b/test/prepare.ts
index 83c2acac2b..e4442a18ac 100644
--- a/test/prepare.ts
+++ b/test/prepare.ts
@@ -1,6 +1,8 @@
 import { fileURLToPath } from 'node:url'
+import { rm } from 'node:fs/promises'
+
 import { globby } from 'globby'
-import fs from 'fs-extra'
+
 import { execa } from 'execa'
 
 async function initTesting () {
@@ -12,9 +14,9 @@ async function initTesting () {
 
   await Promise.all([
     // clear nuxt build files
-    ...dirs.map(dir => fs.remove(`${dir}/.nuxt`)),
+    ...dirs.map(dir => rm(`${dir}/.nuxt`, { force: true, recursive: true })),
     // clear vite cache
-    ...dirs.map(dir => fs.remove(`${dir}/node_modules/.cache`), { force: true }),
+    ...dirs.map(dir => rm(`${dir}/node_modules/.cache`, { force: true, recursive: true })),
   ])
 
   await Promise.all(
diff --git a/test/setup.ts b/test/setup.ts
index 2655f41fb3..09d429bde6 100644
--- a/test/setup.ts
+++ b/test/setup.ts
@@ -1,22 +1,25 @@
+import { existsSync } from 'node:fs'
+import { cp, rm } from 'node:fs/promises'
 import { fileURLToPath } from 'node:url'
+
 import { dirname, join } from 'pathe'
-import fs from 'fs-extra'
 
 const dir = dirname(fileURLToPath(import.meta.url))
 const fixtureDir = join(dir, 'fixtures')
 const tempDir = join(dir, 'fixtures-temp')
 
 export async function setup () {
-  if (fs.existsSync(tempDir)) {
-    await fs.remove(tempDir)
+  if (existsSync(tempDir)) {
+    await rm(tempDir, { force: true, recursive: true })
   }
-  await fs.copy(fixtureDir, tempDir, {
+  await cp(fixtureDir, tempDir, {
+    recursive: true,
     filter: src => !src.includes('.cache'),
   })
 }
 
 export async function teardown () {
-  if (fs.existsSync(tempDir)) {
-    await fs.remove(tempDir)
+  if (existsSync(tempDir)) {
+    await rm(tempDir, { force: true, recursive: true })
   }
 }

From 74d4571aa9e9c124ddee68c92e375f9b1389d7cd Mon Sep 17 00:00:00 2001
From: Aviv Keller <38299977+RedYetiDev@users.noreply.github.com>
Date: Mon, 24 Jun 2024 04:40:33 -0500
Subject: [PATCH 157/580] ci: resolve bash syntax error (#27789)

---
 .github/workflows/release-pr.yml | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/.github/workflows/release-pr.yml b/.github/workflows/release-pr.yml
index d2151ea277..f652d7684e 100644
--- a/.github/workflows/release-pr.yml
+++ b/.github/workflows/release-pr.yml
@@ -41,7 +41,9 @@ jobs:
           head_sha="$(echo "$pr" | jq -r .head.sha)"
           updated_at="$(echo "$pr" | jq -r .updated_at)"
 
-          if [[ $(date -d $updated_at) > $(date -d $COMMENT_AT) ]]; exit 1; fi
+          if [[ $(date -d "$updated_at" +%s) -gt $(date -d "$COMMENT_AT" +%s) ]]; then
+              exit 1
+          fi
           
           echo "head_sha=$head_sha" >> $GITHUB_OUTPUT
       - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7

From dc9d0fb71b6a84ed7a7ba6baefca6bcca02bc45c Mon Sep 17 00:00:00 2001
From: Julien Huang 
Date: Mon, 24 Jun 2024 11:41:02 +0200
Subject: [PATCH 158/580] docs: remove outdated tip (#27773)

---
 docs/5.community/4.contribution.md | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/docs/5.community/4.contribution.md b/docs/5.community/4.contribution.md
index a601e4a51d..3702d845a8 100644
--- a/docs/5.community/4.contribution.md
+++ b/docs/5.community/4.contribution.md
@@ -32,10 +32,6 @@ We'll do our best to follow our [internal issue decision making flowchart](https
 
 ### Send a Pull Request
 
-::Tip
-On windows, you need to clone the repository with `git clone -c core.symlinks=true https://github.com/nuxt/nuxt.git` to make symlinks work.
-::
-
 We always welcome pull requests! ❤️
 
 #### Before You Start

From 2a01abf11d741526c1c11850d0827867ef85b960 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Mon, 24 Jun 2024 10:41:12 +0100
Subject: [PATCH 159/580] chore(deps): update autofix-ci/action digest to
 dd55f44 (main) (#27783)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
 .github/workflows/autofix-docs.yml | 2 +-
 .github/workflows/autofix.yml      | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/.github/workflows/autofix-docs.yml b/.github/workflows/autofix-docs.yml
index d90a8e2f9e..3988622373 100644
--- a/.github/workflows/autofix-docs.yml
+++ b/.github/workflows/autofix-docs.yml
@@ -30,4 +30,4 @@ jobs:
       - name: Lint (docs)
         run: pnpm lint:docs:fix
 
-      - uses: autofix-ci/action@ea32e3a12414e6d3183163c3424a7d7a8631ad84
+      - uses: autofix-ci/action@dd55f44df8f7cdb7a6bf74c78677eb8acd40cd0a
diff --git a/.github/workflows/autofix.yml b/.github/workflows/autofix.yml
index 03d5a654f3..ef817dd093 100644
--- a/.github/workflows/autofix.yml
+++ b/.github/workflows/autofix.yml
@@ -52,4 +52,4 @@ jobs:
       - name: Lint (code)
         run: pnpm lint:fix
 
-      - uses: autofix-ci/action@ea32e3a12414e6d3183163c3424a7d7a8631ad84
+      - uses: autofix-ci/action@dd55f44df8f7cdb7a6bf74c78677eb8acd40cd0a

From 4dd71b6f2d882478257a1907089fc00ac1d5f4b5 Mon Sep 17 00:00:00 2001
From: Julien Huang 
Date: Mon, 24 Jun 2024 11:42:03 +0200
Subject: [PATCH 160/580] fix(nuxt): add `refresh` type in server component
 refs (#27778)

---
 packages/nuxt/src/components/templates.ts | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/packages/nuxt/src/components/templates.ts b/packages/nuxt/src/components/templates.ts
index ff55e3c7f2..d9dc134e64 100644
--- a/packages/nuxt/src/components/templates.ts
+++ b/packages/nuxt/src/components/templates.ts
@@ -112,7 +112,7 @@ export const componentsTypeTemplate = {
       ]
     })
 
-    const islandType = 'type IslandComponent = T & DefineComponent<{}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, SlotsType<{ fallback: { error: unknown } }>>'
+    const islandType = 'type IslandComponent = T & DefineComponent<{}, {refresh: () => Promise}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, SlotsType<{ fallback: { error: unknown } }>>'
     return `
 import type { DefineComponent, SlotsType } from 'vue'
 ${nuxt.options.experimental.componentIslands ? islandType : ''}

From 57b7cf5123e59b193a8a3b6583d13e13bae280a2 Mon Sep 17 00:00:00 2001
From: Michael Brevard 
Date: Mon, 24 Jun 2024 13:03:47 +0300
Subject: [PATCH 161/580] docs: warn about awaiting `useFetch`/`AsyncData` in
 wrappers (#27785)

---
 docs/2.guide/4.recipes/3.custom-usefetch.md | 6 +++++-
 docs/3.api/2.composables/use-async-data.md  | 4 ++++
 docs/3.api/2.composables/use-fetch.md       | 4 ++++
 3 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/docs/2.guide/4.recipes/3.custom-usefetch.md b/docs/2.guide/4.recipes/3.custom-usefetch.md
index e27af2712f..0aa0162db0 100644
--- a/docs/2.guide/4.recipes/3.custom-usefetch.md
+++ b/docs/2.guide/4.recipes/3.custom-usefetch.md
@@ -70,7 +70,7 @@ const { data: modules } = await useAsyncData('modules', () => $api('/modules'))
 Wrapping with [`useAsyncData`](/docs/api/composables/use-async-data) **avoid double data fetching when doing server-side rendering** (server & client on hydration).
 ::
 
-## Custom `useFetch`
+## Custom `useFetch`/`useAsyncData`
 
 Now that `$api` has the logic we want, let's create a `useAPI` composable to replace the usage of `useAsyncData` + `$api`:
 
@@ -96,6 +96,10 @@ const { data: modules } = await useAPI('/modules')
 
 ```
 
+::note
+This example demonstrates how to use a custom `useFetch`, but the same structure is identical for a custom `useAsyncData`.
+::
+
 ::callout{icon="i-simple-icons-youtube" color="red" to="https://www.youtube.com/watch?v=jXH8Tr-exhI"}
 Watch a video about custom `$fetch` and Repository Pattern in Nuxt.
 ::
diff --git a/docs/3.api/2.composables/use-async-data.md b/docs/3.api/2.composables/use-async-data.md
index b839fb1d08..24b35bb497 100644
--- a/docs/3.api/2.composables/use-async-data.md
+++ b/docs/3.api/2.composables/use-async-data.md
@@ -25,6 +25,10 @@ const { data, pending, error, refresh, clear } = await useAsyncData(
 
 ```
 
+::warning
+If you're using a custom useAsyncData wrapper, do not await it in the composable, as that can cause unexpected behavior. Please follow [this recipe](/docs/guide/recipes/custom-usefetch#custom-usefetch) for more information on how to make a custom async data fetcher.
+::
+
 ::note
 `data`, `pending`, `status` and `error` are Vue refs and they should be accessed with `.value` when used within the `
 ```
 
+::warning
+If you're using a custom useFetch wrapper, do not await it in the composable, as that can cause unexpected behavior. Please follow [this recipe](/docs/guide/recipes/custom-usefetch#custom-usefetch) for more information on how to make a custom async data fetcher.
+::
+
 ::note
 `data`, `pending`, `status` and `error` are Vue refs and they should be accessed with `.value` when used within the `
+    `, filePath)
+
+    expect(meta).toMatchInlineSnapshot(`
+      {
+        "meta": {
+          "__nuxt_dynamic_meta_key": Set {
+            "meta",
+          },
+        },
+      }
+    `)
+  })
 })
 
 describe('normalizeRoutes', () => {

From 49959fd9add7873edd140941e3e3cf05f70c93bf Mon Sep 17 00:00:00 2001
From: Dominic <67210734+rexhent@users.noreply.github.com>
Date: Wed, 26 Jun 2024 06:30:37 +1000
Subject: [PATCH 169/580] docs: update some code groups with package manager
 examples (#27791)

---
 docs/1.getting-started/12.upgrade.md     | 18 +++++++++++++++++-
 docs/1.getting-started/2.installation.md |  6 +++++-
 docs/1.getting-started/4.styling.md      | 18 +++++++++++++++++-
 docs/1.getting-started/9.prerendering.md | 18 +++++++++++++++++-
 4 files changed, 56 insertions(+), 4 deletions(-)

diff --git a/docs/1.getting-started/12.upgrade.md b/docs/1.getting-started/12.upgrade.md
index a1720402e8..760b8c306d 100644
--- a/docs/1.getting-started/12.upgrade.md
+++ b/docs/1.getting-started/12.upgrade.md
@@ -11,10 +11,26 @@ navigation.icon: i-ph-arrow-circle-up-duotone
 
 To upgrade Nuxt to the [latest release](https://github.com/nuxt/nuxt/releases), use the `nuxi upgrade` command.
 
-```bash [Terminal]
+::code-group
+
+```bash [npm]
 npx nuxi upgrade
 ```
 
+```bash [yarn]
+yarn dlx nuxi upgrade
+```
+
+```bash [pnpm]
+pnpm dlx nuxi upgrade
+```
+
+```bash [bun]
+bunx nuxi upgrade
+```
+
+::
+
 ### Nightly Release Channel
 
 To use the latest Nuxt build and test features before their release, read about the [nightly release channel](/docs/guide/going-further/nightly-release-channel) guide.
diff --git a/docs/1.getting-started/2.installation.md b/docs/1.getting-started/2.installation.md
index 1af58ad887..79c9ca8ed7 100644
--- a/docs/1.getting-started/2.installation.md
+++ b/docs/1.getting-started/2.installation.md
@@ -37,10 +37,14 @@ Open a terminal (if you're using [Visual Studio Code](https://code.visualstudio.
 
 ::code-group
 
-```bash [npx]
+```bash [npm]
 npx nuxi@latest init 
 ```
 
+```bash [yarn]
+yarn dlx nuxi@latest init 
+```
+
 ```bash [pnpm]
 pnpm dlx nuxi@latest init 
 ```
diff --git a/docs/1.getting-started/4.styling.md b/docs/1.getting-started/4.styling.md
index aac7cc8166..4df9322486 100644
--- a/docs/1.getting-started/4.styling.md
+++ b/docs/1.getting-started/4.styling.md
@@ -77,10 +77,26 @@ h1 {
 
 You can also reference stylesheets that are distributed through npm. Let's use the popular `animate.css` library as an example.
 
-```bash [Terminal]
+::code-group
+
+```bash [npm]
 npm install animate.css
 ```
 
+```bash [yarn]
+yarn add animate.css
+```
+
+```bash [pnpm]
+pnpm install animate.css
+```
+
+```bash [bun]
+bun install animate.css
+```
+
+::
+
 Then you can reference it directly in your pages, layouts and components:
 
 ```vue [app.vue]
diff --git a/docs/1.getting-started/9.prerendering.md b/docs/1.getting-started/9.prerendering.md
index ee63d7b285..e4c9cff5d3 100644
--- a/docs/1.getting-started/9.prerendering.md
+++ b/docs/1.getting-started/9.prerendering.md
@@ -14,10 +14,26 @@ Use the [`nuxi generate` command](/docs/api/commands/generate) to build and pre-
 
 This will build your site, stand up a nuxt instance, and, by default, prerender the root page `/` along with any of your site's pages it links to, any of your site's pages they link to, and so on.
 
-```bash [Terminal]
+::code-group
+
+```bash [npm]
 npx nuxi generate
 ```
 
+```bash [yarn]
+yarn dlx nuxi generate
+```
+
+```bash [pnpm]
+pnpm dlx nuxi generate
+```
+
+```bash [bun]
+bunx nuxi generate
+```
+
+::
+
 You can now deploy the `.output/public` directory to any static hosting service or preview it locally with `npx serve .output/public`.
 
 Working of the Nitro crawler:

From 07ad89cd7f6fb5ed07f9d8a9f0da734c13e24824 Mon Sep 17 00:00:00 2001
From: Daniel Roe 
Date: Wed, 26 Jun 2024 11:31:45 +0200
Subject: [PATCH 170/580] fix(kit)!: support loading nuxt 4 and drop support
 for <=2 (#27837)

---
 packages/kit/src/loader/nuxt.ts | 50 ++++++---------------------------
 1 file changed, 8 insertions(+), 42 deletions(-)

diff --git a/packages/kit/src/loader/nuxt.ts b/packages/kit/src/loader/nuxt.ts
index 85c4498313..e34f8af341 100644
--- a/packages/kit/src/loader/nuxt.ts
+++ b/packages/kit/src/loader/nuxt.ts
@@ -1,6 +1,7 @@
 import { pathToFileURL } from 'node:url'
 import { readPackageJSON, resolvePackageJSON } from 'pkg-types'
 import type { Nuxt } from '@nuxt/schema'
+import { resolve } from 'pathe'
 import { importModule, tryImportModule } from '../internal/esm'
 import type { LoadNuxtConfigOptions } from './config'
 
@@ -10,64 +11,29 @@ export interface LoadNuxtOptions extends LoadNuxtConfigOptions {
 
   /** Use lazy initialization of nuxt if set to false */
   ready?: boolean
-
-  /** @deprecated Use cwd option */
-  rootDir?: LoadNuxtConfigOptions['cwd']
-
-  /** @deprecated use overrides option */
-  config?: LoadNuxtConfigOptions['overrides']
 }
 
 export async function loadNuxt (opts: LoadNuxtOptions): Promise {
   // Backward compatibility
-  opts.cwd = opts.cwd || opts.rootDir
-  opts.overrides = opts.overrides || opts.config || {}
+  opts.cwd = resolve(opts.cwd || (opts as any).rootDir /* backwards compat */ || '.')
+  opts.overrides = opts.overrides || (opts as any).config as {} /* backwards compat */ || {}
 
   // Apply dev as config override
   opts.overrides.dev = !!opts.dev
 
-  const nearestNuxtPkg = await Promise.all(['nuxt-nightly', 'nuxt3', 'nuxt', 'nuxt-edge']
+  const nearestNuxtPkg = await Promise.all(['nuxt-nightly', 'nuxt']
     .map(pkg => resolvePackageJSON(pkg, { url: opts.cwd }).catch(() => null)))
     .then(r => (r.filter(Boolean) as string[]).sort((a, b) => b.length - a.length)[0])
   if (!nearestNuxtPkg) {
     throw new Error(`Cannot find any nuxt version from ${opts.cwd}`)
   }
   const pkg = await readPackageJSON(nearestNuxtPkg)
-  const majorVersion = pkg.version ? Number.parseInt(pkg.version.split('.')[0]) : ''
 
-  const rootDir = pathToFileURL(opts.cwd || process.cwd()).href
+  const rootDir = pathToFileURL(opts.cwd!).href
 
-  // Nuxt 3
-  if (majorVersion === 3) {
-    const { loadNuxt } = await importModule((pkg as any)._name || pkg.name, rootDir)
-    const nuxt = await loadNuxt(opts)
-    return nuxt
-  }
-
-  // Nuxt 2
-  const { loadNuxt } = await tryImportModule('nuxt-edge', rootDir) || await importModule('nuxt', rootDir)
-  const nuxt = await loadNuxt({
-    rootDir: opts.cwd,
-    for: opts.dev ? 'dev' : 'build',
-    configOverrides: opts.overrides,
-    ready: opts.ready,
-    envConfig: opts.dotenv, // TODO: Backward format conversion
-  })
-
-  // Mock new hookable methods
-  nuxt.removeHook ||= nuxt.clearHook.bind(nuxt)
-  nuxt.removeAllHooks ||= nuxt.clearHooks.bind(nuxt)
-  nuxt.hookOnce ||= (name: string, fn: (...args: any[]) => any, ...hookArgs: any[]) => {
-    const unsub = nuxt.hook(name, (...args: any[]) => {
-      unsub()
-      return fn(...args)
-    }, ...hookArgs)
-    return unsub
-  }
-  // https://github.com/nuxt/nuxt/tree/main/packages/kit/src/module/define.ts#L111-L113
-  nuxt.hooks ||= nuxt
-
-  return nuxt as Nuxt
+  const { loadNuxt } = await importModule((pkg as any)._name || pkg.name, rootDir)
+  const nuxt = await loadNuxt(opts)
+  return nuxt
 }
 
 export async function buildNuxt (nuxt: Nuxt): Promise {

From e9a531eb1f1f8b23150a7be0e81125171d028398 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Wed, 26 Jun 2024 11:51:13 +0200
Subject: [PATCH 171/580] chore(deps): update all non-major dependencies (main)
 (#27825)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Roe 
---
 package.json                       |   2 +-
 packages/ui-templates/package.json |   2 +-
 pnpm-lock.yaml                     | 238 ++++++++++++++---------------
 3 files changed, 118 insertions(+), 124 deletions(-)

diff --git a/package.json b/package.json
index a2039fce37..bab6cc7fdd 100644
--- a/package.json
+++ b/package.json
@@ -53,7 +53,7 @@
     "@nuxt/webpack-builder": "workspace:*",
     "@testing-library/vue": "8.1.0",
     "@types/eslint__js": "8.42.3",
-    "@types/node": "20.14.8",
+    "@types/node": "20.14.9",
     "@types/semver": "7.5.8",
     "@unhead/schema": "1.9.14",
     "@vitejs/plugin-vue": "5.0.4",
diff --git a/packages/ui-templates/package.json b/packages/ui-templates/package.json
index c7ad01cac1..21ebba1938 100644
--- a/packages/ui-templates/package.json
+++ b/packages/ui-templates/package.json
@@ -21,7 +21,7 @@
   "devDependencies": {
     "@types/html-minifier": "4.0.5",
     "@unocss/reset": "0.61.0",
-    "critters": "0.0.23",
+    "critters": "0.0.24",
     "execa": "9.3.0",
     "globby": "14.0.1",
     "html-minifier": "4.0.0",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index d88712fc53..1ad7ac140c 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -31,7 +31,7 @@ importers:
         version: link:packages/kit
       '@nuxt/test-utils':
         specifier: 3.13.1
-        version: 3.13.1(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.30)(vue@3.4.30(typescript@5.5.2)))(@vue/test-utils@2.4.6)(h3@1.12.0)(happy-dom@14.12.3)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.45.0)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.8)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0))(vue-router@4.4.0(vue@3.4.30(typescript@5.5.2)))(vue@3.4.30(typescript@5.5.2))
+        version: 3.13.1(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.30)(vue@3.4.30(typescript@5.5.2)))(@vue/test-utils@2.4.6)(h3@1.12.0)(happy-dom@14.12.3)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.45.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.9)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0))(vue-router@4.4.0(vue@3.4.30(typescript@5.5.2)))(vue@3.4.30(typescript@5.5.2))
       '@nuxt/webpack-builder':
         specifier: workspace:*
         version: link:packages/webpack
@@ -42,8 +42,8 @@ importers:
         specifier: 8.42.3
         version: 8.42.3
       '@types/node':
-        specifier: 20.14.8
-        version: 20.14.8
+        specifier: 20.14.9
+        version: 20.14.9
       '@types/semver':
         specifier: 7.5.8
         version: 7.5.8
@@ -52,10 +52,10 @@ importers:
         version: 1.9.14
       '@vitejs/plugin-vue':
         specifier: 5.0.4
-        version: 5.0.4(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0))(vue@3.4.30(typescript@5.5.2))
+        version: 5.0.4(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))(vue@3.4.30(typescript@5.5.2))
       '@vitest/coverage-v8':
         specifier: 1.6.0
-        version: 1.6.0(vitest@1.6.0(@types/node@20.14.8)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0))
+        version: 1.6.0(vitest@1.6.0(@types/node@20.14.9)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0))
       '@vue/test-utils':
         specifier: 2.4.6
         version: 2.4.6
@@ -139,10 +139,10 @@ importers:
         version: 1.5.3
       vitest:
         specifier: 1.6.0
-        version: 1.6.0(@types/node@20.14.8)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0)
+        version: 1.6.0(@types/node@20.14.9)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0)
       vitest-environment-nuxt:
         specifier: 1.0.0
-        version: 1.0.0(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.30)(vue@3.4.30(typescript@5.5.2)))(@vue/test-utils@2.4.6)(h3@1.12.0)(happy-dom@14.12.3)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.45.0)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.8)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0))(vue-router@4.4.0(vue@3.4.30(typescript@5.5.2)))(vue@3.4.30(typescript@5.5.2))
+        version: 1.0.0(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.30)(vue@3.4.30(typescript@5.5.2)))(@vue/test-utils@2.4.6)(h3@1.12.0)(happy-dom@14.12.3)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.45.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.9)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0))(vue-router@4.4.0(vue@3.4.30(typescript@5.5.2)))(vue@3.4.30(typescript@5.5.2))
       vue:
         specifier: 3.4.30
         version: 3.4.30(typescript@5.5.2)
@@ -227,10 +227,10 @@ importers:
         version: 2.0.0(sass@1.69.4)(typescript@5.5.2)
       vite:
         specifier: 5.3.1
-        version: 5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0)
+        version: 5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0)
       vitest:
         specifier: 1.6.0
-        version: 1.6.0(@types/node@20.14.8)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0)
+        version: 1.6.0(@types/node@20.14.9)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0)
       webpack:
         specifier: 5.92.1
         version: 5.92.1
@@ -242,7 +242,7 @@ importers:
         version: 2.0.2
       '@nuxt/devtools':
         specifier: ^1.3.6
-        version: 1.3.6(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0))
+        version: 1.3.6(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))
       '@nuxt/kit':
         specifier: workspace:*
         version: link:../kit
@@ -257,7 +257,7 @@ importers:
         version: link:../vite
       '@types/node':
         specifier: ^14.18.0 || >=16.10.0
-        version: 20.14.8
+        version: 20.14.9
       '@unhead/dom':
         specifier: ^1.9.14
         version: 1.9.14
@@ -411,7 +411,7 @@ importers:
     devDependencies:
       '@nuxt/scripts':
         specifier: 0.5.1
-        version: 0.5.1(@nuxt/devtools@1.3.6(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0)))(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(@vue/compiler-core@3.4.30)(ioredis@5.3.2)(nuxt@packages+nuxt)(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0))(vue@3.4.30(typescript@5.5.2))(webpack@5.92.1(esbuild@0.21.5))
+        version: 0.5.1(@nuxt/devtools@1.3.6(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0)))(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(@vue/compiler-core@3.4.30)(ioredis@5.3.2)(nuxt@packages+nuxt)(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))(vue@3.4.30(typescript@5.5.2))(webpack@5.92.1(esbuild@0.21.5))
       '@nuxt/ui-templates':
         specifier: workspace:*
         version: link:../ui-templates
@@ -423,7 +423,7 @@ importers:
         version: 1.0.5
       '@vitejs/plugin-vue':
         specifier: 5.0.4
-        version: 5.0.4(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0))(vue@3.4.30(typescript@5.5.2))
+        version: 5.0.4(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))(vue@3.4.30(typescript@5.5.2))
       '@vue/compiler-sfc':
         specifier: 3.4.30
         version: 3.4.30
@@ -432,10 +432,10 @@ importers:
         version: 2.0.0(sass@1.69.4)(typescript@5.5.2)
       vite:
         specifier: 5.3.1
-        version: 5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0)
+        version: 5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0)
       vitest:
         specifier: 1.6.0
-        version: 1.6.0(@types/node@20.14.8)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0)
+        version: 1.6.0(@types/node@20.14.9)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0)
 
   packages/schema:
     dependencies:
@@ -496,10 +496,10 @@ importers:
         version: 1.9.14
       '@vitejs/plugin-vue':
         specifier: 5.0.4
-        version: 5.0.4(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0))(vue@3.4.30(typescript@5.5.2))
+        version: 5.0.4(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))(vue@3.4.30(typescript@5.5.2))
       '@vitejs/plugin-vue-jsx':
         specifier: 4.0.0
-        version: 4.0.0(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0))(vue@3.4.30(typescript@5.5.2))
+        version: 4.0.0(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))(vue@3.4.30(typescript@5.5.2))
       '@vue/compiler-core':
         specifier: 3.4.30
         version: 3.4.30
@@ -538,7 +538,7 @@ importers:
         version: 1.9.0
       vite:
         specifier: 5.3.1
-        version: 5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0)
+        version: 5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0)
       vue:
         specifier: 3.4.30
         version: 3.4.30(typescript@5.5.2)
@@ -567,8 +567,8 @@ importers:
         specifier: 0.61.0
         version: 0.61.0
       critters:
-        specifier: 0.0.23
-        version: 0.0.23
+        specifier: 0.0.24
+        version: 0.0.24
       execa:
         specifier: 9.3.0
         version: 9.3.0
@@ -595,10 +595,10 @@ importers:
         version: 1.3.0
       unocss:
         specifier: 0.61.0
-        version: 0.61.0(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0))
+        version: 0.61.0(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))
       vite:
         specifier: 5.3.1
-        version: 5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0)
+        version: 5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0)
 
   packages/vite:
     dependencies:
@@ -610,10 +610,10 @@ importers:
         version: 5.0.7(rollup@4.18.0)
       '@vitejs/plugin-vue':
         specifier: ^5.0.4
-        version: 5.0.4(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0))(vue@3.4.30(typescript@5.5.2))
+        version: 5.0.4(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))(vue@3.4.30(typescript@5.5.2))
       '@vitejs/plugin-vue-jsx':
         specifier: ^4.0.0
-        version: 4.0.0(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0))(vue@3.4.30(typescript@5.5.2))
+        version: 4.0.0(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))(vue@3.4.30(typescript@5.5.2))
       autoprefixer:
         specifier: ^10.4.19
         version: 10.4.19(postcss@8.4.38)
@@ -691,13 +691,13 @@ importers:
         version: 1.10.1
       vite:
         specifier: 5.3.1
-        version: 5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0)
+        version: 5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0)
       vite-node:
         specifier: ^1.6.0
-        version: 1.6.0(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0)
+        version: 1.6.0(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0)
       vite-plugin-checker:
         specifier: ^0.6.4
-        version: 0.6.4(eslint@9.5.0)(optionator@0.9.3)(typescript@5.5.2)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0))(vue-tsc@2.0.22(typescript@5.5.2))
+        version: 0.6.4(eslint@9.5.0)(optionator@0.9.3)(typescript@5.5.2)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))(vue-tsc@2.0.22(typescript@5.5.2))
       vue-bundle-renderer:
         specifier: ^2.1.0
         version: 2.1.0
@@ -947,7 +947,7 @@ importers:
         version: 0.10.0(rollup@4.18.0)(vue-router@4.4.0(vue@3.4.30(typescript@5.5.2)))(vue@3.4.30(typescript@5.5.2))
       vitest:
         specifier: 1.6.0
-        version: 1.6.0(@types/node@20.14.8)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0)
+        version: 1.6.0(@types/node@20.14.9)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0)
       vue:
         specifier: 3.4.30
         version: 3.4.30(typescript@5.5.2)
@@ -2515,8 +2515,8 @@ packages:
   '@types/node-sass@4.11.6':
     resolution: {integrity: sha512-Qkf5Fs9zzsXchenUY7oVdIHyv8FtPgqIXqOJzhh3FDqpYjqvc/gtZ3hlZVFmKQhl7wyI4+WkRbYufYC5pfY7iw==}
 
-  '@types/node@20.14.8':
-    resolution: {integrity: sha512-DO+2/jZinXfROG7j7WKFn/3C6nFwxy2lLpgLjEXJz+0XKphZlTLJ14mo8Vfg8X5BWN6XjyESXq+LcYdT7tR3bA==}
+  '@types/node@20.14.9':
+    resolution: {integrity: sha512-06OCtnTXtWOZBJlRApleWndH4JsRVs1pDCc8dLSQp+7PpUpX3ePdHyeNSFTeSe7FtKyQkrlPvHwJOW3SLd8Oyg==}
 
   '@types/normalize-package-data@2.4.4':
     resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==}
@@ -3633,8 +3633,8 @@ packages:
   create-require@1.1.1:
     resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==}
 
-  critters@0.0.23:
-    resolution: {integrity: sha512-/MCsQbuzTPA/ZTOjjyr2Na5o3lRpr8vd0MZE8tMP0OBNg/VrLxWHteVKalQ8KR+fBmUadbJLdoyEz9sT+q84qg==}
+  critters@0.0.24:
+    resolution: {integrity: sha512-Oyqew0FGM0wYUSNqR0L6AteO5MpMoUU0rhKRieXeiKs+PmRTxiJMyaunYB2KF6fQ3dzChXKCpbFOEJx3OQ1v/Q==}
 
   croner@8.0.1:
     resolution: {integrity: sha512-Hq1+lXVgjJjcS/U+uk6+yVmtxami0r0b+xVtlGyABgdz110l/kOnHWvlSI7nVzrTl8GCdZHwZS4pbBFT7hSL/g==}
@@ -7520,10 +7520,6 @@ packages:
   yallist@4.0.0:
     resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
 
-  yaml@2.3.4:
-    resolution: {integrity: sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==}
-    engines: {node: '>= 14'}
-
   yaml@2.4.5:
     resolution: {integrity: sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==}
     engines: {node: '>= 14'}
@@ -8229,7 +8225,7 @@ snapshots:
       '@jest/schemas': 29.6.3
       '@types/istanbul-lib-coverage': 2.0.5
       '@types/istanbul-reports': 3.0.3
-      '@types/node': 20.14.8
+      '@types/node': 20.14.9
       '@types/yargs': 17.0.28
       chalk: 4.1.2
 
@@ -8385,33 +8381,33 @@ snapshots:
 
   '@nuxt/devalue@2.0.2': {}
 
-  '@nuxt/devtools-kit@1.3.3(nuxt@packages+nuxt)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0))':
+  '@nuxt/devtools-kit@1.3.3(nuxt@packages+nuxt)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))':
     dependencies:
       '@nuxt/kit': link:packages/kit
       '@nuxt/schema': link:packages/schema
       execa: 7.2.0
       nuxt: link:packages/nuxt
-      vite: 5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0)
+      vite: 5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0)
 
-  '@nuxt/devtools-kit@1.3.6(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0))':
+  '@nuxt/devtools-kit@1.3.6(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))':
     dependencies:
       '@nuxt/kit': link:packages/kit
       '@nuxt/schema': link:packages/schema
       execa: 7.2.0
-      vite: 5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0)
+      vite: 5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0)
 
-  '@nuxt/devtools-ui-kit@1.3.3(@nuxt/devtools@1.3.6(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0)))(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(@vue/compiler-core@3.4.30)(nuxt@packages+nuxt)(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0))(vue@3.4.30(typescript@5.5.2))(webpack@5.92.1(esbuild@0.21.5))':
+  '@nuxt/devtools-ui-kit@1.3.3(@nuxt/devtools@1.3.6(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0)))(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(@vue/compiler-core@3.4.30)(nuxt@packages+nuxt)(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))(vue@3.4.30(typescript@5.5.2))(webpack@5.92.1(esbuild@0.21.5))':
     dependencies:
       '@iconify-json/carbon': 1.1.35
       '@iconify-json/logos': 1.1.43
       '@iconify-json/ri': 1.1.20
       '@iconify-json/tabler': 1.1.113
-      '@nuxt/devtools': 1.3.6(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0))
-      '@nuxt/devtools-kit': 1.3.3(nuxt@packages+nuxt)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0))
+      '@nuxt/devtools': 1.3.6(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))
+      '@nuxt/devtools-kit': 1.3.3(nuxt@packages+nuxt)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))
       '@nuxt/kit': link:packages/kit
       '@nuxtjs/color-mode': 3.4.1
       '@unocss/core': 0.60.4
-      '@unocss/nuxt': 0.60.4(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0))(webpack@5.92.1(esbuild@0.21.5))
+      '@unocss/nuxt': 0.60.4(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))(webpack@5.92.1(esbuild@0.21.5))
       '@unocss/preset-attributify': 0.60.4
       '@unocss/preset-icons': 0.60.4
       '@unocss/preset-mini': 0.60.4
@@ -8422,7 +8418,7 @@ snapshots:
       defu: 6.1.4
       focus-trap: 7.5.4
       splitpanes: 3.1.5
-      unocss: 0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0))
+      unocss: 0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))
       v-lazy-show: 0.2.4(@vue/compiler-core@3.4.30)
     transitivePeerDependencies:
       - '@unocss/webpack'
@@ -8460,13 +8456,13 @@ snapshots:
       rc9: 2.1.2
       semver: 7.6.2
 
-  '@nuxt/devtools@1.3.6(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0))':
+  '@nuxt/devtools@1.3.6(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))':
     dependencies:
       '@antfu/utils': 0.7.8
-      '@nuxt/devtools-kit': 1.3.6(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0))
+      '@nuxt/devtools-kit': 1.3.6(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))
       '@nuxt/devtools-wizard': 1.3.6
       '@nuxt/kit': link:packages/kit
-      '@vue/devtools-core': 7.3.3(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0))
+      '@vue/devtools-core': 7.3.3(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))
       '@vue/devtools-kit': 7.3.3
       birpc: 0.2.17
       consola: 3.2.3
@@ -8495,9 +8491,9 @@ snapshots:
       simple-git: 3.25.0
       sirv: 2.0.4
       unimport: 3.7.2(rollup@4.18.0)
-      vite: 5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0)
-      vite-plugin-inspect: 0.8.4(@nuxt/kit@packages+kit)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0))
-      vite-plugin-vue-inspector: 5.1.2(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0))
+      vite: 5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0)
+      vite-plugin-inspect: 0.8.4(@nuxt/kit@packages+kit)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))
+      vite-plugin-vue-inspector: 5.1.2(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))
       which: 3.0.1
       ws: 8.17.1
     transitivePeerDependencies:
@@ -8548,10 +8544,10 @@ snapshots:
       string-width: 4.2.3
       webpack: 5.92.1
 
-  '@nuxt/scripts@0.5.1(@nuxt/devtools@1.3.6(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0)))(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(@vue/compiler-core@3.4.30)(ioredis@5.3.2)(nuxt@packages+nuxt)(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0))(vue@3.4.30(typescript@5.5.2))(webpack@5.92.1(esbuild@0.21.5))':
+  '@nuxt/scripts@0.5.1(@nuxt/devtools@1.3.6(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0)))(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(@vue/compiler-core@3.4.30)(ioredis@5.3.2)(nuxt@packages+nuxt)(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))(vue@3.4.30(typescript@5.5.2))(webpack@5.92.1(esbuild@0.21.5))':
     dependencies:
-      '@nuxt/devtools-kit': 1.3.6(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0))
-      '@nuxt/devtools-ui-kit': 1.3.3(@nuxt/devtools@1.3.6(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0)))(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(@vue/compiler-core@3.4.30)(nuxt@packages+nuxt)(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0))(vue@3.4.30(typescript@5.5.2))(webpack@5.92.1(esbuild@0.21.5))
+      '@nuxt/devtools-kit': 1.3.6(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))
+      '@nuxt/devtools-ui-kit': 1.3.3(@nuxt/devtools@1.3.6(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0)))(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(@vue/compiler-core@3.4.30)(nuxt@packages+nuxt)(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))(vue@3.4.30(typescript@5.5.2))(webpack@5.92.1(esbuild@0.21.5))
       '@nuxt/kit': link:packages/kit
       '@types/google.maps': 3.55.9
       '@types/stripe-v3': 3.1.33
@@ -8636,7 +8632,7 @@ snapshots:
       rc9: 2.1.2
       std-env: 3.7.0
 
-  '@nuxt/test-utils@3.13.1(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.30)(vue@3.4.30(typescript@5.5.2)))(@vue/test-utils@2.4.6)(h3@1.12.0)(happy-dom@14.12.3)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.45.0)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.8)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0))(vue-router@4.4.0(vue@3.4.30(typescript@5.5.2)))(vue@3.4.30(typescript@5.5.2))':
+  '@nuxt/test-utils@3.13.1(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.30)(vue@3.4.30(typescript@5.5.2)))(@vue/test-utils@2.4.6)(h3@1.12.0)(happy-dom@14.12.3)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.45.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.9)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0))(vue-router@4.4.0(vue@3.4.30(typescript@5.5.2)))(vue@3.4.30(typescript@5.5.2))':
     dependencies:
       '@nuxt/kit': link:packages/kit
       '@nuxt/schema': link:packages/schema
@@ -8662,8 +8658,8 @@ snapshots:
       ufo: 1.5.3
       unenv: 1.9.0
       unplugin: 1.10.1
-      vite: 5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0)
-      vitest-environment-nuxt: 1.0.0(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.30)(vue@3.4.30(typescript@5.5.2)))(@vue/test-utils@2.4.6)(h3@1.12.0)(happy-dom@14.12.3)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.45.0)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.8)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0))(vue-router@4.4.0(vue@3.4.30(typescript@5.5.2)))(vue@3.4.30(typescript@5.5.2))
+      vite: 5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0)
+      vitest-environment-nuxt: 1.0.0(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.30)(vue@3.4.30(typescript@5.5.2)))(@vue/test-utils@2.4.6)(h3@1.12.0)(happy-dom@14.12.3)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.45.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.9)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0))(vue-router@4.4.0(vue@3.4.30(typescript@5.5.2)))(vue@3.4.30(typescript@5.5.2))
       vue: 3.4.30(typescript@5.5.2)
       vue-router: 4.4.0(vue@3.4.30(typescript@5.5.2))
     optionalDependencies:
@@ -8671,7 +8667,7 @@ snapshots:
       '@vue/test-utils': 2.4.6
       happy-dom: 14.12.3
       playwright-core: 1.45.0
-      vitest: 1.6.0(@types/node@20.14.8)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0)
+      vitest: 1.6.0(@types/node@20.14.9)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0)
     transitivePeerDependencies:
       - magicast
 
@@ -9064,14 +9060,14 @@ snapshots:
 
   '@types/clean-css@4.2.11':
     dependencies:
-      '@types/node': 20.14.8
+      '@types/node': 20.14.9
       source-map: 0.6.1
 
   '@types/clear@0.1.4': {}
 
   '@types/connect@3.4.37':
     dependencies:
-      '@types/node': 20.14.8
+      '@types/node': 20.14.9
 
   '@types/debug@4.1.12':
     dependencies:
@@ -9113,7 +9109,7 @@ snapshots:
 
   '@types/http-proxy@1.17.14':
     dependencies:
-      '@types/node': 20.14.8
+      '@types/node': 20.14.9
 
   '@types/istanbul-lib-coverage@2.0.5': {}
 
@@ -9141,9 +9137,9 @@ snapshots:
 
   '@types/node-sass@4.11.6':
     dependencies:
-      '@types/node': 20.14.8
+      '@types/node': 20.14.9
 
-  '@types/node@20.14.8':
+  '@types/node@20.14.9':
     dependencies:
       undici-types: 5.26.5
 
@@ -9159,7 +9155,7 @@ snapshots:
 
   '@types/sass-loader@8.0.8':
     dependencies:
-      '@types/node': 20.14.8
+      '@types/node': 20.14.9
       '@types/node-sass': 4.11.6
       '@types/webpack': 4.41.34
       sass: 1.69.4
@@ -9186,7 +9182,7 @@ snapshots:
 
   '@types/webpack-bundle-analyzer@4.7.0':
     dependencies:
-      '@types/node': 20.14.8
+      '@types/node': 20.14.9
       tapable: 2.2.1
       webpack: 5.92.1
     transitivePeerDependencies:
@@ -9208,13 +9204,13 @@ snapshots:
 
   '@types/webpack-sources@3.2.1':
     dependencies:
-      '@types/node': 20.14.8
+      '@types/node': 20.14.9
       '@types/source-list-map': 0.1.4
       source-map: 0.7.4
 
   '@types/webpack@4.41.34':
     dependencies:
-      '@types/node': 20.14.8
+      '@types/node': 20.14.9
       '@types/tapable': 1.0.10
       '@types/uglify-js': 3.17.3
       '@types/webpack-sources': 3.2.1
@@ -9345,23 +9341,23 @@ snapshots:
       unhead: 1.9.14
       vue: 3.4.30(typescript@5.5.2)
 
-  '@unocss/astro@0.60.4(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0))':
+  '@unocss/astro@0.60.4(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))':
     dependencies:
       '@unocss/core': 0.60.4
       '@unocss/reset': 0.60.4
-      '@unocss/vite': 0.60.4(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0))
+      '@unocss/vite': 0.60.4(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))
     optionalDependencies:
-      vite: 5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0)
+      vite: 5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0)
     transitivePeerDependencies:
       - rollup
 
-  '@unocss/astro@0.61.0(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0))':
+  '@unocss/astro@0.61.0(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))':
     dependencies:
       '@unocss/core': 0.61.0
       '@unocss/reset': 0.61.0
-      '@unocss/vite': 0.61.0(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0))
+      '@unocss/vite': 0.61.0(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))
     optionalDependencies:
-      vite: 5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0)
+      vite: 5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0)
     transitivePeerDependencies:
       - rollup
 
@@ -9437,7 +9433,7 @@ snapshots:
       gzip-size: 6.0.0
       sirv: 2.0.4
 
-  '@unocss/nuxt@0.60.4(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0))(webpack@5.92.1(esbuild@0.21.5))':
+  '@unocss/nuxt@0.60.4(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))(webpack@5.92.1(esbuild@0.21.5))':
     dependencies:
       '@nuxt/kit': link:packages/kit
       '@unocss/config': 0.60.4
@@ -9450,9 +9446,9 @@ snapshots:
       '@unocss/preset-web-fonts': 0.60.4
       '@unocss/preset-wind': 0.60.4
       '@unocss/reset': 0.60.4
-      '@unocss/vite': 0.60.4(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0))
+      '@unocss/vite': 0.60.4(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))
       '@unocss/webpack': 0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5))
-      unocss: 0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0))
+      unocss: 0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))
     transitivePeerDependencies:
       - postcss
       - rollup
@@ -9642,7 +9638,7 @@ snapshots:
     dependencies:
       '@unocss/core': 0.61.0
 
-  '@unocss/vite@0.60.4(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0))':
+  '@unocss/vite@0.60.4(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))':
     dependencies:
       '@ampproject/remapping': 2.3.0
       '@rollup/pluginutils': 5.1.0(rollup@4.18.0)
@@ -9654,11 +9650,11 @@ snapshots:
       chokidar: 3.6.0
       fast-glob: 3.3.2
       magic-string: 0.30.10
-      vite: 5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0)
+      vite: 5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0)
     transitivePeerDependencies:
       - rollup
 
-  '@unocss/vite@0.61.0(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0))':
+  '@unocss/vite@0.61.0(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))':
     dependencies:
       '@ampproject/remapping': 2.3.0
       '@rollup/pluginutils': 5.1.0(rollup@4.18.0)
@@ -9670,7 +9666,7 @@ snapshots:
       chokidar: 3.6.0
       fast-glob: 3.3.2
       magic-string: 0.30.10
-      vite: 5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0)
+      vite: 5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0)
     transitivePeerDependencies:
       - rollup
 
@@ -9707,22 +9703,22 @@ snapshots:
       - encoding
       - supports-color
 
-  '@vitejs/plugin-vue-jsx@4.0.0(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0))(vue@3.4.30(typescript@5.5.2))':
+  '@vitejs/plugin-vue-jsx@4.0.0(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))(vue@3.4.30(typescript@5.5.2))':
     dependencies:
       '@babel/core': 7.24.7
       '@babel/plugin-transform-typescript': 7.24.7(@babel/core@7.24.7)
       '@vue/babel-plugin-jsx': 1.2.2(@babel/core@7.24.7)
-      vite: 5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0)
+      vite: 5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0)
       vue: 3.4.30(typescript@5.5.2)
     transitivePeerDependencies:
       - supports-color
 
-  '@vitejs/plugin-vue@5.0.4(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0))(vue@3.4.30(typescript@5.5.2))':
+  '@vitejs/plugin-vue@5.0.4(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))(vue@3.4.30(typescript@5.5.2))':
     dependencies:
-      vite: 5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0)
+      vite: 5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0)
       vue: 3.4.30(typescript@5.5.2)
 
-  '@vitest/coverage-v8@1.6.0(vitest@1.6.0(@types/node@20.14.8)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0))':
+  '@vitest/coverage-v8@1.6.0(vitest@1.6.0(@types/node@20.14.9)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0))':
     dependencies:
       '@ampproject/remapping': 2.3.0
       '@bcoe/v8-coverage': 0.2.3
@@ -9737,7 +9733,7 @@ snapshots:
       std-env: 3.7.0
       strip-literal: 2.1.0
       test-exclude: 6.0.0
-      vitest: 1.6.0(@types/node@20.14.8)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0)
+      vitest: 1.6.0(@types/node@20.14.9)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0)
     transitivePeerDependencies:
       - supports-color
 
@@ -9864,14 +9860,14 @@ snapshots:
 
   '@vue/devtools-api@6.6.3': {}
 
-  '@vue/devtools-core@7.3.3(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0))':
+  '@vue/devtools-core@7.3.3(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))':
     dependencies:
       '@vue/devtools-kit': 7.3.3
       '@vue/devtools-shared': 7.3.4
       mitt: 3.0.1
       nanoid: 3.3.7
       pathe: 1.1.2
-      vite-hot-client: 0.2.3(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0))
+      vite-hot-client: 0.2.3(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))
     transitivePeerDependencies:
       - vite
 
@@ -10450,7 +10446,7 @@ snapshots:
       scule: 1.3.0
       semver: 7.6.2
       std-env: 3.7.0
-      yaml: 2.3.4
+      yaml: 2.4.5
     transitivePeerDependencies:
       - magicast
 
@@ -10629,7 +10625,7 @@ snapshots:
 
   create-require@1.1.1: {}
 
-  critters@0.0.23:
+  critters@0.0.24:
     dependencies:
       chalk: 4.1.2
       css-select: 5.1.0
@@ -12140,7 +12136,7 @@ snapshots:
   jest-util@29.7.0:
     dependencies:
       '@jest/types': 29.6.3
-      '@types/node': 20.14.8
+      '@types/node': 20.14.9
       chalk: 4.1.2
       ci-info: 3.9.0
       graceful-fs: 4.2.11
@@ -12148,13 +12144,13 @@ snapshots:
 
   jest-worker@27.5.1:
     dependencies:
-      '@types/node': 20.14.8
+      '@types/node': 20.14.9
       merge-stream: 2.0.0
       supports-color: 8.1.1
 
   jest-worker@29.7.0:
     dependencies:
-      '@types/node': 20.14.8
+      '@types/node': 20.14.9
       jest-util: 29.7.0
       merge-stream: 2.0.0
       supports-color: 8.1.1
@@ -14651,9 +14647,9 @@ snapshots:
 
   universalify@2.0.0: {}
 
-  unocss@0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0)):
+  unocss@0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0)):
     dependencies:
-      '@unocss/astro': 0.60.4(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0))
+      '@unocss/astro': 0.60.4(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))
       '@unocss/cli': 0.60.4(rollup@4.18.0)
       '@unocss/core': 0.60.4
       '@unocss/extractor-arbitrary-variants': 0.60.4
@@ -14672,18 +14668,18 @@ snapshots:
       '@unocss/transformer-compile-class': 0.60.4
       '@unocss/transformer-directives': 0.60.4
       '@unocss/transformer-variant-group': 0.60.4
-      '@unocss/vite': 0.60.4(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0))
+      '@unocss/vite': 0.60.4(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))
     optionalDependencies:
       '@unocss/webpack': 0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5))
-      vite: 5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0)
+      vite: 5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0)
     transitivePeerDependencies:
       - postcss
       - rollup
       - supports-color
 
-  unocss@0.61.0(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0)):
+  unocss@0.61.0(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0)):
     dependencies:
-      '@unocss/astro': 0.61.0(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0))
+      '@unocss/astro': 0.61.0(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))
       '@unocss/cli': 0.61.0(rollup@4.18.0)
       '@unocss/core': 0.61.0
       '@unocss/extractor-arbitrary-variants': 0.61.0
@@ -14702,9 +14698,9 @@ snapshots:
       '@unocss/transformer-compile-class': 0.61.0
       '@unocss/transformer-directives': 0.61.0
       '@unocss/transformer-variant-group': 0.61.0
-      '@unocss/vite': 0.61.0(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0))
+      '@unocss/vite': 0.61.0(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))
     optionalDependencies:
-      vite: 5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0)
+      vite: 5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0)
     transitivePeerDependencies:
       - postcss
       - rollup
@@ -14842,17 +14838,17 @@ snapshots:
       unist-util-stringify-position: 4.0.0
       vfile-message: 4.0.2
 
-  vite-hot-client@0.2.3(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0)):
+  vite-hot-client@0.2.3(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0)):
     dependencies:
-      vite: 5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0)
+      vite: 5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0)
 
-  vite-node@1.6.0(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0):
+  vite-node@1.6.0(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0):
     dependencies:
       cac: 6.7.14
       debug: 4.3.5
       pathe: 1.1.2
       picocolors: 1.0.1
-      vite: 5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0)
+      vite: 5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0)
     transitivePeerDependencies:
       - '@types/node'
       - less
@@ -14863,7 +14859,7 @@ snapshots:
       - supports-color
       - terser
 
-  vite-plugin-checker@0.6.4(eslint@9.5.0)(optionator@0.9.3)(typescript@5.5.2)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0))(vue-tsc@2.0.22(typescript@5.5.2)):
+  vite-plugin-checker@0.6.4(eslint@9.5.0)(optionator@0.9.3)(typescript@5.5.2)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))(vue-tsc@2.0.22(typescript@5.5.2)):
     dependencies:
       '@babel/code-frame': 7.24.7
       ansi-escapes: 4.3.2
@@ -14876,7 +14872,7 @@ snapshots:
       semver: 7.6.2
       strip-ansi: 6.0.1
       tiny-invariant: 1.3.1
-      vite: 5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0)
+      vite: 5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0)
       vscode-languageclient: 7.0.0
       vscode-languageserver: 7.0.0
       vscode-languageserver-textdocument: 1.0.11
@@ -14887,7 +14883,7 @@ snapshots:
       typescript: 5.5.2
       vue-tsc: 2.0.22(typescript@5.5.2)
 
-  vite-plugin-inspect@0.8.4(@nuxt/kit@packages+kit)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0)):
+  vite-plugin-inspect@0.8.4(@nuxt/kit@packages+kit)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0)):
     dependencies:
       '@antfu/utils': 0.7.8
       '@rollup/pluginutils': 5.1.0(rollup@4.18.0)
@@ -14898,14 +14894,14 @@ snapshots:
       perfect-debounce: 1.0.0
       picocolors: 1.0.1
       sirv: 2.0.4
-      vite: 5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0)
+      vite: 5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0)
     optionalDependencies:
       '@nuxt/kit': link:packages/kit
     transitivePeerDependencies:
       - rollup
       - supports-color
 
-  vite-plugin-vue-inspector@5.1.2(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0)):
+  vite-plugin-vue-inspector@5.1.2(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0)):
     dependencies:
       '@babel/core': 7.24.7
       '@babel/plugin-proposal-decorators': 7.23.2(@babel/core@7.24.7)
@@ -14916,24 +14912,24 @@ snapshots:
       '@vue/compiler-dom': 3.4.30
       kolorist: 1.8.0
       magic-string: 0.30.10
-      vite: 5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0)
+      vite: 5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0)
     transitivePeerDependencies:
       - supports-color
 
-  vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0):
+  vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0):
     dependencies:
       esbuild: 0.21.5
       postcss: 8.4.38
       rollup: 4.18.0
     optionalDependencies:
-      '@types/node': 20.14.8
+      '@types/node': 20.14.9
       fsevents: 2.3.3
       sass: 1.69.4
       terser: 5.27.0
 
-  vitest-environment-nuxt@1.0.0(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.30)(vue@3.4.30(typescript@5.5.2)))(@vue/test-utils@2.4.6)(h3@1.12.0)(happy-dom@14.12.3)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.45.0)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.8)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0))(vue-router@4.4.0(vue@3.4.30(typescript@5.5.2)))(vue@3.4.30(typescript@5.5.2)):
+  vitest-environment-nuxt@1.0.0(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.30)(vue@3.4.30(typescript@5.5.2)))(@vue/test-utils@2.4.6)(h3@1.12.0)(happy-dom@14.12.3)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.45.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.9)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0))(vue-router@4.4.0(vue@3.4.30(typescript@5.5.2)))(vue@3.4.30(typescript@5.5.2)):
     dependencies:
-      '@nuxt/test-utils': 3.13.1(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.30)(vue@3.4.30(typescript@5.5.2)))(@vue/test-utils@2.4.6)(h3@1.12.0)(happy-dom@14.12.3)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.45.0)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.8)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0))(vue-router@4.4.0(vue@3.4.30(typescript@5.5.2)))(vue@3.4.30(typescript@5.5.2))
+      '@nuxt/test-utils': 3.13.1(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.30)(vue@3.4.30(typescript@5.5.2)))(@vue/test-utils@2.4.6)(h3@1.12.0)(happy-dom@14.12.3)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.45.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.9)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0))(vue-router@4.4.0(vue@3.4.30(typescript@5.5.2)))(vue@3.4.30(typescript@5.5.2))
     transitivePeerDependencies:
       - '@cucumber/cucumber'
       - '@jest/globals'
@@ -14952,7 +14948,7 @@ snapshots:
       - vue
       - vue-router
 
-  vitest@1.6.0(@types/node@20.14.8)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0):
+  vitest@1.6.0(@types/node@20.14.9)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0):
     dependencies:
       '@vitest/expect': 1.6.0
       '@vitest/runner': 1.6.0
@@ -14971,11 +14967,11 @@ snapshots:
       strip-literal: 2.1.0
       tinybench: 2.5.1
       tinypool: 0.8.4
-      vite: 5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0)
-      vite-node: 1.6.0(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0)
+      vite: 5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0)
+      vite-node: 1.6.0(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0)
       why-is-node-running: 2.2.2
     optionalDependencies:
-      '@types/node': 20.14.8
+      '@types/node': 20.14.9
       happy-dom: 14.12.3
     transitivePeerDependencies:
       - less
@@ -15294,8 +15290,6 @@ snapshots:
 
   yallist@4.0.0: {}
 
-  yaml@2.3.4: {}
-
   yaml@2.4.5: {}
 
   yargs-parser@21.1.1: {}

From 07e1818f308a49f6851e6da7b8dfa65475730c5c Mon Sep 17 00:00:00 2001
From: Dominic <67210734+rexhent@users.noreply.github.com>
Date: Wed, 26 Jun 2024 19:51:42 +1000
Subject: [PATCH 172/580] fix(nuxt): handle external links to named route
 objects (#27829)

---
 packages/nuxt/src/app/components/nuxt-link.ts |  6 +++--
 packages/nuxt/test/nuxt-link.test.ts          | 22 +++++++++++--------
 2 files changed, 17 insertions(+), 11 deletions(-)

diff --git a/packages/nuxt/src/app/components/nuxt-link.ts b/packages/nuxt/src/app/components/nuxt-link.ts
index cf27ce9a34..0b5d1c6511 100644
--- a/packages/nuxt/src/app/components/nuxt-link.ts
+++ b/packages/nuxt/src/app/components/nuxt-link.ts
@@ -167,8 +167,10 @@ export function defineNuxtLink (options: NuxtLinkOptions) {
       if (!to.value || isAbsoluteUrl.value) { return to.value as string }
 
       if (isExternal.value) {
-        const path = typeof to.value === 'object' ? resolveRouteObject(to.value) : to.value
-        return resolveTrailingSlashBehavior(path, router.resolve /* will not be called */) as string
+        const path = typeof to.value === 'object' && 'path' in to.value ? resolveRouteObject(to.value) : to.value
+        // separately resolve route objects with a 'name' property and without 'path'
+        const href = typeof path === 'object' ? router.resolve(path).href : path
+        return resolveTrailingSlashBehavior(href, router.resolve /* will not be called */) as string
       }
 
       if (typeof to.value === 'object') {
diff --git a/packages/nuxt/test/nuxt-link.test.ts b/packages/nuxt/test/nuxt-link.test.ts
index 40e714045d..f57c5d43b0 100644
--- a/packages/nuxt/test/nuxt-link.test.ts
+++ b/packages/nuxt/test/nuxt-link.test.ts
@@ -30,17 +30,16 @@ vi.mock('../src/app/composables/router', () => ({
     return withQuery(to.path || '', to.query || {}) + (to.hash || '')
   },
   useRouter: () => ({
-    resolve: (route: string | RouteLocation & { to?: string }): Partial & { href?: string } => {
+    resolve: (route: string | RouteLocation): Partial & { href: string } => {
       if (typeof route === 'string') {
-        return { href: route, path: route }
+        return { path: route, href: route }
+      }
+      return {
+        path: route.path || `/${route.name?.toString()}`,
+        query: route.query || undefined,
+        hash: route.hash || undefined,
+        href: route.path || `/${route.name?.toString()}`,
       }
-      return route.to
-        ? { href: route.to }
-        : {
-            path: route.path || `/${route.name?.toString()}` || undefined,
-            query: route.query || undefined,
-            hash: route.hash || undefined,
-          }
     },
   }),
 }))
@@ -133,6 +132,10 @@ describe('nuxt-link:propsOrAttributes', () => {
         expect(nuxtLink({ to: { path: '/to' }, external: true }).props.href).toBe('/to')
       })
 
+      it('resolves route location object with name', () => {
+        expect(nuxtLink({ to: { name: 'to' }, external: true }).props.href).toBe('/to')
+      })
+
       it('applies trailing slash behaviour', () => {
         expect(nuxtLink({ to: { path: '/to' }, external: true }, { trailingSlash: 'append' }).props.href).toBe('/to/')
         expect(nuxtLink({ to: '/to', external: true }, { trailingSlash: 'append' }).props.href).toBe('/to/')
@@ -225,6 +228,7 @@ describe('nuxt-link:propsOrAttributes', () => {
       it('forwards `to` prop', () => {
         expect(nuxtLink({ to: '/to' }).props.to).toBe('/to')
         expect(nuxtLink({ to: { path: '/to' } }).props.to).toEqual({ path: '/to' })
+        expect(nuxtLink({ to: { name: 'to' } }).props.to).toEqual({ name: 'to' })
       })
     })
 

From c628975efcc0c36d9946646fe34e49460095ae21 Mon Sep 17 00:00:00 2001
From: Daniel Roe 
Date: Wed, 26 Jun 2024 11:58:45 +0200
Subject: [PATCH 173/580] fix(nuxt): use URL to encode redirected URLs (#27822)

---
 packages/nuxt/src/app/composables/router.ts   | 21 ++++++++++++++--
 test/basic.test.ts                            |  3 ++-
 test/bundle.test.ts                           |  2 +-
 .../basic/pages/redirect-with-encode.vue      |  2 +-
 test/nuxt/composables.test.ts                 | 25 +++++++++++++++++++
 5 files changed, 48 insertions(+), 5 deletions(-)

diff --git a/packages/nuxt/src/app/composables/router.ts b/packages/nuxt/src/app/composables/router.ts
index 50b99476c5..093102a223 100644
--- a/packages/nuxt/src/app/composables/router.ts
+++ b/packages/nuxt/src/app/composables/router.ts
@@ -135,7 +135,8 @@ export const navigateTo = (to: RouteLocationRaw | undefined | null, options?: Na
     return Promise.resolve()
   }
 
-  const isExternal = options?.external || hasProtocol(toPath, { acceptRelative: true })
+  const isExternalHost = hasProtocol(toPath, { acceptRelative: true })
+  const isExternal = options?.external || isExternalHost
   if (isExternal) {
     if (!options?.external) {
       throw new Error('Navigating to an external URL is not allowed by default. Use `navigateTo(url, { external: true })`.')
@@ -166,10 +167,12 @@ export const navigateTo = (to: RouteLocationRaw | undefined | null, options?: Na
         // TODO: consider deprecating in favour of `app:rendered` and removing
         await nuxtApp.callHook('app:redirected')
         const encodedLoc = location.replace(/"/g, '%22')
+        const encodedHeader = encodeURL(location, isExternalHost)
+
         nuxtApp.ssrContext!._renderResponse = {
           statusCode: sanitizeStatusCode(options?.redirectCode || 302, 302),
           body: ``,
-          headers: { location: encodeURI(location) },
+          headers: { location: encodedHeader },
         }
         return response
       }
@@ -259,3 +262,17 @@ export const setPageLayout = (layout: unknown extends PageMeta['layout'] ? strin
 export function resolveRouteObject (to: Exclude) {
   return withQuery(to.path || '', to.query || {}) + (to.hash || '')
 }
+
+/**
+ * @internal
+ */
+export function encodeURL (location: string, isExternalHost = false) {
+  const url = new URL(location, 'http://localhost')
+  if (!isExternalHost) {
+    return url.pathname + url.search + url.hash
+  }
+  if (location.startsWith('//')) {
+    return url.toString().replace(url.protocol, '')
+  }
+  return url.toString()
+}
diff --git a/test/basic.test.ts b/test/basic.test.ts
index 797684e670..4b9aa4cf0b 100644
--- a/test/basic.test.ts
+++ b/test/basic.test.ts
@@ -1005,9 +1005,10 @@ describe('navigate', () => {
   })
 
   it('expect to redirect with encoding', async () => {
-    const { status } = await fetch('/redirect-with-encode', { redirect: 'manual' })
+    const { status, headers } = await fetch('/redirect-with-encode', { redirect: 'manual' })
 
     expect(status).toEqual(302)
+    expect(headers.get('location') || '').toEqual(encodeURI('/cœur') + '?redirected=' + encodeURIComponent('https://google.com'))
   })
 })
 
diff --git a/test/bundle.test.ts b/test/bundle.test.ts
index 280fc23d68..4b8fa7990d 100644
--- a/test/bundle.test.ts
+++ b/test/bundle.test.ts
@@ -72,7 +72,7 @@ describe.skipIf(process.env.SKIP_BUNDLE_SIZE === 'true' || process.env.ECOSYSTEM
     const serverDir = join(rootDir, '.output-inline/server')
 
     const serverStats = await analyzeSizes(['**/*.mjs', '!node_modules'], serverDir)
-    expect.soft(roundToKilobytes(serverStats.totalBytes)).toMatchInlineSnapshot(`"531k"`)
+    expect.soft(roundToKilobytes(serverStats.totalBytes)).toMatchInlineSnapshot(`"532k"`)
 
     const modules = await analyzeSizes('node_modules/**/*', serverDir)
     expect.soft(roundToKilobytes(modules.totalBytes)).toMatchInlineSnapshot(`"76.2k"`)
diff --git a/test/fixtures/basic/pages/redirect-with-encode.vue b/test/fixtures/basic/pages/redirect-with-encode.vue
index a59a44d653..fc96279bc2 100644
--- a/test/fixtures/basic/pages/redirect-with-encode.vue
+++ b/test/fixtures/basic/pages/redirect-with-encode.vue
@@ -5,5 +5,5 @@
 
 
 
diff --git a/test/nuxt/composables.test.ts b/test/nuxt/composables.test.ts
index f924bf6d36..a8097cce72 100644
--- a/test/nuxt/composables.test.ts
+++ b/test/nuxt/composables.test.ts
@@ -6,6 +6,7 @@ import { defineEventHandler } from 'h3'
 import { mount } from '@vue/test-utils'
 import { mountSuspended, registerEndpoint } from '@nuxt/test-utils/runtime'
 
+import { hasProtocol } from 'ufo'
 import * as composables from '#app/composables'
 
 import { clearNuxtData, refreshNuxtData, useAsyncData, useNuxtData } from '#app/composables/asyncData'
@@ -19,6 +20,7 @@ import { useId } from '#app/composables/id'
 import { callOnce } from '#app/composables/once'
 import { useLoadingIndicator } from '#app/composables/loading-indicator'
 import { useRouteAnnouncer } from '#app/composables/route-announcer'
+import { encodeURL, resolveRouteObject } from '#app/composables/router'
 
 registerEndpoint('/api/test', defineEventHandler(event => ({
   method: event.method,
@@ -596,6 +598,29 @@ describe('routing utilities: `navigateTo`', () => {
   })
 })
 
+describe('routing utilities: `resolveRouteObject`', () => {
+  it('resolveRouteObject should correctly resolve a route object', () => {
+    expect(resolveRouteObject({ path: '/test' })).toMatchInlineSnapshot(`"/test"`)
+    expect(resolveRouteObject({ path: '/test', hash: '#thing', query: { foo: 'bar' } })).toMatchInlineSnapshot(`"/test?foo=bar#thing"`)
+  })
+})
+
+describe('routing utilities: `encodeURL`', () => {
+  const encode = (url: string) => {
+    const isExternal = hasProtocol(url, { acceptRelative: true })
+    return encodeURL(url, isExternal)
+  }
+  it('encodeURL should correctly encode a URL', () => {
+    expect(encode('https://test.com')).toMatchInlineSnapshot(`"https://test.com/"`)
+    expect(encode('//test.com')).toMatchInlineSnapshot(`"//test.com/"`)
+    expect(encode('mailto:daniel@cœur.com')).toMatchInlineSnapshot(`"mailto:daniel@c%C5%93ur.com"`)
+    const encoded = encode('/cœur?redirected=' + encodeURIComponent('https://google.com'))
+    expect(new URL('/cœur', 'http://localhost').pathname).toMatchInlineSnapshot(`"/c%C5%93ur"`)
+    expect(encoded).toMatchInlineSnapshot(`"/c%C5%93ur?redirected=https%3A%2F%2Fgoogle.com"`)
+    expect(useRouter().resolve(encoded).query.redirected).toMatchInlineSnapshot(`"https://google.com"`)
+  })
+})
+
 describe('routing utilities: `useRoute`', () => {
   it('should show provide a mock route', () => {
     expect(useRoute()).toMatchObject({

From 5f819ab88e150235f7a2accbadc34b2f0d9b1175 Mon Sep 17 00:00:00 2001
From: Daniel Roe 
Date: Wed, 26 Jun 2024 12:32:50 +0200
Subject: [PATCH 174/580] fix(nuxt)!: remove `__NUXT__` after hydration
 (#27745)

---
 docs/1.getting-started/12.upgrade.md          | 19 +++++++++++++++++++
 .../src/app/plugins/revive-payload.client.ts  |  3 +--
 packages/nuxt/src/core/templates.ts           |  2 +-
 test/bundle.test.ts                           |  2 +-
 .../basic/components/BreakInAsyncSetup.vue    |  2 +-
 .../basic/components/BreakInSetup.vue         |  2 +-
 6 files changed, 24 insertions(+), 6 deletions(-)

diff --git a/docs/1.getting-started/12.upgrade.md b/docs/1.getting-started/12.upgrade.md
index 760b8c306d..ab3f5a1dd8 100644
--- a/docs/1.getting-started/12.upgrade.md
+++ b/docs/1.getting-started/12.upgrade.md
@@ -371,6 +371,25 @@ However, if you are a module author using the `builder:watch` hook and wishing t
   })
 ```
 
+#### Removal of `window.__NUXT__` object
+
+##### What Changed
+
+We are removing the global `window.__NUXT__` object after the app finishes hydration.
+
+##### Reasons for Change
+
+This opens the way to multi-app patterns ([#21635](https://github.com/nuxt/nuxt/issues/21635)) and enables us to focus on a single way to access Nuxt app data - `useNuxtApp()`.
+
+##### Migration Steps
+
+The data is still available, but can be accessed with `useNuxtApp().payload`:
+
+```diff
+- console.log(window.__NUXT__)
++ console.log(useNuxtApp().payload)
+```
+
 #### Directory index scanning
 
 🚦 **Impact Level**: Medium
diff --git a/packages/nuxt/src/app/plugins/revive-payload.client.ts b/packages/nuxt/src/app/plugins/revive-payload.client.ts
index 7deec66618..24452437b6 100644
--- a/packages/nuxt/src/app/plugins/revive-payload.client.ts
+++ b/packages/nuxt/src/app/plugins/revive-payload.client.ts
@@ -49,7 +49,6 @@ export default defineNuxtPlugin({
       definePayloadReviver(reviver, revivers[reviver as keyof typeof revivers])
     }
     Object.assign(nuxtApp.payload, await nuxtApp.runWithContext(getNuxtClientPayload))
-    // For backwards compatibility - TODO: remove later
-    window.__NUXT__ = nuxtApp.payload
+    delete window.__NUXT__
   },
 })
diff --git a/packages/nuxt/src/core/templates.ts b/packages/nuxt/src/core/templates.ts
index 706b32e38f..a3ecadefd4 100644
--- a/packages/nuxt/src/core/templates.ts
+++ b/packages/nuxt/src/core/templates.ts
@@ -267,7 +267,7 @@ declare module 'nitropack' {
 export const clientConfigTemplate: NuxtTemplate = {
   filename: 'nitro.client.mjs',
   getContents: () => `
-export const useRuntimeConfig = () => window?.__NUXT__?.config || {}
+export const useRuntimeConfig = () => window?.__NUXT__?.config || window?.useNuxtApp?.().payload?.config || {}
 `,
 }
 
diff --git a/test/bundle.test.ts b/test/bundle.test.ts
index 4b8fa7990d..32bb10310c 100644
--- a/test/bundle.test.ts
+++ b/test/bundle.test.ts
@@ -19,7 +19,7 @@ describe.skipIf(process.env.SKIP_BUNDLE_SIZE === 'true' || process.env.ECOSYSTEM
   for (const outputDir of ['.output', '.output-inline']) {
     it('default client bundle size', async () => {
       const clientStats = await analyzeSizes('**/*.js', join(rootDir, outputDir, 'public'))
-      expect.soft(roundToKilobytes(clientStats.totalBytes)).toMatchInlineSnapshot(`"106k"`)
+      expect.soft(roundToKilobytes(clientStats.totalBytes)).toMatchInlineSnapshot(`"107k"`)
       expect(clientStats.files.map(f => f.replace(/\..*\.js/, '.js'))).toMatchInlineSnapshot(`
         [
           "_nuxt/entry.js",
diff --git a/test/fixtures/basic/components/BreakInAsyncSetup.vue b/test/fixtures/basic/components/BreakInAsyncSetup.vue
index 44eaf24d5b..33798a2676 100644
--- a/test/fixtures/basic/components/BreakInAsyncSetup.vue
+++ b/test/fixtures/basic/components/BreakInAsyncSetup.vue
@@ -3,7 +3,7 @@ async function getData () { }
 await getData()
 
 // break server-side
-const data = window.__NUXT__
+const data = window.useNuxtApp().payload