From f5ab7eb4946b52c13109fa504c2f9b86b42c5fb9 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Wed, 19 Jun 2024 13:56:54 +0100 Subject: [PATCH 001/119] refactor(kit,nuxt)!: drop nuxt 2 + ejs template compile support (#27706) --- packages/kit/build.config.ts | 1 - packages/kit/package.json | 3 -- packages/kit/src/compatibility.ts | 17 ------ packages/kit/src/index.ts | 1 - packages/kit/src/internal/template.ts | 47 ---------------- packages/kit/src/layout.ts | 16 ------ packages/kit/src/module/define.ts | 62 ++-------------------- packages/kit/src/module/install.ts | 8 +-- packages/kit/src/pages.ts | 9 +--- packages/nuxt/src/core/app.ts | 8 ++- packages/schema/src/config/experimental.ts | 27 ---------- packages/ui-templates/lib/dev.ts | 22 +++++--- packages/ui-templates/package.json | 2 - pnpm-lock.yaml | 15 ------ 14 files changed, 24 insertions(+), 214 deletions(-) delete mode 100644 packages/kit/src/internal/template.ts diff --git a/packages/kit/build.config.ts b/packages/kit/build.config.ts index 10db295927..acd2539172 100644 --- a/packages/kit/build.config.ts +++ b/packages/kit/build.config.ts @@ -12,5 +12,4 @@ export default defineBuildConfig({ 'vite', 'h3', ], - failOnWarn: false, }) diff --git a/packages/kit/package.json b/packages/kit/package.json index 2253b46346..2a5934ef29 100644 --- a/packages/kit/package.json +++ b/packages/kit/package.json @@ -36,7 +36,6 @@ "ignore": "^5.3.1", "jiti": "^1.21.6", "klona": "^2.0.6", - "knitwork": "^1.1.0", "mlly": "^1.7.1", "pathe": "^1.1.2", "pkg-types": "^1.1.1", @@ -49,9 +48,7 @@ }, "devDependencies": { "@types/hash-sum": "1.0.2", - "@types/lodash-es": "4.17.12", "@types/semver": "7.5.8", - "lodash-es": "4.17.21", "nitropack": "2.9.6", "unbuild": "latest", "vite": "5.3.1", diff --git a/packages/kit/src/compatibility.ts b/packages/kit/src/compatibility.ts index b2720f05c9..64f39b9549 100644 --- a/packages/kit/src/compatibility.ts +++ b/packages/kit/src/compatibility.ts @@ -29,23 +29,6 @@ export async function checkNuxtCompatibility (constraints: NuxtCompatibility, nu } } - // Bridge compatibility check - if (isNuxt2(nuxt)) { - const bridgeRequirement = constraints.bridge - const hasBridge = !!(nuxt.options as any).bridge - if (bridgeRequirement === true && !hasBridge) { - issues.push({ - name: 'bridge', - message: 'Nuxt bridge is required', - }) - } else if (bridgeRequirement === false && hasBridge) { - issues.push({ - name: 'bridge', - message: 'Nuxt bridge is not supported', - }) - } - } - // Builder compatibility check if (constraints.builder && typeof nuxt.options.builder === 'string') { const currentBuilder = builderMap[nuxt.options.builder] || nuxt.options.builder diff --git a/packages/kit/src/index.ts b/packages/kit/src/index.ts index 405de8606a..1f70f0a484 100644 --- a/packages/kit/src/index.ts +++ b/packages/kit/src/index.ts @@ -35,4 +35,3 @@ export { } from './internal/cjs' export type { ResolveModuleOptions, RequireModuleOptions } from './internal/cjs' export { tryResolveModule } from './internal/esm' -export * from './internal/template' diff --git a/packages/kit/src/internal/template.ts b/packages/kit/src/internal/template.ts deleted file mode 100644 index 343393e5ec..0000000000 --- a/packages/kit/src/internal/template.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { promises as fsp } from 'node:fs' -// TODO: swap out when https://github.com/lodash/lodash/pull/5649 is merged -import { template as lodashTemplate } from 'lodash-es' -import { genDynamicImport, genImport, genSafeVariableName } from 'knitwork' - -import type { NuxtTemplate } from '@nuxt/schema' -import { logger } from '../logger' -import { toArray } from '../utils' - -/** @deprecated */ -// TODO: Remove support for compiling ejs templates in v4 -export async function compileTemplate (template: NuxtTemplate, ctx: any) { - const data = { ...ctx, options: template.options } - if (template.src) { - try { - const srcContents = await fsp.readFile(template.src, 'utf-8') - return lodashTemplate(srcContents, {})(data) - } catch (err) { - logger.error('Error compiling template: ', template) - throw err - } - } - if (template.getContents) { - return template.getContents(data) - } - throw new Error('Invalid template: ' + JSON.stringify(template)) -} - -/** @deprecated */ -const serialize = (data: any) => JSON.stringify(data, null, 2).replace(/"\{(.+)\}"(?=,?$)/gm, r => JSON.parse(r).replace(/^\{(.*)\}$/, '$1')) - -/** @deprecated */ -const importSources = (sources: string | string[], { lazy = false } = {}) => { - return toArray(sources).map((src) => { - const safeVariableName = genSafeVariableName(src) - if (lazy) { - return `const ${safeVariableName} = ${genDynamicImport(src, { comment: `webpackChunkName: ${JSON.stringify(src)}` })}` - } - return genImport(src, safeVariableName) - }).join('\n') -} - -/** @deprecated */ -const importName = genSafeVariableName - -/** @deprecated */ -export const templateUtils = { serialize, importName, importSources } diff --git a/packages/kit/src/layout.ts b/packages/kit/src/layout.ts index bf86c443c9..d1b2656f71 100644 --- a/packages/kit/src/layout.ts +++ b/packages/kit/src/layout.ts @@ -1,7 +1,6 @@ import type { NuxtTemplate } from '@nuxt/schema' import { join, parse, relative } from 'pathe' import { kebabCase } from 'scule' -import { isNuxt2 } from './compatibility' import { useNuxt } from './context' import { logger } from './logger' import { addTemplate } from './template' @@ -11,21 +10,6 @@ export function addLayout (this: any, template: NuxtTemplate | string, name?: st const { filename, src } = addTemplate(template) const layoutName = kebabCase(name || parse(filename).name).replace(/["']/g, '') - if (isNuxt2(nuxt)) { - // Nuxt 2 adds layouts in options - const layout = (nuxt.options as any).layouts[layoutName] - if (layout) { - return logger.warn( - `Not overriding \`${layoutName}\` (provided by \`${layout}\`) with \`${src || filename}\`.`, - ) - } - (nuxt.options as any).layouts[layoutName] = `./${filename}` - if (name === 'error') { - this.addErrorLayout(filename) - } - return - } - // Nuxt 3 adds layouts on app nuxt.hook('app:templates', (app) => { if (layoutName in app.layouts) { diff --git a/packages/kit/src/module/define.ts b/packages/kit/src/module/define.ts index ff2a56d2d4..e0986ef59a 100644 --- a/packages/kit/src/module/define.ts +++ b/packages/kit/src/module/define.ts @@ -1,13 +1,10 @@ -import { promises as fsp } from 'node:fs' import { performance } from 'node:perf_hooks' import { defu } from 'defu' import { applyDefaults } from 'untyped' -import { dirname } from 'pathe' -import type { ModuleDefinition, ModuleOptions, ModuleSetupReturn, Nuxt, NuxtModule, NuxtOptions, ResolvedNuxtTemplate } from '@nuxt/schema' +import type { ModuleDefinition, ModuleOptions, ModuleSetupReturn, Nuxt, NuxtModule, NuxtOptions } from '@nuxt/schema' import { logger } from '../logger' -import { nuxtCtx, tryUseNuxt, useNuxt } from '../context' -import { checkNuxtCompatibility, isNuxt2 } from '../compatibility' -import { compileTemplate, templateUtils } from '../internal/template' +import { tryUseNuxt, useNuxt } from '../context' +import { checkNuxtCompatibility } from '../compatibility' /** * Define a Nuxt module, automatically merging defaults with user provided options, installing @@ -58,9 +55,6 @@ export function defineNuxtModule (definition: Mo } } - // Prepare - nuxt2Shims(nuxt) - // Resolve module and options const _options = await getOptions(inlineOptions, nuxt) @@ -100,53 +94,3 @@ export function defineNuxtModule (definition: Mo return normalizedModule as NuxtModule } - -// -- Nuxt 2 compatibility shims -- -const NUXT2_SHIMS_KEY = '__nuxt2_shims_key__' -function nuxt2Shims (nuxt: Nuxt) { - // Avoid duplicate install and only apply to Nuxt2 - if (!isNuxt2(nuxt) || nuxt[NUXT2_SHIMS_KEY as keyof Nuxt]) { return } - nuxt[NUXT2_SHIMS_KEY as keyof Nuxt] = true - - // Allow using nuxt.hooks - // @ts-expect-error Nuxt 2 extends hookable - nuxt.hooks = nuxt - - // Allow using useNuxt() - if (!nuxtCtx.tryUse()) { - nuxtCtx.set(nuxt) - nuxt.hook('close', () => nuxtCtx.unset()) - } - - // Support virtual templates with getContents() by writing them to .nuxt directory - let virtualTemplates: ResolvedNuxtTemplate[] - // @ts-expect-error Nuxt 2 hook - nuxt.hook('builder:prepared', (_builder, buildOptions) => { - virtualTemplates = buildOptions.templates.filter((t: any) => t.getContents) - for (const template of virtualTemplates) { - buildOptions.templates.splice(buildOptions.templates.indexOf(template), 1) - } - }) - // @ts-expect-error Nuxt 2 hook - nuxt.hook('build:templates', async (templates) => { - const context = { - nuxt, - utils: templateUtils, - app: { - dir: nuxt.options.srcDir, - extensions: nuxt.options.extensions, - plugins: nuxt.options.plugins, - templates: [ - ...templates.templatesFiles, - ...virtualTemplates, - ], - templateVars: templates.templateVars, - }, - } - for await (const template of virtualTemplates) { - const contents = await compileTemplate({ ...template, src: '' }, context) - await fsp.mkdir(dirname(template.dst), { recursive: true }) - await fsp.writeFile(template.dst, contents) - } - }) -} diff --git a/packages/kit/src/module/install.ts b/packages/kit/src/module/install.ts index beecd62aef..6d04cef352 100644 --- a/packages/kit/src/module/install.ts +++ b/packages/kit/src/module/install.ts @@ -2,7 +2,6 @@ import { existsSync, promises as fsp, lstatSync } from 'node:fs' import type { ModuleMeta, Nuxt, NuxtConfig, NuxtModule } from '@nuxt/schema' import { dirname, isAbsolute, join, resolve } from 'pathe' import { defu } from 'defu' -import { isNuxt2 } from '../compatibility' import { useNuxt } from '../context' import { requireModule } from '../internal/cjs' import { importModule } from '../internal/esm' @@ -27,12 +26,7 @@ export async function installModule< } // Call module - const res = ( - isNuxt2() - // @ts-expect-error Nuxt 2 `moduleContainer` is not typed - ? await nuxtModule.call(nuxt.moduleContainer, inlineOptions, nuxt) - : await nuxtModule(inlineOptions, nuxt) - ) ?? {} + const res = await nuxtModule(inlineOptions, nuxt) ?? {} if (res === false /* setup aborted */) { return } diff --git a/packages/kit/src/pages.ts b/packages/kit/src/pages.ts index 04c7592a55..401bf2881b 100644 --- a/packages/kit/src/pages.ts +++ b/packages/kit/src/pages.ts @@ -2,18 +2,11 @@ import type { NuxtHooks, NuxtMiddleware } from '@nuxt/schema' import type { NitroRouteConfig } from 'nitropack' import { defu } from 'defu' import { useNuxt } from './context' -import { isNuxt2 } from './compatibility' import { logger } from './logger' import { toArray } from './utils' export function extendPages (cb: NuxtHooks['pages:extend']) { - const nuxt = useNuxt() - if (isNuxt2(nuxt)) { - // @ts-expect-error TODO: Nuxt 2 hook - nuxt.hook('build:extendRoutes', cb) - } else { - nuxt.hook('pages:extend', cb) - } + useNuxt().hook('pages:extend', cb) } export interface ExtendRouteRulesOptions { diff --git a/packages/nuxt/src/core/app.ts b/packages/nuxt/src/core/app.ts index 4bc7da1e91..8e0e7bc2a0 100644 --- a/packages/nuxt/src/core/app.ts +++ b/packages/nuxt/src/core/app.ts @@ -1,7 +1,7 @@ import { promises as fsp, mkdirSync, writeFileSync } from 'node:fs' import { dirname, join, relative, resolve } from 'pathe' import { defu } from 'defu' -import { compileTemplate as _compileTemplate, findPath, logger, normalizePlugin, normalizeTemplate, resolveAlias, resolveFiles, resolvePath, templateUtils } from '@nuxt/kit' +import { findPath, logger, normalizePlugin, normalizeTemplate, resolveAlias, resolveFiles, resolvePath } from '@nuxt/kit' import type { Nuxt, NuxtApp, NuxtPlugin, NuxtTemplate, ResolvedNuxtTemplate } from 'nuxt/schema' import * as defaultTemplates from './templates' @@ -53,9 +53,7 @@ export async function generateApp (nuxt: Nuxt, app: NuxtApp, options: { filter?: } // Compile templates into vfs - // TODO: remove utils in v4 - const templateContext = { utils: templateUtils, nuxt, app } - const compileTemplate = nuxt.options.experimental.compileTemplate ? _compileTemplate : futureCompileTemplate + const templateContext = { nuxt, app } const writes: Array<() => void> = [] const changedTemplates: Array> = [] @@ -113,7 +111,7 @@ export async function generateApp (nuxt: Nuxt, app: NuxtApp, options: { filter?: } /** @internal */ -async function futureCompileTemplate (template: NuxtTemplate, ctx: { nuxt: Nuxt, app: NuxtApp, utils?: unknown }) { +async function compileTemplate (template: NuxtTemplate, ctx: { nuxt: Nuxt, app: NuxtApp, utils?: unknown }) { delete ctx.utils if (template.src) { diff --git a/packages/schema/src/config/experimental.ts b/packages/schema/src/config/experimental.ts index b80f0beca1..4ce4ed2c52 100644 --- a/packages/schema/src/config/experimental.ts +++ b/packages/schema/src/config/experimental.ts @@ -26,8 +26,6 @@ export default defineUntypedSchema({ * app: 'app' * }, * experimental: { - * compileTemplate: true, - * templateUtils: true, * relativeWatchPaths: true, * resetAsyncDataToUndefined: true, * defaults: { @@ -467,31 +465,6 @@ export default defineUntypedSchema({ */ clientNodeCompat: false, - /** - * Whether to use `lodash.template` to compile Nuxt templates. - * - * This flag will be removed with the release of v4 and exists only for - * advance testing within Nuxt v3.12+ or in [the nightly release channel](/docs/guide/going-further/nightly-release-channel). - */ - compileTemplate: { - async $resolve (val, get) { - return val ?? ((await get('future') as Record).compatibilityVersion !== 4) - }, - }, - - /** - * Whether to provide a legacy `templateUtils` object (with `serialize`, - * `importName` and `importSources`) when compiling Nuxt templates. - * - * This flag will be removed with the release of v4 and exists only for - * advance testing within Nuxt v3.12+ or in [the nightly release channel](/docs/guide/going-further/nightly-release-channel). - */ - templateUtils: { - async $resolve (val, get) { - return val ?? ((await get('future') as Record).compatibilityVersion !== 4) - }, - }, - /** * Whether to provide relative paths in the `builder:watch` hook. * diff --git a/packages/ui-templates/lib/dev.ts b/packages/ui-templates/lib/dev.ts index 75e431f66c..12e7a3fcfd 100644 --- a/packages/ui-templates/lib/dev.ts +++ b/packages/ui-templates/lib/dev.ts @@ -1,8 +1,8 @@ +import { runInNewContext } from 'node:vm' import { join, resolve } from 'node:path' import { fileURLToPath } from 'node:url' import { promises as fsp } from 'node:fs' import type { Plugin } from 'vite' -import { template } from 'lodash-es' import genericMessages from '../templates/messages.json' const templatesRoot = fileURLToPath(new URL('..', import.meta.url)) @@ -15,6 +15,8 @@ export const DevRenderingPlugin = () => { async transformIndexHtml (html: string, context) { const page = context.originalUrl || '/' + if (page.endsWith('.png')) { return } + if (page === '/') { const templateNames = await fsp.readdir(r('templates')) const serializedData = JSON.stringify({ templateNames }) @@ -25,11 +27,19 @@ export const DevRenderingPlugin = () => { const messages = JSON.parse(await fsp.readFile(r(page, 'messages.json'), 'utf-8')) - return template(contents, { - interpolate: /\{\{\{?([\s\S]+?)\}?\}\}/g, - })({ - messages: { ...genericMessages, ...messages }, - }) + const chunks = contents.split(/\{{2,3}[^{}]+\}{2,3}/g) + let templateString = chunks.shift() + for (const expression of contents.matchAll(/\{{2,3}([^{}]+)\}{2,3}/g)) { + const value = runInNewContext(expression[1].trim(), { + messages: { ...genericMessages, ...messages }, + }) + templateString += `${value}${chunks.shift()}` + } + if (chunks.length > 0) { + templateString += chunks.join('') + } + + return templateString }, } } diff --git a/packages/ui-templates/package.json b/packages/ui-templates/package.json index b47bc45d9b..2721e46670 100644 --- a/packages/ui-templates/package.json +++ b/packages/ui-templates/package.json @@ -20,7 +20,6 @@ }, "devDependencies": { "@types/html-minifier": "4.0.5", - "@types/lodash-es": "4.17.12", "@unocss/reset": "0.61.0", "critters": "0.0.22", "execa": "9.2.0", @@ -28,7 +27,6 @@ "html-minifier": "4.0.0", "jiti": "1.21.6", "knitwork": "1.1.0", - "lodash-es": "4.17.21", "pathe": "1.1.2", "prettier": "3.3.2", "scule": "1.3.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 23227d901b..91848bf01e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -191,9 +191,6 @@ importers: klona: specifier: ^2.0.6 version: 2.0.6 - knitwork: - specifier: ^1.1.0 - version: 1.1.0 mlly: specifier: ^1.7.1 version: 1.7.1 @@ -225,15 +222,9 @@ importers: '@types/hash-sum': specifier: 1.0.2 version: 1.0.2 - '@types/lodash-es': - specifier: 4.17.12 - version: 4.17.12 '@types/semver': specifier: 7.5.8 version: 7.5.8 - lodash-es: - specifier: 4.17.21 - version: 4.17.21 nitropack: specifier: 2.9.6 version: 2.9.6(encoding@0.1.13)(magicast@0.3.4) @@ -584,9 +575,6 @@ importers: '@types/html-minifier': specifier: 4.0.5 version: 4.0.5 - '@types/lodash-es': - specifier: 4.17.12 - version: 4.17.12 '@unocss/reset': specifier: 0.61.0 version: 0.61.0 @@ -608,9 +596,6 @@ importers: knitwork: specifier: 1.1.0 version: 1.1.0 - lodash-es: - specifier: 4.17.21 - version: 4.17.21 pathe: specifier: 1.1.2 version: 1.1.2 From 4d063f1f85cf53f4fa97978f3f8724aacb24174a Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Wed, 19 Jun 2024 13:57:08 +0100 Subject: [PATCH 002/119] fix(schema,vite)!: do not allow configuring vite dev bundler (#27707) --- docs/1.getting-started/12.upgrade.md | 9 +- packages/schema/src/types/config.ts | 6 - packages/vite/src/dev-bundler.ts | 265 --------------------------- packages/vite/src/server.ts | 7 +- packages/vite/src/vite.ts | 3 +- 5 files changed, 7 insertions(+), 283 deletions(-) delete mode 100644 packages/vite/src/dev-bundler.ts diff --git a/docs/1.getting-started/12.upgrade.md b/docs/1.getting-started/12.upgrade.md index 3017305c77..74c9fe7f19 100644 --- a/docs/1.getting-started/12.upgrade.md +++ b/docs/1.getting-started/12.upgrade.md @@ -448,10 +448,11 @@ const importName = genSafeVariableName Four experimental features are no longer configurable in Nuxt 4: -* `treeshakeClientOnly` will be `true` (default since v3.0) -* `configSchema` will be `true` (default since v3.3) -* `polyfillVueUseHead` will be `false` (default since v3.4) -* `respectNoSSRHeader` will be `false` (default since v3.4) +* `experimental.treeshakeClientOnly` will be `true` (default since v3.0) +* `experimental.configSchema` will be `true` (default since v3.3) +* `experimental.polyfillVueUseHead` will be `false` (default since v3.4) +* `experimental.respectNoSSRHeader` will be `false` (default since v3.4) +* `vite.devBundler` is no longer configurable - it will use `vite-node` by default ##### Reasons for Change diff --git a/packages/schema/src/types/config.ts b/packages/schema/src/types/config.ts index 44a1390734..63fe9376a3 100644 --- a/packages/schema/src/types/config.ts +++ b/packages/schema/src/types/config.ts @@ -101,12 +101,6 @@ export interface ViteConfig extends Omit { */ vueJsx?: VueJsxPluginOptions - /** - * Bundler for dev time server-side rendering. - * @default 'vite-node' - */ - devBundler?: 'vite-node' | 'legacy' - /** * Warmup vite entrypoint caches on dev startup. */ diff --git a/packages/vite/src/dev-bundler.ts b/packages/vite/src/dev-bundler.ts deleted file mode 100644 index e2d970b524..0000000000 --- a/packages/vite/src/dev-bundler.ts +++ /dev/null @@ -1,265 +0,0 @@ -import { pathToFileURL } from 'node:url' -import { existsSync } from 'node:fs' -import { builtinModules } from 'node:module' -import { isAbsolute, normalize, resolve } from 'pathe' -import type * as vite from 'vite' -import type { isExternal } from 'externality' -import { genDynamicImport, genObjectFromRawEntries } from 'knitwork' -import fse from 'fs-extra' -import { debounce } from 'perfect-debounce' -import { isIgnored, logger } from '@nuxt/kit' -import { hashId, isCSS, uniq } from './utils' -import { createIsExternal } from './utils/external' -import { writeManifest } from './manifest' -import type { ViteBuildContext } from './vite' - -interface TransformChunk { - id: string - code: string - deps: string[] - parents: string[] -} - -interface SSRTransformResult { - code: string - map: object - deps: string[] - dynamicDeps: string[] -} - -interface TransformOptions { - viteServer: vite.ViteDevServer - isExternal(id: string): ReturnType -} - -async function transformRequest (opts: TransformOptions, id: string) { - // Virtual modules start with `\0` - if (id && id.startsWith('/@id/__x00__')) { - id = '\0' + id.slice('/@id/__x00__'.length) - } - if (id && id.startsWith('/@id/')) { - id = id.slice('/@id/'.length) - } - if (id && !id.startsWith('/@fs/') && id.startsWith('/')) { - // Relative to the root directory - const resolvedPath = resolve(opts.viteServer.config.root, '.' + id) - if (existsSync(resolvedPath)) { - id = resolvedPath - } - } - - // On Windows, we prefix absolute paths with `/@fs/` to skip node resolution algorithm - id = id.replace(/^\/?(?=\w:)/, '/@fs/') - - // Remove query and @fs/ for external modules - const externalId = id.replace(/\?v=\w+$|^\/@fs/, '') - - if (await opts.isExternal(externalId)) { - const path = builtinModules.includes(externalId.split('node:').pop()!) - ? externalId - : isAbsolute(externalId) ? pathToFileURL(externalId).href : externalId - return { - code: `(global, module, _, exports, importMeta, ssrImport, ssrDynamicImport, ssrExportAll) => -${genDynamicImport(path, { wrapper: false })} - .then(r => { - if (r.default && r.default.__esModule) - r = r.default - exports.default = r.default - ssrExportAll(r) - }) - .catch(e => { - console.error(e) - throw new Error(${JSON.stringify(`[vite dev] Error loading external "${id}".`)}) - })`, - deps: [], - dynamicDeps: [], - } - } - - // Transform - const res: SSRTransformResult = await opts.viteServer.transformRequest(id, { ssr: true }).catch((err) => { - logger.warn(`[SSR] Error transforming ${id}:`, err) - // console.error(err) - }) as SSRTransformResult || { code: '', map: {}, deps: [], dynamicDeps: [] } - - // Wrap into a vite module - const code = `async function (global, module, exports, __vite_ssr_exports__, __vite_ssr_import_meta__, __vite_ssr_import__, __vite_ssr_dynamic_import__, __vite_ssr_exportAll__) { -${res.code || '/* empty */'}; -}` - return { code, deps: res.deps || [], dynamicDeps: res.dynamicDeps || [] } -} - -async function transformRequestRecursive (opts: TransformOptions, id: string, parent = '', chunks: Record = {}) { - if (chunks[id]) { - chunks[id].parents.push(parent) - return - } - const res = await transformRequest(opts, id) - const deps = uniq([...res.deps, ...res.dynamicDeps]) - - chunks[id] = { - id, - code: res.code, - deps, - parents: [parent], - } as TransformChunk - for (const dep of deps) { - await transformRequestRecursive(opts, dep, id, chunks) - } - return Object.values(chunks) -} - -async function bundleRequest (opts: TransformOptions, entryURL: string) { - const chunks = (await transformRequestRecursive(opts, entryURL))! - - const listIds = (ids: string[]) => ids.map(id => `// - ${id} (${hashId(id)})`).join('\n') - const chunksCode = chunks.map(chunk => ` -// -------------------- -// Request: ${chunk.id} -// Parents: \n${listIds(chunk.parents)} -// Dependencies: \n${listIds(chunk.deps)} -// -------------------- -const ${hashId(chunk.id + '-' + chunk.code)} = ${chunk.code} -`).join('\n') - - const manifestCode = `const __modules__ = ${ - genObjectFromRawEntries(chunks.map(chunk => [chunk.id, hashId(chunk.id + '-' + chunk.code)])) - }` - - // https://github.com/vitejs/vite/blob/main/packages/vite/src/node/ssr/ssrModuleLoader.ts - const ssrModuleLoader = ` -const __pendingModules__ = new Map() -const __pendingImports__ = new Map() -const __ssrContext__ = { global: globalThis } - -function __ssrLoadModule__(url, urlStack = []) { - const pendingModule = __pendingModules__.get(url) - if (pendingModule) { return pendingModule } - const modulePromise = __instantiateModule__(url, urlStack) - __pendingModules__.set(url, modulePromise) - modulePromise.catch(() => { __pendingModules__.delete(url) }) - .finally(() => { __pendingModules__.delete(url) }) - return modulePromise -} - -async function __instantiateModule__(url, urlStack) { - const mod = __modules__[url] - if (mod.stubModule) { return mod.stubModule } - const stubModule = { [Symbol.toStringTag]: 'Module' } - Object.defineProperty(stubModule, '__esModule', { value: true }) - mod.stubModule = stubModule - // https://vitejs.dev/guide/api-hmr.html - const importMeta = { url, hot: { accept() {}, prune() {}, dispose() {}, invalidate() {}, decline() {}, on() {} } } - urlStack = urlStack.concat(url) - const isCircular = url => urlStack.includes(url) - const pendingDeps = [] - const ssrImport = async (dep) => { - // TODO: Handle externals if dep[0] !== '.' | '/' - if (!isCircular(dep) && !__pendingImports__.get(dep)?.some(isCircular)) { - pendingDeps.push(dep) - if (pendingDeps.length === 1) { - __pendingImports__.set(url, pendingDeps) - } - await __ssrLoadModule__(dep, urlStack) - if (pendingDeps.length === 1) { - __pendingImports__.delete(url) - } else { - pendingDeps.splice(pendingDeps.indexOf(dep), 1) - } - } - return __modules__[dep].stubModule - } - function ssrDynamicImport (dep) { - // TODO: Handle dynamic import starting with . relative to url - return ssrImport(dep) - } - - function ssrExportAll(sourceModule) { - for (const key in sourceModule) { - if (key !== 'default') { - try { - Object.defineProperty(stubModule, key, { - enumerable: true, - configurable: true, - get() { return sourceModule[key] } - }) - } catch (_err) { } - } - } - } - - const cjsModule = { - get exports () { - return stubModule.default - }, - set exports (v) { - stubModule.default = v - }, - } - - await mod( - __ssrContext__.global, - cjsModule, - stubModule.default, - stubModule, - importMeta, - ssrImport, - ssrDynamicImport, - ssrExportAll - ) - - return stubModule -} -` - - const code = [ - chunksCode, - manifestCode, - ssrModuleLoader, - `export default await __ssrLoadModule__(${JSON.stringify(entryURL)})`, - ].join('\n\n') - - return { - code, - ids: chunks.map(i => i.id), - } -} - -export async function initViteDevBundler (ctx: ViteBuildContext, onBuild: () => Promise) { - const viteServer = ctx.ssrServer! - const options: TransformOptions = { - viteServer, - isExternal: createIsExternal(viteServer, ctx.nuxt.options.rootDir, ctx.nuxt.options.modulesDir), - } - - // Build and watch - const _doBuild = async () => { - const start = Date.now() - const { code, ids } = await bundleRequest(options, ctx.entry) - await fse.writeFile(resolve(ctx.nuxt.options.buildDir, 'dist/server/server.mjs'), code, 'utf-8') - // Have CSS in the manifest to prevent FOUC on dev SSR - const manifestIds: string[] = [] - for (const i of ids) { - if (isCSS(i)) { - manifestIds.push(i.slice(1)) - } - } - await writeManifest(ctx, manifestIds) - const time = (Date.now() - start) - logger.success(`Vite server built in ${time}ms`) - await onBuild() - } - const doBuild = debounce(_doBuild) - - // Initial build - await _doBuild() - - // Watch - viteServer.watcher.on('all', (_event, file) => { - file = normalize(file) // Fix windows paths - if (file.indexOf(ctx.nuxt.options.buildDir) === 0 || isIgnored(file)) { return } - doBuild() - }) - // ctx.nuxt.hook('builder:watch', () => doBuild()) - ctx.nuxt.hook('app:templatesGenerated', () => doBuild()) -} diff --git a/packages/vite/src/server.ts b/packages/vite/src/server.ts index af87239aa2..c449b46c80 100644 --- a/packages/vite/src/server.ts +++ b/packages/vite/src/server.ts @@ -163,10 +163,5 @@ export async function buildServer (ctx: ViteBuildContext) { // Initialize plugins await viteServer.pluginContainer.buildStart({}) - if (ctx.config.devBundler !== 'legacy') { - await initViteNodeServer(ctx) - } else { - logger.info('Vite server using legacy server bundler...') - await import('./dev-bundler').then(r => r.initViteDevBundler(ctx, onBuild)) - } + await initViteNodeServer(ctx) } diff --git a/packages/vite/src/vite.ts b/packages/vite/src/vite.ts index b19b29ba0f..d242df8b2f 100644 --- a/packages/vite/src/vite.ts +++ b/packages/vite/src/vite.ts @@ -29,8 +29,7 @@ export interface ViteBuildContext { } export const bundle: NuxtBuilder['bundle'] = async (nuxt) => { - const useAsyncEntry = nuxt.options.experimental.asyncEntry || - (nuxt.options.vite.devBundler === 'vite-node' && nuxt.options.dev) + const useAsyncEntry = nuxt.options.experimental.asyncEntry || nuxt.options.dev const entry = await resolvePath(resolve(nuxt.options.appDir, useAsyncEntry ? 'entry.async' : 'entry')) let allowDirs = [ From 73fd46a4d340b475c96aa46adfbbc2e2df851097 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Wed, 19 Jun 2024 14:16:42 +0100 Subject: [PATCH 003/119] chore: allow changelogs with breaking changes --- scripts/update-changelog.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/update-changelog.ts b/scripts/update-changelog.ts index 9dab8a8b94..7da75bb731 100644 --- a/scripts/update-changelog.ts +++ b/scripts/update-changelog.ts @@ -11,7 +11,7 @@ async function main () { const config = await loadChangelogConfig(process.cwd(), {}) const commits = await getLatestCommits().then(commits => commits.filter( - c => config.types[c.type] && !(c.type === 'chore' && c.scope === 'deps' && !c.isBreaking), + c => config.types[c.type] && !(c.type === 'chore' && c.scope === 'deps'), )) const bumpType = await determineBumpType() || 'patch' From 6ed579c7810bacb1ecdec495b0f6a6d55a5989a3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 19 Jun 2024 14:43:41 +0100 Subject: [PATCH 004/119] chore(deps): update dependency cssnano to ^7.0.3 (main) (#27705) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- packages/vite/package.json | 2 +- packages/webpack/package.json | 2 +- pnpm-lock.yaml | 185 +++++++++++++++++++++------------- 3 files changed, 118 insertions(+), 71 deletions(-) diff --git a/packages/vite/package.json b/packages/vite/package.json index 8f29743898..cbfeab4891 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -40,7 +40,7 @@ "autoprefixer": "^10.4.19", "clear": "^0.1.0", "consola": "^3.2.3", - "cssnano": "^7.0.2", + "cssnano": "^7.0.3", "defu": "^6.1.4", "esbuild": "^0.21.5", "escape-string-regexp": "^5.0.0", diff --git a/packages/webpack/package.json b/packages/webpack/package.json index fb3159a845..9decffb708 100644 --- a/packages/webpack/package.json +++ b/packages/webpack/package.json @@ -30,7 +30,7 @@ "autoprefixer": "^10.4.19", "css-loader": "^7.1.2", "css-minimizer-webpack-plugin": "^7.0.0", - "cssnano": "^7.0.2", + "cssnano": "^7.0.3", "defu": "^6.1.4", "esbuild-loader": "^4.2.0", "escape-string-regexp": "^5.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 91848bf01e..495f3195b1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -636,8 +636,8 @@ importers: specifier: ^3.2.3 version: 3.2.3 cssnano: - specifier: ^7.0.2 - version: 7.0.2(postcss@8.4.38) + specifier: ^7.0.3 + version: 7.0.3(postcss@8.4.38) defu: specifier: ^6.1.4 version: 6.1.4 @@ -757,8 +757,8 @@ importers: specifier: ^7.0.0 version: 7.0.0(webpack@5.92.0) cssnano: - specifier: ^7.0.2 - version: 7.0.2(postcss@8.4.38) + specifier: ^7.0.3 + version: 7.0.3(postcss@8.4.38) defu: specifier: ^6.1.4 version: 6.1.4 @@ -3396,6 +3396,11 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true + browserslist@4.23.1: + resolution: {integrity: sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + buffer-crc32@1.0.0: resolution: {integrity: sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==} engines: {node: '>=8.0.0'} @@ -3458,6 +3463,9 @@ packages: caniuse-lite@1.0.30001599: resolution: {integrity: sha512-LRAQHZ4yT1+f9LemSMeqdMpMxZcc4RMWdj4tiFe3G8tNkWK+E58g+/tzotb5cU6TbcVJLr4fySiAW7XmxQvZQA==} + caniuse-lite@1.0.30001636: + resolution: {integrity: sha512-bMg2vmr8XBsbL6Lr0UHXy/21m84FTxDLWn2FSqMd5PrlbMxwJlQnC2YWYxVgp66PZE+BBNF2jYQUBKCo1FDeZg==} + case-police@0.6.1: resolution: {integrity: sha512-tOgkG3HhtzNVHU+HVHqbpVJ3CICPDihtlgoM2C4dx0RLeo6qcNVeBgiYJN5Bln+stxKrnKrw89CFgqYQDqwZQg==} hasBin: true @@ -3769,8 +3777,8 @@ packages: engines: {node: '>=4'} hasBin: true - cssnano-preset-default@7.0.2: - resolution: {integrity: sha512-z95kGKZx8VWHfERj7LFzuiTxylbvEp07ZEYaFu+t6bFyNOXLd/+3oPyNaY7ISwcrfHFCkt8OfRo4IZxVRJZ7dg==} + cssnano-preset-default@7.0.3: + resolution: {integrity: sha512-dQ3Ba1p/oewICp/szF1XjFFgql8OlOBrI2YNBUUwhHQnJNoMOcQTa+Bi7jSJN8r/eM1egW0Ud1se/S7qlduWKA==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: postcss: ^8.4.31 @@ -3781,8 +3789,8 @@ packages: peerDependencies: postcss: ^8.4.31 - cssnano@7.0.2: - resolution: {integrity: sha512-LXm/Xx6TNLzfHM2lBaIQHfvtdW5QfdbyLzfJAWZrclCAb47yVa0/yJG69+amcw3Lq0YZ+kyU40rbsMPLcMt9aw==} + cssnano@7.0.3: + resolution: {integrity: sha512-lsekJctOTqdCn4cNrtrSwsuMR/fHC+oiVMHkp/OugBWtwjH8XJag1/OtGaYJGtz0un1fQcRy4ryfYTQsfh+KSQ==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: postcss: ^8.4.31 @@ -3999,6 +4007,9 @@ packages: electron-to-chromium@1.4.681: resolution: {integrity: sha512-1PpuqJUFWoXZ1E54m8bsLPVYwIVCRzvaL+n5cjigGga4z854abDnFRc+cTa2th4S79kyGqya/1xoR7h+Y5G5lg==} + electron-to-chromium@1.4.806: + resolution: {integrity: sha512-nkoEX2QIB8kwCOtvtgwhXWy2IHVcOLQZu9Qo36uaGB835mdX/h8uLRlosL6QIhLVUnAiicXRW00PwaPZC74Nrg==} + emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -4097,6 +4108,10 @@ packages: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} engines: {node: '>=6'} + escalade@3.1.2: + resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} + engines: {node: '>=6'} + escape-html@1.0.3: resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} @@ -5109,8 +5124,8 @@ packages: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} - lilconfig@3.1.1: - resolution: {integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==} + lilconfig@3.1.2: + resolution: {integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==} engines: {node: '>=14'} lines-and-columns@1.2.4: @@ -5909,6 +5924,9 @@ packages: picocolors@1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + picocolors@1.0.1: + resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} + picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} @@ -5943,20 +5961,20 @@ packages: peerDependencies: postcss: ^8.4.38 - postcss-colormin@7.0.0: - resolution: {integrity: sha512-5CN6fqtsEtEtwf3mFV3B4UaZnlYljPpzmGeDB4yCK067PnAtfLe9uX2aFZaEwxHE7HopG5rUkW8gyHrNAesHEg==} + postcss-colormin@7.0.1: + resolution: {integrity: sha512-uszdT0dULt3FQs47G5UHCduYK+FnkLYlpu1HpWu061eGsKZ7setoG7kA+WC9NQLsOJf69D5TxGHgnAdRgylnFQ==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: postcss: ^8.4.31 - postcss-convert-values@7.0.0: - resolution: {integrity: sha512-bMuzDgXBbFbByPgj+/r6va8zNuIDUaIIbvAFgdO1t3zdgJZ77BZvu6dfWyd6gHEJnYzmeVr9ayUsAQL3/qLJ0w==} + postcss-convert-values@7.0.1: + resolution: {integrity: sha512-9x2ofb+hYPwHWMlWAzyWys2yMDZYGfkX9LodbaVTmLdlupmtH2AGvj8Up95wzzNPRDEzPIxQIkUaPJew3bT6xA==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: postcss: ^8.4.31 - postcss-discard-comments@7.0.0: - resolution: {integrity: sha512-xpSdzRqYmy4YIVmjfGyYXKaI1SRnK6CTr+4Zmvyof8ANwvgfZgGdVtmgAvzh59gJm808mJCWQC9tFN0KF5dEXA==} + postcss-discard-comments@7.0.1: + resolution: {integrity: sha512-GVrQxUOhmle1W6jX2SvNLt4kmN+JYhV7mzI6BMnkAWR9DtVvg8e67rrV0NfdWhn7x1zxvzdWkMBPdBDCls+uwQ==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: postcss: ^8.4.31 @@ -6004,14 +6022,14 @@ packages: postcss-media-query-parser@0.2.3: resolution: {integrity: sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==} - postcss-merge-longhand@7.0.1: - resolution: {integrity: sha512-qZlD26hnqSTMxSSOMS8+QCeRWtqOdMKeQHvHcBhjL3mJxKUs47cvO1Y1x3iTdYIk3ioMcRHTiy229TT0mEMH/A==} + postcss-merge-longhand@7.0.2: + resolution: {integrity: sha512-06vrW6ZWi9qeP7KMS9fsa9QW56+tIMW55KYqF7X3Ccn+NI2pIgPV6gFfvXTMQ05H90Y5DvnCDPZ2IuHa30PMUg==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: postcss: ^8.4.31 - postcss-merge-rules@7.0.1: - resolution: {integrity: sha512-bb8McYQbo2etgs0uVt6AfngajACK3FHSVP3sGLhprrjbtHJWgG03JZ4KKBlJ8/5Fb8/Rr+mMKaybMYeoYrAg0A==} + postcss-merge-rules@7.0.2: + resolution: {integrity: sha512-VAR47UNvRsdrTHLe7TV1CeEtF9SJYR5ukIB9U4GZyZOptgtsS20xSxy+k5wMrI3udST6O1XuIn7cjQkg7sDAAw==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: postcss: ^8.4.31 @@ -6028,14 +6046,14 @@ packages: peerDependencies: postcss: ^8.4.31 - postcss-minify-params@7.0.0: - resolution: {integrity: sha512-XOJAuX8Q/9GT1sGxlUvaFEe2H9n50bniLZblXXsAT/BwSfFYvzSZeFG7uupwc0KbKpTnflnQ7aMwGzX6JUWliQ==} + postcss-minify-params@7.0.1: + resolution: {integrity: sha512-e+Xt8xErSRPgSRFxHeBCSxMiO8B8xng7lh8E0A5ep1VfwYhY8FXhu4Q3APMjgx9YDDbSp53IBGENrzygbUvgUQ==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: postcss: ^8.4.31 - postcss-minify-selectors@7.0.1: - resolution: {integrity: sha512-YfIbGtcgMFquPxV2L/ASs36ZS4DsgfcDX9tQ8cTEIvBTv+0GXFKtcvvpi9tCKto/+DWGWYKMCESFG3Pnan0Feg==} + postcss-minify-selectors@7.0.2: + resolution: {integrity: sha512-dCzm04wqW1uqLmDZ41XYNBJfjgps3ZugDpogAmJXoCb5oCiTzIX4oPXXKxDpTvWOnKxQKR4EbV4ZawJBLcdXXA==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: postcss: ^8.4.31 @@ -6100,8 +6118,8 @@ packages: peerDependencies: postcss: ^8.4.31 - postcss-normalize-unicode@7.0.0: - resolution: {integrity: sha512-OnKV52/VFFDAim4n0pdI+JAhsolLBdnCKxE6VV5lW5Q/JeVGFN8UM8ur6/A3EAMLsT1ZRm3fDHh/rBoBQpqi2w==} + postcss-normalize-unicode@7.0.1: + resolution: {integrity: sha512-PTPGdY9xAkTw+8ZZ71DUePb7M/Vtgkbbq+EoI33EuyQEzbKemEQMhe5QSr0VP5UfZlreANDPxSfcdSprENcbsg==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: postcss: ^8.4.31 @@ -6118,14 +6136,14 @@ packages: peerDependencies: postcss: ^8.4.31 - postcss-ordered-values@7.0.0: - resolution: {integrity: sha512-KROvC63A8UQW1eYDljQe1dtwc1E/M+mMwDT6z7khV/weHYLWTghaLRLunU7x1xw85lWFwVZOAGakxekYvKV+0w==} + postcss-ordered-values@7.0.1: + resolution: {integrity: sha512-irWScWRL6nRzYmBOXReIKch75RRhNS86UPUAxXdmW/l0FcAsg0lvAXQCby/1lymxn/o0gVa6Rv/0f03eJOwHxw==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: postcss: ^8.4.31 - postcss-reduce-initial@7.0.0: - resolution: {integrity: sha512-iqGgmBxY9LrblZ0BKLjmrA1mC/cf9A/wYCCqSmD6tMi+xAyVl0+DfixZIHSVDMbCPRPjNmVF0DFGth/IDGelFQ==} + postcss-reduce-initial@7.0.1: + resolution: {integrity: sha512-0JDUSV4bGB5FGM5g8MkS+rvqKukJZ7OTHw/lcKn7xPNqeaqJyQbUO8/dJpvyTpaVwPsd3Uc33+CfNzdVowp2WA==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: postcss: ^8.4.31 @@ -6776,8 +6794,8 @@ packages: strip-literal@2.1.0: resolution: {integrity: sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==} - stylehacks@7.0.1: - resolution: {integrity: sha512-PnrT4HzajnxbjfChpeBKLSpSykilnGBlD+pIffCoT5KbLur9fcL8uKRQJJap85byR2wCYZl/4Otk5eq76qeZxQ==} + stylehacks@7.0.2: + resolution: {integrity: sha512-HdkWZS9b4gbgYTdMg4gJLmm7biAUug1qTqXjS+u8X+/pUd+9Px1E+520GnOW3rST9MNsVOVpsJG+mPHNosxjOQ==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: postcss: ^8.4.31 @@ -7175,6 +7193,12 @@ packages: peerDependencies: browserslist: '>= 4.21.0' + update-browserslist-db@1.0.16: + resolution: {integrity: sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + upper-case@1.1.3: resolution: {integrity: sha512-WRbjgmYzgXkCV7zNVpy5YgrHgbBv126rMALQQMrmzOVC4GM2waQ9x7xtm8VU+1yF2kWyPzI9zbZ48n4vSxwfSA==} @@ -10527,6 +10551,13 @@ snapshots: node-releases: 2.0.14 update-browserslist-db: 1.0.13(browserslist@4.23.0) + browserslist@4.23.1: + dependencies: + caniuse-lite: 1.0.30001636 + electron-to-chromium: 1.4.806 + node-releases: 2.0.14 + update-browserslist-db: 1.0.16(browserslist@4.23.1) + buffer-crc32@1.0.0: {} buffer-from@1.1.2: {} @@ -10603,13 +10634,15 @@ snapshots: caniuse-api@3.0.0: dependencies: - browserslist: 4.23.0 + browserslist: 4.23.1 caniuse-lite: 1.0.30001599 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 caniuse-lite@1.0.30001599: {} + caniuse-lite@1.0.30001636: {} + case-police@0.6.1: {} ccount@2.0.1: {} @@ -10870,7 +10903,7 @@ snapshots: css-minimizer-webpack-plugin@7.0.0(webpack@5.92.0): dependencies: '@jridgewell/trace-mapping': 0.3.25 - cssnano: 7.0.2(postcss@8.4.38) + cssnano: 7.0.3(postcss@8.4.38) jest-worker: 29.7.0 postcss: 8.4.38 schema-utils: 4.2.0 @@ -10899,36 +10932,36 @@ snapshots: cssesc@3.0.0: {} - cssnano-preset-default@7.0.2(postcss@8.4.38): + cssnano-preset-default@7.0.3(postcss@8.4.38): dependencies: - browserslist: 4.23.0 + browserslist: 4.23.1 css-declaration-sorter: 7.2.0(postcss@8.4.38) cssnano-utils: 5.0.0(postcss@8.4.38) postcss: 8.4.38 postcss-calc: 10.0.0(postcss@8.4.38) - postcss-colormin: 7.0.0(postcss@8.4.38) - postcss-convert-values: 7.0.0(postcss@8.4.38) - postcss-discard-comments: 7.0.0(postcss@8.4.38) + postcss-colormin: 7.0.1(postcss@8.4.38) + postcss-convert-values: 7.0.1(postcss@8.4.38) + postcss-discard-comments: 7.0.1(postcss@8.4.38) postcss-discard-duplicates: 7.0.0(postcss@8.4.38) postcss-discard-empty: 7.0.0(postcss@8.4.38) postcss-discard-overridden: 7.0.0(postcss@8.4.38) - postcss-merge-longhand: 7.0.1(postcss@8.4.38) - postcss-merge-rules: 7.0.1(postcss@8.4.38) + postcss-merge-longhand: 7.0.2(postcss@8.4.38) + postcss-merge-rules: 7.0.2(postcss@8.4.38) postcss-minify-font-values: 7.0.0(postcss@8.4.38) postcss-minify-gradients: 7.0.0(postcss@8.4.38) - postcss-minify-params: 7.0.0(postcss@8.4.38) - postcss-minify-selectors: 7.0.1(postcss@8.4.38) + postcss-minify-params: 7.0.1(postcss@8.4.38) + postcss-minify-selectors: 7.0.2(postcss@8.4.38) postcss-normalize-charset: 7.0.0(postcss@8.4.38) postcss-normalize-display-values: 7.0.0(postcss@8.4.38) postcss-normalize-positions: 7.0.0(postcss@8.4.38) postcss-normalize-repeat-style: 7.0.0(postcss@8.4.38) postcss-normalize-string: 7.0.0(postcss@8.4.38) postcss-normalize-timing-functions: 7.0.0(postcss@8.4.38) - postcss-normalize-unicode: 7.0.0(postcss@8.4.38) + postcss-normalize-unicode: 7.0.1(postcss@8.4.38) postcss-normalize-url: 7.0.0(postcss@8.4.38) postcss-normalize-whitespace: 7.0.0(postcss@8.4.38) - postcss-ordered-values: 7.0.0(postcss@8.4.38) - postcss-reduce-initial: 7.0.0(postcss@8.4.38) + postcss-ordered-values: 7.0.1(postcss@8.4.38) + postcss-reduce-initial: 7.0.1(postcss@8.4.38) postcss-reduce-transforms: 7.0.0(postcss@8.4.38) postcss-svgo: 7.0.1(postcss@8.4.38) postcss-unique-selectors: 7.0.1(postcss@8.4.38) @@ -10937,10 +10970,10 @@ snapshots: dependencies: postcss: 8.4.38 - cssnano@7.0.2(postcss@8.4.38): + cssnano@7.0.3(postcss@8.4.38): dependencies: - cssnano-preset-default: 7.0.2(postcss@8.4.38) - lilconfig: 3.1.1 + cssnano-preset-default: 7.0.3(postcss@8.4.38) + lilconfig: 3.1.2 postcss: 8.4.38 csso@5.0.5: @@ -11120,6 +11153,8 @@ snapshots: electron-to-chromium@1.4.681: {} + electron-to-chromium@1.4.806: {} + emoji-regex@8.0.0: {} emoji-regex@9.2.2: {} @@ -11301,6 +11336,8 @@ snapshots: escalade@3.1.1: {} + escalade@3.1.2: {} + escape-html@1.0.3: {} escape-string-regexp@1.0.5: {} @@ -12449,7 +12486,7 @@ snapshots: prelude-ls: 1.2.1 type-check: 0.4.0 - lilconfig@3.1.1: {} + lilconfig@3.1.2: {} lines-and-columns@1.2.4: {} @@ -13578,6 +13615,8 @@ snapshots: picocolors@1.0.0: {} + picocolors@1.0.1: {} + picomatch@2.3.1: {} picomatch@4.0.2: {} @@ -13602,23 +13641,24 @@ snapshots: postcss-selector-parser: 6.1.0 postcss-value-parser: 4.2.0 - postcss-colormin@7.0.0(postcss@8.4.38): + postcss-colormin@7.0.1(postcss@8.4.38): dependencies: - browserslist: 4.23.0 + browserslist: 4.23.1 caniuse-api: 3.0.0 colord: 2.9.3 postcss: 8.4.38 postcss-value-parser: 4.2.0 - postcss-convert-values@7.0.0(postcss@8.4.38): + postcss-convert-values@7.0.1(postcss@8.4.38): dependencies: - browserslist: 4.23.0 + browserslist: 4.23.1 postcss: 8.4.38 postcss-value-parser: 4.2.0 - postcss-discard-comments@7.0.0(postcss@8.4.38): + postcss-discard-comments@7.0.1(postcss@8.4.38): dependencies: postcss: 8.4.38 + postcss-selector-parser: 6.1.0 postcss-discard-duplicates@7.0.0(postcss@8.4.38): dependencies: @@ -13656,15 +13696,15 @@ snapshots: postcss-media-query-parser@0.2.3: {} - postcss-merge-longhand@7.0.1(postcss@8.4.38): + postcss-merge-longhand@7.0.2(postcss@8.4.38): dependencies: postcss: 8.4.38 postcss-value-parser: 4.2.0 - stylehacks: 7.0.1(postcss@8.4.38) + stylehacks: 7.0.2(postcss@8.4.38) - postcss-merge-rules@7.0.1(postcss@8.4.38): + postcss-merge-rules@7.0.2(postcss@8.4.38): dependencies: - browserslist: 4.23.0 + browserslist: 4.23.1 caniuse-api: 3.0.0 cssnano-utils: 5.0.0(postcss@8.4.38) postcss: 8.4.38 @@ -13682,15 +13722,16 @@ snapshots: postcss: 8.4.38 postcss-value-parser: 4.2.0 - postcss-minify-params@7.0.0(postcss@8.4.38): + postcss-minify-params@7.0.1(postcss@8.4.38): dependencies: - browserslist: 4.23.0 + browserslist: 4.23.1 cssnano-utils: 5.0.0(postcss@8.4.38) postcss: 8.4.38 postcss-value-parser: 4.2.0 - postcss-minify-selectors@7.0.1(postcss@8.4.38): + postcss-minify-selectors@7.0.2(postcss@8.4.38): dependencies: + cssesc: 3.0.0 postcss: 8.4.38 postcss-selector-parser: 6.1.0 @@ -13744,9 +13785,9 @@ snapshots: postcss: 8.4.38 postcss-value-parser: 4.2.0 - postcss-normalize-unicode@7.0.0(postcss@8.4.38): + postcss-normalize-unicode@7.0.1(postcss@8.4.38): dependencies: - browserslist: 4.23.0 + browserslist: 4.23.1 postcss: 8.4.38 postcss-value-parser: 4.2.0 @@ -13760,15 +13801,15 @@ snapshots: postcss: 8.4.38 postcss-value-parser: 4.2.0 - postcss-ordered-values@7.0.0(postcss@8.4.38): + postcss-ordered-values@7.0.1(postcss@8.4.38): dependencies: cssnano-utils: 5.0.0(postcss@8.4.38) postcss: 8.4.38 postcss-value-parser: 4.2.0 - postcss-reduce-initial@7.0.0(postcss@8.4.38): + postcss-reduce-initial@7.0.1(postcss@8.4.38): dependencies: - browserslist: 4.23.0 + browserslist: 4.23.1 caniuse-api: 3.0.0 postcss: 8.4.38 @@ -14529,9 +14570,9 @@ snapshots: dependencies: js-tokens: 9.0.0 - stylehacks@7.0.1(postcss@8.4.38): + stylehacks@7.0.2(postcss@8.4.38): dependencies: - browserslist: 4.23.0 + browserslist: 4.23.1 postcss: 8.4.38 postcss-selector-parser: 6.1.0 @@ -15030,6 +15071,12 @@ snapshots: escalade: 3.1.1 picocolors: 1.0.0 + update-browserslist-db@1.0.16(browserslist@4.23.1): + dependencies: + browserslist: 4.23.1 + escalade: 3.1.2 + picocolors: 1.0.1 + upper-case@1.1.3: {} uqr@0.1.2: {} From 6dcbf7e3f7e675b0086a673850af48b2feec2be4 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Wed, 19 Jun 2024 15:46:15 +0100 Subject: [PATCH 005/119] chore: allow major bumps --- scripts/_utils.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/scripts/_utils.ts b/scripts/_utils.ts index 208e586b28..9e7737f506 100644 --- a/scripts/_utils.ts +++ b/scripts/_utils.ts @@ -103,9 +103,7 @@ export async function determineBumpType () { const config = await loadChangelogConfig(process.cwd()) const commits = await getLatestCommits() - const bumpType = determineSemverChange(commits, config) - - return bumpType === 'major' ? 'minor' : bumpType + return determineSemverChange(commits, config) } export async function getLatestCommits () { From a0d51450951028d4fe0e10bbc578aadbbbadc89c Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Wed, 19 Jun 2024 14:32:55 +0100 Subject: [PATCH 006/119] fix(schema): handle backwards compat for `dir.app` --- packages/schema/src/config/common.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/schema/src/config/common.ts b/packages/schema/src/config/common.ts index 152a76a3ca..aebb01b081 100644 --- a/packages/schema/src/config/common.ts +++ b/packages/schema/src/config/common.ts @@ -301,7 +301,8 @@ export default defineUntypedSchema({ $resolve: async (val: string | undefined, get) => { const isV4 = (await get('future') as Record).compatibilityVersion === 4 if (isV4) { - return resolve(await get('srcDir') as string, val || '.') + const [srcDir, rootDir] = await Promise.all([get('srcDir') as Promise, get('rootDir') as Promise]) + return resolve(await get('srcDir') as string, val || (srcDir === rootDir ? 'app' : '.')) } return val || 'app' }, From bf3a374f856703a2f6c199e26ce3d6e8e4945c50 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Wed, 19 Jun 2024 16:02:35 +0100 Subject: [PATCH 007/119] fix(schema)!: default to `compatibilityVersion: 4` (#27710) --- .github/workflows/ci.yml | 2 - docs/1.getting-started/12.upgrade.md | 1 + docs/1.getting-started/5.transitions.md | 2 +- packages/nuxt/test/app.test.ts | 2 +- packages/schema/src/config/experimental.ts | 39 ++----------------- packages/schema/test/folder-structure.spec.ts | 16 ++++---- test/basic.test.ts | 12 ++---- test/fixtures/basic-types/nuxt.config.ts | 1 - test/fixtures/basic/nuxt.config.ts | 2 +- test/fixtures/minimal-types/nuxt.config.ts | 1 - test/fixtures/minimal/nuxt.config.ts | 1 - test/fixtures/runtime-compiler/nuxt.config.ts | 1 - test/fixtures/suspense/nuxt.config.ts | 1 - 13 files changed, 19 insertions(+), 62 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1c4c56cfc2..e7f21fa891 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -198,7 +198,6 @@ jobs: builder: ["vite", "webpack"] context: ["async", "default"] manifest: ["manifest-on", "manifest-off"] - version: ["v4", "v3"] payload: ["json", "js"] node: [18] exclude: @@ -244,7 +243,6 @@ jobs: TEST_BUILDER: ${{ matrix.builder }} TEST_MANIFEST: ${{ matrix.manifest }} TEST_CONTEXT: ${{ matrix.context }} - TEST_V4: ${{ matrix.version == 'v4' }} TEST_PAYLOAD: ${{ matrix.payload }} SKIP_BUNDLE_SIZE: ${{ github.event_name != 'push' || matrix.env == 'dev' || matrix.builder == 'webpack' || matrix.context == 'default' || matrix.payload == 'js' || runner.os == 'Windows' }} diff --git a/docs/1.getting-started/12.upgrade.md b/docs/1.getting-started/12.upgrade.md index 74c9fe7f19..e7afaf1787 100644 --- a/docs/1.getting-started/12.upgrade.md +++ b/docs/1.getting-started/12.upgrade.md @@ -235,6 +235,7 @@ Previously it was possible to pass `dedupe: boolean` to `refresh`. These were al const { refresh } = await useAsyncData(async () => ({ message: 'Hello, Nuxt 3!' })) async function refreshData () { + // @ts-expect-error this is no longer valid syntax await refresh({ dedupe: true }) } ``` diff --git a/docs/1.getting-started/5.transitions.md b/docs/1.getting-started/5.transitions.md index 3a69917e27..ba60908ab4 100644 --- a/docs/1.getting-started/5.transitions.md +++ b/docs/1.getting-started/5.transitions.md @@ -328,7 +328,7 @@ definePageMeta({ }, middleware (to, from) { if (to.meta.pageTransition && typeof to.meta.pageTransition !== 'boolean') - to.meta.pageTransition.name = +to.params.id > +from.params.id ? 'slide-left' : 'slide-right' + to.meta.pageTransition.name = +to.params.id! > +from.params.id! ? 'slide-left' : 'slide-right' } }) diff --git a/packages/nuxt/test/app.test.ts b/packages/nuxt/test/app.test.ts index 3673d711f2..2e66d85bdf 100644 --- a/packages/nuxt/test/app.test.ts +++ b/packages/nuxt/test/app.test.ts @@ -19,7 +19,7 @@ describe('resolveApp', () => { { "components": [], "configs": [], - "dir": "", + "dir": "/app", "errorComponent": "/packages/nuxt/src/app/components/nuxt-error-page.vue", "extensions": [ ".js", diff --git a/packages/schema/src/config/experimental.ts b/packages/schema/src/config/experimental.ts index 4ce4ed2c52..3381362451 100644 --- a/packages/schema/src/config/experimental.ts +++ b/packages/schema/src/config/experimental.ts @@ -7,43 +7,12 @@ export default defineUntypedSchema({ */ future: { /** - * Enable early access to Nuxt v4 features or flags. + * Enable early access to future features or flags. * - * Setting `compatibilityVersion` to `4` changes defaults throughout your - * Nuxt configuration, but you can granularly re-enable Nuxt v3 behaviour - * when testing (see example). Please file issues if so, so that we can - * address in Nuxt or in the ecosystem. - * - * @example - * ```ts - * export default defineNuxtConfig({ - * future: { - * compatibilityVersion: 4, - * }, - * // To re-enable _all_ Nuxt v3 behaviour, set the following options: - * srcDir: '.', - * dir: { - * app: 'app' - * }, - * experimental: { - * relativeWatchPaths: true, - * resetAsyncDataToUndefined: true, - * defaults: { - * useAsyncData: { - * deep: true - * } - * } - * }, - * unhead: { - * renderSSRHeadOptions: { - * omitLineBreaks: false - * } - * } - * }) - * ``` - * @type {3 | 4} + * It is currently not configurable but may be in future. + * @type {4} */ - compatibilityVersion: 3, + compatibilityVersion: 4, /** * This enables early access to the experimental multi-app support. * @see [Nuxt Issue #21635](https://github.com/nuxt/nuxt/issues/21635) diff --git a/packages/schema/test/folder-structure.spec.ts b/packages/schema/test/folder-structure.spec.ts index 1f59c8f908..d9cb857f2c 100644 --- a/packages/schema/test/folder-structure.spec.ts +++ b/packages/schema/test/folder-structure.spec.ts @@ -11,13 +11,13 @@ describe('nuxt folder structure', () => { expect(getDirs(result as unknown as NuxtOptions)).toMatchInlineSnapshot(` { "dir": { - "app": "app", - "modules": "modules", - "public": "public", + "app": "/app", + "modules": "/modules", + "public": "/public", }, "rootDir": "", "serverDir": "/server", - "srcDir": "", + "srcDir": "/app", "workspaceDir": "", } `) @@ -28,12 +28,12 @@ describe('nuxt folder structure', () => { expect(getDirs(result as unknown as NuxtOptions)).toMatchInlineSnapshot(` { "dir": { - "app": "app", - "modules": "modules", - "public": "public", + "app": "/test/src", + "modules": "/test/modules", + "public": "/test/public", }, "rootDir": "/test", - "serverDir": "/test/src/server", + "serverDir": "/test/server", "srcDir": "/test/src", "workspaceDir": "/test", } diff --git a/test/basic.test.ts b/test/basic.test.ts index ca9cb65268..4806f016df 100644 --- a/test/basic.test.ts +++ b/test/basic.test.ts @@ -13,7 +13,6 @@ import type { NuxtIslandResponse } from '#app' const isWebpack = process.env.TEST_BUILDER === 'webpack' const isTestingAppManifest = process.env.TEST_MANIFEST !== 'manifest-off' -const isV4 = process.env.TEST_V4 === 'true' await setup({ rootDir: fileURLToPath(new URL('./fixtures/basic', import.meta.url)), @@ -918,19 +917,14 @@ describe('head tags', () => { expect(headHtml).toContain('') }) - it.skipIf(isV4)('SPA should render appHead tags', async () => { - const headHtml = await $fetch('/head', { headers: { 'x-nuxt-no-ssr': '1' } }) + it('SPA should render appHead tags', async () => { + const headHtml = await $fetch('/head-spa') expect(headHtml).toContain('') expect(headHtml).toContain('') expect(headHtml).toContain('') }) - it.skipIf(isV4)('legacy vueuse/head works', async () => { - const headHtml = await $fetch('/vueuse-head') - expect(headHtml).toContain('using provides usehead and updateDOM - VueUse head polyfill test') - }) - it('should render http-equiv correctly', async () => { const html = await $fetch('/head') // http-equiv should be rendered kebab case @@ -2463,7 +2457,7 @@ describe.skipIf(isWindows)('useAsyncData', () => { }) it('data is null after navigation when immediate false', async () => { - const defaultValue = isV4 ? 'undefined' : 'null' + const defaultValue = 'undefined' const { page } = await renderPage('/useAsyncData/immediate-remove-unmounted') expect(await page.locator('#immediate-data').getByText(defaultValue).textContent()).toBe(defaultValue) diff --git a/test/fixtures/basic-types/nuxt.config.ts b/test/fixtures/basic-types/nuxt.config.ts index 93a409cc04..2971df07b3 100644 --- a/test/fixtures/basic-types/nuxt.config.ts +++ b/test/fixtures/basic-types/nuxt.config.ts @@ -7,7 +7,6 @@ export default defineNuxtConfig({ }, future: { typescriptBundlerResolution: process.env.MODULE_RESOLUTION === 'bundler', - compatibilityVersion: process.env.TEST_V4 === 'true' ? 4 : 3, }, buildDir: process.env.NITRO_BUILD_DIR, builder: process.env.TEST_BUILDER as 'webpack' | 'vite' ?? 'vite', diff --git a/test/fixtures/basic/nuxt.config.ts b/test/fixtures/basic/nuxt.config.ts index 320f957777..2a70c2ddb2 100644 --- a/test/fixtures/basic/nuxt.config.ts +++ b/test/fixtures/basic/nuxt.config.ts @@ -12,7 +12,6 @@ declare module 'nitropack' { } export default defineNuxtConfig({ - future: { compatibilityVersion: process.env.TEST_V4 === 'true' ? 4 : 3 }, app: { pageTransition: true, layoutTransition: true, @@ -63,6 +62,7 @@ export default defineNuxtConfig({ }, routeRules: { '/route-rules/spa': { ssr: false }, + '/head-spa': { ssr: false }, '/route-rules/middleware': { appMiddleware: 'route-rules-middleware' }, '/hydration/spa-redirection/**': { ssr: false }, '/no-scripts': { experimentalNoScripts: true }, diff --git a/test/fixtures/minimal-types/nuxt.config.ts b/test/fixtures/minimal-types/nuxt.config.ts index c1ae1551ca..df9525e993 100644 --- a/test/fixtures/minimal-types/nuxt.config.ts +++ b/test/fixtures/minimal-types/nuxt.config.ts @@ -1,4 +1,3 @@ export default defineNuxtConfig({ - future: { compatibilityVersion: process.env.TEST_V4 === 'true' ? 4 : 3 }, experimental: { appManifest: true }, }) diff --git a/test/fixtures/minimal/nuxt.config.ts b/test/fixtures/minimal/nuxt.config.ts index 6a0457d1ed..317311d645 100644 --- a/test/fixtures/minimal/nuxt.config.ts +++ b/test/fixtures/minimal/nuxt.config.ts @@ -3,7 +3,6 @@ import { fileURLToPath } from 'node:url' const testWithInlineVue = process.env.EXTERNAL_VUE === 'false' export default defineNuxtConfig({ - future: { compatibilityVersion: process.env.TEST_V4 === 'true' ? 4 : 3 }, pages: false, experimental: { externalVue: !testWithInlineVue, diff --git a/test/fixtures/runtime-compiler/nuxt.config.ts b/test/fixtures/runtime-compiler/nuxt.config.ts index 9855b8815c..9617ba123e 100644 --- a/test/fixtures/runtime-compiler/nuxt.config.ts +++ b/test/fixtures/runtime-compiler/nuxt.config.ts @@ -1,6 +1,5 @@ // https://nuxt.com/docs/api/nuxt-config export default defineNuxtConfig({ - future: { compatibilityVersion: process.env.TEST_V4 === 'true' ? 4 : 3 }, experimental: { externalVue: false, }, diff --git a/test/fixtures/suspense/nuxt.config.ts b/test/fixtures/suspense/nuxt.config.ts index 02632d5ddb..9758731515 100644 --- a/test/fixtures/suspense/nuxt.config.ts +++ b/test/fixtures/suspense/nuxt.config.ts @@ -3,7 +3,6 @@ import { fileURLToPath } from 'node:url' const testWithInlineVue = process.env.EXTERNAL_VUE === 'false' export default defineNuxtConfig({ - future: { compatibilityVersion: process.env.TEST_V4 === 'true' ? 4 : 3 }, experimental: { externalVue: !testWithInlineVue, }, From 3a304874d76590f7ec138902265477db0a8d5b16 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Wed, 19 Jun 2024 16:26:30 +0100 Subject: [PATCH 008/119] chore: add `4x` tag for v4 nightly releases --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e7f21fa891..3ce810ca19 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -287,7 +287,7 @@ jobs: path: packages - name: Release Edge - run: ./scripts/release-edge.sh + run: ./scripts/release-edge.sh 4x env: NODE_AUTH_TOKEN: ${{secrets.NODE_AUTH_TOKEN}} NPM_CONFIG_PROVENANCE: true From de06660e08c4cde608c26cfa7c45ac4f93ffe63a Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Wed, 19 Jun 2024 16:45:20 +0100 Subject: [PATCH 009/119] ci: add 3x tag instead --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3ce810ca19..f418e8f084 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -287,7 +287,7 @@ jobs: path: packages - name: Release Edge - run: ./scripts/release-edge.sh 4x + run: ./scripts/release-edge.sh ${{ github.ref == 'refs/heads/main' && 'latest' || '3x' }} env: NODE_AUTH_TOKEN: ${{secrets.NODE_AUTH_TOKEN}} NPM_CONFIG_PROVENANCE: true From bbad9bf534ca08f3d06d5a499cbae456e2421f4e Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Wed, 19 Jun 2024 17:06:46 +0100 Subject: [PATCH 010/119] fix(nuxt)!: emit absolute paths in `builder:watch` hook (#27709) --- packages/nuxt/src/core/builder.ts | 12 ++++-------- packages/schema/src/config/experimental.ts | 12 ------------ 2 files changed, 4 insertions(+), 20 deletions(-) diff --git a/packages/nuxt/src/core/builder.ts b/packages/nuxt/src/core/builder.ts index 354829a28f..6292e450db 100644 --- a/packages/nuxt/src/core/builder.ts +++ b/packages/nuxt/src/core/builder.ts @@ -86,8 +86,7 @@ function createWatcher () { ], }) - // TODO: consider moving to emit absolute path in 3.8 or 4.0 - watcher.on('all', (event, path) => nuxt.callHook('builder:watch', event, nuxt.options.experimental.relativeWatchPaths ? normalize(relative(nuxt.options.srcDir, path)) : normalize(path))) + watcher.on('all', (event, path) => nuxt.callHook('builder:watch', event, normalize(path))) nuxt.hook('close', () => watcher?.close()) } @@ -117,8 +116,7 @@ function createGranularWatcher () { watcher.on('all', (event, path) => { path = normalize(path) if (!pending) { - // TODO: consider moving to emit absolute path in 3.8 or 4.0 - nuxt.callHook('builder:watch', event, nuxt.options.experimental.relativeWatchPaths ? relative(nuxt.options.srcDir, path) : path) + nuxt.callHook('builder:watch', event, path) } if (event === 'unlinkDir' && path in watchers) { watchers[path]?.close() @@ -126,8 +124,7 @@ function createGranularWatcher () { } if (event === 'addDir' && path !== dir && !ignoredDirs.has(path) && !pathsToWatch.includes(path) && !(path in watchers) && !isIgnored(path)) { watchers[path] = chokidar.watch(path, { ...nuxt.options.watchers.chokidar, ignored: [isIgnored] }) - // TODO: consider moving to emit absolute path in 3.8 or 4.0 - watchers[path].on('all', (event, p) => nuxt.callHook('builder:watch', event, nuxt.options.experimental.relativeWatchPaths ? normalize(relative(nuxt.options.srcDir, p)) : normalize(p))) + watchers[path].on('all', (event, p) => nuxt.callHook('builder:watch', event, normalize(p))) nuxt.hook('close', () => watchers[path]?.close()) } }) @@ -161,8 +158,7 @@ async function createParcelWatcher () { if (err) { return } for (const event of events) { if (isIgnored(event.path)) { continue } - // TODO: consider moving to emit absolute path in 3.8 or 4.0 - nuxt.callHook('builder:watch', watchEvents[event.type], nuxt.options.experimental.relativeWatchPaths ? normalize(relative(nuxt.options.srcDir, event.path)) : normalize(event.path)) + nuxt.callHook('builder:watch', watchEvents[event.type], normalize(event.path)) } }, { ignore: [ diff --git a/packages/schema/src/config/experimental.ts b/packages/schema/src/config/experimental.ts index 3381362451..28d6717de5 100644 --- a/packages/schema/src/config/experimental.ts +++ b/packages/schema/src/config/experimental.ts @@ -434,18 +434,6 @@ export default defineUntypedSchema({ */ clientNodeCompat: false, - /** - * Whether to provide relative paths in the `builder:watch` hook. - * - * This flag will be removed with the release of v4 and exists only for - * advance testing within Nuxt v3.12+ or in [the nightly release channel](/docs/guide/going-further/nightly-release-channel). - */ - relativeWatchPaths: { - async $resolve (val, get) { - return val ?? ((await get('future') as Record).compatibilityVersion !== 4) - }, - }, - /** * Whether `clear` and `clearNuxtData` should reset async data to its _default_ value or update * it to `null`/`undefined`. From 57e84086cc22c8a1686e180b8e1895445613f809 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Wed, 19 Jun 2024 18:04:40 +0100 Subject: [PATCH 011/119] fix(nuxt)!: improve default `asyncData` value behaviour (#27718) --- docs/1.getting-started/12.upgrade.md | 4 +- .../nuxt/src/app/composables/asyncData.ts | 59 +++++++++---------- packages/nuxt/src/app/composables/error.ts | 5 +- packages/nuxt/src/app/composables/fetch.ts | 21 +++---- packages/nuxt/src/app/defaults.ts | 8 --- packages/nuxt/src/app/nuxt.ts | 8 +-- packages/nuxt/src/core/nuxt.ts | 1 - packages/nuxt/src/core/templates.ts | 24 +------- packages/schema/src/config/experimental.ts | 28 +-------- test/fixtures/basic-types/types.ts | 4 +- .../immediate-remove-unmounted.vue | 6 +- test/nuxt/composables.test.ts | 17 +++--- 12 files changed, 58 insertions(+), 127 deletions(-) delete mode 100644 packages/nuxt/src/app/defaults.ts diff --git a/docs/1.getting-started/12.upgrade.md b/docs/1.getting-started/12.upgrade.md index e7afaf1787..a1720402e8 100644 --- a/docs/1.getting-started/12.upgrade.md +++ b/docs/1.getting-started/12.upgrade.md @@ -209,6 +209,7 @@ Previously `data` was initialized to `null` but reset in `clearNuxtData` to `und If you encounter any issues you can revert back to the previous behavior with: ```ts twoslash [nuxt.config.ts] +// @errors: 2353 export default defineNuxtConfig({ experimental: { defaults: { @@ -232,10 +233,10 @@ Please report an issue if you are doing this, as we do not plan to keep this as Previously it was possible to pass `dedupe: boolean` to `refresh`. These were aliases of `cancel` (`true`) and `defer` (`false`). ```ts twoslash [app.vue] +// @errors: 2322 const { refresh } = await useAsyncData(async () => ({ message: 'Hello, Nuxt 3!' })) async function refreshData () { - // @ts-expect-error this is no longer valid syntax await refresh({ dedupe: true }) } ``` @@ -281,6 +282,7 @@ Often users set an appropriately empty value, such as an empty array, to avoid t If you encounter any issues you can revert back to the previous behavior, for now, with: ```ts twoslash [nuxt.config.ts] +// @errors: 2353 export default defineNuxtConfig({ experimental: { resetAsyncDataToUndefined: true, diff --git a/packages/nuxt/src/app/composables/asyncData.ts b/packages/nuxt/src/app/composables/asyncData.ts index c328f33864..5215379e81 100644 --- a/packages/nuxt/src/app/composables/asyncData.ts +++ b/packages/nuxt/src/app/composables/asyncData.ts @@ -8,10 +8,7 @@ import { createError } from './error' import { onNuxtReady } from './ready' // @ts-expect-error virtual file -import { asyncDataDefaults, resetAsyncDataToUndefined } from '#build/nuxt.config.mjs' - -// TODO: temporary module for backwards compatibility -import type { DedupeOption, DefaultAsyncDataErrorValue, DefaultAsyncDataValue } from '#app/defaults' +import { asyncDataDefaults } from '#build/nuxt.config.mjs' export type AsyncDataRequestStatus = 'idle' | 'pending' | 'success' | 'error' @@ -45,7 +42,7 @@ export interface AsyncDataOptions< ResT, DataT = ResT, PickKeys extends KeysOf = KeysOf, - DefaultT = DefaultAsyncDataValue, + DefaultT = undefined, > { /** * Whether to fetch on the server side. @@ -107,7 +104,7 @@ export interface AsyncDataExecuteOptions { * Instead of using `boolean` values, use `cancel` for `true` and `defer` for `false`. * Boolean values will be removed in a future release. */ - dedupe?: DedupeOption + dedupe?: 'cancel' | 'defer' } export interface _AsyncData { @@ -119,7 +116,7 @@ export interface _AsyncData { refresh: (opts?: AsyncDataExecuteOptions) => Promise execute: (opts?: AsyncDataExecuteOptions) => Promise clear: () => void - error: Ref + error: Ref status: Ref } @@ -140,11 +137,11 @@ export function useAsyncData< NuxtErrorDataT = unknown, DataT = ResT, PickKeys extends KeysOf = KeysOf, - DefaultT = DefaultAsyncDataValue, + DefaultT = undefined, > ( handler: (ctx?: NuxtApp) => Promise, options?: AsyncDataOptions -): AsyncData | DefaultT, (NuxtErrorDataT extends Error | NuxtError ? NuxtErrorDataT : NuxtError) | DefaultAsyncDataErrorValue> +): AsyncData | DefaultT, (NuxtErrorDataT extends Error | NuxtError ? NuxtErrorDataT : NuxtError) | undefined> /** * Provides access to data that resolves asynchronously in an SSR-friendly composable. * See {@link https://nuxt.com/docs/api/composables/use-async-data} @@ -160,7 +157,7 @@ export function useAsyncData< > ( handler: (ctx?: NuxtApp) => Promise, options?: AsyncDataOptions -): AsyncData | DefaultT, (NuxtErrorDataT extends Error | NuxtError ? NuxtErrorDataT : NuxtError) | DefaultAsyncDataErrorValue> +): AsyncData | DefaultT, (NuxtErrorDataT extends Error | NuxtError ? NuxtErrorDataT : NuxtError) | undefined> /** * Provides access to data that resolves asynchronously in an SSR-friendly composable. * See {@link https://nuxt.com/docs/api/composables/use-async-data} @@ -173,12 +170,12 @@ export function useAsyncData< NuxtErrorDataT = unknown, DataT = ResT, PickKeys extends KeysOf = KeysOf, - DefaultT = DefaultAsyncDataValue, + DefaultT = undefined, > ( key: string, handler: (ctx?: NuxtApp) => Promise, options?: AsyncDataOptions -): AsyncData | DefaultT, (NuxtErrorDataT extends Error | NuxtError ? NuxtErrorDataT : NuxtError) | DefaultAsyncDataErrorValue> +): AsyncData | DefaultT, (NuxtErrorDataT extends Error | NuxtError ? NuxtErrorDataT : NuxtError) | undefined> /** * Provides access to data that resolves asynchronously in an SSR-friendly composable. * See {@link https://nuxt.com/docs/api/composables/use-async-data} @@ -196,14 +193,14 @@ export function useAsyncData< key: string, handler: (ctx?: NuxtApp) => Promise, options?: AsyncDataOptions -): AsyncData | DefaultT, (NuxtErrorDataT extends Error | NuxtError ? NuxtErrorDataT : NuxtError) | DefaultAsyncDataErrorValue> +): AsyncData | DefaultT, (NuxtErrorDataT extends Error | NuxtError ? NuxtErrorDataT : NuxtError) | undefined> export function useAsyncData< ResT, NuxtErrorDataT = unknown, DataT = ResT, PickKeys extends KeysOf = KeysOf, - DefaultT = DefaultAsyncDataValue, -> (...args: any[]): AsyncData, (NuxtErrorDataT extends Error | NuxtError ? NuxtErrorDataT : NuxtError) | DefaultAsyncDataErrorValue> { + DefaultT = undefined, +> (...args: any[]): AsyncData, (NuxtErrorDataT extends Error | NuxtError ? NuxtErrorDataT : NuxtError) | undefined> { const autoKey = typeof args[args.length - 1] === 'string' ? args.pop() : undefined if (typeof args[0] !== 'string') { args.unshift(autoKey) } @@ -235,7 +232,7 @@ export function useAsyncData< } // Used to get default values - const getDefault = () => asyncDataDefaults.value + const getDefault = () => undefined const getDefaultCachedData = () => nuxtApp.isHydrating ? nuxtApp.payload.data[key] : nuxtApp.static.data[key] // Apply defaults @@ -257,7 +254,7 @@ export function useAsyncData< // Create or use a shared asyncData entity if (!nuxtApp._asyncData[key] || !options.immediate) { - nuxtApp.payload._errors[key] ??= asyncDataDefaults.errorValue + nuxtApp.payload._errors[key] ??= undefined const _ref = options.deep ? ref : shallowRef @@ -319,7 +316,7 @@ export function useAsyncData< nuxtApp.payload.data[key] = result asyncData.data.value = result - asyncData.error.value = asyncDataDefaults.errorValue + asyncData.error.value = undefined asyncData.status.value = 'success' }) .catch((error: any) => { @@ -416,11 +413,11 @@ export function useLazyAsyncData< DataE = Error, DataT = ResT, PickKeys extends KeysOf = KeysOf, - DefaultT = DefaultAsyncDataValue, + DefaultT = undefined, > ( handler: (ctx?: NuxtApp) => Promise, options?: Omit, 'lazy'> -): AsyncData | DefaultT, DataE | DefaultAsyncDataValue> +): AsyncData | DefaultT, DataE | undefined> export function useLazyAsyncData< ResT, DataE = Error, @@ -430,18 +427,18 @@ export function useLazyAsyncData< > ( handler: (ctx?: NuxtApp) => Promise, options?: Omit, 'lazy'> -): AsyncData | DefaultT, DataE | DefaultAsyncDataValue> +): AsyncData | DefaultT, DataE | undefined> export function useLazyAsyncData< ResT, DataE = Error, DataT = ResT, PickKeys extends KeysOf = KeysOf, - DefaultT = DefaultAsyncDataValue, + DefaultT = undefined, > ( key: string, handler: (ctx?: NuxtApp) => Promise, options?: Omit, 'lazy'> -): AsyncData | DefaultT, DataE | DefaultAsyncDataValue> +): AsyncData | DefaultT, DataE | undefined> export function useLazyAsyncData< ResT, DataE = Error, @@ -452,15 +449,15 @@ export function useLazyAsyncData< key: string, handler: (ctx?: NuxtApp) => Promise, options?: Omit, 'lazy'> -): AsyncData | DefaultT, DataE | DefaultAsyncDataValue> +): AsyncData | DefaultT, DataE | undefined> export function useLazyAsyncData< ResT, DataE = Error, DataT = ResT, PickKeys extends KeysOf = KeysOf, - DefaultT = DefaultAsyncDataValue, -> (...args: any[]): AsyncData | DefaultT, DataE | DefaultAsyncDataValue> { + DefaultT = undefined, +> (...args: any[]): AsyncData | DefaultT, DataE | undefined> { const autoKey = typeof args[args.length - 1] === 'string' ? args.pop() : undefined if (typeof args[0] !== 'string') { args.unshift(autoKey) } const [key, handler, options = {}] = args as [string, (ctx?: NuxtApp) => Promise, AsyncDataOptions] @@ -475,12 +472,12 @@ export function useLazyAsyncData< } /** @since 3.1.0 */ -export function useNuxtData (key: string): { data: Ref } { +export function useNuxtData (key: string): { data: Ref } { const nuxtApp = useNuxtApp() // Initialize value when key is not already set if (!(key in nuxtApp.payload.data)) { - nuxtApp.payload.data[key] = asyncDataDefaults.value + nuxtApp.payload.data[key] = undefined } return { @@ -532,12 +529,12 @@ function clearNuxtDataByKey (nuxtApp: NuxtApp, key: string): void { } if (key in nuxtApp.payload._errors) { - nuxtApp.payload._errors[key] = asyncDataDefaults.errorValue + nuxtApp.payload._errors[key] = undefined } if (nuxtApp._asyncData[key]) { - nuxtApp._asyncData[key]!.data.value = resetAsyncDataToUndefined ? undefined : nuxtApp._asyncData[key]!._default() - nuxtApp._asyncData[key]!.error.value = asyncDataDefaults.errorValue + nuxtApp._asyncData[key]!.data.value = nuxtApp._asyncData[key]!._default() + nuxtApp._asyncData[key]!.error.value = undefined nuxtApp._asyncData[key]!.pending.value = false nuxtApp._asyncData[key]!.status.value = 'idle' } diff --git a/packages/nuxt/src/app/composables/error.ts b/packages/nuxt/src/app/composables/error.ts index 69b56e1c2b..8e9752479f 100644 --- a/packages/nuxt/src/app/composables/error.ts +++ b/packages/nuxt/src/app/composables/error.ts @@ -4,9 +4,6 @@ import { toRef } from 'vue' import { useNuxtApp } from '../nuxt' import { useRouter } from './router' -// @ts-expect-error virtual file -import { nuxtDefaultErrorValue } from '#build/nuxt.config.mjs' - export const NUXT_ERROR_SIGNATURE = '__nuxt_error' /** @since 3.0.0 */ @@ -50,7 +47,7 @@ export const clearError = async (options: { redirect?: string } = {}) => { await useRouter().replace(options.redirect) } - error.value = nuxtDefaultErrorValue + error.value = undefined } /** @since 3.0.0 */ diff --git a/packages/nuxt/src/app/composables/fetch.ts b/packages/nuxt/src/app/composables/fetch.ts index a083c47789..2b9a25a023 100644 --- a/packages/nuxt/src/app/composables/fetch.ts +++ b/packages/nuxt/src/app/composables/fetch.ts @@ -8,9 +8,6 @@ import { useRequestFetch } from './ssr' import type { AsyncData, AsyncDataOptions, KeysOf, MultiWatchSources, PickFrom } from './asyncData' import { useAsyncData } from './asyncData' -// TODO: temporary module for backwards compatibility -import type { DefaultAsyncDataErrorValue, DefaultAsyncDataValue } from '#app/defaults' - // @ts-expect-error virtual file import { fetchDefaults } from '#build/nuxt.config.mjs' @@ -33,7 +30,7 @@ export interface UseFetchOptions< ResT, DataT = ResT, PickKeys extends KeysOf = KeysOf, - DefaultT = DefaultAsyncDataValue, + DefaultT = undefined, R extends NitroFetchRequest = string & {}, M extends AvailableRouterMethod = AvailableRouterMethod, > extends Omit, 'watch'>, ComputedFetchOptions { @@ -57,11 +54,11 @@ export function useFetch< _ResT = ResT extends void ? FetchResult : ResT, DataT = _ResT, PickKeys extends KeysOf = KeysOf, - DefaultT = DefaultAsyncDataValue, + DefaultT = undefined, > ( request: Ref | ReqT | (() => ReqT), opts?: UseFetchOptions<_ResT, DataT, PickKeys, DefaultT, ReqT, Method> -): AsyncData | DefaultT, ErrorT | DefaultAsyncDataErrorValue> +): AsyncData | DefaultT, ErrorT | undefined> /** * Fetch data from an API endpoint with an SSR-friendly composable. * See {@link https://nuxt.com/docs/api/composables/use-fetch} @@ -80,7 +77,7 @@ export function useFetch< > ( request: Ref | ReqT | (() => ReqT), opts?: UseFetchOptions<_ResT, DataT, PickKeys, DefaultT, ReqT, Method> -): AsyncData | DefaultT, ErrorT | DefaultAsyncDataErrorValue> +): AsyncData | DefaultT, ErrorT | undefined> export function useFetch< ResT = void, ErrorT = FetchError, @@ -89,7 +86,7 @@ export function useFetch< _ResT = ResT extends void ? FetchResult : ResT, DataT = _ResT, PickKeys extends KeysOf = KeysOf, - DefaultT = DefaultAsyncDataValue, + DefaultT = undefined, > ( request: Ref | ReqT | (() => ReqT), arg1?: string | UseFetchOptions<_ResT, DataT, PickKeys, DefaultT, ReqT, Method>, @@ -195,11 +192,11 @@ export function useLazyFetch< _ResT = ResT extends void ? FetchResult : ResT, DataT = _ResT, PickKeys extends KeysOf = KeysOf, - DefaultT = DefaultAsyncDataValue, + DefaultT = undefined, > ( request: Ref | ReqT | (() => ReqT), opts?: Omit, 'lazy'> -): AsyncData | DefaultT, ErrorT | DefaultAsyncDataErrorValue> +): AsyncData | DefaultT, ErrorT | undefined> export function useLazyFetch< ResT = void, ErrorT = FetchError, @@ -212,7 +209,7 @@ export function useLazyFetch< > ( request: Ref | ReqT | (() => ReqT), opts?: Omit, 'lazy'> -): AsyncData | DefaultT, ErrorT | DefaultAsyncDataErrorValue> +): AsyncData | DefaultT, ErrorT | undefined> export function useLazyFetch< ResT = void, ErrorT = FetchError, @@ -221,7 +218,7 @@ export function useLazyFetch< _ResT = ResT extends void ? FetchResult : ResT, DataT = _ResT, PickKeys extends KeysOf = KeysOf, - DefaultT = DefaultAsyncDataValue, + DefaultT = undefined, > ( request: Ref | ReqT | (() => ReqT), arg1?: string | Omit, 'lazy'>, diff --git a/packages/nuxt/src/app/defaults.ts b/packages/nuxt/src/app/defaults.ts deleted file mode 100644 index f0dd26ea72..0000000000 --- a/packages/nuxt/src/app/defaults.ts +++ /dev/null @@ -1,8 +0,0 @@ -// TODO: temporary module for backwards compatibility - -export type DefaultAsyncDataErrorValue = null -export type DefaultAsyncDataValue = null -export type DefaultErrorValue = null -export type DedupeOption = boolean | 'cancel' | 'defer' - -export {} diff --git a/packages/nuxt/src/app/nuxt.ts b/packages/nuxt/src/app/nuxt.ts index 75ce824a47..ff91ba845b 100644 --- a/packages/nuxt/src/app/nuxt.ts +++ b/packages/nuxt/src/app/nuxt.ts @@ -23,8 +23,6 @@ import type { ViewTransition } from './plugins/view-transitions.client' // @ts-expect-error virtual file import { appId } from '#build/nuxt.config.mjs' -// TODO: temporary module for backwards compatibility -import type { DefaultAsyncDataErrorValue, DefaultErrorValue } from '#app/defaults' import type { NuxtAppLiterals } from '#app' function getNuxtAppCtx (appName = appId || 'nuxt-app') { @@ -94,8 +92,8 @@ export interface NuxtPayload { state: Record once: Set config?: Pick - error?: NuxtError | DefaultErrorValue - _errors: Record + error?: NuxtError | undefined + _errors: Record [key: string]: unknown } @@ -124,7 +122,7 @@ interface _NuxtApp { _asyncData: Record pending: Ref - error: Ref + error: Ref status: Ref /** @internal */ _default: () => unknown diff --git a/packages/nuxt/src/core/nuxt.ts b/packages/nuxt/src/core/nuxt.ts index 3f85809d50..05a53cfa4d 100644 --- a/packages/nuxt/src/core/nuxt.ts +++ b/packages/nuxt/src/core/nuxt.ts @@ -127,7 +127,6 @@ async function initNuxt (nuxt: Nuxt) { // Add nuxt types nuxt.hook('prepare:types', (opts) => { opts.references.push({ types: 'nuxt' }) - opts.references.push({ path: resolve(nuxt.options.buildDir, 'types/app-defaults.d.ts') }) opts.references.push({ path: resolve(nuxt.options.buildDir, 'types/plugins.d.ts') }) // Add vue shim if (nuxt.options.typescript.shim) { diff --git a/packages/nuxt/src/core/templates.ts b/packages/nuxt/src/core/templates.ts index d1ba1e4682..706b32e38f 100644 --- a/packages/nuxt/src/core/templates.ts +++ b/packages/nuxt/src/core/templates.ts @@ -7,7 +7,7 @@ import escapeRE from 'escape-string-regexp' import { hash } from 'ohash' import { camelCase } from 'scule' import { filename } from 'pathe/utils' -import type { NuxtTemplate, NuxtTypeTemplate } from 'nuxt/schema' +import type { NuxtTemplate } from 'nuxt/schema' import { annotatePlugins, checkForCircularDependencies } from './app' @@ -96,20 +96,6 @@ export const serverPluginTemplate: NuxtTemplate = { }, } -export const appDefaults: NuxtTypeTemplate = { - filename: 'types/app-defaults.d.ts', - getContents: (ctx) => { - const isV4 = ctx.nuxt.options.future.compatibilityVersion === 4 - return ` -declare module '#app/defaults' { - type DefaultAsyncDataErrorValue = ${isV4 ? 'undefined' : 'null'} - type DefaultAsyncDataValue = ${isV4 ? 'undefined' : 'null'} - type DefaultErrorValue = ${isV4 ? 'undefined' : 'null'} - type DedupeOption = ${isV4 ? '\'cancel\' | \'defer\'' : 'boolean | \'cancel\' | \'defer\''} -}` - }, -} - export const pluginsDeclaration: NuxtTemplate = { filename: 'types/plugins.d.ts', getContents: async (ctx) => { @@ -418,13 +404,7 @@ export const nuxtConfigTemplate: NuxtTemplate = { `export const devRootDir = ${ctx.nuxt.options.dev ? JSON.stringify(ctx.nuxt.options.rootDir) : 'null'}`, `export const devLogs = ${JSON.stringify(ctx.nuxt.options.features.devLogs)}`, `export const nuxtLinkDefaults = ${JSON.stringify(ctx.nuxt.options.experimental.defaults.nuxtLink)}`, - `export const asyncDataDefaults = ${JSON.stringify({ - ...ctx.nuxt.options.experimental.defaults.useAsyncData, - value: ctx.nuxt.options.experimental.defaults.useAsyncData.value === 'null' ? null : undefined, - errorValue: ctx.nuxt.options.experimental.defaults.useAsyncData.errorValue === 'null' ? null : undefined, - })}`, - `export const resetAsyncDataToUndefined = ${ctx.nuxt.options.experimental.resetAsyncDataToUndefined}`, - `export const nuxtDefaultErrorValue = ${ctx.nuxt.options.future.compatibilityVersion === 4 ? 'undefined' : 'null'}`, + `export const asyncDataDefaults = ${JSON.stringify(ctx.nuxt.options.experimental.defaults.useAsyncData)}`, `export const fetchDefaults = ${JSON.stringify(fetchDefaults)}`, `export const vueAppRootContainer = ${ctx.nuxt.options.app.rootAttrs.id ? `'#${ctx.nuxt.options.app.rootAttrs.id}'` : `'body > ${ctx.nuxt.options.app.rootTag}'`}`, `export const viewTransition = ${ctx.nuxt.options.experimental.viewTransition}`, diff --git a/packages/schema/src/config/experimental.ts b/packages/schema/src/config/experimental.ts index 28d6717de5..c1d903ba5d 100644 --- a/packages/schema/src/config/experimental.ts +++ b/packages/schema/src/config/experimental.ts @@ -397,23 +397,7 @@ export default defineUntypedSchema({ * Options that apply to `useAsyncData` (and also therefore `useFetch`) */ useAsyncData: { - /** @type {'undefined' | 'null'} */ - value: { - async $resolve (val, get) { - return val ?? ((await get('future') as Record).compatibilityVersion === 4 ? 'undefined' : 'null') - }, - }, - /** @type {'undefined' | 'null'} */ - errorValue: { - async $resolve (val, get) { - return val ?? ((await get('future') as Record).compatibilityVersion === 4 ? 'undefined' : 'null') - }, - }, - deep: { - async $resolve (val, get) { - return val ?? !((await get('future') as Record).compatibilityVersion === 4) - }, - }, + deep: false, }, /** @type {Pick} */ useFetch: {}, @@ -433,15 +417,5 @@ export default defineUntypedSchema({ * @type {boolean} */ clientNodeCompat: false, - - /** - * Whether `clear` and `clearNuxtData` should reset async data to its _default_ value or update - * it to `null`/`undefined`. - */ - resetAsyncDataToUndefined: { - async $resolve (val, get) { - return val ?? ((await get('future') as Record).compatibilityVersion !== 4) - }, - }, }, }) diff --git a/test/fixtures/basic-types/types.ts b/test/fixtures/basic-types/types.ts index 4e593c1b6a..a6dc98d189 100644 --- a/test/fixtures/basic-types/types.ts +++ b/test/fixtures/basic-types/types.ts @@ -12,8 +12,8 @@ import type { NavigateToOptions } from '#app/composables/router' import { NuxtLayout, NuxtLink, NuxtPage, ServerComponent, WithTypes } from '#components' import { useRouter } from '#imports' -// TODO: temporary module for backwards compatibility -import type { DefaultAsyncDataErrorValue, DefaultAsyncDataValue } from '#app/defaults' +type DefaultAsyncDataErrorValue = undefined +type DefaultAsyncDataValue = undefined interface TestResponse { message: string } diff --git a/test/fixtures/basic/pages/useAsyncData/immediate-remove-unmounted.vue b/test/fixtures/basic/pages/useAsyncData/immediate-remove-unmounted.vue index 9ed0940264..6390bdcdad 100644 --- a/test/fixtures/basic/pages/useAsyncData/immediate-remove-unmounted.vue +++ b/test/fixtures/basic/pages/useAsyncData/immediate-remove-unmounted.vue @@ -20,11 +20,9 @@ diff --git a/test/nuxt/composables.test.ts b/test/nuxt/composables.test.ts index e22488309b..f924bf6d36 100644 --- a/test/nuxt/composables.test.ts +++ b/test/nuxt/composables.test.ts @@ -20,8 +20,6 @@ import { callOnce } from '#app/composables/once' import { useLoadingIndicator } from '#app/composables/loading-indicator' import { useRouteAnnouncer } from '#app/composables/route-announcer' -import { asyncDataDefaults, nuxtDefaultErrorValue } from '#build/nuxt.config.mjs' - registerEndpoint('/api/test', defineEventHandler(event => ({ method: event.method, headers: Object.fromEntries(event.headers.entries()), @@ -128,7 +126,7 @@ describe('useAsyncData', () => { ] `) expect(res instanceof Promise).toBeTruthy() - expect(res.data.value).toBe(asyncDataDefaults.value) + expect(res.data.value).toBe(undefined) await res expect(res.data.value).toBe('test') }) @@ -140,7 +138,7 @@ describe('useAsyncData', () => { expect(immediate.pending.value).toBe(false) const nonimmediate = await useAsyncData(() => Promise.resolve('test'), { immediate: false }) - expect(nonimmediate.data.value).toBe(asyncDataDefaults.value) + expect(nonimmediate.data.value).toBe(undefined) expect(nonimmediate.status.value).toBe('idle') expect(nonimmediate.pending.value).toBe(true) }) @@ -165,9 +163,9 @@ describe('useAsyncData', () => { // https://github.com/nuxt/nuxt/issues/23411 it('should initialize with error set to null when immediate: false', async () => { const { error, execute } = useAsyncData(() => Promise.resolve({}), { immediate: false }) - expect(error.value).toBe(asyncDataDefaults.errorValue) + expect(error.value).toBe(undefined) await execute() - expect(error.value).toBe(asyncDataDefaults.errorValue) + expect(error.value).toBe(undefined) }) it('should be accessible with useNuxtData', async () => { @@ -208,9 +206,8 @@ describe('useAsyncData', () => { clear() - // TODO: update to asyncDataDefaults.value in v4 expect(data.value).toBeUndefined() - expect(error.value).toBe(asyncDataDefaults.errorValue) + expect(error.value).toBe(undefined) expect(pending.value).toBe(false) expect(status.value).toBe('idle') }) @@ -354,7 +351,7 @@ describe('errors', () => { showError('new error') expect(error.value).toMatchInlineSnapshot('[Error: new error]') clearError() - expect(error.value).toBe(nuxtDefaultErrorValue) + expect(error.value).toBe(undefined) }) }) @@ -620,7 +617,7 @@ describe('routing utilities: `abortNavigation`', () => { it('should throw an error if one is provided', () => { const error = useError() expect(() => abortNavigation({ message: 'Page not found' })).toThrowErrorMatchingInlineSnapshot('[Error: Page not found]') - expect(error.value).toBe(nuxtDefaultErrorValue) + expect(error.value).toBe(undefined) }) it('should block navigation if no error is provided', () => { expect(abortNavigation()).toMatchInlineSnapshot('false') From bbcab053bc0fd1a5eadb0f0bdebb192c668e9d42 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Wed, 19 Jun 2024 18:16:04 +0100 Subject: [PATCH 012/119] ci: run workflows against 3.x branch as well --- .github/workflows/check-links.yml | 1 + .github/workflows/ci.yml | 2 ++ .github/workflows/docs.yml | 1 + .github/workflows/introspect.yml | 2 ++ .github/workflows/label-pr.yml | 1 + .github/workflows/scorecards.yml | 2 +- 6 files changed, 8 insertions(+), 1 deletion(-) diff --git a/.github/workflows/check-links.yml b/.github/workflows/check-links.yml index 14a3db9075..f07aa5b898 100644 --- a/.github/workflows/check-links.yml +++ b/.github/workflows/check-links.yml @@ -7,6 +7,7 @@ on: - "*.md" branches: - main + - 3.x # Remove default permissions of GITHUB_TOKEN for security # https://docs.github.com/en/actions/using-jobs/assigning-permissions-to-jobs diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f418e8f084..818fd6e27d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -7,12 +7,14 @@ on: - "*.md" branches: - main + - 3.x pull_request: paths-ignore: - "docs/**" - "*.md" branches: - main + - 3.x - "!v[0-9]*" # https://github.com/vitejs/vite/blob/main/.github/workflows/ci.yml diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 624cafa244..b6ce923d60 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -9,6 +9,7 @@ on: # autofix workflow will be triggered instead for PRs branches: - main + - 3.x - "!v[0-9]*" # Remove default permissions of GITHUB_TOKEN for security diff --git a/.github/workflows/introspect.yml b/.github/workflows/introspect.yml index 6b7f4fd586..0820e5407f 100644 --- a/.github/workflows/introspect.yml +++ b/.github/workflows/introspect.yml @@ -6,11 +6,13 @@ on: - ".github/workflows/**" branches: - main + - 3.x pull_request: paths: - ".github/workflows/**" branches: - main + - 3.x - "!v[0-9]*" permissions: diff --git a/.github/workflows/label-pr.yml b/.github/workflows/label-pr.yml index 9d462f9f8c..c173cee01d 100644 --- a/.github/workflows/label-pr.yml +++ b/.github/workflows/label-pr.yml @@ -6,6 +6,7 @@ on: - opened branches: - main + - 3.x jobs: add-pr-labels: diff --git a/.github/workflows/scorecards.yml b/.github/workflows/scorecards.yml index fb0b7dc233..ed941c8316 100644 --- a/.github/workflows/scorecards.yml +++ b/.github/workflows/scorecards.yml @@ -12,7 +12,7 @@ on: schedule: - cron: '20 7 * * 2' push: - branches: ["main"] + branches: ["main", "3.x"] # Declare default permissions as read only. permissions: read-all From 18f072440255278765902c736e533478406462eb Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Wed, 19 Jun 2024 18:14:12 +0100 Subject: [PATCH 013/119] fix(nuxt): support hoisting types of subpath imports (#27720) --- packages/nuxt/src/core/nuxt.ts | 32 ++++++++++++++++++------ packages/schema/src/config/typescript.ts | 1 + 2 files changed, 25 insertions(+), 8 deletions(-) diff --git a/packages/nuxt/src/core/nuxt.ts b/packages/nuxt/src/core/nuxt.ts index 05a53cfa4d..a121ab8442 100644 --- a/packages/nuxt/src/core/nuxt.ts +++ b/packages/nuxt/src/core/nuxt.ts @@ -102,18 +102,34 @@ async function initNuxt (nuxt: Nuxt) { // ignore packages that exist in `package.json` as these can be resolved by TypeScript if (dependencies.has(pkg) && !(pkg in nightlies)) { return [] } - // deduplicate types for nightly releases - if (pkg in nightlies) { - const nightly = nightlies[pkg as keyof typeof nightlies] - const path = await _resolvePath(nightly, { url: nuxt.options.modulesDir }).then(r => resolvePackageJSON(r)).catch(() => null) - if (path) { - return [[pkg, [dirname(path)]], [nightly, [dirname(path)]]] + const [_pkg = pkg, _subpath] = /^[^@]+\//.test(pkg) ? pkg.split('/') : [pkg] + const subpath = _subpath ? '/' + _subpath : '' + + async function resolveTypePath (path: string) { + try { + const r = await _resolvePath(path, { url: nuxt.options.modulesDir, conditions: ['types', 'import', 'require'] }) + if (subpath) { + return r.replace(/(?:\.d)?\.[mc]?[jt]s$/, '') + } + const rootPath = await resolvePackageJSON(r) + return dirname(rootPath) + } catch { + return null } } - const path = await _resolvePath(pkg, { url: nuxt.options.modulesDir }).then(r => resolvePackageJSON(r)).catch(() => null) + // deduplicate types for nightly releases + if (_pkg in nightlies) { + const nightly = nightlies[pkg as keyof typeof nightlies] + const path = await resolveTypePath(nightly + subpath) + if (path) { + return [[pkg, [path]], [nightly + subpath, [path]]] + } + } + + const path = await resolveTypePath(pkg + subpath) if (path) { - return [[pkg, [dirname(path)]]] + return [[pkg, [path]]] } return [] diff --git a/packages/schema/src/config/typescript.ts b/packages/schema/src/config/typescript.ts index ccb8b54cbc..3586d16ab7 100644 --- a/packages/schema/src/config/typescript.ts +++ b/packages/schema/src/config/typescript.ts @@ -47,6 +47,7 @@ export default defineUntypedSchema({ '@vue/compiler-sfc', '@vue/runtime-dom', 'vue-router', + 'vue-router/auto', '@nuxt/schema', 'nuxt', ] From cc2e56c71209832fd936c7ca20aefb56e783e8e3 Mon Sep 17 00:00:00 2001 From: Aviv Keller <38299977+RedYetiDev@users.noreply.github.com> Date: Wed, 19 Jun 2024 13:09:04 -0600 Subject: [PATCH 014/119] ci: use correct SHA calculation for release-pr action (#27604) --- .github/workflows/release-pr.yml | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release-pr.yml b/.github/workflows/release-pr.yml index 7a45a29223..d2151ea277 100644 --- a/.github/workflows/release-pr.yml +++ b/.github/workflows/release-pr.yml @@ -29,10 +29,25 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: Get PR Info + id: pr + env: + PR_NUMBER: ${{ github.event.issue.number }} + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GH_REPO: ${{ github.repository }} + COMMENT_AT: ${{ github.event.comment.created_at }} + run: | + pr="$(gh api -H "Accept: application/vnd.github+json" -H "X-GitHub-Api-Version: 2022-11-28" /repos/${GH_REPO}/pulls/${PR_NUMBER})" + head_sha="$(echo "$pr" | jq -r .head.sha)" + updated_at="$(echo "$pr" | jq -r .updated_at)" + + if [[ $(date -d $updated_at) > $(date -d $COMMENT_AT) ]]; exit 1; fi + + echo "head_sha=$head_sha" >> $GITHUB_OUTPUT - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 with: - ref: ${{ github.event.issue.pull_request.head.sha }} - fetch-depth: 0 + ref: ${{ steps.pr.outputs.head_sha }} + fetch-depth: 1 - run: corepack enable - uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 From 95ea3f2aee87e62a2b101ffe0a6bb729107b85c7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 19 Jun 2024 21:51:38 +0100 Subject: [PATCH 015/119] chore(deps): update all non-major dependencies (main) (#27721) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- packages/kit/package.json | 2 +- packages/schema/package.json | 2 +- packages/webpack/package.json | 2 +- pnpm-lock.yaml | 310 +++++++++++++++++----------------- 5 files changed, 159 insertions(+), 159 deletions(-) diff --git a/package.json b/package.json index 8be65ba751..0f59b33e78 100644 --- a/package.json +++ b/package.json @@ -54,7 +54,7 @@ "@testing-library/vue": "8.1.0", "@types/eslint__js": "8.42.3", "@types/fs-extra": "11.0.4", - "@types/node": "20.14.5", + "@types/node": "20.14.6", "@types/semver": "7.5.8", "@unhead/schema": "1.9.13", "@vitejs/plugin-vue": "5.0.4", diff --git a/packages/kit/package.json b/packages/kit/package.json index 2a5934ef29..9fd8c6fea7 100644 --- a/packages/kit/package.json +++ b/packages/kit/package.json @@ -53,7 +53,7 @@ "unbuild": "latest", "vite": "5.3.1", "vitest": "1.6.0", - "webpack": "5.92.0" + "webpack": "5.92.1" }, "engines": { "node": "^14.18.0 || >=16.10.0" diff --git a/packages/schema/package.json b/packages/schema/package.json index 6bb65341f7..9c8ac00cf2 100644 --- a/packages/schema/package.json +++ b/packages/schema/package.json @@ -59,7 +59,7 @@ "vue-bundle-renderer": "2.1.0", "vue-loader": "17.4.2", "vue-router": "4.3.3", - "webpack": "5.92.0", + "webpack": "5.92.1", "webpack-dev-middleware": "7.2.1" }, "dependencies": { diff --git a/packages/webpack/package.json b/packages/webpack/package.json index 9decffb708..a21e928350 100644 --- a/packages/webpack/package.json +++ b/packages/webpack/package.json @@ -62,7 +62,7 @@ "url-loader": "^4.1.1", "vue-bundle-renderer": "^2.1.0", "vue-loader": "^17.4.2", - "webpack": "^5.92.0", + "webpack": "^5.92.1", "webpack-bundle-analyzer": "^4.10.2", "webpack-dev-middleware": "^7.2.1", "webpack-hot-middleware": "^2.26.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 495f3195b1..27555ee7ea 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -31,7 +31,7 @@ importers: version: link:packages/kit '@nuxt/test-utils': specifier: 3.13.1 - version: 3.13.1(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.4.5)))(@vue/test-utils@2.4.6)(h3@1.11.1)(happy-dom@14.12.0)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.44.1)(vite@5.3.1(@types/node@20.14.5)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.5)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.3(vue@3.4.29(typescript@5.4.5)))(vue@3.4.29(typescript@5.4.5)) + version: 3.13.1(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.4.5)))(@vue/test-utils@2.4.6)(h3@1.11.1)(happy-dom@14.12.0)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.44.1)(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.6)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.3(vue@3.4.29(typescript@5.4.5)))(vue@3.4.29(typescript@5.4.5)) '@nuxt/webpack-builder': specifier: workspace:* version: link:packages/webpack @@ -45,8 +45,8 @@ importers: specifier: 11.0.4 version: 11.0.4 '@types/node': - specifier: 20.14.5 - version: 20.14.5 + specifier: 20.14.6 + version: 20.14.6 '@types/semver': specifier: 7.5.8 version: 7.5.8 @@ -55,10 +55,10 @@ importers: version: 1.9.13 '@vitejs/plugin-vue': specifier: 5.0.4 - version: 5.0.4(vite@5.3.1(@types/node@20.14.5)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5)) + version: 5.0.4(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5)) '@vitest/coverage-v8': specifier: 1.6.0 - version: 1.6.0(vitest@1.6.0(@types/node@20.14.5)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0)) + version: 1.6.0(vitest@1.6.0(@types/node@20.14.6)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0)) '@vue/test-utils': specifier: 2.4.6 version: 2.4.6 @@ -145,10 +145,10 @@ importers: version: 1.5.3 vitest: specifier: 1.6.0 - version: 1.6.0(@types/node@20.14.5)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0) + version: 1.6.0(@types/node@20.14.6)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0) vitest-environment-nuxt: specifier: 1.0.0 - version: 1.0.0(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.4.5)))(@vue/test-utils@2.4.6)(h3@1.11.1)(happy-dom@14.12.0)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.44.1)(vite@5.3.1(@types/node@20.14.5)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.5)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.3(vue@3.4.29(typescript@5.4.5)))(vue@3.4.29(typescript@5.4.5)) + version: 1.0.0(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.4.5)))(@vue/test-utils@2.4.6)(h3@1.11.1)(happy-dom@14.12.0)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.44.1)(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.6)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.3(vue@3.4.29(typescript@5.4.5)))(vue@3.4.29(typescript@5.4.5)) vue: specifier: 3.4.29 version: 3.4.29(typescript@5.4.5) @@ -233,13 +233,13 @@ importers: version: 2.0.0(sass@1.69.4)(typescript@5.4.5) vite: specifier: 5.3.1 - version: 5.3.1(@types/node@20.14.5)(sass@1.69.4)(terser@5.27.0) + version: 5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0) vitest: specifier: 1.6.0 - version: 1.6.0(@types/node@20.14.5)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0) + version: 1.6.0(@types/node@20.14.6)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0) webpack: - specifier: 5.92.0 - version: 5.92.0 + specifier: 5.92.1 + version: 5.92.1 packages/nuxt: dependencies: @@ -248,7 +248,7 @@ importers: version: 2.0.2 '@nuxt/devtools': specifier: ^1.3.3 - version: 1.3.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5)) + version: 1.3.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5)) '@nuxt/kit': specifier: workspace:* version: link:../kit @@ -420,7 +420,7 @@ importers: devDependencies: '@nuxt/scripts': specifier: 0.5.1 - version: 0.5.1(@nuxt/devtools@1.3.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5)))(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(@vue/compiler-core@3.4.29)(ioredis@5.3.2)(nuxt@packages+nuxt)(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))(webpack@5.92.0(esbuild@0.21.5)) + version: 0.5.1(@nuxt/devtools@1.3.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5)))(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(@vue/compiler-core@3.4.29)(ioredis@5.3.2)(nuxt@packages+nuxt)(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))(webpack@5.92.1(esbuild@0.21.5)) '@nuxt/ui-templates': specifier: workspace:* version: link:../ui-templates @@ -508,10 +508,10 @@ importers: version: 1.9.13 '@vitejs/plugin-vue': specifier: 5.0.4 - version: 5.0.4(vite@5.3.1(@types/node@20.14.5)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5)) + version: 5.0.4(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5)) '@vitejs/plugin-vue-jsx': specifier: 4.0.0 - version: 4.0.0(vite@5.3.1(@types/node@20.14.5)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5)) + version: 4.0.0(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5)) '@vue/compiler-core': specifier: 3.4.29 version: 3.4.29 @@ -526,7 +526,7 @@ importers: version: 1.11.1(magicast@0.3.4) esbuild-loader: specifier: 4.2.0 - version: 4.2.0(webpack@5.92.0) + version: 4.2.0(webpack@5.92.1) h3: specifier: 1.11.1 version: 1.11.1 @@ -550,7 +550,7 @@ importers: version: 1.9.0 vite: specifier: 5.3.1 - version: 5.3.1(@types/node@20.14.5)(sass@1.69.4)(terser@5.27.0) + version: 5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0) vue: specifier: 3.4.29 version: 3.4.29(typescript@5.4.5) @@ -559,16 +559,16 @@ importers: version: 2.1.0 vue-loader: specifier: 17.4.2 - version: 17.4.2(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.4.5))(webpack@5.92.0) + version: 17.4.2(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.4.5))(webpack@5.92.1) vue-router: specifier: 4.3.3 version: 4.3.3(vue@3.4.29(typescript@5.4.5)) webpack: - specifier: 5.92.0 - version: 5.92.0 + specifier: 5.92.1 + version: 5.92.1 webpack-dev-middleware: specifier: 7.2.1 - version: 7.2.1(webpack@5.92.0) + version: 7.2.1(webpack@5.92.1) packages/ui-templates: devDependencies: @@ -607,10 +607,10 @@ importers: version: 1.3.0 unocss: specifier: 0.61.0 - version: 0.61.0(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.5)(sass@1.69.4)(terser@5.27.0)) + version: 0.61.0(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0)) vite: specifier: 5.3.1 - version: 5.3.1(@types/node@20.14.5)(sass@1.69.4)(terser@5.27.0) + version: 5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0) packages/vite: dependencies: @@ -622,10 +622,10 @@ importers: version: 5.0.7(rollup@4.18.0) '@vitejs/plugin-vue': specifier: ^5.0.4 - version: 5.0.4(vite@5.3.1(@types/node@20.14.5)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5)) + version: 5.0.4(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5)) '@vitejs/plugin-vue-jsx': specifier: ^4.0.0 - version: 4.0.0(vite@5.3.1(@types/node@20.14.5)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5)) + version: 4.0.0(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5)) autoprefixer: specifier: ^10.4.19 version: 10.4.19(postcss@8.4.38) @@ -706,13 +706,13 @@ importers: version: 1.10.1 vite: specifier: 5.3.1 - version: 5.3.1(@types/node@20.14.5)(sass@1.69.4)(terser@5.27.0) + version: 5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0) vite-node: specifier: ^1.6.0 - version: 1.6.0(@types/node@20.14.5)(sass@1.69.4)(terser@5.27.0) + version: 1.6.0(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0) vite-plugin-checker: specifier: ^0.6.4 - version: 0.6.4(eslint@9.5.0)(optionator@0.9.3)(typescript@5.4.5)(vite@5.3.1(@types/node@20.14.5)(sass@1.69.4)(terser@5.27.0))(vue-tsc@2.0.21(typescript@5.4.5)) + version: 0.6.4(eslint@9.5.0)(optionator@0.9.3)(typescript@5.4.5)(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0))(vue-tsc@2.0.21(typescript@5.4.5)) vue-bundle-renderer: specifier: ^2.1.0 version: 2.1.0 @@ -743,7 +743,7 @@ importers: dependencies: '@nuxt/friendly-errors-webpack-plugin': specifier: ^2.6.0 - version: 2.6.0(webpack@5.92.0) + version: 2.6.0(webpack@5.92.1) '@nuxt/kit': specifier: workspace:* version: link:../kit @@ -752,10 +752,10 @@ importers: version: 10.4.19(postcss@8.4.38) css-loader: specifier: ^7.1.2 - version: 7.1.2(webpack@5.92.0) + version: 7.1.2(webpack@5.92.1) css-minimizer-webpack-plugin: specifier: ^7.0.0 - version: 7.0.0(webpack@5.92.0) + version: 7.0.0(webpack@5.92.1) cssnano: specifier: ^7.0.3 version: 7.0.3(postcss@8.4.38) @@ -764,7 +764,7 @@ importers: version: 6.1.4 esbuild-loader: specifier: ^4.2.0 - version: 4.2.0(webpack@5.92.0) + version: 4.2.0(webpack@5.92.1) escape-string-regexp: specifier: ^5.0.0 version: 5.0.0 @@ -773,10 +773,10 @@ importers: version: 3.0.3 file-loader: specifier: ^6.2.0 - version: 6.2.0(webpack@5.92.0) + version: 6.2.0(webpack@5.92.1) fork-ts-checker-webpack-plugin: specifier: ^9.0.2 - version: 9.0.2(typescript@5.4.5)(webpack@5.92.0) + version: 9.0.2(typescript@5.4.5)(webpack@5.92.1) fs-extra: specifier: ^11.2.0 version: 11.2.0 @@ -797,7 +797,7 @@ importers: version: 4.9.3 mini-css-extract-plugin: specifier: ^2.9.0 - version: 2.9.0(webpack@5.92.0) + version: 2.9.0(webpack@5.92.1) mlly: specifier: ^1.7.1 version: 1.7.1 @@ -821,7 +821,7 @@ importers: version: 2.0.0 postcss-loader: specifier: ^8.1.1 - version: 8.1.1(postcss@8.4.38)(typescript@5.4.5)(webpack@5.92.0) + version: 8.1.1(postcss@8.4.38)(typescript@5.4.5)(webpack@5.92.1) postcss-url: specifier: ^10.1.3 version: 10.1.3(postcss@8.4.38) @@ -833,7 +833,7 @@ importers: version: 3.7.0 time-fix-plugin: specifier: ^2.0.7 - version: 2.0.7(webpack@5.92.0) + version: 2.0.7(webpack@5.92.1) ufo: specifier: ^1.5.3 version: 1.5.3 @@ -845,22 +845,22 @@ importers: version: 1.10.1 url-loader: specifier: ^4.1.1 - version: 4.1.1(file-loader@6.2.0(webpack@5.92.0))(webpack@5.92.0) + version: 4.1.1(file-loader@6.2.0(webpack@5.92.1))(webpack@5.92.1) vue-bundle-renderer: specifier: ^2.1.0 version: 2.1.0 vue-loader: specifier: ^17.4.2 - version: 17.4.2(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.4.5))(webpack@5.92.0) + version: 17.4.2(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.4.5))(webpack@5.92.1) webpack: - specifier: ^5.92.0 - version: 5.92.0 + specifier: ^5.92.1 + version: 5.92.1 webpack-bundle-analyzer: specifier: ^4.10.2 version: 4.10.2 webpack-dev-middleware: specifier: ^7.2.1 - version: 7.2.1(webpack@5.92.0) + version: 7.2.1(webpack@5.92.1) webpack-hot-middleware: specifier: ^2.26.1 version: 2.26.1 @@ -869,7 +869,7 @@ importers: version: 0.6.2 webpackbar: specifier: ^6.0.1 - version: 6.0.1(webpack@5.92.0) + version: 6.0.1(webpack@5.92.1) devDependencies: '@nuxt/schema': specifier: workspace:* @@ -971,7 +971,7 @@ importers: version: 0.7.0(rollup@4.18.0)(vue-router@4.3.3(vue@3.4.29(typescript@5.4.5)))(vue@3.4.29(typescript@5.4.5)) vitest: specifier: 1.6.0 - version: 1.6.0(@types/node@20.14.5)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0) + version: 1.6.0(@types/node@20.14.6)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0) vue: specifier: 3.4.29 version: 3.4.29(typescript@5.4.5) @@ -2547,8 +2547,8 @@ packages: '@types/node@20.14.2': resolution: {integrity: sha512-xyu6WAMVwv6AKFLB+e/7ySZVr/0zLCzOa7rSpq6jNwpqOrUbcACDWC+53d4n2QHOnDou0fbIsg8wZu/sxrnI4Q==} - '@types/node@20.14.5': - resolution: {integrity: sha512-aoRR+fJkZT2l0aGOJhuA8frnCSoNX6W7U2mpNq63+BxBIj5BQFt8rHy627kijCmm63ijdSdwvGgpUsU6MBsZZA==} + '@types/node@20.14.6': + resolution: {integrity: sha512-JbA0XIJPL1IiNnU7PFxDXyfAwcwVVrOoqyzzyQTyMeVhBzkJVMSkC1LlVsRQ2lpqiY4n6Bb9oCS6lzDKVQxbZw==} '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -7504,8 +7504,8 @@ packages: webpack-virtual-modules@0.6.2: resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==} - webpack@5.92.0: - resolution: {integrity: sha512-Bsw2X39MYIgxouNATyVpCNVWBCuUwDgWtN78g6lSdPJRLaQ/PUVm/oXcaRAyY/sMFoKFQrsPeqvTizWtq7QPCA==} + webpack@5.92.1: + resolution: {integrity: sha512-JECQ7IwJb+7fgUFBlrJzbyu3GEuNBcdqr1LD7IbSzwkSmIevTm8PF+wej3Oxuz/JFBUZ6O1o43zsPkwm1C4TmA==} engines: {node: '>=10.13.0'} hasBin: true peerDependencies: @@ -7714,7 +7714,7 @@ snapshots: dependencies: '@babel/compat-data': 7.24.7 '@babel/helper-validator-option': 7.24.7 - browserslist: 4.23.0 + browserslist: 4.23.1 lru-cache: 5.1.1 semver: 6.3.1 @@ -8320,7 +8320,7 @@ snapshots: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.5 '@types/istanbul-reports': 3.0.3 - '@types/node': 20.14.5 + '@types/node': 20.14.6 '@types/yargs': 17.0.28 chalk: 4.1.2 @@ -8484,18 +8484,18 @@ snapshots: nuxt: link:packages/nuxt vite: 5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) - '@nuxt/devtools-ui-kit@1.3.3(@nuxt/devtools@1.3.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5)))(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(@vue/compiler-core@3.4.29)(nuxt@packages+nuxt)(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))(webpack@5.92.0(esbuild@0.21.5))': + '@nuxt/devtools-ui-kit@1.3.3(@nuxt/devtools@1.3.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5)))(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(@vue/compiler-core@3.4.29)(nuxt@packages+nuxt)(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))(webpack@5.92.1(esbuild@0.21.5))': dependencies: '@iconify-json/carbon': 1.1.35 '@iconify-json/logos': 1.1.43 '@iconify-json/ri': 1.1.20 '@iconify-json/tabler': 1.1.113 - '@nuxt/devtools': 1.3.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5)) + '@nuxt/devtools': 1.3.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5)) '@nuxt/devtools-kit': 1.3.3(nuxt@packages+nuxt)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) '@nuxt/kit': link:packages/kit '@nuxtjs/color-mode': 3.4.1 '@unocss/core': 0.60.4 - '@unocss/nuxt': 0.60.4(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(webpack@5.92.0(esbuild@0.21.5)) + '@unocss/nuxt': 0.60.4(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(webpack@5.92.1(esbuild@0.21.5)) '@unocss/preset-attributify': 0.60.4 '@unocss/preset-icons': 0.60.4 '@unocss/preset-mini': 0.60.4 @@ -8506,7 +8506,7 @@ snapshots: defu: 6.1.4 focus-trap: 7.5.4 splitpanes: 3.1.5 - unocss: 0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) + unocss: 0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) v-lazy-show: 0.2.4(@vue/compiler-core@3.4.29) transitivePeerDependencies: - '@unocss/webpack' @@ -8544,13 +8544,13 @@ snapshots: rc9: 2.1.2 semver: 7.6.2 - '@nuxt/devtools@1.3.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))': + '@nuxt/devtools@1.3.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))': dependencies: '@antfu/utils': 0.7.8 '@nuxt/devtools-kit': 1.3.3(nuxt@packages+nuxt)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) '@nuxt/devtools-wizard': 1.3.3 '@nuxt/kit': link:packages/kit - '@vue/devtools-applet': 7.1.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.4.5)))(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5)) + '@vue/devtools-applet': 7.1.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.4.5)))(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5)) '@vue/devtools-core': 7.1.3(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5)) '@vue/devtools-kit': 7.1.3(vue@3.4.29(typescript@5.4.5)) birpc: 0.2.17 @@ -8642,18 +8642,18 @@ snapshots: - supports-color - typescript - '@nuxt/friendly-errors-webpack-plugin@2.6.0(webpack@5.92.0)': + '@nuxt/friendly-errors-webpack-plugin@2.6.0(webpack@5.92.1)': dependencies: chalk: 2.4.2 consola: 3.2.3 error-stack-parser: 2.1.4 string-width: 4.2.3 - webpack: 5.92.0 + webpack: 5.92.1 - '@nuxt/scripts@0.5.1(@nuxt/devtools@1.3.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5)))(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(@vue/compiler-core@3.4.29)(ioredis@5.3.2)(nuxt@packages+nuxt)(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))(webpack@5.92.0(esbuild@0.21.5))': + '@nuxt/scripts@0.5.1(@nuxt/devtools@1.3.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5)))(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(@vue/compiler-core@3.4.29)(ioredis@5.3.2)(nuxt@packages+nuxt)(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))(webpack@5.92.1(esbuild@0.21.5))': dependencies: '@nuxt/devtools-kit': 1.3.3(nuxt@packages+nuxt)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) - '@nuxt/devtools-ui-kit': 1.3.3(@nuxt/devtools@1.3.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5)))(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(@vue/compiler-core@3.4.29)(nuxt@packages+nuxt)(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))(webpack@5.92.0(esbuild@0.21.5)) + '@nuxt/devtools-ui-kit': 1.3.3(@nuxt/devtools@1.3.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5)))(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(@vue/compiler-core@3.4.29)(nuxt@packages+nuxt)(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))(webpack@5.92.1(esbuild@0.21.5)) '@nuxt/kit': link:packages/kit '@types/google.maps': 3.55.9 '@types/stripe-v3': 3.1.33 @@ -8738,7 +8738,7 @@ snapshots: rc9: 2.1.2 std-env: 3.7.0 - '@nuxt/test-utils@3.13.1(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.4.5)))(@vue/test-utils@2.4.6)(h3@1.11.1)(happy-dom@14.12.0)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.44.1)(vite@5.3.1(@types/node@20.14.5)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.5)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.3(vue@3.4.29(typescript@5.4.5)))(vue@3.4.29(typescript@5.4.5))': + '@nuxt/test-utils@3.13.1(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.4.5)))(@vue/test-utils@2.4.6)(h3@1.11.1)(happy-dom@14.12.0)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.44.1)(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.6)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.3(vue@3.4.29(typescript@5.4.5)))(vue@3.4.29(typescript@5.4.5))': dependencies: '@nuxt/kit': link:packages/kit '@nuxt/schema': link:packages/schema @@ -8764,8 +8764,8 @@ snapshots: ufo: 1.5.3 unenv: 1.9.0 unplugin: 1.10.1 - vite: 5.3.1(@types/node@20.14.5)(sass@1.69.4)(terser@5.27.0) - vitest-environment-nuxt: 1.0.0(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.4.5)))(@vue/test-utils@2.4.6)(h3@1.11.1)(happy-dom@14.12.0)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.44.1)(vite@5.3.1(@types/node@20.14.5)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.5)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.3(vue@3.4.29(typescript@5.4.5)))(vue@3.4.29(typescript@5.4.5)) + vite: 5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0) + vitest-environment-nuxt: 1.0.0(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.4.5)))(@vue/test-utils@2.4.6)(h3@1.11.1)(happy-dom@14.12.0)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.44.1)(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.6)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.3(vue@3.4.29(typescript@5.4.5)))(vue@3.4.29(typescript@5.4.5)) vue: 3.4.29(typescript@5.4.5) vue-router: 4.3.3(vue@3.4.29(typescript@5.4.5)) optionalDependencies: @@ -8773,7 +8773,7 @@ snapshots: '@vue/test-utils': 2.4.6 happy-dom: 14.12.0 playwright-core: 1.44.1 - vitest: 1.6.0(@types/node@20.14.5)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0) + vitest: 1.6.0(@types/node@20.14.6)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0) transitivePeerDependencies: - magicast @@ -9168,14 +9168,14 @@ snapshots: '@types/clean-css@4.2.11': dependencies: - '@types/node': 20.14.5 + '@types/node': 20.14.6 source-map: 0.6.1 '@types/clear@0.1.4': {} '@types/connect@3.4.37': dependencies: - '@types/node': 20.14.5 + '@types/node': 20.14.6 '@types/debug@4.1.12': dependencies: @@ -9222,7 +9222,7 @@ snapshots: '@types/http-proxy@1.17.14': dependencies: - '@types/node': 20.14.5 + '@types/node': 20.14.6 '@types/istanbul-lib-coverage@2.0.5': {} @@ -9238,7 +9238,7 @@ snapshots: '@types/jsonfile@6.1.2': dependencies: - '@types/node': 20.14.5 + '@types/node': 20.14.6 '@types/lodash-es@4.17.12': dependencies: @@ -9254,13 +9254,13 @@ snapshots: '@types/node-sass@4.11.6': dependencies: - '@types/node': 20.14.5 + '@types/node': 20.14.6 '@types/node@20.14.2': dependencies: undici-types: 5.26.5 - '@types/node@20.14.5': + '@types/node@20.14.6': dependencies: undici-types: 5.26.5 @@ -9305,7 +9305,7 @@ snapshots: dependencies: '@types/node': 20.14.2 tapable: 2.2.1 - webpack: 5.92.0 + webpack: 5.92.1 transitivePeerDependencies: - '@swc/core' - esbuild @@ -9316,7 +9316,7 @@ snapshots: dependencies: '@types/connect': 3.4.37 tapable: 2.2.1 - webpack: 5.92.0 + webpack: 5.92.1 transitivePeerDependencies: - '@swc/core' - esbuild @@ -9325,13 +9325,13 @@ snapshots: '@types/webpack-sources@3.2.1': dependencies: - '@types/node': 20.14.5 + '@types/node': 20.14.6 '@types/source-list-map': 0.1.4 source-map: 0.7.4 '@types/webpack@4.41.34': dependencies: - '@types/node': 20.14.5 + '@types/node': 20.14.6 '@types/tapable': 1.0.10 '@types/uglify-js': 3.17.3 '@types/webpack-sources': 3.2.1 @@ -9482,13 +9482,13 @@ snapshots: transitivePeerDependencies: - rollup - '@unocss/astro@0.61.0(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.5)(sass@1.69.4)(terser@5.27.0))': + '@unocss/astro@0.61.0(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0))': dependencies: '@unocss/core': 0.61.0 '@unocss/reset': 0.61.0 - '@unocss/vite': 0.61.0(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.5)(sass@1.69.4)(terser@5.27.0)) + '@unocss/vite': 0.61.0(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0)) optionalDependencies: - vite: 5.3.1(@types/node@20.14.5)(sass@1.69.4)(terser@5.27.0) + vite: 5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0) transitivePeerDependencies: - rollup @@ -9564,7 +9564,7 @@ snapshots: gzip-size: 6.0.0 sirv: 2.0.4 - '@unocss/nuxt@0.60.4(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(webpack@5.92.0(esbuild@0.21.5))': + '@unocss/nuxt@0.60.4(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(webpack@5.92.1(esbuild@0.21.5))': dependencies: '@nuxt/kit': link:packages/kit '@unocss/config': 0.60.4 @@ -9578,8 +9578,8 @@ snapshots: '@unocss/preset-wind': 0.60.4 '@unocss/reset': 0.60.4 '@unocss/vite': 0.60.4(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) - '@unocss/webpack': 0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)) - unocss: 0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) + '@unocss/webpack': 0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)) + unocss: 0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) transitivePeerDependencies: - postcss - rollup @@ -9801,7 +9801,7 @@ snapshots: transitivePeerDependencies: - rollup - '@unocss/vite@0.61.0(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.5)(sass@1.69.4)(terser@5.27.0))': + '@unocss/vite@0.61.0(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0))': dependencies: '@ampproject/remapping': 2.3.0 '@rollup/pluginutils': 5.1.0(rollup@4.18.0) @@ -9813,11 +9813,11 @@ snapshots: chokidar: 3.6.0 fast-glob: 3.3.2 magic-string: 0.30.10 - vite: 5.3.1(@types/node@20.14.5)(sass@1.69.4)(terser@5.27.0) + vite: 5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0) transitivePeerDependencies: - rollup - '@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5))': + '@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5))': dependencies: '@ampproject/remapping': 2.3.0 '@rollup/pluginutils': 5.1.0(rollup@4.18.0) @@ -9827,7 +9827,7 @@ snapshots: fast-glob: 3.3.2 magic-string: 0.30.10 unplugin: 1.10.1 - webpack: 5.92.0(esbuild@0.21.5) + webpack: 5.92.1(esbuild@0.21.5) webpack-sources: 3.2.3 transitivePeerDependencies: - rollup @@ -9850,12 +9850,12 @@ snapshots: - encoding - supports-color - '@vitejs/plugin-vue-jsx@4.0.0(vite@5.3.1(@types/node@20.14.5)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))': + '@vitejs/plugin-vue-jsx@4.0.0(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))': dependencies: '@babel/core': 7.24.7 '@babel/plugin-transform-typescript': 7.24.7(@babel/core@7.24.7) '@vue/babel-plugin-jsx': 1.2.2(@babel/core@7.24.7) - vite: 5.3.1(@types/node@20.14.5)(sass@1.69.4)(terser@5.27.0) + vite: 5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0) vue: 3.4.29(typescript@5.4.5) transitivePeerDependencies: - supports-color @@ -9865,12 +9865,12 @@ snapshots: vite: 5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) vue: 3.4.29(typescript@5.4.5) - '@vitejs/plugin-vue@5.0.4(vite@5.3.1(@types/node@20.14.5)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))': + '@vitejs/plugin-vue@5.0.4(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))': dependencies: - vite: 5.3.1(@types/node@20.14.5)(sass@1.69.4)(terser@5.27.0) + vite: 5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0) vue: 3.4.29(typescript@5.4.5) - '@vitest/coverage-v8@1.6.0(vitest@1.6.0(@types/node@20.14.5)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))': + '@vitest/coverage-v8@1.6.0(vitest@1.6.0(@types/node@20.14.6)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))': dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 0.2.3 @@ -9885,7 +9885,7 @@ snapshots: std-env: 3.7.0 strip-literal: 2.1.0 test-exclude: 6.0.0 - vitest: 1.6.0(@types/node@20.14.5)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0) + vitest: 1.6.0(@types/node@20.14.6)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0) transitivePeerDependencies: - supports-color @@ -10014,12 +10014,12 @@ snapshots: '@vue/devtools-api@6.6.3': {} - '@vue/devtools-applet@7.1.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.4.5)))(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))': + '@vue/devtools-applet@7.1.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.4.5)))(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))': dependencies: '@vue/devtools-core': 7.1.3(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5)) '@vue/devtools-kit': 7.1.3(vue@3.4.29(typescript@5.4.5)) '@vue/devtools-shared': 7.1.3 - '@vue/devtools-ui': 7.1.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.4.5)))(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vue@3.4.29(typescript@5.4.5)) + '@vue/devtools-ui': 7.1.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.4.5)))(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vue@3.4.29(typescript@5.4.5)) lodash-es: 4.17.21 perfect-debounce: 1.0.0 shiki: 1.3.0 @@ -10069,7 +10069,7 @@ snapshots: dependencies: rfdc: 1.3.1 - '@vue/devtools-ui@7.1.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.4.5)))(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vue@3.4.29(typescript@5.4.5))': + '@vue/devtools-ui@7.1.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.4.5)))(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vue@3.4.29(typescript@5.4.5))': dependencies: '@unocss/reset': 0.61.0 '@vue/devtools-shared': 7.1.3 @@ -10079,7 +10079,7 @@ snapshots: colord: 2.9.3 floating-vue: 5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.4.5)) focus-trap: 7.5.4 - unocss: 0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) + unocss: 0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) vue: 3.4.29(typescript@5.4.5) transitivePeerDependencies: - '@vue/composition-api' @@ -10635,7 +10635,7 @@ snapshots: caniuse-api@3.0.0: dependencies: browserslist: 4.23.1 - caniuse-lite: 1.0.30001599 + caniuse-lite: 1.0.30001636 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 @@ -10830,7 +10830,7 @@ snapshots: core-js-compat@3.37.1: dependencies: - browserslist: 4.23.0 + browserslist: 4.23.1 core-util-is@1.0.3: {} @@ -10887,7 +10887,7 @@ snapshots: dependencies: postcss: 8.4.38 - css-loader@7.1.2(webpack@5.92.0): + css-loader@7.1.2(webpack@5.92.1): dependencies: icss-utils: 5.1.0(postcss@8.4.38) postcss: 8.4.38 @@ -10898,9 +10898,9 @@ snapshots: postcss-value-parser: 4.2.0 semver: 7.6.2 optionalDependencies: - webpack: 5.92.0 + webpack: 5.92.1 - css-minimizer-webpack-plugin@7.0.0(webpack@5.92.0): + css-minimizer-webpack-plugin@7.0.0(webpack@5.92.1): dependencies: '@jridgewell/trace-mapping': 0.3.25 cssnano: 7.0.3(postcss@8.4.38) @@ -10908,7 +10908,7 @@ snapshots: postcss: 8.4.38 schema-utils: 4.2.0 serialize-javascript: 6.0.2 - webpack: 5.92.0 + webpack: 5.92.1 css-select@5.1.0: dependencies: @@ -11223,12 +11223,12 @@ snapshots: es-module-lexer@1.3.1: {} - esbuild-loader@4.2.0(webpack@5.92.0): + esbuild-loader@4.2.0(webpack@5.92.1): dependencies: esbuild: 0.21.5 get-tsconfig: 4.7.3 loader-utils: 2.0.4 - webpack: 5.92.0 + webpack: 5.92.1 webpack-sources: 1.4.3 esbuild@0.18.20: @@ -11654,11 +11654,11 @@ snapshots: dependencies: flat-cache: 4.0.1 - file-loader@6.2.0(webpack@5.92.0): + file-loader@6.2.0(webpack@5.92.1): dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 - webpack: 5.92.0 + webpack: 5.92.1 file-uri-to-path@1.0.0: {} @@ -11712,7 +11712,7 @@ snapshots: cross-spawn: 7.0.3 signal-exit: 4.1.0 - fork-ts-checker-webpack-plugin@9.0.2(typescript@5.4.5)(webpack@5.92.0): + fork-ts-checker-webpack-plugin@9.0.2(typescript@5.4.5)(webpack@5.92.1): dependencies: '@babel/code-frame': 7.24.7 chalk: 4.1.2 @@ -11727,7 +11727,7 @@ snapshots: semver: 7.6.2 tapable: 2.2.1 typescript: 5.4.5 - webpack: 5.92.0 + webpack: 5.92.1 fraction.js@4.3.7: {} @@ -12374,7 +12374,7 @@ snapshots: jest-util@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 20.14.5 + '@types/node': 20.14.6 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -12382,13 +12382,13 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 20.14.5 + '@types/node': 20.14.6 merge-stream: 2.0.0 supports-color: 8.1.1 jest-worker@29.7.0: dependencies: - '@types/node': 20.14.5 + '@types/node': 20.14.6 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -13016,11 +13016,11 @@ snapshots: min-indent@1.0.1: {} - mini-css-extract-plugin@2.9.0(webpack@5.92.0): + mini-css-extract-plugin@2.9.0(webpack@5.92.1): dependencies: schema-utils: 4.2.0 tapable: 2.2.1 - webpack: 5.92.0 + webpack: 5.92.1 minimatch@3.0.8: dependencies: @@ -13683,14 +13683,14 @@ snapshots: read-cache: 1.0.0 resolve: 1.22.8 - postcss-loader@8.1.1(postcss@8.4.38)(typescript@5.4.5)(webpack@5.92.0): + postcss-loader@8.1.1(postcss@8.4.38)(typescript@5.4.5)(webpack@5.92.1): dependencies: cosmiconfig: 9.0.0(typescript@5.4.5) jiti: 1.21.6 postcss: 8.4.38 semver: 7.6.2 optionalDependencies: - webpack: 5.92.0 + webpack: 5.92.1 transitivePeerDependencies: - typescript @@ -14602,7 +14602,7 @@ snapshots: css-tree: 2.3.1 css-what: 6.1.0 csso: 5.0.5 - picocolors: 1.0.0 + picocolors: 1.0.1 system-architecture@0.1.0: {} @@ -14627,25 +14627,25 @@ snapshots: mkdirp: 1.0.4 yallist: 4.0.0 - terser-webpack-plugin@5.3.10(esbuild@0.21.5)(webpack@5.92.0(esbuild@0.21.5)): + terser-webpack-plugin@5.3.10(esbuild@0.21.5)(webpack@5.92.1(esbuild@0.21.5)): dependencies: '@jridgewell/trace-mapping': 0.3.25 jest-worker: 27.5.1 schema-utils: 3.3.0 serialize-javascript: 6.0.2 terser: 5.27.0 - webpack: 5.92.0(esbuild@0.21.5) + webpack: 5.92.1(esbuild@0.21.5) optionalDependencies: esbuild: 0.21.5 - terser-webpack-plugin@5.3.10(webpack@5.92.0): + terser-webpack-plugin@5.3.10(webpack@5.92.1): dependencies: '@jridgewell/trace-mapping': 0.3.25 jest-worker: 27.5.1 schema-utils: 3.3.0 serialize-javascript: 6.0.2 terser: 5.27.0 - webpack: 5.92.0 + webpack: 5.92.1 terser@5.27.0: dependencies: @@ -14670,9 +14670,9 @@ snapshots: dependencies: semver: 7.6.2 - time-fix-plugin@2.0.7(webpack@5.92.0): + time-fix-plugin@2.0.7(webpack@5.92.1): dependencies: - webpack: 5.92.0 + webpack: 5.92.1 tiny-invariant@1.3.1: {} @@ -14902,7 +14902,7 @@ snapshots: universalify@2.0.0: {} - unocss@0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)): + unocss@0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)): dependencies: '@unocss/astro': 0.60.4(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) '@unocss/cli': 0.60.4(rollup@4.18.0) @@ -14925,14 +14925,14 @@ snapshots: '@unocss/transformer-variant-group': 0.60.4 '@unocss/vite': 0.60.4(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) optionalDependencies: - '@unocss/webpack': 0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)) + '@unocss/webpack': 0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)) vite: 5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) transitivePeerDependencies: - postcss - rollup - supports-color - unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)): + unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)): dependencies: '@unocss/astro': 0.61.0(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) '@unocss/cli': 0.61.0(rollup@4.18.0) @@ -14955,16 +14955,16 @@ snapshots: '@unocss/transformer-variant-group': 0.61.0 '@unocss/vite': 0.61.0(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) optionalDependencies: - '@unocss/webpack': 0.60.4(rollup@4.18.0)(webpack@5.92.0(esbuild@0.21.5)) + '@unocss/webpack': 0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)) vite: 5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) transitivePeerDependencies: - postcss - rollup - supports-color - unocss@0.61.0(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.5)(sass@1.69.4)(terser@5.27.0)): + unocss@0.61.0(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0)): dependencies: - '@unocss/astro': 0.61.0(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.5)(sass@1.69.4)(terser@5.27.0)) + '@unocss/astro': 0.61.0(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0)) '@unocss/cli': 0.61.0(rollup@4.18.0) '@unocss/core': 0.61.0 '@unocss/extractor-arbitrary-variants': 0.61.0 @@ -14983,9 +14983,9 @@ snapshots: '@unocss/transformer-compile-class': 0.61.0 '@unocss/transformer-directives': 0.61.0 '@unocss/transformer-variant-group': 0.61.0 - '@unocss/vite': 0.61.0(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.5)(sass@1.69.4)(terser@5.27.0)) + '@unocss/vite': 0.61.0(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0)) optionalDependencies: - vite: 5.3.1(@types/node@20.14.5)(sass@1.69.4)(terser@5.27.0) + vite: 5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0) transitivePeerDependencies: - postcss - rollup @@ -15085,14 +15085,14 @@ snapshots: dependencies: punycode: 2.3.0 - url-loader@4.1.1(file-loader@6.2.0(webpack@5.92.0))(webpack@5.92.0): + url-loader@4.1.1(file-loader@6.2.0(webpack@5.92.1))(webpack@5.92.1): dependencies: loader-utils: 2.0.4 mime-types: 2.1.35 schema-utils: 3.3.0 - webpack: 5.92.0 + webpack: 5.92.1 optionalDependencies: - file-loader: 6.2.0(webpack@5.92.0) + file-loader: 6.2.0(webpack@5.92.1) urlpattern-polyfill@8.0.2: {} @@ -15150,13 +15150,13 @@ snapshots: - supports-color - terser - vite-node@1.6.0(@types/node@20.14.5)(sass@1.69.4)(terser@5.27.0): + vite-node@1.6.0(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0): dependencies: cac: 6.7.14 debug: 4.3.4 pathe: 1.1.2 picocolors: 1.0.0 - vite: 5.3.1(@types/node@20.14.5)(sass@1.69.4)(terser@5.27.0) + vite: 5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0) transitivePeerDependencies: - '@types/node' - less @@ -15167,7 +15167,7 @@ snapshots: - supports-color - terser - vite-plugin-checker@0.6.4(eslint@9.5.0)(optionator@0.9.3)(typescript@5.4.5)(vite@5.3.1(@types/node@20.14.5)(sass@1.69.4)(terser@5.27.0))(vue-tsc@2.0.21(typescript@5.4.5)): + vite-plugin-checker@0.6.4(eslint@9.5.0)(optionator@0.9.3)(typescript@5.4.5)(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0))(vue-tsc@2.0.21(typescript@5.4.5)): dependencies: '@babel/code-frame': 7.24.7 ansi-escapes: 4.3.2 @@ -15180,7 +15180,7 @@ snapshots: semver: 7.6.2 strip-ansi: 6.0.1 tiny-invariant: 1.3.1 - vite: 5.3.1(@types/node@20.14.5)(sass@1.69.4)(terser@5.27.0) + vite: 5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0) vscode-languageclient: 7.0.0 vscode-languageserver: 7.0.0 vscode-languageserver-textdocument: 1.0.11 @@ -15235,20 +15235,20 @@ snapshots: sass: 1.69.4 terser: 5.27.0 - vite@5.3.1(@types/node@20.14.5)(sass@1.69.4)(terser@5.27.0): + vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0): dependencies: esbuild: 0.21.5 postcss: 8.4.38 rollup: 4.18.0 optionalDependencies: - '@types/node': 20.14.5 + '@types/node': 20.14.6 fsevents: 2.3.3 sass: 1.69.4 terser: 5.27.0 - vitest-environment-nuxt@1.0.0(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.4.5)))(@vue/test-utils@2.4.6)(h3@1.11.1)(happy-dom@14.12.0)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.44.1)(vite@5.3.1(@types/node@20.14.5)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.5)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.3(vue@3.4.29(typescript@5.4.5)))(vue@3.4.29(typescript@5.4.5)): + vitest-environment-nuxt@1.0.0(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.4.5)))(@vue/test-utils@2.4.6)(h3@1.11.1)(happy-dom@14.12.0)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.44.1)(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.6)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.3(vue@3.4.29(typescript@5.4.5)))(vue@3.4.29(typescript@5.4.5)): dependencies: - '@nuxt/test-utils': 3.13.1(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.4.5)))(@vue/test-utils@2.4.6)(h3@1.11.1)(happy-dom@14.12.0)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.44.1)(vite@5.3.1(@types/node@20.14.5)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.5)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.3(vue@3.4.29(typescript@5.4.5)))(vue@3.4.29(typescript@5.4.5)) + '@nuxt/test-utils': 3.13.1(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.4.5)))(@vue/test-utils@2.4.6)(h3@1.11.1)(happy-dom@14.12.0)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.44.1)(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.6)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.3(vue@3.4.29(typescript@5.4.5)))(vue@3.4.29(typescript@5.4.5)) transitivePeerDependencies: - '@cucumber/cucumber' - '@jest/globals' @@ -15301,7 +15301,7 @@ snapshots: - supports-color - terser - vitest@1.6.0(@types/node@20.14.5)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0): + vitest@1.6.0(@types/node@20.14.6)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0): dependencies: '@vitest/expect': 1.6.0 '@vitest/runner': 1.6.0 @@ -15320,11 +15320,11 @@ snapshots: strip-literal: 2.1.0 tinybench: 2.5.1 tinypool: 0.8.4 - vite: 5.3.1(@types/node@20.14.5)(sass@1.69.4)(terser@5.27.0) - vite-node: 1.6.0(@types/node@20.14.5)(sass@1.69.4)(terser@5.27.0) + vite: 5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0) + vite-node: 1.6.0(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0) why-is-node-running: 2.2.2 optionalDependencies: - '@types/node': 20.14.5 + '@types/node': 20.14.6 happy-dom: 14.12.0 transitivePeerDependencies: - less @@ -15385,12 +15385,12 @@ snapshots: transitivePeerDependencies: - supports-color - vue-loader@17.4.2(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.4.5))(webpack@5.92.0): + vue-loader@17.4.2(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.4.5))(webpack@5.92.1): dependencies: chalk: 4.1.2 hash-sum: 2.0.0 watchpack: 2.4.1 - webpack: 5.92.0 + webpack: 5.92.1 optionalDependencies: '@vue/compiler-sfc': 3.4.29 vue: 3.4.29(typescript@5.4.5) @@ -15466,7 +15466,7 @@ snapshots: - bufferutil - utf-8-validate - webpack-dev-middleware@7.2.1(webpack@5.92.0): + webpack-dev-middleware@7.2.1(webpack@5.92.1): dependencies: colorette: 2.0.20 memfs: 4.9.2 @@ -15475,7 +15475,7 @@ snapshots: range-parser: 1.2.1 schema-utils: 4.2.0 optionalDependencies: - webpack: 5.92.0 + webpack: 5.92.1 webpack-hot-middleware@2.26.1: dependencies: @@ -15492,7 +15492,7 @@ snapshots: webpack-virtual-modules@0.6.2: {} - webpack@5.92.0: + webpack@5.92.1: dependencies: '@types/eslint-scope': 3.7.6 '@types/estree': 1.0.5 @@ -15501,7 +15501,7 @@ snapshots: '@webassemblyjs/wasm-parser': 1.12.1 acorn: 8.12.0 acorn-import-attributes: 1.9.5(acorn@8.12.0) - browserslist: 4.23.0 + browserslist: 4.23.1 chrome-trace-event: 1.0.3 enhanced-resolve: 5.17.0 es-module-lexer: 1.3.1 @@ -15515,7 +15515,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.10(webpack@5.92.0) + terser-webpack-plugin: 5.3.10(webpack@5.92.1) watchpack: 2.4.1 webpack-sources: 3.2.3 transitivePeerDependencies: @@ -15523,7 +15523,7 @@ snapshots: - esbuild - uglify-js - webpack@5.92.0(esbuild@0.21.5): + webpack@5.92.1(esbuild@0.21.5): dependencies: '@types/eslint-scope': 3.7.6 '@types/estree': 1.0.5 @@ -15532,7 +15532,7 @@ snapshots: '@webassemblyjs/wasm-parser': 1.12.1 acorn: 8.12.0 acorn-import-attributes: 1.9.5(acorn@8.12.0) - browserslist: 4.23.0 + browserslist: 4.23.1 chrome-trace-event: 1.0.3 enhanced-resolve: 5.17.0 es-module-lexer: 1.3.1 @@ -15546,7 +15546,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.10(esbuild@0.21.5)(webpack@5.92.0(esbuild@0.21.5)) + terser-webpack-plugin: 5.3.10(esbuild@0.21.5)(webpack@5.92.1(esbuild@0.21.5)) watchpack: 2.4.1 webpack-sources: 3.2.3 transitivePeerDependencies: @@ -15554,7 +15554,7 @@ snapshots: - esbuild - uglify-js - webpackbar@6.0.1(webpack@5.92.0): + webpackbar@6.0.1(webpack@5.92.1): dependencies: ansi-escapes: 4.3.2 chalk: 4.1.2 @@ -15563,7 +15563,7 @@ snapshots: markdown-table: 2.0.0 pretty-time: 1.1.0 std-env: 3.7.0 - webpack: 5.92.0 + webpack: 5.92.1 wrap-ansi: 7.0.0 whatwg-mimetype@3.0.0: {} From f2868f8c72320009e4502f97456b13f77c6b0322 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Thu, 20 Jun 2024 20:26:46 +0100 Subject: [PATCH 016/119] fix(nuxt): resolve routes when `navigateTo` called with `open` (#27742) --- packages/nuxt/src/app/components/nuxt-link.ts | 8 ++------ packages/nuxt/src/app/composables/router.ts | 11 +++++++++-- packages/nuxt/test/nuxt-link.test.ts | 6 +++++- 3 files changed, 16 insertions(+), 9 deletions(-) diff --git a/packages/nuxt/src/app/components/nuxt-link.ts b/packages/nuxt/src/app/components/nuxt-link.ts index e4fa62d8a4..a126078b8a 100644 --- a/packages/nuxt/src/app/components/nuxt-link.ts +++ b/packages/nuxt/src/app/components/nuxt-link.ts @@ -8,10 +8,10 @@ import type { } from 'vue' import { computed, defineComponent, h, inject, onBeforeUnmount, onMounted, provide, ref, resolveComponent } from 'vue' import type { RouteLocation, RouteLocationRaw, Router, RouterLink, RouterLinkProps, useLink } from '#vue-router' -import { hasProtocol, joinURL, parseQuery, withQuery, withTrailingSlash, withoutTrailingSlash } from 'ufo' +import { hasProtocol, joinURL, parseQuery, withTrailingSlash, withoutTrailingSlash } from 'ufo' import { preloadRouteComponents } from '../composables/preload' import { onNuxtReady } from '../composables/ready' -import { navigateTo, useRouter } from '../composables/router' +import { navigateTo, resolveRouteObject, useRouter } from '../composables/router' import { useNuxtApp, useRuntimeConfig } from '../nuxt' import { cancelIdleCallback, requestIdleCallback } from '../compat/idle-callback' @@ -495,7 +495,3 @@ function isSlowConnection () { if (cn && (cn.saveData || /2g/.test(cn.effectiveType))) { return true } return false } - -function resolveRouteObject (to: Exclude) { - return withQuery(to.path || '', to.query || {}) + (to.hash ? '#' + to.hash : '') -} diff --git a/packages/nuxt/src/app/composables/router.ts b/packages/nuxt/src/app/composables/router.ts index d6395e5832..fad568a885 100644 --- a/packages/nuxt/src/app/composables/router.ts +++ b/packages/nuxt/src/app/composables/router.ts @@ -1,6 +1,6 @@ import { getCurrentInstance, hasInjectionContext, inject, onScopeDispose } from 'vue' import type { Ref } from 'vue' -import type { NavigationFailure, NavigationGuard, RouteLocationNormalized, RouteLocationPathRaw, RouteLocationRaw, Router, useRoute as _useRoute, useRouter as _useRouter } from '#vue-router' +import type { NavigationFailure, NavigationGuard, RouteLocationNormalized, RouteLocationRaw, Router, useRoute as _useRoute, useRouter as _useRouter } from '#vue-router' import { sanitizeStatusCode } from 'h3' import { hasProtocol, isScriptProtocol, joinURL, withQuery } from 'ufo' @@ -120,7 +120,7 @@ export const navigateTo = (to: RouteLocationRaw | undefined | null, options?: Na to = '/' } - const toPath = typeof to === 'string' ? to : (withQuery((to as RouteLocationPathRaw).path || '/', to.query || {}) + (to.hash || '')) + const toPath = typeof to === 'string' ? to : 'path' in to ? resolveRouteObject(to) : useRouter().resolve(to).href // Early open handler if (import.meta.client && options?.open) { @@ -252,3 +252,10 @@ export const setPageLayout = (layout: unknown extends PageMeta['layout'] ? strin useRoute().meta.layout = layout as Exclude } } + +/** + * @internal + */ +export function resolveRouteObject (to: Exclude) { + return withQuery(to.path || '', to.query || {}) + (to.hash || '') +} diff --git a/packages/nuxt/test/nuxt-link.test.ts b/packages/nuxt/test/nuxt-link.test.ts index a712d0f267..40e714045d 100644 --- a/packages/nuxt/test/nuxt-link.test.ts +++ b/packages/nuxt/test/nuxt-link.test.ts @@ -1,5 +1,6 @@ import { describe, expect, it, vi } from 'vitest' -import type { RouteLocation } from 'vue-router' +import type { RouteLocation, RouteLocationRaw } from 'vue-router' +import { withQuery } from 'ufo' import type { NuxtLinkOptions, NuxtLinkProps } from '../src/app/components/nuxt-link' import { defineNuxtLink } from '../src/app/components/nuxt-link' import { useRuntimeConfig } from '../src/app/nuxt' @@ -25,6 +26,9 @@ vi.mock('vue', async () => { // Mocks Nuxt `useRouter()` vi.mock('../src/app/composables/router', () => ({ + resolveRouteObject (to: Exclude) { + return withQuery(to.path || '', to.query || {}) + (to.hash || '') + }, useRouter: () => ({ resolve: (route: string | RouteLocation & { to?: string }): Partial & { href?: string } => { if (typeof route === 'string') { From b279849631e6de73119d0682383befb8fa5d01f9 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Thu, 20 Jun 2024 19:57:05 +0100 Subject: [PATCH 017/119] fix(nuxt): handle subpaths more correctly --- packages/nuxt/src/core/nuxt.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/nuxt/src/core/nuxt.ts b/packages/nuxt/src/core/nuxt.ts index a121ab8442..8952a1f7df 100644 --- a/packages/nuxt/src/core/nuxt.ts +++ b/packages/nuxt/src/core/nuxt.ts @@ -99,12 +99,12 @@ async function initNuxt (nuxt: Nuxt) { const packageJSON = await readPackageJSON(nuxt.options.rootDir).catch(() => ({}) as PackageJson) const dependencies = new Set([...Object.keys(packageJSON.dependencies || {}), ...Object.keys(packageJSON.devDependencies || {})]) const paths = Object.fromEntries(await Promise.all(coreTypePackages.map(async (pkg) => { - // ignore packages that exist in `package.json` as these can be resolved by TypeScript - if (dependencies.has(pkg) && !(pkg in nightlies)) { return [] } - const [_pkg = pkg, _subpath] = /^[^@]+\//.test(pkg) ? pkg.split('/') : [pkg] const subpath = _subpath ? '/' + _subpath : '' + // ignore packages that exist in `package.json` as these can be resolved by TypeScript + if (dependencies.has(_pkg) && !(_pkg in nightlies)) { return [] } + async function resolveTypePath (path: string) { try { const r = await _resolvePath(path, { url: nuxt.options.modulesDir, conditions: ['types', 'import', 'require'] }) @@ -120,14 +120,14 @@ async function initNuxt (nuxt: Nuxt) { // deduplicate types for nightly releases if (_pkg in nightlies) { - const nightly = nightlies[pkg as keyof typeof nightlies] + const nightly = nightlies[_pkg as keyof typeof nightlies] const path = await resolveTypePath(nightly + subpath) if (path) { return [[pkg, [path]], [nightly + subpath, [path]]] } } - const path = await resolveTypePath(pkg + subpath) + const path = await resolveTypePath(_pkg + subpath) if (path) { return [[pkg, [path]]] } From 97f37880092b52a35ec33da4918641779783137a Mon Sep 17 00:00:00 2001 From: Maxime Pauvert Date: Fri, 21 Jun 2024 00:18:00 +0200 Subject: [PATCH 018/119] docs: add `refreshCookie` on `useCookie` doc page (#27744) --- docs/3.api/2.composables/use-cookie.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/docs/3.api/2.composables/use-cookie.md b/docs/3.api/2.composables/use-cookie.md index 804d3e2784..6b06e3a421 100644 --- a/docs/3.api/2.composables/use-cookie.md +++ b/docs/3.api/2.composables/use-cookie.md @@ -45,6 +45,10 @@ counter.value = counter.value || Math.round(Math.random() * 1000) :link-example{to="/docs/examples/advanced/use-cookie"} +::note +Refresh `useCookie` values manually when a cookie has changed with [`refreshCookie`](/api/utils/refresh-cookie). +:: + ## Options Cookie composable accepts several options which let you modify the behavior of cookies. @@ -148,6 +152,10 @@ Specifies the `boolean` or `string` value for [watch](https://vuejs.org/api/reac - `shallow` - Will watch cookie ref data changes for only top level properties - `false` - Will not watch cookie ref data changes. +::note +Refresh `useCookie` values manually when a cookie has changed with [`refreshCookie`](/api/utils/refresh-cookie). +:: + **Example 1:** ```vue From b026797d7b0958c164d0b939808cb28ba8f9d7d4 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Thu, 20 Jun 2024 23:18:25 +0100 Subject: [PATCH 019/119] feat(nuxt): await custom `routes` function in `router.options` (#27644) --- packages/nuxt/src/pages/build.d.ts | 6 ++++++ packages/nuxt/src/pages/runtime/plugins/prerender.server.ts | 1 - packages/nuxt/src/pages/runtime/plugins/router.ts | 3 +-- packages/schema/src/types/router.ts | 2 +- 4 files changed, 8 insertions(+), 4 deletions(-) create mode 100644 packages/nuxt/src/pages/build.d.ts diff --git a/packages/nuxt/src/pages/build.d.ts b/packages/nuxt/src/pages/build.d.ts new file mode 100644 index 0000000000..4a17fca4e5 --- /dev/null +++ b/packages/nuxt/src/pages/build.d.ts @@ -0,0 +1,6 @@ +declare module '#build/router.options' { + import type { RouterOptions } from '@nuxt/schema' + + const _default: RouterOptions + export default _default +} diff --git a/packages/nuxt/src/pages/runtime/plugins/prerender.server.ts b/packages/nuxt/src/pages/runtime/plugins/prerender.server.ts index a8cf539151..9a191f9dce 100644 --- a/packages/nuxt/src/pages/runtime/plugins/prerender.server.ts +++ b/packages/nuxt/src/pages/runtime/plugins/prerender.server.ts @@ -5,7 +5,6 @@ import { defineNuxtPlugin } from '#app/nuxt' import { prerenderRoutes } from '#app/composables/ssr' // @ts-expect-error virtual file import _routes from '#build/routes' -// @ts-expect-error virtual file import routerOptions from '#build/router.options' let routes: string[] diff --git a/packages/nuxt/src/pages/runtime/plugins/router.ts b/packages/nuxt/src/pages/runtime/plugins/router.ts index fccd8ff78a..f284a80d29 100644 --- a/packages/nuxt/src/pages/runtime/plugins/router.ts +++ b/packages/nuxt/src/pages/runtime/plugins/router.ts @@ -24,7 +24,6 @@ import { navigateTo } from '#app/composables/router' import { appManifest as isAppManifestEnabled } from '#build/nuxt.config.mjs' // @ts-expect-error virtual file import _routes from '#build/routes' -// @ts-expect-error virtual file import routerOptions from '#build/router.options' // @ts-expect-error virtual file import { globalMiddleware, namedMiddleware } from '#build/middleware' @@ -67,7 +66,7 @@ const plugin: Plugin<{ router: Router }> = defineNuxtPlugin({ : createMemoryHistory(routerBase) ) - const routes = routerOptions.routes?.(_routes) ?? _routes + const routes = routerOptions.routes ? await routerOptions.routes(_routes) ?? _routes : _routes let startPosition: Parameters[2] | null diff --git a/packages/schema/src/types/router.ts b/packages/schema/src/types/router.ts index 76abc6acb8..c7cb0ce850 100644 --- a/packages/schema/src/types/router.ts +++ b/packages/schema/src/types/router.ts @@ -2,7 +2,7 @@ import type { RouterHistory, RouterOptions as _RouterOptions } from 'vue-router' export type RouterOptions = Partial> & { history?: (baseURL?: string) => RouterHistory - routes?: (_routes: _RouterOptions['routes']) => _RouterOptions['routes'] + routes?: (_routes: _RouterOptions['routes']) => _RouterOptions['routes'] | Promise<_RouterOptions['routes']> hashMode?: boolean scrollBehaviorType?: 'smooth' | 'auto' } From 5e765874901d49ff258b3aa45a2305715a050419 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Thu, 20 Jun 2024 23:18:57 +0100 Subject: [PATCH 020/119] fix(nuxt): delay navigation until user input is acknowledged (#27743) --- .../app/plugins/navigation-repaint.client.ts | 19 +++++++++++++++++++ packages/nuxt/src/core/nuxt.ts | 6 ++++++ packages/nuxt/test/app.test.ts | 4 ++++ packages/schema/src/config/experimental.ts | 8 ++++++++ 4 files changed, 37 insertions(+) create mode 100644 packages/nuxt/src/app/plugins/navigation-repaint.client.ts diff --git a/packages/nuxt/src/app/plugins/navigation-repaint.client.ts b/packages/nuxt/src/app/plugins/navigation-repaint.client.ts new file mode 100644 index 0000000000..30f3a69cf1 --- /dev/null +++ b/packages/nuxt/src/app/plugins/navigation-repaint.client.ts @@ -0,0 +1,19 @@ +import { defineNuxtPlugin } from '../nuxt' +import { useRouter } from '../composables' + +export default defineNuxtPlugin(() => { + useRouter().beforeResolve(async () => { + /** + * This gives an opportunity for the browser to repaint, acknowledging user interaction. + * It can reduce INP when navigating on prerendered routes. + * + * @see https://github.com/nuxt/nuxt/issues/26271#issuecomment-2178582037 + * @see https://vercel.com/blog/demystifying-inp-new-tools-and-actionable-insights + */ + await new Promise((resolve) => { + // Ensure we always resolve, even if the animation frame never fires + setTimeout(resolve, 100) + requestAnimationFrame(() => { setTimeout(resolve, 0) }) + }) + }) +}) diff --git a/packages/nuxt/src/core/nuxt.ts b/packages/nuxt/src/core/nuxt.ts index 8952a1f7df..d5fe6f8740 100644 --- a/packages/nuxt/src/core/nuxt.ts +++ b/packages/nuxt/src/core/nuxt.ts @@ -532,6 +532,12 @@ async function initNuxt (nuxt: Nuxt) { } } + if (nuxt.options.experimental.navigationRepaint) { + addPlugin({ + src: resolve(nuxt.options.appDir, 'plugins/navigation-repaint.client'), + }) + } + nuxt.hooks.hook('builder:watch', (event, relativePath) => { const path = resolve(nuxt.options.srcDir, relativePath) // Local module patterns diff --git a/packages/nuxt/test/app.test.ts b/packages/nuxt/test/app.test.ts index 2e66d85bdf..c7424e95ad 100644 --- a/packages/nuxt/test/app.test.ts +++ b/packages/nuxt/test/app.test.ts @@ -43,6 +43,10 @@ describe('resolveApp', () => { "mode": "client", "src": "/packages/nuxt/src/app/plugins/payload.client.ts", }, + { + "mode": "client", + "src": "/packages/nuxt/src/app/plugins/navigation-repaint.client.ts", + }, { "mode": "client", "src": "/packages/nuxt/src/app/plugins/check-outdated-build.client.ts", diff --git a/packages/schema/src/config/experimental.ts b/packages/schema/src/config/experimental.ts index c1d903ba5d..a9b9b26dcd 100644 --- a/packages/schema/src/config/experimental.ts +++ b/packages/schema/src/config/experimental.ts @@ -417,5 +417,13 @@ export default defineUntypedSchema({ * @type {boolean} */ clientNodeCompat: false, + + /** + * Wait for a single animation frame before navigation, which gives an opportunity + * for the browser to repaint, acknowledging user interaction. + * + * It can reduce INP when navigating on prerendered routes. + */ + navigationRepaint: true, }, }) From a4fc866d1c315985afe5b1935185e636beebb2d7 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Thu, 20 Jun 2024 23:19:13 +0100 Subject: [PATCH 021/119] fix(nuxt): resolve aliases used in nitro plugin paths (#27741) --- packages/nuxt/src/core/nitro.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/nuxt/src/core/nitro.ts b/packages/nuxt/src/core/nitro.ts index 0628188db6..c8bcab3ede 100644 --- a/packages/nuxt/src/core/nitro.ts +++ b/packages/nuxt/src/core/nitro.ts @@ -6,7 +6,7 @@ import { createRouter as createRadixRouter, exportMatcher, toRouteMatcher } from import { joinURL, withTrailingSlash } from 'ufo' import { build, copyPublicAssets, createDevServer, createNitro, prepare, prerender, scanHandlers, writeTypes } from 'nitropack' import type { Nitro, NitroConfig, NitroOptions } from 'nitropack' -import { findPath, logger, resolveIgnorePatterns, resolveNuxtModule, resolvePath } from '@nuxt/kit' +import { findPath, logger, resolveAlias, resolveIgnorePatterns, resolveNuxtModule, resolvePath } from '@nuxt/kit' import escapeRE from 'escape-string-regexp' import { defu } from 'defu' import fsExtra from 'fs-extra' @@ -218,6 +218,9 @@ export async function initNitro (nuxt: Nuxt & { _nitro?: Nitro }) { nitroConfig.srcDir = resolve(nuxt.options.rootDir, nuxt.options.srcDir, nitroConfig.srcDir!) nitroConfig.ignore = [...(nitroConfig.ignore || []), ...resolveIgnorePatterns(nitroConfig.srcDir), `!${join(nuxt.options.buildDir, 'dist/client', nuxt.options.app.buildAssetsDir, '**/*')}`] + // Resolve aliases in user-provided input - so `~/server/test` will work + nitroConfig.plugins = nitroConfig.plugins?.map(plugin => plugin ? resolveAlias(plugin, nuxt.options.alias) : plugin) + // Add app manifest handler and prerender configuration if (nuxt.options.experimental.appManifest) { const buildId = nuxt.options.runtimeConfig.app.buildId ||= nuxt.options.buildId From 2475ee81cce7584b64530e70817f4d565a4337da Mon Sep 17 00:00:00 2001 From: Lucie <25330882+lihbr@users.noreply.github.com> Date: Fri, 21 Jun 2024 00:20:49 +0200 Subject: [PATCH 022/119] feat(kit): add new `isNuxtMajorVersion` compatibility util (#27579) --- packages/kit/src/compatibility.ts | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/packages/kit/src/compatibility.ts b/packages/kit/src/compatibility.ts index 64f39b9549..8d610041d2 100644 --- a/packages/kit/src/compatibility.ts +++ b/packages/kit/src/compatibility.ts @@ -81,19 +81,26 @@ export async function hasNuxtCompatibility (constraints: NuxtCompatibility, nuxt } /** - * Check if current nuxt instance is version 2 legacy + * Check if current Nuxt instance is of specified major version */ -export function isNuxt2 (nuxt: Nuxt = useNuxt()) { +export function isNuxtMajorVersion (majorVersion: 2 | 3 | 4, nuxt: Nuxt = useNuxt()) { const version = getNuxtVersion(nuxt) - return version[0] === '2' && version[1] === '.' + + return version[0] === majorVersion.toString() && version[1] === '.' } /** - * Check if current nuxt instance is version 3 + * @deprecated Use `isNuxtMajorVersion(2, nuxt)` instead. This may be removed in \@nuxt/kit v5 or a future major version. + */ +export function isNuxt2 (nuxt: Nuxt = useNuxt()) { + return isNuxtMajorVersion(2, nuxt) +} + +/** + * @deprecated Use `isNuxtMajorVersion(3, nuxt)` instead. This may be removed in \@nuxt/kit v5 or a future major version. */ export function isNuxt3 (nuxt: Nuxt = useNuxt()) { - const version = getNuxtVersion(nuxt) - return version[0] === '3' && version[1] === '.' + return isNuxtMajorVersion(3, nuxt) } /** From ae12d72a4001c5e893be019cc475a243b3b57af4 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Thu, 20 Jun 2024 23:26:06 +0100 Subject: [PATCH 023/119] fix(schema): do not use full path assets/public aliases --- packages/schema/src/config/common.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/schema/src/config/common.ts b/packages/schema/src/config/common.ts index aebb01b081..a8d50cde5a 100644 --- a/packages/schema/src/config/common.ts +++ b/packages/schema/src/config/common.ts @@ -1,7 +1,7 @@ import { existsSync } from 'node:fs' import { readdir } from 'node:fs/promises' import { defineUntypedSchema } from 'untyped' -import { join, relative, resolve } from 'pathe' +import { basename, join, relative, resolve } from 'pathe' import { isDebug, isDevelopment, isTest } from 'std-env' import { defu } from 'defu' import { findWorkspaceDir } from 'pkg-types' @@ -420,8 +420,8 @@ export default defineUntypedSchema({ '@': srcDir, '~~': rootDir, '@@': rootDir, - [assetsDir]: join(srcDir, assetsDir), - [publicDir]: join(srcDir, publicDir), + [basename(assetsDir)]: join(srcDir, assetsDir), + [basename(publicDir)]: join(srcDir, publicDir), ...val, } }, From 69f09fbae11f150472789313155668075981de7a Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Fri, 21 Jun 2024 07:01:40 +0100 Subject: [PATCH 024/119] fix(nuxt)!: remove old experimental options (#27749) --- .../1.experimental-features.md | 52 --------------- packages/nuxt/src/components/module.ts | 4 +- packages/nuxt/src/core/nitro.ts | 9 --- packages/nuxt/src/core/schema.ts | 3 - packages/nuxt/src/head/module.ts | 5 -- .../runtime/plugins/vueuse-head-polyfill.ts | 10 --- packages/schema/src/config/experimental.ts | 65 ------------------- 7 files changed, 2 insertions(+), 146 deletions(-) delete mode 100644 packages/nuxt/src/head/runtime/plugins/vueuse-head-polyfill.ts diff --git a/docs/2.guide/3.going-further/1.experimental-features.md b/docs/2.guide/3.going-further/1.experimental-features.md index 9105b2ebfa..fd9c065baf 100644 --- a/docs/2.guide/3.going-further/1.experimental-features.md +++ b/docs/2.guide/3.going-further/1.experimental-features.md @@ -57,20 +57,6 @@ export default defineNuxtConfig({ This feature will likely be removed in a near future. :: -## treeshakeClientOnly - -Tree shakes contents of client-only components from server bundle. - -*Enabled by default.* - -```ts twoslash [nuxt.config.ts] -export default defineNuxtConfig({ - experimental: { - treeshakeClientOnly: true - } -}) -``` - ## emitRouteChunkError Emits `app:chunkError` hook when there is an error loading vite/webpack chunks. Default behavior is to perform a hard reload of the new route when a chunk fails to load. @@ -238,44 +224,6 @@ export default defineNuxtConfig({ You can follow the server components roadmap on GitHub. :: -## configSchema - -Enables config schema support. - -*Enabled by default.* - -```ts twoslash [nuxt.config.ts] -export default defineNuxtConfig({ - experimental: { - configSchema: true - } -}) -``` - -## polyfillVueUseHead - -Adds a compatibility layer for modules, plugins, or user code relying on the old `@vueuse/head` API. - -```ts twoslash [nuxt.config.ts] -export default defineNuxtConfig({ - experimental: { - polyfillVueUseHead: false - } -}) -``` - -## respectNoSSRHeader - -Allow disabling Nuxt SSR responses by setting the `x-nuxt-no-ssr` header. - -```ts twoslash [nuxt.config.ts] -export default defineNuxtConfig({ - experimental: { - respectNoSSRHeader: false - } -}) -``` - ## localLayerAliases Resolve `~`, `~~`, `@` and `@@` aliases located within layers with respect to their layer source and root directories. diff --git a/packages/nuxt/src/components/module.ts b/packages/nuxt/src/components/module.ts index 24fe7f3fbc..649d7c3c80 100644 --- a/packages/nuxt/src/components/module.ts +++ b/packages/nuxt/src/components/module.ts @@ -216,7 +216,7 @@ export default defineNuxtModule({ const mode = isClient ? 'client' : 'server' config.plugins = config.plugins || [] - if (nuxt.options.experimental.treeshakeClientOnly && isServer) { + if (isServer) { config.plugins.push(TreeShakeTemplatePlugin.vite({ sourcemap: !!nuxt.options.sourcemap[mode], getComponents, @@ -285,7 +285,7 @@ export default defineNuxtModule({ configs.forEach((config) => { const mode = config.name === 'client' ? 'client' : 'server' config.plugins = config.plugins || [] - if (nuxt.options.experimental.treeshakeClientOnly && mode === 'server') { + if (mode === 'server') { config.plugins.push(TreeShakeTemplatePlugin.webpack({ sourcemap: !!nuxt.options.sourcemap[mode], getComponents, diff --git a/packages/nuxt/src/core/nitro.ts b/packages/nuxt/src/core/nitro.ts index c8bcab3ede..639072ba0d 100644 --- a/packages/nuxt/src/core/nitro.ts +++ b/packages/nuxt/src/core/nitro.ts @@ -343,15 +343,6 @@ export async function initNitro (nuxt: Nuxt & { _nitro?: Nitro }) { } } - // Add backward-compatible middleware to respect `x-nuxt-no-ssr` header - if (nuxt.options.experimental.respectNoSSRHeader) { - nitroConfig.handlers = nitroConfig.handlers || [] - nitroConfig.handlers.push({ - handler: resolve(distDir, 'core/runtime/nitro/no-ssr'), - middleware: true, - }) - } - // Register nuxt protection patterns nitroConfig.rollupConfig!.plugins = await nitroConfig.rollupConfig!.plugins || [] nitroConfig.rollupConfig!.plugins = toArray(nitroConfig.rollupConfig!.plugins) diff --git a/packages/nuxt/src/core/schema.ts b/packages/nuxt/src/core/schema.ts index f68a62848b..b403e4d269 100644 --- a/packages/nuxt/src/core/schema.ts +++ b/packages/nuxt/src/core/schema.ts @@ -20,9 +20,6 @@ export default defineNuxtModule({ name: 'nuxt-config-schema', }, async setup (_, nuxt) { - if (!nuxt.options.experimental.configSchema) { - return - } const resolver = createResolver(import.meta.url) // Initialize untyped/jiti loader diff --git a/packages/nuxt/src/head/module.ts b/packages/nuxt/src/head/module.ts index be319183c8..e22ee47092 100644 --- a/packages/nuxt/src/head/module.ts +++ b/packages/nuxt/src/head/module.ts @@ -52,11 +52,6 @@ export default defineNuxtModule({ // Opt-out feature allowing dependencies using @vueuse/head to work const unheadVue = await tryResolveModule('@unhead/vue', nuxt.options.modulesDir) || '@unhead/vue' - if (nuxt.options.experimental.polyfillVueUseHead) { - // backwards compatibility - nuxt.options.alias['@vueuse/head'] = unheadVue - addPlugin({ src: resolve(runtimeDir, 'plugins/vueuse-head-polyfill') }) - } addTemplate({ filename: 'unhead-plugins.mjs', diff --git a/packages/nuxt/src/head/runtime/plugins/vueuse-head-polyfill.ts b/packages/nuxt/src/head/runtime/plugins/vueuse-head-polyfill.ts deleted file mode 100644 index 971806bf13..0000000000 --- a/packages/nuxt/src/head/runtime/plugins/vueuse-head-polyfill.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { polyfillAsVueUseHead } from '@unhead/vue/polyfill' -import { defineNuxtPlugin } from '#app/nuxt' - -export default defineNuxtPlugin({ - name: 'nuxt:vueuse-head-polyfill', - setup (nuxtApp) { - // avoid breaking ecosystem dependencies using low-level @vueuse/head APIs - polyfillAsVueUseHead(nuxtApp.vueApp._context.provides.usehead) - }, -}) diff --git a/packages/schema/src/config/experimental.ts b/packages/schema/src/config/experimental.ts index a9b9b26dcd..69be571683 100644 --- a/packages/schema/src/config/experimental.ts +++ b/packages/schema/src/config/experimental.ts @@ -106,22 +106,6 @@ export default defineUntypedSchema({ */ externalVue: true, - /** - * Tree shakes contents of client-only components from server bundle. - * @see [Nuxt PR #5750](https://github.com/nuxt/framework/pull/5750) - * @deprecated This option will no longer be configurable in Nuxt v4 - */ - treeshakeClientOnly: { - async $resolve (val, get) { - const isV4 = ((await get('future') as Record).compatibilityVersion === 4) - if (isV4 && val === false) { - console.warn('Enabling `experimental.treeshakeClientOnly` in v4 compatibility mode as it will no longer be configurable in Nuxt v4.') - return true - } - return val ?? true - }, - }, - /** * Emit `app:chunkError` hook when there is an error loading vite/webpack * chunks. @@ -226,55 +210,6 @@ export default defineUntypedSchema({ }, }, - /** - * Config schema support - * @see [Nuxt Issue #15592](https://github.com/nuxt/nuxt/issues/15592) - * @deprecated This option will no longer be configurable in Nuxt v4 - */ - configSchema: { - async $resolve (val, get) { - const isV4 = ((await get('future') as Record).compatibilityVersion === 4) - if (isV4 && val === false) { - console.warn('Enabling `experimental.configSchema` in v4 compatibility mode as it will no longer be configurable in Nuxt v4.') - return true - } - return val ?? true - }, - }, - - /** - * Whether or not to add a compatibility layer for modules, plugins or user code relying on the old - * `@vueuse/head` API. - * - * This is disabled to reduce the client-side bundle by ~0.5kb. - * @deprecated This feature will be removed in Nuxt v4. - */ - polyfillVueUseHead: { - async $resolve (val, get) { - const isV4 = ((await get('future') as Record).compatibilityVersion === 4) - if (isV4 && val === true) { - console.warn('Disabling `experimental.polyfillVueUseHead` in v4 compatibility mode as it will no longer be configurable in Nuxt v4.') - return false - } - return val ?? false - }, - }, - - /** - * Allow disabling Nuxt SSR responses by setting the `x-nuxt-no-ssr` header. - * @deprecated This feature will be removed in Nuxt v4. - */ - respectNoSSRHeader: { - async $resolve (val, get) { - const isV4 = ((await get('future') as Record).compatibilityVersion === 4) - if (isV4 && val === true) { - console.warn('Disabling `experimental.respectNoSSRHeader` in v4 compatibility mode as it will no longer be configurable in Nuxt v4.') - return false - } - return val ?? false - }, - }, - /** Resolve `~`, `~~`, `@` and `@@` aliases located within layers with respect to their layer source and root directories. */ localLayerAliases: true, From 3a59c02cfd048093d8b076cd18c67d65dc95755e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 21 Jun 2024 09:33:00 +0100 Subject: [PATCH 025/119] chore(deps): update all non-major dependencies (main) (#27733) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Daniel Roe --- package.json | 10 +- packages/nuxt/package.json | 8 +- packages/schema/package.json | 4 +- packages/vite/package.json | 2 +- packages/webpack/package.json | 2 +- pnpm-lock.yaml | 999 ++++++++++++++-------------------- test/bundle.test.ts | 4 +- 7 files changed, 417 insertions(+), 612 deletions(-) diff --git a/package.json b/package.json index 0f59b33e78..931e5aeace 100644 --- a/package.json +++ b/package.json @@ -54,9 +54,9 @@ "@testing-library/vue": "8.1.0", "@types/eslint__js": "8.42.3", "@types/fs-extra": "11.0.4", - "@types/node": "20.14.6", + "@types/node": "20.14.7", "@types/semver": "7.5.8", - "@unhead/schema": "1.9.13", + "@unhead/schema": "1.9.14", "@vitejs/plugin-vue": "5.0.4", "@vitest/coverage-v8": "1.6.0", "@vue/test-utils": "2.4.6", @@ -71,8 +71,8 @@ "execa": "9.2.0", "fs-extra": "11.2.0", "globby": "14.0.1", - "h3": "1.11.1", - "happy-dom": "14.12.0", + "h3": "1.12.0", + "happy-dom": "14.12.3", "jiti": "1.21.6", "markdownlint-cli": "0.41.0", "nitropack": "2.9.6", @@ -85,7 +85,7 @@ "rimraf": "5.0.7", "semver": "7.6.2", "std-env": "3.7.0", - "typescript": "5.4.5", + "typescript": "5.5.2", "ufo": "1.5.3", "vitest": "1.6.0", "vitest-environment-nuxt": "1.0.0", diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index ea9939edf9..27a9330c23 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -65,9 +65,9 @@ "@nuxt/schema": "workspace:*", "@nuxt/telemetry": "^2.5.4", "@nuxt/vite-builder": "workspace:*", - "@unhead/dom": "^1.9.13", - "@unhead/ssr": "^1.9.13", - "@unhead/vue": "^1.9.13", + "@unhead/dom": "^1.9.14", + "@unhead/ssr": "^1.9.14", + "@unhead/vue": "^1.9.14", "@vue/shared": "^3.4.29", "acorn": "8.12.0", "c12": "^1.11.1", @@ -81,7 +81,7 @@ "estree-walker": "^3.0.3", "fs-extra": "^11.2.0", "globby": "^14.0.1", - "h3": "^1.11.1", + "h3": "^1.12.0", "hookable": "^5.5.3", "ignore": "^5.3.1", "jiti": "^1.21.6", diff --git a/packages/schema/package.json b/packages/schema/package.json index 9c8ac00cf2..2c8d188fa7 100644 --- a/packages/schema/package.json +++ b/packages/schema/package.json @@ -39,7 +39,7 @@ "@types/file-loader": "5.0.4", "@types/pug": "2.0.10", "@types/sass-loader": "8.0.8", - "@unhead/schema": "1.9.13", + "@unhead/schema": "1.9.14", "@vitejs/plugin-vue": "5.0.4", "@vitejs/plugin-vue-jsx": "4.0.0", "@vue/compiler-core": "3.4.29", @@ -47,7 +47,7 @@ "@vue/language-core": "2.0.21", "c12": "1.11.1", "esbuild-loader": "4.2.0", - "h3": "1.11.1", + "h3": "1.12.0", "ignore": "5.3.1", "nitropack": "2.9.6", "ofetch": "1.3.4", diff --git a/packages/vite/package.json b/packages/vite/package.json index cbfeab4891..d48970a161 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -48,7 +48,7 @@ "externality": "^1.0.2", "fs-extra": "^11.2.0", "get-port-please": "^3.1.2", - "h3": "^1.11.1", + "h3": "^1.12.0", "knitwork": "^1.1.0", "magic-string": "^0.30.10", "mlly": "^1.7.1", diff --git a/packages/webpack/package.json b/packages/webpack/package.json index a21e928350..e8c3846459 100644 --- a/packages/webpack/package.json +++ b/packages/webpack/package.json @@ -38,7 +38,7 @@ "file-loader": "^6.2.0", "fork-ts-checker-webpack-plugin": "^9.0.2", "fs-extra": "^11.2.0", - "h3": "^1.11.1", + "h3": "^1.12.0", "hash-sum": "^2.0.0", "lodash-es": "4.17.21", "magic-string": "^0.30.10", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 27555ee7ea..ca42f491c4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -25,19 +25,19 @@ importers: version: 9.5.0 '@nuxt/eslint-config': specifier: 0.3.13 - version: 0.3.13(eslint@9.5.0)(typescript@5.4.5) + version: 0.3.13(eslint@9.5.0)(typescript@5.5.2) '@nuxt/kit': specifier: workspace:* version: link:packages/kit '@nuxt/test-utils': specifier: 3.13.1 - version: 3.13.1(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.4.5)))(@vue/test-utils@2.4.6)(h3@1.11.1)(happy-dom@14.12.0)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.44.1)(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.6)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.3(vue@3.4.29(typescript@5.4.5)))(vue@3.4.29(typescript@5.4.5)) + version: 3.13.1(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.5.2)))(@vue/test-utils@2.4.6)(h3@1.12.0)(happy-dom@14.12.3)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.44.1)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.7)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.3(vue@3.4.29(typescript@5.5.2)))(vue@3.4.29(typescript@5.5.2)) '@nuxt/webpack-builder': specifier: workspace:* version: link:packages/webpack '@testing-library/vue': specifier: 8.1.0 - version: 8.1.0(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.4.5)) + version: 8.1.0(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.5.2)) '@types/eslint__js': specifier: 8.42.3 version: 8.42.3 @@ -45,20 +45,20 @@ importers: specifier: 11.0.4 version: 11.0.4 '@types/node': - specifier: 20.14.6 - version: 20.14.6 + specifier: 20.14.7 + version: 20.14.7 '@types/semver': specifier: 7.5.8 version: 7.5.8 '@unhead/schema': - specifier: 1.9.13 - version: 1.9.13 + specifier: 1.9.14 + version: 1.9.14 '@vitejs/plugin-vue': specifier: 5.0.4 - version: 5.0.4(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5)) + version: 5.0.4(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.5.2)) '@vitest/coverage-v8': specifier: 1.6.0 - version: 1.6.0(vitest@1.6.0(@types/node@20.14.6)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0)) + version: 1.6.0(vitest@1.6.0(@types/node@20.14.7)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0)) '@vue/test-utils': specifier: 2.4.6 version: 2.4.6 @@ -82,7 +82,7 @@ importers: version: 3.1.0 eslint-plugin-perfectionist: specifier: 2.11.0 - version: 2.11.0(eslint@9.5.0)(typescript@5.4.5)(vue-eslint-parser@9.4.2(eslint@9.5.0)) + version: 2.11.0(eslint@9.5.0)(typescript@5.5.2)(vue-eslint-parser@9.4.2(eslint@9.5.0)) eslint-typegen: specifier: 0.2.4 version: 0.2.4(eslint@9.5.0) @@ -96,11 +96,11 @@ importers: specifier: 14.0.1 version: 14.0.1 h3: - specifier: 1.11.1 - version: 1.11.1 + specifier: 1.12.0 + version: 1.12.0 happy-dom: - specifier: 14.12.0 - version: 14.12.0 + specifier: 14.12.3 + version: 14.12.3 jiti: specifier: 1.21.6 version: 1.21.6 @@ -138,26 +138,26 @@ importers: specifier: 3.7.0 version: 3.7.0 typescript: - specifier: 5.4.5 - version: 5.4.5 + specifier: 5.5.2 + version: 5.5.2 ufo: specifier: 1.5.3 version: 1.5.3 vitest: specifier: 1.6.0 - version: 1.6.0(@types/node@20.14.6)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0) + version: 1.6.0(@types/node@20.14.7)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0) vitest-environment-nuxt: specifier: 1.0.0 - version: 1.0.0(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.4.5)))(@vue/test-utils@2.4.6)(h3@1.11.1)(happy-dom@14.12.0)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.44.1)(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.6)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.3(vue@3.4.29(typescript@5.4.5)))(vue@3.4.29(typescript@5.4.5)) + version: 1.0.0(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.5.2)))(@vue/test-utils@2.4.6)(h3@1.12.0)(happy-dom@14.12.3)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.44.1)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.7)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.3(vue@3.4.29(typescript@5.5.2)))(vue@3.4.29(typescript@5.5.2)) vue: specifier: 3.4.29 - version: 3.4.29(typescript@5.4.5) + version: 3.4.29(typescript@5.5.2) vue-router: specifier: 4.3.3 - version: 4.3.3(vue@3.4.29(typescript@5.4.5)) + version: 4.3.3(vue@3.4.29(typescript@5.5.2)) vue-tsc: specifier: 2.0.21 - version: 2.0.21(typescript@5.4.5) + version: 2.0.21(typescript@5.5.2) packages/kit: dependencies: @@ -230,13 +230,13 @@ importers: version: 2.9.6(encoding@0.1.13)(magicast@0.3.4) unbuild: specifier: latest - version: 2.0.0(sass@1.69.4)(typescript@5.4.5) + version: 2.0.0(sass@1.69.4)(typescript@5.5.2) vite: specifier: 5.3.1 - version: 5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0) + version: 5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0) vitest: specifier: 1.6.0 - version: 1.6.0(@types/node@20.14.6)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0) + version: 1.6.0(@types/node@20.14.7)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0) webpack: specifier: 5.92.1 version: 5.92.1 @@ -248,7 +248,7 @@ importers: version: 2.0.2 '@nuxt/devtools': specifier: ^1.3.3 - version: 1.3.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5)) + version: 1.3.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.5.2)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.5.2)) '@nuxt/kit': specifier: workspace:* version: link:../kit @@ -263,16 +263,16 @@ importers: version: link:../vite '@types/node': specifier: ^14.18.0 || >=16.10.0 - version: 20.14.2 + version: 20.14.7 '@unhead/dom': - specifier: ^1.9.13 - version: 1.9.13 + specifier: ^1.9.14 + version: 1.9.14 '@unhead/ssr': - specifier: ^1.9.13 - version: 1.9.13 + specifier: ^1.9.14 + version: 1.9.14 '@unhead/vue': - specifier: ^1.9.13 - version: 1.9.13(vue@3.4.29(typescript@5.4.5)) + specifier: ^1.9.14 + version: 1.9.14(vue@3.4.29(typescript@5.5.2)) '@vue/shared': specifier: ^3.4.29 version: 3.4.29 @@ -313,8 +313,8 @@ importers: specifier: ^14.0.1 version: 14.0.1 h3: - specifier: ^1.11.1 - version: 1.11.1 + specifier: ^1.12.0 + version: 1.12.0 hookable: specifier: ^5.5.3 version: 5.5.3 @@ -398,7 +398,7 @@ importers: version: 1.10.1 unplugin-vue-router: specifier: ^0.7.0 - version: 0.7.0(rollup@4.18.0)(vue-router@4.3.3(vue@3.4.29(typescript@5.4.5)))(vue@3.4.29(typescript@5.4.5)) + version: 0.7.0(rollup@4.18.0)(vue-router@4.3.3(vue@3.4.29(typescript@5.5.2)))(vue@3.4.29(typescript@5.5.2)) unstorage: specifier: ^1.10.2 version: 1.10.2(ioredis@5.3.2) @@ -407,7 +407,7 @@ importers: version: 1.4.2 vue: specifier: 3.4.29 - version: 3.4.29(typescript@5.4.5) + version: 3.4.29(typescript@5.5.2) vue-bundle-renderer: specifier: ^2.1.0 version: 2.1.0 @@ -416,11 +416,11 @@ importers: version: 0.1.0 vue-router: specifier: ^4.3.3 - version: 4.3.3(vue@3.4.29(typescript@5.4.5)) + version: 4.3.3(vue@3.4.29(typescript@5.5.2)) devDependencies: '@nuxt/scripts': specifier: 0.5.1 - version: 0.5.1(@nuxt/devtools@1.3.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5)))(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(@vue/compiler-core@3.4.29)(ioredis@5.3.2)(nuxt@packages+nuxt)(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))(webpack@5.92.1(esbuild@0.21.5)) + version: 0.5.1(@nuxt/devtools@1.3.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.5.2)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.5.2)))(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(@vue/compiler-core@3.4.29)(ioredis@5.3.2)(nuxt@packages+nuxt)(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.5.2))(webpack@5.92.1(esbuild@0.21.5)) '@nuxt/ui-templates': specifier: workspace:* version: link:../ui-templates @@ -435,19 +435,19 @@ importers: version: 11.0.4 '@vitejs/plugin-vue': specifier: 5.0.4 - version: 5.0.4(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5)) + version: 5.0.4(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.5.2)) '@vue/compiler-sfc': specifier: 3.4.29 version: 3.4.29 unbuild: specifier: latest - version: 2.0.0(sass@1.69.4)(typescript@5.4.5) + version: 2.0.0(sass@1.69.4)(typescript@5.5.2) vite: specifier: 5.3.1 - version: 5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) + version: 5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0) vitest: specifier: 1.6.0 - version: 1.6.0(@types/node@20.14.2)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0) + version: 1.6.0(@types/node@20.14.7)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0) packages/schema: dependencies: @@ -504,14 +504,14 @@ importers: specifier: 8.0.8 version: 8.0.8 '@unhead/schema': - specifier: 1.9.13 - version: 1.9.13 + specifier: 1.9.14 + version: 1.9.14 '@vitejs/plugin-vue': specifier: 5.0.4 - version: 5.0.4(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5)) + version: 5.0.4(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.5.2)) '@vitejs/plugin-vue-jsx': specifier: 4.0.0 - version: 4.0.0(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5)) + version: 4.0.0(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.5.2)) '@vue/compiler-core': specifier: 3.4.29 version: 3.4.29 @@ -520,7 +520,7 @@ importers: version: 3.4.29 '@vue/language-core': specifier: 2.0.21 - version: 2.0.21(typescript@5.4.5) + version: 2.0.21(typescript@5.5.2) c12: specifier: 1.11.1 version: 1.11.1(magicast@0.3.4) @@ -528,8 +528,8 @@ importers: specifier: 4.2.0 version: 4.2.0(webpack@5.92.1) h3: - specifier: 1.11.1 - version: 1.11.1 + specifier: 1.12.0 + version: 1.12.0 ignore: specifier: 5.3.1 version: 5.3.1 @@ -541,7 +541,7 @@ importers: version: 1.3.4 unbuild: specifier: latest - version: 2.0.0(sass@1.69.4)(typescript@5.4.5) + version: 2.0.0(sass@1.69.4)(typescript@5.5.2) unctx: specifier: 2.3.1 version: 2.3.1 @@ -550,19 +550,19 @@ importers: version: 1.9.0 vite: specifier: 5.3.1 - version: 5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0) + version: 5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0) vue: specifier: 3.4.29 - version: 3.4.29(typescript@5.4.5) + version: 3.4.29(typescript@5.5.2) vue-bundle-renderer: specifier: 2.1.0 version: 2.1.0 vue-loader: specifier: 17.4.2 - version: 17.4.2(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.4.5))(webpack@5.92.1) + version: 17.4.2(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.5.2))(webpack@5.92.1) vue-router: specifier: 4.3.3 - version: 4.3.3(vue@3.4.29(typescript@5.4.5)) + version: 4.3.3(vue@3.4.29(typescript@5.5.2)) webpack: specifier: 5.92.1 version: 5.92.1 @@ -607,10 +607,10 @@ importers: version: 1.3.0 unocss: specifier: 0.61.0 - version: 0.61.0(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0)) + version: 0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0)) vite: specifier: 5.3.1 - version: 5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0) + version: 5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0) packages/vite: dependencies: @@ -622,10 +622,10 @@ importers: version: 5.0.7(rollup@4.18.0) '@vitejs/plugin-vue': specifier: ^5.0.4 - version: 5.0.4(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5)) + version: 5.0.4(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.5.2)) '@vitejs/plugin-vue-jsx': specifier: ^4.0.0 - version: 4.0.0(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5)) + version: 4.0.0(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.5.2)) autoprefixer: specifier: ^10.4.19 version: 10.4.19(postcss@8.4.38) @@ -660,8 +660,8 @@ importers: specifier: ^3.1.2 version: 3.1.2 h3: - specifier: ^1.11.1 - version: 1.11.1 + specifier: ^1.12.0 + version: 1.12.0 knitwork: specifier: ^1.1.0 version: 1.1.0 @@ -706,13 +706,13 @@ importers: version: 1.10.1 vite: specifier: 5.3.1 - version: 5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0) + version: 5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0) vite-node: specifier: ^1.6.0 - version: 1.6.0(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0) + version: 1.6.0(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0) vite-plugin-checker: specifier: ^0.6.4 - version: 0.6.4(eslint@9.5.0)(optionator@0.9.3)(typescript@5.4.5)(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0))(vue-tsc@2.0.21(typescript@5.4.5)) + version: 0.6.4(eslint@9.5.0)(optionator@0.9.3)(typescript@5.5.2)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))(vue-tsc@2.0.21(typescript@5.5.2)) vue-bundle-renderer: specifier: ^2.1.0 version: 2.1.0 @@ -734,10 +734,10 @@ importers: version: 4.18.0 unbuild: specifier: latest - version: 2.0.0(sass@1.69.4)(typescript@5.4.5) + version: 2.0.0(sass@1.69.4)(typescript@5.5.2) vue: specifier: 3.4.29 - version: 3.4.29(typescript@5.4.5) + version: 3.4.29(typescript@5.5.2) packages/webpack: dependencies: @@ -776,13 +776,13 @@ importers: version: 6.2.0(webpack@5.92.1) fork-ts-checker-webpack-plugin: specifier: ^9.0.2 - version: 9.0.2(typescript@5.4.5)(webpack@5.92.1) + version: 9.0.2(typescript@5.5.2)(webpack@5.92.1) fs-extra: specifier: ^11.2.0 version: 11.2.0 h3: - specifier: ^1.11.1 - version: 1.11.1 + specifier: ^1.12.0 + version: 1.12.0 hash-sum: specifier: ^2.0.0 version: 2.0.0 @@ -821,7 +821,7 @@ importers: version: 2.0.0 postcss-loader: specifier: ^8.1.1 - version: 8.1.1(postcss@8.4.38)(typescript@5.4.5)(webpack@5.92.1) + version: 8.1.1(postcss@8.4.38)(typescript@5.5.2)(webpack@5.92.1) postcss-url: specifier: ^10.1.3 version: 10.1.3(postcss@8.4.38) @@ -851,7 +851,7 @@ importers: version: 2.1.0 vue-loader: specifier: ^17.4.2 - version: 17.4.2(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.4.5))(webpack@5.92.1) + version: 17.4.2(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.5.2))(webpack@5.92.1) webpack: specifier: ^5.92.1 version: 5.92.1 @@ -894,16 +894,16 @@ importers: version: 2.25.9 unbuild: specifier: latest - version: 2.0.0(sass@1.69.4)(typescript@5.4.5) + version: 2.0.0(sass@1.69.4)(typescript@5.5.2) vue: specifier: 3.4.29 - version: 3.4.29(typescript@5.4.5) + version: 3.4.29(typescript@5.5.2) playground: dependencies: '@unhead/shared': specifier: latest - version: 1.9.13 + version: 1.9.14 '@vue/devtools-api': specifier: latest version: 6.6.3 @@ -915,10 +915,10 @@ importers: version: link:../packages/nuxt unhead: specifier: latest - version: 1.9.13 + version: 1.9.14 vue: specifier: 3.4.29 - version: 3.4.29(typescript@5.4.5) + version: 3.4.29(typescript@5.5.2) test/fixtures/basic: dependencies: @@ -931,10 +931,10 @@ importers: devDependencies: '@unhead/dom': specifier: latest - version: 1.9.13 + version: 1.9.14 '@unhead/shared': specifier: latest - version: 1.9.13 + version: 1.9.14 '@vue/devtools-api': specifier: latest version: 6.6.3 @@ -949,13 +949,13 @@ importers: version: 1.5.3 unhead: specifier: latest - version: 1.9.13 + version: 1.9.14 unplugin: specifier: latest version: 1.10.1 vue: specifier: 3.4.29 - version: 3.4.29(typescript@5.4.5) + version: 3.4.29(typescript@5.5.2) test/fixtures/basic-types: dependencies: @@ -968,16 +968,16 @@ importers: version: 1.3.4 unplugin-vue-router: specifier: ^0.7.0 - version: 0.7.0(rollup@4.18.0)(vue-router@4.3.3(vue@3.4.29(typescript@5.4.5)))(vue@3.4.29(typescript@5.4.5)) + version: 0.7.0(rollup@4.18.0)(vue-router@4.3.3(vue@3.4.29(typescript@5.5.2)))(vue@3.4.29(typescript@5.5.2)) vitest: specifier: 1.6.0 - version: 1.6.0(@types/node@20.14.6)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0) + version: 1.6.0(@types/node@20.14.7)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0) vue: specifier: 3.4.29 - version: 3.4.29(typescript@5.4.5) + version: 3.4.29(typescript@5.5.2) vue-router: specifier: latest - version: 4.3.3(vue@3.4.29(typescript@5.4.5)) + version: 4.3.3(vue@3.4.29(typescript@5.5.2)) test/fixtures/minimal: dependencies: @@ -986,7 +986,7 @@ importers: version: link:../../../packages/nuxt vue: specifier: 3.4.29 - version: 3.4.29(typescript@5.4.5) + version: 3.4.29(typescript@5.5.2) test/fixtures/minimal-types: dependencies: @@ -995,7 +995,7 @@ importers: version: link:../../../packages/nuxt vue: specifier: 3.4.29 - version: 3.4.29(typescript@5.4.5) + version: 3.4.29(typescript@5.5.2) test/fixtures/runtime-compiler: dependencies: @@ -1005,7 +1005,7 @@ importers: devDependencies: '@unhead/shared': specifier: latest - version: 1.9.13 + version: 1.9.14 '@vue/devtools-api': specifier: latest version: 6.6.3 @@ -1014,7 +1014,7 @@ importers: version: 3.4.29 unhead: specifier: latest - version: 1.9.13 + version: 1.9.14 test/fixtures/suspense: dependencies: @@ -1023,11 +1023,11 @@ importers: version: link:../../../packages/nuxt vue: specifier: 3.4.29 - version: 3.4.29(typescript@5.4.5) + version: 3.4.29(typescript@5.5.2) devDependencies: '@unhead/shared': specifier: latest - version: 1.9.13 + version: 1.9.14 '@vue/devtools-api': specifier: latest version: 6.6.3 @@ -1036,10 +1036,10 @@ importers: version: 3.4.29 typescript: specifier: latest - version: 5.4.5 + version: 5.5.2 unhead: specifier: latest - version: 1.9.13 + version: 1.9.14 packages: @@ -2544,11 +2544,8 @@ packages: '@types/node-sass@4.11.6': resolution: {integrity: sha512-Qkf5Fs9zzsXchenUY7oVdIHyv8FtPgqIXqOJzhh3FDqpYjqvc/gtZ3hlZVFmKQhl7wyI4+WkRbYufYC5pfY7iw==} - '@types/node@20.14.2': - resolution: {integrity: sha512-xyu6WAMVwv6AKFLB+e/7ySZVr/0zLCzOa7rSpq6jNwpqOrUbcACDWC+53d4n2QHOnDou0fbIsg8wZu/sxrnI4Q==} - - '@types/node@20.14.6': - resolution: {integrity: sha512-JbA0XIJPL1IiNnU7PFxDXyfAwcwVVrOoqyzzyQTyMeVhBzkJVMSkC1LlVsRQ2lpqiY4n6Bb9oCS6lzDKVQxbZw==} + '@types/node@20.14.7': + resolution: {integrity: sha512-uTr2m2IbJJucF3KUxgnGOZvYbN0QgkGyWxG6973HCpMYFy2KfcgYuIwkJQMQkt1VbBMlvWRbpshFTLxnxCZjKQ==} '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -2680,20 +2677,20 @@ packages: '@ungap/structured-clone@1.2.0': resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - '@unhead/dom@1.9.13': - resolution: {integrity: sha512-Fzc929W+5f88c90kn9aKs7EbgRBhphArMqBbifre134GWgrgDVR0odoadNa7i9eH4roPEDE1FIGcKVWuxOIHbg==} + '@unhead/dom@1.9.14': + resolution: {integrity: sha512-XZSZ2Wmm1Sv7k9scSFGrarbteSIl3p3I3oOUprKPDboBTvuG5q81Qz8O99NKUGKGJ8BKUkxCqE982eH3S8DKJA==} - '@unhead/schema@1.9.13': - resolution: {integrity: sha512-keOfTXC/tI21fURcEszBHgGvIg2AszQVQEXBG5BYgC2TQph25Bmv7Fk8W2ogFmj+DdZmFiDnSJdz/NKv3bqnTQ==} + '@unhead/schema@1.9.14': + resolution: {integrity: sha512-60NYSM6QjfK/wx4/QfaYyZ3XnNtwxS9a1oij2abEkGHPmA2/fqBOXeuHtnBo4eD42/Eg+owcS5s3mClPL8AkXw==} - '@unhead/shared@1.9.13': - resolution: {integrity: sha512-zNlJ2i5WonQZu/UMHJJzYMyBLhlCCxj1JxHL6lEG+Z6XiERfJDFr8mEAsQY7M2KrGAHR+WRBxNVoLw03j/kfrA==} + '@unhead/shared@1.9.14': + resolution: {integrity: sha512-7ZIC7uDV8gp3KHm5JxJ/NXMENQgkh+SCyTcsILSpOhkAGeszMHABrB6vjeZDGM4J9mRUxwyPn24KI2zG/R+XiQ==} - '@unhead/ssr@1.9.13': - resolution: {integrity: sha512-YjYrZ3u9uNDzrMybWMVFE0bDcMWBV6Dyqba2Sjq6x84NBRBpZfcUrc7v58iwp5m4XBNfyPs1+r5tOSV0qCiGww==} + '@unhead/ssr@1.9.14': + resolution: {integrity: sha512-OIBZu+WBiyCcDMJ4Ysu7uA6yMZ3fWXWyVrT2w0my5oQJgA0BS7lzfReRL8Sw6+ORlupn9Rn++HXfV0ixtxCxIA==} - '@unhead/vue@1.9.13': - resolution: {integrity: sha512-vIMNrB0kZ/3zalmE4j64eBLTkXkrcms78YbptXLvfnnQ9BLGiwsSuB3c0e+4S5Cn1dpMqUTfg5e/hCQYGDMhEA==} + '@unhead/vue@1.9.14': + resolution: {integrity: sha512-Yc7Qv0ze+iLte4urHiA+ghkF7y+svrawrT+ZrCuGXkZ/eRTF/AY2SKex+rJQJZsP+fKEQ2pGb72IsI5kHFZT3A==} peerDependencies: vue: 3.4.29 @@ -3391,11 +3388,6 @@ packages: resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} engines: {node: '>=8'} - browserslist@4.23.0: - resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - browserslist@4.23.1: resolution: {integrity: sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} @@ -3460,9 +3452,6 @@ packages: caniuse-api@3.0.0: resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} - caniuse-lite@1.0.30001599: - resolution: {integrity: sha512-LRAQHZ4yT1+f9LemSMeqdMpMxZcc4RMWdj4tiFe3G8tNkWK+E58g+/tzotb5cU6TbcVJLr4fySiAW7XmxQvZQA==} - caniuse-lite@1.0.30001636: resolution: {integrity: sha512-bMg2vmr8XBsbL6Lr0UHXy/21m84FTxDLWn2FSqMd5PrlbMxwJlQnC2YWYxVgp66PZE+BBNF2jYQUBKCo1FDeZg==} @@ -4004,9 +3993,6 @@ packages: ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - electron-to-chromium@1.4.681: - resolution: {integrity: sha512-1PpuqJUFWoXZ1E54m8bsLPVYwIVCRzvaL+n5cjigGga4z854abDnFRc+cTa2th4S79kyGqya/1xoR7h+Y5G5lg==} - electron-to-chromium@1.4.806: resolution: {integrity: sha512-nkoEX2QIB8kwCOtvtgwhXWy2IHVcOLQZu9Qo36uaGB835mdX/h8uLRlosL6QIhLVUnAiicXRW00PwaPZC74Nrg==} @@ -4104,10 +4090,6 @@ packages: engines: {node: '>=12'} hasBin: true - escalade@3.1.1: - resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} - engines: {node: '>=6'} - escalade@3.1.2: resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} engines: {node: '>=6'} @@ -4560,11 +4542,11 @@ packages: resolution: {integrity: sha512-O1Ld7Dr+nqPnmGpdhzLmMTQ4vAsD+rHwMm1NLUmoUFFymBOMKxCCrtDxqdBRYXdeEPEi3SyoR4TizJLQrnKBNA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - h3@1.11.1: - resolution: {integrity: sha512-AbaH6IDnZN6nmbnJOH72y3c5Wwh9P97soSVdGSBbcDACRdkC0FEWf25pzx4f/NuOCK6quHmW18yF2Wx+G4Zi1A==} + h3@1.12.0: + resolution: {integrity: sha512-Zi/CcNeWBXDrFNlV0hUBJQR9F7a96RjMeAZweW/ZWkR9fuXrMcvKnSA63f/zZ9l0GgQOZDVHGvXivNN9PWOwhA==} - happy-dom@14.12.0: - resolution: {integrity: sha512-dHcnlGFY2o2CdxfuYpqwSrBrpj/Kuzv4u4f3TU5yHW1GL24dKij4pv1BRjXnXc3uWo8qsCbToF9weaDsm/He8A==} + happy-dom@14.12.3: + resolution: {integrity: sha512-vsYlEs3E9gLwA1Hp+w3qzu+RUDFf4VTT8cyKqVICoZ2k7WM++Qyd2LwzyTi5bqMJFiIC/vNpTDYuxdreENRK/g==} engines: {node: '>=16.0.0'} has-bigints@1.0.2: @@ -5305,10 +5287,6 @@ packages: resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==} engines: {node: '>= 4.0.0'} - memfs@4.9.2: - resolution: {integrity: sha512-f16coDZlTG1jskq3mxarwB+fGRrd0uXWt+o1WIhRfOwbXQZqUDsTVxQBFK9JjRQHblg8eAG2JSbprDXKjc7ijQ==} - engines: {node: '>= 4.0.0'} - memfs@4.9.3: resolution: {integrity: sha512-bsYSSnirtYTWi1+OPMFb0M048evMKyUYe0EbtuGQgq6BVQM1g1W8/KIUJCCvjgI/El0j6Q4WsmMiBwLUBSw8LA==} engines: {node: '>= 4.0.0'} @@ -5921,9 +5899,6 @@ packages: perfect-debounce@1.0.0: resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==} - picocolors@1.0.0: - resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} - picocolors@1.0.1: resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} @@ -6670,12 +6645,6 @@ packages: resolution: {integrity: sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==} engines: {node: '>= 10.13.0', npm: '>= 3.0.0'} - sonic-forest@1.0.0: - resolution: {integrity: sha512-yFO2N4uTUFtgKLw03WWFpN1iEwZySweMsa18XN3Kt0yYrlmVHunC2ZgM+437zDoKISAJHcH3Cg18U7d6tuSgSQ==} - engines: {node: '>=10.0'} - peerDependencies: - tslib: '2' - source-list-map@2.0.1: resolution: {integrity: sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==} @@ -6998,8 +6967,8 @@ packages: resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==} engines: {node: '>=14.16'} - typescript@5.4.5: - resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==} + typescript@5.5.2: + resolution: {integrity: sha512-NcRtPEOsPFFWjobJEtfihkLCZCXZt/os3zf8nTxjVH3RvTSxjrCamJpbExGvYOF+tFHc3pA65qpdwPbzjohhew==} engines: {node: '>=14.17'} hasBin: true @@ -7045,8 +7014,8 @@ packages: unenv@1.9.0: resolution: {integrity: sha512-QKnFNznRxmbOF1hDgzpqrlIf6NC5sbZ2OJ+5Wl3OX8uM+LUJXbj4TXvLJCtwbPTmbMHCLIz6JLKNinNsMShK9g==} - unhead@1.9.13: - resolution: {integrity: sha512-r7O7s5nw1vUrolueEitawh1HnrzXoekHPM1gsYMF3Tu0A2SzochDJw/1F+Nhu3e073rJ9cUGZqobZY3+RZS4Ew==} + unhead@1.9.14: + resolution: {integrity: sha512-npdYu6CfasX/IhB8OO27e3u4A1zhAY77T1FwWDIIUaJvugYTte5hjsolPX0/fG5jmjnWTFTuIkmbCSfj7bfIkg==} unicode-emoji-modifier-base@1.0.0: resolution: {integrity: sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==} @@ -7187,12 +7156,6 @@ packages: unwasm@0.3.9: resolution: {integrity: sha512-LDxTx/2DkFURUd+BU1vUsF/moj0JsoTvl+2tcg2AUOiEzVturhGGx17/IMgGvKUYdZwr33EJHtChCJuhu9Ouvg==} - update-browserslist-db@1.0.13: - resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - update-browserslist-db@1.0.16: resolution: {integrity: sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==} hasBin: true @@ -7675,7 +7638,7 @@ snapshots: '@babel/code-frame@7.24.7': dependencies: '@babel/highlight': 7.24.7 - picocolors: 1.0.0 + picocolors: 1.0.1 '@babel/compat-data@7.24.7': {} @@ -7824,7 +7787,7 @@ snapshots: '@babel/helper-validator-identifier': 7.24.7 chalk: 2.4.2 js-tokens: 4.0.0 - picocolors: 1.0.0 + picocolors: 1.0.1 '@babel/parser@7.24.7': dependencies: @@ -8320,7 +8283,7 @@ snapshots: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.5 '@types/istanbul-reports': 3.0.3 - '@types/node': 20.14.6 + '@types/node': 20.14.7 '@types/yargs': 17.0.28 chalk: 4.1.2 @@ -8476,37 +8439,37 @@ snapshots: '@nuxt/devalue@2.0.2': {} - '@nuxt/devtools-kit@1.3.3(nuxt@packages+nuxt)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))': + '@nuxt/devtools-kit@1.3.3(nuxt@packages+nuxt)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))': dependencies: '@nuxt/kit': link:packages/kit '@nuxt/schema': link:packages/schema execa: 7.2.0 nuxt: link:packages/nuxt - vite: 5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) + vite: 5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0) - '@nuxt/devtools-ui-kit@1.3.3(@nuxt/devtools@1.3.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5)))(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(@vue/compiler-core@3.4.29)(nuxt@packages+nuxt)(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))(webpack@5.92.1(esbuild@0.21.5))': + '@nuxt/devtools-ui-kit@1.3.3(@nuxt/devtools@1.3.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.5.2)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.5.2)))(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(@vue/compiler-core@3.4.29)(nuxt@packages+nuxt)(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.5.2))(webpack@5.92.1(esbuild@0.21.5))': dependencies: '@iconify-json/carbon': 1.1.35 '@iconify-json/logos': 1.1.43 '@iconify-json/ri': 1.1.20 '@iconify-json/tabler': 1.1.113 - '@nuxt/devtools': 1.3.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5)) - '@nuxt/devtools-kit': 1.3.3(nuxt@packages+nuxt)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) + '@nuxt/devtools': 1.3.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.5.2)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.5.2)) + '@nuxt/devtools-kit': 1.3.3(nuxt@packages+nuxt)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0)) '@nuxt/kit': link:packages/kit '@nuxtjs/color-mode': 3.4.1 '@unocss/core': 0.60.4 - '@unocss/nuxt': 0.60.4(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(webpack@5.92.1(esbuild@0.21.5)) + '@unocss/nuxt': 0.60.4(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))(webpack@5.92.1(esbuild@0.21.5)) '@unocss/preset-attributify': 0.60.4 '@unocss/preset-icons': 0.60.4 '@unocss/preset-mini': 0.60.4 '@unocss/reset': 0.60.4 - '@vueuse/core': 10.10.1(vue@3.4.29(typescript@5.4.5)) - '@vueuse/integrations': 10.9.0(focus-trap@7.5.4)(vue@3.4.29(typescript@5.4.5)) - '@vueuse/nuxt': 10.10.0(nuxt@packages+nuxt)(vue@3.4.29(typescript@5.4.5)) + '@vueuse/core': 10.10.1(vue@3.4.29(typescript@5.5.2)) + '@vueuse/integrations': 10.9.0(focus-trap@7.5.4)(vue@3.4.29(typescript@5.5.2)) + '@vueuse/nuxt': 10.10.0(nuxt@packages+nuxt)(vue@3.4.29(typescript@5.5.2)) defu: 6.1.4 focus-trap: 7.5.4 splitpanes: 3.1.5 - unocss: 0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) + unocss: 0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0)) v-lazy-show: 0.2.4(@vue/compiler-core@3.4.29) transitivePeerDependencies: - '@unocss/webpack' @@ -8544,15 +8507,15 @@ snapshots: rc9: 2.1.2 semver: 7.6.2 - '@nuxt/devtools@1.3.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))': + '@nuxt/devtools@1.3.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.5.2)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.5.2))': dependencies: '@antfu/utils': 0.7.8 - '@nuxt/devtools-kit': 1.3.3(nuxt@packages+nuxt)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) + '@nuxt/devtools-kit': 1.3.3(nuxt@packages+nuxt)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0)) '@nuxt/devtools-wizard': 1.3.3 '@nuxt/kit': link:packages/kit - '@vue/devtools-applet': 7.1.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.4.5)))(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5)) - '@vue/devtools-core': 7.1.3(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5)) - '@vue/devtools-kit': 7.1.3(vue@3.4.29(typescript@5.4.5)) + '@vue/devtools-applet': 7.1.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.5.2)))(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.5.2)) + '@vue/devtools-core': 7.1.3(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.5.2)) + '@vue/devtools-kit': 7.1.3(vue@3.4.29(typescript@5.5.2)) birpc: 0.2.17 consola: 3.2.3 cronstrue: 2.50.0 @@ -8581,9 +8544,9 @@ snapshots: simple-git: 3.24.0 sirv: 2.0.4 unimport: 3.7.2(rollup@4.18.0) - vite: 5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) - vite-plugin-inspect: 0.8.4(@nuxt/kit@packages+kit)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) - vite-plugin-vue-inspector: 5.1.0(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) + vite: 5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0) + vite-plugin-inspect: 0.8.4(@nuxt/kit@packages+kit)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0)) + vite-plugin-vue-inspector: 5.1.0(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0)) which: 3.0.1 ws: 8.17.0 transitivePeerDependencies: @@ -8609,18 +8572,18 @@ snapshots: - utf-8-validate - vue - '@nuxt/eslint-config@0.3.13(eslint@9.5.0)(typescript@5.4.5)': + '@nuxt/eslint-config@0.3.13(eslint@9.5.0)(typescript@5.5.2)': dependencies: '@eslint/js': 9.5.0 - '@nuxt/eslint-plugin': 0.3.13(eslint@9.5.0)(typescript@5.4.5) + '@nuxt/eslint-plugin': 0.3.13(eslint@9.5.0)(typescript@5.5.2) '@rushstack/eslint-patch': 1.10.3 - '@stylistic/eslint-plugin': 2.1.0(eslint@9.5.0)(typescript@5.4.5) - '@typescript-eslint/eslint-plugin': 7.9.0(@typescript-eslint/parser@7.9.0(eslint@9.5.0)(typescript@5.4.5))(eslint@9.5.0)(typescript@5.4.5) - '@typescript-eslint/parser': 7.9.0(eslint@9.5.0)(typescript@5.4.5) + '@stylistic/eslint-plugin': 2.1.0(eslint@9.5.0)(typescript@5.5.2) + '@typescript-eslint/eslint-plugin': 7.9.0(@typescript-eslint/parser@7.9.0(eslint@9.5.0)(typescript@5.5.2))(eslint@9.5.0)(typescript@5.5.2) + '@typescript-eslint/parser': 7.9.0(eslint@9.5.0)(typescript@5.5.2) eslint: 9.5.0 eslint-config-flat-gitignore: 0.1.5 eslint-flat-config-utils: 0.2.5 - eslint-plugin-import-x: 0.5.0(eslint@9.5.0)(typescript@5.4.5) + eslint-plugin-import-x: 0.5.0(eslint@9.5.0)(typescript@5.5.2) eslint-plugin-jsdoc: 48.2.5(eslint@9.5.0) eslint-plugin-regexp: 2.5.0(eslint@9.5.0) eslint-plugin-unicorn: 53.0.0(eslint@9.5.0) @@ -8633,10 +8596,10 @@ snapshots: - supports-color - typescript - '@nuxt/eslint-plugin@0.3.13(eslint@9.5.0)(typescript@5.4.5)': + '@nuxt/eslint-plugin@0.3.13(eslint@9.5.0)(typescript@5.5.2)': dependencies: '@typescript-eslint/types': 7.9.0 - '@typescript-eslint/utils': 7.9.0(eslint@9.5.0)(typescript@5.4.5) + '@typescript-eslint/utils': 7.9.0(eslint@9.5.0)(typescript@5.5.2) eslint: 9.5.0 transitivePeerDependencies: - supports-color @@ -8650,21 +8613,21 @@ snapshots: string-width: 4.2.3 webpack: 5.92.1 - '@nuxt/scripts@0.5.1(@nuxt/devtools@1.3.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5)))(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(@vue/compiler-core@3.4.29)(ioredis@5.3.2)(nuxt@packages+nuxt)(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))(webpack@5.92.1(esbuild@0.21.5))': + '@nuxt/scripts@0.5.1(@nuxt/devtools@1.3.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.5.2)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.5.2)))(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(@vue/compiler-core@3.4.29)(ioredis@5.3.2)(nuxt@packages+nuxt)(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.5.2))(webpack@5.92.1(esbuild@0.21.5))': dependencies: - '@nuxt/devtools-kit': 1.3.3(nuxt@packages+nuxt)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) - '@nuxt/devtools-ui-kit': 1.3.3(@nuxt/devtools@1.3.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.4.5)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5)))(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(@vue/compiler-core@3.4.29)(nuxt@packages+nuxt)(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))(webpack@5.92.1(esbuild@0.21.5)) + '@nuxt/devtools-kit': 1.3.3(nuxt@packages+nuxt)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0)) + '@nuxt/devtools-ui-kit': 1.3.3(@nuxt/devtools@1.3.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.5.2)))(nuxt@packages+nuxt)(rollup@4.18.0)(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.5.2)))(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(@vue/compiler-core@3.4.29)(nuxt@packages+nuxt)(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.5.2))(webpack@5.92.1(esbuild@0.21.5)) '@nuxt/kit': link:packages/kit '@types/google.maps': 3.55.9 '@types/stripe-v3': 3.1.33 '@types/vimeo__player': 2.18.3 '@types/youtube': 0.0.50 - '@unhead/vue': 1.9.13(vue@3.4.29(typescript@5.4.5)) - '@vueuse/core': 10.10.1(vue@3.4.29(typescript@5.4.5)) + '@unhead/vue': 1.9.14(vue@3.4.29(typescript@5.5.2)) + '@vueuse/core': 10.10.1(vue@3.4.29(typescript@5.5.2)) consola: 3.2.3 defu: 6.1.4 estree-walker: 3.0.3 - h3: 1.11.1 + h3: 1.12.0 magic-string: 0.30.10 mlly: 1.7.1 ofetch: 1.3.4 @@ -8738,7 +8701,7 @@ snapshots: rc9: 2.1.2 std-env: 3.7.0 - '@nuxt/test-utils@3.13.1(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.4.5)))(@vue/test-utils@2.4.6)(h3@1.11.1)(happy-dom@14.12.0)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.44.1)(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.6)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.3(vue@3.4.29(typescript@5.4.5)))(vue@3.4.29(typescript@5.4.5))': + '@nuxt/test-utils@3.13.1(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.5.2)))(@vue/test-utils@2.4.6)(h3@1.12.0)(happy-dom@14.12.3)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.44.1)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.7)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.3(vue@3.4.29(typescript@5.5.2)))(vue@3.4.29(typescript@5.5.2))': dependencies: '@nuxt/kit': link:packages/kit '@nuxt/schema': link:packages/schema @@ -8750,7 +8713,7 @@ snapshots: execa: 8.0.1 fake-indexeddb: 5.0.2 get-port-please: 3.1.2 - h3: 1.11.1 + h3: 1.12.0 local-pkg: 0.5.0 magic-string: 0.30.10 nitropack: 2.9.6(encoding@0.1.13)(magicast@0.3.4) @@ -8764,16 +8727,16 @@ snapshots: ufo: 1.5.3 unenv: 1.9.0 unplugin: 1.10.1 - vite: 5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0) - vitest-environment-nuxt: 1.0.0(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.4.5)))(@vue/test-utils@2.4.6)(h3@1.11.1)(happy-dom@14.12.0)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.44.1)(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.6)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.3(vue@3.4.29(typescript@5.4.5)))(vue@3.4.29(typescript@5.4.5)) - vue: 3.4.29(typescript@5.4.5) - vue-router: 4.3.3(vue@3.4.29(typescript@5.4.5)) + vite: 5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0) + vitest-environment-nuxt: 1.0.0(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.5.2)))(@vue/test-utils@2.4.6)(h3@1.12.0)(happy-dom@14.12.3)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.44.1)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.7)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.3(vue@3.4.29(typescript@5.5.2)))(vue@3.4.29(typescript@5.5.2)) + vue: 3.4.29(typescript@5.5.2) + vue-router: 4.3.3(vue@3.4.29(typescript@5.5.2)) optionalDependencies: - '@testing-library/vue': 8.1.0(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.4.5)) + '@testing-library/vue': 8.1.0(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.5.2)) '@vue/test-utils': 2.4.6 - happy-dom: 14.12.0 + happy-dom: 14.12.3 playwright-core: 1.44.1 - vitest: 1.6.0(@types/node@20.14.6)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0) + vitest: 1.6.0(@types/node@20.14.7)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0) transitivePeerDependencies: - magicast @@ -9026,25 +8989,25 @@ snapshots: dependencies: shiki: 1.1.2 - '@shikijs/twoslash@1.1.6(typescript@5.4.5)': + '@shikijs/twoslash@1.1.6(typescript@5.5.2)': dependencies: '@shikijs/core': 1.1.6 - twoslash: 0.2.4(typescript@5.4.5) + twoslash: 0.2.4(typescript@5.5.2) transitivePeerDependencies: - supports-color - typescript - '@shikijs/vitepress-twoslash@1.1.6(@nuxt/kit@packages+kit)(typescript@5.4.5)': + '@shikijs/vitepress-twoslash@1.1.6(@nuxt/kit@packages+kit)(typescript@5.5.2)': dependencies: - '@shikijs/twoslash': 1.1.6(typescript@5.4.5) - floating-vue: 5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.4.5)) + '@shikijs/twoslash': 1.1.6(typescript@5.5.2) + floating-vue: 5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.5.2)) mdast-util-from-markdown: 2.0.0 mdast-util-gfm: 3.0.0 mdast-util-to-hast: 13.1.0 shiki: 1.1.6 - twoslash: 0.2.4(typescript@5.4.5) - twoslash-vue: 0.2.4(typescript@5.4.5) - vue: 3.4.29(typescript@5.4.5) + twoslash: 0.2.4(typescript@5.5.2) + twoslash-vue: 0.2.4(typescript@5.5.2) + vue: 3.4.29(typescript@5.5.2) transitivePeerDependencies: - '@nuxt/kit' - supports-color @@ -9104,31 +9067,31 @@ snapshots: estraverse: 5.3.0 picomatch: 4.0.2 - '@stylistic/eslint-plugin-plus@2.1.0(eslint@9.5.0)(typescript@5.4.5)': + '@stylistic/eslint-plugin-plus@2.1.0(eslint@9.5.0)(typescript@5.5.2)': dependencies: '@types/eslint': 8.56.10 - '@typescript-eslint/utils': 7.9.0(eslint@9.5.0)(typescript@5.4.5) + '@typescript-eslint/utils': 7.9.0(eslint@9.5.0)(typescript@5.5.2) eslint: 9.5.0 transitivePeerDependencies: - supports-color - typescript - '@stylistic/eslint-plugin-ts@2.1.0(eslint@9.5.0)(typescript@5.4.5)': + '@stylistic/eslint-plugin-ts@2.1.0(eslint@9.5.0)(typescript@5.5.2)': dependencies: '@stylistic/eslint-plugin-js': 2.1.0(eslint@9.5.0) '@types/eslint': 8.56.10 - '@typescript-eslint/utils': 7.9.0(eslint@9.5.0)(typescript@5.4.5) + '@typescript-eslint/utils': 7.9.0(eslint@9.5.0)(typescript@5.5.2) eslint: 9.5.0 transitivePeerDependencies: - supports-color - typescript - '@stylistic/eslint-plugin@2.1.0(eslint@9.5.0)(typescript@5.4.5)': + '@stylistic/eslint-plugin@2.1.0(eslint@9.5.0)(typescript@5.5.2)': dependencies: '@stylistic/eslint-plugin-js': 2.1.0(eslint@9.5.0) '@stylistic/eslint-plugin-jsx': 2.1.0(eslint@9.5.0) - '@stylistic/eslint-plugin-plus': 2.1.0(eslint@9.5.0)(typescript@5.4.5) - '@stylistic/eslint-plugin-ts': 2.1.0(eslint@9.5.0)(typescript@5.4.5) + '@stylistic/eslint-plugin-plus': 2.1.0(eslint@9.5.0)(typescript@5.5.2) + '@stylistic/eslint-plugin-ts': 2.1.0(eslint@9.5.0)(typescript@5.5.2) '@types/eslint': 8.56.10 eslint: 9.5.0 transitivePeerDependencies: @@ -9146,12 +9109,12 @@ snapshots: lz-string: 1.5.0 pretty-format: 27.5.1 - '@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.4.5))': + '@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.5.2))': dependencies: '@babel/runtime': 7.23.9 '@testing-library/dom': 9.3.4 '@vue/test-utils': 2.4.6 - vue: 3.4.29(typescript@5.4.5) + vue: 3.4.29(typescript@5.5.2) optionalDependencies: '@vue/compiler-sfc': 3.4.29 @@ -9168,14 +9131,14 @@ snapshots: '@types/clean-css@4.2.11': dependencies: - '@types/node': 20.14.6 + '@types/node': 20.14.7 source-map: 0.6.1 '@types/clear@0.1.4': {} '@types/connect@3.4.37': dependencies: - '@types/node': 20.14.6 + '@types/node': 20.14.7 '@types/debug@4.1.12': dependencies: @@ -9204,7 +9167,7 @@ snapshots: '@types/fs-extra@11.0.4': dependencies: '@types/jsonfile': 6.1.2 - '@types/node': 20.14.2 + '@types/node': 20.14.7 '@types/google.maps@3.55.9': {} @@ -9222,7 +9185,7 @@ snapshots: '@types/http-proxy@1.17.14': dependencies: - '@types/node': 20.14.6 + '@types/node': 20.14.7 '@types/istanbul-lib-coverage@2.0.5': {} @@ -9238,7 +9201,7 @@ snapshots: '@types/jsonfile@6.1.2': dependencies: - '@types/node': 20.14.6 + '@types/node': 20.14.7 '@types/lodash-es@4.17.12': dependencies: @@ -9254,13 +9217,9 @@ snapshots: '@types/node-sass@4.11.6': dependencies: - '@types/node': 20.14.6 + '@types/node': 20.14.7 - '@types/node@20.14.2': - dependencies: - undici-types: 5.26.5 - - '@types/node@20.14.6': + '@types/node@20.14.7': dependencies: undici-types: 5.26.5 @@ -9276,7 +9235,7 @@ snapshots: '@types/sass-loader@8.0.8': dependencies: - '@types/node': 20.14.2 + '@types/node': 20.14.7 '@types/node-sass': 4.11.6 '@types/webpack': 4.41.34 sass: 1.69.4 @@ -9303,7 +9262,7 @@ snapshots: '@types/webpack-bundle-analyzer@4.7.0': dependencies: - '@types/node': 20.14.2 + '@types/node': 20.14.7 tapable: 2.2.1 webpack: 5.92.1 transitivePeerDependencies: @@ -9325,13 +9284,13 @@ snapshots: '@types/webpack-sources@3.2.1': dependencies: - '@types/node': 20.14.6 + '@types/node': 20.14.7 '@types/source-list-map': 0.1.4 source-map: 0.7.4 '@types/webpack@4.41.34': dependencies: - '@types/node': 20.14.6 + '@types/node': 20.14.7 '@types/tapable': 1.0.10 '@types/uglify-js': 3.17.3 '@types/webpack-sources': 3.2.1 @@ -9346,34 +9305,34 @@ snapshots: '@types/youtube@0.0.50': {} - '@typescript-eslint/eslint-plugin@7.9.0(@typescript-eslint/parser@7.9.0(eslint@9.5.0)(typescript@5.4.5))(eslint@9.5.0)(typescript@5.4.5)': + '@typescript-eslint/eslint-plugin@7.9.0(@typescript-eslint/parser@7.9.0(eslint@9.5.0)(typescript@5.5.2))(eslint@9.5.0)(typescript@5.5.2)': dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 7.9.0(eslint@9.5.0)(typescript@5.4.5) + '@typescript-eslint/parser': 7.9.0(eslint@9.5.0)(typescript@5.5.2) '@typescript-eslint/scope-manager': 7.9.0 - '@typescript-eslint/type-utils': 7.9.0(eslint@9.5.0)(typescript@5.4.5) - '@typescript-eslint/utils': 7.9.0(eslint@9.5.0)(typescript@5.4.5) + '@typescript-eslint/type-utils': 7.9.0(eslint@9.5.0)(typescript@5.5.2) + '@typescript-eslint/utils': 7.9.0(eslint@9.5.0)(typescript@5.5.2) '@typescript-eslint/visitor-keys': 7.9.0 eslint: 9.5.0 graphemer: 1.4.0 ignore: 5.3.1 natural-compare: 1.4.0 - ts-api-utils: 1.3.0(typescript@5.4.5) + ts-api-utils: 1.3.0(typescript@5.5.2) optionalDependencies: - typescript: 5.4.5 + typescript: 5.5.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@7.9.0(eslint@9.5.0)(typescript@5.4.5)': + '@typescript-eslint/parser@7.9.0(eslint@9.5.0)(typescript@5.5.2)': dependencies: '@typescript-eslint/scope-manager': 7.9.0 '@typescript-eslint/types': 7.9.0 - '@typescript-eslint/typescript-estree': 7.9.0(typescript@5.4.5) + '@typescript-eslint/typescript-estree': 7.9.0(typescript@5.5.2) '@typescript-eslint/visitor-keys': 7.9.0 debug: 4.3.4 eslint: 9.5.0 optionalDependencies: - typescript: 5.4.5 + typescript: 5.5.2 transitivePeerDependencies: - supports-color @@ -9382,21 +9341,21 @@ snapshots: '@typescript-eslint/types': 7.9.0 '@typescript-eslint/visitor-keys': 7.9.0 - '@typescript-eslint/type-utils@7.9.0(eslint@9.5.0)(typescript@5.4.5)': + '@typescript-eslint/type-utils@7.9.0(eslint@9.5.0)(typescript@5.5.2)': dependencies: - '@typescript-eslint/typescript-estree': 7.9.0(typescript@5.4.5) - '@typescript-eslint/utils': 7.9.0(eslint@9.5.0)(typescript@5.4.5) + '@typescript-eslint/typescript-estree': 7.9.0(typescript@5.5.2) + '@typescript-eslint/utils': 7.9.0(eslint@9.5.0)(typescript@5.5.2) debug: 4.3.4 eslint: 9.5.0 - ts-api-utils: 1.3.0(typescript@5.4.5) + ts-api-utils: 1.3.0(typescript@5.5.2) optionalDependencies: - typescript: 5.4.5 + typescript: 5.5.2 transitivePeerDependencies: - supports-color '@typescript-eslint/types@7.9.0': {} - '@typescript-eslint/typescript-estree@7.9.0(typescript@5.4.5)': + '@typescript-eslint/typescript-estree@7.9.0(typescript@5.5.2)': dependencies: '@typescript-eslint/types': 7.9.0 '@typescript-eslint/visitor-keys': 7.9.0 @@ -9405,18 +9364,18 @@ snapshots: is-glob: 4.0.3 minimatch: 9.0.4 semver: 7.6.2 - ts-api-utils: 1.3.0(typescript@5.4.5) + ts-api-utils: 1.3.0(typescript@5.5.2) optionalDependencies: - typescript: 5.4.5 + typescript: 5.5.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@7.9.0(eslint@9.5.0)(typescript@5.4.5)': + '@typescript-eslint/utils@7.9.0(eslint@9.5.0)(typescript@5.5.2)': dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@9.5.0) '@typescript-eslint/scope-manager': 7.9.0 '@typescript-eslint/types': 7.9.0 - '@typescript-eslint/typescript-estree': 7.9.0(typescript@5.4.5) + '@typescript-eslint/typescript-estree': 7.9.0(typescript@5.5.2) eslint: 9.5.0 transitivePeerDependencies: - supports-color @@ -9435,60 +9394,50 @@ snapshots: '@ungap/structured-clone@1.2.0': {} - '@unhead/dom@1.9.13': + '@unhead/dom@1.9.14': dependencies: - '@unhead/schema': 1.9.13 - '@unhead/shared': 1.9.13 + '@unhead/schema': 1.9.14 + '@unhead/shared': 1.9.14 - '@unhead/schema@1.9.13': + '@unhead/schema@1.9.14': dependencies: hookable: 5.5.3 zhead: 2.2.4 - '@unhead/shared@1.9.13': + '@unhead/shared@1.9.14': dependencies: - '@unhead/schema': 1.9.13 + '@unhead/schema': 1.9.14 - '@unhead/ssr@1.9.13': + '@unhead/ssr@1.9.14': dependencies: - '@unhead/schema': 1.9.13 - '@unhead/shared': 1.9.13 + '@unhead/schema': 1.9.14 + '@unhead/shared': 1.9.14 - '@unhead/vue@1.9.13(vue@3.4.29(typescript@5.4.5))': + '@unhead/vue@1.9.14(vue@3.4.29(typescript@5.5.2))': dependencies: - '@unhead/schema': 1.9.13 - '@unhead/shared': 1.9.13 + '@unhead/schema': 1.9.14 + '@unhead/shared': 1.9.14 hookable: 5.5.3 - unhead: 1.9.13 - vue: 3.4.29(typescript@5.4.5) + unhead: 1.9.14 + vue: 3.4.29(typescript@5.5.2) - '@unocss/astro@0.60.4(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))': + '@unocss/astro@0.60.4(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))': dependencies: '@unocss/core': 0.60.4 '@unocss/reset': 0.60.4 - '@unocss/vite': 0.60.4(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) + '@unocss/vite': 0.60.4(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0)) optionalDependencies: - vite: 5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) + vite: 5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0) transitivePeerDependencies: - rollup - '@unocss/astro@0.61.0(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))': + '@unocss/astro@0.61.0(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))': dependencies: '@unocss/core': 0.61.0 '@unocss/reset': 0.61.0 - '@unocss/vite': 0.61.0(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) + '@unocss/vite': 0.61.0(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0)) optionalDependencies: - vite: 5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) - transitivePeerDependencies: - - rollup - - '@unocss/astro@0.61.0(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0))': - dependencies: - '@unocss/core': 0.61.0 - '@unocss/reset': 0.61.0 - '@unocss/vite': 0.61.0(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0)) - optionalDependencies: - vite: 5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0) + vite: 5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0) transitivePeerDependencies: - rollup @@ -9564,7 +9513,7 @@ snapshots: gzip-size: 6.0.0 sirv: 2.0.4 - '@unocss/nuxt@0.60.4(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(webpack@5.92.1(esbuild@0.21.5))': + '@unocss/nuxt@0.60.4(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))(webpack@5.92.1(esbuild@0.21.5))': dependencies: '@nuxt/kit': link:packages/kit '@unocss/config': 0.60.4 @@ -9577,9 +9526,9 @@ snapshots: '@unocss/preset-web-fonts': 0.60.4 '@unocss/preset-wind': 0.60.4 '@unocss/reset': 0.60.4 - '@unocss/vite': 0.60.4(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) + '@unocss/vite': 0.60.4(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0)) '@unocss/webpack': 0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)) - unocss: 0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) + unocss: 0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0)) transitivePeerDependencies: - postcss - rollup @@ -9769,7 +9718,7 @@ snapshots: dependencies: '@unocss/core': 0.61.0 - '@unocss/vite@0.60.4(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))': + '@unocss/vite@0.60.4(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))': dependencies: '@ampproject/remapping': 2.3.0 '@rollup/pluginutils': 5.1.0(rollup@4.18.0) @@ -9781,11 +9730,11 @@ snapshots: chokidar: 3.6.0 fast-glob: 3.3.2 magic-string: 0.30.10 - vite: 5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) + vite: 5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0) transitivePeerDependencies: - rollup - '@unocss/vite@0.61.0(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))': + '@unocss/vite@0.61.0(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))': dependencies: '@ampproject/remapping': 2.3.0 '@rollup/pluginutils': 5.1.0(rollup@4.18.0) @@ -9797,23 +9746,7 @@ snapshots: chokidar: 3.6.0 fast-glob: 3.3.2 magic-string: 0.30.10 - vite: 5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) - transitivePeerDependencies: - - rollup - - '@unocss/vite@0.61.0(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0))': - dependencies: - '@ampproject/remapping': 2.3.0 - '@rollup/pluginutils': 5.1.0(rollup@4.18.0) - '@unocss/config': 0.61.0 - '@unocss/core': 0.61.0 - '@unocss/inspector': 0.61.0 - '@unocss/scope': 0.61.0 - '@unocss/transformer-directives': 0.61.0 - chokidar: 3.6.0 - fast-glob: 3.3.2 - magic-string: 0.30.10 - vite: 5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0) + vite: 5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0) transitivePeerDependencies: - rollup @@ -9850,27 +9783,22 @@ snapshots: - encoding - supports-color - '@vitejs/plugin-vue-jsx@4.0.0(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))': + '@vitejs/plugin-vue-jsx@4.0.0(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.5.2))': dependencies: '@babel/core': 7.24.7 '@babel/plugin-transform-typescript': 7.24.7(@babel/core@7.24.7) '@vue/babel-plugin-jsx': 1.2.2(@babel/core@7.24.7) - vite: 5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0) - vue: 3.4.29(typescript@5.4.5) + vite: 5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0) + vue: 3.4.29(typescript@5.5.2) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue@5.0.4(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))': + '@vitejs/plugin-vue@5.0.4(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.5.2))': dependencies: - vite: 5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) - vue: 3.4.29(typescript@5.4.5) + vite: 5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0) + vue: 3.4.29(typescript@5.5.2) - '@vitejs/plugin-vue@5.0.4(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))': - dependencies: - vite: 5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0) - vue: 3.4.29(typescript@5.4.5) - - '@vitest/coverage-v8@1.6.0(vitest@1.6.0(@types/node@20.14.6)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))': + '@vitest/coverage-v8@1.6.0(vitest@1.6.0(@types/node@20.14.7)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0))': dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 0.2.3 @@ -9881,11 +9809,11 @@ snapshots: istanbul-reports: 3.1.6 magic-string: 0.30.10 magicast: 0.3.4 - picocolors: 1.0.0 + picocolors: 1.0.1 std-env: 3.7.0 strip-literal: 2.1.0 test-exclude: 6.0.0 - vitest: 1.6.0(@types/node@20.14.6)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0) + vitest: 1.6.0(@types/node@20.14.7)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0) transitivePeerDependencies: - supports-color @@ -9940,7 +9868,7 @@ snapshots: path-browserify: 1.0.1 vscode-uri: 3.0.8 - '@vue-macros/common@1.10.1(rollup@4.18.0)(vue@3.4.29(typescript@5.4.5))': + '@vue-macros/common@1.10.1(rollup@4.18.0)(vue@3.4.29(typescript@5.5.2))': dependencies: '@babel/types': 7.24.7 '@rollup/pluginutils': 5.1.0(rollup@4.18.0) @@ -9949,7 +9877,7 @@ snapshots: local-pkg: 0.5.0 magic-string-ast: 0.3.0 optionalDependencies: - vue: 3.4.29(typescript@5.4.5) + vue: 3.4.29(typescript@5.5.2) transitivePeerDependencies: - rollup @@ -10014,18 +9942,18 @@ snapshots: '@vue/devtools-api@6.6.3': {} - '@vue/devtools-applet@7.1.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.4.5)))(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))': + '@vue/devtools-applet@7.1.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.5.2)))(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0)))(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.5.2))': dependencies: - '@vue/devtools-core': 7.1.3(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5)) - '@vue/devtools-kit': 7.1.3(vue@3.4.29(typescript@5.4.5)) + '@vue/devtools-core': 7.1.3(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.5.2)) + '@vue/devtools-kit': 7.1.3(vue@3.4.29(typescript@5.5.2)) '@vue/devtools-shared': 7.1.3 - '@vue/devtools-ui': 7.1.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.4.5)))(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vue@3.4.29(typescript@5.4.5)) + '@vue/devtools-ui': 7.1.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.5.2)))(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0)))(vue@3.4.29(typescript@5.5.2)) lodash-es: 4.17.21 perfect-debounce: 1.0.0 shiki: 1.3.0 splitpanes: 3.1.5 - vue: 3.4.29(typescript@5.4.5) - vue-virtual-scroller: 2.0.0-beta.8(vue@3.4.29(typescript@5.4.5)) + vue: 3.4.29(typescript@5.5.2) + vue-virtual-scroller: 2.0.0-beta.8(vue@3.4.29(typescript@5.5.2)) transitivePeerDependencies: - '@unocss/reset' - '@vue/composition-api' @@ -10044,43 +9972,43 @@ snapshots: - unocss - vite - '@vue/devtools-core@7.1.3(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.4.5))': + '@vue/devtools-core@7.1.3(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.5.2))': dependencies: - '@vue/devtools-kit': 7.1.3(vue@3.4.29(typescript@5.4.5)) + '@vue/devtools-kit': 7.1.3(vue@3.4.29(typescript@5.5.2)) '@vue/devtools-shared': 7.1.3 mitt: 3.0.1 nanoid: 3.3.7 pathe: 1.1.2 - vite-hot-client: 0.2.3(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) + vite-hot-client: 0.2.3(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0)) transitivePeerDependencies: - vite - vue - '@vue/devtools-kit@7.1.3(vue@3.4.29(typescript@5.4.5))': + '@vue/devtools-kit@7.1.3(vue@3.4.29(typescript@5.5.2))': dependencies: '@vue/devtools-shared': 7.1.3 hookable: 5.5.3 mitt: 3.0.1 perfect-debounce: 1.0.0 speakingurl: 14.0.1 - vue: 3.4.29(typescript@5.4.5) + vue: 3.4.29(typescript@5.5.2) '@vue/devtools-shared@7.1.3': dependencies: rfdc: 1.3.1 - '@vue/devtools-ui@7.1.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.4.5)))(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)))(vue@3.4.29(typescript@5.4.5))': + '@vue/devtools-ui@7.1.3(@unocss/reset@0.61.0)(floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.5.2)))(unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0)))(vue@3.4.29(typescript@5.5.2))': dependencies: '@unocss/reset': 0.61.0 '@vue/devtools-shared': 7.1.3 - '@vueuse/components': 10.9.0(vue@3.4.29(typescript@5.4.5)) - '@vueuse/core': 10.10.1(vue@3.4.29(typescript@5.4.5)) - '@vueuse/integrations': 10.9.0(focus-trap@7.5.4)(vue@3.4.29(typescript@5.4.5)) + '@vueuse/components': 10.9.0(vue@3.4.29(typescript@5.5.2)) + '@vueuse/core': 10.10.1(vue@3.4.29(typescript@5.5.2)) + '@vueuse/integrations': 10.9.0(focus-trap@7.5.4)(vue@3.4.29(typescript@5.5.2)) colord: 2.9.3 - floating-vue: 5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.4.5)) + floating-vue: 5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.5.2)) focus-trap: 7.5.4 - unocss: 0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) - vue: 3.4.29(typescript@5.4.5) + unocss: 0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0)) + vue: 3.4.29(typescript@5.5.2) transitivePeerDependencies: - '@vue/composition-api' - async-validator @@ -10095,7 +10023,7 @@ snapshots: - sortablejs - universal-cookie - '@vue/language-core@1.8.27(typescript@5.4.5)': + '@vue/language-core@1.8.27(typescript@5.5.2)': dependencies: '@volar/language-core': 1.11.1 '@volar/source-map': 1.11.1 @@ -10107,9 +10035,9 @@ snapshots: path-browserify: 1.0.1 vue-template-compiler: 2.7.14 optionalDependencies: - typescript: 5.4.5 + typescript: 5.5.2 - '@vue/language-core@2.0.21(typescript@5.4.5)': + '@vue/language-core@2.0.21(typescript@5.5.2)': dependencies: '@volar/language-core': 2.3.0-alpha.15 '@vue/compiler-dom': 3.4.29 @@ -10119,7 +10047,7 @@ snapshots: path-browserify: 1.0.1 vue-template-compiler: 2.7.14 optionalDependencies: - typescript: 5.4.5 + typescript: 5.5.2 '@vue/reactivity@3.4.29': dependencies: @@ -10137,11 +10065,11 @@ snapshots: '@vue/shared': 3.4.29 csstype: 3.1.3 - '@vue/server-renderer@3.4.29(vue@3.4.29(typescript@5.4.5))': + '@vue/server-renderer@3.4.29(vue@3.4.29(typescript@5.5.2))': dependencies: '@vue/compiler-ssr': 3.4.29 '@vue/shared': 3.4.29 - vue: 3.4.29(typescript@5.4.5) + vue: 3.4.29(typescript@5.5.2) '@vue/shared@3.4.29': {} @@ -10150,50 +10078,50 @@ snapshots: js-beautify: 1.14.9 vue-component-type-helpers: 2.0.6 - '@vueuse/components@10.9.0(vue@3.4.29(typescript@5.4.5))': + '@vueuse/components@10.9.0(vue@3.4.29(typescript@5.5.2))': dependencies: - '@vueuse/core': 10.9.0(vue@3.4.29(typescript@5.4.5)) - '@vueuse/shared': 10.9.0(vue@3.4.29(typescript@5.4.5)) - vue-demi: 0.14.8(vue@3.4.29(typescript@5.4.5)) + '@vueuse/core': 10.9.0(vue@3.4.29(typescript@5.5.2)) + '@vueuse/shared': 10.9.0(vue@3.4.29(typescript@5.5.2)) + vue-demi: 0.14.8(vue@3.4.29(typescript@5.5.2)) transitivePeerDependencies: - '@vue/composition-api' - vue - '@vueuse/core@10.10.0(vue@3.4.29(typescript@5.4.5))': + '@vueuse/core@10.10.0(vue@3.4.29(typescript@5.5.2))': dependencies: '@types/web-bluetooth': 0.0.20 '@vueuse/metadata': 10.10.0 - '@vueuse/shared': 10.10.0(vue@3.4.29(typescript@5.4.5)) - vue-demi: 0.14.8(vue@3.4.29(typescript@5.4.5)) + '@vueuse/shared': 10.10.0(vue@3.4.29(typescript@5.5.2)) + vue-demi: 0.14.8(vue@3.4.29(typescript@5.5.2)) transitivePeerDependencies: - '@vue/composition-api' - vue - '@vueuse/core@10.10.1(vue@3.4.29(typescript@5.4.5))': + '@vueuse/core@10.10.1(vue@3.4.29(typescript@5.5.2))': dependencies: '@types/web-bluetooth': 0.0.20 '@vueuse/metadata': 10.10.1 - '@vueuse/shared': 10.10.1(vue@3.4.29(typescript@5.4.5)) - vue-demi: 0.14.8(vue@3.4.29(typescript@5.4.5)) + '@vueuse/shared': 10.10.1(vue@3.4.29(typescript@5.5.2)) + vue-demi: 0.14.8(vue@3.4.29(typescript@5.5.2)) transitivePeerDependencies: - '@vue/composition-api' - vue - '@vueuse/core@10.9.0(vue@3.4.29(typescript@5.4.5))': + '@vueuse/core@10.9.0(vue@3.4.29(typescript@5.5.2))': dependencies: '@types/web-bluetooth': 0.0.20 '@vueuse/metadata': 10.9.0 - '@vueuse/shared': 10.9.0(vue@3.4.29(typescript@5.4.5)) - vue-demi: 0.14.8(vue@3.4.29(typescript@5.4.5)) + '@vueuse/shared': 10.9.0(vue@3.4.29(typescript@5.5.2)) + vue-demi: 0.14.8(vue@3.4.29(typescript@5.5.2)) transitivePeerDependencies: - '@vue/composition-api' - vue - '@vueuse/integrations@10.9.0(focus-trap@7.5.4)(vue@3.4.29(typescript@5.4.5))': + '@vueuse/integrations@10.9.0(focus-trap@7.5.4)(vue@3.4.29(typescript@5.5.2))': dependencies: - '@vueuse/core': 10.9.0(vue@3.4.29(typescript@5.4.5)) - '@vueuse/shared': 10.9.0(vue@3.4.29(typescript@5.4.5)) - vue-demi: 0.14.8(vue@3.4.29(typescript@5.4.5)) + '@vueuse/core': 10.9.0(vue@3.4.29(typescript@5.5.2)) + '@vueuse/shared': 10.9.0(vue@3.4.29(typescript@5.5.2)) + vue-demi: 0.14.8(vue@3.4.29(typescript@5.5.2)) optionalDependencies: focus-trap: 7.5.4 transitivePeerDependencies: @@ -10206,35 +10134,35 @@ snapshots: '@vueuse/metadata@10.9.0': {} - '@vueuse/nuxt@10.10.0(nuxt@packages+nuxt)(vue@3.4.29(typescript@5.4.5))': + '@vueuse/nuxt@10.10.0(nuxt@packages+nuxt)(vue@3.4.29(typescript@5.5.2))': dependencies: '@nuxt/kit': link:packages/kit - '@vueuse/core': 10.10.0(vue@3.4.29(typescript@5.4.5)) + '@vueuse/core': 10.10.0(vue@3.4.29(typescript@5.5.2)) '@vueuse/metadata': 10.10.0 local-pkg: 0.5.0 nuxt: link:packages/nuxt - vue-demi: 0.14.8(vue@3.4.29(typescript@5.4.5)) + vue-demi: 0.14.8(vue@3.4.29(typescript@5.5.2)) transitivePeerDependencies: - '@vue/composition-api' - vue - '@vueuse/shared@10.10.0(vue@3.4.29(typescript@5.4.5))': + '@vueuse/shared@10.10.0(vue@3.4.29(typescript@5.5.2))': dependencies: - vue-demi: 0.14.8(vue@3.4.29(typescript@5.4.5)) + vue-demi: 0.14.8(vue@3.4.29(typescript@5.5.2)) transitivePeerDependencies: - '@vue/composition-api' - vue - '@vueuse/shared@10.10.1(vue@3.4.29(typescript@5.4.5))': + '@vueuse/shared@10.10.1(vue@3.4.29(typescript@5.5.2))': dependencies: - vue-demi: 0.14.8(vue@3.4.29(typescript@5.4.5)) + vue-demi: 0.14.8(vue@3.4.29(typescript@5.5.2)) transitivePeerDependencies: - '@vue/composition-api' - vue - '@vueuse/shared@10.9.0(vue@3.4.29(typescript@5.4.5))': + '@vueuse/shared@10.9.0(vue@3.4.29(typescript@5.5.2))': dependencies: - vue-demi: 0.14.8(vue@3.4.29(typescript@5.4.5)) + vue-demi: 0.14.8(vue@3.4.29(typescript@5.5.2)) transitivePeerDependencies: - '@vue/composition-api' - vue @@ -10491,11 +10419,11 @@ snapshots: autoprefixer@10.4.19(postcss@8.4.38): dependencies: - browserslist: 4.23.0 - caniuse-lite: 1.0.30001599 + browserslist: 4.23.1 + caniuse-lite: 1.0.30001636 fraction.js: 4.3.7 normalize-range: 0.1.2 - picocolors: 1.0.0 + picocolors: 1.0.1 postcss: 8.4.38 postcss-value-parser: 4.2.0 @@ -10544,13 +10472,6 @@ snapshots: dependencies: fill-range: 7.0.1 - browserslist@4.23.0: - dependencies: - caniuse-lite: 1.0.30001599 - electron-to-chromium: 1.4.681 - node-releases: 2.0.14 - update-browserslist-db: 1.0.13(browserslist@4.23.0) - browserslist@4.23.1: dependencies: caniuse-lite: 1.0.30001636 @@ -10639,8 +10560,6 @@ snapshots: lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 - caniuse-lite@1.0.30001599: {} - caniuse-lite@1.0.30001636: {} case-police@0.6.1: {} @@ -10834,23 +10753,23 @@ snapshots: core-util-is@1.0.3: {} - cosmiconfig@8.3.6(typescript@5.4.5): + cosmiconfig@8.3.6(typescript@5.5.2): dependencies: import-fresh: 3.3.0 js-yaml: 4.1.0 parse-json: 5.2.0 path-type: 4.0.0 optionalDependencies: - typescript: 5.4.5 + typescript: 5.5.2 - cosmiconfig@9.0.0(typescript@5.4.5): + cosmiconfig@9.0.0(typescript@5.5.2): dependencies: env-paths: 2.2.1 import-fresh: 3.3.0 js-yaml: 4.1.0 parse-json: 5.2.0 optionalDependencies: - typescript: 5.4.5 + typescript: 5.5.2 crc-32@1.2.2: {} @@ -11151,8 +11070,6 @@ snapshots: ee-first@1.1.1: {} - electron-to-chromium@1.4.681: {} - electron-to-chromium@1.4.806: {} emoji-regex@8.0.0: {} @@ -11334,8 +11251,6 @@ snapshots: '@esbuild/win32-ia32': 0.21.5 '@esbuild/win32-x64': 0.21.5 - escalade@3.1.1: {} - escalade@3.1.2: {} escape-html@1.0.3: {} @@ -11364,9 +11279,9 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-import-x@0.5.0(eslint@9.5.0)(typescript@5.4.5): + eslint-plugin-import-x@0.5.0(eslint@9.5.0)(typescript@5.5.2): dependencies: - '@typescript-eslint/utils': 7.9.0(eslint@9.5.0)(typescript@5.4.5) + '@typescript-eslint/utils': 7.9.0(eslint@9.5.0)(typescript@5.5.2) debug: 4.3.4 doctrine: 3.0.0 eslint: 9.5.0 @@ -11396,9 +11311,9 @@ snapshots: eslint-plugin-no-only-tests@3.1.0: {} - eslint-plugin-perfectionist@2.11.0(eslint@9.5.0)(typescript@5.4.5)(vue-eslint-parser@9.4.2(eslint@9.5.0)): + eslint-plugin-perfectionist@2.11.0(eslint@9.5.0)(typescript@5.5.2)(vue-eslint-parser@9.4.2(eslint@9.5.0)): dependencies: - '@typescript-eslint/utils': 7.9.0(eslint@9.5.0)(typescript@5.4.5) + '@typescript-eslint/utils': 7.9.0(eslint@9.5.0)(typescript@5.5.2) eslint: 9.5.0 minimatch: 9.0.4 natural-compare-lite: 1.4.0 @@ -11691,11 +11606,11 @@ snapshots: flatted@3.3.1: {} - floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.4.5)): + floating-vue@5.2.2(@nuxt/kit@packages+kit)(vue@3.4.29(typescript@5.5.2)): dependencies: '@floating-ui/dom': 1.1.1 - vue: 3.4.29(typescript@5.4.5) - vue-resize: 2.0.0-alpha.1(vue@3.4.29(typescript@5.4.5)) + vue: 3.4.29(typescript@5.5.2) + vue-resize: 2.0.0-alpha.1(vue@3.4.29(typescript@5.5.2)) optionalDependencies: '@nuxt/kit': link:packages/kit @@ -11712,12 +11627,12 @@ snapshots: cross-spawn: 7.0.3 signal-exit: 4.1.0 - fork-ts-checker-webpack-plugin@9.0.2(typescript@5.4.5)(webpack@5.92.1): + fork-ts-checker-webpack-plugin@9.0.2(typescript@5.5.2)(webpack@5.92.1): dependencies: '@babel/code-frame': 7.24.7 chalk: 4.1.2 chokidar: 3.6.0 - cosmiconfig: 8.3.6(typescript@5.4.5) + cosmiconfig: 8.3.6(typescript@5.5.2) deepmerge: 4.3.1 fs-extra: 10.1.0 memfs: 3.5.3 @@ -11726,7 +11641,7 @@ snapshots: schema-utils: 3.3.0 semver: 7.6.2 tapable: 2.2.1 - typescript: 5.4.5 + typescript: 5.5.2 webpack: 5.92.1 fraction.js@4.3.7: {} @@ -11922,7 +11837,7 @@ snapshots: dependencies: duplexer: 0.1.2 - h3@1.11.1: + h3@1.12.0: dependencies: cookie-es: 1.1.0 crossws: 0.2.4 @@ -11937,7 +11852,7 @@ snapshots: transitivePeerDependencies: - uWebSockets.js - happy-dom@14.12.0: + happy-dom@14.12.3: dependencies: entities: 4.5.0 webidl-conversions: 7.0.0 @@ -12374,7 +12289,7 @@ snapshots: jest-util@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 20.14.6 + '@types/node': 20.14.7 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -12382,13 +12297,13 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 20.14.6 + '@types/node': 20.14.7 merge-stream: 2.0.0 supports-color: 8.1.1 jest-worker@29.7.0: dependencies: - '@types/node': 20.14.6 + '@types/node': 20.14.7 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -12474,7 +12389,7 @@ snapshots: launch-editor@2.6.1: dependencies: - picocolors: 1.0.0 + picocolors: 1.0.1 shell-quote: 1.8.1 lazystream@1.0.1: @@ -12504,7 +12419,7 @@ snapshots: crossws: 0.2.4 defu: 6.1.4 get-port-please: 3.1.2 - h3: 1.11.1 + h3: 1.12.0 http-shutdown: 1.2.2 jiti: 1.21.6 mlly: 1.7.1 @@ -12777,13 +12692,6 @@ snapshots: dependencies: fs-monkey: 1.0.5 - memfs@4.9.2: - dependencies: - '@jsonjoy.com/json-pack': 1.0.3(tslib@2.6.2) - '@jsonjoy.com/util': 1.1.2(tslib@2.6.2) - sonic-forest: 1.0.0(tslib@2.6.2) - tslib: 2.6.2 - memfs@4.9.3: dependencies: '@jsonjoy.com/json-pack': 1.0.3(tslib@2.6.2) @@ -13092,7 +13000,7 @@ snapshots: mkdirp@1.0.4: {} - mkdist@1.3.0(sass@1.69.4)(typescript@5.4.5): + mkdist@1.3.0(sass@1.69.4)(typescript@5.5.2): dependencies: citty: 0.1.6 defu: 6.1.4 @@ -13105,7 +13013,7 @@ snapshots: pathe: 1.1.2 optionalDependencies: sass: 1.69.4 - typescript: 5.4.5 + typescript: 5.5.2 mlly@1.7.1: dependencies: @@ -13173,7 +13081,7 @@ snapshots: fs-extra: 11.2.0 globby: 14.0.1 gzip-size: 7.0.0 - h3: 1.11.1 + h3: 1.12.0 hookable: 5.5.3 httpxy: 0.1.5 ioredis: 5.3.2 @@ -13373,16 +13281,16 @@ snapshots: '@nuxt/kit': link:packages/kit '@nuxt/schema': link:packages/schema '@nuxtjs/mdc': 0.5.0 - '@shikijs/vitepress-twoslash': 1.1.6(@nuxt/kit@packages+kit)(typescript@5.4.5) + '@shikijs/vitepress-twoslash': 1.1.6(@nuxt/kit@packages+kit)(typescript@5.5.2) cac: 6.7.14 chokidar: 3.6.0 fast-glob: 3.3.2 pathe: 1.1.2 - picocolors: 1.0.0 + picocolors: 1.0.1 remark-parse: 11.0.0 shiki: 1.6.4 - twoslash: 0.2.4(typescript@5.4.5) - typescript: 5.4.5 + twoslash: 0.2.4(typescript@5.5.2) + typescript: 5.5.2 unified: 11.0.4 unist-util-visit: 5.0.0 transitivePeerDependencies: @@ -13613,8 +13521,6 @@ snapshots: perfect-debounce@1.0.0: {} - picocolors@1.0.0: {} - picocolors@1.0.1: {} picomatch@2.3.1: {} @@ -13683,9 +13589,9 @@ snapshots: read-cache: 1.0.0 resolve: 1.22.8 - postcss-loader@8.1.1(postcss@8.4.38)(typescript@5.4.5)(webpack@5.92.1): + postcss-loader@8.1.1(postcss@8.4.38)(typescript@5.5.2)(webpack@5.92.1): dependencies: - cosmiconfig: 9.0.0(typescript@5.4.5) + cosmiconfig: 9.0.0(typescript@5.5.2) jiti: 1.21.6 postcss: 8.4.38 semver: 7.6.2 @@ -13847,7 +13753,7 @@ snapshots: postcss@8.4.38: dependencies: nanoid: 3.3.7 - picocolors: 1.0.0 + picocolors: 1.0.1 source-map-js: 1.2.0 prelude-ls@1.2.1: {} @@ -14214,11 +14120,11 @@ snapshots: dependencies: glob: 10.4.1 - rollup-plugin-dts@6.1.0(rollup@4.18.0)(typescript@5.4.5): + rollup-plugin-dts@6.1.0(rollup@4.18.0)(typescript@5.5.2): dependencies: magic-string: 0.30.10 rollup: 4.18.0 - typescript: 5.4.5 + typescript: 5.5.2 optionalDependencies: '@babel/code-frame': 7.24.7 @@ -14456,10 +14362,6 @@ snapshots: ip: 2.0.1 smart-buffer: 4.2.0 - sonic-forest@1.0.0(tslib@2.6.2): - dependencies: - tslib: 2.6.2 - source-list-map@2.0.1: {} source-map-js@1.2.0: {} @@ -14706,9 +14608,9 @@ snapshots: trough@2.2.0: {} - ts-api-utils@1.3.0(typescript@5.4.5): + ts-api-utils@1.3.0(typescript@5.5.2): dependencies: - typescript: 5.4.5 + typescript: 5.5.2 tslib@2.6.2: {} @@ -14722,20 +14624,20 @@ snapshots: twoslash-protocol@0.2.4: {} - twoslash-vue@0.2.4(typescript@5.4.5): + twoslash-vue@0.2.4(typescript@5.5.2): dependencies: - '@vue/language-core': 1.8.27(typescript@5.4.5) - twoslash: 0.2.4(typescript@5.4.5) + '@vue/language-core': 1.8.27(typescript@5.5.2) + twoslash: 0.2.4(typescript@5.5.2) twoslash-protocol: 0.2.4 - typescript: 5.4.5 + typescript: 5.5.2 transitivePeerDependencies: - supports-color - twoslash@0.2.4(typescript@5.4.5): + twoslash@0.2.4(typescript@5.5.2): dependencies: '@typescript/vfs': 1.5.0 twoslash-protocol: 0.2.4 - typescript: 5.4.5 + typescript: 5.5.2 transitivePeerDependencies: - supports-color @@ -14755,7 +14657,7 @@ snapshots: type-fest@3.13.1: {} - typescript@5.4.5: {} + typescript@5.5.2: {} uc.micro@2.1.0: {} @@ -14765,7 +14667,7 @@ snapshots: ultrahtml@1.5.3: {} - unbuild@2.0.0(sass@1.69.4)(typescript@5.4.5): + unbuild@2.0.0(sass@1.69.4)(typescript@5.5.2): dependencies: '@rollup/plugin-alias': 5.1.0(rollup@4.18.0) '@rollup/plugin-commonjs': 25.0.7(rollup@4.18.0) @@ -14782,17 +14684,17 @@ snapshots: hookable: 5.5.3 jiti: 1.21.6 magic-string: 0.30.10 - mkdist: 1.3.0(sass@1.69.4)(typescript@5.4.5) + mkdist: 1.3.0(sass@1.69.4)(typescript@5.5.2) mlly: 1.7.1 pathe: 1.1.2 pkg-types: 1.1.1 pretty-bytes: 6.1.1 rollup: 4.18.0 - rollup-plugin-dts: 6.1.0(rollup@4.18.0)(typescript@5.4.5) + rollup-plugin-dts: 6.1.0(rollup@4.18.0)(typescript@5.5.2) scule: 1.3.0 untyped: 1.4.2 optionalDependencies: - typescript: 5.4.5 + typescript: 5.5.2 transitivePeerDependencies: - sass - supports-color @@ -14826,11 +14728,11 @@ snapshots: node-fetch-native: 1.6.4 pathe: 1.1.2 - unhead@1.9.13: + unhead@1.9.14: dependencies: - '@unhead/dom': 1.9.13 - '@unhead/schema': 1.9.13 - '@unhead/shared': 1.9.13 + '@unhead/dom': 1.9.14 + '@unhead/schema': 1.9.14 + '@unhead/shared': 1.9.14 hookable: 5.5.3 unicode-emoji-modifier-base@1.0.0: {} @@ -14902,9 +14804,9 @@ snapshots: universalify@2.0.0: {} - unocss@0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)): + unocss@0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0)): dependencies: - '@unocss/astro': 0.60.4(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) + '@unocss/astro': 0.60.4(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0)) '@unocss/cli': 0.60.4(rollup@4.18.0) '@unocss/core': 0.60.4 '@unocss/extractor-arbitrary-variants': 0.60.4 @@ -14923,18 +14825,18 @@ snapshots: '@unocss/transformer-compile-class': 0.60.4 '@unocss/transformer-directives': 0.60.4 '@unocss/transformer-variant-group': 0.60.4 - '@unocss/vite': 0.60.4(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) + '@unocss/vite': 0.60.4(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0)) optionalDependencies: '@unocss/webpack': 0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)) - vite: 5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) + vite: 5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0) transitivePeerDependencies: - postcss - rollup - supports-color - unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)): + unocss@0.61.0(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0)): dependencies: - '@unocss/astro': 0.61.0(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) + '@unocss/astro': 0.61.0(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0)) '@unocss/cli': 0.61.0(rollup@4.18.0) '@unocss/core': 0.61.0 '@unocss/extractor-arbitrary-variants': 0.61.0 @@ -14953,49 +14855,20 @@ snapshots: '@unocss/transformer-compile-class': 0.61.0 '@unocss/transformer-directives': 0.61.0 '@unocss/transformer-variant-group': 0.61.0 - '@unocss/vite': 0.61.0(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)) + '@unocss/vite': 0.61.0(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0)) optionalDependencies: '@unocss/webpack': 0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)) - vite: 5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) + vite: 5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0) transitivePeerDependencies: - postcss - rollup - supports-color - unocss@0.61.0(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0)): - dependencies: - '@unocss/astro': 0.61.0(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0)) - '@unocss/cli': 0.61.0(rollup@4.18.0) - '@unocss/core': 0.61.0 - '@unocss/extractor-arbitrary-variants': 0.61.0 - '@unocss/postcss': 0.61.0(postcss@8.4.38) - '@unocss/preset-attributify': 0.61.0 - '@unocss/preset-icons': 0.61.0 - '@unocss/preset-mini': 0.61.0 - '@unocss/preset-tagify': 0.61.0 - '@unocss/preset-typography': 0.61.0 - '@unocss/preset-uno': 0.61.0 - '@unocss/preset-web-fonts': 0.61.0 - '@unocss/preset-wind': 0.61.0 - '@unocss/reset': 0.61.0 - '@unocss/transformer-attributify-jsx': 0.61.0 - '@unocss/transformer-attributify-jsx-babel': 0.61.0 - '@unocss/transformer-compile-class': 0.61.0 - '@unocss/transformer-directives': 0.61.0 - '@unocss/transformer-variant-group': 0.61.0 - '@unocss/vite': 0.61.0(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0)) - optionalDependencies: - vite: 5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0) - transitivePeerDependencies: - - postcss - - rollup - - supports-color - - unplugin-vue-router@0.7.0(rollup@4.18.0)(vue-router@4.3.3(vue@3.4.29(typescript@5.4.5)))(vue@3.4.29(typescript@5.4.5)): + unplugin-vue-router@0.7.0(rollup@4.18.0)(vue-router@4.3.3(vue@3.4.29(typescript@5.5.2)))(vue@3.4.29(typescript@5.5.2)): dependencies: '@babel/types': 7.24.7 '@rollup/pluginutils': 5.1.0(rollup@4.18.0) - '@vue-macros/common': 1.10.1(rollup@4.18.0)(vue@3.4.29(typescript@5.4.5)) + '@vue-macros/common': 1.10.1(rollup@4.18.0)(vue@3.4.29(typescript@5.5.2)) ast-walker-scope: 0.5.0(rollup@4.18.0) chokidar: 3.6.0 fast-glob: 3.3.2 @@ -15007,7 +14880,7 @@ snapshots: unplugin: 1.10.1 yaml: 2.3.4 optionalDependencies: - vue-router: 4.3.3(vue@3.4.29(typescript@5.4.5)) + vue-router: 4.3.3(vue@3.4.29(typescript@5.5.2)) transitivePeerDependencies: - rollup - vue @@ -15024,7 +14897,7 @@ snapshots: anymatch: 3.1.3 chokidar: 3.6.0 destr: 2.0.3 - h3: 1.11.1 + h3: 1.12.0 listhen: 1.7.2 lru-cache: 10.2.0 mri: 1.2.0 @@ -15065,12 +14938,6 @@ snapshots: pkg-types: 1.1.1 unplugin: 1.10.1 - update-browserslist-db@1.0.13(browserslist@4.23.0): - dependencies: - browserslist: 4.23.0 - escalade: 3.1.1 - picocolors: 1.0.0 - update-browserslist-db@1.0.16(browserslist@4.23.1): dependencies: browserslist: 4.23.1 @@ -15129,17 +14996,17 @@ snapshots: unist-util-stringify-position: 4.0.0 vfile-message: 4.0.2 - vite-hot-client@0.2.3(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)): + vite-hot-client@0.2.3(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0)): dependencies: - vite: 5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) + vite: 5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0) - vite-node@1.6.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0): + vite-node@1.6.0(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0): dependencies: cac: 6.7.14 debug: 4.3.4 pathe: 1.1.2 - picocolors: 1.0.0 - vite: 5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) + picocolors: 1.0.1 + vite: 5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0) transitivePeerDependencies: - '@types/node' - less @@ -15150,24 +15017,7 @@ snapshots: - supports-color - terser - vite-node@1.6.0(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0): - dependencies: - cac: 6.7.14 - debug: 4.3.4 - pathe: 1.1.2 - picocolors: 1.0.0 - vite: 5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0) - transitivePeerDependencies: - - '@types/node' - - less - - lightningcss - - sass - - stylus - - sugarss - - supports-color - - terser - - vite-plugin-checker@0.6.4(eslint@9.5.0)(optionator@0.9.3)(typescript@5.4.5)(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0))(vue-tsc@2.0.21(typescript@5.4.5)): + vite-plugin-checker@0.6.4(eslint@9.5.0)(optionator@0.9.3)(typescript@5.5.2)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))(vue-tsc@2.0.21(typescript@5.5.2)): dependencies: '@babel/code-frame': 7.24.7 ansi-escapes: 4.3.2 @@ -15180,7 +15030,7 @@ snapshots: semver: 7.6.2 strip-ansi: 6.0.1 tiny-invariant: 1.3.1 - vite: 5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0) + vite: 5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0) vscode-languageclient: 7.0.0 vscode-languageserver: 7.0.0 vscode-languageserver-textdocument: 1.0.11 @@ -15188,10 +15038,10 @@ snapshots: optionalDependencies: eslint: 9.5.0 optionator: 0.9.3 - typescript: 5.4.5 - vue-tsc: 2.0.21(typescript@5.4.5) + typescript: 5.5.2 + vue-tsc: 2.0.21(typescript@5.5.2) - vite-plugin-inspect@0.8.4(@nuxt/kit@packages+kit)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)): + vite-plugin-inspect@0.8.4(@nuxt/kit@packages+kit)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0)): dependencies: '@antfu/utils': 0.7.8 '@rollup/pluginutils': 5.1.0(rollup@4.18.0) @@ -15200,16 +15050,16 @@ snapshots: fs-extra: 11.2.0 open: 10.1.0 perfect-debounce: 1.0.0 - picocolors: 1.0.0 + picocolors: 1.0.1 sirv: 2.0.4 - vite: 5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) + vite: 5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0) optionalDependencies: '@nuxt/kit': link:packages/kit transitivePeerDependencies: - rollup - supports-color - vite-plugin-vue-inspector@5.1.0(vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0)): + vite-plugin-vue-inspector@5.1.0(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0)): dependencies: '@babel/core': 7.24.7 '@babel/plugin-proposal-decorators': 7.23.2(@babel/core@7.24.7) @@ -15220,35 +15070,24 @@ snapshots: '@vue/compiler-dom': 3.4.29 kolorist: 1.8.0 magic-string: 0.30.10 - vite: 5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) + vite: 5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0) transitivePeerDependencies: - supports-color - vite@5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0): + vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0): dependencies: esbuild: 0.21.5 postcss: 8.4.38 rollup: 4.18.0 optionalDependencies: - '@types/node': 20.14.2 + '@types/node': 20.14.7 fsevents: 2.3.3 sass: 1.69.4 terser: 5.27.0 - vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0): + vitest-environment-nuxt@1.0.0(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.5.2)))(@vue/test-utils@2.4.6)(h3@1.12.0)(happy-dom@14.12.3)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.44.1)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.7)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.3(vue@3.4.29(typescript@5.5.2)))(vue@3.4.29(typescript@5.5.2)): dependencies: - esbuild: 0.21.5 - postcss: 8.4.38 - rollup: 4.18.0 - optionalDependencies: - '@types/node': 20.14.6 - fsevents: 2.3.3 - sass: 1.69.4 - terser: 5.27.0 - - vitest-environment-nuxt@1.0.0(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.4.5)))(@vue/test-utils@2.4.6)(h3@1.11.1)(happy-dom@14.12.0)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.44.1)(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.6)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.3(vue@3.4.29(typescript@5.4.5)))(vue@3.4.29(typescript@5.4.5)): - dependencies: - '@nuxt/test-utils': 3.13.1(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.4.5)))(@vue/test-utils@2.4.6)(h3@1.11.1)(happy-dom@14.12.0)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.44.1)(vite@5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.6)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.3(vue@3.4.29(typescript@5.4.5)))(vue@3.4.29(typescript@5.4.5)) + '@nuxt/test-utils': 3.13.1(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.5.2)))(@vue/test-utils@2.4.6)(h3@1.12.0)(happy-dom@14.12.3)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.44.1)(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.7)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0))(vue-router@4.3.3(vue@3.4.29(typescript@5.5.2)))(vue@3.4.29(typescript@5.5.2)) transitivePeerDependencies: - '@cucumber/cucumber' - '@jest/globals' @@ -15267,7 +15106,7 @@ snapshots: - vue - vue-router - vitest@1.6.0(@types/node@20.14.2)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0): + vitest@1.6.0(@types/node@20.14.7)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0): dependencies: '@vitest/expect': 1.6.0 '@vitest/runner': 1.6.0 @@ -15281,51 +15120,17 @@ snapshots: local-pkg: 0.5.0 magic-string: 0.30.10 pathe: 1.1.2 - picocolors: 1.0.0 + picocolors: 1.0.1 std-env: 3.7.0 strip-literal: 2.1.0 tinybench: 2.5.1 tinypool: 0.8.4 - vite: 5.3.1(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) - vite-node: 1.6.0(@types/node@20.14.2)(sass@1.69.4)(terser@5.27.0) + vite: 5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0) + vite-node: 1.6.0(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0) why-is-node-running: 2.2.2 optionalDependencies: - '@types/node': 20.14.2 - happy-dom: 14.12.0 - transitivePeerDependencies: - - less - - lightningcss - - sass - - stylus - - sugarss - - supports-color - - terser - - vitest@1.6.0(@types/node@20.14.6)(happy-dom@14.12.0)(sass@1.69.4)(terser@5.27.0): - dependencies: - '@vitest/expect': 1.6.0 - '@vitest/runner': 1.6.0 - '@vitest/snapshot': 1.6.0 - '@vitest/spy': 1.6.0 - '@vitest/utils': 1.6.0 - acorn-walk: 8.3.2 - chai: 4.3.10 - debug: 4.3.4 - execa: 8.0.1 - local-pkg: 0.5.0 - magic-string: 0.30.10 - pathe: 1.1.2 - picocolors: 1.0.0 - std-env: 3.7.0 - strip-literal: 2.1.0 - tinybench: 2.5.1 - tinypool: 0.8.4 - vite: 5.3.1(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0) - vite-node: 1.6.0(@types/node@20.14.6)(sass@1.69.4)(terser@5.27.0) - why-is-node-running: 2.2.2 - optionalDependencies: - '@types/node': 20.14.6 - happy-dom: 14.12.0 + '@types/node': 20.14.7 + happy-dom: 14.12.3 transitivePeerDependencies: - less - lightningcss @@ -15366,9 +15171,9 @@ snapshots: vue-component-type-helpers@2.0.6: {} - vue-demi@0.14.8(vue@3.4.29(typescript@5.4.5)): + vue-demi@0.14.8(vue@3.4.29(typescript@5.5.2)): dependencies: - vue: 3.4.29(typescript@5.4.5) + vue: 3.4.29(typescript@5.5.2) vue-devtools-stub@0.1.0: {} @@ -15385,7 +15190,7 @@ snapshots: transitivePeerDependencies: - supports-color - vue-loader@17.4.2(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.4.5))(webpack@5.92.1): + vue-loader@17.4.2(@vue/compiler-sfc@3.4.29)(vue@3.4.29(typescript@5.5.2))(webpack@5.92.1): dependencies: chalk: 4.1.2 hash-sum: 2.0.0 @@ -15393,49 +15198,49 @@ snapshots: webpack: 5.92.1 optionalDependencies: '@vue/compiler-sfc': 3.4.29 - vue: 3.4.29(typescript@5.4.5) + vue: 3.4.29(typescript@5.5.2) - vue-observe-visibility@2.0.0-alpha.1(vue@3.4.29(typescript@5.4.5)): + vue-observe-visibility@2.0.0-alpha.1(vue@3.4.29(typescript@5.5.2)): dependencies: - vue: 3.4.29(typescript@5.4.5) + vue: 3.4.29(typescript@5.5.2) - vue-resize@2.0.0-alpha.1(vue@3.4.29(typescript@5.4.5)): + vue-resize@2.0.0-alpha.1(vue@3.4.29(typescript@5.5.2)): dependencies: - vue: 3.4.29(typescript@5.4.5) + vue: 3.4.29(typescript@5.5.2) - vue-router@4.3.3(vue@3.4.29(typescript@5.4.5)): + vue-router@4.3.3(vue@3.4.29(typescript@5.5.2)): dependencies: '@vue/devtools-api': 6.6.3 - vue: 3.4.29(typescript@5.4.5) + vue: 3.4.29(typescript@5.5.2) vue-template-compiler@2.7.14: dependencies: de-indent: 1.0.2 he: 1.2.0 - vue-tsc@2.0.21(typescript@5.4.5): + vue-tsc@2.0.21(typescript@5.5.2): dependencies: '@volar/typescript': 2.3.0-alpha.15 - '@vue/language-core': 2.0.21(typescript@5.4.5) + '@vue/language-core': 2.0.21(typescript@5.5.2) semver: 7.6.2 - typescript: 5.4.5 + typescript: 5.5.2 - vue-virtual-scroller@2.0.0-beta.8(vue@3.4.29(typescript@5.4.5)): + vue-virtual-scroller@2.0.0-beta.8(vue@3.4.29(typescript@5.5.2)): dependencies: mitt: 2.1.0 - vue: 3.4.29(typescript@5.4.5) - vue-observe-visibility: 2.0.0-alpha.1(vue@3.4.29(typescript@5.4.5)) - vue-resize: 2.0.0-alpha.1(vue@3.4.29(typescript@5.4.5)) + vue: 3.4.29(typescript@5.5.2) + vue-observe-visibility: 2.0.0-alpha.1(vue@3.4.29(typescript@5.5.2)) + vue-resize: 2.0.0-alpha.1(vue@3.4.29(typescript@5.5.2)) - vue@3.4.29(typescript@5.4.5): + vue@3.4.29(typescript@5.5.2): dependencies: '@vue/compiler-dom': 3.4.29 '@vue/compiler-sfc': 3.4.29 '@vue/runtime-dom': 3.4.29 - '@vue/server-renderer': 3.4.29(vue@3.4.29(typescript@5.4.5)) + '@vue/server-renderer': 3.4.29(vue@3.4.29(typescript@5.5.2)) '@vue/shared': 3.4.29 optionalDependencies: - typescript: 5.4.5 + typescript: 5.5.2 watchpack@2.4.1: dependencies: @@ -15459,7 +15264,7 @@ snapshots: gzip-size: 6.0.0 html-escaper: 2.0.2 opener: 1.5.2 - picocolors: 1.0.0 + picocolors: 1.0.1 sirv: 2.0.4 ws: 7.5.9 transitivePeerDependencies: @@ -15469,7 +15274,7 @@ snapshots: webpack-dev-middleware@7.2.1(webpack@5.92.1): dependencies: colorette: 2.0.20 - memfs: 4.9.2 + memfs: 4.9.3 mime-types: 2.1.35 on-finished: 2.4.1 range-parser: 1.2.1 @@ -15661,7 +15466,7 @@ snapshots: yargs@17.7.2: dependencies: cliui: 8.0.1 - escalade: 3.1.1 + escalade: 3.1.2 get-caller-file: 2.0.5 require-directory: 2.1.1 string-width: 4.2.3 diff --git a/test/bundle.test.ts b/test/bundle.test.ts index 2afe8693f9..14878051b8 100644 --- a/test/bundle.test.ts +++ b/test/bundle.test.ts @@ -32,7 +32,7 @@ describe.skipIf(process.env.SKIP_BUNDLE_SIZE === 'true' || process.env.ECOSYSTEM const serverDir = join(rootDir, '.output/server') const serverStats = await analyzeSizes(['**/*.mjs', '!node_modules'], serverDir) - expect.soft(roundToKilobytes(serverStats.totalBytes)).toMatchInlineSnapshot(`"209k"`) + expect.soft(roundToKilobytes(serverStats.totalBytes)).toMatchInlineSnapshot(`"210k"`) const modules = await analyzeSizes('node_modules/**/*', serverDir) expect.soft(roundToKilobytes(modules.totalBytes)).toMatchInlineSnapshot(`"1340k"`) @@ -72,7 +72,7 @@ describe.skipIf(process.env.SKIP_BUNDLE_SIZE === 'true' || process.env.ECOSYSTEM const serverDir = join(rootDir, '.output-inline/server') const serverStats = await analyzeSizes(['**/*.mjs', '!node_modules'], serverDir) - expect.soft(roundToKilobytes(serverStats.totalBytes)).toMatchInlineSnapshot(`"530k"`) + expect.soft(roundToKilobytes(serverStats.totalBytes)).toMatchInlineSnapshot(`"531k"`) const modules = await analyzeSizes('node_modules/**/*', serverDir) expect.soft(roundToKilobytes(modules.totalBytes)).toMatchInlineSnapshot(`"76.2k"`) From e374474df3755054d5217ed0b28643ccce0b2eef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Damian=20G=C5=82owala?= Date: Fri, 21 Jun 2024 10:33:42 +0200 Subject: [PATCH 026/119] feat(kit,schema): add `.with` for better module options types (#27520) --- packages/kit/src/module/define.ts | 80 +++++++++++++++++++++++------ packages/kit/src/module/install.ts | 2 +- packages/schema/src/types/module.ts | 65 +++++++++++++++++++---- test/fixtures/basic-types/types.ts | 17 ++++++ 4 files changed, 136 insertions(+), 28 deletions(-) diff --git a/packages/kit/src/module/define.ts b/packages/kit/src/module/define.ts index e0986ef59a..e5a771cff5 100644 --- a/packages/kit/src/module/define.ts +++ b/packages/kit/src/module/define.ts @@ -1,7 +1,7 @@ import { performance } from 'node:perf_hooks' import { defu } from 'defu' import { applyDefaults } from 'untyped' -import type { ModuleDefinition, ModuleOptions, ModuleSetupReturn, Nuxt, NuxtModule, NuxtOptions } from '@nuxt/schema' +import type { ModuleDefinition, ModuleOptions, ModuleSetupInstallResult, ModuleSetupReturn, Nuxt, NuxtModule, NuxtOptions, ResolvedModuleOptions } from '@nuxt/schema' import { logger } from '../logger' import { tryUseNuxt, useNuxt } from '../context' import { checkNuxtCompatibility } from '../compatibility' @@ -10,28 +10,76 @@ import { checkNuxtCompatibility } from '../compatibility' * Define a Nuxt module, automatically merging defaults with user provided options, installing * any hooks that are provided, and calling an optional setup function for full control. */ -export function defineNuxtModule (definition: ModuleDefinition | NuxtModule): NuxtModule { - if (typeof definition === 'function') { return defineNuxtModule({ setup: definition }) } +export function defineNuxtModule ( + definition: ModuleDefinition, false> | NuxtModule, false> +): NuxtModule - // Normalize definition and meta - const module: ModuleDefinition & Required, 'meta'>> = defu(definition, { meta: {} }) - if (module.meta.configKey === undefined) { - module.meta.configKey = module.meta.name +export function defineNuxtModule (): { + with: > ( + definition: ModuleDefinition | NuxtModule + ) => NuxtModule +} + +export function defineNuxtModule ( + definition?: ModuleDefinition, false> | NuxtModule, false>, +) { + if (definition) { + return _defineNuxtModule(definition) } + return { + with: >( + definition: ModuleDefinition | NuxtModule, + ) => _defineNuxtModule(definition), + } +} + +function _defineNuxtModule< + TOptions extends ModuleOptions, + TOptionsDefaults extends Partial, + TWith extends boolean, +> ( + definition: ModuleDefinition | NuxtModule, +): NuxtModule { + if (typeof definition === 'function') { + return _defineNuxtModule({ setup: definition }) + } + + // Normalize definition and meta + const module: ModuleDefinition & Required, 'meta'>> = defu(definition, { meta: {} }) + + module.meta.configKey ||= module.meta.name + // Resolves module options from inline options, [configKey] in nuxt.config, defaults and schema - async function getOptions (inlineOptions?: OptionsT, nuxt: Nuxt = useNuxt()) { - const configKey = module.meta.configKey || module.meta.name! - const _defaults = module.defaults instanceof Function ? module.defaults(nuxt) : module.defaults - let _options = defu(inlineOptions, nuxt.options[configKey as keyof NuxtOptions], _defaults) as OptionsT + async function getOptions ( + inlineOptions?: Partial, + nuxt: Nuxt = useNuxt(), + ): Promise< + TWith extends true + ? ResolvedModuleOptions + : TOptions + > { + const nuxtConfigOptionsKey = module.meta.configKey || module.meta.name + + const nuxtConfigOptions: Partial = nuxtConfigOptionsKey && nuxtConfigOptionsKey in nuxt.options ? nuxt.options[ nuxtConfigOptionsKey] : {} + + const optionsDefaults: TOptionsDefaults = + module.defaults instanceof Function + ? module.defaults(nuxt) + : module.defaults ?? {} + + let options = defu(inlineOptions, nuxtConfigOptions, optionsDefaults) + if (module.schema) { - _options = await applyDefaults(module.schema, _options) as OptionsT + options = await applyDefaults(module.schema, options) as any } - return Promise.resolve(_options) + + // @ts-expect-error ignore type mismatch when calling `defineNuxtModule` without `.with()` + return Promise.resolve(options) } // Module format is always a simple function - async function normalizedModule (this: any, inlineOptions: OptionsT, nuxt: Nuxt) { + async function normalizedModule (this: any, inlineOptions: Partial, nuxt: Nuxt): Promise { if (!nuxt) { nuxt = tryUseNuxt() || this.nuxt /* invoked by nuxt 2 */ } @@ -81,7 +129,7 @@ export function defineNuxtModule (definition: Mo if (res === false) { return false } // Return module install result - return defu(res, { + return defu(res, { timings: { setup: setupTime, }, @@ -92,5 +140,5 @@ export function defineNuxtModule (definition: Mo normalizedModule.getMeta = () => Promise.resolve(module.meta) normalizedModule.getOptions = getOptions - return normalizedModule as NuxtModule + return > normalizedModule } diff --git a/packages/kit/src/module/install.ts b/packages/kit/src/module/install.ts index 6d04cef352..7a0488258e 100644 --- a/packages/kit/src/module/install.ts +++ b/packages/kit/src/module/install.ts @@ -26,7 +26,7 @@ export async function installModule< } // Call module - const res = await nuxtModule(inlineOptions, nuxt) ?? {} + const res = await nuxtModule(inlineOptions || {}, nuxt) ?? {} if (res === false /* setup aborted */) { return } diff --git a/packages/schema/src/types/module.ts b/packages/schema/src/types/module.ts index 9b92d6a93e..1879678923 100644 --- a/packages/schema/src/types/module.ts +++ b/packages/schema/src/types/module.ts @@ -1,3 +1,4 @@ +import type { Defu } from 'defu' import type { NuxtHooks } from './hooks' import type { Nuxt } from './nuxt' import type { NuxtCompatibility } from './compatibility' @@ -26,8 +27,7 @@ export interface ModuleMeta { /** The options received. */ export type ModuleOptions = Record -/** Optional result for nuxt modules */ -export interface ModuleSetupReturn { +export type ModuleSetupInstallResult = { /** * Timing information for the initial setup */ @@ -39,19 +39,62 @@ export interface ModuleSetupReturn { } type Awaitable = T | Promise -type _ModuleSetupReturn = Awaitable -/** Input module passed to defineNuxtModule. */ -export interface ModuleDefinition { +type Prettify = { + [K in keyof T]: T[K]; +} & {} + +export type ModuleSetupReturn = Awaitable + +export type ResolvedModuleOptions< + TOptions extends ModuleOptions, + TOptionsDefaults extends Partial, +> = + Prettify< + Defu< + Partial, + [Partial, TOptionsDefaults] + > + > + +/** Module definition passed to 'defineNuxtModule(...)' or 'defineNuxtModule().with(...)'. */ +export interface ModuleDefinition< + TOptions extends ModuleOptions, + TOptionsDefaults extends Partial, + TWith extends boolean, +> { meta?: ModuleMeta - defaults?: T | ((nuxt: Nuxt) => T) - schema?: T + defaults?: TOptionsDefaults | ((nuxt: Nuxt) => TOptionsDefaults) + schema?: TOptions hooks?: Partial - setup?: (this: void, resolvedOptions: T, nuxt: Nuxt) => _ModuleSetupReturn + setup?: ( + this: void, + resolvedOptions: TWith extends true + ? ResolvedModuleOptions + : TOptions, + nuxt: Nuxt + ) => ModuleSetupReturn } -export interface NuxtModule { - (this: void, inlineOptions: T, nuxt: Nuxt): _ModuleSetupReturn - getOptions?: (inlineOptions?: T, nuxt?: Nuxt) => Promise +export interface NuxtModule< + TOptions extends ModuleOptions = ModuleOptions, + TOptionsDefaults extends Partial = Partial, + TWith extends boolean = false, +> { + ( + this: void, + resolvedOptions: TWith extends true + ? ResolvedModuleOptions + : TOptions, + nuxt: Nuxt + ): ModuleSetupReturn + getOptions?: ( + inlineOptions?: Partial, + nuxt?: Nuxt + ) => Promise< + TWith extends true + ? ResolvedModuleOptions + : TOptions + > getMeta?: () => Promise } diff --git a/test/fixtures/basic-types/types.ts b/test/fixtures/basic-types/types.ts index a6dc98d189..a3338af471 100644 --- a/test/fixtures/basic-types/types.ts +++ b/test/fixtures/basic-types/types.ts @@ -254,6 +254,23 @@ describe('modules', () => { }, }) }) + + it('correctly typed resolved options in defineNuxtModule setup using `.with()`', () => { + defineNuxtModule<{ + foo?: string + baz: number + }>().with({ + defaults: { + foo: 'bar', + }, + setup: (resolvedOptions) => { + expectTypeOf(resolvedOptions).toEqualTypeOf<{ + foo: string + baz?: number | undefined + }>() + }, + }) + }) }) describe('nuxtApp', () => { From 209e81b60d22cecce671eb4e7bd3bcdbf5017886 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Fri, 21 Jun 2024 10:28:23 +0100 Subject: [PATCH 027/119] refactor(nuxt)!: move `#app/components/layout` -> `#app/components/nuxt-layout` resolves https://github.com/nuxt/nuxt/issues/25333 --- packages/nuxt/src/app/components/layout.ts | 2 -- 1 file changed, 2 deletions(-) delete mode 100644 packages/nuxt/src/app/components/layout.ts diff --git a/packages/nuxt/src/app/components/layout.ts b/packages/nuxt/src/app/components/layout.ts deleted file mode 100644 index b88def1a94..0000000000 --- a/packages/nuxt/src/app/components/layout.ts +++ /dev/null @@ -1,2 +0,0 @@ -// TODO: remove in 4.x -export { default } from './nuxt-layout' From c87ca8607cf5dde72979c44abbd0da818d608078 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Fri, 21 Jun 2024 12:12:43 +0100 Subject: [PATCH 028/119] fix(nuxt): defer registering inp handler until nuxt is mounted --- .../app/plugins/navigation-repaint.client.ts | 30 +++++++++++-------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/packages/nuxt/src/app/plugins/navigation-repaint.client.ts b/packages/nuxt/src/app/plugins/navigation-repaint.client.ts index 30f3a69cf1..fa368bf593 100644 --- a/packages/nuxt/src/app/plugins/navigation-repaint.client.ts +++ b/packages/nuxt/src/app/plugins/navigation-repaint.client.ts @@ -1,19 +1,23 @@ import { defineNuxtPlugin } from '../nuxt' -import { useRouter } from '../composables' +import { onNuxtReady } from '../composables/ready' +import { useRouter } from '../composables/router' export default defineNuxtPlugin(() => { - useRouter().beforeResolve(async () => { - /** - * This gives an opportunity for the browser to repaint, acknowledging user interaction. - * It can reduce INP when navigating on prerendered routes. - * - * @see https://github.com/nuxt/nuxt/issues/26271#issuecomment-2178582037 - * @see https://vercel.com/blog/demystifying-inp-new-tools-and-actionable-insights - */ - await new Promise((resolve) => { - // Ensure we always resolve, even if the animation frame never fires - setTimeout(resolve, 100) - requestAnimationFrame(() => { setTimeout(resolve, 0) }) + const router = useRouter() + onNuxtReady(() => { + router.beforeResolve(async () => { + /** + * This gives an opportunity for the browser to repaint, acknowledging user interaction. + * It can reduce INP when navigating on prerendered routes. + * + * @see https://github.com/nuxt/nuxt/issues/26271#issuecomment-2178582037 + * @see https://vercel.com/blog/demystifying-inp-new-tools-and-actionable-insights + */ + await new Promise((resolve) => { + // Ensure we always resolve, even if the animation frame never fires + setTimeout(resolve, 100) + requestAnimationFrame(() => { setTimeout(resolve, 0) }) + }) }) }) }) From 54e8bd0e7e5ba78108a846d717ddfd1f39ea6fbc Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Mon, 24 Jun 2024 10:39:38 +0100 Subject: [PATCH 029/119] perf(nuxt,vite): use native fs utils rather than `fs-extra` (#27787) --- package.json | 2 -- packages/nuxt/package.json | 2 -- packages/nuxt/src/core/nitro.ts | 2 -- packages/nuxt/src/core/nuxt.ts | 7 ++-- packages/vite/package.json | 2 -- packages/vite/src/manifest.ts | 14 ++++---- packages/vite/src/utils/index.ts | 10 ------ packages/vite/src/utils/wpfs.ts | 7 ---- packages/vite/src/vite-node.ts | 6 ++-- packages/webpack/package.json | 2 -- packages/webpack/src/plugins/vue/client.ts | 10 +++--- pnpm-lock.yaml | 39 ---------------------- test/prepare.ts | 8 +++-- test/setup.ts | 15 +++++---- 14 files changed, 35 insertions(+), 91 deletions(-) delete mode 100644 packages/vite/src/utils/wpfs.ts diff --git a/package.json b/package.json index 931e5aeace..e6a52fa401 100644 --- a/package.json +++ b/package.json @@ -53,7 +53,6 @@ "@nuxt/webpack-builder": "workspace:*", "@testing-library/vue": "8.1.0", "@types/eslint__js": "8.42.3", - "@types/fs-extra": "11.0.4", "@types/node": "20.14.7", "@types/semver": "7.5.8", "@unhead/schema": "1.9.14", @@ -69,7 +68,6 @@ "eslint-plugin-perfectionist": "2.11.0", "eslint-typegen": "0.2.4", "execa": "9.2.0", - "fs-extra": "11.2.0", "globby": "14.0.1", "h3": "1.12.0", "happy-dom": "14.12.3", diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index 27a9330c23..dcf6d24318 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -79,7 +79,6 @@ "esbuild": "^0.21.5", "escape-string-regexp": "^5.0.0", "estree-walker": "^3.0.3", - "fs-extra": "^11.2.0", "globby": "^14.0.1", "h3": "^1.12.0", "hookable": "^5.5.3", @@ -122,7 +121,6 @@ "@nuxt/ui-templates": "1.3.4", "@parcel/watcher": "2.4.1", "@types/estree": "1.0.5", - "@types/fs-extra": "11.0.4", "@vitejs/plugin-vue": "5.0.4", "@vue/compiler-sfc": "3.4.29", "unbuild": "latest", diff --git a/packages/nuxt/src/core/nitro.ts b/packages/nuxt/src/core/nitro.ts index 639072ba0d..37b18e278c 100644 --- a/packages/nuxt/src/core/nitro.ts +++ b/packages/nuxt/src/core/nitro.ts @@ -9,7 +9,6 @@ import type { Nitro, NitroConfig, NitroOptions } from 'nitropack' import { findPath, logger, resolveAlias, resolveIgnorePatterns, resolveNuxtModule, resolvePath } from '@nuxt/kit' import escapeRE from 'escape-string-regexp' import { defu } from 'defu' -import fsExtra from 'fs-extra' import { dynamicEventHandler } from 'h3' import { isWindows } from 'std-env' import type { Nuxt, NuxtOptions } from 'nuxt/schema' @@ -534,7 +533,6 @@ export async function initNitro (nuxt: Nuxt & { _nitro?: Nitro }) { // nuxt dev if (nuxt.options.dev) { - nuxt.hook('webpack:compile', ({ compiler }) => { compiler.outputFileSystem = { ...fsExtra, join } as any }) nuxt.hook('webpack:compiled', () => { nuxt.server.reload() }) nuxt.hook('vite:compiled', () => { nuxt.server.reload() }) diff --git a/packages/nuxt/src/core/nuxt.ts b/packages/nuxt/src/core/nuxt.ts index d5fe6f8740..4987fb3d98 100644 --- a/packages/nuxt/src/core/nuxt.ts +++ b/packages/nuxt/src/core/nuxt.ts @@ -1,3 +1,5 @@ +import { existsSync } from 'node:fs' +import { rm } from 'node:fs/promises' import { dirname, join, normalize, relative, resolve } from 'pathe' import { createDebugger, createHooks } from 'hookable' import ignore from 'ignore' @@ -10,7 +12,6 @@ import { readPackageJSON, resolvePackageJSON } from 'pkg-types' import { hash } from 'ohash' import escapeRE from 'escape-string-regexp' -import fse from 'fs-extra' import { withTrailingSlash, withoutLeadingSlash } from 'ufo' import defu from 'defu' @@ -159,7 +160,7 @@ async function initNuxt (nuxt: Nuxt) { for (const layer of nuxt.options._layers) { const declaration = join(layer.cwd, 'index.d.ts') - if (fse.existsSync(declaration)) { + if (existsSync(declaration)) { opts.references.push({ path: declaration }) } } @@ -277,7 +278,7 @@ async function initNuxt (nuxt: Nuxt) { nuxt.hook('build:manifest', async (manifest) => { for (const file in manifest) { if (manifest[file].resourceType === 'script') { - await fse.rm(resolve(nuxt.options.buildDir, 'dist/client', withoutLeadingSlash(nuxt.options.app.buildAssetsDir), manifest[file].file), { force: true }) + await rm(resolve(nuxt.options.buildDir, 'dist/client', withoutLeadingSlash(nuxt.options.app.buildAssetsDir), manifest[file].file), { force: true }) manifest[file].file = '' } } diff --git a/packages/vite/package.json b/packages/vite/package.json index d48970a161..2b628b0e77 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -27,7 +27,6 @@ "@nuxt/schema": "workspace:*", "@types/clear": "0.1.4", "@types/estree": "1.0.5", - "@types/fs-extra": "11.0.4", "rollup": "4.18.0", "unbuild": "latest", "vue": "3.4.29" @@ -46,7 +45,6 @@ "escape-string-regexp": "^5.0.0", "estree-walker": "^3.0.3", "externality": "^1.0.2", - "fs-extra": "^11.2.0", "get-port-please": "^3.1.2", "h3": "^1.12.0", "knitwork": "^1.1.0", diff --git a/packages/vite/src/manifest.ts b/packages/vite/src/manifest.ts index 54471633ec..9d4490f36b 100644 --- a/packages/vite/src/manifest.ts +++ b/packages/vite/src/manifest.ts @@ -1,4 +1,6 @@ -import fse from 'fs-extra' +import { readFileSync } from 'node:fs' +import { mkdir, rm, writeFile } from 'node:fs/promises' + import { relative, resolve } from 'pathe' import { withTrailingSlash, withoutLeadingSlash } from 'ufo' import escapeRE from 'escape-string-regexp' @@ -30,7 +32,7 @@ export async function writeManifest (ctx: ViteBuildContext, css: string[] = []) const manifestFile = resolve(clientDist, 'manifest.json') const clientManifest = ctx.nuxt.options.dev ? devClientManifest - : await fse.readJSON(manifestFile) + : JSON.parse(readFileSync(manifestFile, 'utf-8')) const buildAssetsDir = withTrailingSlash(withoutLeadingSlash(ctx.nuxt.options.app.buildAssetsDir)) const BASE_RE = new RegExp(`^${escapeRE(buildAssetsDir)}`) @@ -47,7 +49,7 @@ export async function writeManifest (ctx: ViteBuildContext, css: string[] = []) } } - await fse.mkdirp(serverDist) + await mkdir(serverDist, { recursive: true }) if (ctx.config.build?.cssCodeSplit === false) { for (const key in clientManifest as Record) { @@ -64,10 +66,10 @@ export async function writeManifest (ctx: ViteBuildContext, css: string[] = []) const manifest = normalizeViteManifest(clientManifest) await ctx.nuxt.callHook('build:manifest', manifest) const stringifiedManifest = JSON.stringify(manifest, null, 2) - await fse.writeFile(resolve(serverDist, 'client.manifest.json'), stringifiedManifest, 'utf8') - await fse.writeFile(resolve(serverDist, 'client.manifest.mjs'), 'export default ' + stringifiedManifest, 'utf8') + await writeFile(resolve(serverDist, 'client.manifest.json'), stringifiedManifest, 'utf8') + await writeFile(resolve(serverDist, 'client.manifest.mjs'), 'export default ' + stringifiedManifest, 'utf8') if (!ctx.nuxt.options.dev) { - await fse.rm(manifestFile, { force: true }) + await rm(manifestFile, { force: true }) } } diff --git a/packages/vite/src/utils/index.ts b/packages/vite/src/utils/index.ts index c667b96b20..9221d70278 100644 --- a/packages/vite/src/utils/index.ts +++ b/packages/vite/src/utils/index.ts @@ -1,11 +1,5 @@ -import { hash } from 'ohash' - export { isVue } from '../../../nuxt/src/core/utils/plugins' -export function uniq (arr: T[]): T[] { - return Array.from(new Set(arr)) -} - // Copied from vue-bundle-renderer utils const IS_CSS_RE = /\.(?:css|scss|sass|postcss|pcss|less|stylus|styl)(?:\?[^.]+)?$/ @@ -13,10 +7,6 @@ export function isCSS (file: string) { return IS_CSS_RE.test(file) } -export function hashId (id: string) { - return '$id_' + hash(id) -} - export function matchWithStringOrRegex (value: string, matcher: string | RegExp) { if (typeof matcher === 'string') { return value === matcher diff --git a/packages/vite/src/utils/wpfs.ts b/packages/vite/src/utils/wpfs.ts deleted file mode 100644 index 5538f0bf7e..0000000000 --- a/packages/vite/src/utils/wpfs.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { join } from 'pathe' -import fse from 'fs-extra' - -export const wpfs = { - ...fse, - join, -} as typeof fse & { join: typeof join } diff --git a/packages/vite/src/vite-node.ts b/packages/vite/src/vite-node.ts index 8bbbe98ed0..b4af79e8b0 100644 --- a/packages/vite/src/vite-node.ts +++ b/packages/vite/src/vite-node.ts @@ -1,7 +1,7 @@ +import { writeFile } from 'node:fs/promises' import { pathToFileURL } from 'node:url' import { createApp, createError, defineEventHandler, defineLazyEventHandler, eventHandler, toNodeListener } from 'h3' import { ViteNodeServer } from 'vite-node/server' -import fse from 'fs-extra' import { isAbsolute, normalize, resolve } from 'pathe' import { addDevServerHandler } from '@nuxt/kit' import { isFileServingAllowed } from 'vite' @@ -181,11 +181,11 @@ export async function initViteNodeServer (ctx: ViteBuildContext) { const serverResolvedPath = resolve(distDir, 'runtime/vite-node.mjs') const manifestResolvedPath = resolve(distDir, 'runtime/client.manifest.mjs') - await fse.writeFile( + await writeFile( resolve(ctx.nuxt.options.buildDir, 'dist/server/server.mjs'), `export { default } from ${JSON.stringify(pathToFileURL(serverResolvedPath).href)}`, ) - await fse.writeFile( + await writeFile( resolve(ctx.nuxt.options.buildDir, 'dist/server/client.manifest.mjs'), `export { default } from ${JSON.stringify(pathToFileURL(manifestResolvedPath).href)}`, ) diff --git a/packages/webpack/package.json b/packages/webpack/package.json index e8c3846459..6a4e03a8bd 100644 --- a/packages/webpack/package.json +++ b/packages/webpack/package.json @@ -37,7 +37,6 @@ "estree-walker": "^3.0.3", "file-loader": "^6.2.0", "fork-ts-checker-webpack-plugin": "^9.0.2", - "fs-extra": "^11.2.0", "h3": "^1.12.0", "hash-sum": "^2.0.0", "lodash-es": "4.17.21", @@ -71,7 +70,6 @@ }, "devDependencies": { "@nuxt/schema": "workspace:*", - "@types/fs-extra": "11.0.4", "@types/hash-sum": "1.0.2", "@types/lodash-es": "4.17.12", "@types/pify": "5.0.4", diff --git a/packages/webpack/src/plugins/vue/client.ts b/packages/webpack/src/plugins/vue/client.ts index 10127fcace..23259c6cba 100644 --- a/packages/webpack/src/plugins/vue/client.ts +++ b/packages/webpack/src/plugins/vue/client.ts @@ -3,13 +3,15 @@ * https://github.com/vuejs/vue/blob/dev/src/server/webpack-plugin/client.js */ +import { mkdir, writeFile } from 'node:fs/promises' + import { normalizeWebpackManifest } from 'vue-bundle-renderer' import { dirname } from 'pathe' import hash from 'hash-sum' -import fse from 'fs-extra' import type { Nuxt } from '@nuxt/schema' import type { Compilation, Compiler } from 'webpack' + import { isCSS, isHotUpdate, isJS } from './util' interface PluginOptions { @@ -121,11 +123,11 @@ export default class VueSSRClientPlugin { const src = JSON.stringify(manifest, null, 2) - await fse.mkdirp(dirname(this.options.filename)) - await fse.writeFile(this.options.filename, src) + await mkdir(dirname(this.options.filename), { recursive: true }) + await writeFile(this.options.filename, src) const mjsSrc = 'export default ' + src - await fse.writeFile(this.options.filename.replace('.json', '.mjs'), mjsSrc) + await writeFile(this.options.filename.replace('.json', '.mjs'), mjsSrc) // assets[this.options.filename] = { // source: () => src, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ca42f491c4..4244e351ff 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -41,9 +41,6 @@ importers: '@types/eslint__js': specifier: 8.42.3 version: 8.42.3 - '@types/fs-extra': - specifier: 11.0.4 - version: 11.0.4 '@types/node': specifier: 20.14.7 version: 20.14.7 @@ -89,9 +86,6 @@ importers: execa: specifier: 9.2.0 version: 9.2.0 - fs-extra: - specifier: 11.2.0 - version: 11.2.0 globby: specifier: 14.0.1 version: 14.0.1 @@ -306,9 +300,6 @@ importers: estree-walker: specifier: ^3.0.3 version: 3.0.3 - fs-extra: - specifier: ^11.2.0 - version: 11.2.0 globby: specifier: ^14.0.1 version: 14.0.1 @@ -430,9 +421,6 @@ importers: '@types/estree': specifier: 1.0.5 version: 1.0.5 - '@types/fs-extra': - specifier: 11.0.4 - version: 11.0.4 '@vitejs/plugin-vue': specifier: 5.0.4 version: 5.0.4(vite@5.3.1(@types/node@20.14.7)(sass@1.69.4)(terser@5.27.0))(vue@3.4.29(typescript@5.5.2)) @@ -653,9 +641,6 @@ importers: externality: specifier: ^1.0.2 version: 1.0.2 - fs-extra: - specifier: ^11.2.0 - version: 11.2.0 get-port-please: specifier: ^3.1.2 version: 3.1.2 @@ -726,9 +711,6 @@ importers: '@types/estree': specifier: 1.0.5 version: 1.0.5 - '@types/fs-extra': - specifier: 11.0.4 - version: 11.0.4 rollup: specifier: ^4.18.0 version: 4.18.0 @@ -777,9 +759,6 @@ importers: fork-ts-checker-webpack-plugin: specifier: ^9.0.2 version: 9.0.2(typescript@5.5.2)(webpack@5.92.1) - fs-extra: - specifier: ^11.2.0 - version: 11.2.0 h3: specifier: ^1.12.0 version: 1.12.0 @@ -874,9 +853,6 @@ importers: '@nuxt/schema': specifier: workspace:* version: link:../schema - '@types/fs-extra': - specifier: 11.0.4 - version: 11.0.4 '@types/hash-sum': specifier: 1.0.2 version: 1.0.2 @@ -2496,9 +2472,6 @@ packages: '@types/file-loader@5.0.4': resolution: {integrity: sha512-aB4X92oi5D2nIGI8/kolnJ47btRM2MQjQS4eJgA/VnCD12x0+kP5v7b5beVQWKHLOcquwUXvv6aMt8PmMy9uug==} - '@types/fs-extra@11.0.4': - resolution: {integrity: sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==} - '@types/google.maps@3.55.9': resolution: {integrity: sha512-phaOMtezbT3NaXPKiI3m0OosUS7Nly0auw3Be5s/CgMWLVoDAUP1Yb/Ld0TRoRp8ibrlT4VqM5kmzfvUA0UNLQ==} @@ -2526,9 +2499,6 @@ packages: '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - '@types/jsonfile@6.1.2': - resolution: {integrity: sha512-8t92P+oeW4d/CRQfJaSqEwXujrhH4OEeHRjGU3v1Q8mUS8GPF3yiX26sw4svv6faL2HfBtGTe2xWIoVgN3dy9w==} - '@types/lodash-es@4.17.12': resolution: {integrity: sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==} @@ -9164,11 +9134,6 @@ snapshots: dependencies: '@types/webpack': 4.41.34 - '@types/fs-extra@11.0.4': - dependencies: - '@types/jsonfile': 6.1.2 - '@types/node': 20.14.7 - '@types/google.maps@3.55.9': {} '@types/hash-sum@1.0.2': {} @@ -9199,10 +9164,6 @@ snapshots: '@types/json-schema@7.0.15': {} - '@types/jsonfile@6.1.2': - dependencies: - '@types/node': 20.14.7 - '@types/lodash-es@4.17.12': dependencies: '@types/lodash': 4.14.200 diff --git a/test/prepare.ts b/test/prepare.ts index 83c2acac2b..e4442a18ac 100644 --- a/test/prepare.ts +++ b/test/prepare.ts @@ -1,6 +1,8 @@ import { fileURLToPath } from 'node:url' +import { rm } from 'node:fs/promises' + import { globby } from 'globby' -import fs from 'fs-extra' + import { execa } from 'execa' async function initTesting () { @@ -12,9 +14,9 @@ async function initTesting () { await Promise.all([ // clear nuxt build files - ...dirs.map(dir => fs.remove(`${dir}/.nuxt`)), + ...dirs.map(dir => rm(`${dir}/.nuxt`, { force: true, recursive: true })), // clear vite cache - ...dirs.map(dir => fs.remove(`${dir}/node_modules/.cache`), { force: true }), + ...dirs.map(dir => rm(`${dir}/node_modules/.cache`, { force: true, recursive: true })), ]) await Promise.all( diff --git a/test/setup.ts b/test/setup.ts index 2655f41fb3..09d429bde6 100644 --- a/test/setup.ts +++ b/test/setup.ts @@ -1,22 +1,25 @@ +import { existsSync } from 'node:fs' +import { cp, rm } from 'node:fs/promises' import { fileURLToPath } from 'node:url' + import { dirname, join } from 'pathe' -import fs from 'fs-extra' const dir = dirname(fileURLToPath(import.meta.url)) const fixtureDir = join(dir, 'fixtures') const tempDir = join(dir, 'fixtures-temp') export async function setup () { - if (fs.existsSync(tempDir)) { - await fs.remove(tempDir) + if (existsSync(tempDir)) { + await rm(tempDir, { force: true, recursive: true }) } - await fs.copy(fixtureDir, tempDir, { + await cp(fixtureDir, tempDir, { + recursive: true, filter: src => !src.includes('.cache'), }) } export async function teardown () { - if (fs.existsSync(tempDir)) { - await fs.remove(tempDir) + if (existsSync(tempDir)) { + await rm(tempDir, { force: true, recursive: true }) } } From 74d4571aa9e9c124ddee68c92e375f9b1389d7cd Mon Sep 17 00:00:00 2001 From: Aviv Keller <38299977+RedYetiDev@users.noreply.github.com> Date: Mon, 24 Jun 2024 04:40:33 -0500 Subject: [PATCH 030/119] ci: resolve bash syntax error (#27789) --- .github/workflows/release-pr.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release-pr.yml b/.github/workflows/release-pr.yml index d2151ea277..f652d7684e 100644 --- a/.github/workflows/release-pr.yml +++ b/.github/workflows/release-pr.yml @@ -41,7 +41,9 @@ jobs: head_sha="$(echo "$pr" | jq -r .head.sha)" updated_at="$(echo "$pr" | jq -r .updated_at)" - if [[ $(date -d $updated_at) > $(date -d $COMMENT_AT) ]]; exit 1; fi + if [[ $(date -d "$updated_at" +%s) -gt $(date -d "$COMMENT_AT" +%s) ]]; then + exit 1 + fi echo "head_sha=$head_sha" >> $GITHUB_OUTPUT - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 From dc9d0fb71b6a84ed7a7ba6baefca6bcca02bc45c Mon Sep 17 00:00:00 2001 From: Julien Huang Date: Mon, 24 Jun 2024 11:41:02 +0200 Subject: [PATCH 031/119] docs: remove outdated tip (#27773) --- docs/5.community/4.contribution.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/docs/5.community/4.contribution.md b/docs/5.community/4.contribution.md index a601e4a51d..3702d845a8 100644 --- a/docs/5.community/4.contribution.md +++ b/docs/5.community/4.contribution.md @@ -32,10 +32,6 @@ We'll do our best to follow our [internal issue decision making flowchart](https ### Send a Pull Request -::Tip -On windows, you need to clone the repository with `git clone -c core.symlinks=true https://github.com/nuxt/nuxt.git` to make symlinks work. -:: - We always welcome pull requests! ❤️ #### Before You Start From 2a01abf11d741526c1c11850d0827867ef85b960 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 24 Jun 2024 10:41:12 +0100 Subject: [PATCH 032/119] chore(deps): update autofix-ci/action digest to dd55f44 (main) (#27783) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/autofix-docs.yml | 2 +- .github/workflows/autofix.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/autofix-docs.yml b/.github/workflows/autofix-docs.yml index d90a8e2f9e..3988622373 100644 --- a/.github/workflows/autofix-docs.yml +++ b/.github/workflows/autofix-docs.yml @@ -30,4 +30,4 @@ jobs: - name: Lint (docs) run: pnpm lint:docs:fix - - uses: autofix-ci/action@ea32e3a12414e6d3183163c3424a7d7a8631ad84 + - uses: autofix-ci/action@dd55f44df8f7cdb7a6bf74c78677eb8acd40cd0a diff --git a/.github/workflows/autofix.yml b/.github/workflows/autofix.yml index 03d5a654f3..ef817dd093 100644 --- a/.github/workflows/autofix.yml +++ b/.github/workflows/autofix.yml @@ -52,4 +52,4 @@ jobs: - name: Lint (code) run: pnpm lint:fix - - uses: autofix-ci/action@ea32e3a12414e6d3183163c3424a7d7a8631ad84 + - uses: autofix-ci/action@dd55f44df8f7cdb7a6bf74c78677eb8acd40cd0a From 4dd71b6f2d882478257a1907089fc00ac1d5f4b5 Mon Sep 17 00:00:00 2001 From: Julien Huang Date: Mon, 24 Jun 2024 11:42:03 +0200 Subject: [PATCH 033/119] fix(nuxt): add `refresh` type in server component refs (#27778) --- packages/nuxt/src/components/templates.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/nuxt/src/components/templates.ts b/packages/nuxt/src/components/templates.ts index ff55e3c7f2..d9dc134e64 100644 --- a/packages/nuxt/src/components/templates.ts +++ b/packages/nuxt/src/components/templates.ts @@ -112,7 +112,7 @@ export const componentsTypeTemplate = { ] }) - const islandType = 'type IslandComponent = T & DefineComponent<{}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, SlotsType<{ fallback: { error: unknown } }>>' + const islandType = 'type IslandComponent = T & DefineComponent<{}, {refresh: () => Promise}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, SlotsType<{ fallback: { error: unknown } }>>' return ` import type { DefineComponent, SlotsType } from 'vue' ${nuxt.options.experimental.componentIslands ? islandType : ''} From 57b7cf5123e59b193a8a3b6583d13e13bae280a2 Mon Sep 17 00:00:00 2001 From: Michael Brevard Date: Mon, 24 Jun 2024 13:03:47 +0300 Subject: [PATCH 034/119] docs: warn about awaiting `useFetch`/`AsyncData` in wrappers (#27785) --- docs/2.guide/4.recipes/3.custom-usefetch.md | 6 +++++- docs/3.api/2.composables/use-async-data.md | 4 ++++ docs/3.api/2.composables/use-fetch.md | 4 ++++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/docs/2.guide/4.recipes/3.custom-usefetch.md b/docs/2.guide/4.recipes/3.custom-usefetch.md index e27af2712f..0aa0162db0 100644 --- a/docs/2.guide/4.recipes/3.custom-usefetch.md +++ b/docs/2.guide/4.recipes/3.custom-usefetch.md @@ -70,7 +70,7 @@ const { data: modules } = await useAsyncData('modules', () => $api('/modules')) Wrapping with [`useAsyncData`](/docs/api/composables/use-async-data) **avoid double data fetching when doing server-side rendering** (server & client on hydration). :: -## Custom `useFetch` +## Custom `useFetch`/`useAsyncData` Now that `$api` has the logic we want, let's create a `useAPI` composable to replace the usage of `useAsyncData` + `$api`: @@ -96,6 +96,10 @@ const { data: modules } = await useAPI('/modules') ``` +::note +This example demonstrates how to use a custom `useFetch`, but the same structure is identical for a custom `useAsyncData`. +:: + ::callout{icon="i-simple-icons-youtube" color="red" to="https://www.youtube.com/watch?v=jXH8Tr-exhI"} Watch a video about custom `$fetch` and Repository Pattern in Nuxt. :: diff --git a/docs/3.api/2.composables/use-async-data.md b/docs/3.api/2.composables/use-async-data.md index b839fb1d08..24b35bb497 100644 --- a/docs/3.api/2.composables/use-async-data.md +++ b/docs/3.api/2.composables/use-async-data.md @@ -25,6 +25,10 @@ const { data, pending, error, refresh, clear } = await useAsyncData( ``` +::warning +If you're using a custom useAsyncData wrapper, do not await it in the composable, as that can cause unexpected behavior. Please follow [this recipe](/docs/guide/recipes/custom-usefetch#custom-usefetch) for more information on how to make a custom async data fetcher. +:: + ::note `data`, `pending`, `status` and `error` are Vue refs and they should be accessed with `.value` when used within the ` ``` +::warning +If you're using a custom useFetch wrapper, do not await it in the composable, as that can cause unexpected behavior. Please follow [this recipe](/docs/guide/recipes/custom-usefetch#custom-usefetch) for more information on how to make a custom async data fetcher. +:: + ::note `data`, `pending`, `status` and `error` are Vue refs and they should be accessed with `.value` when used within the ` + `, filePath) + + expect(meta).toMatchInlineSnapshot(` + { + "meta": { + "__nuxt_dynamic_meta_key": Set { + "meta", + }, + }, + } + `) + }) }) describe('normalizeRoutes', () => { From 49959fd9add7873edd140941e3e3cf05f70c93bf Mon Sep 17 00:00:00 2001 From: Dominic <67210734+rexhent@users.noreply.github.com> Date: Wed, 26 Jun 2024 06:30:37 +1000 Subject: [PATCH 042/119] docs: update some code groups with package manager examples (#27791) --- docs/1.getting-started/12.upgrade.md | 18 +++++++++++++++++- docs/1.getting-started/2.installation.md | 6 +++++- docs/1.getting-started/4.styling.md | 18 +++++++++++++++++- docs/1.getting-started/9.prerendering.md | 18 +++++++++++++++++- 4 files changed, 56 insertions(+), 4 deletions(-) diff --git a/docs/1.getting-started/12.upgrade.md b/docs/1.getting-started/12.upgrade.md index a1720402e8..760b8c306d 100644 --- a/docs/1.getting-started/12.upgrade.md +++ b/docs/1.getting-started/12.upgrade.md @@ -11,10 +11,26 @@ navigation.icon: i-ph-arrow-circle-up-duotone To upgrade Nuxt to the [latest release](https://github.com/nuxt/nuxt/releases), use the `nuxi upgrade` command. -```bash [Terminal] +::code-group + +```bash [npm] npx nuxi upgrade ``` +```bash [yarn] +yarn dlx nuxi upgrade +``` + +```bash [pnpm] +pnpm dlx nuxi upgrade +``` + +```bash [bun] +bunx nuxi upgrade +``` + +:: + ### Nightly Release Channel To use the latest Nuxt build and test features before their release, read about the [nightly release channel](/docs/guide/going-further/nightly-release-channel) guide. diff --git a/docs/1.getting-started/2.installation.md b/docs/1.getting-started/2.installation.md index 1af58ad887..79c9ca8ed7 100644 --- a/docs/1.getting-started/2.installation.md +++ b/docs/1.getting-started/2.installation.md @@ -37,10 +37,14 @@ Open a terminal (if you're using [Visual Studio Code](https://code.visualstudio. ::code-group -```bash [npx] +```bash [npm] npx nuxi@latest init ``` +```bash [yarn] +yarn dlx nuxi@latest init +``` + ```bash [pnpm] pnpm dlx nuxi@latest init ``` diff --git a/docs/1.getting-started/4.styling.md b/docs/1.getting-started/4.styling.md index aac7cc8166..4df9322486 100644 --- a/docs/1.getting-started/4.styling.md +++ b/docs/1.getting-started/4.styling.md @@ -77,10 +77,26 @@ h1 { You can also reference stylesheets that are distributed through npm. Let's use the popular `animate.css` library as an example. -```bash [Terminal] +::code-group + +```bash [npm] npm install animate.css ``` +```bash [yarn] +yarn add animate.css +``` + +```bash [pnpm] +pnpm install animate.css +``` + +```bash [bun] +bun install animate.css +``` + +:: + Then you can reference it directly in your pages, layouts and components: ```vue [app.vue] diff --git a/docs/1.getting-started/9.prerendering.md b/docs/1.getting-started/9.prerendering.md index ee63d7b285..e4c9cff5d3 100644 --- a/docs/1.getting-started/9.prerendering.md +++ b/docs/1.getting-started/9.prerendering.md @@ -14,10 +14,26 @@ Use the [`nuxi generate` command](/docs/api/commands/generate) to build and pre- This will build your site, stand up a nuxt instance, and, by default, prerender the root page `/` along with any of your site's pages it links to, any of your site's pages they link to, and so on. -```bash [Terminal] +::code-group + +```bash [npm] npx nuxi generate ``` +```bash [yarn] +yarn dlx nuxi generate +``` + +```bash [pnpm] +pnpm dlx nuxi generate +``` + +```bash [bun] +bunx nuxi generate +``` + +:: + You can now deploy the `.output/public` directory to any static hosting service or preview it locally with `npx serve .output/public`. Working of the Nitro crawler: From 07ad89cd7f6fb5ed07f9d8a9f0da734c13e24824 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Wed, 26 Jun 2024 11:31:45 +0200 Subject: [PATCH 043/119] fix(kit)!: support loading nuxt 4 and drop support for <=2 (#27837) --- packages/kit/src/loader/nuxt.ts | 50 ++++++--------------------------- 1 file changed, 8 insertions(+), 42 deletions(-) diff --git a/packages/kit/src/loader/nuxt.ts b/packages/kit/src/loader/nuxt.ts index 85c4498313..e34f8af341 100644 --- a/packages/kit/src/loader/nuxt.ts +++ b/packages/kit/src/loader/nuxt.ts @@ -1,6 +1,7 @@ import { pathToFileURL } from 'node:url' import { readPackageJSON, resolvePackageJSON } from 'pkg-types' import type { Nuxt } from '@nuxt/schema' +import { resolve } from 'pathe' import { importModule, tryImportModule } from '../internal/esm' import type { LoadNuxtConfigOptions } from './config' @@ -10,64 +11,29 @@ export interface LoadNuxtOptions extends LoadNuxtConfigOptions { /** Use lazy initialization of nuxt if set to false */ ready?: boolean - - /** @deprecated Use cwd option */ - rootDir?: LoadNuxtConfigOptions['cwd'] - - /** @deprecated use overrides option */ - config?: LoadNuxtConfigOptions['overrides'] } export async function loadNuxt (opts: LoadNuxtOptions): Promise { // Backward compatibility - opts.cwd = opts.cwd || opts.rootDir - opts.overrides = opts.overrides || opts.config || {} + opts.cwd = resolve(opts.cwd || (opts as any).rootDir /* backwards compat */ || '.') + opts.overrides = opts.overrides || (opts as any).config as {} /* backwards compat */ || {} // Apply dev as config override opts.overrides.dev = !!opts.dev - const nearestNuxtPkg = await Promise.all(['nuxt-nightly', 'nuxt3', 'nuxt', 'nuxt-edge'] + const nearestNuxtPkg = await Promise.all(['nuxt-nightly', 'nuxt'] .map(pkg => resolvePackageJSON(pkg, { url: opts.cwd }).catch(() => null))) .then(r => (r.filter(Boolean) as string[]).sort((a, b) => b.length - a.length)[0]) if (!nearestNuxtPkg) { throw new Error(`Cannot find any nuxt version from ${opts.cwd}`) } const pkg = await readPackageJSON(nearestNuxtPkg) - const majorVersion = pkg.version ? Number.parseInt(pkg.version.split('.')[0]) : '' - const rootDir = pathToFileURL(opts.cwd || process.cwd()).href + const rootDir = pathToFileURL(opts.cwd!).href - // Nuxt 3 - if (majorVersion === 3) { - const { loadNuxt } = await importModule((pkg as any)._name || pkg.name, rootDir) - const nuxt = await loadNuxt(opts) - return nuxt - } - - // Nuxt 2 - const { loadNuxt } = await tryImportModule('nuxt-edge', rootDir) || await importModule('nuxt', rootDir) - const nuxt = await loadNuxt({ - rootDir: opts.cwd, - for: opts.dev ? 'dev' : 'build', - configOverrides: opts.overrides, - ready: opts.ready, - envConfig: opts.dotenv, // TODO: Backward format conversion - }) - - // Mock new hookable methods - nuxt.removeHook ||= nuxt.clearHook.bind(nuxt) - nuxt.removeAllHooks ||= nuxt.clearHooks.bind(nuxt) - nuxt.hookOnce ||= (name: string, fn: (...args: any[]) => any, ...hookArgs: any[]) => { - const unsub = nuxt.hook(name, (...args: any[]) => { - unsub() - return fn(...args) - }, ...hookArgs) - return unsub - } - // https://github.com/nuxt/nuxt/tree/main/packages/kit/src/module/define.ts#L111-L113 - nuxt.hooks ||= nuxt - - return nuxt as Nuxt + const { loadNuxt } = await importModule((pkg as any)._name || pkg.name, rootDir) + const nuxt = await loadNuxt(opts) + return nuxt } export async function buildNuxt (nuxt: Nuxt): Promise { From e9a531eb1f1f8b23150a7be0e81125171d028398 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 26 Jun 2024 11:51:13 +0200 Subject: [PATCH 044/119] chore(deps): update all non-major dependencies (main) (#27825) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Daniel Roe --- package.json | 2 +- packages/ui-templates/package.json | 2 +- pnpm-lock.yaml | 238 ++++++++++++++--------------- 3 files changed, 118 insertions(+), 124 deletions(-) diff --git a/package.json b/package.json index a2039fce37..bab6cc7fdd 100644 --- a/package.json +++ b/package.json @@ -53,7 +53,7 @@ "@nuxt/webpack-builder": "workspace:*", "@testing-library/vue": "8.1.0", "@types/eslint__js": "8.42.3", - "@types/node": "20.14.8", + "@types/node": "20.14.9", "@types/semver": "7.5.8", "@unhead/schema": "1.9.14", "@vitejs/plugin-vue": "5.0.4", diff --git a/packages/ui-templates/package.json b/packages/ui-templates/package.json index c7ad01cac1..21ebba1938 100644 --- a/packages/ui-templates/package.json +++ b/packages/ui-templates/package.json @@ -21,7 +21,7 @@ "devDependencies": { "@types/html-minifier": "4.0.5", "@unocss/reset": "0.61.0", - "critters": "0.0.23", + "critters": "0.0.24", "execa": "9.3.0", "globby": "14.0.1", "html-minifier": "4.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d88712fc53..1ad7ac140c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -31,7 +31,7 @@ importers: version: link:packages/kit '@nuxt/test-utils': specifier: 3.13.1 - version: 3.13.1(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.30)(vue@3.4.30(typescript@5.5.2)))(@vue/test-utils@2.4.6)(h3@1.12.0)(happy-dom@14.12.3)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.45.0)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.8)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0))(vue-router@4.4.0(vue@3.4.30(typescript@5.5.2)))(vue@3.4.30(typescript@5.5.2)) + version: 3.13.1(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.30)(vue@3.4.30(typescript@5.5.2)))(@vue/test-utils@2.4.6)(h3@1.12.0)(happy-dom@14.12.3)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.45.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.9)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0))(vue-router@4.4.0(vue@3.4.30(typescript@5.5.2)))(vue@3.4.30(typescript@5.5.2)) '@nuxt/webpack-builder': specifier: workspace:* version: link:packages/webpack @@ -42,8 +42,8 @@ importers: specifier: 8.42.3 version: 8.42.3 '@types/node': - specifier: 20.14.8 - version: 20.14.8 + specifier: 20.14.9 + version: 20.14.9 '@types/semver': specifier: 7.5.8 version: 7.5.8 @@ -52,10 +52,10 @@ importers: version: 1.9.14 '@vitejs/plugin-vue': specifier: 5.0.4 - version: 5.0.4(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0))(vue@3.4.30(typescript@5.5.2)) + version: 5.0.4(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))(vue@3.4.30(typescript@5.5.2)) '@vitest/coverage-v8': specifier: 1.6.0 - version: 1.6.0(vitest@1.6.0(@types/node@20.14.8)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0)) + version: 1.6.0(vitest@1.6.0(@types/node@20.14.9)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0)) '@vue/test-utils': specifier: 2.4.6 version: 2.4.6 @@ -139,10 +139,10 @@ importers: version: 1.5.3 vitest: specifier: 1.6.0 - version: 1.6.0(@types/node@20.14.8)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0) + version: 1.6.0(@types/node@20.14.9)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0) vitest-environment-nuxt: specifier: 1.0.0 - version: 1.0.0(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.30)(vue@3.4.30(typescript@5.5.2)))(@vue/test-utils@2.4.6)(h3@1.12.0)(happy-dom@14.12.3)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.45.0)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.8)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0))(vue-router@4.4.0(vue@3.4.30(typescript@5.5.2)))(vue@3.4.30(typescript@5.5.2)) + version: 1.0.0(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.30)(vue@3.4.30(typescript@5.5.2)))(@vue/test-utils@2.4.6)(h3@1.12.0)(happy-dom@14.12.3)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.45.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.9)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0))(vue-router@4.4.0(vue@3.4.30(typescript@5.5.2)))(vue@3.4.30(typescript@5.5.2)) vue: specifier: 3.4.30 version: 3.4.30(typescript@5.5.2) @@ -227,10 +227,10 @@ importers: version: 2.0.0(sass@1.69.4)(typescript@5.5.2) vite: specifier: 5.3.1 - version: 5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0) + version: 5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0) vitest: specifier: 1.6.0 - version: 1.6.0(@types/node@20.14.8)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0) + version: 1.6.0(@types/node@20.14.9)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0) webpack: specifier: 5.92.1 version: 5.92.1 @@ -242,7 +242,7 @@ importers: version: 2.0.2 '@nuxt/devtools': specifier: ^1.3.6 - version: 1.3.6(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0)) + version: 1.3.6(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0)) '@nuxt/kit': specifier: workspace:* version: link:../kit @@ -257,7 +257,7 @@ importers: version: link:../vite '@types/node': specifier: ^14.18.0 || >=16.10.0 - version: 20.14.8 + version: 20.14.9 '@unhead/dom': specifier: ^1.9.14 version: 1.9.14 @@ -411,7 +411,7 @@ importers: devDependencies: '@nuxt/scripts': specifier: 0.5.1 - version: 0.5.1(@nuxt/devtools@1.3.6(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0)))(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(@vue/compiler-core@3.4.30)(ioredis@5.3.2)(nuxt@packages+nuxt)(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0))(vue@3.4.30(typescript@5.5.2))(webpack@5.92.1(esbuild@0.21.5)) + version: 0.5.1(@nuxt/devtools@1.3.6(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0)))(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(@vue/compiler-core@3.4.30)(ioredis@5.3.2)(nuxt@packages+nuxt)(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))(vue@3.4.30(typescript@5.5.2))(webpack@5.92.1(esbuild@0.21.5)) '@nuxt/ui-templates': specifier: workspace:* version: link:../ui-templates @@ -423,7 +423,7 @@ importers: version: 1.0.5 '@vitejs/plugin-vue': specifier: 5.0.4 - version: 5.0.4(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0))(vue@3.4.30(typescript@5.5.2)) + version: 5.0.4(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))(vue@3.4.30(typescript@5.5.2)) '@vue/compiler-sfc': specifier: 3.4.30 version: 3.4.30 @@ -432,10 +432,10 @@ importers: version: 2.0.0(sass@1.69.4)(typescript@5.5.2) vite: specifier: 5.3.1 - version: 5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0) + version: 5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0) vitest: specifier: 1.6.0 - version: 1.6.0(@types/node@20.14.8)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0) + version: 1.6.0(@types/node@20.14.9)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0) packages/schema: dependencies: @@ -496,10 +496,10 @@ importers: version: 1.9.14 '@vitejs/plugin-vue': specifier: 5.0.4 - version: 5.0.4(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0))(vue@3.4.30(typescript@5.5.2)) + version: 5.0.4(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))(vue@3.4.30(typescript@5.5.2)) '@vitejs/plugin-vue-jsx': specifier: 4.0.0 - version: 4.0.0(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0))(vue@3.4.30(typescript@5.5.2)) + version: 4.0.0(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))(vue@3.4.30(typescript@5.5.2)) '@vue/compiler-core': specifier: 3.4.30 version: 3.4.30 @@ -538,7 +538,7 @@ importers: version: 1.9.0 vite: specifier: 5.3.1 - version: 5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0) + version: 5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0) vue: specifier: 3.4.30 version: 3.4.30(typescript@5.5.2) @@ -567,8 +567,8 @@ importers: specifier: 0.61.0 version: 0.61.0 critters: - specifier: 0.0.23 - version: 0.0.23 + specifier: 0.0.24 + version: 0.0.24 execa: specifier: 9.3.0 version: 9.3.0 @@ -595,10 +595,10 @@ importers: version: 1.3.0 unocss: specifier: 0.61.0 - version: 0.61.0(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0)) + version: 0.61.0(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0)) vite: specifier: 5.3.1 - version: 5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0) + version: 5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0) packages/vite: dependencies: @@ -610,10 +610,10 @@ importers: version: 5.0.7(rollup@4.18.0) '@vitejs/plugin-vue': specifier: ^5.0.4 - version: 5.0.4(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0))(vue@3.4.30(typescript@5.5.2)) + version: 5.0.4(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))(vue@3.4.30(typescript@5.5.2)) '@vitejs/plugin-vue-jsx': specifier: ^4.0.0 - version: 4.0.0(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0))(vue@3.4.30(typescript@5.5.2)) + version: 4.0.0(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))(vue@3.4.30(typescript@5.5.2)) autoprefixer: specifier: ^10.4.19 version: 10.4.19(postcss@8.4.38) @@ -691,13 +691,13 @@ importers: version: 1.10.1 vite: specifier: 5.3.1 - version: 5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0) + version: 5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0) vite-node: specifier: ^1.6.0 - version: 1.6.0(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0) + version: 1.6.0(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0) vite-plugin-checker: specifier: ^0.6.4 - version: 0.6.4(eslint@9.5.0)(optionator@0.9.3)(typescript@5.5.2)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0))(vue-tsc@2.0.22(typescript@5.5.2)) + version: 0.6.4(eslint@9.5.0)(optionator@0.9.3)(typescript@5.5.2)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))(vue-tsc@2.0.22(typescript@5.5.2)) vue-bundle-renderer: specifier: ^2.1.0 version: 2.1.0 @@ -947,7 +947,7 @@ importers: version: 0.10.0(rollup@4.18.0)(vue-router@4.4.0(vue@3.4.30(typescript@5.5.2)))(vue@3.4.30(typescript@5.5.2)) vitest: specifier: 1.6.0 - version: 1.6.0(@types/node@20.14.8)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0) + version: 1.6.0(@types/node@20.14.9)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0) vue: specifier: 3.4.30 version: 3.4.30(typescript@5.5.2) @@ -2515,8 +2515,8 @@ packages: '@types/node-sass@4.11.6': resolution: {integrity: sha512-Qkf5Fs9zzsXchenUY7oVdIHyv8FtPgqIXqOJzhh3FDqpYjqvc/gtZ3hlZVFmKQhl7wyI4+WkRbYufYC5pfY7iw==} - '@types/node@20.14.8': - resolution: {integrity: sha512-DO+2/jZinXfROG7j7WKFn/3C6nFwxy2lLpgLjEXJz+0XKphZlTLJ14mo8Vfg8X5BWN6XjyESXq+LcYdT7tR3bA==} + '@types/node@20.14.9': + resolution: {integrity: sha512-06OCtnTXtWOZBJlRApleWndH4JsRVs1pDCc8dLSQp+7PpUpX3ePdHyeNSFTeSe7FtKyQkrlPvHwJOW3SLd8Oyg==} '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -3633,8 +3633,8 @@ packages: create-require@1.1.1: resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} - critters@0.0.23: - resolution: {integrity: sha512-/MCsQbuzTPA/ZTOjjyr2Na5o3lRpr8vd0MZE8tMP0OBNg/VrLxWHteVKalQ8KR+fBmUadbJLdoyEz9sT+q84qg==} + critters@0.0.24: + resolution: {integrity: sha512-Oyqew0FGM0wYUSNqR0L6AteO5MpMoUU0rhKRieXeiKs+PmRTxiJMyaunYB2KF6fQ3dzChXKCpbFOEJx3OQ1v/Q==} croner@8.0.1: resolution: {integrity: sha512-Hq1+lXVgjJjcS/U+uk6+yVmtxami0r0b+xVtlGyABgdz110l/kOnHWvlSI7nVzrTl8GCdZHwZS4pbBFT7hSL/g==} @@ -7520,10 +7520,6 @@ packages: yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - yaml@2.3.4: - resolution: {integrity: sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==} - engines: {node: '>= 14'} - yaml@2.4.5: resolution: {integrity: sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==} engines: {node: '>= 14'} @@ -8229,7 +8225,7 @@ snapshots: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.5 '@types/istanbul-reports': 3.0.3 - '@types/node': 20.14.8 + '@types/node': 20.14.9 '@types/yargs': 17.0.28 chalk: 4.1.2 @@ -8385,33 +8381,33 @@ snapshots: '@nuxt/devalue@2.0.2': {} - '@nuxt/devtools-kit@1.3.3(nuxt@packages+nuxt)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0))': + '@nuxt/devtools-kit@1.3.3(nuxt@packages+nuxt)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))': dependencies: '@nuxt/kit': link:packages/kit '@nuxt/schema': link:packages/schema execa: 7.2.0 nuxt: link:packages/nuxt - vite: 5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0) + vite: 5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0) - '@nuxt/devtools-kit@1.3.6(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0))': + '@nuxt/devtools-kit@1.3.6(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))': dependencies: '@nuxt/kit': link:packages/kit '@nuxt/schema': link:packages/schema execa: 7.2.0 - vite: 5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0) + vite: 5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0) - '@nuxt/devtools-ui-kit@1.3.3(@nuxt/devtools@1.3.6(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0)))(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(@vue/compiler-core@3.4.30)(nuxt@packages+nuxt)(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0))(vue@3.4.30(typescript@5.5.2))(webpack@5.92.1(esbuild@0.21.5))': + '@nuxt/devtools-ui-kit@1.3.3(@nuxt/devtools@1.3.6(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0)))(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(@vue/compiler-core@3.4.30)(nuxt@packages+nuxt)(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))(vue@3.4.30(typescript@5.5.2))(webpack@5.92.1(esbuild@0.21.5))': dependencies: '@iconify-json/carbon': 1.1.35 '@iconify-json/logos': 1.1.43 '@iconify-json/ri': 1.1.20 '@iconify-json/tabler': 1.1.113 - '@nuxt/devtools': 1.3.6(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0)) - '@nuxt/devtools-kit': 1.3.3(nuxt@packages+nuxt)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0)) + '@nuxt/devtools': 1.3.6(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0)) + '@nuxt/devtools-kit': 1.3.3(nuxt@packages+nuxt)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0)) '@nuxt/kit': link:packages/kit '@nuxtjs/color-mode': 3.4.1 '@unocss/core': 0.60.4 - '@unocss/nuxt': 0.60.4(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0))(webpack@5.92.1(esbuild@0.21.5)) + '@unocss/nuxt': 0.60.4(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))(webpack@5.92.1(esbuild@0.21.5)) '@unocss/preset-attributify': 0.60.4 '@unocss/preset-icons': 0.60.4 '@unocss/preset-mini': 0.60.4 @@ -8422,7 +8418,7 @@ snapshots: defu: 6.1.4 focus-trap: 7.5.4 splitpanes: 3.1.5 - unocss: 0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0)) + unocss: 0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0)) v-lazy-show: 0.2.4(@vue/compiler-core@3.4.30) transitivePeerDependencies: - '@unocss/webpack' @@ -8460,13 +8456,13 @@ snapshots: rc9: 2.1.2 semver: 7.6.2 - '@nuxt/devtools@1.3.6(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0))': + '@nuxt/devtools@1.3.6(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))': dependencies: '@antfu/utils': 0.7.8 - '@nuxt/devtools-kit': 1.3.6(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0)) + '@nuxt/devtools-kit': 1.3.6(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0)) '@nuxt/devtools-wizard': 1.3.6 '@nuxt/kit': link:packages/kit - '@vue/devtools-core': 7.3.3(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0)) + '@vue/devtools-core': 7.3.3(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0)) '@vue/devtools-kit': 7.3.3 birpc: 0.2.17 consola: 3.2.3 @@ -8495,9 +8491,9 @@ snapshots: simple-git: 3.25.0 sirv: 2.0.4 unimport: 3.7.2(rollup@4.18.0) - vite: 5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0) - vite-plugin-inspect: 0.8.4(@nuxt/kit@packages+kit)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0)) - vite-plugin-vue-inspector: 5.1.2(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0)) + vite: 5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0) + vite-plugin-inspect: 0.8.4(@nuxt/kit@packages+kit)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0)) + vite-plugin-vue-inspector: 5.1.2(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0)) which: 3.0.1 ws: 8.17.1 transitivePeerDependencies: @@ -8548,10 +8544,10 @@ snapshots: string-width: 4.2.3 webpack: 5.92.1 - '@nuxt/scripts@0.5.1(@nuxt/devtools@1.3.6(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0)))(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(@vue/compiler-core@3.4.30)(ioredis@5.3.2)(nuxt@packages+nuxt)(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0))(vue@3.4.30(typescript@5.5.2))(webpack@5.92.1(esbuild@0.21.5))': + '@nuxt/scripts@0.5.1(@nuxt/devtools@1.3.6(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0)))(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(@vue/compiler-core@3.4.30)(ioredis@5.3.2)(nuxt@packages+nuxt)(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))(vue@3.4.30(typescript@5.5.2))(webpack@5.92.1(esbuild@0.21.5))': dependencies: - '@nuxt/devtools-kit': 1.3.6(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0)) - '@nuxt/devtools-ui-kit': 1.3.3(@nuxt/devtools@1.3.6(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0)))(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(@vue/compiler-core@3.4.30)(nuxt@packages+nuxt)(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0))(vue@3.4.30(typescript@5.5.2))(webpack@5.92.1(esbuild@0.21.5)) + '@nuxt/devtools-kit': 1.3.6(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0)) + '@nuxt/devtools-ui-kit': 1.3.3(@nuxt/devtools@1.3.6(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0)))(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(@vue/compiler-core@3.4.30)(nuxt@packages+nuxt)(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))(vue@3.4.30(typescript@5.5.2))(webpack@5.92.1(esbuild@0.21.5)) '@nuxt/kit': link:packages/kit '@types/google.maps': 3.55.9 '@types/stripe-v3': 3.1.33 @@ -8636,7 +8632,7 @@ snapshots: rc9: 2.1.2 std-env: 3.7.0 - '@nuxt/test-utils@3.13.1(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.30)(vue@3.4.30(typescript@5.5.2)))(@vue/test-utils@2.4.6)(h3@1.12.0)(happy-dom@14.12.3)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.45.0)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.8)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0))(vue-router@4.4.0(vue@3.4.30(typescript@5.5.2)))(vue@3.4.30(typescript@5.5.2))': + '@nuxt/test-utils@3.13.1(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.30)(vue@3.4.30(typescript@5.5.2)))(@vue/test-utils@2.4.6)(h3@1.12.0)(happy-dom@14.12.3)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.45.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.9)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0))(vue-router@4.4.0(vue@3.4.30(typescript@5.5.2)))(vue@3.4.30(typescript@5.5.2))': dependencies: '@nuxt/kit': link:packages/kit '@nuxt/schema': link:packages/schema @@ -8662,8 +8658,8 @@ snapshots: ufo: 1.5.3 unenv: 1.9.0 unplugin: 1.10.1 - vite: 5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0) - vitest-environment-nuxt: 1.0.0(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.30)(vue@3.4.30(typescript@5.5.2)))(@vue/test-utils@2.4.6)(h3@1.12.0)(happy-dom@14.12.3)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.45.0)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.8)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0))(vue-router@4.4.0(vue@3.4.30(typescript@5.5.2)))(vue@3.4.30(typescript@5.5.2)) + vite: 5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0) + vitest-environment-nuxt: 1.0.0(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.30)(vue@3.4.30(typescript@5.5.2)))(@vue/test-utils@2.4.6)(h3@1.12.0)(happy-dom@14.12.3)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.45.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.9)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0))(vue-router@4.4.0(vue@3.4.30(typescript@5.5.2)))(vue@3.4.30(typescript@5.5.2)) vue: 3.4.30(typescript@5.5.2) vue-router: 4.4.0(vue@3.4.30(typescript@5.5.2)) optionalDependencies: @@ -8671,7 +8667,7 @@ snapshots: '@vue/test-utils': 2.4.6 happy-dom: 14.12.3 playwright-core: 1.45.0 - vitest: 1.6.0(@types/node@20.14.8)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0) + vitest: 1.6.0(@types/node@20.14.9)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0) transitivePeerDependencies: - magicast @@ -9064,14 +9060,14 @@ snapshots: '@types/clean-css@4.2.11': dependencies: - '@types/node': 20.14.8 + '@types/node': 20.14.9 source-map: 0.6.1 '@types/clear@0.1.4': {} '@types/connect@3.4.37': dependencies: - '@types/node': 20.14.8 + '@types/node': 20.14.9 '@types/debug@4.1.12': dependencies: @@ -9113,7 +9109,7 @@ snapshots: '@types/http-proxy@1.17.14': dependencies: - '@types/node': 20.14.8 + '@types/node': 20.14.9 '@types/istanbul-lib-coverage@2.0.5': {} @@ -9141,9 +9137,9 @@ snapshots: '@types/node-sass@4.11.6': dependencies: - '@types/node': 20.14.8 + '@types/node': 20.14.9 - '@types/node@20.14.8': + '@types/node@20.14.9': dependencies: undici-types: 5.26.5 @@ -9159,7 +9155,7 @@ snapshots: '@types/sass-loader@8.0.8': dependencies: - '@types/node': 20.14.8 + '@types/node': 20.14.9 '@types/node-sass': 4.11.6 '@types/webpack': 4.41.34 sass: 1.69.4 @@ -9186,7 +9182,7 @@ snapshots: '@types/webpack-bundle-analyzer@4.7.0': dependencies: - '@types/node': 20.14.8 + '@types/node': 20.14.9 tapable: 2.2.1 webpack: 5.92.1 transitivePeerDependencies: @@ -9208,13 +9204,13 @@ snapshots: '@types/webpack-sources@3.2.1': dependencies: - '@types/node': 20.14.8 + '@types/node': 20.14.9 '@types/source-list-map': 0.1.4 source-map: 0.7.4 '@types/webpack@4.41.34': dependencies: - '@types/node': 20.14.8 + '@types/node': 20.14.9 '@types/tapable': 1.0.10 '@types/uglify-js': 3.17.3 '@types/webpack-sources': 3.2.1 @@ -9345,23 +9341,23 @@ snapshots: unhead: 1.9.14 vue: 3.4.30(typescript@5.5.2) - '@unocss/astro@0.60.4(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0))': + '@unocss/astro@0.60.4(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))': dependencies: '@unocss/core': 0.60.4 '@unocss/reset': 0.60.4 - '@unocss/vite': 0.60.4(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0)) + '@unocss/vite': 0.60.4(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0)) optionalDependencies: - vite: 5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0) + vite: 5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0) transitivePeerDependencies: - rollup - '@unocss/astro@0.61.0(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0))': + '@unocss/astro@0.61.0(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))': dependencies: '@unocss/core': 0.61.0 '@unocss/reset': 0.61.0 - '@unocss/vite': 0.61.0(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0)) + '@unocss/vite': 0.61.0(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0)) optionalDependencies: - vite: 5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0) + vite: 5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0) transitivePeerDependencies: - rollup @@ -9437,7 +9433,7 @@ snapshots: gzip-size: 6.0.0 sirv: 2.0.4 - '@unocss/nuxt@0.60.4(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0))(webpack@5.92.1(esbuild@0.21.5))': + '@unocss/nuxt@0.60.4(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))(webpack@5.92.1(esbuild@0.21.5))': dependencies: '@nuxt/kit': link:packages/kit '@unocss/config': 0.60.4 @@ -9450,9 +9446,9 @@ snapshots: '@unocss/preset-web-fonts': 0.60.4 '@unocss/preset-wind': 0.60.4 '@unocss/reset': 0.60.4 - '@unocss/vite': 0.60.4(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0)) + '@unocss/vite': 0.60.4(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0)) '@unocss/webpack': 0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)) - unocss: 0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0)) + unocss: 0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0)) transitivePeerDependencies: - postcss - rollup @@ -9642,7 +9638,7 @@ snapshots: dependencies: '@unocss/core': 0.61.0 - '@unocss/vite@0.60.4(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0))': + '@unocss/vite@0.60.4(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))': dependencies: '@ampproject/remapping': 2.3.0 '@rollup/pluginutils': 5.1.0(rollup@4.18.0) @@ -9654,11 +9650,11 @@ snapshots: chokidar: 3.6.0 fast-glob: 3.3.2 magic-string: 0.30.10 - vite: 5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0) + vite: 5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0) transitivePeerDependencies: - rollup - '@unocss/vite@0.61.0(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0))': + '@unocss/vite@0.61.0(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))': dependencies: '@ampproject/remapping': 2.3.0 '@rollup/pluginutils': 5.1.0(rollup@4.18.0) @@ -9670,7 +9666,7 @@ snapshots: chokidar: 3.6.0 fast-glob: 3.3.2 magic-string: 0.30.10 - vite: 5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0) + vite: 5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0) transitivePeerDependencies: - rollup @@ -9707,22 +9703,22 @@ snapshots: - encoding - supports-color - '@vitejs/plugin-vue-jsx@4.0.0(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0))(vue@3.4.30(typescript@5.5.2))': + '@vitejs/plugin-vue-jsx@4.0.0(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))(vue@3.4.30(typescript@5.5.2))': dependencies: '@babel/core': 7.24.7 '@babel/plugin-transform-typescript': 7.24.7(@babel/core@7.24.7) '@vue/babel-plugin-jsx': 1.2.2(@babel/core@7.24.7) - vite: 5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0) + vite: 5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0) vue: 3.4.30(typescript@5.5.2) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue@5.0.4(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0))(vue@3.4.30(typescript@5.5.2))': + '@vitejs/plugin-vue@5.0.4(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))(vue@3.4.30(typescript@5.5.2))': dependencies: - vite: 5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0) + vite: 5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0) vue: 3.4.30(typescript@5.5.2) - '@vitest/coverage-v8@1.6.0(vitest@1.6.0(@types/node@20.14.8)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0))': + '@vitest/coverage-v8@1.6.0(vitest@1.6.0(@types/node@20.14.9)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0))': dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 0.2.3 @@ -9737,7 +9733,7 @@ snapshots: std-env: 3.7.0 strip-literal: 2.1.0 test-exclude: 6.0.0 - vitest: 1.6.0(@types/node@20.14.8)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0) + vitest: 1.6.0(@types/node@20.14.9)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0) transitivePeerDependencies: - supports-color @@ -9864,14 +9860,14 @@ snapshots: '@vue/devtools-api@6.6.3': {} - '@vue/devtools-core@7.3.3(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0))': + '@vue/devtools-core@7.3.3(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))': dependencies: '@vue/devtools-kit': 7.3.3 '@vue/devtools-shared': 7.3.4 mitt: 3.0.1 nanoid: 3.3.7 pathe: 1.1.2 - vite-hot-client: 0.2.3(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0)) + vite-hot-client: 0.2.3(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0)) transitivePeerDependencies: - vite @@ -10450,7 +10446,7 @@ snapshots: scule: 1.3.0 semver: 7.6.2 std-env: 3.7.0 - yaml: 2.3.4 + yaml: 2.4.5 transitivePeerDependencies: - magicast @@ -10629,7 +10625,7 @@ snapshots: create-require@1.1.1: {} - critters@0.0.23: + critters@0.0.24: dependencies: chalk: 4.1.2 css-select: 5.1.0 @@ -12140,7 +12136,7 @@ snapshots: jest-util@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 20.14.8 + '@types/node': 20.14.9 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -12148,13 +12144,13 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 20.14.8 + '@types/node': 20.14.9 merge-stream: 2.0.0 supports-color: 8.1.1 jest-worker@29.7.0: dependencies: - '@types/node': 20.14.8 + '@types/node': 20.14.9 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -14651,9 +14647,9 @@ snapshots: universalify@2.0.0: {} - unocss@0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0)): + unocss@0.60.4(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0)): dependencies: - '@unocss/astro': 0.60.4(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0)) + '@unocss/astro': 0.60.4(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0)) '@unocss/cli': 0.60.4(rollup@4.18.0) '@unocss/core': 0.60.4 '@unocss/extractor-arbitrary-variants': 0.60.4 @@ -14672,18 +14668,18 @@ snapshots: '@unocss/transformer-compile-class': 0.60.4 '@unocss/transformer-directives': 0.60.4 '@unocss/transformer-variant-group': 0.60.4 - '@unocss/vite': 0.60.4(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0)) + '@unocss/vite': 0.60.4(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0)) optionalDependencies: '@unocss/webpack': 0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)) - vite: 5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0) + vite: 5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0) transitivePeerDependencies: - postcss - rollup - supports-color - unocss@0.61.0(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0)): + unocss@0.61.0(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0)): dependencies: - '@unocss/astro': 0.61.0(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0)) + '@unocss/astro': 0.61.0(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0)) '@unocss/cli': 0.61.0(rollup@4.18.0) '@unocss/core': 0.61.0 '@unocss/extractor-arbitrary-variants': 0.61.0 @@ -14702,9 +14698,9 @@ snapshots: '@unocss/transformer-compile-class': 0.61.0 '@unocss/transformer-directives': 0.61.0 '@unocss/transformer-variant-group': 0.61.0 - '@unocss/vite': 0.61.0(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0)) + '@unocss/vite': 0.61.0(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0)) optionalDependencies: - vite: 5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0) + vite: 5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0) transitivePeerDependencies: - postcss - rollup @@ -14842,17 +14838,17 @@ snapshots: unist-util-stringify-position: 4.0.0 vfile-message: 4.0.2 - vite-hot-client@0.2.3(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0)): + vite-hot-client@0.2.3(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0)): dependencies: - vite: 5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0) + vite: 5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0) - vite-node@1.6.0(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0): + vite-node@1.6.0(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0): dependencies: cac: 6.7.14 debug: 4.3.5 pathe: 1.1.2 picocolors: 1.0.1 - vite: 5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0) + vite: 5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0) transitivePeerDependencies: - '@types/node' - less @@ -14863,7 +14859,7 @@ snapshots: - supports-color - terser - vite-plugin-checker@0.6.4(eslint@9.5.0)(optionator@0.9.3)(typescript@5.5.2)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0))(vue-tsc@2.0.22(typescript@5.5.2)): + vite-plugin-checker@0.6.4(eslint@9.5.0)(optionator@0.9.3)(typescript@5.5.2)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))(vue-tsc@2.0.22(typescript@5.5.2)): dependencies: '@babel/code-frame': 7.24.7 ansi-escapes: 4.3.2 @@ -14876,7 +14872,7 @@ snapshots: semver: 7.6.2 strip-ansi: 6.0.1 tiny-invariant: 1.3.1 - vite: 5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0) + vite: 5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0) vscode-languageclient: 7.0.0 vscode-languageserver: 7.0.0 vscode-languageserver-textdocument: 1.0.11 @@ -14887,7 +14883,7 @@ snapshots: typescript: 5.5.2 vue-tsc: 2.0.22(typescript@5.5.2) - vite-plugin-inspect@0.8.4(@nuxt/kit@packages+kit)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0)): + vite-plugin-inspect@0.8.4(@nuxt/kit@packages+kit)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0)): dependencies: '@antfu/utils': 0.7.8 '@rollup/pluginutils': 5.1.0(rollup@4.18.0) @@ -14898,14 +14894,14 @@ snapshots: perfect-debounce: 1.0.0 picocolors: 1.0.1 sirv: 2.0.4 - vite: 5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0) + vite: 5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0) optionalDependencies: '@nuxt/kit': link:packages/kit transitivePeerDependencies: - rollup - supports-color - vite-plugin-vue-inspector@5.1.2(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0)): + vite-plugin-vue-inspector@5.1.2(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0)): dependencies: '@babel/core': 7.24.7 '@babel/plugin-proposal-decorators': 7.23.2(@babel/core@7.24.7) @@ -14916,24 +14912,24 @@ snapshots: '@vue/compiler-dom': 3.4.30 kolorist: 1.8.0 magic-string: 0.30.10 - vite: 5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0) + vite: 5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0) transitivePeerDependencies: - supports-color - vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0): + vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0): dependencies: esbuild: 0.21.5 postcss: 8.4.38 rollup: 4.18.0 optionalDependencies: - '@types/node': 20.14.8 + '@types/node': 20.14.9 fsevents: 2.3.3 sass: 1.69.4 terser: 5.27.0 - vitest-environment-nuxt@1.0.0(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.30)(vue@3.4.30(typescript@5.5.2)))(@vue/test-utils@2.4.6)(h3@1.12.0)(happy-dom@14.12.3)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.45.0)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.8)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0))(vue-router@4.4.0(vue@3.4.30(typescript@5.5.2)))(vue@3.4.30(typescript@5.5.2)): + vitest-environment-nuxt@1.0.0(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.30)(vue@3.4.30(typescript@5.5.2)))(@vue/test-utils@2.4.6)(h3@1.12.0)(happy-dom@14.12.3)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.45.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.9)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0))(vue-router@4.4.0(vue@3.4.30(typescript@5.5.2)))(vue@3.4.30(typescript@5.5.2)): dependencies: - '@nuxt/test-utils': 3.13.1(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.30)(vue@3.4.30(typescript@5.5.2)))(@vue/test-utils@2.4.6)(h3@1.12.0)(happy-dom@14.12.3)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.45.0)(vite@5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.8)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0))(vue-router@4.4.0(vue@3.4.30(typescript@5.5.2)))(vue@3.4.30(typescript@5.5.2)) + '@nuxt/test-utils': 3.13.1(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.30)(vue@3.4.30(typescript@5.5.2)))(@vue/test-utils@2.4.6)(h3@1.12.0)(happy-dom@14.12.3)(magicast@0.3.4)(nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.45.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.9)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0))(vue-router@4.4.0(vue@3.4.30(typescript@5.5.2)))(vue@3.4.30(typescript@5.5.2)) transitivePeerDependencies: - '@cucumber/cucumber' - '@jest/globals' @@ -14952,7 +14948,7 @@ snapshots: - vue - vue-router - vitest@1.6.0(@types/node@20.14.8)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0): + vitest@1.6.0(@types/node@20.14.9)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0): dependencies: '@vitest/expect': 1.6.0 '@vitest/runner': 1.6.0 @@ -14971,11 +14967,11 @@ snapshots: strip-literal: 2.1.0 tinybench: 2.5.1 tinypool: 0.8.4 - vite: 5.3.1(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0) - vite-node: 1.6.0(@types/node@20.14.8)(sass@1.69.4)(terser@5.27.0) + vite: 5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0) + vite-node: 1.6.0(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0) why-is-node-running: 2.2.2 optionalDependencies: - '@types/node': 20.14.8 + '@types/node': 20.14.9 happy-dom: 14.12.3 transitivePeerDependencies: - less @@ -15294,8 +15290,6 @@ snapshots: yallist@4.0.0: {} - yaml@2.3.4: {} - yaml@2.4.5: {} yargs-parser@21.1.1: {} From 07e1818f308a49f6851e6da7b8dfa65475730c5c Mon Sep 17 00:00:00 2001 From: Dominic <67210734+rexhent@users.noreply.github.com> Date: Wed, 26 Jun 2024 19:51:42 +1000 Subject: [PATCH 045/119] fix(nuxt): handle external links to named route objects (#27829) --- packages/nuxt/src/app/components/nuxt-link.ts | 6 +++-- packages/nuxt/test/nuxt-link.test.ts | 22 +++++++++++-------- 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/packages/nuxt/src/app/components/nuxt-link.ts b/packages/nuxt/src/app/components/nuxt-link.ts index cf27ce9a34..0b5d1c6511 100644 --- a/packages/nuxt/src/app/components/nuxt-link.ts +++ b/packages/nuxt/src/app/components/nuxt-link.ts @@ -167,8 +167,10 @@ export function defineNuxtLink (options: NuxtLinkOptions) { if (!to.value || isAbsoluteUrl.value) { return to.value as string } if (isExternal.value) { - const path = typeof to.value === 'object' ? resolveRouteObject(to.value) : to.value - return resolveTrailingSlashBehavior(path, router.resolve /* will not be called */) as string + const path = typeof to.value === 'object' && 'path' in to.value ? resolveRouteObject(to.value) : to.value + // separately resolve route objects with a 'name' property and without 'path' + const href = typeof path === 'object' ? router.resolve(path).href : path + return resolveTrailingSlashBehavior(href, router.resolve /* will not be called */) as string } if (typeof to.value === 'object') { diff --git a/packages/nuxt/test/nuxt-link.test.ts b/packages/nuxt/test/nuxt-link.test.ts index 40e714045d..f57c5d43b0 100644 --- a/packages/nuxt/test/nuxt-link.test.ts +++ b/packages/nuxt/test/nuxt-link.test.ts @@ -30,17 +30,16 @@ vi.mock('../src/app/composables/router', () => ({ return withQuery(to.path || '', to.query || {}) + (to.hash || '') }, useRouter: () => ({ - resolve: (route: string | RouteLocation & { to?: string }): Partial & { href?: string } => { + resolve: (route: string | RouteLocation): Partial & { href: string } => { if (typeof route === 'string') { - return { href: route, path: route } + return { path: route, href: route } + } + return { + path: route.path || `/${route.name?.toString()}`, + query: route.query || undefined, + hash: route.hash || undefined, + href: route.path || `/${route.name?.toString()}`, } - return route.to - ? { href: route.to } - : { - path: route.path || `/${route.name?.toString()}` || undefined, - query: route.query || undefined, - hash: route.hash || undefined, - } }, }), })) @@ -133,6 +132,10 @@ describe('nuxt-link:propsOrAttributes', () => { expect(nuxtLink({ to: { path: '/to' }, external: true }).props.href).toBe('/to') }) + it('resolves route location object with name', () => { + expect(nuxtLink({ to: { name: 'to' }, external: true }).props.href).toBe('/to') + }) + it('applies trailing slash behaviour', () => { expect(nuxtLink({ to: { path: '/to' }, external: true }, { trailingSlash: 'append' }).props.href).toBe('/to/') expect(nuxtLink({ to: '/to', external: true }, { trailingSlash: 'append' }).props.href).toBe('/to/') @@ -225,6 +228,7 @@ describe('nuxt-link:propsOrAttributes', () => { it('forwards `to` prop', () => { expect(nuxtLink({ to: '/to' }).props.to).toBe('/to') expect(nuxtLink({ to: { path: '/to' } }).props.to).toEqual({ path: '/to' }) + expect(nuxtLink({ to: { name: 'to' } }).props.to).toEqual({ name: 'to' }) }) }) From c628975efcc0c36d9946646fe34e49460095ae21 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Wed, 26 Jun 2024 11:58:45 +0200 Subject: [PATCH 046/119] fix(nuxt): use URL to encode redirected URLs (#27822) --- packages/nuxt/src/app/composables/router.ts | 21 ++++++++++++++-- test/basic.test.ts | 3 ++- test/bundle.test.ts | 2 +- .../basic/pages/redirect-with-encode.vue | 2 +- test/nuxt/composables.test.ts | 25 +++++++++++++++++++ 5 files changed, 48 insertions(+), 5 deletions(-) diff --git a/packages/nuxt/src/app/composables/router.ts b/packages/nuxt/src/app/composables/router.ts index 50b99476c5..093102a223 100644 --- a/packages/nuxt/src/app/composables/router.ts +++ b/packages/nuxt/src/app/composables/router.ts @@ -135,7 +135,8 @@ export const navigateTo = (to: RouteLocationRaw | undefined | null, options?: Na return Promise.resolve() } - const isExternal = options?.external || hasProtocol(toPath, { acceptRelative: true }) + const isExternalHost = hasProtocol(toPath, { acceptRelative: true }) + const isExternal = options?.external || isExternalHost if (isExternal) { if (!options?.external) { throw new Error('Navigating to an external URL is not allowed by default. Use `navigateTo(url, { external: true })`.') @@ -166,10 +167,12 @@ export const navigateTo = (to: RouteLocationRaw | undefined | null, options?: Na // TODO: consider deprecating in favour of `app:rendered` and removing await nuxtApp.callHook('app:redirected') const encodedLoc = location.replace(/"/g, '%22') + const encodedHeader = encodeURL(location, isExternalHost) + nuxtApp.ssrContext!._renderResponse = { statusCode: sanitizeStatusCode(options?.redirectCode || 302, 302), body: ``, - headers: { location: encodeURI(location) }, + headers: { location: encodedHeader }, } return response } @@ -259,3 +262,17 @@ export const setPageLayout = (layout: unknown extends PageMeta['layout'] ? strin export function resolveRouteObject (to: Exclude) { return withQuery(to.path || '', to.query || {}) + (to.hash || '') } + +/** + * @internal + */ +export function encodeURL (location: string, isExternalHost = false) { + const url = new URL(location, 'http://localhost') + if (!isExternalHost) { + return url.pathname + url.search + url.hash + } + if (location.startsWith('//')) { + return url.toString().replace(url.protocol, '') + } + return url.toString() +} diff --git a/test/basic.test.ts b/test/basic.test.ts index 797684e670..4b9aa4cf0b 100644 --- a/test/basic.test.ts +++ b/test/basic.test.ts @@ -1005,9 +1005,10 @@ describe('navigate', () => { }) it('expect to redirect with encoding', async () => { - const { status } = await fetch('/redirect-with-encode', { redirect: 'manual' }) + const { status, headers } = await fetch('/redirect-with-encode', { redirect: 'manual' }) expect(status).toEqual(302) + expect(headers.get('location') || '').toEqual(encodeURI('/cœur') + '?redirected=' + encodeURIComponent('https://google.com')) }) }) diff --git a/test/bundle.test.ts b/test/bundle.test.ts index 280fc23d68..4b8fa7990d 100644 --- a/test/bundle.test.ts +++ b/test/bundle.test.ts @@ -72,7 +72,7 @@ describe.skipIf(process.env.SKIP_BUNDLE_SIZE === 'true' || process.env.ECOSYSTEM const serverDir = join(rootDir, '.output-inline/server') const serverStats = await analyzeSizes(['**/*.mjs', '!node_modules'], serverDir) - expect.soft(roundToKilobytes(serverStats.totalBytes)).toMatchInlineSnapshot(`"531k"`) + expect.soft(roundToKilobytes(serverStats.totalBytes)).toMatchInlineSnapshot(`"532k"`) const modules = await analyzeSizes('node_modules/**/*', serverDir) expect.soft(roundToKilobytes(modules.totalBytes)).toMatchInlineSnapshot(`"76.2k"`) diff --git a/test/fixtures/basic/pages/redirect-with-encode.vue b/test/fixtures/basic/pages/redirect-with-encode.vue index a59a44d653..fc96279bc2 100644 --- a/test/fixtures/basic/pages/redirect-with-encode.vue +++ b/test/fixtures/basic/pages/redirect-with-encode.vue @@ -5,5 +5,5 @@ diff --git a/test/nuxt/composables.test.ts b/test/nuxt/composables.test.ts index f924bf6d36..a8097cce72 100644 --- a/test/nuxt/composables.test.ts +++ b/test/nuxt/composables.test.ts @@ -6,6 +6,7 @@ import { defineEventHandler } from 'h3' import { mount } from '@vue/test-utils' import { mountSuspended, registerEndpoint } from '@nuxt/test-utils/runtime' +import { hasProtocol } from 'ufo' import * as composables from '#app/composables' import { clearNuxtData, refreshNuxtData, useAsyncData, useNuxtData } from '#app/composables/asyncData' @@ -19,6 +20,7 @@ import { useId } from '#app/composables/id' import { callOnce } from '#app/composables/once' import { useLoadingIndicator } from '#app/composables/loading-indicator' import { useRouteAnnouncer } from '#app/composables/route-announcer' +import { encodeURL, resolveRouteObject } from '#app/composables/router' registerEndpoint('/api/test', defineEventHandler(event => ({ method: event.method, @@ -596,6 +598,29 @@ describe('routing utilities: `navigateTo`', () => { }) }) +describe('routing utilities: `resolveRouteObject`', () => { + it('resolveRouteObject should correctly resolve a route object', () => { + expect(resolveRouteObject({ path: '/test' })).toMatchInlineSnapshot(`"/test"`) + expect(resolveRouteObject({ path: '/test', hash: '#thing', query: { foo: 'bar' } })).toMatchInlineSnapshot(`"/test?foo=bar#thing"`) + }) +}) + +describe('routing utilities: `encodeURL`', () => { + const encode = (url: string) => { + const isExternal = hasProtocol(url, { acceptRelative: true }) + return encodeURL(url, isExternal) + } + it('encodeURL should correctly encode a URL', () => { + expect(encode('https://test.com')).toMatchInlineSnapshot(`"https://test.com/"`) + expect(encode('//test.com')).toMatchInlineSnapshot(`"//test.com/"`) + expect(encode('mailto:daniel@cœur.com')).toMatchInlineSnapshot(`"mailto:daniel@c%C5%93ur.com"`) + const encoded = encode('/cœur?redirected=' + encodeURIComponent('https://google.com')) + expect(new URL('/cœur', 'http://localhost').pathname).toMatchInlineSnapshot(`"/c%C5%93ur"`) + expect(encoded).toMatchInlineSnapshot(`"/c%C5%93ur?redirected=https%3A%2F%2Fgoogle.com"`) + expect(useRouter().resolve(encoded).query.redirected).toMatchInlineSnapshot(`"https://google.com"`) + }) +}) + describe('routing utilities: `useRoute`', () => { it('should show provide a mock route', () => { expect(useRoute()).toMatchObject({ From 5f819ab88e150235f7a2accbadc34b2f0d9b1175 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Wed, 26 Jun 2024 12:32:50 +0200 Subject: [PATCH 047/119] fix(nuxt)!: remove `__NUXT__` after hydration (#27745) --- docs/1.getting-started/12.upgrade.md | 19 +++++++++++++++++++ .../src/app/plugins/revive-payload.client.ts | 3 +-- packages/nuxt/src/core/templates.ts | 2 +- test/bundle.test.ts | 2 +- .../basic/components/BreakInAsyncSetup.vue | 2 +- .../basic/components/BreakInSetup.vue | 2 +- 6 files changed, 24 insertions(+), 6 deletions(-) diff --git a/docs/1.getting-started/12.upgrade.md b/docs/1.getting-started/12.upgrade.md index 760b8c306d..ab3f5a1dd8 100644 --- a/docs/1.getting-started/12.upgrade.md +++ b/docs/1.getting-started/12.upgrade.md @@ -371,6 +371,25 @@ However, if you are a module author using the `builder:watch` hook and wishing t }) ``` +#### Removal of `window.__NUXT__` object + +##### What Changed + +We are removing the global `window.__NUXT__` object after the app finishes hydration. + +##### Reasons for Change + +This opens the way to multi-app patterns ([#21635](https://github.com/nuxt/nuxt/issues/21635)) and enables us to focus on a single way to access Nuxt app data - `useNuxtApp()`. + +##### Migration Steps + +The data is still available, but can be accessed with `useNuxtApp().payload`: + +```diff +- console.log(window.__NUXT__) ++ console.log(useNuxtApp().payload) +``` + #### Directory index scanning 🚦 **Impact Level**: Medium diff --git a/packages/nuxt/src/app/plugins/revive-payload.client.ts b/packages/nuxt/src/app/plugins/revive-payload.client.ts index 7deec66618..24452437b6 100644 --- a/packages/nuxt/src/app/plugins/revive-payload.client.ts +++ b/packages/nuxt/src/app/plugins/revive-payload.client.ts @@ -49,7 +49,6 @@ export default defineNuxtPlugin({ definePayloadReviver(reviver, revivers[reviver as keyof typeof revivers]) } Object.assign(nuxtApp.payload, await nuxtApp.runWithContext(getNuxtClientPayload)) - // For backwards compatibility - TODO: remove later - window.__NUXT__ = nuxtApp.payload + delete window.__NUXT__ }, }) diff --git a/packages/nuxt/src/core/templates.ts b/packages/nuxt/src/core/templates.ts index 706b32e38f..a3ecadefd4 100644 --- a/packages/nuxt/src/core/templates.ts +++ b/packages/nuxt/src/core/templates.ts @@ -267,7 +267,7 @@ declare module 'nitropack' { export const clientConfigTemplate: NuxtTemplate = { filename: 'nitro.client.mjs', getContents: () => ` -export const useRuntimeConfig = () => window?.__NUXT__?.config || {} +export const useRuntimeConfig = () => window?.__NUXT__?.config || window?.useNuxtApp?.().payload?.config || {} `, } diff --git a/test/bundle.test.ts b/test/bundle.test.ts index 4b8fa7990d..32bb10310c 100644 --- a/test/bundle.test.ts +++ b/test/bundle.test.ts @@ -19,7 +19,7 @@ describe.skipIf(process.env.SKIP_BUNDLE_SIZE === 'true' || process.env.ECOSYSTEM for (const outputDir of ['.output', '.output-inline']) { it('default client bundle size', async () => { const clientStats = await analyzeSizes('**/*.js', join(rootDir, outputDir, 'public')) - expect.soft(roundToKilobytes(clientStats.totalBytes)).toMatchInlineSnapshot(`"106k"`) + expect.soft(roundToKilobytes(clientStats.totalBytes)).toMatchInlineSnapshot(`"107k"`) expect(clientStats.files.map(f => f.replace(/\..*\.js/, '.js'))).toMatchInlineSnapshot(` [ "_nuxt/entry.js", diff --git a/test/fixtures/basic/components/BreakInAsyncSetup.vue b/test/fixtures/basic/components/BreakInAsyncSetup.vue index 44eaf24d5b..33798a2676 100644 --- a/test/fixtures/basic/components/BreakInAsyncSetup.vue +++ b/test/fixtures/basic/components/BreakInAsyncSetup.vue @@ -3,7 +3,7 @@ async function getData () { } await getData() // break server-side -const data = window.__NUXT__ +const data = window.useNuxtApp().payload