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 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 diff --git a/.github/workflows/scorecards.yml b/.github/workflows/scorecards.yml index ed941c8316..fb0b7dc233 100644 --- a/.github/workflows/scorecards.yml +++ b/.github/workflows/scorecards.yml @@ -12,7 +12,7 @@ on: schedule: - cron: '20 7 * * 2' push: - branches: ["main", "3.x"] + branches: ["main"] # Declare default permissions as read only. permissions: read-all diff --git a/docs/1.getting-started/12.upgrade.md b/docs/1.getting-started/12.upgrade.md index a1720402e8..ab3f5a1dd8 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. @@ -355,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/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: diff --git a/docs/2.guide/2.directory-structure/2.env.md b/docs/2.guide/2.directory-structure/2.env.md index 0a39c625a3..6dca2cffa9 100644 --- a/docs/2.guide/2.directory-structure/2.env.md +++ b/docs/2.guide/2.directory-structure/2.env.md @@ -33,6 +33,10 @@ npx nuxi dev --dotenv .env.local When updating `.env` in development mode, the Nuxt instance is automatically restarted to apply new values to the `process.env`. +::important +In your application code, you should use [Runtime Config](https://nuxt.com/docs/guide/going-further/runtime-config) instead of plain env variables. +:: + ## Production **After your server is built**, you are responsible for setting environment variables when you run the server. diff --git a/docs/2.guide/3.going-further/2.hooks.md b/docs/2.guide/3.going-further/2.hooks.md index 762fd577df..7e6bb474fe 100644 --- a/docs/2.guide/3.going-further/2.hooks.md +++ b/docs/2.guide/3.going-further/2.hooks.md @@ -90,7 +90,7 @@ declare module '#app' { } } -declare module 'nitropack' { +declare module 'nitro/types' { interface NitroRuntimeHooks { 'your-nitro-hook': () => void; } diff --git a/docs/2.guide/3.going-further/3.modules.md b/docs/2.guide/3.going-further/3.modules.md index f72b2c8ee1..112f9d9756 100644 --- a/docs/2.guide/3.going-further/3.modules.md +++ b/docs/2.guide/3.going-further/3.modules.md @@ -583,7 +583,7 @@ export default defineNuxtModule({ interface MyModuleNitroRules { myModule?: { foo: 'bar' } } - declare module 'nitropack' { + declare module 'nitro/types' { interface NitroRouteRules extends MyModuleNitroRules {} interface NitroRouteConfig extends MyModuleNitroRules {} } 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', () => { diff --git a/packages/nuxt/types.d.mts b/packages/nuxt/types.d.mts index b1b7ec3047..046d78f817 100644 --- a/packages/nuxt/types.d.mts +++ b/packages/nuxt/types.d.mts @@ -1,4 +1,4 @@ -/// +/// import type { DefineNuxtConfig } from 'nuxt/config' import type { RuntimeConfig, SchemaDefinition } from 'nuxt/schema' @@ -14,7 +14,28 @@ declare global { } // Note: Keep in sync with packages/nuxt/src/core/templates.ts -declare module 'nitropack' { +declare module 'nitro/types' { + interface NitroRuntimeConfigApp { + buildAssetsDir: string + cdnURL: string + } + interface NitroRuntimeConfig extends RuntimeConfig {} + interface NitroRouteConfig { + ssr?: boolean + experimentalNoScripts?: boolean + } + interface NitroRouteRules { + ssr?: boolean + experimentalNoScripts?: boolean + appMiddleware?: Record + } + interface NitroRuntimeHooks { + 'dev:ssr-logs': (ctx: { logs: LogObject[], path: string }) => void | Promise + 'render:html': (htmlContext: NuxtRenderHTMLContext, context: { event: H3Event }) => void | Promise + 'render:island': (islandResponse: NuxtIslandResponse, context: { event: H3Event, islandContext: NuxtIslandContext }) => void | Promise + } +} +declare module 'nitropack/types' { interface NitroRuntimeConfigApp { buildAssetsDir: string cdnURL: string diff --git a/packages/nuxt/types.d.ts b/packages/nuxt/types.d.ts index 1733bdec62..cd426f1c78 100644 --- a/packages/nuxt/types.d.ts +++ b/packages/nuxt/types.d.ts @@ -1,4 +1,4 @@ -/// +/// import type { DefineNuxtConfig } from 'nuxt/config' import type { RuntimeConfig, SchemaDefinition } from 'nuxt/schema' import type { H3Event } from 'h3' @@ -13,7 +13,28 @@ declare global { } // Note: Keep in sync with packages/nuxt/src/core/templates.ts -declare module 'nitropack' { +declare module 'nitro/types' { + interface NitroRuntimeConfigApp { + buildAssetsDir: string + cdnURL: string + } + interface NitroRuntimeConfig extends RuntimeConfig {} + interface NitroRouteConfig { + ssr?: boolean + experimentalNoScripts?: boolean + } + interface NitroRouteRules { + ssr?: boolean + experimentalNoScripts?: boolean + appMiddleware?: Record + } + interface NitroRuntimeHooks { + 'dev:ssr-logs': (ctx: { logs: LogObject[], path: string }) => void | Promise + 'render:html': (htmlContext: NuxtRenderHTMLContext, context: { event: H3Event }) => void | Promise + 'render:island': (islandResponse: NuxtIslandResponse, context: { event: H3Event, islandContext: NuxtIslandContext }) => void | Promise + } +} +declare module 'nitropack/types' { interface NitroRuntimeConfigApp { buildAssetsDir: string cdnURL: string diff --git a/packages/schema/build.config.ts b/packages/schema/build.config.ts index e7179a174f..d12712e2a0 100644 --- a/packages/schema/build.config.ts +++ b/packages/schema/build.config.ts @@ -31,6 +31,7 @@ export default defineBuildConfig({ 'vue', 'unctx', 'hookable', + 'nitro', 'nitropack', 'webpack', 'webpack-bundle-analyzer', diff --git a/packages/schema/package.json b/packages/schema/package.json index 2c8d188fa7..cd0c7d286b 100644 --- a/packages/schema/package.json +++ b/packages/schema/package.json @@ -42,23 +42,23 @@ "@unhead/schema": "1.9.14", "@vitejs/plugin-vue": "5.0.4", "@vitejs/plugin-vue-jsx": "4.0.0", - "@vue/compiler-core": "3.4.29", - "@vue/compiler-sfc": "3.4.29", - "@vue/language-core": "2.0.21", + "@vue/compiler-core": "3.4.30", + "@vue/compiler-sfc": "3.4.30", + "@vue/language-core": "2.0.22", "c12": "1.11.1", "esbuild-loader": "4.2.0", - "h3": "1.12.0", + "h3": "npm:h3-nightly@2.0.0-1718872656.6765a6e", "ignore": "5.3.1", - "nitropack": "2.9.6", + "nitro": "npm:nitro-nightly@3.0.0-beta-28648657.9a717203", "ofetch": "1.3.4", "unbuild": "latest", "unctx": "2.3.1", "unenv": "1.9.0", "vite": "5.3.1", - "vue": "3.4.29", + "vue": "3.4.30", "vue-bundle-renderer": "2.1.0", "vue-loader": "17.4.2", - "vue-router": "4.3.3", + "vue-router": "4.4.0", "webpack": "5.92.1", "webpack-dev-middleware": "7.2.1" }, diff --git a/packages/schema/src/config/experimental.ts b/packages/schema/src/config/experimental.ts index 7eed2ae3ab..7ae8f41d3d 100644 --- a/packages/schema/src/config/experimental.ts +++ b/packages/schema/src/config/experimental.ts @@ -106,6 +106,12 @@ export default defineUntypedSchema({ */ externalVue: true, + /** + * Enable accessing `appConfig` from server routes. + * + * @deprecated This option is not recommended. + */ + serverAppConfig: false, /** * Emit `app:chunkError` hook when there is an error loading vite/webpack * chunks. diff --git a/packages/schema/src/config/nitro.ts b/packages/schema/src/config/nitro.ts index f937bb2f20..855fec69a4 100644 --- a/packages/schema/src/config/nitro.ts +++ b/packages/schema/src/config/nitro.ts @@ -5,7 +5,7 @@ export default defineUntypedSchema({ /** * Configuration for Nitro. * @see https://nitro.unjs.io/config/ - * @type {typeof import('nitropack')['NitroConfig']} + * @type {typeof import('nitro/types')['NitroConfig']} */ nitro: { runtimeConfig: { @@ -38,7 +38,7 @@ export default defineUntypedSchema({ * Global route options applied to matching server routes. * @experimental This is an experimental feature and API may change in the future. * @see https://nitro.unjs.io/config/#routerules - * @type {typeof import('nitropack')['NitroConfig']['routeRules']} + * @type {typeof import('nitro/types')['NitroConfig']['routeRules']} */ routeRules: {}, @@ -61,14 +61,14 @@ export default defineUntypedSchema({ * { route: '/path/foo/**:name', handler: '~/server/foohandler.ts' } * ] * ``` - * @type {typeof import('nitropack')['NitroEventHandler'][]} + * @type {typeof import('nitro/types')['NitroEventHandler'][]} */ serverHandlers: [], /** * Nitro development-only server handlers. * @see https://nitro.unjs.io/guide/routing - * @type {typeof import('nitropack')['NitroDevEventHandler'][]} + * @type {typeof import('nitro/types')['NitroDevEventHandler'][]} */ devServerHandlers: [], }) diff --git a/packages/schema/src/config/typescript.ts b/packages/schema/src/config/typescript.ts index 3586d16ab7..28f0261ed6 100644 --- a/packages/schema/src/config/typescript.ts +++ b/packages/schema/src/config/typescript.ts @@ -34,7 +34,7 @@ export default defineUntypedSchema({ $resolve: (val) => { const defaults = [ // Nitro auto-imported/augmented dependencies - 'nitropack', + 'nitro/types', 'defu', 'h3', 'consola', @@ -47,7 +47,8 @@ export default defineUntypedSchema({ '@vue/compiler-sfc', '@vue/runtime-dom', 'vue-router', - 'vue-router/auto', + 'vue-router/auto-routes', + 'unplugin-vue-router/client', '@nuxt/schema', 'nuxt', ] diff --git a/packages/schema/src/types/config.ts b/packages/schema/src/types/config.ts index 63fe9376a3..db349cd529 100644 --- a/packages/schema/src/types/config.ts +++ b/packages/schema/src/types/config.ts @@ -3,7 +3,7 @@ import type { ServerOptions as ViteServerOptions, UserConfig as ViteUserConfig } import type { Options as VuePluginOptions } from '@vitejs/plugin-vue' import type { Options as VueJsxPluginOptions } from '@vitejs/plugin-vue-jsx' import type { SchemaDefinition } from 'untyped' -import type { NitroRuntimeConfig, NitroRuntimeConfigApp } from 'nitropack' +import type { NitroRuntimeConfig, NitroRuntimeConfigApp } from 'nitro/types' import type { SnakeCase } from 'scule' import type { ConfigSchema } from '../../schema/config' import type { Nuxt } from './nuxt' diff --git a/packages/schema/src/types/hooks.ts b/packages/schema/src/types/hooks.ts index 1c4fde5fad..34b5528960 100644 --- a/packages/schema/src/types/hooks.ts +++ b/packages/schema/src/types/hooks.ts @@ -6,7 +6,7 @@ import type { Manifest } from 'vue-bundle-renderer' import type { EventHandler } from 'h3' import type { Import, InlinePreset, Unimport } from 'unimport' import type { Compiler, Configuration, Stats } from 'webpack' -import type { Nitro, NitroConfig } from 'nitropack' +import type { Nitro, NitroConfig } from 'nitro/types' import type { Schema, SchemaDefinition } from 'untyped' import type { RouteLocationRaw } from 'vue-router' import type { VueCompilerOptions } from '@vue/language-core' diff --git a/packages/ui-templates/lib/dev.ts b/packages/ui-templates/lib/dev.ts index 12e7a3fcfd..8c2624dbfe 100644 --- a/packages/ui-templates/lib/dev.ts +++ b/packages/ui-templates/lib/dev.ts @@ -4,6 +4,7 @@ import { fileURLToPath } from 'node:url' import { promises as fsp } from 'node:fs' import type { Plugin } from 'vite' import genericMessages from '../templates/messages.json' +import { version } from '../../nuxt/package.json' const templatesRoot = fileURLToPath(new URL('..', import.meta.url)) @@ -31,6 +32,7 @@ export const DevRenderingPlugin = () => { let templateString = chunks.shift() for (const expression of contents.matchAll(/\{{2,3}([^{}]+)\}{2,3}/g)) { const value = runInNewContext(expression[1].trim(), { + version, messages: { ...genericMessages, ...messages }, }) templateString += `${value}${chunks.shift()}` diff --git a/packages/ui-templates/lib/render.ts b/packages/ui-templates/lib/render.ts index c9d5986c4f..ea444ed059 100644 --- a/packages/ui-templates/lib/render.ts +++ b/packages/ui-templates/lib/render.ts @@ -10,6 +10,7 @@ import htmlMinifier from 'html-minifier' import { globby } from 'globby' import { camelCase } from 'scule' +import { version } from '../../nuxt/package.json' import genericMessages from '../templates/messages.json' const r = (path: string) => fileURLToPath(new URL(join('..', path), import.meta.url)) @@ -89,6 +90,8 @@ export const RenderPlugin = () => { html = html.replace('', '') } + html = html.replace(/\{\{ version \}\}/g, version) + // Load messages const messages = JSON.parse(readFileSync(r(`templates/${templateName}/messages.json`), 'utf-8')) @@ -136,9 +139,14 @@ export const RenderPlugin = () => { } return lastChar || '' }).replace(/@media[^{]*\{\}/g, '') - const inlineScripts = Array.from(html.matchAll(/ - - -
-
-

{{ messages.statusCode }}

-

{{ messages.description }}

+ +
+

{{ messages.statusCode }}

+

{{ messages.statusMessage }}

+

{{ messages.description }}

diff --git a/packages/ui-templates/templates/error-404/messages.json b/packages/ui-templates/templates/error-404/messages.json index 262941b2fe..1cd5a5e62e 100644 --- a/packages/ui-templates/templates/error-404/messages.json +++ b/packages/ui-templates/templates/error-404/messages.json @@ -1,6 +1,6 @@ { "statusCode": 404, - "statusMessage": "Not Found", + "statusMessage": "Page not found", "description": "Sorry, the page you are looking for could not be found.", "backHome": "Go back home" } diff --git a/packages/ui-templates/templates/error-500/index.html b/packages/ui-templates/templates/error-500/index.html index 0ae46738cb..b6616d0510 100644 --- a/packages/ui-templates/templates/error-500/index.html +++ b/packages/ui-templates/templates/error-500/index.html @@ -5,18 +5,12 @@ - - -
+
-

{{ messages.statusCode }}

-

{{ messages.description }}

+

{{ messages.statusCode }}

+

{{ messages.statusMessage }}

+

{{ messages.description }}

diff --git a/packages/ui-templates/templates/error-500/messages.json b/packages/ui-templates/templates/error-500/messages.json index 69534ad900..e69ef467e3 100644 --- a/packages/ui-templates/templates/error-500/messages.json +++ b/packages/ui-templates/templates/error-500/messages.json @@ -1,5 +1,6 @@ { "statusCode": 500, - "statusMessage": "Server error", - "description": "This page is temporarily unavailable." + "statusMessage": "Internal server error", + "description": "This page is temporarily unavailable.", + "refresh": "Refresh this page" } diff --git a/packages/ui-templates/templates/error-dev/index.html b/packages/ui-templates/templates/error-dev/index.html index 469ac24184..aa96b9d67c 100644 --- a/packages/ui-templates/templates/error-dev/index.html +++ b/packages/ui-templates/templates/error-dev/index.html @@ -5,21 +5,12 @@ - - -
-

{{ messages.statusCode }}

-

{{ messages.description }}

-
+ +

{{ messages.statusCode }}

+

{{ messages.description }}

+ Customize this page +
{{{ messages.stack }}}
diff --git a/packages/ui-templates/templates/error-dev/messages.json b/packages/ui-templates/templates/error-dev/messages.json index afd71e0257..4c790e9df3 100644 --- a/packages/ui-templates/templates/error-dev/messages.json +++ b/packages/ui-templates/templates/error-dev/messages.json @@ -1,6 +1,6 @@ { "statusCode": 500, "statusMessage": "Server error", - "description": "An error occurred in the application and the page could not be served. If you are the application owner, check your server logs for details.", + "description": "An error occurred in the application and the page could not be served.", "stack": "" } diff --git a/packages/ui-templates/templates/loading/index.html b/packages/ui-templates/templates/loading/index.html index bda8016b70..67b1198581 100644 --- a/packages/ui-templates/templates/loading/index.html +++ b/packages/ui-templates/templates/loading/index.html @@ -7,59 +7,32 @@ - -
- -
- - -
+ +
-
-
-
-
- - diff --git a/packages/ui-templates/templates/welcome/messages.json b/packages/ui-templates/templates/welcome/messages.json index 036c4057aa..0967ef424b 100644 --- a/packages/ui-templates/templates/welcome/messages.json +++ b/packages/ui-templates/templates/welcome/messages.json @@ -1,6 +1 @@ -{ - "title": "Welcome to Nuxt!", - "readDocs": "We highly recommend you take a look at the Nuxt documentation, whether you are new or have previous experience with the framework.", - "followTwitter": "Follow the Nuxt Twitter account to get latest news about releases, new modules, tutorials and tips.", - "starGitHub": "Nuxt is open source and the code is available on GitHub, feel free to star it, participate in discussions or dive into the source." -} +{} diff --git a/packages/ui-templates/test/__snapshots__/snapshots.spec.ts.snap b/packages/ui-templates/test/__snapshots__/snapshots.spec.ts.snap index bf980b4a26..2a72ba1490 100644 --- a/packages/ui-templates/test/__snapshots__/snapshots.spec.ts.snap +++ b/packages/ui-templates/test/__snapshots__/snapshots.spec.ts.snap @@ -1,99 +1,14 @@ // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html exports[`template > correctly outputs style blocks for error-404.vue 1`] = ` -".spotlight { - background: linear-gradient(45deg, #00dc82 0%, #36e4da 50%, #0047e1 100%); - filter: blur(20vh); - height: 40vh; - bottom: -30vh; -} -.gradient-border { - position: relative; - border-radius: 0.5rem; - -webkit-backdrop-filter: blur(10px); - backdrop-filter: blur(10px); -} -@media (prefers-color-scheme: light) { - .gradient-border { - background-color: rgba(255, 255, 255, 0.3); - } - .gradient-border::before { - background: linear-gradient( - 90deg, - #e2e2e2 0%, - #e2e2e2 25%, - #00dc82 50%, - #36e4da 75%, - #0047e1 100% - ); - } -} -@media (prefers-color-scheme: dark) { - .gradient-border { - background-color: rgba(20, 20, 20, 0.3); - } - .gradient-border::before { - background: linear-gradient( - 90deg, - #303030 0%, - #303030 25%, - #00dc82 50%, - #36e4da 75%, - #0047e1 100% - ); - } -} -.gradient-border::before { - content: ""; - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; - border-radius: 0.5rem; - padding: 2px; - width: 100%; - background-size: 400% auto; - opacity: 0.5; - transition: - background-position 0.3s ease-in-out, - opacity 0.2s ease-in-out; - -webkit-mask: - linear-gradient(#fff 0 0) content-box, - linear-gradient(#fff 0 0); - mask: - linear-gradient(#fff 0 0) content-box, - linear-gradient(#fff 0 0); - -webkit-mask-composite: xor; - mask-composite: exclude; -} -.gradient-border:hover::before { - background-position: -50% 0; - opacity: 1; -} -.fixed { - position: fixed; -} -.left-0 { - left: 0; -} -.right-0 { - right: 0; -} -.z-10 { - z-index: 10; -} -.z-20 { - z-index: 20; -} -.grid { +".grid { display: grid; } -.mb-16 { - margin-bottom: 4rem; +.mb-2 { + margin-bottom: 0.5rem; } -.mb-8 { - margin-bottom: 2rem; +.mb-4 { + margin-bottom: 1rem; } .max-w-520px { max-width: 520px; @@ -107,9 +22,6 @@ exports[`template > correctly outputs style blocks for error-404.vue 1`] = ` .flex { display: flex; } -.cursor-pointer { - cursor: pointer; -} .place-content-center { place-content: center; } @@ -126,41 +38,47 @@ exports[`template > correctly outputs style blocks for error-404.vue 1`] = ` --un-bg-opacity: 1; background-color: rgb(255 255 255 / var(--un-bg-opacity)); } -.px-4 { - padding-left: 1rem; - padding-right: 1rem; -} -.px-8 { - padding-left: 2rem; - padding-right: 2rem; -} -.py-2 { - padding-top: 0.5rem; - padding-bottom: 0.5rem; +.px-2 { + padding-left: 0.5rem; + padding-right: 0.5rem; } .text-center { text-align: center; } -.text-8xl { - font-size: 6rem; - line-height: 1; +.text-\\[80px\\] { + font-size: 80px; } -.text-xl { - font-size: 1.25rem; - line-height: 1.75rem; +.text-2xl { + font-size: 1.5rem; + line-height: 2rem; } -.text-black { +.text-sm { + font-size: 0.875rem; + line-height: 1.25rem; +} +.text-\\[\\#020420\\] { --un-text-opacity: 1; - color: rgb(0 0 0 / var(--un-text-opacity)); + color: rgb(2 4 32 / var(--un-text-opacity)); } -.font-light { - font-weight: 300; +.text-\\[\\#64748B\\] { + --un-text-opacity: 1; + color: rgb(100 116 139 / var(--un-text-opacity)); +} +.hover\\:text-\\[\\#00DC82\\]:hover { + --un-text-opacity: 1; + color: rgb(0 220 130 / var(--un-text-opacity)); } .font-medium { font-weight: 500; } -.leading-tight { - line-height: 1.25; +.font-semibold { + font-weight: 600; +} +.leading-none { + line-height: 1; +} +.tracking-wide { + letter-spacing: 0.025em; } .font-sans { font-family: @@ -179,14 +97,26 @@ exports[`template > correctly outputs style blocks for error-404.vue 1`] = ` Segoe UI Symbol, "Noto Color Emoji"; } +.tabular-nums { + --un-numeric-spacing: tabular-nums; + font-variant-numeric: var(--un-ordinal) var(--un-slashed-zero) + var(--un-numeric-figure) var(--un-numeric-spacing) + var(--un-numeric-fraction); +} +.underline { + text-decoration-line: underline; +} +.underline-offset-3 { + text-underline-offset: 3px; +} .antialiased { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } @media (prefers-color-scheme: dark) { - .dark\\:bg-black { + .dark\\:bg-\\[\\#020420\\] { --un-bg-opacity: 1; - background-color: rgb(0 0 0 / var(--un-bg-opacity)); + background-color: rgb(2 4 32 / var(--un-bg-opacity)); } .dark\\:text-white { --un-text-opacity: 1; @@ -194,25 +124,12 @@ exports[`template > correctly outputs style blocks for error-404.vue 1`] = ` } } @media (min-width: 640px) { - .sm\\:px-0 { - padding-left: 0; - padding-right: 0; + .sm\\:text-\\[110px\\] { + font-size: 110px; } - .sm\\:px-6 { - padding-left: 1.5rem; - padding-right: 1.5rem; - } - .sm\\:py-3 { - padding-top: 0.75rem; - padding-bottom: 0.75rem; - } - .sm\\:text-4xl { - font-size: 2.25rem; - line-height: 2.5rem; - } - .sm\\:text-xl { - font-size: 1.25rem; - line-height: 1.75rem; + .sm\\:text-3xl { + font-size: 1.875rem; + line-height: 2.25rem; } } " @@ -252,7 +169,8 @@ body { margin: 0; line-height: inherit; } -h1 { +h1, +h2 { font-size: inherit; font-weight: inherit; } @@ -261,6 +179,7 @@ a { text-decoration: inherit; } h1, +h2, p { margin: 0; } @@ -322,33 +241,14 @@ p { `; exports[`template > correctly outputs style blocks for error-500.vue 1`] = ` -".spotlight { - background: linear-gradient(45deg, #00dc82 0%, #36e4da 50%, #0047e1 100%); - filter: blur(20vh); -} -.fixed { - position: fixed; -} -.-bottom-1\\/2 { - bottom: -50%; -} -.left-0 { - left: 0; -} -.right-0 { - right: 0; -} -.grid { +".grid { display: grid; } -.mb-16 { - margin-bottom: 4rem; +.mb-2 { + margin-bottom: 0.5rem; } -.mb-8 { - margin-bottom: 2rem; -} -.h-1\\/2 { - height: 50%; +.mb-4 { + margin-bottom: 1rem; } .max-w-520px { max-width: 520px; @@ -366,33 +266,36 @@ exports[`template > correctly outputs style blocks for error-500.vue 1`] = ` --un-bg-opacity: 1; background-color: rgb(255 255 255 / var(--un-bg-opacity)); } -.px-8 { - padding-left: 2rem; - padding-right: 2rem; +.px-2 { + padding-left: 0.5rem; + padding-right: 0.5rem; } .text-center { text-align: center; } -.text-8xl { - font-size: 6rem; +.text-\\[80px\\] { + font-size: 80px; +} +.text-2xl { + font-size: 1.5rem; + line-height: 2rem; +} +.text-\\[\\#020420\\] { + --un-text-opacity: 1; + color: rgb(2 4 32 / var(--un-text-opacity)); +} +.text-\\[\\#64748B\\] { + --un-text-opacity: 1; + color: rgb(100 116 139 / var(--un-text-opacity)); +} +.font-semibold { + font-weight: 600; +} +.leading-none { line-height: 1; } -.text-xl { - font-size: 1.25rem; - line-height: 1.75rem; -} -.text-black { - --un-text-opacity: 1; - color: rgb(0 0 0 / var(--un-text-opacity)); -} -.font-light { - font-weight: 300; -} -.font-medium { - font-weight: 500; -} -.leading-tight { - line-height: 1.25; +.tracking-wide { + letter-spacing: 0.025em; } .font-sans { font-family: @@ -411,14 +314,20 @@ exports[`template > correctly outputs style blocks for error-500.vue 1`] = ` Segoe UI Symbol, "Noto Color Emoji"; } +.tabular-nums { + --un-numeric-spacing: tabular-nums; + font-variant-numeric: var(--un-ordinal) var(--un-slashed-zero) + var(--un-numeric-figure) var(--un-numeric-spacing) + var(--un-numeric-fraction); +} .antialiased { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } @media (prefers-color-scheme: dark) { - .dark\\:bg-black { + .dark\\:bg-\\[\\#020420\\] { --un-bg-opacity: 1; - background-color: rgb(0 0 0 / var(--un-bg-opacity)); + background-color: rgb(2 4 32 / var(--un-bg-opacity)); } .dark\\:text-white { --un-text-opacity: 1; @@ -426,13 +335,12 @@ exports[`template > correctly outputs style blocks for error-500.vue 1`] = ` } } @media (min-width: 640px) { - .sm\\:px-0 { - padding-left: 0; - padding-right: 0; + .sm\\:text-\\[110px\\] { + font-size: 110px; } - .sm\\:text-4xl { - font-size: 2.25rem; - line-height: 2.5rem; + .sm\\:text-3xl { + font-size: 1.875rem; + line-height: 2.25rem; } } " @@ -472,11 +380,13 @@ body { margin: 0; line-height: inherit; } -h1 { +h1, +h2 { font-size: inherit; font-weight: inherit; } h1, +h2, p { margin: 0; } @@ -538,31 +448,28 @@ p { `; exports[`template > correctly outputs style blocks for error-dev.vue 1`] = ` -".spotlight { - background: linear-gradient(45deg, #00dc82 0%, #36e4da 50%, #0047e1 100%); - opacity: 0.8; - filter: blur(30vh); - height: 60vh; - bottom: -40vh; +".absolute { + position: absolute; } -.fixed { - position: fixed; -} -.left-0 { - left: 0; -} -.right-0 { - right: 0; +.top-6 { + top: 1.5rem; } .z-10 { z-index: 10; } -.mb-6 { - margin-bottom: 1.5rem; +.mx-auto { + margin-left: auto; + margin-right: auto; +} +.mb-4 { + margin-bottom: 1rem; } .mb-8 { margin-bottom: 2rem; } +.inline-block { + display: inline-block; +} .h-auto { height: auto; } @@ -581,12 +488,21 @@ exports[`template > correctly outputs style blocks for error-dev.vue 1`] = ` .overflow-y-auto { overflow-y: auto; } +.border { + border-width: 1px; +} +.border-b-0 { + border-bottom-width: 0px; +} +.border-black\\/5 { + border-color: #0000000d; +} .rounded-t-md { border-top-left-radius: 0.375rem; border-top-right-radius: 0.375rem; } -.bg-black\\/5 { - background-color: #0000000d; +.bg-gray-50\\/50 { + background-color: #f5f5f580; } .bg-white { --un-bg-opacity: 1; @@ -599,13 +515,17 @@ exports[`template > correctly outputs style blocks for error-dev.vue 1`] = ` padding-left: 2.5rem; padding-right: 2.5rem; } -.pt-14 { - padding-top: 3.5rem; +.pt-12 { + padding-top: 3rem; } .text-6xl { font-size: 3.75rem; line-height: 1; } +.text-sm { + font-size: 0.875rem; + line-height: 1.25rem; +} .text-xl { font-size: 1.25rem; line-height: 1.75rem; @@ -614,6 +534,10 @@ exports[`template > correctly outputs style blocks for error-dev.vue 1`] = ` --un-text-opacity: 1; color: rgb(0 0 0 / var(--un-text-opacity)); } +.hover\\:text-\\[\\#00DC82\\]:hover { + --un-text-opacity: 1; + color: rgb(0 220 130 / var(--un-text-opacity)); +} .font-light { font-weight: 300; } @@ -640,17 +564,26 @@ exports[`template > correctly outputs style blocks for error-dev.vue 1`] = ` Segoe UI Symbol, "Noto Color Emoji"; } +.hover\\:underline:hover { + text-decoration-line: underline; +} +.underline-offset-3 { + text-underline-offset: 3px; +} .antialiased { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } @media (prefers-color-scheme: dark) { - .dark\\:bg-black { - --un-bg-opacity: 1; - background-color: rgb(0 0 0 / var(--un-bg-opacity)); + .dark\\:border-white\\/10 { + border-color: #ffffff1a; } - .dark\\:bg-white\\/10 { - background-color: #ffffff1a; + .dark\\:bg-\\[\\#020420\\] { + --un-bg-opacity: 1; + background-color: rgb(2 4 32 / var(--un-bg-opacity)); + } + .dark\\:bg-white\\/5 { + background-color: #ffffff0d; } .dark\\:text-white { --un-text-opacity: 1; @@ -658,6 +591,9 @@ exports[`template > correctly outputs style blocks for error-dev.vue 1`] = ` } } @media (min-width: 640px) { + .sm\\:right-6 { + right: 1.5rem; + } .sm\\:text-2xl { font-size: 1.5rem; line-height: 2rem; @@ -708,6 +644,10 @@ h1 { font-size: inherit; font-weight: inherit; } +a { + color: inherit; + text-decoration: inherit; +} pre { font-family: ui-monospace, @@ -786,267 +726,171 @@ pre { exports[`template > correctly outputs style blocks for loading.vue 1`] = ` ".nuxt-loader-bar { - background: repeating-linear-gradient( - to right, - #36e4da 0%, - #1de0b1 25%, - #00dc82 50%, - #1de0b1 75%, - #36e4da 100% - ); - height: 100px; - background-size: 200% auto; - background-position: 0 0; - animation: gradient 2s infinite; - animation-fill-mode: forwards; - animation-timing-function: linear; + background: #00dc82; position: fixed; bottom: 0; left: 0; right: 0; - height: 5px; + height: 3px; } -.visual-effects .nuxt-loader-bar { - height: 100px; - bottom: -50px; - left: -50px; - right: -50px; - filter: blur(100px); -} -.visual-effects .mouse-gradient { - background: repeating-linear-gradient( - to right, - #00dc82 0%, - #1de0b1 50%, - #36e4da 100% - ); - filter: blur(100px); - opacity: 0.5; -} -#animation-toggle { - position: fixed; - padding: 10px; - top: 0; - right: 0; - transition: opacity 0.4s ease-in; - opacity: 0; -} -#animation-toggle:hover { - opacity: 0.8; -} -@keyframes gradient { - 0% { - background-position: 0 0; - } - 100% { - background-position: -200% 0; - } -} -@media (prefers-color-scheme: dark) { - html, - body { - color: white; - color-scheme: dark; - } - .nuxt-loader-bar { - opacity: 0.5; - } -} -*, -:before, -:after { - box-sizing: border-box; - border-width: 0; - border-style: solid; - border-color: var(--un-default-border-color, #e5e7eb); -} -:before, -:after { - --un-content: ""; -} -html { - line-height: 1.5; - -webkit-text-size-adjust: 100%; - -moz-tab-size: 4; - tab-size: 4; - font-family: - ui-sans-serif, - system-ui, - sans-serif, - "Apple Color Emoji", - "Segoe UI Emoji", - Segoe UI Symbol, - "Noto Color Emoji"; - font-feature-settings: normal; - font-variation-settings: normal; - -webkit-tap-highlight-color: transparent; -} -body { - margin: 0; - line-height: inherit; -} -a { - color: inherit; - text-decoration: inherit; -} -button { - font-family: inherit; - font-feature-settings: inherit; - font-variation-settings: inherit; - font-size: 100%; - font-weight: inherit; - line-height: inherit; - color: inherit; - margin: 0; - padding: 0; -} -button { - text-transform: none; -} -button { - -webkit-appearance: button; - background-color: transparent; - background-image: none; -} -button { - cursor: pointer; -} -svg { - display: block; - vertical-align: middle; -} -*, -:before, -:after { - --un-rotate: 0; - --un-rotate-x: 0; - --un-rotate-y: 0; - --un-rotate-z: 0; - --un-scale-x: 1; - --un-scale-y: 1; - --un-scale-z: 1; - --un-skew-x: 0; - --un-skew-y: 0; - --un-translate-x: 0; - --un-translate-y: 0; - --un-translate-z: 0; - --un-pan-x: ; - --un-pan-y: ; - --un-pinch-zoom: ; - --un-scroll-snap-strictness: proximity; - --un-ordinal: ; - --un-slashed-zero: ; - --un-numeric-figure: ; - --un-numeric-spacing: ; - --un-numeric-fraction: ; - --un-border-spacing-x: 0; - --un-border-spacing-y: 0; - --un-ring-offset-shadow: 0 0 rgb(0 0 0 / 0); - --un-ring-shadow: 0 0 rgb(0 0 0 / 0); - --un-shadow-inset: ; - --un-shadow: 0 0 rgb(0 0 0 / 0); - --un-ring-inset: ; - --un-ring-offset-width: 0px; - --un-ring-offset-color: #fff; - --un-ring-width: 0px; - --un-ring-color: rgb(147 197 253 / 0.5); - --un-blur: ; - --un-brightness: ; - --un-contrast: ; - --un-drop-shadow: ; - --un-grayscale: ; - --un-hue-rotate: ; - --un-invert: ; - --un-saturate: ; - --un-sepia: ; - --un-backdrop-blur: ; - --un-backdrop-brightness: ; - --un-backdrop-contrast: ; - --un-backdrop-grayscale: ; - --un-backdrop-hue-rotate: ; - --un-backdrop-invert: ; - --un-backdrop-opacity: ; - --un-backdrop-saturate: ; - --un-backdrop-sepia: ; -} -.absolute { +.triangle-loading { position: absolute; } +.triangle-loading > path { + fill: none; + stroke-width: 4px; + stroke-linecap: round; + stroke-linejoin: round; + stroke-dasharray: 128; + stroke-dashoffset: 128; + animation: nuxt-loading-move 3s linear infinite; +} +.nuxt-logo:hover .triangle-loading > path { + animation-play-state: paused; +} .relative { position: relative; } -.top-0 { - top: 0; -} -.z-20 { - z-index: 20; -} -.h-\\[200px\\] { - height: 200px; +.inline-block { + display: inline-block; } .min-h-screen { min-height: 100vh; } -.w-\\[200px\\] { - width: 200px; -} .flex { display: flex; } .flex-col { flex-direction: column; } +.items-end { + align-items: flex-end; +} .items-center { align-items: center; } .justify-center { justify-content: center; } +.gap-4 { + gap: 1rem; +} .overflow-hidden { overflow: hidden; } -.rounded-full { - border-radius: 9999px; +.border { + border-width: 1px; +} +.border-\\[\\#00DC42\\]\\/50 { + border-color: #00dc4280; +} +.group:hover .group-hover\\:border-\\[\\#00DC42\\] { + --un-border-opacity: 1; + border-color: rgb(0 220 66 / var(--un-border-opacity)); +} +.rounded { + border-radius: 0.25rem; +} +.bg-\\[\\#00DC42\\]\\/10 { + background-color: #00dc421a; } .bg-white { --un-bg-opacity: 1; background-color: rgb(255 255 255 / var(--un-bg-opacity)); } +.group:hover .group-hover\\:bg-\\[\\#00DC42\\]\\/15 { + background-color: #00dc4226; +} +.px-2\\.5 { + padding-left: 0.625rem; + padding-right: 0.625rem; +} +.py-1\\.5 { + padding-top: 0.375rem; + padding-bottom: 0.375rem; +} .text-center { text-align: center; } -.transition-opacity { - transition-property: opacity; - transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - transition-duration: 0.15s; +.text-\\[16px\\] { + font-size: 16px; +} +.text-\\[\\#00DC82\\], +.group:hover .group-hover\\:text-\\[\\#00DC82\\] { + --un-text-opacity: 1; + color: rgb(0 220 130 / var(--un-text-opacity)); +} +.text-\\[\\#00DC82\\]\\/80 { + color: #00dc82cc; +} +.text-\\[\\#020420\\], +.group:hover .group-hover\\:text-\\[\\#020420\\] { + --un-text-opacity: 1; + color: rgb(2 4 32 / var(--un-text-opacity)); +} +.text-\\[\\#020420\\]\\/80 { + color: #020420cc; +} +.font-semibold { + font-weight: 600; +} +.leading-none { + line-height: 1; +} +.font-mono { + font-family: + ui-monospace, + SFMono-Regular, + Menlo, + Monaco, + Consolas, + Liberation Mono, + Courier New, + monospace; +} +.font-sans { + font-family: + ui-sans-serif, + system-ui, + -apple-system, + BlinkMacSystemFont, + Segoe UI, + Roboto, + Helvetica Neue, + Arial, + Noto Sans, + sans-serif, + "Apple Color Emoji", + "Segoe UI Emoji", + Segoe UI Symbol, + "Noto Color Emoji"; +} +.antialiased { + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; } @media (prefers-color-scheme: dark) { - .dark\\:bg-black { + .dark\\:bg-\\[\\#020420\\] { --un-bg-opacity: 1; - background-color: rgb(0 0 0 / var(--un-bg-opacity)); + background-color: rgb(2 4 32 / var(--un-bg-opacity)); + } + .dark\\:text-gray-200 { + --un-text-opacity: 1; + color: rgb(224 224 224 / var(--un-text-opacity)); + } + .dark\\:text-white, + .group:hover .dark\\:group-hover\\:text-white { + --un-text-opacity: 1; + color: rgb(255 255 255 / var(--un-text-opacity)); } } " `; exports[`template > correctly outputs style blocks for loading.vue 2`] = ` -"#animation-toggle { - position: fixed; - padding: 10px; - top: 0; - right: 0; - transition: opacity 0.4s ease-in; - opacity: 0; -} -#animation-toggle:hover { - opacity: 0.8; -} -@keyframes gradient { - 0% { - background-position: 0 0; - } +"@keyframes nuxt-loading-move { 100% { - background-position: -200% 0; + stroke-dashoffset: -128; } } @media (prefers-color-scheme: dark) { @@ -1093,28 +937,6 @@ a { color: inherit; text-decoration: inherit; } -button { - font-family: inherit; - font-feature-settings: inherit; - font-variation-settings: inherit; - font-size: 100%; - font-weight: inherit; - line-height: inherit; - color: inherit; - margin: 0; - padding: 0; -} -button { - text-transform: none; -} -button { - -webkit-appearance: button; - background-color: transparent; - background-image: none; -} -button { - cursor: pointer; -} svg { display: block; vertical-align: middle; @@ -1177,216 +999,7 @@ svg { `; exports[`template > correctly outputs style blocks for welcome.vue 1`] = ` -"@media (prefers-color-scheme: light) { - .get-started-gradient-border { - background: linear-gradient(to right, #ffffff, #ffffff), - linear-gradient(to right, #00dc82, #1de0b1, #36e4da); - } - .gradient-border-modules { - background: linear-gradient( - var(--gradient-angle), - rgba(247, 209, 76), - rgba(247, 209, 76, 0.6), - rgba(255, 255, 255, 0.8), - rgba(247, 209, 76) - ); - } - .gradient-border-examples { - background: linear-gradient( - var(--gradient-angle), - rgba(141, 234, 255), - rgba(141, 234, 255, 0.6), - rgba(255, 255, 255, 0.8), - rgba(141, 234, 255) - ); - } - .gradient-border-documentation { - background: linear-gradient( - var(--gradient-angle), - rgba(0, 220, 130), - rgba(0, 220, 130, 0.6), - rgba(255, 255, 255, 0.8), - rgba(0, 220, 130) - ); - } -} -@media (prefers-color-scheme: dark) { - .get-started-gradient-border { - background: linear-gradient(to right, #18181b, #18181b), - linear-gradient(to right, #00dc82, #1de0b1, #36e4da); - } - .gradient-border-modules { - background: linear-gradient( - var(--gradient-angle), - rgba(247, 209, 76), - rgba(163, 129, 8), - rgba(255, 255, 255, 0.3), - rgba(163, 129, 8) - ); - } - .gradient-border-examples { - background: linear-gradient( - var(--gradient-angle), - rgba(141, 234, 255), - rgba(0, 138, 169), - rgba(255, 255, 255, 0.3), - rgba(0, 138, 169) - ); - } - .gradient-border-documentation { - background: linear-gradient( - var(--gradient-angle), - rgba(0, 220, 130), - rgba(0, 63, 37), - rgba(255, 255, 255, 0.2), - rgba(0, 63, 37) - ); - } -} -.get-started-gradient-border { - background-clip: padding-box, border-box; - background-origin: padding-box, border-box; - border-color: transparent; - border-radius: 12px; - border-width: 1px; -} -.get-started-gradient-border:hover - > :is(.get-started-gradient-left, .get-started-gradient-right) { - opacity: 0.2; -} -.get-started-gradient-left, -.get-started-gradient-right { - opacity: 0; -} -.gradient-border { - opacity: 0; - position: absolute; - top: 0; - left: 0; - width: calc(100% + 2px); - border-radius: 12px; - z-index: -1; - transform: translate(-1px, -1px); -} -.gradient-border-rect { - height: calc(100% + 2px); -} -@media (min-width: 1024px) { - .gradient-border-rect { - height: calc(100% + 1px); - } -} -.gradient-border-square { - height: calc(100% + 2px); -} -.modules-gradient-right { - opacity: 0; -} -.modules-container:hover > .gradient-border, -.examples-container:hover > .gradient-border, -.documentation-container:hover > .gradient-border { - opacity: 1; - animation: gradient-rotate 5s cubic-bezier(0, 0, 1, 1) 0s infinite reverse; - transition: all 0.3s linear; -} -.modules-container:hover > .modules-gradient-right { - opacity: 0.2; -} -.examples-container:hover > .examples-gradient-right { - opacity: 0.2; -} -.examples-gradient-right { - opacity: 0; -} -.documentation-image-color-light, -.documentation-image-color-dark { - display: none; -} -.modules-image-color-light, -.modules-image-color-dark { - display: none; -} -.examples-image-color-light, -.examples-image-color-dark { - display: none; -} -@media (prefers-color-scheme: light) { - .modules-image-light { - display: block; - } - .modules-image-dark { - display: none; - } - .modules-container:hover > a > .modules-image-light { - display: none; - } - .modules-container:hover > a > .modules-image-color-light { - display: block; - } - .examples-image-light { - display: block; - } - .examples-image-dark { - display: none; - } - .examples-container:hover > a > .examples-image-light { - display: none; - } - .examples-container:hover > a > .examples-image-color-light { - display: block; - } - .documentation-image-light { - display: block; - } - .documentation-image-dark { - display: none; - } - .documentation-container:hover > a > div > .documentation-image-light { - display: none; - } - .documentation-container:hover > a > div > .documentation-image-color-light { - display: block; - } -} -@media (prefers-color-scheme: dark) { - .modules-image-dark { - display: block; - } - .modules-image-light { - display: none; - } - .modules-container:hover > a > .modules-image-color-dark { - display: block; - } - .modules-container:hover > a > .modules-image-dark { - display: none; - } - .examples-image-dark { - display: block; - } - .examples-image-light { - display: none; - } - .examples-container:hover > a > .examples-image-color-dark { - display: block; - } - .examples-container:hover > a > .examples-image-dark { - display: none; - } - .documentation-image-dark { - display: block; - } - .documentation-image-light { - display: none; - } - .documentation-container:hover > a > div > .documentation-image-color-dark { - display: block; - } - .documentation-container:hover > a > div > .documentation-image-dark { - display: none; - } -} -.sr-only { +".sr-only { position: absolute; width: 1px; height: 1px; @@ -1403,71 +1016,64 @@ exports[`template > correctly outputs style blocks for welcome.vue 1`] = ` .relative { position: relative; } -.inset-x-0 { - left: 0; - right: 0; +.right-4 { + right: 1rem; } -.inset-y-0 { - top: 0; - bottom: 0; -} -.-top-\\[58px\\] { - top: -58px; -} -.-top-3 { - top: -0.75rem; -} -.left-0 { - left: 0; -} -.right-0 { - right: 0; -} -.z-1 { - z-index: 1; -} -.z-10 { - z-index: 10; -} -.order-last { - order: 9999; +.top-4 { + top: 1rem; } .grid { display: grid; } -.col-span-2 { - grid-column: span 2 / span 2; -} -.row-span-2 { - grid-row: span 2 / span 2; -} -.grid-cols-2 { - grid-template-columns: repeat(2, minmax(0, 1fr)); +.grid-cols-1 { + grid-template-columns: repeat(1, minmax(0, 1fr)); } .mx-auto { margin-left: auto; margin-right: auto; } -.mb-2 { - margin-bottom: 0.5rem; +.mb-6 { + margin-bottom: 1.5rem; } -.hidden { - display: none; +.mt-1 { + margin-top: 0.25rem; } -.h-\\[70px\\] { - height: 70px; +.mt-4 { + margin-top: 1rem; } -.h-32 { - height: 8rem; +.mt-6 { + margin-top: 1.5rem; } -.max-w-\\[960px\\] { - max-width: 960px; +.inline-block { + display: inline-block; +} +.size-\\[18px\\] { + width: 18px; + height: 18px; +} +.size-4 { + width: 1rem; + height: 1rem; +} +.size-5, +.group:hover .group-hover\\:size-5 { + width: 1.25rem; + height: 1.25rem; +} +.h-\\[32px\\] { + height: 32px; +} +.h-8 { + height: 2rem; +} +.max-w-\\[980px\\] { + max-width: 980px; } .min-h-screen { min-height: 100vh; } -.w-\\[20\\%\\] { - width: 20%; +.w-\\[32px\\] { + width: 32px; } .w-full { width: 100%; @@ -1475,41 +1081,29 @@ exports[`template > correctly outputs style blocks for welcome.vue 1`] = ` .flex { display: flex; } -.flex-1 { - flex: 1 1 0%; +.inline-flex { + display: inline-flex; } .flex-col { flex-direction: column; } -.flex-col-reverse { - flex-direction: column-reverse; -} .place-content-center { place-content: center; } +.items-end { + align-items: flex-end; +} .items-center { align-items: center; } -.justify-end { - justify-content: flex-end; -} .justify-center { justify-content: center; } -.gap-3 { - gap: 0.75rem; +.gap-1 { + gap: 0.25rem; } -.gap-6 { - gap: 1.5rem; -} -.gap-x-4 { - column-gap: 1rem; -} -.gap-y-16 { - row-gap: 4rem; -} -.gap-y-2 { - row-gap: 0.5rem; +.gap-4 { + gap: 1rem; } .gap-y-4 { row-gap: 1rem; @@ -1517,123 +1111,106 @@ exports[`template > correctly outputs style blocks for welcome.vue 1`] = ` .border { border-width: 1px; } -.border-t { - border-top-width: 1px; +.border-\\[\\#00DC42\\]\\/50 { + border-color: #00dc4280; +} +.border-\\[\\#00DC82\\] { + --un-border-opacity: 1; + border-color: rgb(0 220 130 / var(--un-border-opacity)); } .border-gray-200 { --un-border-opacity: 1; border-color: rgb(224 224 224 / var(--un-border-opacity)); } -.hover\\:border-transparent:hover { - border-color: transparent; +.border-green-600\\/10 { + border-color: #00bb6a1a; +} +.border-green-600\\/20 { + border-color: #00bb6a33; +} +.hover\\:border-\\[\\#00DC82\\]:hover { + --un-border-opacity: 1; + border-color: rgb(0 220 130 / var(--un-border-opacity)); } .rounded { border-radius: 0.25rem; } -.rounded-xl { - border-radius: 0.75rem; +.rounded-lg { + border-radius: 0.5rem; } -.bg-gray-100 { +.bg-\\[\\#00DC42\\]\\/10 { + background-color: #00dc421a; +} +.bg-\\[\\#00DC82\\]\\/5 { + background-color: #00dc820d; +} +.bg-gray-50\\/10 { + background-color: #f5f5f51a; +} +.bg-green-50 { --un-bg-opacity: 1; - background-color: rgb(238 238 238 / var(--un-bg-opacity)); + background-color: rgb(208 252 222 / var(--un-bg-opacity)); } .bg-white { --un-bg-opacity: 1; background-color: rgb(255 255 255 / var(--un-bg-opacity)); } -.from-blue-400 { - --un-gradient-from-position: 0%; - --un-gradient-from: rgb(96 165 250 / var(--un-from-opacity, 1)) - var(--un-gradient-from-position); - --un-gradient-to-position: 100%; - --un-gradient-to: rgb(96 165 250 / 0) var(--un-gradient-to-position); - --un-gradient-stops: var(--un-gradient-from), var(--un-gradient-to); -} -.from-green-400 { - --un-gradient-from-position: 0%; - --un-gradient-from: rgb(55 233 144 / var(--un-from-opacity, 1)) - var(--un-gradient-from-position); - --un-gradient-to-position: 100%; - --un-gradient-to: rgb(55 233 144 / 0) var(--un-gradient-to-position); - --un-gradient-stops: var(--un-gradient-from), var(--un-gradient-to); -} -.from-yellow-400 { - --un-gradient-from-position: 0%; - --un-gradient-from: rgb(250 204 21 / var(--un-from-opacity, 1)) - var(--un-gradient-from-position); - --un-gradient-to-position: 100%; - --un-gradient-to: rgb(250 204 21 / 0) var(--un-gradient-to-position); - --un-gradient-stops: var(--un-gradient-from), var(--un-gradient-to); -} -.to-transparent { - --un-gradient-to-position: 100%; - --un-gradient-to: transparent var(--un-gradient-to-position); -} -.bg-gradient-to-l { - --un-gradient-shape: to left; - --un-gradient: var(--un-gradient-shape), var(--un-gradient-stops); - background-image: linear-gradient(var(--un-gradient)); -} -.bg-gradient-to-r { - --un-gradient-shape: to right; - --un-gradient: var(--un-gradient-shape), var(--un-gradient-stops); - background-image: linear-gradient(var(--un-gradient)); -} .p-1 { padding: 0.25rem; } +.p-6 { + padding: 1.5rem; +} +.px-2 { + padding-left: 0.5rem; + padding-right: 0.5rem; +} .px-4 { padding-left: 1rem; padding-right: 1rem; } -.px-5 { - padding-left: 1.25rem; - padding-right: 1.25rem; +.py-1 { + padding-top: 0.25rem; + padding-bottom: 0.25rem; } -.py-14 { - padding-top: 3.5rem; - padding-bottom: 3.5rem; +.text-\\[12px\\] { + font-size: 12px; } -.py-6 { - padding-top: 1.5rem; - padding-bottom: 1.5rem; -} -.pb-6 { - padding-bottom: 1.5rem; -} -.pt-\\[58px\\] { - padding-top: 58px; -} -.text-center { - text-align: center; -} -.text-2xl { - font-size: 1.5rem; - line-height: 2rem; -} -.text-4xl { - font-size: 2.25rem; - line-height: 2.5rem; +.text-base { + font-size: 1rem; + line-height: 1.5rem; } .text-sm { font-size: 0.875rem; line-height: 1.25rem; } -.text-xl { - font-size: 1.25rem; - line-height: 1.75rem; -} -.text-black { +.text-\\[\\#00DC82\\], +.group:hover .group-hover\\:text-\\[\\#00DC82\\] { --un-text-opacity: 1; - color: rgb(0 0 0 / var(--un-text-opacity)); + color: rgb(0 220 130 / var(--un-text-opacity)); +} +.text-\\[\\#020420\\] { + --un-text-opacity: 1; + color: rgb(2 4 32 / var(--un-text-opacity)); +} +.text-\\[\\#020420\\]\\/20 { + color: #02042033; +} +.text-gray-500 { + --un-text-opacity: 1; + color: rgb(117 117 117 / var(--un-text-opacity)); } .text-gray-700 { --un-text-opacity: 1; color: rgb(66 66 66 / var(--un-text-opacity)); } -.hover\\:text-black:hover { +.text-green-700 { --un-text-opacity: 1; - color: rgb(0 0 0 / var(--un-text-opacity)); + color: rgb(0 153 86 / var(--un-text-opacity)); +} +.hover\\:text-\\[\\#020420\\]:hover { + --un-text-opacity: 1; + color: rgb(2 4 32 / var(--un-text-opacity)); } .font-bold { font-weight: 700; @@ -1641,6 +1218,9 @@ exports[`template > correctly outputs style blocks for welcome.vue 1`] = ` .font-semibold { font-weight: 600; } +.leading-none { + line-height: 1; +} .font-mono { font-family: ui-monospace, @@ -1666,139 +1246,120 @@ exports[`template > correctly outputs style blocks for welcome.vue 1`] = ` box-shadow: var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow); } -.transition-opacity { - transition-property: opacity; +.transition-all { + transition-property: all; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 0.15s; } -.duration-300 { - transition-duration: 0.3s; -} @media (prefers-color-scheme: dark) { - .dark\\:block { - display: block; + .dark\\:border-\\[\\#00DC82\\]\\/50 { + border-color: #00dc8280; } - .dark\\:hidden { - display: none; + .dark\\:border-\\[\\#00DC82\\]\\/80, + .group:hover .group-hover\\:dark\\:border-\\[\\#00DC82\\]\\/80 { + border-color: #00dc82cc; } - .dark\\:border-gray-900 { + .dark\\:border-white\\/10 { + border-color: #ffffff1a; + } + .dark\\:border-white\\/20 { + border-color: #fff3; + } + .hover\\:dark\\:border-\\[\\#00DC82\\]:hover { --un-border-opacity: 1; - border-color: rgb(24 24 27 / var(--un-border-opacity)); + border-color: rgb(0 220 130 / var(--un-border-opacity)); } - .dark\\:border-transparent { - border-color: transparent; - } - .dark\\:border-none { - border-style: none; - } - .dark\\:bg-black { + .dark\\:bg-\\[\\#020420\\] { --un-bg-opacity: 1; - background-color: rgb(0 0 0 / var(--un-bg-opacity)); + background-color: rgb(2 4 32 / var(--un-bg-opacity)); } - .dark\\:bg-gray-900 { - --un-bg-opacity: 1; - background-color: rgb(24 24 27 / var(--un-bg-opacity)); + .dark\\:bg-white\\/5 { + background-color: #ffffff0d; } - .dark\\:bg-white\\/10 { - background-color: #ffffff1a; - } - .dark\\:text-gray-300 { + .dark\\:text-\\[\\#00DC82\\] { --un-text-opacity: 1; - color: rgb(189 189 189 / var(--un-text-opacity)); + color: rgb(0 220 130 / var(--un-text-opacity)); + } + .dark\\:text-gray-200 { + --un-text-opacity: 1; + color: rgb(224 224 224 / var(--un-text-opacity)); + } + .dark\\:text-gray-400 { + --un-text-opacity: 1; + color: rgb(158 158 158 / var(--un-text-opacity)); + } + .dark\\:text-white { + --un-text-opacity: 1; + color: rgb(255 255 255 / var(--un-text-opacity)); + } + .dark\\:text-white\\/40 { + color: #fff6; } - .dark\\:text-white, .dark\\:hover\\:text-white:hover { --un-text-opacity: 1; color: rgb(255 255 255 / var(--un-text-opacity)); } + .group:hover .group-hover\\:dark\\:text-gray-100 { + --un-text-opacity: 1; + color: rgb(238 238 238 / var(--un-text-opacity)); + } } @media (min-width: 640px) { - .sm\\:col-span-1 { - grid-column: span 1 / span 1; + .sm\\:col-span-2 { + grid-column: span 2 / span 2; } - .sm\\:h-34 { - height: 8.5rem; + .sm\\:grid-cols-3 { + grid-template-columns: repeat(3, minmax(0, 1fr)); } - .sm\\:min-h-\\[220px\\] { - min-height: 220px; + .sm\\:mb-0 { + margin-bottom: 0; } - .sm\\:flex-row { - flex-direction: row; + .sm\\:mt-0 { + margin-top: 0; } - .sm\\:justify-between { - justify-content: space-between; + .sm\\:mt-10 { + margin-top: 2.5rem; } - .sm\\:px-28 { - padding-left: 7rem; - padding-right: 7rem; + .sm\\:mt-6 { + margin-top: 1.5rem; + } + .sm\\:h-12 { + height: 3rem; + } + .sm\\:gap-6 { + gap: 1.5rem; + } + .sm\\:px-2\\.5 { + padding-left: 0.625rem; + padding-right: 0.625rem; } .sm\\:px-6 { padding-left: 1.5rem; padding-right: 1.5rem; } - .sm\\:text-5xl { - font-size: 3rem; - line-height: 1; + .sm\\:py-1\\.5 { + padding-top: 0.375rem; + padding-bottom: 0.375rem; + } + .sm\\:text-\\[14px\\] { + font-size: 14px; } .sm\\:text-base { font-size: 1rem; line-height: 1.5rem; } } -@media (min-width: 768px) { - .md\\:min-h-\\[180px\\] { - min-height: 180px; - } -} @media (min-width: 1024px) { - .lg\\:order-none { - order: 0; - } - .lg\\:col-span-10 { - grid-column: span 10 / span 10; - } - .lg\\:col-span-4 { - grid-column: span 4 / span 4; - } - .lg\\:col-span-6 { - grid-column: span 6 / span 6; - } - .lg\\:grid-cols-10 { - grid-template-columns: repeat(10, minmax(0, 1fr)); - } - .lg\\:min-h-min { - min-height: min-content; - } - .lg\\:flex-col { - flex-direction: column; - } .lg\\:px-8 { padding-left: 2rem; padding-right: 2rem; } - .lg\\:py-7 { - padding-top: 1.75rem; - padding-bottom: 1.75rem; - } } " `; exports[`template > correctly outputs style blocks for welcome.vue 2`] = ` -"@property --gradient-angle { - syntax: ""; - inherits: false; - initial-value: 180deg; -} -@keyframes gradient-rotate { - 0% { - --gradient-angle: 0deg; - } - 100% { - --gradient-angle: 360deg; - } -} -*, +"*, :before, :after { box-sizing: border-box; @@ -1831,9 +1392,7 @@ body { margin: 0; line-height: inherit; } -h1, -h2, -h3 { +h2 { font-size: inherit; font-weight: inherit; } @@ -1841,9 +1400,7 @@ a { color: inherit; text-decoration: inherit; } -h1, h2, -h3, p { margin: 0; } @@ -1852,15 +1409,10 @@ ul { margin: 0; padding: 0; } -img, svg { display: block; vertical-align: middle; } -img { - max-width: 100%; - height: auto; -} *, :before, :after { diff --git a/packages/vite/package.json b/packages/vite/package.json index d48970a161..9388da32af 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -27,10 +27,9 @@ "@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" + "vue": "3.4.30" }, "dependencies": { "@nuxt/kit": "workspace:*", @@ -46,9 +45,8 @@ "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", + "h3": "npm:h3-nightly@2.0.0-1718872656.6765a6e", "knitwork": "^1.1.0", "magic-string": "^0.30.10", "mlly": "^1.7.1", diff --git a/packages/vite/src/client.ts b/packages/vite/src/client.ts index 5ff1679549..0ef536bc5e 100644 --- a/packages/vite/src/client.ts +++ b/packages/vite/src/client.ts @@ -112,7 +112,7 @@ export async function buildClient (ctx: ViteBuildContext) { ...ctx.config.resolve?.alias, '#internal/nuxt/paths': resolve(ctx.nuxt.options.buildDir, 'paths.mjs'), '#build/plugins': resolve(ctx.nuxt.options.buildDir, 'plugins/client'), - '#internal/nitro': resolve(ctx.nuxt.options.buildDir, 'nitro.client.mjs'), + 'nitro/runtime': resolve(ctx.nuxt.options.buildDir, 'nitro.client.mjs'), }, dedupe: [ 'vue', 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/plugins/analyze.ts b/packages/vite/src/plugins/analyze.ts index ddb923f244..edecf536c7 100644 --- a/packages/vite/src/plugins/analyze.ts +++ b/packages/vite/src/plugins/analyze.ts @@ -16,10 +16,10 @@ export function analyzePlugin (ctx: ViteBuildContext): Plugin[] { async generateBundle (_opts, outputBundle) { for (const _bundleId in outputBundle) { const bundle = outputBundle[_bundleId] - if (bundle.type !== 'chunk') { continue } + if (!bundle || bundle.type !== 'chunk') { continue } const minifiedModuleEntryPromises: Array> = [] for (const moduleId in bundle.modules) { - const module = bundle.modules[moduleId] + const module = bundle.modules[moduleId]! minifiedModuleEntryPromises.push( transform(module.code || '', { minify: true }) .then(result => [moduleId, { ...module, code: result.code }]), diff --git a/packages/vite/src/plugins/composable-keys.ts b/packages/vite/src/plugins/composable-keys.ts index af967c9eb7..0b6e897f15 100644 --- a/packages/vite/src/plugins/composable-keys.ts +++ b/packages/vite/src/plugins/composable-keys.ts @@ -17,7 +17,7 @@ interface ComposableKeysOptions { composables: Array<{ name: string, source?: string | RegExp, argumentLength: number }> } -const stringTypes = ['Literal', 'TemplateLiteral'] +const stringTypes: Array = ['Literal', 'TemplateLiteral'] const NUXT_LIB_RE = /node_modules\/(?:nuxt|nuxt3|nuxt-nightly)\// const SUPPORTED_EXT_RE = /\.(?:m?[jt]sx?|vue)/ @@ -182,7 +182,7 @@ class ScopeTracker { leaveScope () { this.scopeIndexStack.pop() this.curScopeKey = this.getKey() - this.scopeIndexStack[this.scopeIndexStack.length - 1]++ + this.scopeIndexStack[this.scopeIndexStack.length - 1]!++ } } @@ -255,9 +255,9 @@ export function detectImportNames (code: string, composableMeta: Record = {} + const cssMap: Record = {} const idRefMap: Record = {} const relativeToSrcDir = (path: string) => relative(options.srcDir, path) @@ -63,7 +63,7 @@ export function ssrStylesPlugin (options: SSRStylePluginOptions): Plugin { const emitted: Record = {} for (const file in cssMap) { - const { files, inBundle } = cssMap[file] + 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) @@ -115,18 +115,19 @@ export function ssrStylesPlugin (options: SSRStylePluginOptions): Plugin { // 'Teleport' CSS chunks that made it into the bundle on the client side // to be inlined on server rendering if (options.mode === 'client') { - options.clientCSSMap[moduleId] ||= new Set() + const moduleMap = options.clientCSSMap[moduleId] ||= new Set() if (isCSS(moduleId)) { // Vue files can (also) be their own entrypoints as they are tracked separately if (isVue(moduleId)) { - options.clientCSSMap[moduleId].add(moduleId) + moduleMap.add(moduleId) const parent = moduleId.replace(/\?.+$/, '') - options.clientCSSMap[parent] ||= new Set() - options.clientCSSMap[parent].add(moduleId) + const parentMap = options.clientCSSMap[parent] ||= new Set() + parentMap.add(moduleId) } // This is required to track CSS in entry chunk - if (isEntry) { - options.clientCSSMap[chunk.facadeModuleId!].add(moduleId) + if (isEntry && chunk.facadeModuleId) { + const facadeMap = options.clientCSSMap[chunk.facadeModuleId] ||= new Set() + facadeMap.add(moduleId) } } continue @@ -134,7 +135,7 @@ export function ssrStylesPlugin (options: SSRStylePluginOptions): Plugin { const relativePath = relativeToSrcDir(moduleId) if (relativePath in cssMap) { - cssMap[relativePath].inBundle = cssMap[relativePath].inBundle ?? ((isVue(moduleId) && relativeToSrcDir(moduleId)) || isEntry) + cssMap[relativePath]!.inBundle = cssMap[relativePath]!.inBundle ?? ((isVue(moduleId) && !!relativeToSrcDir(moduleId)) || isEntry) } } @@ -146,7 +147,7 @@ export function ssrStylesPlugin (options: SSRStylePluginOptions): Plugin { // or include it here in the client build so it is emitted in the CSS. if (id === options.entry && (options.shouldInline === true || (typeof options.shouldInline === 'function' && options.shouldInline(id)))) { const s = new MagicString(code) - options.clientCSSMap[id] ||= new Set() + const idClientCSSMap = options.clientCSSMap[id] ||= new Set() if (!options.globalCSS.length) { return } for (const file of options.globalCSS) { @@ -160,7 +161,7 @@ export function ssrStylesPlugin (options: SSRStylePluginOptions): Plugin { s.prepend(`${genImport(file)}\n`) continue } - options.clientCSSMap[id].add(resolved.id) + idClientCSSMap.add(resolved.id) } if (s.hasChanged()) { return { @@ -184,7 +185,7 @@ export function ssrStylesPlugin (options: SSRStylePluginOptions): Plugin { } const relativeId = relativeToSrcDir(id) - cssMap[relativeId] = cssMap[relativeId] || { files: [] } + const idMap = cssMap[relativeId] ||= { files: [] } const emittedIds = new Set() @@ -208,7 +209,7 @@ export function ssrStylesPlugin (options: SSRStylePluginOptions): Plugin { }) idRefMap[relativeToSrcDir(file)] = ref - cssMap[relativeId].files.push(ref) + idMap.files.push(ref) } if (!SUPPORTED_FILES_RE.test(pathname)) { return } @@ -235,7 +236,7 @@ export function ssrStylesPlugin (options: SSRStylePluginOptions): Plugin { }) idRefMap[relativeToSrcDir(resolved.id)] = ref - cssMap[relativeId].files.push(ref) + idMap.files.push(ref) } }, } diff --git a/packages/vite/src/plugins/type-check.ts b/packages/vite/src/plugins/type-check.ts index 0ca1d4df85..f875187fc4 100644 --- a/packages/vite/src/plugins/type-check.ts +++ b/packages/vite/src/plugins/type-check.ts @@ -9,7 +9,7 @@ export function typeCheckPlugin (options: { sourcemap?: boolean } = {}): Plugin name: 'nuxt:type-check', configResolved (config) { const input = config.build.rollupOptions.input - if (input && typeof input !== 'string' && !Array.isArray(input)) { + if (input && typeof input !== 'string' && !Array.isArray(input) && input.entry) { entry = input.entry } }, diff --git a/packages/vite/src/plugins/virtual.ts b/packages/vite/src/plugins/virtual.ts index c1887a7873..723958a6e7 100644 --- a/packages/vite/src/plugins/virtual.ts +++ b/packages/vite/src/plugins/virtual.ts @@ -39,7 +39,7 @@ export default function virtual (vfs: Record): Plugin { const idNoPrefix = id.slice(PREFIX.length) if (idNoPrefix in vfs) { return { - code: vfs[idNoPrefix], + code: vfs[idNoPrefix] || '', map: null, } } diff --git a/packages/vite/src/server.ts b/packages/vite/src/server.ts index c449b46c80..0ae5faaa12 100644 --- a/packages/vite/src/server.ts +++ b/packages/vite/src/server.ts @@ -61,7 +61,7 @@ export async function buildServer (ctx: ViteBuildContext) { }, ssr: { external: [ - '#internal/nitro', '#internal/nitro/utils', + 'nitro/runtime', ], noExternal: [ ...transpile({ isServer: true, isDev: ctx.nuxt.options.dev }), @@ -80,7 +80,7 @@ export async function buildServer (ctx: ViteBuildContext) { ssr: true, rollupOptions: { input: { server: entry }, - external: ['#internal/nitro', '#internal/nuxt/paths'], + external: ['nitro/runtime', '#internal/nuxt/paths', '#internal/nuxt/app-config'], output: { entryFileNames: '[name].mjs', format: 'module', @@ -104,8 +104,8 @@ export async function buildServer (ctx: ViteBuildContext) { } satisfies vite.InlineConfig, ctx.nuxt.options.vite.$server || {})) if (!ctx.nuxt.options.dev) { - const nitroDependencies = await tryResolveModule('nitropack/package.json', ctx.nuxt.options.modulesDir) - .then(r => import(r!)).then(r => r.dependencies ? Object.keys(r.dependencies) : []).catch(() => []) + const nitroDependencies = await tryResolveModule('nitro/runtime/meta', ctx.nuxt.options.modulesDir) + .then(r => import(r!)).then(r => r.runtimeDependencies || []).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/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/transpile.ts b/packages/vite/src/utils/transpile.ts index 8c60c1776a..8e9e2eb9da 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: Array = [] + const transpile: RegExp[] = [] for (let pattern of nuxt.options.build.transpile) { if (typeof pattern === 'function') { 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/vite/src/vite.ts b/packages/vite/src/vite.ts index d242df8b2f..025f995abb 100644 --- a/packages/vite/src/vite.ts +++ b/packages/vite/src/vite.ts @@ -41,8 +41,8 @@ export const bundle: NuxtBuilder['bundle'] = async (nuxt) => { ...app.plugins.map(p => dirname(p.src)), ...app.middleware.map(m => dirname(m.path)), ...Object.values(app.layouts || {}).map(l => dirname(l.file)), - dirname(nuxt.apps.default.rootComponent!), - dirname(nuxt.apps.default.errorComponent!), + dirname(nuxt.apps.default!.rootComponent!), + dirname(nuxt.apps.default!.errorComponent!), ]), ].filter(d => d && existsSync(d)) @@ -183,7 +183,7 @@ export const bundle: NuxtBuilder['bundle'] = async (nuxt) => { clientCSSMap, chunksWithInlinedCSS, shouldInline: ctx.nuxt.options.features.inlineStyles, - components: ctx.nuxt.apps.default.components, + components: ctx.nuxt.apps.default!.components || [], globalCSS: ctx.nuxt.options.css, mode: isServer ? 'server' : 'client', entry: ctx.entry, @@ -193,7 +193,7 @@ export const bundle: NuxtBuilder['bundle'] = async (nuxt) => { // Remove CSS entries for files that will have inlined styles ctx.nuxt.hook('build:manifest', (manifest) => { for (const key in manifest) { - const entry = manifest[key] + const entry = manifest[key]! const shouldRemoveCSS = chunksWithInlinedCSS.has(key) && !entry.isEntry if (entry.isEntry && chunksWithInlinedCSS.has(key)) { // @ts-expect-error internal key diff --git a/packages/webpack/package.json b/packages/webpack/package.json index e8c3846459..d70fa5534b 100644 --- a/packages/webpack/package.json +++ b/packages/webpack/package.json @@ -37,9 +37,10 @@ "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", + "globby": "^14.0.1", + "h3": "npm:h3-nightly@2.0.0-1718872656.6765a6e", "hash-sum": "^2.0.0", + "knitwork": "^1.1.0", "lodash-es": "4.17.21", "magic-string": "^0.30.10", "memfs": "^4.9.3", @@ -71,14 +72,14 @@ }, "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", "@types/webpack-bundle-analyzer": "4.7.0", "@types/webpack-hot-middleware": "2.25.9", + "rollup": "4.18.0", "unbuild": "latest", - "vue": "3.4.29" + "vue": "3.4.30" }, "peerDependencies": { "vue": "^3.3.4" diff --git a/packages/webpack/src/configs/server.ts b/packages/webpack/src/configs/server.ts index 16ab572de3..2af11d304e 100644 --- a/packages/webpack/src/configs/server.ts +++ b/packages/webpack/src/configs/server.ts @@ -53,9 +53,9 @@ function serverStandalone (ctx: WebpackConfigContext) { '#', ...ctx.options.build.transpile, ] - const external = ['#internal/nitro'] + const external = ['nitro/runtime'] if (!ctx.nuxt.options.dev) { - external.push('#internal/nuxt/paths') + external.push('#internal/nuxt/paths', '#internal/nuxt/app-config') } if (!Array.isArray(ctx.config.externals)) { return } diff --git a/packages/webpack/src/nitro/plugins/dynamic-require.ts b/packages/webpack/src/nitro/plugins/dynamic-require.ts new file mode 100644 index 0000000000..a8e3460e09 --- /dev/null +++ b/packages/webpack/src/nitro/plugins/dynamic-require.ts @@ -0,0 +1,128 @@ +import { pathToFileURL } from 'node:url' +import { globby } from 'globby' +import { genSafeVariableName } from 'knitwork' +import { resolve } from 'pathe' +import type { Plugin } from 'rollup' + +const PLUGIN_NAME = 'dynamic-require' +const HELPER_DYNAMIC = `\0${PLUGIN_NAME}.mjs` +const DYNAMIC_REQUIRE_RE = /import\("\.\/" ?\+(.*)\).then/g + +interface Options { + dir: string + inline: boolean + ignore: string[] + outDir?: string + prefix?: string +} + +interface Chunk { + id: string + src: string + name: string + meta?: { + id?: string + ids?: string[] + moduleIds?: string[] + } +} + +interface TemplateContext { + chunks: Chunk[] +} + +export function dynamicRequire ({ dir, ignore, inline }: Options): Plugin { + return { + name: PLUGIN_NAME, + transform (code: string, _id: string) { + return { + code: code.replace( + DYNAMIC_REQUIRE_RE, + `import('${HELPER_DYNAMIC}').then(r => r.default || r).then(dynamicRequire => dynamicRequire($1)).then`, + ), + map: null, + } + }, + resolveId (id: string) { + return id === HELPER_DYNAMIC ? id : null + }, + // TODO: Async chunk loading over network! + // renderDynamicImport () { + // return { + // left: 'fetch(', right: ')' + // } + // }, + async load (_id: string) { + if (_id !== HELPER_DYNAMIC) { + return null + } + + // Scan chunks + let files = [] + try { + const wpManifest = resolve(dir, './server.manifest.json') + files = await import(pathToFileURL(wpManifest).href).then(r => + Object.keys(r.files).filter(file => !ignore.includes(file)), + ) + } catch { + files = await globby('**/*.{cjs,mjs,js}', { + cwd: dir, + absolute: false, + ignore, + }) + } + + const chunks = ( + await Promise.all( + files.map(async id => ({ + id, + src: resolve(dir, id).replace(/\\/g, '/'), + name: genSafeVariableName(id), + meta: await getWebpackChunkMeta(resolve(dir, id)), + })), + ) + ).filter(chunk => chunk.meta) as Chunk[] + + return inline ? TMPL_INLINE({ chunks }) : TMPL_LAZY({ chunks }) + }, + } +} + +async function getWebpackChunkMeta (src: string) { + const chunk = await import(pathToFileURL(src).href).then( + r => r.default || r || {}, + ) + const { id, ids, modules } = chunk + if (!id && !ids) { + return null // Not a webpack chunk + } + return { + id, + ids, + moduleIds: Object.keys(modules || {}), + } +} + +function TMPL_INLINE ({ chunks }: TemplateContext) { + return `${chunks + .map(i => `import * as ${i.name} from '${i.src}'`) + .join('\n')} +const dynamicChunks = { + ${chunks.map(i => ` ['${i.id}']: ${i.name}`).join(',\n')} +}; + +export default function dynamicRequire(id) { + return Promise.resolve(dynamicChunks[id]); +};` +} + +function TMPL_LAZY ({ chunks }: TemplateContext) { + return ` +const dynamicChunks = { +${chunks.map(i => ` ['${i.id}']: () => import('${i.src}')`).join(',\n')} +}; + +export default function dynamicRequire(id) { + return dynamicChunks[id](); +};` +} 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/packages/webpack/src/presets/base.ts b/packages/webpack/src/presets/base.ts index 1149e980b4..af138a1062 100644 --- a/packages/webpack/src/presets/base.ts +++ b/packages/webpack/src/presets/base.ts @@ -125,7 +125,7 @@ function baseAlias (ctx: WebpackConfigContext) { ...ctx.alias, } if (ctx.isClient) { - ctx.alias['#internal/nitro'] = resolve(ctx.nuxt.options.buildDir, 'nitro.client.mjs') + ctx.alias['nitro/runtime'] = resolve(ctx.nuxt.options.buildDir, 'nitro.client.mjs') } } diff --git a/packages/webpack/src/webpack.ts b/packages/webpack/src/webpack.ts index 2328a4104a..17c1595b17 100644 --- a/packages/webpack/src/webpack.ts +++ b/packages/webpack/src/webpack.ts @@ -1,6 +1,7 @@ import pify from 'pify' import webpack from 'webpack' import type { NodeMiddleware } from 'h3' +import { resolve } from 'pathe' import { defineEventHandler, fromNodeMiddleware } from 'h3' import type { MultiWatching } from 'webpack-dev-middleware' import webpackDevMiddleware from 'webpack-dev-middleware' @@ -9,7 +10,8 @@ import type { Compiler, Stats, Watching } from 'webpack' import { defu } from 'defu' import type { NuxtBuilder } from '@nuxt/schema' import { joinURL } from 'ufo' -import { logger, useNuxt } from '@nuxt/kit' +import { logger, useNitro, useNuxt } from '@nuxt/kit' +import type { InputPluginOption } from 'rollup' import { composableKeysPlugin } from '../../vite/src/plugins/composable-keys' import { DynamicBasePlugin } from './plugins/dynamic-base' @@ -18,6 +20,7 @@ import { createMFS } from './utils/mfs' import { registerVirtualModules } from './virtual-modules' import { client, server } from './configs' import { applyPresets, createWebpackConfigContext, getWebpackConfig } from './utils/config' +import { dynamicRequire } from './nitro/plugins/dynamic-require' // TODO: Support plugins // const plugins: string[] = [] @@ -32,6 +35,26 @@ export const bundle: NuxtBuilder['bundle'] = async (nuxt) => { return getWebpackConfig(ctx) }) + /** Inject rollup plugin for Nitro to handle dynamic imports from webpack chunks */ + const nitro = useNitro() + const dynamicRequirePlugin = dynamicRequire({ + dir: resolve(nuxt.options.buildDir, 'dist/server'), + inline: + nitro.options.node === false || nitro.options.inlineDynamicImports, + ignore: [ + 'client.manifest.mjs', + 'server.js', + 'server.cjs', + 'server.mjs', + 'server.manifest.mjs', + ], + }) + const prerenderRollupPlugins = nitro.options._config.rollupConfig!.plugins as InputPluginOption[] + const rollupPlugins = nitro.options.rollupConfig!.plugins as InputPluginOption[] + + prerenderRollupPlugins.push(dynamicRequirePlugin) + rollupPlugins.push(dynamicRequirePlugin) + await nuxt.callHook('webpack:config', webpackConfigs) // Initialize shared MFS for dev diff --git a/patches/ofetch@1.3.4.patch b/patches/ofetch@1.3.4.patch new file mode 100644 index 0000000000..6492d6c218 --- /dev/null +++ b/patches/ofetch@1.3.4.patch @@ -0,0 +1,33 @@ +diff --git a/dist/node.d.cts b/dist/node.d.cts +index d3a39ff53717d267ff4581af714533ff7229799c..4e3db1f3d6defb7b0c40d11589c0ff6cb8391ad5 100644 +--- a/dist/node.d.cts ++++ b/dist/node.d.cts +@@ -1,5 +1,5 @@ + import { $ as $Fetch } from './shared/ofetch.8459ad38.cjs'; +-export { F as FetchError, c as createFetch, a as createFetchError } from './shared/ofetch.8459ad38.cjs'; ++export { C as CreateFetchOptions, g as Fetch, b as FetchContext, F as FetchError, d as FetchOptions, h as FetchRequest, f as FetchResponse, G as GlobalOptions, I as IFetchError, M as MappedResponseType, R as ResponseMap, e as ResponseType, S as SearchParameters, c as createFetch, a as createFetchError } from './shared/ofetch.8459ad38.mjs'; + + declare function createNodeFetch(): (input: RequestInfo, init?: RequestInit) => any; + declare const fetch: typeof globalThis.fetch; +diff --git a/dist/node.d.mts b/dist/node.d.mts +index 3d8b330375ce60178c05292179ec8bac764ae516..bdcc322bd8554fc7e61d5d9760cb9991560560eb 100644 +--- a/dist/node.d.mts ++++ b/dist/node.d.mts +@@ -1,5 +1,5 @@ + import { $ as $Fetch } from './shared/ofetch.8459ad38.mjs'; +-export { F as FetchError, c as createFetch, a as createFetchError } from './shared/ofetch.8459ad38.mjs'; ++export { C as CreateFetchOptions, g as Fetch, b as FetchContext, F as FetchError, d as FetchOptions, h as FetchRequest, f as FetchResponse, G as GlobalOptions, I as IFetchError, M as MappedResponseType, R as ResponseMap, e as ResponseType, S as SearchParameters, c as createFetch, a as createFetchError } from './shared/ofetch.8459ad38.mjs'; + + declare function createNodeFetch(): (input: RequestInfo, init?: RequestInit) => any; + declare const fetch: typeof globalThis.fetch; +diff --git a/dist/node.d.ts b/dist/node.d.ts +index 6a5419d1939000a15958b362f44bf49fb1800207..4b319d2c3051e966274268670e243c5f99e2904d 100644 +--- a/dist/node.d.ts ++++ b/dist/node.d.ts +@@ -1,5 +1,5 @@ + import { $ as $Fetch } from './shared/ofetch.8459ad38.js'; +-export { F as FetchError, c as createFetch, a as createFetchError } from './shared/ofetch.8459ad38.js'; ++export { C as CreateFetchOptions, g as Fetch, b as FetchContext, F as FetchError, d as FetchOptions, h as FetchRequest, f as FetchResponse, G as GlobalOptions, I as IFetchError, M as MappedResponseType, R as ResponseMap, e as ResponseType, S as SearchParameters, c as createFetch, a as createFetchError } from './shared/ofetch.8459ad38.mjs'; + + declare function createNodeFetch(): (input: RequestInfo, init?: RequestInit) => any; + declare const fetch: typeof globalThis.fetch; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ca42f491c4..d38d82f326 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -5,6 +5,9 @@ settings: excludeLinksFromLockfile: false overrides: + nitro: npm:nitro-nightly@3.0.0-beta-28648657.9a717203 + typescript: 5.5.2 + h3: npm:h3-nightly@2.0.0-1718872656.6765a6e '@nuxt/kit': workspace:* '@nuxt/schema': workspace:* '@nuxt/ui-templates': workspace:* @@ -14,7 +17,12 @@ overrides: nuxt: workspace:* rollup: ^4.18.0 vite: 5.3.1 - vue: 3.4.29 + vue: 3.4.30 + +patchedDependencies: + ofetch@1.3.4: + hash: nxc3eojzwynarpj453xzxqr2f4 + path: patches/ofetch@1.3.4.patch importers: @@ -31,22 +39,19 @@ 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.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)) + 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-nightly@2.0.0-1718872656.6765a6e)(happy-dom@14.12.3)(magicast@0.3.4)(nitropack@2.9.6(@opentelemetry/api@1.9.0)(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 '@testing-library/vue': specifier: 8.1.0 - version: 8.1.0(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.5.2)) + version: 8.1.0(@vue/compiler-sfc@3.4.30)(vue@3.4.30(typescript@5.5.2)) '@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 + specifier: 20.14.9 + version: 20.14.9 '@types/semver': specifier: 7.5.8 version: 7.5.8 @@ -55,10 +60,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.7)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(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.7)(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 @@ -87,17 +92,14 @@ importers: specifier: 0.2.4 version: 0.2.4(eslint@9.5.0) execa: - specifier: 9.2.0 - version: 9.2.0 - fs-extra: - specifier: 11.2.0 - version: 11.2.0 + specifier: 9.3.0 + version: 9.3.0 globby: specifier: 14.0.1 version: 14.0.1 h3: - specifier: 1.12.0 - version: 1.12.0 + specifier: npm:h3-nightly@2.0.0-1718872656.6765a6e + version: h3-nightly@2.0.0-1718872656.6765a6e happy-dom: specifier: 14.12.3 version: 14.12.3 @@ -107,9 +109,9 @@ importers: markdownlint-cli: specifier: 0.41.0 version: 0.41.0 - nitropack: - specifier: 2.9.6 - version: 2.9.6(encoding@0.1.13)(magicast@0.3.4) + nitro: + specifier: npm:nitro-nightly@3.0.0-beta-28648657.9a717203 + version: nitro-nightly@3.0.0-beta-28648657.9a717203(@opentelemetry/api@1.9.0)(encoding@0.1.13) nuxi: specifier: 3.12.0 version: 3.12.0 @@ -121,13 +123,13 @@ importers: version: 0.0.10(@nuxtjs/mdc@0.5.0) ofetch: specifier: 1.3.4 - version: 1.3.4 + version: 1.3.4(patch_hash=nxc3eojzwynarpj453xzxqr2f4) pathe: specifier: 1.1.2 version: 1.1.2 playwright-core: - specifier: 1.44.1 - version: 1.44.1 + specifier: 1.45.0 + version: 1.45.0 rimraf: specifier: 5.0.7 version: 5.0.7 @@ -145,19 +147,19 @@ importers: version: 1.5.3 vitest: specifier: 1.6.0 - version: 1.6.0(@types/node@20.14.7)(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.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)) + 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-nightly@2.0.0-1718872656.6765a6e)(happy-dom@14.12.3)(magicast@0.3.4)(nitropack@2.9.6(@opentelemetry/api@1.9.0)(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.29 - version: 3.4.29(typescript@5.5.2) + specifier: 3.4.30 + version: 3.4.30(typescript@5.5.2) vue-router: - specifier: 4.3.3 - version: 4.3.3(vue@3.4.29(typescript@5.5.2)) + specifier: 4.4.0 + version: 4.4.0(vue@3.4.30(typescript@5.5.2)) vue-tsc: - specifier: 2.0.21 - version: 2.0.21(typescript@5.5.2) + specifier: 2.0.22 + version: 2.0.22(typescript@5.5.2) packages/kit: dependencies: @@ -225,18 +227,18 @@ importers: '@types/semver': specifier: 7.5.8 version: 7.5.8 - nitropack: - specifier: 2.9.6 - version: 2.9.6(encoding@0.1.13)(magicast@0.3.4) + nitro: + specifier: npm:nitro-nightly@3.0.0-beta-28648657.9a717203 + version: nitro-nightly@3.0.0-beta-28648657.9a717203(@opentelemetry/api@1.9.0)(encoding@0.1.13) unbuild: specifier: latest 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.7)(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.7)(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 @@ -247,8 +249,8 @@ importers: specifier: ^2.0.2 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.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)) + specifier: ^1.3.6 + 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 @@ -263,7 +265,7 @@ importers: version: link:../vite '@types/node': specifier: ^14.18.0 || >=16.10.0 - version: 20.14.7 + version: 20.14.9 '@unhead/dom': specifier: ^1.9.14 version: 1.9.14 @@ -272,10 +274,10 @@ importers: version: 1.9.14 '@unhead/vue': specifier: ^1.9.14 - version: 1.9.14(vue@3.4.29(typescript@5.5.2)) + version: 1.9.14(vue@3.4.30(typescript@5.5.2)) '@vue/shared': - specifier: ^3.4.29 - version: 3.4.29 + specifier: ^3.4.30 + version: 3.4.30 acorn: specifier: 8.12.0 version: 8.12.0 @@ -306,15 +308,12 @@ 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 h3: - specifier: ^1.12.0 - version: 1.12.0 + specifier: npm:h3-nightly@2.0.0-1718872656.6765a6e + version: h3-nightly@2.0.0-1718872656.6765a6e hookable: specifier: ^5.5.3 version: 5.5.3 @@ -336,9 +335,9 @@ importers: mlly: specifier: ^1.7.1 version: 1.7.1 - nitropack: - specifier: ^2.9.6 - version: 2.9.6(encoding@0.1.13)(magicast@0.3.4) + nitro: + specifier: npm:nitro-nightly@3.0.0-beta-28648657.9a717203 + version: nitro-nightly@3.0.0-beta-28648657.9a717203(@opentelemetry/api@1.9.0)(encoding@0.1.13) nuxi: specifier: ^3.12.0 version: 3.12.0 @@ -347,7 +346,7 @@ importers: version: 0.3.8 ofetch: specifier: ^1.3.4 - version: 1.3.4 + version: 1.3.4(patch_hash=nxc3eojzwynarpj453xzxqr2f4) ohash: specifier: ^1.1.3 version: 1.1.3 @@ -397,17 +396,17 @@ importers: specifier: ^1.10.1 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.5.2)))(vue@3.4.29(typescript@5.5.2)) + specifier: ^0.10.0 + 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)) unstorage: specifier: ^1.10.2 - version: 1.10.2(ioredis@5.3.2) + version: 1.10.2(ioredis@5.4.1) untyped: specifier: ^1.4.2 version: 1.4.2 vue: - specifier: 3.4.29 - version: 3.4.29(typescript@5.5.2) + specifier: 3.4.30 + version: 3.4.30(typescript@5.5.2) vue-bundle-renderer: specifier: ^2.1.0 version: 2.1.0 @@ -415,12 +414,12 @@ importers: specifier: ^0.1.0 version: 0.1.0 vue-router: - specifier: ^4.3.3 - version: 4.3.3(vue@3.4.29(typescript@5.5.2)) + specifier: ^4.4.0 + version: 4.4.0(vue@3.4.30(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.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)) + 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.4.1)(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 @@ -430,24 +429,21 @@ 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)) + 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.29 - version: 3.4.29 + specifier: 3.4.30 + version: 3.4.30 unbuild: specifier: latest 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.7)(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.7)(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: @@ -508,19 +504,19 @@ importers: version: 1.9.14 '@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)) + 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.7)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(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.29 - version: 3.4.29 + specifier: 3.4.30 + version: 3.4.30 '@vue/compiler-sfc': - specifier: 3.4.29 - version: 3.4.29 + specifier: 3.4.30 + version: 3.4.30 '@vue/language-core': - specifier: 2.0.21 - version: 2.0.21(typescript@5.5.2) + specifier: 2.0.22 + version: 2.0.22(typescript@5.5.2) c12: specifier: 1.11.1 version: 1.11.1(magicast@0.3.4) @@ -528,17 +524,17 @@ importers: specifier: 4.2.0 version: 4.2.0(webpack@5.92.1) h3: - specifier: 1.12.0 - version: 1.12.0 + specifier: npm:h3-nightly@2.0.0-1718872656.6765a6e + version: h3-nightly@2.0.0-1718872656.6765a6e ignore: specifier: 5.3.1 version: 5.3.1 - nitropack: - specifier: 2.9.6 - version: 2.9.6(encoding@0.1.13)(magicast@0.3.4) + nitro: + specifier: npm:nitro-nightly@3.0.0-beta-28648657.9a717203 + version: nitro-nightly@3.0.0-beta-28648657.9a717203(@opentelemetry/api@1.9.0)(encoding@0.1.13) ofetch: specifier: 1.3.4 - version: 1.3.4 + version: 1.3.4(patch_hash=nxc3eojzwynarpj453xzxqr2f4) unbuild: specifier: latest version: 2.0.0(sass@1.69.4)(typescript@5.5.2) @@ -550,19 +546,19 @@ importers: version: 1.9.0 vite: specifier: 5.3.1 - version: 5.3.1(@types/node@20.14.7)(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.29 - version: 3.4.29(typescript@5.5.2) + specifier: 3.4.30 + version: 3.4.30(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.5.2))(webpack@5.92.1) + version: 17.4.2(@vue/compiler-sfc@3.4.30)(vue@3.4.30(typescript@5.5.2))(webpack@5.92.1) vue-router: - specifier: 4.3.3 - version: 4.3.3(vue@3.4.29(typescript@5.5.2)) + specifier: 4.4.0 + version: 4.4.0(vue@3.4.30(typescript@5.5.2)) webpack: specifier: 5.92.1 version: 5.92.1 @@ -579,11 +575,11 @@ importers: specifier: 0.61.0 version: 0.61.0 critters: - specifier: 0.0.22 - version: 0.0.22 + specifier: 0.0.24 + version: 0.0.24 execa: - specifier: 9.2.0 - version: 9.2.0 + specifier: 9.3.0 + version: 9.3.0 globby: specifier: 14.0.1 version: 14.0.1 @@ -607,10 +603,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.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)) + 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.7)(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: @@ -622,10 +618,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.7)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(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.7)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(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) @@ -653,15 +649,12 @@ 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 h3: - specifier: ^1.12.0 - version: 1.12.0 + specifier: npm:h3-nightly@2.0.0-1718872656.6765a6e + version: h3-nightly@2.0.0-1718872656.6765a6e knitwork: specifier: ^1.1.0 version: 1.1.0 @@ -706,13 +699,13 @@ importers: version: 1.10.1 vite: specifier: 5.3.1 - version: 5.3.1(@types/node@20.14.7)(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.7)(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.7)(sass@1.69.4)(terser@5.27.0))(vue-tsc@2.0.21(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 @@ -726,9 +719,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 @@ -736,8 +726,8 @@ importers: specifier: latest version: 2.0.0(sass@1.69.4)(typescript@5.5.2) vue: - specifier: 3.4.29 - version: 3.4.29(typescript@5.5.2) + specifier: 3.4.30 + version: 3.4.30(typescript@5.5.2) packages/webpack: dependencies: @@ -777,15 +767,18 @@ 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 + globby: + specifier: ^14.0.1 + version: 14.0.1 h3: - specifier: ^1.12.0 - version: 1.12.0 + specifier: npm:h3-nightly@2.0.0-1718872656.6765a6e + version: h3-nightly@2.0.0-1718872656.6765a6e hash-sum: specifier: ^2.0.0 version: 2.0.0 + knitwork: + specifier: ^1.1.0 + version: 1.1.0 lodash-es: specifier: 4.17.21 version: 4.17.21 @@ -851,7 +844,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.5.2))(webpack@5.92.1) + version: 17.4.2(@vue/compiler-sfc@3.4.30)(vue@3.4.30(typescript@5.5.2))(webpack@5.92.1) webpack: specifier: ^5.92.1 version: 5.92.1 @@ -874,9 +867,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 @@ -892,12 +882,15 @@ importers: '@types/webpack-hot-middleware': specifier: 2.25.9 version: 2.25.9 + rollup: + specifier: ^4.18.0 + version: 4.18.0 unbuild: specifier: latest version: 2.0.0(sass@1.69.4)(typescript@5.5.2) vue: - specifier: 3.4.29 - version: 3.4.29(typescript@5.5.2) + specifier: 3.4.30 + version: 3.4.30(typescript@5.5.2) playground: dependencies: @@ -909,7 +902,7 @@ importers: version: 6.6.3 '@vue/shared': specifier: latest - version: 3.4.29 + version: 3.4.30 nuxt: specifier: workspace:* version: link:../packages/nuxt @@ -917,8 +910,8 @@ importers: specifier: latest version: 1.9.14 vue: - specifier: 3.4.29 - version: 3.4.29(typescript@5.5.2) + specifier: 3.4.30 + version: 3.4.30(typescript@5.5.2) test/fixtures/basic: dependencies: @@ -940,7 +933,7 @@ importers: version: 6.6.3 '@vue/shared': specifier: latest - version: 3.4.29 + version: 3.4.30 iron-webcrypto: specifier: latest version: 1.2.1 @@ -954,8 +947,8 @@ importers: specifier: latest version: 1.10.1 vue: - specifier: 3.4.29 - version: 3.4.29(typescript@5.5.2) + specifier: 3.4.30 + version: 3.4.30(typescript@5.5.2) test/fixtures/basic-types: dependencies: @@ -965,19 +958,19 @@ importers: devDependencies: ofetch: specifier: latest - version: 1.3.4 + version: 1.3.4(patch_hash=nxc3eojzwynarpj453xzxqr2f4) 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.5.2)))(vue@3.4.29(typescript@5.5.2)) + specifier: ^0.10.0 + 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.7)(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.29 - version: 3.4.29(typescript@5.5.2) + specifier: 3.4.30 + version: 3.4.30(typescript@5.5.2) vue-router: specifier: latest - version: 4.3.3(vue@3.4.29(typescript@5.5.2)) + version: 4.4.0(vue@3.4.30(typescript@5.5.2)) test/fixtures/minimal: dependencies: @@ -985,8 +978,8 @@ importers: specifier: workspace:* version: link:../../../packages/nuxt vue: - specifier: 3.4.29 - version: 3.4.29(typescript@5.5.2) + specifier: 3.4.30 + version: 3.4.30(typescript@5.5.2) test/fixtures/minimal-types: dependencies: @@ -994,8 +987,8 @@ importers: specifier: workspace:* version: link:../../../packages/nuxt vue: - specifier: 3.4.29 - version: 3.4.29(typescript@5.5.2) + specifier: 3.4.30 + version: 3.4.30(typescript@5.5.2) test/fixtures/runtime-compiler: dependencies: @@ -1011,7 +1004,7 @@ importers: version: 6.6.3 '@vue/shared': specifier: latest - version: 3.4.29 + version: 3.4.30 unhead: specifier: latest version: 1.9.14 @@ -1022,8 +1015,8 @@ importers: specifier: workspace:* version: link:../../../packages/nuxt vue: - specifier: 3.4.29 - version: 3.4.29(typescript@5.5.2) + specifier: 3.4.30 + version: 3.4.30(typescript@5.5.2) devDependencies: '@unhead/shared': specifier: latest @@ -1033,9 +1026,9 @@ importers: version: 6.6.3 '@vue/shared': specifier: latest - version: 3.4.29 + version: 3.4.30 typescript: - specifier: latest + specifier: 5.5.2 version: 5.5.2 unhead: specifier: latest @@ -1248,8 +1241,9 @@ packages: '@bcoe/v8-coverage@0.2.3': resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} - '@cloudflare/kv-asset-handler@0.3.1': - resolution: {integrity: sha512-lKN2XCfKCmpKb86a1tl4GIwsJYDy9TGuwjhDELLmpKygQhw8X2xR4dusgpC5Tg7q1pB96Eb0rBo81kxSILQMwA==} + '@cloudflare/kv-asset-handler@0.3.3': + resolution: {integrity: sha512-wpE+WiWW2kUNwNE0xyl4CtTAs+STjGtouHGiZPGRaisGB7eXXdbvfZdOrQJQVKgTxZiNAgVgmc7fj0sUmd8zyA==} + engines: {node: '>=16.13'} '@discoveryjs/json-ext@0.5.7': resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==} @@ -1941,17 +1935,17 @@ packages: resolution: {integrity: sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==} hasBin: true - '@netlify/functions@2.6.0': - resolution: {integrity: sha512-vU20tij0fb4nRGACqb+5SQvKd50JYyTyEhQetCMHdakcJFzjLDivvRR16u1G2Oy4A7xNAtGJF1uz8reeOtTVcQ==} + '@netlify/functions@2.7.0': + resolution: {integrity: sha512-4pXC/fuj3eGQ86wbgPiM4zY8+AsNrdz6vcv6FEdUJnZW+LqF8IWjQcY3S0d1hLeLKODYOqq4CkrzGyCpce63Nw==} engines: {node: '>=14.0.0'} '@netlify/node-cookies@0.1.0': resolution: {integrity: sha512-OAs1xG+FfLX0LoRASpqzVntVV/RpYkgpI0VrUnw2u0Q1qiZUzcPffxRK8HF3gc4GjuhG5ahOEMJ9bswBiZPq0g==} engines: {node: ^14.16.0 || >=16.0.0} - '@netlify/serverless-functions-api@1.14.0': - resolution: {integrity: sha512-HUNETLNvNiC2J+SB/YuRwJA9+agPrc0azSoWVk8H85GC+YE114hcS5JW+dstpKwVerp2xILE3vNWN7IMXP5Q5Q==} - engines: {node: ^14.18.0 || >=16.0.0} + '@netlify/serverless-functions-api@1.18.1': + resolution: {integrity: sha512-DrSvivchuwsuQW03zbVPT3nxCQa5tn7m4aoPOsQKibuJXIuSbfxzCBxPLz0+LchU5ds7YyOaCc9872Y32ngYzg==} + engines: {node: '>=18.0.0'} '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} @@ -2011,20 +2005,24 @@ packages: nuxt: workspace:* vite: 5.3.1 + '@nuxt/devtools-kit@1.3.6': + resolution: {integrity: sha512-FM0s9CrTxwvaMcakWZc7oGqzSj4GPalcY3PmyZhollMyR2dqBB1n0ZfnTdLm8KUSgc7jdFR6DuG7PfQwAm06tQ==} + peerDependencies: + vite: 5.3.1 + '@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==} + '@nuxt/devtools-wizard@1.3.6': + resolution: {integrity: sha512-M6kEkYCC0EsvvNKXXeVSSBDrUMHNkCyq+E8o+8LEPDQvhZ5pOsB6hpxt0DR+2sOE18zAcHSWeSurnwbW7ac4hA==} hasBin: true - '@nuxt/devtools@1.3.3': - resolution: {integrity: sha512-rlFIggkUfYvSSZRkk7v9L4aqgmnCGSzcaYJYPA+RGtJQy7asJ3Ziqx/iXnj9Ih81L6vL/BqbX9G49beJGqL/MQ==} + '@nuxt/devtools@1.3.6': + resolution: {integrity: sha512-M3sRQDKG/iK+iQmvIl9vfEgc/Nv1D6S7GFvhmq1s7ZCSkrmZPGWLxRkIAJOwZk+WnvjYUHkN6XCcoi9a1EWmrA==} hasBin: true peerDependencies: - nuxt: workspace:* vite: 5.3.1 '@nuxt/eslint-config@0.3.13': @@ -2060,14 +2058,14 @@ packages: '@testing-library/vue': ^7.0.0 || ^8.0.1 '@vitest/ui': ^0.34.6 || ^1.0.0 '@vue/test-utils': ^2.4.2 - h3: '*' + h3: npm:h3-nightly@2.0.0-1718872656.6765a6e happy-dom: ^9.10.9 || ^10.0.0 || ^11.0.0 || ^12.0.0 || ^13.0.0 || ^14.0.0 jsdom: ^22.0.0 || ^23.0.0 || ^24.0.0 nitropack: '*' playwright-core: ^1.43.1 vite: 5.3.1 vitest: ^0.34.6 || ^1.0.0 - vue: 3.4.29 + vue: 3.4.30 vue-router: ^4.0.0 peerDependenciesMeta: '@cucumber/cucumber': @@ -2100,6 +2098,77 @@ packages: '@one-ini/wasm@0.1.1': resolution: {integrity: sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw==} + '@opentelemetry/api-logs@0.50.0': + resolution: {integrity: sha512-JdZuKrhOYggqOpUljAq4WWNi5nB10PmgoF0y2CvedLGXd0kSawb/UBnWT8gg1ND3bHCNHStAIVT0ELlxJJRqrA==} + engines: {node: '>=14'} + + '@opentelemetry/api@1.9.0': + resolution: {integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==} + engines: {node: '>=8.0.0'} + + '@opentelemetry/core@1.23.0': + resolution: {integrity: sha512-hdQ/a9TMzMQF/BO8Cz1juA43/L5YGtCSiKoOHmrTEf7VMDAZgy8ucpWx3eQTnQ3gBloRcWtzvcrMZABC3PTSKQ==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.9.0' + + '@opentelemetry/core@1.25.1': + resolution: {integrity: sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + + '@opentelemetry/otlp-transformer@0.50.0': + resolution: {integrity: sha512-s0sl1Yfqd5q1Kjrf6DqXPWzErL+XHhrXOfejh4Vc/SMTNqC902xDsC8JQxbjuramWt/+hibfguIvi7Ns8VLolA==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.3.0 <1.9.0' + + '@opentelemetry/resources@1.23.0': + resolution: {integrity: sha512-iPRLfVfcEQynYGo7e4Di+ti+YQTAY0h5mQEUJcHlU9JOqpb4x965O6PZ+wMcwYVY63G96KtdS86YCM1BF1vQZg==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.9.0' + + '@opentelemetry/resources@1.25.1': + resolution: {integrity: sha512-pkZT+iFYIZsVn6+GzM0kSX+u3MSLCY9md+lIJOoKl/P+gJFfxJte/60Usdp8Ce4rOs8GduUpSPNe1ddGyDT1sQ==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + + '@opentelemetry/sdk-logs@0.50.0': + resolution: {integrity: sha512-PeUEupBB29p9nlPNqXoa1PUWNLsZnxG0DCDj3sHqzae+8y76B/A5hvZjg03ulWdnvBLYpnJslqzylG9E0IL87g==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.4.0 <1.9.0' + '@opentelemetry/api-logs': '>=0.39.1' + + '@opentelemetry/sdk-metrics@1.23.0': + resolution: {integrity: sha512-4OkvW6+wST4h6LFG23rXSTf6nmTf201h9dzq7bE0z5R9ESEVLERZz6WXwE7PSgg1gdjlaznm1jLJf8GttypFDg==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.3.0 <1.9.0' + + '@opentelemetry/sdk-trace-base@1.23.0': + resolution: {integrity: sha512-PzBmZM8hBomUqvCddF/5Olyyviayka44O5nDWq673np3ctnvwMOvNrsUORZjKja1zJbwEuD9niAGbnVrz3jwRQ==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.9.0' + + '@opentelemetry/sdk-trace-base@1.25.1': + resolution: {integrity: sha512-C8k4hnEbc5FamuZQ92nTOp8X/diCY56XUTnMiv9UTuJitCzaNNHAVsdm5+HLCdI8SLQsLWIrG38tddMxLVoftw==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + + '@opentelemetry/semantic-conventions@1.23.0': + resolution: {integrity: sha512-MiqFvfOzfR31t8cc74CTP1OZfz7MbqpAnLCra8NqQoaHJX6ncIRTdYOQYBDQ2uFISDq0WY8Y9dDTWvsgzzBYRg==} + engines: {node: '>=14'} + + '@opentelemetry/semantic-conventions@1.25.1': + resolution: {integrity: sha512-ZDjMJJQRlyk8A1KZFCc+bCbsyrn1wTwdNt56F7twdfUfnHUZUq77/WfONCj8p72NZOyP7pNTdUWSTYC3GTbuuQ==} + engines: {node: '>=14'} + '@parcel/watcher-android-arm64@2.4.1': resolution: {integrity: sha512-LOi/WTbbh3aTn2RYddrO8pnapixAziFl6SMxHM69r3tvdSm94JtCenaKgk1GRg5FJ5wpMCpHeW+7yqPlvZv7kg==} engines: {node: '>= 10.0.0'} @@ -2207,6 +2276,15 @@ packages: rollup: optional: true + '@rollup/plugin-commonjs@26.0.1': + resolution: {integrity: sha512-UnsKoZK6/aGIH6AdkptXhNvhaqftcjq3zZdT+LY5Ftms6JR06nADcDsYp5hTU9E2lbJUEOhdlY5J4DNTneM+jQ==} + engines: {node: '>=16.0.0 || 14 >= 14.17'} + peerDependencies: + rollup: ^4.18.0 + peerDependenciesMeta: + rollup: + optional: true + '@rollup/plugin-inject@5.0.5': resolution: {integrity: sha512-2+DEJbNBoPROPkgTDNe8/1YXWcqxbN5DTjASVIOx8HS+pITXushyNiBV56RB08zuptzz8gT3YfkqriTBVycepg==} engines: {node: '>=14.0.0'} @@ -2357,9 +2435,6 @@ packages: '@shikijs/core@1.1.6': resolution: {integrity: sha512-kt9hhvrWTm0EPtRDIsoAZnSsFlIDBVBBI5CQewpA/NZCPin+MOKRXg+JiWc4y+8fZ/v0HzfDhu/UC+OTZGMt7A==} - '@shikijs/core@1.3.0': - resolution: {integrity: sha512-7fedsBfuILDTBmrYZNFI8B6ATTxhQAasUHllHmjvSZPnoq4bULWoTpHwmuQvZ8Aq03/tAa2IGo6RXqWtHdWaCA==} - '@shikijs/core@1.6.4': resolution: {integrity: sha512-WTU9rzZae1p2v6LOxMf6LhtmZOkIHYYW160IuahUyJy7YXPPjyWZLR1ag+SgD22ZMxZtz1gfU6Tccc8t0Il/XA==} @@ -2449,7 +2524,7 @@ packages: engines: {node: '>=14'} peerDependencies: '@vue/compiler-sfc': '>= 3' - vue: 3.4.29 + vue: 3.4.30 peerDependenciesMeta: '@vue/compiler-sfc': optional: true @@ -2496,9 +2571,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 +2598,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==} @@ -2544,8 +2613,8 @@ packages: '@types/node-sass@4.11.6': resolution: {integrity: sha512-Qkf5Fs9zzsXchenUY7oVdIHyv8FtPgqIXqOJzhh3FDqpYjqvc/gtZ3hlZVFmKQhl7wyI4+WkRbYufYC5pfY7iw==} - '@types/node@20.14.7': - resolution: {integrity: sha512-uTr2m2IbJJucF3KUxgnGOZvYbN0QgkGyWxG6973HCpMYFy2KfcgYuIwkJQMQkt1VbBMlvWRbpshFTLxnxCZjKQ==} + '@types/node@20.14.9': + resolution: {integrity: sha512-06OCtnTXtWOZBJlRApleWndH4JsRVs1pDCc8dLSQp+7PpUpX3ePdHyeNSFTeSe7FtKyQkrlPvHwJOW3SLd8Oyg==} '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -2692,7 +2761,7 @@ packages: '@unhead/vue@1.9.14': resolution: {integrity: sha512-Yc7Qv0ze+iLte4urHiA+ghkF7y+svrawrT+ZrCuGXkZ/eRTF/AY2SKex+rJQJZsP+fKEQ2pGb72IsI5kHFZT3A==} peerDependencies: - vue: 3.4.29 + vue: 3.4.30 '@unocss/astro@0.60.4': resolution: {integrity: sha512-mfWiEVCUP00gxrMewwPfnTuw+ur5b6uIBRH2tIGkvfI21rLyZw8TIF08w7USz9C/47rvzsixBtCqq7v0g3Tw9w==} @@ -2874,8 +2943,13 @@ packages: peerDependencies: webpack: ^4 || ^5 - '@vercel/nft@0.26.4': - resolution: {integrity: sha512-j4jCOOXke2t8cHZCIxu1dzKLHLcFmYzC3yqAK6MfZznOL1QIJKd0xcFsXK3zcqzU7ScsE2zWkiMMNHGMHgp+FA==} + '@vercel/nft@0.26.5': + resolution: {integrity: sha512-NHxohEqad6Ra/r4lGknO52uc/GrWILXAMs1BB4401GTqww0fw1bAqzpG1XHuDO+dprg4GvsD9ZLLSsdo78p9hQ==} + engines: {node: '>=16'} + hasBin: true + + '@vercel/nft@0.27.2': + resolution: {integrity: sha512-7LeioS1yE5hwPpQfD3DdH04tuugKjo5KrJk3yK5kAI3Lh76iSsK/ezoFQfzuT08X3ZASQOd1y9ePjLNI9+TxTQ==} engines: {node: '>=16'} hasBin: true @@ -2884,14 +2958,14 @@ packages: engines: {node: ^18.0.0 || >=20.0.0} peerDependencies: vite: 5.3.1 - vue: 3.4.29 + vue: 3.4.30 '@vitejs/plugin-vue@5.0.4': resolution: {integrity: sha512-WS3hevEszI6CEVEx28F8RjTX97k3KsrcY6kvTg7+Whm5y3oYvcqzVeGCU3hxSAn4uY2CLCkeokkGKpoctccilQ==} engines: {node: ^18.0.0 || >=20.0.0} peerDependencies: vite: 5.3.1 - vue: 3.4.29 + vue: 3.4.30 '@vitest/coverage-v8@1.6.0': resolution: {integrity: sha512-KvapcbMY/8GYIG0rlwwOKCVNRc0OL20rrhFkg/CHNzncV03TE2XWvO5w9uZYoxNiMEBacAJt3unSOiZ7svePew==} @@ -2916,23 +2990,23 @@ packages: '@volar/language-core@1.11.1': resolution: {integrity: sha512-dOcNn3i9GgZAcJt43wuaEykSluAuOkQgzni1cuxLxTV0nJKanQztp7FxyswdRILaKH+P2XZMPRp2S4MV/pElCw==} - '@volar/language-core@2.3.0-alpha.15': - resolution: {integrity: sha512-uSfn1Dsl1w9o2aN9nnS6N/4FcjSbmpY6P/ypfW4kRhasEyICstu4swIz2joNR6532R02JwJY9Ta0pxRmXbBOqw==} + '@volar/language-core@2.3.3': + resolution: {integrity: sha512-Blu4NQaRszEsgK/QvWFRSQPRAhPDbYef+peFV9Gb86swxRCs01q7h673/HYstaPsTbjh/F5mXjozoOFxQ8tLYw==} '@volar/source-map@1.11.1': resolution: {integrity: sha512-hJnOnwZ4+WT5iupLRnuzbULZ42L7BWWPMmruzwtLhJfpDVoZLjNBxHDi2sY2bgZXCKlpU5XcsMFoYrsQmPhfZg==} - '@volar/source-map@2.3.0-alpha.15': - resolution: {integrity: sha512-DQr3FwhRxtxX4W6BoJkwajWjj6BAF5H/SgtzFaUP9z8txn6Y5oFxZPPDG+3Xwu3pTV3gvVlE7AL5E/G1jUr5Yg==} + '@volar/source-map@2.3.3': + resolution: {integrity: sha512-eFRHA13hxiGPt+Xa0EX3yNd50ozctnW5KzQj/IllKmSK/KuBEkSAsIhBdOxCpv1YhV4GmI3iKG9peOs6k9LtnA==} - '@volar/typescript@2.3.0-alpha.15': - resolution: {integrity: sha512-sTzUyqGC1wkzVyY0XZBO5smCPDRvIqxlMTUw7bZebuD/7sGaVfyk9ryE29aG6CLpuYDev/ugpQsKoFVhFaQQ8A==} + '@volar/typescript@2.3.3': + resolution: {integrity: sha512-cwGMSwqIR54Hngu5dYmUJPHFpo6KGj7BlpwT2G9WTKwEjFlH4g/0IPeq064428DAi/VMP42vqAQSBiEHi5Gc4A==} - '@vue-macros/common@1.10.1': - resolution: {integrity: sha512-uftSpfwdwitcQT2lM8aVxcfe5rKQBzC9jMrtJM5sG4hEuFyfIvnJihpPpnaWxY+X4p64k+YYXtBFv+1O5Bq3dg==} + '@vue-macros/common@1.10.4': + resolution: {integrity: sha512-akO6Bd6U4jP0+ZKbHq6mbYkw1coOrJpLeVmkuMlUsT5wZRi11BjauGcZHusBSzUjgCBsa1kZTyipxrxrWB54Hw==} engines: {node: '>=16.14.0'} peerDependencies: - vue: 3.4.29 + vue: 3.4.30 peerDependenciesMeta: vue: optional: true @@ -2953,84 +3027,66 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@vue/compiler-core@3.4.29': - resolution: {integrity: sha512-TFKiRkKKsRCKvg/jTSSKK7mYLJEQdUiUfykbG49rubC9SfDyvT2JrzTReopWlz2MxqeLyxh9UZhvxEIBgAhtrg==} + '@vue/compiler-core@3.4.30': + resolution: {integrity: sha512-ZL8y4Xxdh8O6PSwfdZ1IpQ24PjTAieOz3jXb/MDTfDtANcKBMxg1KLm6OX2jofsaQGYfIVzd3BAG22i56/cF1w==} - '@vue/compiler-dom@3.4.29': - resolution: {integrity: sha512-A6+iZ2fKIEGnfPJejdB7b1FlJzgiD+Y/sxxKwJWg1EbJu6ZPgzaPQQ51ESGNv0CP6jm6Z7/pO6Ia8Ze6IKrX7w==} + '@vue/compiler-dom@3.4.30': + resolution: {integrity: sha512-+16Sd8lYr5j/owCbr9dowcNfrHd+pz+w2/b5Lt26Oz/kB90C9yNbxQ3bYOvt7rI2bxk0nqda39hVcwDFw85c2Q==} - '@vue/compiler-sfc@3.4.29': - resolution: {integrity: sha512-zygDcEtn8ZimDlrEQyLUovoWgKQic6aEQqRXce2WXBvSeHbEbcAsXyCk9oG33ZkyWH4sl9D3tkYc1idoOkdqZQ==} + '@vue/compiler-sfc@3.4.30': + resolution: {integrity: sha512-8vElKklHn/UY8+FgUFlQrYAPbtiSB2zcgeRKW7HkpSRn/JjMRmZvuOtwDx036D1aqKNSTtXkWRfqx53Qb+HmMg==} - '@vue/compiler-ssr@3.4.29': - resolution: {integrity: sha512-rFbwCmxJ16tDp3N8XCx5xSQzjhidYjXllvEcqX/lopkoznlNPz3jyy0WGJCyhAaVQK677WWFt3YO/WUEkMMUFQ==} + '@vue/compiler-ssr@3.4.30': + resolution: {integrity: sha512-ZJ56YZGXJDd6jky4mmM0rNaNP6kIbQu9LTKZDhcpddGe/3QIalB1WHHmZ6iZfFNyj5mSypTa4+qDJa5VIuxMSg==} '@vue/devtools-api@6.6.3': resolution: {integrity: sha512-0MiMsFma/HqA6g3KLKn+AGpL1kgKhFWszC9U29NfpWK5LE7bjeXxySWJrOJ77hBz+TBrBQ7o4QJqbPbqbs8rJw==} - '@vue/devtools-applet@7.1.3': - resolution: {integrity: sha512-525h17FzUF7ssko/U+yeP5jv0HaGm3eI4dVqncWPRCLTDtOy1V+srjoxYqr5qnzx6AdIU2icPQF2KNomd9FGZw==} - peerDependencies: - vue: 3.4.29 + '@vue/devtools-core@7.3.3': + resolution: {integrity: sha512-i6Bwkx4OwfY0QVHjAdsivhlzZ2HMj7fbNRYJsWspQ+dkA1f3nTzycPqZmVUsm2TGkbQlhTMhCAdDoP97JKoc+g==} - '@vue/devtools-core@7.1.3': - resolution: {integrity: sha512-pVbWi8pf2Z/fZPioYOIgu+cv9pQG55k4D8bL31ec+Wfe+pQR0ImFDu0OhHfch1Ra8uvLLrAZTF4IKeGAkmzD4A==} + '@vue/devtools-kit@7.3.3': + resolution: {integrity: sha512-m+dFI57BrzKYPKq73mt4CJ5GWld5OLBseLHPHGVP7CaILNY9o1gWVJWAJeF8XtQ9LTiMxZSaK6NcBsFuxAhD0g==} - '@vue/devtools-kit@7.1.3': - resolution: {integrity: sha512-NFskFSJMVCBXTkByuk2llzI3KD3Blcm7WqiRorWjD6nClHPgkH5BobDH08rfulqq5ocRt5xV+3qOT1Q9FXJrwQ==} - peerDependencies: - vue: 3.4.29 - - '@vue/devtools-shared@7.1.3': - resolution: {integrity: sha512-KJ3AfgjTn3tJz/XKF+BlVShNPecim3G21oHRue+YQOsooW+0s+qXvm09U09aO7yBza5SivL1QgxSrzAbiKWjhQ==} - - '@vue/devtools-ui@7.1.3': - resolution: {integrity: sha512-gO2EV3T0wO+HK884+m6UgTEirNOuf+k8U4PcR0vIYA97/A9nTzv9HheCRyFMiHMePYxnlBOsgD7K2fp1/M+EWA==} - peerDependencies: - '@unocss/reset': '>=0.50.0-0' - floating-vue: '>=2.0.0-0' - unocss: '>=0.50.0-0' - vue: 3.4.29 + '@vue/devtools-shared@7.3.4': + resolution: {integrity: sha512-5S5cHh7oWLZdboujnLteR3rT8UGfKHfA34aGLyFRB/B5TqBxmeLW1Rq32xW6TCDEy4isoYsYHGwJVp6DQcpiDA==} '@vue/language-core@1.8.27': resolution: {integrity: sha512-L8Kc27VdQserNaCUNiSFdDl9LWT24ly8Hpwf1ECy3aFb9m6bDhBGQYOujDm21N7EW3moKIOKEanQwe1q5BK+mA==} peerDependencies: - typescript: '*' + typescript: 5.5.2 peerDependenciesMeta: typescript: optional: true - '@vue/language-core@2.0.21': - resolution: {integrity: sha512-vjs6KwnCK++kIXT+eI63BGpJHfHNVJcUCr3RnvJsccT3vbJnZV5IhHR2puEkoOkIbDdp0Gqi1wEnv3hEd3WsxQ==} + '@vue/language-core@2.0.22': + resolution: {integrity: sha512-dNTAAtEOuMiz7N1s5tKpypnVVCtawxVSF5BukD0ELcYSw+DSbrSlYYSw8GuwvurodCeYFSHsmslE+c2sYDNoiA==} peerDependencies: - typescript: '*' + typescript: 5.5.2 peerDependenciesMeta: typescript: optional: true - '@vue/reactivity@3.4.29': - resolution: {integrity: sha512-w8+KV+mb1a8ornnGQitnMdLfE0kXmteaxLdccm2XwdFxXst4q/Z7SEboCV5SqJNpZbKFeaRBBJBhW24aJyGINg==} + '@vue/reactivity@3.4.30': + resolution: {integrity: sha512-bVJurnCe3LS0JII8PPoAA63Zd2MBzcKrEzwdQl92eHCcxtIbxD2fhNwJpa+KkM3Y/A4T5FUnmdhgKwOf6BfbcA==} - '@vue/runtime-core@3.4.29': - resolution: {integrity: sha512-s8fmX3YVR/Rk5ig0ic0NuzTNjK2M7iLuVSZyMmCzN/+Mjuqqif1JasCtEtmtoJWF32pAtUjyuT2ljNKNLeOmnQ==} + '@vue/runtime-core@3.4.30': + resolution: {integrity: sha512-qaFEbnNpGz+tlnkaualomogzN8vBLkgzK55uuWjYXbYn039eOBZrWxyXWq/7qh9Bz2FPifZqGjVDl/FXiq9L2g==} - '@vue/runtime-dom@3.4.29': - resolution: {integrity: sha512-gI10atCrtOLf/2MPPMM+dpz3NGulo9ZZR9d1dWo4fYvm+xkfvRrw1ZmJ7mkWtiJVXSsdmPbcK1p5dZzOCKDN0g==} + '@vue/runtime-dom@3.4.30': + resolution: {integrity: sha512-tV6B4YiZRj5QsaJgw2THCy5C1H+2UeywO9tqgWEc21tn85qHEERndHN/CxlyXvSBFrpmlexCIdnqPuR9RM9thw==} - '@vue/server-renderer@3.4.29': - resolution: {integrity: sha512-HMLCmPI2j/k8PVkSBysrA2RxcxC5DgBiCdj7n7H2QtR8bQQPqKAe8qoaxLcInzouBmzwJ+J0x20ygN/B5mYBng==} + '@vue/server-renderer@3.4.30': + resolution: {integrity: sha512-TBD3eqR1DeDc0cMrXS/vEs/PWzq1uXxnvjoqQuDGFIEHFIwuDTX/KWAQKIBjyMWLFHEeTDGYVsYci85z2UbTDg==} peerDependencies: - vue: 3.4.29 + vue: 3.4.30 - '@vue/shared@3.4.29': - resolution: {integrity: sha512-hQ2gAQcBO/CDpC82DCrinJNgOHI2v+FA7BDW4lMSPeBpQ7sRe2OLHWe5cph1s7D8DUQAwRt18dBDfJJ220APEA==} + '@vue/shared@3.4.30': + resolution: {integrity: sha512-CLg+f8RQCHQnKvuHY9adMsMaQOcqclh6Z5V9TaoMgy0ut0tz848joZ7/CYFFyF/yZ5i2yaw7Fn498C+CNZVHIg==} '@vue/test-utils@2.4.6': resolution: {integrity: sha512-FMxEjOpYNYiFe0GkaHsnJPXFHxQ6m4t8vI/ElPGpMWxZKpmRvQ33OIrvRXemy6yha03RxhOlQuy+gZMC3CQSow==} - '@vueuse/components@10.9.0': - resolution: {integrity: sha512-BHQpA0yIi3y7zKa1gYD0FUzLLkcRTqVhP8smnvsCK6GFpd94Nziq1XVPD7YpFeho0k5BzbBiNZF7V/DpkJ967A==} - '@vueuse/core@10.10.0': resolution: {integrity: sha512-vexJ/YXYs2S42B783rI95lMt3GzEwkxzC8Hb0Ndpd8rD+p+Lk/Za4bd797Ym7yq4jXqdSyj3JLChunF/vyYjUw==} @@ -3309,16 +3365,12 @@ packages: assertion-error@1.1.0: resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} - ast-kit@0.11.3: - resolution: {integrity: sha512-qdwwKEhckRk0XE22/xDdmU3v/60E8Edu4qFhgTLIhGGDs/PAJwLw9pQn8Rj99PitlbBZbYpx0k/lbir4kg0SuA==} + ast-kit@0.12.2: + resolution: {integrity: sha512-es1zHFsnZ4Y4efz412nnrU3KvVAhgqy90a7Yt9Wpi5vQ3l4aYMOX0Qx4FD0elKr5ITEhiUGCSFcgGYf4YTuACg==} engines: {node: '>=16.14.0'} - ast-kit@0.9.5: - resolution: {integrity: sha512-kbL7ERlqjXubdDd+szuwdlQ1xUxEz9mCz1+m07ftNVStgwRb2RWw+U6oKo08PAvOishMxiqz1mlJyLl8yQx2Qg==} - engines: {node: '>=16.14.0'} - - ast-walker-scope@0.5.0: - resolution: {integrity: sha512-NsyHMxBh4dmdEHjBo1/TBZvCKxffmZxRYhmclfu0PP6Aftre47jOHYaYaNqJcV0bxihxFXhDkzLHUwHc0ocd0Q==} + ast-walker-scope@0.6.1: + resolution: {integrity: sha512-0ZdQEsSfH3mX4BFbRCc3xOBjx5bDbm73+aAdQOHerPQNf8K0XFMAv79ucd2BpnSc4UMyvBDixiroT8yjm2Y6bw==} engines: {node: '>=16.14.0'} async-sema@3.1.1: @@ -3644,6 +3696,10 @@ packages: cookie-es@1.1.0: resolution: {integrity: sha512-L2rLOcK0wzWSfSDA33YR+PUHDG10a8px7rUHKWbGLP4YfbsMed2KFUw5fczvDPbT98DDe3LEzviswl810apTEw==} + copy-anything@3.0.5: + resolution: {integrity: sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==} + engines: {node: '>=12.13'} + core-js-compat@3.37.1: resolution: {integrity: sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg==} @@ -3654,7 +3710,7 @@ packages: resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} engines: {node: '>=14'} peerDependencies: - typescript: '>=4.9.5' + typescript: 5.5.2 peerDependenciesMeta: typescript: optional: true @@ -3663,7 +3719,7 @@ packages: resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} engines: {node: '>=14'} peerDependencies: - typescript: '>=4.9.5' + typescript: 5.5.2 peerDependenciesMeta: typescript: optional: true @@ -3680,11 +3736,11 @@ packages: create-require@1.1.1: resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} - critters@0.0.22: - resolution: {integrity: sha512-NU7DEcQZM2Dy8XTKFHxtdnIM/drE312j2T4PCVaSUcS0oBeyT/NImpRw/Ap0zOr/1SE7SgPK9tGPg1WK/sVakw==} + 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==} + croner@8.0.2: + resolution: {integrity: sha512-HgSdlSUX8mIgDTTiQpWUP4qY4IFRMsduPCYdca34Pelt8MVdxdaDOzreFtCscA6R+cRZd7UbD1CD3uyx6J3X1A==} engines: {node: '>=18.0'} cronstrue@2.50.0: @@ -3830,8 +3886,8 @@ packages: supports-color: optional: true - debug@4.3.4: - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + debug@4.3.5: + resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==} engines: {node: '>=6.0'} peerDependencies: supports-color: '*' @@ -3975,6 +4031,10 @@ packages: resolution: {integrity: sha512-xaBe6ZT4DHPkg0k4Ytbvn5xoxgpG0jOS1dYxSOwAHPuNLjP3/OzN0gH55SrLqpx8cBfSaVt91lXYkApjb+nYdQ==} engines: {node: '>=16'} + dot-prop@9.0.0: + resolution: {integrity: sha512-1gxPBJpI/pcjQhKgIU91II6Wkay+dLcN3M6rf2uwP8hRur3HtQXjVrdAK3sjC0piaEuxzMwjXChcETiJl47lAQ==} + engines: {node: '>=18'} + dotenv@16.4.5: resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} engines: {node: '>=12'} @@ -4045,8 +4105,8 @@ packages: error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} - error-stack-parser-es@0.1.1: - resolution: {integrity: sha512-g/9rfnvnagiNf+DRMHEVGuGuIBlCIMDFoTA616HaP2l9PlCjGjVhD98PNbVSJvmK4TttqT5mV5tInMhoFgi+aA==} + error-stack-parser-es@0.1.4: + resolution: {integrity: sha512-l0uy0kAoo6toCgVOYaAayqtPa2a1L15efxUMEnQebKwLQX2X0OpS6wMMQdc4juJXmxd9i40DuaUHq+mjIya9TQ==} error-stack-parser@2.1.4: resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==} @@ -4258,8 +4318,8 @@ packages: resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} engines: {node: '>=16.17'} - execa@9.2.0: - resolution: {integrity: sha512-vpOyYg7UAVKLAWWtRS2gAdgkT7oJbCn0me3gmUmxZih4kd3MF/oo8kNTBTIbkO3yuuF5uB4ZCZfn8BOolITYhg==} + execa@9.3.0: + resolution: {integrity: sha512-l6JFbqnHEadBoVAVpN5dl2yCyfX28WoBAGaoQcNmLLSedOxTxcn2Qa83s8I/PA5i56vWru2OHOtrwF7Om2vqlg==} engines: {node: ^18.19.0 || >=20.5.0} exponential-backoff@3.1.1: @@ -4347,7 +4407,7 @@ packages: resolution: {integrity: sha512-afW+h2CFafo+7Y9Lvw/xsqjaQlKLdJV7h1fCHfcYQ1C4SVMlu7OAekqWgu5d4SgvkBVU0pVpLlVsrSTBURFRkg==} peerDependencies: '@nuxt/kit': workspace:* - vue: 3.4.29 + vue: 3.4.30 peerDependenciesMeta: '@nuxt/kit': optional: true @@ -4366,7 +4426,7 @@ packages: resolution: {integrity: sha512-Uochze2R8peoN1XqlSi/rGUkDQpRogtLFocP9+PGu68zk1BDAKXfdeCdyVZpgTk8V8WFVQXdEz426VKjXLO1Gg==} engines: {node: '>=12.13.0', yarn: '>=1.0.0'} peerDependencies: - typescript: '>3.6.0' + typescript: 5.5.2 webpack: ^5.11.0 fraction.js@4.3.7: @@ -4542,6 +4602,12 @@ packages: resolution: {integrity: sha512-O1Ld7Dr+nqPnmGpdhzLmMTQ4vAsD+rHwMm1NLUmoUFFymBOMKxCCrtDxqdBRYXdeEPEi3SyoR4TizJLQrnKBNA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + h3-nightly@1.12.1-1718872526.a15b8de: + resolution: {integrity: sha512-wzWKg5vfCvzET4H57hFLq8S8ENf9DnXn/0A8G/HRUg16CFOCYTp45nd3Ku8IJrF1HmKBpZngh9MpuXd8LTFlSA==} + + h3-nightly@2.0.0-1718872656.6765a6e: + resolution: {integrity: sha512-LQ8hHOIzk+agD1p0K7UosByKuzDAKGLTnYsP0syV/XMr9E7pWmoaDSWkGdWjtLR9O3hinNqrXU1NW0kTmhiSag==} + h3@1.12.0: resolution: {integrity: sha512-Zi/CcNeWBXDrFNlV0hUBJQR9F7a96RjMeAZweW/ZWkR9fuXrMcvKnSA63f/zZ9l0GgQOZDVHGvXivNN9PWOwhA==} @@ -4751,8 +4817,8 @@ packages: resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==} engines: {node: '>= 0.4'} - ioredis@5.3.2: - resolution: {integrity: sha512-1DKMMzlIHM02eBBVOFQ1+AolGjs6+xEcM4PDL7NqOS6szq7H9jSaEkIUH6/a5Hl241LzW6JLSiAbNvTQjUupUA==} + ioredis@5.4.1: + resolution: {integrity: sha512-2YZsvl7jopIa1gaePkeMtd9rAcSjOOjPtpcLlOeusyO+XH2SK5ZcT+UCrElPP+WVIInh2TzeI4XW9ENaSLVVHA==} engines: {node: '>=12.22.0'} ip@2.0.1: @@ -4933,6 +4999,10 @@ packages: is-weakset@2.0.2: resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==} + is-what@4.1.16: + resolution: {integrity: sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==} + engines: {node: '>=12.13'} + is-wsl@2.2.0: resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} engines: {node: '>=8'} @@ -5095,8 +5165,8 @@ packages: kolorist@1.8.0: resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} - launch-editor@2.6.1: - resolution: {integrity: sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==} + launch-editor@2.8.0: + resolution: {integrity: sha512-vJranOAJrI/llyWGRQqiDM+adrw+k83fvmmx3+nV47g3+36xM15jE+zyZ6Ffel02+xSvuM0b2GDRosXZkbb6wA==} lazystream@1.0.1: resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==} @@ -5132,10 +5202,6 @@ packages: resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==} engines: {node: '>=8.9.0'} - local-pkg@0.4.3: - resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==} - engines: {node: '>=14'} - local-pkg@0.5.0: resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} engines: {node: '>=14'} @@ -5193,8 +5259,8 @@ packages: resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} hasBin: true - magic-string-ast@0.3.0: - resolution: {integrity: sha512-0shqecEPgdFpnI3AP90epXyxZy9g6CRZ+SZ7BcqFwYmtFEnZ1jpevcV5HoyVnlDS9gCnc1UIg3Rsvp3Ci7r8OA==} + magic-string-ast@0.6.1: + resolution: {integrity: sha512-eczKQUDaBpB/mcEqZZNGEUG1FQNsXCuk3uOrCpu6y7qTygIy6jnpqDa62j9MGKSoqlXhM1lCFQv1THuGDQtvUA==} engines: {node: '>=16.14.0'} magic-string@0.30.10: @@ -5413,8 +5479,8 @@ packages: engines: {node: '>=10.0.0'} hasBin: true - mime@4.0.1: - resolution: {integrity: sha512-5lZ5tyrIfliMXzFtkYyekWbtRXObT9OWa8IwQ5uxTBDHucNNwniRqo0yInflj+iYi5CBa6qxadGzGarDfuEOxA==} + mime@4.0.3: + resolution: {integrity: sha512-KgUb15Oorc0NEKPbvfa0wRU+PItIEZmiv+pyAO2i0oTIVTJhlzMclU7w4RXWQrSOVH5ax/p/CkIO7KI4OyFJTQ==} engines: {node: '>=16'} hasBin: true @@ -5496,9 +5562,6 @@ packages: resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} engines: {node: '>= 8'} - mitt@2.1.0: - resolution: {integrity: sha512-ILj2TpLiysu2wkBbWjAmww7TkZb65aiQO+DkVdUTBpBXq+MHYiETENkKFMtsJZX1Lf4pe4QOrTSjIfUwN5lRdg==} - mitt@3.0.1: resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} @@ -5512,7 +5575,7 @@ packages: hasBin: true peerDependencies: sass: ^1.63.6 - typescript: '>=5.1.6' + typescript: 5.5.2 peerDependenciesMeta: sass: optional: true @@ -5568,6 +5631,16 @@ packages: neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + nitro-nightly@3.0.0-beta-28648657.9a717203: + resolution: {integrity: sha512-hWjdsIhN5UMZP4HeWPexigUyqoPI4euNzlE6ftYZQJI7WjVu3piD+eXcBX52Dx9b5sFO30ahtAFQ16C85rvg5Q==} + engines: {node: ^16.11.0 || >=17.0.0} + hasBin: true + peerDependencies: + xml2js: ^0.6.2 + peerDependenciesMeta: + xml2js: + optional: true + nitropack@2.9.6: resolution: {integrity: sha512-HP2PE0dREcDIBVkL8Zm6eVyrDd10/GI9hTL00PHvjUM8I9Y/2cv73wRDmxNyInfrx/CJKHATb2U/pQrqpzJyXA==} engines: {node: ^16.11.0 || >=17.0.0} @@ -5760,8 +5833,8 @@ packages: resolution: {integrity: sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==} engines: {node: '>=14.16'} - openapi-typescript@6.7.5: - resolution: {integrity: sha512-ZD6dgSZi0u1QCP55g8/2yS5hNJfIpgqsSGHLxxdOjvY7eIrXzj271FJEQw33VwsZ6RCtO/NOuhxa7GBWmEudyA==} + openapi-typescript@6.7.6: + resolution: {integrity: sha512-c/hfooPx+RBIOPM09GSxABOZhYPblDoyaGhqBkD/59vtpN21jEuWKDlM0KYTvqJVlSYjKs0tBcIdeXKChlSPtw==} hasBin: true opener@1.5.2: @@ -5921,9 +5994,9 @@ packages: pkg-types@1.1.1: resolution: {integrity: sha512-ko14TjmDuQJ14zsotODv7dBlwxKhUKQEhuhmbqo1uCi9BB0Z2alo/wAXg6q1dTR5TyuqYyWhjtfe/Tsh+X28jQ==} - playwright-core@1.44.1: - resolution: {integrity: sha512-wh0JWtYTrhv1+OSsLPgFzGzt67Y7BE/ZS3jEqgGBlp2ppp1ZDj8c+9IARNW4dwf1poq5MgHreEM2KV/GuR4cFA==} - engines: {node: '>=16'} + playwright-core@1.45.0: + resolution: {integrity: sha512-lZmHlFQ0VYSpAs43dRq1/nJ9G/6SiTI7VPqidld9TDefL9tX87bTKExWZZUF5PeRyqtXqd8fQi2qmfIedkwsNQ==} + engines: {node: '>=18'} hasBin: true pluralize@8.0.0: @@ -6440,8 +6513,8 @@ packages: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - rfdc@1.3.1: - resolution: {integrity: sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==} + rfdc@1.4.1: + resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} rimraf@3.0.2: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} @@ -6458,7 +6531,7 @@ packages: engines: {node: '>=16'} peerDependencies: rollup: ^4.18.0 - typescript: ^4.5 || ^5.0 + typescript: 5.5.2 rollup-plugin-visualizer@5.12.0: resolution: {integrity: sha512-8/NU9jXcHRs7Nnj07PF2o4gjxmm9lXIrZ8r175bT9dK8qoLlvKTwRMArRCMgpMGlq8CTLugRvEmyMeMXIU2pNQ==} @@ -6539,8 +6612,8 @@ packages: serialize-javascript@6.0.2: resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} - serve-placeholder@2.0.1: - resolution: {integrity: sha512-rUzLlXk4uPFnbEaIz3SW8VISTxMuONas88nYWjAWaM2W9VDbt9tyFOr3lq8RhVOFrT3XISoBw8vni5una8qMnQ==} + serve-placeholder@2.0.2: + resolution: {integrity: sha512-/TMG8SboeiQbZJWRlfTCqMs2DD3SZgWp0kDQePz9yUuCnDfDh/92gf7/PxGhzXTKBIPASIHxFcZndoNbp6QOLQ==} serve-static@1.15.0: resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} @@ -6577,9 +6650,6 @@ packages: shiki@1.1.6: resolution: {integrity: sha512-j4pcpvaQWHb42cHeV+W6P+X/VcK7Y2ctvEham6zB8wsuRQroT6cEMIkiUmBU2Nqg2qnHZDH6ZyRdVldcy0l6xw==} - shiki@1.3.0: - resolution: {integrity: sha512-9aNdQy/etMXctnPzsje1h1XIGm9YfRcSksKOGqZWXA/qP9G18/8fpz5Bjpma8bOgz3tqIpjERAd6/lLjFyzoww==} - shiki@1.6.4: resolution: {integrity: sha512-X88chM7w8jnadoZtjPTi5ahCJx9pc9f8GfEkZAEYUTlcUZIEw2D/RY86HI/LkkE7Nj8TQWkiBfaFTJ3VJT6ESg==} @@ -6600,8 +6670,8 @@ packages: resolution: {integrity: sha512-2A3WvXkQurhuMgORgT60r6pOWiCOO5LlEqY2ADxGBDGVYLSo5HN0uLtb68YpVpuL/Vi8mLTe7+0Dx2Fq8lLqEg==} engines: {node: ^16.14.0 || >=18.0.0} - simple-git@3.24.0: - resolution: {integrity: sha512-QqAKee9Twv+3k8IFOFfPB2hnk6as6Y6ACUpwCtQvRYBAes23Wv3SZlHVobAzqcE8gfsisCvPw3HGW3HYM+VYYw==} + simple-git@3.25.0: + resolution: {integrity: sha512-KIY5sBnzc4yEcJXW7Tdv4viEz8KyG+nU0hay+DWZasvdFOYKeUZ6Xc25LUHHjw0tinPT7O1eY6pzX7pRT1K8rw==} sirv@2.0.4: resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} @@ -6769,6 +6839,10 @@ packages: peerDependencies: postcss: ^8.4.31 + superjson@2.2.1: + resolution: {integrity: sha512-8iGv75BYOa0xRJHK5vRLEjE2H/i4lulTjzpUXic3Eg8akftYjkmQDa8JARQ42rlczXyFR3IeRoeFCc7RxHsYZA==} + engines: {node: '>=16'} + supports-color@5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} engines: {node: '>=4'} @@ -6917,7 +6991,7 @@ packages: resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} engines: {node: '>=16'} peerDependencies: - typescript: '>=4.2.0' + typescript: 5.5.2 tslib@2.6.2: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} @@ -6932,12 +7006,12 @@ packages: twoslash-vue@0.2.4: resolution: {integrity: sha512-AIcsYRSxn5WuZC+dD7/n99s1UEY6e5IljoGL3YijQvI/pylgsKk5sWXptp5NrRTH0srBLXoeVpE1re1Eo6eiJw==} peerDependencies: - typescript: '*' + typescript: 5.5.2 twoslash@0.2.4: resolution: {integrity: sha512-hc3y11BjLHP4kV37TR6lUKksxpZp0LQi9kCy95ka6qobye/gV49PqXZIuWlRaRVGNvp4AJBMg8aiwkp0M8x/nQ==} peerDependencies: - typescript: '*' + typescript: 5.5.2 type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} @@ -6967,6 +7041,10 @@ packages: resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==} engines: {node: '>=14.16'} + type-fest@4.20.1: + resolution: {integrity: sha512-R6wDsVsoS9xYOpy8vgeBlqpdOyzJ12HNfQhC/aAKWM3YoCV9TtunJzh/QpkMgeDhkoynDcw5f1y+qF9yc/HHyg==} + engines: {node: '>=16'} + typescript@5.5.2: resolution: {integrity: sha512-NcRtPEOsPFFWjobJEtfihkLCZCXZt/os3zf8nTxjVH3RvTSxjrCamJpbExGvYOF+tFHc3pA65qpdwPbzjohhew==} engines: {node: '>=14.17'} @@ -6990,7 +7068,7 @@ packages: resolution: {integrity: sha512-JWCUYx3Oxdzvw2J9kTAp+DKE8df/BnH/JTSj6JyA4SH40ECdFu7FoJJcrm8G92B7TjofQ6GZGjJs50TRxoH6Wg==} hasBin: true peerDependencies: - typescript: ^5.1.6 + typescript: 5.5.2 peerDependenciesMeta: typescript: optional: true @@ -7007,8 +7085,8 @@ packages: undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - undici@5.28.3: - resolution: {integrity: sha512-3ItfzbrhDlINjaP0duwnNsKpDQk3acHI3gVJ1z4fmwMK31k5G9OVIAMLSIaP6w4FaGkaAkN6zaQO9LUvZ1t7VA==} + undici@5.28.4: + resolution: {integrity: sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==} engines: {node: '>=14.0'} unenv@1.9.0: @@ -7085,10 +7163,10 @@ packages: vite: optional: true - unplugin-vue-router@0.7.0: - resolution: {integrity: sha512-ddRreGq0t5vlSB7OMy4e4cfU1w2AwBQCwmvW3oP/0IHQiokzbx4hd3TpwBu3eIAFVuhX2cwNQwp1U32UybTVCw==} + unplugin-vue-router@0.10.0: + resolution: {integrity: sha512-t9cwRvNONcrh7CZLUYrd4kGOH4xZRhsHeT+exaAuYFn7z87pkTHiHh3wBnGerfKGs22SnmJIIjcKyEa62CO+4w==} peerDependencies: - vue-router: ^4.1.0 + vue-router: ^4.4.0 peerDependenciesMeta: vue-router: optional: true @@ -7229,7 +7307,7 @@ packages: meow: ^9.0.0 optionator: ^0.9.1 stylelint: '>=13' - typescript: '*' + typescript: 5.5.2 vite: 5.3.1 vls: '*' vti: '*' @@ -7262,8 +7340,8 @@ packages: '@nuxt/kit': optional: true - vite-plugin-vue-inspector@5.1.0: - resolution: {integrity: sha512-yIw9dvBz9nQW7DPfbJtUVW6JTnt67hqTPRnTwT2CZWMqDvISyQHRjgKl32nlMh1DRH+92533Sv6t59pWMLUCWA==} + vite-plugin-vue-inspector@5.1.2: + resolution: {integrity: sha512-M+yH2LlQtVNzJAljQM+61CqDXBvHim8dU5ImGaQuwlo13tMDHue5D7IC20YwDJuWDODiYc/cZBUYspVlyPf2vQ==} peerDependencies: vite: 5.3.1 @@ -7363,7 +7441,7 @@ packages: hasBin: true peerDependencies: '@vue/composition-api': ^1.0.0-rc.1 - vue: 3.4.29 + vue: 3.4.30 peerDependenciesMeta: '@vue/composition-api': optional: true @@ -7389,39 +7467,29 @@ packages: vue: optional: true - vue-observe-visibility@2.0.0-alpha.1: - resolution: {integrity: sha512-flFbp/gs9pZniXR6fans8smv1kDScJ8RS7rEpMjhVabiKeq7Qz3D9+eGsypncjfIyyU84saU88XZ0zjbD6Gq/g==} - peerDependencies: - vue: 3.4.29 - vue-resize@2.0.0-alpha.1: resolution: {integrity: sha512-7+iqOueLU7uc9NrMfrzbG8hwMqchfVfSzpVlCMeJQe4pyibqyoifDNbKTZvwxZKDvGkB+PdFeKvnGZMoEb8esg==} peerDependencies: - vue: 3.4.29 + vue: 3.4.30 - vue-router@4.3.3: - resolution: {integrity: sha512-8Q+u+WP4N2SXY38FDcF2H1dUEbYVHVPtPCPZj/GTZx8RCbiB8AtJP9+YIxn4Vs0svMTNQcLIzka4GH7Utkx9xQ==} + vue-router@4.4.0: + resolution: {integrity: sha512-HB+t2p611aIZraV2aPSRNXf0Z/oLZFrlygJm+sZbdJaW6lcFqEDQwnzUBXn+DApw+/QzDU/I9TeWx9izEjTmsA==} peerDependencies: - vue: 3.4.29 + vue: 3.4.30 vue-template-compiler@2.7.14: resolution: {integrity: sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ==} - vue-tsc@2.0.21: - resolution: {integrity: sha512-E6x1p1HaHES6Doy8pqtm7kQern79zRtIewkf9fiv7Y43Zo4AFDS5hKi+iHi2RwEhqRmuiwliB1LCEFEGwvxQnw==} + vue-tsc@2.0.22: + resolution: {integrity: sha512-lMBIwPBO0sxCcmvu45yt1b035AaQ8/XSXQDk8m75y4j0jSXY/y/XzfEtssQ9JMS47lDaR10O3/926oCs8OeGUw==} hasBin: true peerDependencies: - typescript: '*' + typescript: 5.5.2 - vue-virtual-scroller@2.0.0-beta.8: - resolution: {integrity: sha512-b8/f5NQ5nIEBRTNi6GcPItE4s7kxNHw2AIHLtDp+2QvqdTjVN0FgONwX9cr53jWRgnu+HRLPaWDOR2JPI5MTfQ==} + vue@3.4.30: + resolution: {integrity: sha512-NcxtKCwkdf1zPsr7Y8+QlDBCGqxvjLXF2EX+yi76rV5rrz90Y6gK1cq0olIhdWGgrlhs9ElHuhi9t3+W5sG5Xw==} peerDependencies: - vue: 3.4.29 - - vue@3.4.29: - resolution: {integrity: sha512-8QUYfRcYzNlYuzKPfge1UWC6nF9ym0lx7mpGVPJYNhddxEf3DD0+kU07NTL0sXuiT2HuJuKr/iEO8WvXvT0RSQ==} - peerDependencies: - typescript: '*' + typescript: 5.5.2 peerDependenciesMeta: typescript: optional: true @@ -7550,8 +7618,8 @@ packages: utf-8-validate: optional: true - ws@8.17.0: - resolution: {integrity: sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow==} + ws@8.17.1: + resolution: {integrity: sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 @@ -7579,9 +7647,10 @@ packages: yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - yaml@2.3.4: - resolution: {integrity: sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==} + yaml@2.4.5: + resolution: {integrity: sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==} engines: {node: '>= 14'} + hasBin: true yargs-parser@21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} @@ -7655,7 +7724,7 @@ snapshots: '@babel/traverse': 7.24.7 '@babel/types': 7.24.7 convert-source-map: 2.0.0 - debug: 4.3.4 + debug: 4.3.5 gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -7881,7 +7950,7 @@ snapshots: '@babel/helper-split-export-declaration': 7.24.7 '@babel/parser': 7.24.7 '@babel/types': 7.24.7 - debug: 4.3.4 + debug: 4.3.5 globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -7894,7 +7963,7 @@ snapshots: '@bcoe/v8-coverage@0.2.3': {} - '@cloudflare/kv-asset-handler@0.3.1': + '@cloudflare/kv-asset-handler@0.3.3': dependencies: mime: 3.0.0 @@ -8192,7 +8261,7 @@ snapshots: '@eslint/config-array@0.16.0': dependencies: '@eslint/object-schema': 2.1.4 - debug: 4.3.4 + debug: 4.3.5 minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -8200,7 +8269,7 @@ snapshots: '@eslint/eslintrc@3.1.0': dependencies: ajv: 6.12.6 - debug: 4.3.4 + debug: 4.3.5 espree: 10.0.1 globals: 14.0.0 ignore: 5.3.1 @@ -8254,7 +8323,7 @@ snapshots: '@antfu/install-pkg': 0.1.1 '@antfu/utils': 0.7.8 '@iconify/types': 2.0.0 - debug: 4.3.4 + debug: 4.3.5 kolorist: 1.8.0 local-pkg: 0.5.0 mlly: 1.7.1 @@ -8283,7 +8352,7 @@ snapshots: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.5 '@types/istanbul-reports': 3.0.3 - '@types/node': 20.14.7 + '@types/node': 20.14.9 '@types/yargs': 17.0.28 chalk: 4.1.2 @@ -8329,7 +8398,7 @@ snapshots: '@kwsites/file-exists@1.1.1': dependencies: - debug: 4.3.4 + debug: 4.3.5 transitivePeerDependencies: - supports-color @@ -8350,16 +8419,25 @@ snapshots: - encoding - supports-color - '@netlify/functions@2.6.0': + '@netlify/functions@2.7.0(@opentelemetry/api@1.9.0)': dependencies: - '@netlify/serverless-functions-api': 1.14.0 + '@netlify/serverless-functions-api': 1.18.1(@opentelemetry/api@1.9.0) + transitivePeerDependencies: + - '@opentelemetry/api' '@netlify/node-cookies@0.1.0': {} - '@netlify/serverless-functions-api@1.14.0': + '@netlify/serverless-functions-api@1.18.1(@opentelemetry/api@1.9.0)': dependencies: '@netlify/node-cookies': 0.1.0 + '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-transformer': 0.50.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 1.25.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 1.25.1(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.25.1 urlpattern-polyfill: 8.0.2 + transitivePeerDependencies: + - '@opentelemetry/api' '@nodelib/fs.scandir@2.1.5': dependencies: @@ -8439,38 +8517,45 @@ snapshots: '@nuxt/devalue@2.0.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/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.7)(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.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/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.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))': 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.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/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.7)(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 '@unocss/reset': 0.60.4 - '@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)) + '@vueuse/core': 10.10.1(vue@3.4.30(typescript@5.5.2)) + '@vueuse/integrations': 10.9.0(focus-trap@7.5.4)(vue@3.4.30(typescript@5.5.2)) + '@vueuse/nuxt': 10.10.0(nuxt@packages+nuxt)(vue@3.4.30(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.7)(sass@1.69.4)(terser@5.27.0)) - v-lazy-show: 0.2.4(@vue/compiler-core@3.4.29) + 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' - '@vue/compiler-core' @@ -8494,7 +8579,7 @@ snapshots: - vue - webpack - '@nuxt/devtools-wizard@1.3.3': + '@nuxt/devtools-wizard@1.3.6': dependencies: consola: 3.2.3 diff: 5.2.0 @@ -8507,20 +8592,19 @@ 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.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@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.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/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-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)) + '@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 cronstrue: 2.50.0 destr: 2.0.3 - error-stack-parser-es: 0.1.1 + error-stack-parser-es: 0.1.4 execa: 7.2.0 fast-glob: 3.3.2 flatted: 3.3.1 @@ -8528,10 +8612,9 @@ snapshots: hookable: 5.5.3 image-meta: 0.2.0 is-installed-globally: 1.0.0 - launch-editor: 2.6.1 + launch-editor: 2.8.0 local-pkg: 0.5.0 magicast: 0.3.4 - nuxt: link:packages/nuxt nypm: 0.3.8 ohash: 1.1.3 pacote: 18.0.6 @@ -8541,36 +8624,20 @@ snapshots: rc9: 2.1.2 scule: 1.3.0 semver: 7.6.2 - simple-git: 3.24.0 + 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.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)) + 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.0 + ws: 8.17.1 transitivePeerDependencies: - - '@unocss/reset' - - '@vue/composition-api' - - async-validator - - axios - bluebird - bufferutil - - change-case - - drauu - - floating-vue - - fuse.js - - idb-keyval - - jwt-decode - - nprogress - - qrcode - rollup - - sortablejs - supports-color - - universal-cookie - - unocss - utf-8-validate - - vue '@nuxt/eslint-config@0.3.13(eslint@9.5.0)(typescript@5.5.2)': dependencies: @@ -8613,24 +8680,24 @@ 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.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/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.4.1)(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.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/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 '@types/vimeo__player': 2.18.3 '@types/youtube': 0.0.50 - '@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)) + '@unhead/vue': 1.9.14(vue@3.4.30(typescript@5.5.2)) + '@vueuse/core': 10.10.1(vue@3.4.30(typescript@5.5.2)) consola: 3.2.3 defu: 6.1.4 estree-walker: 3.0.3 h3: 1.12.0 magic-string: 0.30.10 mlly: 1.7.1 - ofetch: 1.3.4 + ofetch: 1.3.4(patch_hash=nxc3eojzwynarpj453xzxqr2f4) ohash: 1.1.3 pathe: 1.1.2 pkg-types: 1.1.1 @@ -8642,7 +8709,7 @@ snapshots: ufo: 1.5.3 unimport: 3.7.2(rollup@4.18.0) unplugin: 1.10.1 - unstorage: 1.10.2(ioredis@5.3.2) + unstorage: 1.10.2(ioredis@5.4.1) valibot: 0.31.1 transitivePeerDependencies: - '@azure/app-configuration' @@ -8695,13 +8762,13 @@ snapshots: jiti: 1.21.6 mri: 1.2.0 nanoid: 5.0.7 - ofetch: 1.3.4 + ofetch: 1.3.4(patch_hash=nxc3eojzwynarpj453xzxqr2f4) parse-git-config: 3.0.0 pathe: 1.1.2 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.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/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-nightly@2.0.0-1718872656.6765a6e)(happy-dom@14.12.3)(magicast@0.3.4)(nitropack@2.9.6(@opentelemetry/api@1.9.0)(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 @@ -8713,12 +8780,12 @@ snapshots: execa: 8.0.1 fake-indexeddb: 5.0.2 get-port-please: 3.1.2 - h3: 1.12.0 + h3: h3-nightly@2.0.0-1718872656.6765a6e local-pkg: 0.5.0 magic-string: 0.30.10 - nitropack: 2.9.6(encoding@0.1.13)(magicast@0.3.4) + nitropack: 2.9.6(@opentelemetry/api@1.9.0)(encoding@0.1.13)(magicast@0.3.4) node-fetch-native: 1.6.4 - ofetch: 1.3.4 + ofetch: 1.3.4(patch_hash=nxc3eojzwynarpj453xzxqr2f4) pathe: 1.1.2 perfect-debounce: 1.0.0 radix3: 1.1.2 @@ -8727,16 +8794,16 @@ snapshots: ufo: 1.5.3 unenv: 1.9.0 unplugin: 1.10.1 - 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)) + 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-nightly@2.0.0-1718872656.6765a6e)(happy-dom@14.12.3)(magicast@0.3.4)(nitropack@2.9.6(@opentelemetry/api@1.9.0)(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: - '@testing-library/vue': 8.1.0(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.5.2)) + '@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 happy-dom: 14.12.3 - playwright-core: 1.44.1 - vitest: 1.6.0(@types/node@20.14.7)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0) + playwright-core: 1.45.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 @@ -8753,9 +8820,9 @@ snapshots: '@shikijs/transformers': 1.1.2 '@types/hast': 3.0.4 '@types/mdast': 4.0.3 - '@vue/compiler-core': 3.4.29 + '@vue/compiler-core': 3.4.30 consola: 3.2.3 - debug: 4.3.4 + debug: 4.3.5 defu: 6.1.4 destr: 2.0.3 detab: 3.0.2 @@ -8789,6 +8856,76 @@ snapshots: '@one-ini/wasm@0.1.1': {} + '@opentelemetry/api-logs@0.50.0': + dependencies: + '@opentelemetry/api': 1.9.0 + + '@opentelemetry/api@1.9.0': {} + + '@opentelemetry/core@1.23.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/semantic-conventions': 1.23.0 + + '@opentelemetry/core@1.25.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/semantic-conventions': 1.25.1 + + '@opentelemetry/otlp-transformer@0.50.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/api-logs': 0.50.0 + '@opentelemetry/core': 1.23.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 1.23.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-logs': 0.50.0(@opentelemetry/api-logs@0.50.0)(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-metrics': 1.23.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 1.23.0(@opentelemetry/api@1.9.0) + + '@opentelemetry/resources@1.23.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.23.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.23.0 + + '@opentelemetry/resources@1.25.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.25.1 + + '@opentelemetry/sdk-logs@0.50.0(@opentelemetry/api-logs@0.50.0)(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/api-logs': 0.50.0 + '@opentelemetry/core': 1.23.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 1.23.0(@opentelemetry/api@1.9.0) + + '@opentelemetry/sdk-metrics@1.23.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.23.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 1.23.0(@opentelemetry/api@1.9.0) + lodash.merge: 4.6.2 + + '@opentelemetry/sdk-trace-base@1.23.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.23.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 1.23.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.23.0 + + '@opentelemetry/sdk-trace-base@1.25.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 1.25.1(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.25.1 + + '@opentelemetry/semantic-conventions@1.23.0': {} + + '@opentelemetry/semantic-conventions@1.25.1': {} + '@parcel/watcher-android-arm64@2.4.1': optional: true @@ -8872,6 +9009,17 @@ snapshots: optionalDependencies: rollup: 4.18.0 + '@rollup/plugin-commonjs@26.0.1(rollup@4.18.0)': + dependencies: + '@rollup/pluginutils': 5.1.0(rollup@4.18.0) + commondir: 1.0.1 + estree-walker: 2.0.2 + glob: 10.4.1 + is-reference: 1.2.1 + magic-string: 0.30.10 + optionalDependencies: + rollup: 4.18.0 + '@rollup/plugin-inject@5.0.5(rollup@4.18.0)': dependencies: '@rollup/pluginutils': 5.1.0(rollup@4.18.0) @@ -8981,8 +9129,6 @@ snapshots: '@shikijs/core@1.1.6': {} - '@shikijs/core@1.3.0': {} - '@shikijs/core@1.6.4': {} '@shikijs/transformers@1.1.2': @@ -9000,14 +9146,14 @@ snapshots: '@shikijs/vitepress-twoslash@1.1.6(@nuxt/kit@packages+kit)(typescript@5.5.2)': dependencies: '@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)) + floating-vue: 5.2.2(@nuxt/kit@packages+kit)(vue@3.4.30(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.5.2) twoslash-vue: 0.2.4(typescript@5.5.2) - vue: 3.4.29(typescript@5.5.2) + vue: 3.4.30(typescript@5.5.2) transitivePeerDependencies: - '@nuxt/kit' - supports-color @@ -9109,14 +9255,14 @@ 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.5.2))': + '@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.30)(vue@3.4.30(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.5.2) + vue: 3.4.30(typescript@5.5.2) optionalDependencies: - '@vue/compiler-sfc': 3.4.29 + '@vue/compiler-sfc': 3.4.30 '@trysound/sax@0.2.0': {} @@ -9131,14 +9277,14 @@ snapshots: '@types/clean-css@4.2.11': dependencies: - '@types/node': 20.14.7 + '@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.7 + '@types/node': 20.14.9 '@types/debug@4.1.12': dependencies: @@ -9164,11 +9310,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': {} @@ -9185,7 +9326,7 @@ snapshots: '@types/http-proxy@1.17.14': dependencies: - '@types/node': 20.14.7 + '@types/node': 20.14.9 '@types/istanbul-lib-coverage@2.0.5': {} @@ -9199,10 +9340,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 @@ -9217,9 +9354,9 @@ snapshots: '@types/node-sass@4.11.6': dependencies: - '@types/node': 20.14.7 + '@types/node': 20.14.9 - '@types/node@20.14.7': + '@types/node@20.14.9': dependencies: undici-types: 5.26.5 @@ -9235,7 +9372,7 @@ snapshots: '@types/sass-loader@8.0.8': dependencies: - '@types/node': 20.14.7 + '@types/node': 20.14.9 '@types/node-sass': 4.11.6 '@types/webpack': 4.41.34 sass: 1.69.4 @@ -9262,7 +9399,7 @@ snapshots: '@types/webpack-bundle-analyzer@4.7.0': dependencies: - '@types/node': 20.14.7 + '@types/node': 20.14.9 tapable: 2.2.1 webpack: 5.92.1 transitivePeerDependencies: @@ -9284,13 +9421,13 @@ snapshots: '@types/webpack-sources@3.2.1': dependencies: - '@types/node': 20.14.7 + '@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.7 + '@types/node': 20.14.9 '@types/tapable': 1.0.10 '@types/uglify-js': 3.17.3 '@types/webpack-sources': 3.2.1 @@ -9329,7 +9466,7 @@ snapshots: '@typescript-eslint/types': 7.9.0 '@typescript-eslint/typescript-estree': 7.9.0(typescript@5.5.2) '@typescript-eslint/visitor-keys': 7.9.0 - debug: 4.3.4 + debug: 4.3.5 eslint: 9.5.0 optionalDependencies: typescript: 5.5.2 @@ -9345,7 +9482,7 @@ snapshots: dependencies: '@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 + debug: 4.3.5 eslint: 9.5.0 ts-api-utils: 1.3.0(typescript@5.5.2) optionalDependencies: @@ -9359,7 +9496,7 @@ snapshots: dependencies: '@typescript-eslint/types': 7.9.0 '@typescript-eslint/visitor-keys': 7.9.0 - debug: 4.3.4 + debug: 4.3.5 globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.4 @@ -9388,7 +9525,7 @@ snapshots: '@typescript/vfs@1.5.0': dependencies: - debug: 4.3.4 + debug: 4.3.5 transitivePeerDependencies: - supports-color @@ -9413,31 +9550,31 @@ snapshots: '@unhead/schema': 1.9.14 '@unhead/shared': 1.9.14 - '@unhead/vue@1.9.14(vue@3.4.29(typescript@5.5.2))': + '@unhead/vue@1.9.14(vue@3.4.30(typescript@5.5.2))': dependencies: '@unhead/schema': 1.9.14 '@unhead/shared': 1.9.14 hookable: 5.5.3 unhead: 1.9.14 - vue: 3.4.29(typescript@5.5.2) + 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.7)(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.7)(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.7)(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.7)(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.7)(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.7)(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 @@ -9513,7 +9650,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.7)(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 @@ -9526,9 +9663,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.7)(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.7)(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 @@ -9568,7 +9705,7 @@ snapshots: dependencies: '@iconify/utils': 2.1.24 '@unocss/core': 0.60.4 - ofetch: 1.3.4 + ofetch: 1.3.4(patch_hash=nxc3eojzwynarpj453xzxqr2f4) transitivePeerDependencies: - supports-color @@ -9576,7 +9713,7 @@ snapshots: dependencies: '@iconify/utils': 2.1.24 '@unocss/core': 0.61.0 - ofetch: 1.3.4 + ofetch: 1.3.4(patch_hash=nxc3eojzwynarpj453xzxqr2f4) transitivePeerDependencies: - supports-color @@ -9627,12 +9764,12 @@ snapshots: '@unocss/preset-web-fonts@0.60.4': dependencies: '@unocss/core': 0.60.4 - ofetch: 1.3.4 + ofetch: 1.3.4(patch_hash=nxc3eojzwynarpj453xzxqr2f4) '@unocss/preset-web-fonts@0.61.0': dependencies: '@unocss/core': 0.61.0 - ofetch: 1.3.4 + ofetch: 1.3.4(patch_hash=nxc3eojzwynarpj453xzxqr2f4) '@unocss/preset-wind@0.60.4': dependencies: @@ -9718,7 +9855,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.7)(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) @@ -9730,11 +9867,11 @@ snapshots: chokidar: 3.6.0 fast-glob: 3.3.2 magic-string: 0.30.10 - 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.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.7)(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) @@ -9746,7 +9883,7 @@ snapshots: chokidar: 3.6.0 fast-glob: 3.3.2 magic-string: 0.30.10 - 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.9)(sass@1.69.4)(terser@5.27.0) transitivePeerDependencies: - rollup @@ -9765,7 +9902,7 @@ snapshots: transitivePeerDependencies: - rollup - '@vercel/nft@0.26.4(encoding@0.1.13)': + '@vercel/nft@0.26.5(encoding@0.1.13)': dependencies: '@mapbox/node-pre-gyp': 1.0.11(encoding@0.1.13) '@rollup/pluginutils': 4.2.1 @@ -9783,26 +9920,44 @@ snapshots: - encoding - supports-color - '@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))': + '@vercel/nft@0.27.2(encoding@0.1.13)': + dependencies: + '@mapbox/node-pre-gyp': 1.0.11(encoding@0.1.13) + '@rollup/pluginutils': 4.2.1 + acorn: 8.12.0 + acorn-import-attributes: 1.9.5(acorn@8.12.0) + async-sema: 3.1.1 + bindings: 1.5.0 + estree-walker: 2.0.2 + glob: 7.2.3 + graceful-fs: 4.2.11 + micromatch: 4.0.5 + node-gyp-build: 4.6.1 + resolve-from: 5.0.0 + transitivePeerDependencies: + - encoding + - supports-color + + '@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.7)(sass@1.69.4)(terser@5.27.0) - vue: 3.4.29(typescript@5.5.2) + 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.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.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.7)(sass@1.69.4)(terser@5.27.0) - vue: 3.4.29(typescript@5.5.2) + 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.7)(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 - debug: 4.3.4 + debug: 4.3.5 istanbul-lib-coverage: 3.2.2 istanbul-lib-report: 3.0.1 istanbul-lib-source-maps: 5.0.4 @@ -9813,7 +9968,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.7)(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 @@ -9850,34 +10005,32 @@ snapshots: dependencies: '@volar/source-map': 1.11.1 - '@volar/language-core@2.3.0-alpha.15': + '@volar/language-core@2.3.3': dependencies: - '@volar/source-map': 2.3.0-alpha.15 + '@volar/source-map': 2.3.3 '@volar/source-map@1.11.1': dependencies: muggle-string: 0.3.1 - '@volar/source-map@2.3.0-alpha.15': - dependencies: - muggle-string: 0.4.1 + '@volar/source-map@2.3.3': {} - '@volar/typescript@2.3.0-alpha.15': + '@volar/typescript@2.3.3': dependencies: - '@volar/language-core': 2.3.0-alpha.15 + '@volar/language-core': 2.3.3 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.5.2))': + '@vue-macros/common@1.10.4(rollup@4.18.0)(vue@3.4.30(typescript@5.5.2))': dependencies: '@babel/types': 7.24.7 '@rollup/pluginutils': 5.1.0(rollup@4.18.0) - '@vue/compiler-sfc': 3.4.29 - ast-kit: 0.11.3(rollup@4.18.0) + '@vue/compiler-sfc': 3.4.30 + ast-kit: 0.12.2 local-pkg: 0.5.0 - magic-string-ast: 0.3.0 + magic-string-ast: 0.6.1 optionalDependencies: - vue: 3.4.29(typescript@5.5.2) + vue: 3.4.30(typescript@5.5.2) transitivePeerDependencies: - rollup @@ -9908,127 +10061,71 @@ snapshots: '@babel/helper-module-imports': 7.22.15 '@babel/helper-plugin-utils': 7.24.7 '@babel/parser': 7.24.7 - '@vue/compiler-sfc': 3.4.29 + '@vue/compiler-sfc': 3.4.30 - '@vue/compiler-core@3.4.29': + '@vue/compiler-core@3.4.30': dependencies: '@babel/parser': 7.24.7 - '@vue/shared': 3.4.29 + '@vue/shared': 3.4.30 entities: 4.5.0 estree-walker: 2.0.2 source-map-js: 1.2.0 - '@vue/compiler-dom@3.4.29': + '@vue/compiler-dom@3.4.30': dependencies: - '@vue/compiler-core': 3.4.29 - '@vue/shared': 3.4.29 + '@vue/compiler-core': 3.4.30 + '@vue/shared': 3.4.30 - '@vue/compiler-sfc@3.4.29': + '@vue/compiler-sfc@3.4.30': dependencies: '@babel/parser': 7.24.7 - '@vue/compiler-core': 3.4.29 - '@vue/compiler-dom': 3.4.29 - '@vue/compiler-ssr': 3.4.29 - '@vue/shared': 3.4.29 + '@vue/compiler-core': 3.4.30 + '@vue/compiler-dom': 3.4.30 + '@vue/compiler-ssr': 3.4.30 + '@vue/shared': 3.4.30 estree-walker: 2.0.2 magic-string: 0.30.10 postcss: 8.4.38 source-map-js: 1.2.0 - '@vue/compiler-ssr@3.4.29': + '@vue/compiler-ssr@3.4.30': dependencies: - '@vue/compiler-dom': 3.4.29 - '@vue/shared': 3.4.29 + '@vue/compiler-dom': 3.4.30 + '@vue/shared': 3.4.30 '@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.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.3.3(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))': dependencies: - '@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.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.5.2) - vue-virtual-scroller: 2.0.0-beta.8(vue@3.4.29(typescript@5.5.2)) - transitivePeerDependencies: - - '@unocss/reset' - - '@vue/composition-api' - - async-validator - - axios - - change-case - - drauu - - floating-vue - - fuse.js - - idb-keyval - - jwt-decode - - nprogress - - qrcode - - sortablejs - - universal-cookie - - unocss - - vite - - '@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.5.2)) - '@vue/devtools-shared': 7.1.3 + '@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.7)(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 - - vue - '@vue/devtools-kit@7.1.3(vue@3.4.29(typescript@5.5.2))': + '@vue/devtools-kit@7.3.3': dependencies: - '@vue/devtools-shared': 7.1.3 + '@vue/devtools-shared': 7.3.4 + birpc: 0.2.17 hookable: 5.5.3 mitt: 3.0.1 perfect-debounce: 1.0.0 speakingurl: 14.0.1 - vue: 3.4.29(typescript@5.5.2) + superjson: 2.2.1 - '@vue/devtools-shared@7.1.3': + '@vue/devtools-shared@7.3.4': 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.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.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.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.7)(sass@1.69.4)(terser@5.27.0)) - vue: 3.4.29(typescript@5.5.2) - transitivePeerDependencies: - - '@vue/composition-api' - - async-validator - - axios - - change-case - - drauu - - fuse.js - - idb-keyval - - jwt-decode - - nprogress - - qrcode - - sortablejs - - universal-cookie + rfdc: 1.4.1 '@vue/language-core@1.8.27(typescript@5.5.2)': dependencies: '@volar/language-core': 1.11.1 '@volar/source-map': 1.11.1 - '@vue/compiler-dom': 3.4.29 - '@vue/shared': 3.4.29 + '@vue/compiler-dom': 3.4.30 + '@vue/shared': 3.4.30 computeds: 0.0.1 minimatch: 9.0.4 muggle-string: 0.3.1 @@ -10037,91 +10134,83 @@ snapshots: optionalDependencies: typescript: 5.5.2 - '@vue/language-core@2.0.21(typescript@5.5.2)': + '@vue/language-core@2.0.22(typescript@5.5.2)': dependencies: - '@volar/language-core': 2.3.0-alpha.15 - '@vue/compiler-dom': 3.4.29 - '@vue/shared': 3.4.29 + '@volar/language-core': 2.3.3 + '@vue/compiler-dom': 3.4.30 + '@vue/shared': 3.4.30 computeds: 0.0.1 minimatch: 9.0.4 + muggle-string: 0.4.1 path-browserify: 1.0.1 vue-template-compiler: 2.7.14 optionalDependencies: typescript: 5.5.2 - '@vue/reactivity@3.4.29': + '@vue/reactivity@3.4.30': dependencies: - '@vue/shared': 3.4.29 + '@vue/shared': 3.4.30 - '@vue/runtime-core@3.4.29': + '@vue/runtime-core@3.4.30': dependencies: - '@vue/reactivity': 3.4.29 - '@vue/shared': 3.4.29 + '@vue/reactivity': 3.4.30 + '@vue/shared': 3.4.30 - '@vue/runtime-dom@3.4.29': + '@vue/runtime-dom@3.4.30': dependencies: - '@vue/reactivity': 3.4.29 - '@vue/runtime-core': 3.4.29 - '@vue/shared': 3.4.29 + '@vue/reactivity': 3.4.30 + '@vue/runtime-core': 3.4.30 + '@vue/shared': 3.4.30 csstype: 3.1.3 - '@vue/server-renderer@3.4.29(vue@3.4.29(typescript@5.5.2))': + '@vue/server-renderer@3.4.30(vue@3.4.30(typescript@5.5.2))': dependencies: - '@vue/compiler-ssr': 3.4.29 - '@vue/shared': 3.4.29 - vue: 3.4.29(typescript@5.5.2) + '@vue/compiler-ssr': 3.4.30 + '@vue/shared': 3.4.30 + vue: 3.4.30(typescript@5.5.2) - '@vue/shared@3.4.29': {} + '@vue/shared@3.4.30': {} '@vue/test-utils@2.4.6': dependencies: js-beautify: 1.14.9 vue-component-type-helpers: 2.0.6 - '@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.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.5.2))': + '@vueuse/core@10.10.0(vue@3.4.30(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.5.2)) - vue-demi: 0.14.8(vue@3.4.29(typescript@5.5.2)) + '@vueuse/shared': 10.10.0(vue@3.4.30(typescript@5.5.2)) + vue-demi: 0.14.8(vue@3.4.30(typescript@5.5.2)) transitivePeerDependencies: - '@vue/composition-api' - vue - '@vueuse/core@10.10.1(vue@3.4.29(typescript@5.5.2))': + '@vueuse/core@10.10.1(vue@3.4.30(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.5.2)) - vue-demi: 0.14.8(vue@3.4.29(typescript@5.5.2)) + '@vueuse/shared': 10.10.1(vue@3.4.30(typescript@5.5.2)) + vue-demi: 0.14.8(vue@3.4.30(typescript@5.5.2)) transitivePeerDependencies: - '@vue/composition-api' - vue - '@vueuse/core@10.9.0(vue@3.4.29(typescript@5.5.2))': + '@vueuse/core@10.9.0(vue@3.4.30(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.5.2)) - vue-demi: 0.14.8(vue@3.4.29(typescript@5.5.2)) + '@vueuse/shared': 10.9.0(vue@3.4.30(typescript@5.5.2)) + vue-demi: 0.14.8(vue@3.4.30(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.5.2))': + '@vueuse/integrations@10.9.0(focus-trap@7.5.4)(vue@3.4.30(typescript@5.5.2))': dependencies: - '@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)) + '@vueuse/core': 10.9.0(vue@3.4.30(typescript@5.5.2)) + '@vueuse/shared': 10.9.0(vue@3.4.30(typescript@5.5.2)) + vue-demi: 0.14.8(vue@3.4.30(typescript@5.5.2)) optionalDependencies: focus-trap: 7.5.4 transitivePeerDependencies: @@ -10134,35 +10223,35 @@ snapshots: '@vueuse/metadata@10.9.0': {} - '@vueuse/nuxt@10.10.0(nuxt@packages+nuxt)(vue@3.4.29(typescript@5.5.2))': + '@vueuse/nuxt@10.10.0(nuxt@packages+nuxt)(vue@3.4.30(typescript@5.5.2))': dependencies: '@nuxt/kit': link:packages/kit - '@vueuse/core': 10.10.0(vue@3.4.29(typescript@5.5.2)) + '@vueuse/core': 10.10.0(vue@3.4.30(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.5.2)) + vue-demi: 0.14.8(vue@3.4.30(typescript@5.5.2)) transitivePeerDependencies: - '@vue/composition-api' - vue - '@vueuse/shared@10.10.0(vue@3.4.29(typescript@5.5.2))': + '@vueuse/shared@10.10.0(vue@3.4.30(typescript@5.5.2))': dependencies: - vue-demi: 0.14.8(vue@3.4.29(typescript@5.5.2)) + vue-demi: 0.14.8(vue@3.4.30(typescript@5.5.2)) transitivePeerDependencies: - '@vue/composition-api' - vue - '@vueuse/shared@10.10.1(vue@3.4.29(typescript@5.5.2))': + '@vueuse/shared@10.10.1(vue@3.4.30(typescript@5.5.2))': dependencies: - vue-demi: 0.14.8(vue@3.4.29(typescript@5.5.2)) + vue-demi: 0.14.8(vue@3.4.30(typescript@5.5.2)) transitivePeerDependencies: - '@vue/composition-api' - vue - '@vueuse/shared@10.9.0(vue@3.4.29(typescript@5.5.2))': + '@vueuse/shared@10.9.0(vue@3.4.30(typescript@5.5.2))': dependencies: - vue-demi: 0.14.8(vue@3.4.29(typescript@5.5.2)) + vue-demi: 0.14.8(vue@3.4.30(typescript@5.5.2)) transitivePeerDependencies: - '@vue/composition-api' - vue @@ -10271,13 +10360,13 @@ snapshots: agent-base@6.0.2: dependencies: - debug: 4.3.4 + debug: 4.3.5 transitivePeerDependencies: - supports-color agent-base@7.1.0: dependencies: - debug: 4.3.4 + debug: 4.3.5 transitivePeerDependencies: - supports-color @@ -10390,28 +10479,15 @@ snapshots: assertion-error@1.1.0: {} - ast-kit@0.11.3(rollup@4.18.0): + ast-kit@0.12.2: dependencies: '@babel/parser': 7.24.7 - '@rollup/pluginutils': 5.1.0(rollup@4.18.0) pathe: 1.1.2 - transitivePeerDependencies: - - rollup - ast-kit@0.9.5(rollup@4.18.0): + ast-walker-scope@0.6.1: dependencies: '@babel/parser': 7.24.7 - '@rollup/pluginutils': 5.1.0(rollup@4.18.0) - pathe: 1.1.2 - transitivePeerDependencies: - - rollup - - ast-walker-scope@0.5.0(rollup@4.18.0): - dependencies: - '@babel/parser': 7.24.7 - ast-kit: 0.9.5(rollup@4.18.0) - transitivePeerDependencies: - - rollup + ast-kit: 0.12.2 async-sema@3.1.1: {} @@ -10598,14 +10674,14 @@ snapshots: execa: 8.0.1 mri: 1.2.0 node-fetch-native: 1.6.4 - ofetch: 1.3.4 + ofetch: 1.3.4(patch_hash=nxc3eojzwynarpj453xzxqr2f4) open: 9.1.0 pathe: 1.1.2 pkg-types: 1.1.1 scule: 1.3.0 semver: 7.6.2 std-env: 3.7.0 - yaml: 2.3.4 + yaml: 2.4.5 transitivePeerDependencies: - magicast @@ -10747,6 +10823,10 @@ snapshots: cookie-es@1.1.0: {} + copy-anything@3.0.5: + dependencies: + is-what: 4.1.16 + core-js-compat@3.37.1: dependencies: browserslist: 4.23.1 @@ -10780,7 +10860,7 @@ snapshots: create-require@1.1.1: {} - critters@0.0.22: + critters@0.0.24: dependencies: chalk: 4.1.2 css-select: 5.1.0 @@ -10790,7 +10870,7 @@ snapshots: postcss: 8.4.38 postcss-media-query-parser: 0.2.3 - croner@8.0.1: {} + croner@8.0.2: {} cronstrue@2.50.0: {} @@ -10917,7 +10997,7 @@ snapshots: dependencies: ms: 2.1.3 - debug@4.3.4: + debug@4.3.5: dependencies: ms: 2.1.2 @@ -11055,6 +11135,10 @@ snapshots: dependencies: type-fest: 3.13.1 + dot-prop@9.0.0: + dependencies: + type-fest: 4.20.1 + dotenv@16.4.5: {} duplexer@0.1.2: {} @@ -11114,7 +11198,7 @@ snapshots: dependencies: is-arrayish: 0.2.1 - error-stack-parser-es@0.1.1: {} + error-stack-parser-es@0.1.4: {} error-stack-parser@2.1.4: dependencies: @@ -11282,7 +11366,7 @@ snapshots: 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.5.2) - debug: 4.3.4 + debug: 4.3.5 doctrine: 3.0.0 eslint: 9.5.0 eslint-import-resolver-node: 0.3.9 @@ -11299,7 +11383,7 @@ snapshots: '@es-joy/jsdoccomment': 0.43.0 are-docs-informative: 0.0.2 comment-parser: 1.4.1 - debug: 4.3.4 + debug: 4.3.5 escape-string-regexp: 4.0.0 eslint: 9.5.0 esquery: 1.5.0 @@ -11409,7 +11493,7 @@ snapshots: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 - debug: 4.3.4 + debug: 4.3.5 escape-string-regexp: 4.0.0 eslint-scope: 8.0.1 eslint-visitor-keys: 4.0.0 @@ -11509,7 +11593,7 @@ snapshots: signal-exit: 4.1.0 strip-final-newline: 3.0.0 - execa@9.2.0: + execa@9.3.0: dependencies: '@sindresorhus/merge-streams': 4.0.0 cross-spawn: 7.0.3 @@ -11606,11 +11690,11 @@ snapshots: flatted@3.3.1: {} - floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.5.2)): + floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.30(typescript@5.5.2)): dependencies: '@floating-ui/dom': 1.1.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.30(typescript@5.5.2) + vue-resize: 2.0.0-alpha.1(vue@3.4.30(typescript@5.5.2)) optionalDependencies: '@nuxt/kit': link:packages/kit @@ -11837,6 +11921,36 @@ snapshots: dependencies: duplexer: 0.1.2 + h3-nightly@1.12.1-1718872526.a15b8de: + dependencies: + cookie-es: 1.1.0 + crossws: 0.2.4 + defu: 6.1.4 + destr: 2.0.3 + iron-webcrypto: 1.2.1 + ohash: 1.1.3 + radix3: 1.1.2 + ufo: 1.5.3 + uncrypto: 0.1.3 + unenv: 1.9.0 + transitivePeerDependencies: + - uWebSockets.js + + h3-nightly@2.0.0-1718872656.6765a6e: + dependencies: + cookie-es: 1.1.0 + crossws: 0.2.4 + defu: 6.1.4 + destr: 2.0.3 + iron-webcrypto: 1.2.1 + ohash: 1.1.3 + radix3: 1.1.2 + ufo: 1.5.3 + uncrypto: 0.1.3 + unenv: 1.9.0 + transitivePeerDependencies: + - uWebSockets.js + h3@1.12.0: dependencies: cookie-es: 1.1.0 @@ -11995,7 +12109,7 @@ snapshots: http-proxy-agent@7.0.0: dependencies: agent-base: 7.1.0 - debug: 4.3.4 + debug: 4.3.5 transitivePeerDependencies: - supports-color @@ -12004,14 +12118,14 @@ snapshots: https-proxy-agent@5.0.1: dependencies: agent-base: 6.0.2 - debug: 4.3.4 + debug: 4.3.5 transitivePeerDependencies: - supports-color https-proxy-agent@7.0.2: dependencies: agent-base: 7.1.0 - debug: 4.3.4 + debug: 4.3.5 transitivePeerDependencies: - supports-color @@ -12074,11 +12188,11 @@ snapshots: has: 1.0.4 side-channel: 1.0.4 - ioredis@5.3.2: + ioredis@5.4.1: dependencies: '@ioredis/commands': 1.2.0 cluster-key-slot: 1.1.2 - debug: 4.3.4 + debug: 4.3.5 denque: 2.1.0 lodash.defaults: 4.2.0 lodash.isarguments: 3.1.0 @@ -12239,6 +12353,8 @@ snapshots: call-bind: 1.0.7 get-intrinsic: 1.2.4 + is-what@4.1.16: {} + is-wsl@2.2.0: dependencies: is-docker: 2.2.1 @@ -12270,7 +12386,7 @@ snapshots: istanbul-lib-source-maps@5.0.4: dependencies: '@jridgewell/trace-mapping': 0.3.25 - debug: 4.3.4 + debug: 4.3.5 istanbul-lib-coverage: 3.2.2 transitivePeerDependencies: - supports-color @@ -12289,7 +12405,7 @@ snapshots: jest-util@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 20.14.7 + '@types/node': 20.14.9 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -12297,13 +12413,13 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 20.14.7 + '@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.7 + '@types/node': 20.14.9 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -12387,7 +12503,7 @@ snapshots: kolorist@1.8.0: {} - launch-editor@2.6.1: + launch-editor@2.8.0: dependencies: picocolors: 1.0.1 shell-quote: 1.8.1 @@ -12446,8 +12562,6 @@ snapshots: emojis-list: 3.0.0 json5: 2.2.3 - local-pkg@0.4.3: {} - local-pkg@0.5.0: dependencies: mlly: 1.7.1 @@ -12495,7 +12609,7 @@ snapshots: lz-string@1.5.0: {} - magic-string-ast@0.3.0: + magic-string-ast@0.6.1: dependencies: magic-string: 0.30.10 @@ -12880,7 +12994,7 @@ snapshots: micromark@4.0.0: dependencies: '@types/debug': 4.1.12 - debug: 4.3.4 + debug: 4.3.5 decode-named-character-reference: 1.0.2 devlop: 1.1.0 micromark-core-commonmark: 2.0.0 @@ -12916,7 +13030,7 @@ snapshots: mime@3.0.0: {} - mime@4.0.1: {} + mime@4.0.3: {} mimic-fn@2.1.0: {} @@ -12994,8 +13108,6 @@ snapshots: minipass: 3.3.6 yallist: 4.0.0 - mitt@2.1.0: {} - mitt@3.0.1: {} mkdirp@1.0.4: {} @@ -13048,12 +13160,12 @@ snapshots: neo-async@2.6.2: {} - nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4): + nitro-nightly@3.0.0-beta-28648657.9a717203(@opentelemetry/api@1.9.0)(encoding@0.1.13): dependencies: - '@cloudflare/kv-asset-handler': 0.3.1 - '@netlify/functions': 2.6.0 + '@cloudflare/kv-asset-handler': 0.3.3 + '@netlify/functions': 2.7.0(@opentelemetry/api@1.9.0) '@rollup/plugin-alias': 5.1.0(rollup@4.18.0) - '@rollup/plugin-commonjs': 25.0.7(rollup@4.18.0) + '@rollup/plugin-commonjs': 26.0.1(rollup@4.18.0) '@rollup/plugin-inject': 5.0.5(rollup@4.18.0) '@rollup/plugin-json': 6.1.0(rollup@4.18.0) '@rollup/plugin-node-resolve': 15.2.3(rollup@4.18.0) @@ -13061,43 +13173,46 @@ snapshots: '@rollup/plugin-terser': 0.4.4(rollup@4.18.0) '@rollup/pluginutils': 5.1.0(rollup@4.18.0) '@types/http-proxy': 1.17.14 - '@vercel/nft': 0.26.4(encoding@0.1.13) + '@vercel/nft': 0.27.2(encoding@0.1.13) archiver: 7.0.1 c12: 1.11.1(magicast@0.3.4) chalk: 5.3.0 chokidar: 3.6.0 citty: 0.1.6 + compatx: 0.1.8 + confbox: 0.1.7 consola: 3.2.3 cookie-es: 1.1.0 - croner: 8.0.1 + croner: 8.0.2 crossws: 0.2.4 db0: 0.1.4 defu: 6.1.4 destr: 2.0.3 - dot-prop: 8.0.2 - esbuild: 0.20.2 + dot-prop: 9.0.0 + esbuild: 0.21.5 escape-string-regexp: 5.0.0 etag: 1.8.1 fs-extra: 11.2.0 globby: 14.0.1 gzip-size: 7.0.0 - h3: 1.12.0 + h3: h3-nightly@1.12.1-1718872526.a15b8de hookable: 5.5.3 httpxy: 0.1.5 - ioredis: 5.3.2 + ioredis: 5.4.1 is-primitive: 3.0.1 jiti: 1.21.6 klona: 2.0.6 knitwork: 1.1.0 listhen: 1.7.2 magic-string: 0.30.10 - mime: 4.0.1 + magicast: 0.3.4 + mime: 4.0.3 mlly: 1.7.1 mri: 1.2.0 node-fetch-native: 1.6.4 - ofetch: 1.3.4 + ofetch: 1.3.4(patch_hash=nxc3eojzwynarpj453xzxqr2f4) ohash: 1.1.3 - openapi-typescript: 6.7.5 + openapi-typescript: 6.7.6 pathe: 1.1.2 perfect-debounce: 1.0.0 pkg-types: 1.1.1 @@ -13107,7 +13222,7 @@ snapshots: rollup-plugin-visualizer: 5.12.0(rollup@4.18.0) scule: 1.3.0 semver: 7.6.2 - serve-placeholder: 2.0.1 + serve-placeholder: 2.0.2 serve-static: 1.15.0 std-env: 3.7.0 ufo: 1.5.3 @@ -13115,7 +13230,8 @@ snapshots: unctx: 2.3.1 unenv: 1.9.0 unimport: 3.7.2(rollup@4.18.0) - unstorage: 1.10.2(ioredis@5.3.2) + unstorage: 1.10.2(ioredis@5.4.1) + untyped: 1.4.2 unwasm: 0.3.9 transitivePeerDependencies: - '@azure/app-configuration' @@ -13127,6 +13243,97 @@ snapshots: - '@capacitor/preferences' - '@libsql/client' - '@netlify/blobs' + - '@opentelemetry/api' + - '@planetscale/database' + - '@upstash/redis' + - '@vercel/kv' + - better-sqlite3 + - drizzle-orm + - encoding + - idb-keyval + - supports-color + - uWebSockets.js + + nitropack@2.9.6(@opentelemetry/api@1.9.0)(encoding@0.1.13)(magicast@0.3.4): + dependencies: + '@cloudflare/kv-asset-handler': 0.3.3 + '@netlify/functions': 2.7.0(@opentelemetry/api@1.9.0) + '@rollup/plugin-alias': 5.1.0(rollup@4.18.0) + '@rollup/plugin-commonjs': 25.0.7(rollup@4.18.0) + '@rollup/plugin-inject': 5.0.5(rollup@4.18.0) + '@rollup/plugin-json': 6.1.0(rollup@4.18.0) + '@rollup/plugin-node-resolve': 15.2.3(rollup@4.18.0) + '@rollup/plugin-replace': 5.0.7(rollup@4.18.0) + '@rollup/plugin-terser': 0.4.4(rollup@4.18.0) + '@rollup/pluginutils': 5.1.0(rollup@4.18.0) + '@types/http-proxy': 1.17.14 + '@vercel/nft': 0.26.5(encoding@0.1.13) + archiver: 7.0.1 + c12: 1.11.1(magicast@0.3.4) + chalk: 5.3.0 + chokidar: 3.6.0 + citty: 0.1.6 + consola: 3.2.3 + cookie-es: 1.1.0 + croner: 8.0.2 + crossws: 0.2.4 + db0: 0.1.4 + defu: 6.1.4 + destr: 2.0.3 + dot-prop: 8.0.2 + esbuild: 0.20.2 + escape-string-regexp: 5.0.0 + etag: 1.8.1 + fs-extra: 11.2.0 + globby: 14.0.1 + gzip-size: 7.0.0 + h3: h3-nightly@2.0.0-1718872656.6765a6e + hookable: 5.5.3 + httpxy: 0.1.5 + ioredis: 5.4.1 + is-primitive: 3.0.1 + jiti: 1.21.6 + klona: 2.0.6 + knitwork: 1.1.0 + listhen: 1.7.2 + magic-string: 0.30.10 + mime: 4.0.3 + mlly: 1.7.1 + mri: 1.2.0 + node-fetch-native: 1.6.4 + ofetch: 1.3.4(patch_hash=nxc3eojzwynarpj453xzxqr2f4) + ohash: 1.1.3 + openapi-typescript: 6.7.6 + pathe: 1.1.2 + perfect-debounce: 1.0.0 + pkg-types: 1.1.1 + pretty-bytes: 6.1.1 + radix3: 1.1.2 + rollup: 4.18.0 + rollup-plugin-visualizer: 5.12.0(rollup@4.18.0) + scule: 1.3.0 + semver: 7.6.2 + serve-placeholder: 2.0.2 + serve-static: 1.15.0 + std-env: 3.7.0 + ufo: 1.5.3 + uncrypto: 0.1.3 + unctx: 2.3.1 + unenv: 1.9.0 + unimport: 3.7.2(rollup@4.18.0) + unstorage: 1.10.2(ioredis@5.4.1) + unwasm: 0.3.9 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@libsql/client' + - '@netlify/blobs' + - '@opentelemetry/api' - '@planetscale/database' - '@upstash/redis' - '@vercel/kv' @@ -13322,7 +13529,7 @@ snapshots: has-symbols: 1.0.3 object-keys: 1.1.1 - ofetch@1.3.4: + ofetch@1.3.4(patch_hash=nxc3eojzwynarpj453xzxqr2f4): dependencies: destr: 2.0.3 node-fetch-native: 1.6.4 @@ -13366,13 +13573,13 @@ snapshots: is-inside-container: 1.0.0 is-wsl: 2.2.0 - openapi-typescript@6.7.5: + openapi-typescript@6.7.6: dependencies: ansi-colors: 4.1.3 fast-glob: 3.3.2 js-yaml: 4.1.0 supports-color: 9.4.0 - undici: 5.28.3 + undici: 5.28.4 yargs-parser: 21.1.1 opener@1.5.2: {} @@ -13537,7 +13744,7 @@ snapshots: mlly: 1.7.1 pathe: 1.1.2 - playwright-core@1.44.1: {} + playwright-core@1.45.0: {} pluralize@8.0.0: {} @@ -14110,7 +14317,7 @@ snapshots: reusify@1.0.4: {} - rfdc@1.3.1: {} + rfdc@1.4.1: {} rimraf@3.0.2: dependencies: @@ -14238,7 +14445,7 @@ snapshots: dependencies: randombytes: 2.1.0 - serve-placeholder@2.0.1: + serve-placeholder@2.0.2: dependencies: defu: 6.1.4 @@ -14286,10 +14493,6 @@ snapshots: dependencies: '@shikijs/core': 1.1.6 - shiki@1.3.0: - dependencies: - '@shikijs/core': 1.3.0 - shiki@1.6.4: dependencies: '@shikijs/core': 1.6.4 @@ -14317,11 +14520,11 @@ snapshots: transitivePeerDependencies: - supports-color - simple-git@3.24.0: + simple-git@3.25.0: dependencies: '@kwsites/file-exists': 1.1.1 '@kwsites/promise-deferred': 1.1.1 - debug: 4.3.4 + debug: 4.3.5 transitivePeerDependencies: - supports-color @@ -14352,7 +14555,7 @@ snapshots: socks-proxy-agent@8.0.2: dependencies: agent-base: 7.1.0 - debug: 4.3.4 + debug: 4.3.5 socks: 2.7.1 transitivePeerDependencies: - supports-color @@ -14478,6 +14681,10 @@ snapshots: postcss: 8.4.38 postcss-selector-parser: 6.1.0 + superjson@2.2.1: + dependencies: + copy-anything: 3.0.5 + supports-color@5.5.0: dependencies: has-flag: 3.0.0 @@ -14617,7 +14824,7 @@ snapshots: tuf-js@2.2.0: dependencies: '@tufjs/models': 2.0.0 - debug: 4.3.4 + debug: 4.3.5 make-fetch-happen: 13.0.0 transitivePeerDependencies: - supports-color @@ -14657,6 +14864,8 @@ snapshots: type-fest@3.13.1: {} + type-fest@4.20.1: {} + typescript@5.5.2: {} uc.micro@2.1.0: {} @@ -14716,7 +14925,7 @@ snapshots: undici-types@5.26.5: {} - undici@5.28.3: + undici@5.28.4: dependencies: '@fastify/busboy': 2.0.0 @@ -14804,9 +15013,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.7)(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.7)(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 @@ -14825,18 +15034,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.7)(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.7)(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(@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)): + 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.7)(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 @@ -14855,32 +15064,31 @@ 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.7)(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: - '@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.7)(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 - 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)): + unplugin-vue-router@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)): 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.5.2)) - ast-walker-scope: 0.5.0(rollup@4.18.0) + '@vue-macros/common': 1.10.4(rollup@4.18.0)(vue@3.4.30(typescript@5.5.2)) + ast-walker-scope: 0.6.1 chokidar: 3.6.0 fast-glob: 3.3.2 json5: 2.2.3 - local-pkg: 0.4.3 + local-pkg: 0.5.0 mlly: 1.7.1 pathe: 1.1.2 scule: 1.3.0 unplugin: 1.10.1 - yaml: 2.3.4 + yaml: 2.4.5 optionalDependencies: - vue-router: 4.3.3(vue@3.4.29(typescript@5.5.2)) + vue-router: 4.4.0(vue@3.4.30(typescript@5.5.2)) transitivePeerDependencies: - rollup - vue @@ -14892,7 +15100,7 @@ snapshots: webpack-sources: 3.2.3 webpack-virtual-modules: 0.6.2 - unstorage@1.10.2(ioredis@5.3.2): + unstorage@1.10.2(ioredis@5.4.1): dependencies: anymatch: 3.1.3 chokidar: 3.6.0 @@ -14902,10 +15110,10 @@ snapshots: lru-cache: 10.2.0 mri: 1.2.0 node-fetch-native: 1.6.4 - ofetch: 1.3.4 + ofetch: 1.3.4(patch_hash=nxc3eojzwynarpj453xzxqr2f4) ufo: 1.5.3 optionalDependencies: - ioredis: 5.3.2 + ioredis: 5.4.1 transitivePeerDependencies: - uWebSockets.js @@ -14965,9 +15173,9 @@ snapshots: util-deprecate@1.0.2: {} - v-lazy-show@0.2.4(@vue/compiler-core@3.4.29): + v-lazy-show@0.2.4(@vue/compiler-core@3.4.30): dependencies: - '@vue/compiler-core': 3.4.29 + '@vue/compiler-core': 3.4.30 valibot@0.31.1: {} @@ -14996,17 +15204,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.7)(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.7)(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.7)(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.4 + debug: 4.3.5 pathe: 1.1.2 picocolors: 1.0.1 - 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.9)(sass@1.69.4)(terser@5.27.0) transitivePeerDependencies: - '@types/node' - less @@ -15017,7 +15225,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.7)(sass@1.69.4)(terser@5.27.0))(vue-tsc@2.0.21(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 @@ -15030,7 +15238,7 @@ snapshots: semver: 7.6.2 strip-ansi: 6.0.1 tiny-invariant: 1.3.1 - 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.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 @@ -15039,27 +15247,27 @@ snapshots: eslint: 9.5.0 optionator: 0.9.3 typescript: 5.5.2 - vue-tsc: 2.0.21(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.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.9)(sass@1.69.4)(terser@5.27.0)): dependencies: '@antfu/utils': 0.7.8 '@rollup/pluginutils': 5.1.0(rollup@4.18.0) - debug: 4.3.4 - error-stack-parser-es: 0.1.1 + debug: 4.3.5 + error-stack-parser-es: 0.1.4 fs-extra: 11.2.0 open: 10.1.0 perfect-debounce: 1.0.0 picocolors: 1.0.1 sirv: 2.0.4 - 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.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.0(vite@5.3.1(@types/node@20.14.7)(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) @@ -15067,27 +15275,27 @@ snapshots: '@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.29 + '@vue/compiler-dom': 3.4.30 kolorist: 1.8.0 magic-string: 0.30.10 - 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.9)(sass@1.69.4)(terser@5.27.0) transitivePeerDependencies: - supports-color - 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.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.7 + '@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.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)): + 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-nightly@2.0.0-1718872656.6765a6e)(happy-dom@14.12.3)(magicast@0.3.4)(nitropack@2.9.6(@opentelemetry/api@1.9.0)(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.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/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-nightly@2.0.0-1718872656.6765a6e)(happy-dom@14.12.3)(magicast@0.3.4)(nitropack@2.9.6(@opentelemetry/api@1.9.0)(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' @@ -15106,7 +15314,7 @@ snapshots: - vue - vue-router - vitest@1.6.0(@types/node@20.14.7)(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 @@ -15115,7 +15323,7 @@ snapshots: '@vitest/utils': 1.6.0 acorn-walk: 8.3.2 chai: 4.3.10 - debug: 4.3.4 + debug: 4.3.5 execa: 8.0.1 local-pkg: 0.5.0 magic-string: 0.30.10 @@ -15125,11 +15333,11 @@ snapshots: strip-literal: 2.1.0 tinybench: 2.5.1 tinypool: 0.8.4 - 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) + 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.7 + '@types/node': 20.14.9 happy-dom: 14.12.3 transitivePeerDependencies: - less @@ -15171,15 +15379,15 @@ snapshots: vue-component-type-helpers@2.0.6: {} - vue-demi@0.14.8(vue@3.4.29(typescript@5.5.2)): + vue-demi@0.14.8(vue@3.4.30(typescript@5.5.2)): dependencies: - vue: 3.4.29(typescript@5.5.2) + vue: 3.4.30(typescript@5.5.2) vue-devtools-stub@0.1.0: {} vue-eslint-parser@9.4.2(eslint@9.5.0): dependencies: - debug: 4.3.4 + debug: 4.3.5 eslint: 9.5.0 eslint-scope: 7.2.2 eslint-visitor-keys: 3.4.3 @@ -15190,55 +15398,44 @@ snapshots: transitivePeerDependencies: - supports-color - vue-loader@17.4.2(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.5.2))(webpack@5.92.1): + vue-loader@17.4.2(@vue/compiler-sfc@3.4.30)(vue@3.4.30(typescript@5.5.2))(webpack@5.92.1): dependencies: chalk: 4.1.2 hash-sum: 2.0.0 watchpack: 2.4.1 webpack: 5.92.1 optionalDependencies: - '@vue/compiler-sfc': 3.4.29 - vue: 3.4.29(typescript@5.5.2) + '@vue/compiler-sfc': 3.4.30 + vue: 3.4.30(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.30(typescript@5.5.2)): dependencies: - vue: 3.4.29(typescript@5.5.2) + vue: 3.4.30(typescript@5.5.2) - vue-resize@2.0.0-alpha.1(vue@3.4.29(typescript@5.5.2)): - dependencies: - vue: 3.4.29(typescript@5.5.2) - - vue-router@4.3.3(vue@3.4.29(typescript@5.5.2)): + vue-router@4.4.0(vue@3.4.30(typescript@5.5.2)): dependencies: '@vue/devtools-api': 6.6.3 - vue: 3.4.29(typescript@5.5.2) + vue: 3.4.30(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.5.2): + vue-tsc@2.0.22(typescript@5.5.2): dependencies: - '@volar/typescript': 2.3.0-alpha.15 - '@vue/language-core': 2.0.21(typescript@5.5.2) + '@volar/typescript': 2.3.3 + '@vue/language-core': 2.0.22(typescript@5.5.2) semver: 7.6.2 typescript: 5.5.2 - vue-virtual-scroller@2.0.0-beta.8(vue@3.4.29(typescript@5.5.2)): + vue@3.4.30(typescript@5.5.2): dependencies: - mitt: 2.1.0 - 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.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.5.2)) - '@vue/shared': 3.4.29 + '@vue/compiler-dom': 3.4.30 + '@vue/compiler-sfc': 3.4.30 + '@vue/runtime-dom': 3.4.30 + '@vue/server-renderer': 3.4.30(vue@3.4.30(typescript@5.5.2)) + '@vue/shared': 3.4.30 optionalDependencies: typescript: 5.5.2 @@ -15445,7 +15642,7 @@ snapshots: ws@7.5.9: {} - ws@8.17.0: {} + ws@8.17.1: {} xml-name-validator@4.0.0: {} @@ -15459,7 +15656,7 @@ snapshots: yallist@4.0.0: {} - yaml@2.3.4: {} + yaml@2.4.5: {} yargs-parser@21.1.1: {} diff --git a/renovate.json b/renovate.json index 974eeccfc7..1cd0fc6801 100644 --- a/renovate.json +++ b/renovate.json @@ -20,18 +20,13 @@ "^@vitest/" ] }, - { - "groupName": "unplugin-vue-router", - "matchPackageNames": [ - "unplugin-vue-router" - ] - }, { "matchBaseBranches": [ "main" ], "ignoreDeps": [ - "@vitejs/plugin-vue", + "nitro", + "h3", "nuxt", "nuxt3", "@nuxt/kit" diff --git a/scripts/bump-edge.ts b/scripts/bump-edge.ts index 1e2b51a6fb..202f7779d2 100644 --- a/scripts/bump-edge.ts +++ b/scripts/bump-edge.ts @@ -4,8 +4,8 @@ import { consola } from 'consola' import { determineBumpType, loadWorkspace } from './_utils' const nightlyPackages = { - nitropack: 'nitropack-nightly', - h3: 'h3-nightly', + // nitro: 'nitro-nightly', + // h3: 'h3-nightly', nuxi: 'nuxi-nightly', } diff --git a/test/basic.test.ts b/test/basic.test.ts index cd4ead8990..352c4fa8fc 100644 --- a/test/basic.test.ts +++ b/test/basic.test.ts @@ -4,13 +4,16 @@ import { describe, expect, it } from 'vitest' import { joinURL, withQuery } from 'ufo' import { isCI, isWindows } from 'std-env' import { join, normalize } from 'pathe' -import { $fetch, createPage, fetch, isDev, setup, startServer, url, useTestContext } from '@nuxt/test-utils/e2e' +import { $fetch as _$fetch, createPage, fetch, isDev, setup, startServer, url, useTestContext } from '@nuxt/test-utils/e2e' import { $fetchComponent } from '@nuxt/test-utils/experimental' import { expectNoClientErrors, expectWithPolling, gotoPath, isRenderingJson, parseData, parsePayload, renderPage } from './utils' import type { NuxtIslandResponse } from '#app' +// TODO: update @nuxt/test-utils +const $fetch = _$fetch as import('nitro/types').$Fetch + const isWebpack = process.env.TEST_BUILDER === 'webpack' const isTestingAppManifest = process.env.TEST_MANIFEST !== 'manifest-off' @@ -491,7 +494,7 @@ describe('pages', () => { }) it('client only page', async () => { - const response = await fetch('/client-only').then(r => r.text()) + const response = await fetch('/client-only-page').then(r => r.text()) // Should not contain rendered page on initial request expect(response).not.toContain('"hasAccessToWindow": true') @@ -519,10 +522,11 @@ describe('pages', () => { // Then go to non client only page await clientInitialPage.click('a') - await new Promise(resolve => setTimeout(resolve, 50)) // little delay to finish transition + await clientInitialPage.waitForFunction(() => window.useNuxtApp?.()._route.fullPath === '/client-only-page/normal') // that page should be client rendered - expect(await clientInitialPage.locator('#server-rendered').textContent()).toMatchInlineSnapshot('"false"') + // TODO: investigate why multiple elements are appearing on page + expect(await clientInitialPage.locator('#server-rendered').first().textContent()).toMatchInlineSnapshot('"false"') // and not contain any errors or warnings expect(errors.length).toBe(0) @@ -544,6 +548,8 @@ describe('pages', () => { // Go to client only page await normalInitialPage.click('a') + await normalInitialPage.waitForFunction(() => window.useNuxtApp?.()._route.fullPath === '/client-only-page') + // and expect same object to be present expect(await normalInitialPage.locator('#state').textContent()).toMatchInlineSnapshot(` "{ @@ -710,7 +716,7 @@ describe('nuxt links', () => { for (const selector of ['nuxt-link', 'router-link', 'link-with-trailing-slash', 'link-without-trailing-slash']) { data[selector] = [] for (const match of html.matchAll(new RegExp(`href="([^"]*)"[^>]*class="[^"]*\\b${selector}\\b`, 'g'))) { - data[selector].push(match[1]) + data[selector]!.push(match[1]!) } } expect(data).toMatchInlineSnapshot(` @@ -1002,9 +1008,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')) }) }) @@ -1403,7 +1410,7 @@ describe('extends support', () => { describe('app', () => { it('extends foo/app/router.options & bar/app/router.options', async () => { const html: string = await $fetch('/') - const routerLinkClasses = html.match(/href="\/" class="([^"]*)"/)?.[1].split(' ') + const routerLinkClasses = html.match(/href="\/" class="([^"]*)"/)![1]!.split(' ') expect(routerLinkClasses).toContain('foo-active-class') expect(routerLinkClasses).toContain('bar-exact-active-class') }) @@ -1415,6 +1422,7 @@ describe('deferred app suspense resolve', () => { it.each(['/async-parent/child', '/internal-layout/async-parent/child'])('should wait for all suspense instance on initial hydration', async (path) => { const { page, consoleLogs } = await renderPage(path) + await page.waitForFunction(() => window.useNuxtApp?.() && !window.useNuxtApp?.().isHydrating) // Wait for all pending micro ticks to be cleared in case hydration hasn't finished yet. await page.evaluate(() => new Promise(resolve => setTimeout(resolve, 10))) @@ -1445,7 +1453,7 @@ describe('nested suspense', () => { ['/suspense/sync-1/sync-1/', '/suspense/sync-2/async-1/'], ['/suspense/async-1/async-1/', '/suspense/async-2/async-1/'], ['/suspense/async-1/sync-1/', '/suspense/async-2/async-1/'], - ]).flatMap(([start, end]) => [ + ] as const).flatMap(([start, end]) => [ [start, end], [start, end + '?layout=custom'], [start + '?layout=custom', end], @@ -1511,7 +1519,7 @@ describe('nested suspense', () => { const first = start.match(/\/suspense\/(?a?sync)-(?\d)\/(?a?sync)-(?\d)\//)!.groups! const last = nav.match(/\/suspense\/(?a?sync)-(?\d)\//)!.groups! - await new Promise(resolve => setTimeout(resolve, 50)) + await page.waitForFunction(path => window.useNuxtApp?.()._route.fullPath === path, nav) expect(consoleLogs.map(l => l.text).filter(i => !i.includes('[vite]') && !i.includes(' is an experimental feature')).sort()).toEqual([ // [first load] from parent @@ -1573,6 +1581,7 @@ describe('page key', () => { await page.click(`[href="${path}/1"]`) await page.waitForSelector('#page-1') + await page.waitForFunction(path => window.useNuxtApp?.()._route.fullPath === path, `${path}/1`) // Wait for all pending micro ticks to be cleared, // so we are not resolved too early when there are repeated page loading await page.evaluate(() => new Promise(resolve => setTimeout(resolve, 10))) @@ -1587,6 +1596,7 @@ describe('page key', () => { await page.click(`[href="${path}/1"]`) await page.waitForSelector('#page-1') + await page.waitForFunction(path => window.useNuxtApp?.()._route.fullPath === path, `${path}/1`) // Wait for all pending micro ticks to be cleared, // so we are not resolved too early when there are repeated page loading await page.evaluate(() => new Promise(resolve => setTimeout(resolve, 10))) @@ -1619,6 +1629,7 @@ describe('layout change not load page twice', () => { await page.click(`[href="${path2}"]`) await page.waitForSelector('#with-layout2') + await page.waitForFunction(path => window.useNuxtApp?.()._route.fullPath === path, path2) // Wait for all pending micro ticks to be cleared, // so we are not resolved too early when there are repeated page loading await page.evaluate(() => new Promise(resolve => setTimeout(resolve, 10))) @@ -1708,7 +1719,7 @@ describe.skipIf(isDev() || isWebpack)('inlining component styles', () => { it('should not include inlined CSS in generated CSS file', async () => { const html: string = await $fetch('/styles') - const cssFiles = new Set([...html.matchAll(/]*href="([^"]*\.css)">/g)].map(m => m[1])) + const cssFiles = new Set([...html.matchAll(/]*href="([^"]*\.css)">/g)].map(m => m[1]!)) let css = '' for (const file of cssFiles || []) { css += await $fetch(file) @@ -1911,7 +1922,7 @@ describe.skipIf(isDev() || isWindows || !isRenderingJson)('prefetching', () => { describe.runIf(isDev() && (!isWindows || !isCI))('detecting invalid root nodes', () => { it.each(['1', '2', '3', '4'])('should detect invalid root nodes in pages (\'/invalid-root/%s\')', async (path) => { const { consoleLogs, page } = await renderPage(joinURL('/invalid-root', path)) - await page.evaluate(() => new Promise(resolve => setTimeout(resolve, 10))) + await page.waitForFunction(path => window.useNuxtApp?.()._route.fullPath === path, joinURL('/invalid-root', path)) await expectWithPolling( () => consoleLogs .map(w => w.text).join('\n') @@ -1924,7 +1935,7 @@ describe.runIf(isDev() && (!isWindows || !isCI))('detecting invalid root nodes', it.each(['fine'])('should not complain if there is no transition (%s)', async (path) => { const { consoleLogs, page } = await renderPage(joinURL('/invalid-root', path)) - await page.evaluate(() => new Promise(resolve => setTimeout(resolve, 10))) + await page.waitForFunction(path => window.useNuxtApp?.()._route.fullPath === path, joinURL('/invalid-root', path)) const consoleLogsWarns = consoleLogs.filter(i => i.type === 'warning') expect(consoleLogsWarns.length).toEqual(0) @@ -1959,7 +1970,7 @@ describe.skipIf(isDev())('dynamic paths', () => { it('should work with no overrides', async () => { const html: string = await $fetch('/assets') for (const match of html.matchAll(/(href|src)="(.*?)"|url\(([^)]*)\)/g)) { - const url = match[2] || match[3] + const url = match[2] || match[3]! expect(url.startsWith('/_nuxt/') || isPublicFile('/', url)).toBeTruthy() } }) @@ -1968,10 +1979,10 @@ describe.skipIf(isDev())('dynamic paths', () => { it.skipIf(isWebpack)('adds relative paths to CSS', async () => { const html: string = await $fetch('/assets') const urls = Array.from(html.matchAll(/(href|src)="(.*?)"|url\(([^)]*)\)/g)).map(m => m[2] || m[3]) - const cssURL = urls.find(u => /_nuxt\/assets.*\.css$/.test(u)) + const cssURL = urls.find(u => /_nuxt\/assets.*\.css$/.test(u!)) expect(cssURL).toBeDefined() const css = await $fetch(cssURL!) - const imageUrls = new Set(Array.from(css.matchAll(/url\(([^)]*)\)/g)).map(m => m[1].replace(/[-.]\w{8}\./g, '.'))) + const imageUrls = new Set(Array.from(css.matchAll(/url\(([^)]*)\)/g)).map(m => m[1]!.replace(/[-.]\w{8}\./g, '.'))) expect([...imageUrls]).toMatchInlineSnapshot(` [ "./logo.svg", @@ -1990,7 +2001,7 @@ describe.skipIf(isDev())('dynamic paths', () => { const html = await $fetch('/foo/assets') for (const match of html.matchAll(/(href|src)="(.*?)"|url\(([^)]*)\)/g)) { - const url = match[2] || match[3] + const url = match[2] || match[3]! expect(url.startsWith('/foo/_other/') || isPublicFile('/foo/', url)).toBeTruthy() } @@ -2006,7 +2017,7 @@ describe.skipIf(isDev())('dynamic paths', () => { const html = await $fetch('/assets') for (const match of html.matchAll(/(href|src)="(.*?)"|url\(([^)]*)\)/g)) { - const url = match[2] || match[3] + const url = match[2] || match[3]! expect(url.startsWith('./_nuxt/') || isPublicFile('./', url)).toBeTruthy() expect(url.startsWith('./_nuxt/_nuxt')).toBeFalsy() } @@ -2035,7 +2046,7 @@ describe.skipIf(isDev())('dynamic paths', () => { const html = await $fetch('/foo/assets') for (const match of html.matchAll(/(href|src)="(.*?)"|url\(([^)]*)\)/g)) { - const url = match[2] || match[3] + const url = match[2] || match[3]! expect(url.startsWith('https://example.com/_cdn/') || isPublicFile('https://example.com/', url)).toBeTruthy() } }) @@ -2071,7 +2082,7 @@ describe('component islands', () => { result.html = result.html.replace(/ data-island-uid="[^"]*"/g, '') if (isDev()) { - result.head.link = result.head.link.filter(l => !l.href.includes('@nuxt+ui-templates') && (l.href.startsWith('_nuxt/components/islands/') && l.href.includes('_nuxt/components/islands/RouteComponent'))) + result.head.link = result.head.link.filter(l => !l.href!.includes('@nuxt+ui-templates') && (l.href!.startsWith('_nuxt/components/islands/') && l.href!.includes('_nuxt/components/islands/RouteComponent'))) } expect(result).toMatchInlineSnapshot(` @@ -2093,7 +2104,7 @@ describe('component islands', () => { }), })) if (isDev()) { - result.head.link = result.head.link.filter(l => !l.href.includes('@nuxt+ui-templates') && (l.href.startsWith('_nuxt/components/islands/') && l.href.includes('_nuxt/components/islands/LongAsyncComponent'))) + result.head.link = result.head.link.filter(l => !l.href!.includes('@nuxt+ui-templates') && (l.href!.startsWith('_nuxt/components/islands/') && l.href!.includes('_nuxt/components/islands/LongAsyncComponent'))) } result.html = result.html.replaceAll(/ (data-island-uid|data-island-component)="([^"]*)"/g, '') expect(result).toMatchInlineSnapshot(` @@ -2151,7 +2162,7 @@ describe('component islands', () => { }), })) if (isDev()) { - result.head.link = result.head.link.filter(l => !l.href.includes('@nuxt+ui-templates') && (l.href.startsWith('_nuxt/components/islands/') && l.href.includes('_nuxt/components/islands/AsyncServerComponent'))) + result.head.link = result.head.link.filter(l => !l.href!.includes('@nuxt+ui-templates') && (l.href!.startsWith('_nuxt/components/islands/') && l.href!.includes('_nuxt/components/islands/AsyncServerComponent'))) } result.props = {} result.components = {} @@ -2176,7 +2187,7 @@ describe('component islands', () => { it('render server component with selective client hydration', async () => { const result = await $fetch('/__nuxt_island/ServerWithClient') if (isDev()) { - result.head.link = result.head.link.filter(l => !l.href.includes('@nuxt+ui-templates') && (l.href.startsWith('_nuxt/components/islands/') && l.href.includes('_nuxt/components/islands/AsyncServerComponent'))) + result.head.link = result.head.link.filter(l => !l.href!.includes('@nuxt+ui-templates') && (l.href!.startsWith('_nuxt/components/islands/') && l.href!.includes('_nuxt/components/islands/AsyncServerComponent'))) } const { components } = result result.components = {} @@ -2197,13 +2208,13 @@ describe('component islands', () => { } `) expect(teleportsEntries).toHaveLength(1) - expect(teleportsEntries[0][0].startsWith('Counter-')).toBeTruthy() - expect(teleportsEntries[0][1].props).toMatchInlineSnapshot(` + expect(teleportsEntries[0]![0].startsWith('Counter-')).toBeTruthy() + expect(teleportsEntries[0]![1].props).toMatchInlineSnapshot(` { "multiplier": 1, } `) - expect(teleportsEntries[0][1].html).toMatchInlineSnapshot('"
Sugar Counter 12 x 1 = 12
"') + expect(teleportsEntries[0]![1].html).toMatchInlineSnapshot('"
Sugar Counter 12 x 1 = 12
"') }) } @@ -2221,10 +2232,10 @@ describe('component islands', () => { if (isDev()) { const fixtureDir = normalize(fileURLToPath(new URL('./fixtures/basic', import.meta.url))) for (const link of result.head.link) { - link.href = link.href.replace(fixtureDir, '/').replaceAll('//', '/') - link.key = link.key.replace(/-[a-z0-9]+$/i, '') + link.href = link.href!.replace(fixtureDir, '/').replaceAll('//', '/') + link.key = link.key!.replace(/-[a-z0-9]+$/i, '') } - result.head.link.sort((a, b) => b.href.localeCompare(a.href)) + result.head.link.sort((a, b) => b.href!.localeCompare(a.href!)) } // TODO: fix rendering of styles in webpack @@ -2243,7 +2254,7 @@ describe('component islands', () => { } else if (isDev() && !isWebpack) { // TODO: resolve dev bug triggered by earlier fetch of /vueuse-head page // https://github.com/nuxt/nuxt/blob/main/packages/nuxt/src/core/runtime/nitro/renderer.ts#L139 - result.head.link = result.head.link.filter(h => !h.href.includes('SharedComponent')) + result.head.link = result.head.link.filter(h => !h.href!.includes('SharedComponent')) expect(result.head).toMatchInlineSnapshot(` { "link": [ @@ -2591,12 +2602,12 @@ describe('teleports', () => { describe('Node.js compatibility for client-side', () => { it('should work', async () => { - const { page } = await renderPage('/node-compat') + const { page } = await renderPage('/experimental/node-compat') await page.locator('body').getByText('Nuxt is Awesome!').waitFor() expect(await page.innerHTML('body')).toContain('CWD: [available]') await page.close() - }) -}, 30_000) + }, 40_000) +}) function normaliseIslandResult (result: NuxtIslandResponse) { return { diff --git a/test/bundle.test.ts b/test/bundle.test.ts index 14878051b8..0b3c3e4441 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", @@ -35,7 +35,7 @@ describe.skipIf(process.env.SKIP_BUNDLE_SIZE === 'true' || process.env.ECOSYSTEM expect.soft(roundToKilobytes(serverStats.totalBytes)).toMatchInlineSnapshot(`"210k"`) const modules = await analyzeSizes('node_modules/**/*', serverDir) - expect.soft(roundToKilobytes(modules.totalBytes)).toMatchInlineSnapshot(`"1340k"`) + expect.soft(roundToKilobytes(modules.totalBytes)).toMatchInlineSnapshot(`"1345k"`) const packages = modules.files .filter(m => m.endsWith('package.json')) @@ -55,6 +55,7 @@ describe.skipIf(process.env.SKIP_BUNDLE_SIZE === 'true' || process.env.ECOSYSTEM "@vue/runtime-dom", "@vue/server-renderer", "@vue/shared", + "db0", "devalue", "entities", "estree-walker", @@ -75,7 +76,7 @@ describe.skipIf(process.env.SKIP_BUNDLE_SIZE === 'true' || process.env.ECOSYSTEM expect.soft(roundToKilobytes(serverStats.totalBytes)).toMatchInlineSnapshot(`"531k"`) const modules = await analyzeSizes('node_modules/**/*', serverDir) - expect.soft(roundToKilobytes(modules.totalBytes)).toMatchInlineSnapshot(`"76.2k"`) + expect.soft(roundToKilobytes(modules.totalBytes)).toMatchInlineSnapshot(`"80.3k"`) const packages = modules.files .filter(m => m.endsWith('package.json')) @@ -86,6 +87,7 @@ describe.skipIf(process.env.SKIP_BUNDLE_SIZE === 'true' || process.env.ECOSYSTEM "@unhead/dom", "@unhead/shared", "@unhead/ssr", + "db0", "devalue", "hookable", "unhead", diff --git a/test/fixtures/basic-types/package.json b/test/fixtures/basic-types/package.json index 59851227a6..2eee0a54f8 100644 --- a/test/fixtures/basic-types/package.json +++ b/test/fixtures/basic-types/package.json @@ -10,7 +10,7 @@ }, "devDependencies": { "ofetch": "latest", - "unplugin-vue-router": "^0.7.0", + "unplugin-vue-router": "^0.10.0", "vitest": "1.6.0", "vue": "latest", "vue-router": "latest" diff --git a/test/fixtures/basic-types/types.ts b/test/fixtures/basic-types/types.ts index a3338af471..bc9b4752cf 100644 --- a/test/fixtures/basic-types/types.ts +++ b/test/fixtures/basic-types/types.ts @@ -1,7 +1,7 @@ import { describe, expectTypeOf, it } from 'vitest' import type { Ref, SlotsType } from 'vue' import type { FetchError } from 'ofetch' -import type { NavigationFailure, RouteLocationNormalized, RouteLocationRaw, Router, useRouter as vueUseRouter } from '#vue-router' +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' 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