From 8f95cac34c8cee1ae6cd073ae1fa3d6d2ff987fa Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Wed, 26 Jun 2024 15:18:05 +0200 Subject: [PATCH] feat(kit,nuxt,schema,vite,webpack): nitropack v3 nightly (#27702) --- docs/2.guide/3.going-further/2.hooks.md | 2 +- docs/2.guide/3.going-further/3.modules.md | 2 +- package.json | 14 +- packages/kit/build.config.ts | 1 + packages/kit/package.json | 2 +- packages/kit/src/nitro.ts | 4 +- packages/kit/src/pages.ts | 2 +- packages/nuxt/package.json | 4 +- packages/nuxt/src/app/composables/fetch.ts | 2 +- .../src/app/composables/route-announcer.ts | 2 +- packages/nuxt/src/app/nuxt.ts | 2 +- packages/nuxt/src/core/nitro.ts | 31 +- packages/nuxt/src/core/nuxt.ts | 1 + .../src/core/plugins/import-protection.ts | 2 +- .../nuxt/src/core/runtime/nitro/app-config.ts | 38 ++ .../src/core/runtime/nitro/dev-server-logs.ts | 2 +- packages/nuxt/src/core/runtime/nitro/error.ts | 72 ++- packages/nuxt/src/core/runtime/nitro/paths.ts | 2 +- .../nuxt/src/core/runtime/nitro/renderer.ts | 5 +- packages/nuxt/src/core/templates.ts | 31 +- packages/nuxt/src/pages/module.ts | 16 +- packages/nuxt/src/pages/route-rules.ts | 2 +- .../nuxt/src/pages/runtime/composables.ts | 2 +- packages/nuxt/types.d.mts | 25 +- packages/nuxt/types.d.ts | 25 +- packages/schema/build.config.ts | 1 + packages/schema/package.json | 4 +- packages/schema/src/config/experimental.ts | 6 + packages/schema/src/config/nitro.ts | 8 +- packages/schema/src/config/typescript.ts | 2 +- packages/schema/src/types/config.ts | 2 +- packages/schema/src/types/hooks.ts | 2 +- packages/vite/package.json | 2 +- packages/vite/src/client.ts | 2 +- packages/vite/src/server.ts | 8 +- packages/webpack/package.json | 5 +- packages/webpack/src/configs/server.ts | 4 +- .../src/nitro/plugins/dynamic-require.ts | 128 ++++ packages/webpack/src/presets/base.ts | 2 +- packages/webpack/src/webpack.ts | 25 +- patches/ofetch@1.3.4.patch | 33 + pnpm-lock.yaml | 594 ++++++++++++++---- scripts/bump-edge.ts | 4 +- test/basic.test.ts | 5 +- test/bundle.test.ts | 10 +- test/fixtures/basic/nuxt.config.ts | 3 +- test/hmr.test.ts | 5 +- tsconfig.json | 9 - 48 files changed, 953 insertions(+), 202 deletions(-) create mode 100644 packages/nuxt/src/core/runtime/nitro/app-config.ts create mode 100644 packages/webpack/src/nitro/plugins/dynamic-require.ts create mode 100644 patches/ofetch@1.3.4.patch diff --git a/docs/2.guide/3.going-further/2.hooks.md b/docs/2.guide/3.going-further/2.hooks.md index 762fd577df..7e6bb474fe 100644 --- a/docs/2.guide/3.going-further/2.hooks.md +++ b/docs/2.guide/3.going-further/2.hooks.md @@ -90,7 +90,7 @@ declare module '#app' { } } -declare module 'nitropack' { +declare module 'nitro/types' { interface NitroRuntimeHooks { 'your-nitro-hook': () => void; } diff --git a/docs/2.guide/3.going-further/3.modules.md b/docs/2.guide/3.going-further/3.modules.md index f72b2c8ee1..112f9d9756 100644 --- a/docs/2.guide/3.going-further/3.modules.md +++ b/docs/2.guide/3.going-further/3.modules.md @@ -583,7 +583,7 @@ export default defineNuxtModule({ interface MyModuleNitroRules { myModule?: { foo: 'bar' } } - declare module 'nitropack' { + declare module 'nitro/types' { interface NitroRouteRules extends MyModuleNitroRules {} interface NitroRouteConfig extends MyModuleNitroRules {} } diff --git a/package.json b/package.json index bab6cc7fdd..fb0b6086be 100644 --- a/package.json +++ b/package.json @@ -34,6 +34,9 @@ "typecheck:docs": "DOCS_TYPECHECK=true pnpm nuxi prepare && nuxt-content-twoslash verify --content-dir docs" }, "resolutions": { + "nitro": "npm:nitro-nightly@3.0.0-beta-28648657.9a717203", + "typescript": "5.5.2", + "h3": "npm:h3-nightly@2.0.0-1718872656.6765a6e", "@nuxt/kit": "workspace:*", "@nuxt/schema": "workspace:*", "@nuxt/ui-templates": "workspace:*", @@ -69,11 +72,11 @@ "eslint-typegen": "0.2.4", "execa": "9.3.0", "globby": "14.0.1", - "h3": "1.12.0", + "h3": "npm:h3-nightly@2.0.0-1718872656.6765a6e", "happy-dom": "14.12.3", "jiti": "1.21.6", "markdownlint-cli": "0.41.0", - "nitropack": "2.9.6", + "nitro": "npm:nitro-nightly@3.0.0-beta-28648657.9a717203", "nuxi": "3.12.0", "nuxt": "workspace:*", "nuxt-content-twoslash": "0.0.10", @@ -95,5 +98,10 @@ "engines": { "node": "^16.10.0 || >=18.0.0" }, - "version": "" + "version": "", + "pnpm": { + "patchedDependencies": { + "ofetch@1.3.4": "patches/ofetch@1.3.4.patch" + } + } } diff --git a/packages/kit/build.config.ts b/packages/kit/build.config.ts index acd2539172..87a8ccb072 100644 --- a/packages/kit/build.config.ts +++ b/packages/kit/build.config.ts @@ -8,6 +8,7 @@ export default defineBuildConfig({ externals: [ '@nuxt/schema', 'nitropack', + 'nitro', 'webpack', 'vite', 'h3', diff --git a/packages/kit/package.json b/packages/kit/package.json index 9fd8c6fea7..deca72af86 100644 --- a/packages/kit/package.json +++ b/packages/kit/package.json @@ -49,7 +49,7 @@ "devDependencies": { "@types/hash-sum": "1.0.2", "@types/semver": "7.5.8", - "nitropack": "2.9.6", + "nitro": "npm:nitro-nightly@3.0.0-beta-28648657.9a717203", "unbuild": "latest", "vite": "5.3.1", "vitest": "1.6.0", diff --git a/packages/kit/src/nitro.ts b/packages/kit/src/nitro.ts index 72b3ca93f3..29b0b44981 100644 --- a/packages/kit/src/nitro.ts +++ b/packages/kit/src/nitro.ts @@ -1,4 +1,4 @@ -import type { Nitro, NitroDevEventHandler, NitroEventHandler } from 'nitropack' +import type { Nitro, NitroDevEventHandler, NitroEventHandler } from 'nitro/types' import type { Import } from 'unimport' import { normalize } from 'pathe' import { useNuxt } from './context' @@ -12,7 +12,7 @@ function normalizeHandlerMethod (handler: NitroEventHandler) { // retrieve method from handler file name const [, method = undefined] = handler.handler.match(/\.(get|head|patch|post|put|delete|connect|options|trace)(\.\w+)*$/) || [] return { - method, + method: method as 'get' | 'head' | 'patch' | 'post' | 'put' | 'delete' | 'connect' | 'options' | 'trace' | undefined, ...handler, handler: normalize(handler.handler), } diff --git a/packages/kit/src/pages.ts b/packages/kit/src/pages.ts index 401bf2881b..1c4c3acf53 100644 --- a/packages/kit/src/pages.ts +++ b/packages/kit/src/pages.ts @@ -1,5 +1,5 @@ import type { NuxtHooks, NuxtMiddleware } from '@nuxt/schema' -import type { NitroRouteConfig } from 'nitropack' +import type { NitroRouteConfig } from 'nitro/types' import { defu } from 'defu' import { useNuxt } from './context' import { logger } from './logger' diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index 2a8125f9f4..57401fa838 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -80,7 +80,7 @@ "escape-string-regexp": "^5.0.0", "estree-walker": "^3.0.3", "globby": "^14.0.1", - "h3": "^1.12.0", + "h3": "npm:h3-nightly@2.0.0-1718872656.6765a6e", "hookable": "^5.5.3", "ignore": "^5.3.1", "jiti": "^1.21.6", @@ -88,7 +88,7 @@ "knitwork": "^1.1.0", "magic-string": "^0.30.10", "mlly": "^1.7.1", - "nitropack": "^2.9.6", + "nitro": "npm:nitro-nightly@3.0.0-beta-28648657.9a717203", "nuxi": "^3.12.0", "nypm": "^0.3.8", "ofetch": "^1.3.4", diff --git a/packages/nuxt/src/app/composables/fetch.ts b/packages/nuxt/src/app/composables/fetch.ts index 2b9a25a023..5908d42bfb 100644 --- a/packages/nuxt/src/app/composables/fetch.ts +++ b/packages/nuxt/src/app/composables/fetch.ts @@ -1,5 +1,5 @@ import type { FetchError, FetchOptions } from 'ofetch' -import type { NitroFetchRequest, TypedInternalResponse, AvailableRouterMethod as _AvailableRouterMethod } from 'nitropack' +import type { NitroFetchRequest, TypedInternalResponse, AvailableRouterMethod as _AvailableRouterMethod } from 'nitro/types' import type { MaybeRef, Ref } from 'vue' import { computed, reactive, toValue } from 'vue' import { hash } from 'ohash' diff --git a/packages/nuxt/src/app/composables/route-announcer.ts b/packages/nuxt/src/app/composables/route-announcer.ts index ae250bb266..9a6e27741f 100644 --- a/packages/nuxt/src/app/composables/route-announcer.ts +++ b/packages/nuxt/src/app/composables/route-announcer.ts @@ -1,7 +1,7 @@ import type { Ref } from 'vue' import { getCurrentScope, onScopeDispose, ref } from 'vue' import { injectHead } from '@unhead/vue' -import { useNuxtApp } from '#app' +import { useNuxtApp } from '../nuxt' export type Politeness = 'assertive' | 'polite' | 'off' diff --git a/packages/nuxt/src/app/nuxt.ts b/packages/nuxt/src/app/nuxt.ts index 02f3270827..dde3f71aac 100644 --- a/packages/nuxt/src/app/nuxt.ts +++ b/packages/nuxt/src/app/nuxt.ts @@ -7,7 +7,7 @@ import { getContext } from 'unctx' import type { SSRContext, createRenderer } from 'vue-bundle-renderer/runtime' import type { EventHandlerRequest, H3Event } from 'h3' import type { AppConfig, AppConfigInput, RuntimeConfig } from 'nuxt/schema' -import type { RenderResponse } from 'nitropack' +import type { RenderResponse } from 'nitro/types' import type { LogObject } from 'consola' import type { MergeHead, VueHeadClient } from '@unhead/vue' diff --git a/packages/nuxt/src/core/nitro.ts b/packages/nuxt/src/core/nitro.ts index 11e4ed3b90..42afa4878a 100644 --- a/packages/nuxt/src/core/nitro.ts +++ b/packages/nuxt/src/core/nitro.ts @@ -4,8 +4,8 @@ import { cpus } from 'node:os' import { join, relative, resolve } from 'pathe' import { createRouter as createRadixRouter, exportMatcher, toRouteMatcher } from 'radix3' import { joinURL, withTrailingSlash } from 'ufo' -import { build, copyPublicAssets, createDevServer, createNitro, prepare, prerender, scanHandlers, writeTypes } from 'nitropack' -import type { Nitro, NitroConfig, NitroOptions } from 'nitropack' +import { build, copyPublicAssets, createDevServer, createNitro, prepare, prerender, writeTypes } from 'nitro' +import type { Nitro, NitroConfig, NitroOptions } from 'nitro/types' import { findPath, logger, resolveAlias, resolveIgnorePatterns, resolveNuxtModule, resolvePath } from '@nuxt/kit' import escapeRE from 'escape-string-regexp' import { defu } from 'defu' @@ -95,22 +95,18 @@ export async function initNitro (nuxt: Nuxt & { _nitro?: Nitro }) { : false, scanDirs: nuxt.options._layers.map(layer => (layer.config.serverDir || layer.config.srcDir) && resolve(layer.cwd, layer.config.serverDir || resolve(layer.config.srcDir, 'server'))).filter(Boolean), renderer: resolve(distDir, 'core/runtime/nitro/renderer'), - errorHandler: resolve(distDir, 'core/runtime/nitro/error'), nodeModulesDirs: nuxt.options.modulesDir, handlers: nuxt.options.serverHandlers, devHandlers: [], baseURL: nuxt.options.app.baseURL, virtual: { '#internal/nuxt.config.mjs': () => nuxt.vfs['#build/nuxt.config'], + '#internal/nuxt/app-config': () => nuxt.vfs['#build/app.config'].replace(/\/\*\* client \*\*\/[\s\S]*\/\*\* client-end \*\*\//, ''), '#spa-template': async () => `export const template = ${JSON.stringify(await spaLoadingTemplate(nuxt))}`, }, routeRules: { '/__nuxt_error': { cache: false }, }, - appConfig: nuxt.options.appConfig, - appConfigFiles: nuxt.options._layers.map( - layer => resolve(layer.config.srcDir, 'app.config'), - ), typescript: { strict: true, generateTsConfig: true, @@ -213,6 +209,19 @@ export async function initNitro (nuxt: Nuxt & { _nitro?: Nitro }) { logLevel: logLevelMapReverse[nuxt.options.logLevel], } satisfies NitroConfig) + if (nuxt.options.experimental.serverAppConfig && nitroConfig.imports) { + nitroConfig.imports.imports ||= [] + nitroConfig.imports.imports.push({ + name: 'useAppConfig', + from: resolve(distDir, 'core/runtime/nitro/app-config'), + }) + } + + // add error handler + if (!nitroConfig.errorHandler && (nuxt.options.dev || !nuxt.options.experimental.noVueServer)) { + nitroConfig.errorHandler = resolve(distDir, 'core/runtime/nitro/error') + } + // Resolve user-provided paths 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, '**/*')}`] @@ -383,7 +392,6 @@ export async function initNitro (nuxt: Nuxt & { _nitro?: Nitro }) { // Init nitro const nitro = await createNitro(nitroConfig, { - // @ts-expect-error this will be valid in a future version of Nitro compatibilityDate: nuxt.options.compatibilityDate, }) @@ -463,21 +471,22 @@ export async function initNitro (nuxt: Nuxt & { _nitro?: Nitro }) { if (!nuxt.options.dev && nuxt.options.experimental.noVueServer) { nitro.hooks.hook('rollup:before', (nitro) => { - if (nitro.options.preset === 'nitro-prerender') { return } + if (nitro.options.preset === 'nitro-prerender') { + nitro.options.errorHandler = resolve(distDir, 'core/runtime/nitro/error') + return + } const nuxtErrorHandler = nitro.options.handlers.findIndex(h => h.route === '/__nuxt_error') if (nuxtErrorHandler >= 0) { nitro.options.handlers.splice(nuxtErrorHandler, 1) } nitro.options.renderer = undefined - nitro.options.errorHandler = '#internal/nitro/error' }) } // Add typed route responses nuxt.hook('prepare:types', async (opts) => { if (!nuxt.options.dev) { - await scanHandlers(nitro) await writeTypes(nitro) } // Exclude nitro output dir from typescript diff --git a/packages/nuxt/src/core/nuxt.ts b/packages/nuxt/src/core/nuxt.ts index 4987fb3d98..39cb5d7c31 100644 --- a/packages/nuxt/src/core/nuxt.ts +++ b/packages/nuxt/src/core/nuxt.ts @@ -62,6 +62,7 @@ export function createNuxt (options: NuxtOptions): Nuxt { const nightlies = { 'nitropack': 'nitropack-nightly', + 'nitro': 'nitro-nightly', 'h3': 'h3-nightly', 'nuxt': 'nuxt-nightly', '@nuxt/schema': '@nuxt/schema-nightly', diff --git a/packages/nuxt/src/core/plugins/import-protection.ts b/packages/nuxt/src/core/plugins/import-protection.ts index c0940a6954..5421ce06e9 100644 --- a/packages/nuxt/src/core/plugins/import-protection.ts +++ b/packages/nuxt/src/core/plugins/import-protection.ts @@ -34,7 +34,7 @@ export const nuxtImportProtections = (nuxt: { options: NuxtOptions }, options: { ]) } - for (const i of [/(^|node_modules\/)@nuxt\/(kit|test-utils)/, /(^|node_modules\/)nuxi/, /(^|node_modules\/)nuxt\/(config|kit|schema)/, 'nitropack']) { + for (const i of [/(^|node_modules\/)@nuxt\/(kit|test-utils)/, /(^|node_modules\/)nuxi/, /(^|node_modules\/)nitro(?:pack)?(?:-nightly)?(?:$|\/)(?!(?:dist\/)?runtime|types)/, /(^|node_modules\/)nuxt\/(config|kit|schema)/]) { patterns.push([i, 'This module cannot be imported' + (options.isNitro ? ' in server runtime.' : ' in the Vue part of your app.')]) } diff --git a/packages/nuxt/src/core/runtime/nitro/app-config.ts b/packages/nuxt/src/core/runtime/nitro/app-config.ts new file mode 100644 index 0000000000..2b84d23877 --- /dev/null +++ b/packages/nuxt/src/core/runtime/nitro/app-config.ts @@ -0,0 +1,38 @@ +import type { H3Event } from 'h3' +import { klona } from 'klona' + +// @ts-expect-error virtual file +import _inlineAppConfig from '#internal/nuxt/app-config' + +// App config +const _sharedAppConfig = _deepFreeze(klona(_inlineAppConfig)) +export function useAppConfig (event?: H3Event) { + // Backwards compatibility with ambient context + if (!event) { + return _sharedAppConfig + } + if (!event.context.nuxt) { + event.context.nuxt = {} + } + // Reuse cached app config from event context + if (event.context.nuxt.appConfig) { + return event.context.nuxt.appConfig + } + // Prepare app config for event context + const appConfig = klona(_inlineAppConfig) + event.context.nuxt.appConfig = appConfig + return appConfig +} + +// --- Utils --- + +function _deepFreeze (object: Record) { + const propNames = Object.getOwnPropertyNames(object) + for (const name of propNames) { + const value = object[name] + if (value && typeof value === 'object') { + _deepFreeze(value) + } + } + return Object.freeze(object) +} diff --git a/packages/nuxt/src/core/runtime/nitro/dev-server-logs.ts b/packages/nuxt/src/core/runtime/nitro/dev-server-logs.ts index 3ff3f16676..2ae7e51d31 100644 --- a/packages/nuxt/src/core/runtime/nitro/dev-server-logs.ts +++ b/packages/nuxt/src/core/runtime/nitro/dev-server-logs.ts @@ -7,7 +7,7 @@ import { withTrailingSlash } from 'ufo' import { getContext } from 'unctx' import { isVNode } from 'vue' -import type { NitroApp } from '#internal/nitro/app' +import type { NitroApp } from 'nitro/types' // @ts-expect-error virtual file import { rootDir } from '#internal/dev-server-logs-options' diff --git a/packages/nuxt/src/core/runtime/nitro/error.ts b/packages/nuxt/src/core/runtime/nitro/error.ts index 410fbd5457..89f7ef65c6 100644 --- a/packages/nuxt/src/core/runtime/nitro/error.ts +++ b/packages/nuxt/src/core/runtime/nitro/error.ts @@ -1,10 +1,8 @@ import { joinURL, withQuery } from 'ufo' -import type { NitroErrorHandler } from 'nitropack' -import type { H3Error } from 'h3' -import { getRequestHeaders, send, setResponseHeader, setResponseStatus } from 'h3' -import { useRuntimeConfig } from '#internal/nitro' -import { useNitroApp } from '#internal/nitro/app' -import { isJsonRequest, normalizeError } from '#internal/nitro/utils' +import type { NitroErrorHandler } from 'nitro/types' +import type { H3Error, H3Event } from 'h3' +import { getRequestHeader, getRequestHeaders, send, setResponseHeader, setResponseStatus } from 'h3' +import { useNitroApp, useRuntimeConfig } from 'nitro/runtime' import type { NuxtPayload } from '#app' export default async function errorhandler (error: H3Error, event) { @@ -86,3 +84,65 @@ export default async function errorhandler (error: H3Error, return send(event, html) } + +/** + * Nitro internal functions extracted from https://github.com/unjs/nitro/blob/main/src/runtime/internal/utils.ts + */ + +function isJsonRequest (event: H3Event) { + // If the client specifically requests HTML, then avoid classifying as JSON. + if (hasReqHeader(event, 'accept', 'text/html')) { + return false + } + return ( + hasReqHeader(event, 'accept', 'application/json') || + hasReqHeader(event, 'user-agent', 'curl/') || + hasReqHeader(event, 'user-agent', 'httpie/') || + hasReqHeader(event, 'sec-fetch-mode', 'cors') || + event.path.startsWith('/api/') || + event.path.endsWith('.json') + ) +} + +function hasReqHeader (event: H3Event, name: string, includes: string) { + const value = getRequestHeader(event, name) + return ( + value && typeof value === 'string' && value.toLowerCase().includes(includes) + ) +} + +function normalizeError (error: any) { + // temp fix for https://github.com/unjs/nitro/issues/759 + // TODO: investigate vercel-edge not using unenv pollyfill + const cwd = typeof process.cwd === 'function' ? process.cwd() : '/' + const stack = ((error.stack as string) || '') + .split('\n') + .splice(1) + .filter(line => line.includes('at ')) + .map((line) => { + const text = line + .replace(cwd + '/', './') + .replace('webpack:/', '') + .replace('file://', '') + .trim() + return { + text, + internal: + (line.includes('node_modules') && !line.includes('.cache')) || + line.includes('internal') || + line.includes('new Promise'), + } + }) + + const statusCode = error.statusCode || 500 + const statusMessage = + error.statusMessage ?? (statusCode === 404 ? 'Not Found' : '') + const message = error.message || error.toString() + + return { + stack, + statusCode, + statusMessage, + message, + } +} diff --git a/packages/nuxt/src/core/runtime/nitro/paths.ts b/packages/nuxt/src/core/runtime/nitro/paths.ts index 5286a12944..ca9dc57eaf 100644 --- a/packages/nuxt/src/core/runtime/nitro/paths.ts +++ b/packages/nuxt/src/core/runtime/nitro/paths.ts @@ -1,5 +1,5 @@ import { joinRelativeURL } from 'ufo' -import { useRuntimeConfig } from '#internal/nitro' +import { useRuntimeConfig } from 'nitro/runtime' export function baseURL (): string { // TODO: support passing event to `useRuntimeConfig` diff --git a/packages/nuxt/src/core/runtime/nitro/renderer.ts b/packages/nuxt/src/core/runtime/nitro/renderer.ts index 8e43d58a7c..cd1d8aaa23 100644 --- a/packages/nuxt/src/core/runtime/nitro/renderer.ts +++ b/packages/nuxt/src/core/runtime/nitro/renderer.ts @@ -6,7 +6,7 @@ import { getRequestDependencies, renderResourceHeaders, } from 'vue-bundle-renderer/runtime' -import type { RenderResponse } from 'nitropack' +import type { RenderResponse } from 'nitro/types' import type { Manifest } from 'vite' import type { H3Event } from 'h3' import { appendResponseHeader, createError, getQuery, getResponseStatus, getResponseStatusText, readBody, writeEarlyHints } from 'h3' @@ -21,8 +21,7 @@ import type { HeadEntryOptions } from '@unhead/schema' import type { Link, Script, Style } from '@unhead/vue' import { createServerHead } from '@unhead/vue' -import { defineRenderHandler, getRouteRules, useRuntimeConfig, useStorage } from '#internal/nitro' -import { useNitroApp } from '#internal/nitro/app' +import { defineRenderHandler, getRouteRules, useNitroApp, useRuntimeConfig, useStorage } from 'nitro/runtime' // @ts-expect-error virtual file import unheadPlugins from '#internal/unhead-plugins.mjs' diff --git a/packages/nuxt/src/core/templates.ts b/packages/nuxt/src/core/templates.ts index a3ecadefd4..30812c6181 100644 --- a/packages/nuxt/src/core/templates.ts +++ b/packages/nuxt/src/core/templates.ts @@ -239,7 +239,28 @@ import type { H3Event } from 'h3' import type { LogObject } from 'consola' import type { NuxtIslandContext, NuxtIslandResponse, NuxtRenderHTMLContext } from 'nuxt/app' -declare module 'nitropack' { +declare module 'nitro/types' { + interface NitroRuntimeConfigApp { + buildAssetsDir: string + cdnURL: string + } + interface NitroRuntimeConfig extends RuntimeConfig {} + interface NitroRouteConfig { + ssr?: boolean + experimentalNoScripts?: boolean + } + interface NitroRouteRules { + ssr?: boolean + experimentalNoScripts?: boolean + appMiddleware?: Record + } + interface NitroRuntimeHooks { + 'dev:ssr-logs': (ctx: { logs: LogObject[], path: string }) => void | Promise + 'render:html': (htmlContext: NuxtRenderHTMLContext, context: { event: H3Event }) => void | Promise + 'render:island': (islandResponse: NuxtIslandResponse, context: { event: H3Event, islandContext: NuxtIslandContext }) => void | Promise + } +} +declare module 'nitropack/types' { interface NitroRuntimeConfigApp { buildAssetsDir: string cdnURL: string @@ -315,17 +336,19 @@ export const appConfigTemplate: NuxtTemplate = { write: true, getContents ({ app, nuxt }) { return ` -import { updateAppConfig } from '#app/config' import { defuFn } from 'defu' const inlineConfig = ${JSON.stringify(nuxt.options.appConfig, null, 2)} +/** client **/ // Vite - webpack is handled directly in #app/config -if (import.meta.hot) { +if (import.meta.dev && !import.meta.nitro && import.meta.hot) { + const { updateAppConfig } = await import('#app/config') import.meta.hot.accept((newModule) => { updateAppConfig(newModule.default) }) } +/** client-end **/ ${app.configs.map((id: string, index: number) => `import ${`cfg${index}`} from ${JSON.stringify(id)}`).join('\n')} @@ -339,7 +362,7 @@ export const publicPathTemplate: NuxtTemplate = { getContents ({ nuxt }) { return [ 'import { joinRelativeURL } from \'ufo\'', - !nuxt.options.dev && 'import { useRuntimeConfig } from \'#internal/nitro\'', + !nuxt.options.dev && 'import { useRuntimeConfig } from \'nitro/runtime\'', nuxt.options.dev ? `const appConfig = ${JSON.stringify(nuxt.options.app)}` diff --git a/packages/nuxt/src/pages/module.ts b/packages/nuxt/src/pages/module.ts index b3bad6ccc1..acdd060ac6 100644 --- a/packages/nuxt/src/pages/module.ts +++ b/packages/nuxt/src/pages/module.ts @@ -8,7 +8,7 @@ import { createRoutesContext } from 'unplugin-vue-router' import { resolveOptions } from 'unplugin-vue-router/options' import type { EditableTreeNode, Options as TypedRouterOptions } from 'unplugin-vue-router' -import type { NitroRouteConfig } from 'nitropack' +import type { NitroRouteConfig } from 'nitro/types' import { defu } from 'defu' import { distDir } from '../dirs' import { normalizeRoutes, resolvePagesRoutes, resolveRoutePaths } from './utils' @@ -117,7 +117,12 @@ export default defineNuxtModule({ addTypeTemplate({ filename: 'types/middleware.d.ts', getContents: () => [ - 'declare module \'nitropack\' {', + 'declare module \'nitropack/types\' {', + ' interface NitroRouteConfig {', + ' appMiddleware?: string | string[] | Record', + ' }', + '}', + 'declare module \'nitro/types\' {', ' interface NitroRouteConfig {', ' appMiddleware?: string | string[] | Record', ' }', @@ -442,7 +447,12 @@ export default defineNuxtModule({ ' middleware?: MiddlewareKey | NavigationGuard | Array', ' }', '}', - 'declare module \'nitropack\' {', + 'declare module \'nitropack/types\' {', + ' interface NitroRouteConfig {', + ' appMiddleware?: MiddlewareKey | MiddlewareKey[] | Record', + ' }', + '}', + 'declare module \'nitro/types\' {', ' interface NitroRouteConfig {', ' appMiddleware?: MiddlewareKey | MiddlewareKey[] | Record', ' }', diff --git a/packages/nuxt/src/pages/route-rules.ts b/packages/nuxt/src/pages/route-rules.ts index 24acf217b1..fe9672a1b5 100644 --- a/packages/nuxt/src/pages/route-rules.ts +++ b/packages/nuxt/src/pages/route-rules.ts @@ -5,7 +5,7 @@ import { walk } from 'estree-walker' import { transform } from 'esbuild' import { parse } from 'acorn' import type { NuxtPage } from '@nuxt/schema' -import type { NitroRouteConfig } from 'nitropack' +import type { NitroRouteConfig } from 'nitro/types' import { normalize } from 'pathe' import { extractScriptContent, pathToNitroGlob } from './utils' diff --git a/packages/nuxt/src/pages/runtime/composables.ts b/packages/nuxt/src/pages/runtime/composables.ts index 8e7f2a542d..c00b6d46d7 100644 --- a/packages/nuxt/src/pages/runtime/composables.ts +++ b/packages/nuxt/src/pages/runtime/composables.ts @@ -2,7 +2,7 @@ import type { KeepAliveProps, TransitionProps, UnwrapRef } from 'vue' import { getCurrentInstance } from 'vue' import type { RouteLocationNormalized, RouteLocationNormalizedLoaded, RouteRecordRedirectOption } from 'vue-router' import { useRoute } from 'vue-router' -import type { NitroRouteConfig } from 'nitropack' +import type { NitroRouteConfig } from 'nitro/types' import { useNuxtApp } from '#app/nuxt' import type { NuxtError } from '#app' diff --git a/packages/nuxt/types.d.mts b/packages/nuxt/types.d.mts index b1b7ec3047..046d78f817 100644 --- a/packages/nuxt/types.d.mts +++ b/packages/nuxt/types.d.mts @@ -1,4 +1,4 @@ -/// +/// import type { DefineNuxtConfig } from 'nuxt/config' import type { RuntimeConfig, SchemaDefinition } from 'nuxt/schema' @@ -14,7 +14,28 @@ declare global { } // Note: Keep in sync with packages/nuxt/src/core/templates.ts -declare module 'nitropack' { +declare module 'nitro/types' { + interface NitroRuntimeConfigApp { + buildAssetsDir: string + cdnURL: string + } + interface NitroRuntimeConfig extends RuntimeConfig {} + interface NitroRouteConfig { + ssr?: boolean + experimentalNoScripts?: boolean + } + interface NitroRouteRules { + ssr?: boolean + experimentalNoScripts?: boolean + appMiddleware?: Record + } + interface NitroRuntimeHooks { + 'dev:ssr-logs': (ctx: { logs: LogObject[], path: string }) => void | Promise + 'render:html': (htmlContext: NuxtRenderHTMLContext, context: { event: H3Event }) => void | Promise + 'render:island': (islandResponse: NuxtIslandResponse, context: { event: H3Event, islandContext: NuxtIslandContext }) => void | Promise + } +} +declare module 'nitropack/types' { interface NitroRuntimeConfigApp { buildAssetsDir: string cdnURL: string diff --git a/packages/nuxt/types.d.ts b/packages/nuxt/types.d.ts index 1733bdec62..cd426f1c78 100644 --- a/packages/nuxt/types.d.ts +++ b/packages/nuxt/types.d.ts @@ -1,4 +1,4 @@ -/// +/// import type { DefineNuxtConfig } from 'nuxt/config' import type { RuntimeConfig, SchemaDefinition } from 'nuxt/schema' import type { H3Event } from 'h3' @@ -13,7 +13,28 @@ declare global { } // Note: Keep in sync with packages/nuxt/src/core/templates.ts -declare module 'nitropack' { +declare module 'nitro/types' { + interface NitroRuntimeConfigApp { + buildAssetsDir: string + cdnURL: string + } + interface NitroRuntimeConfig extends RuntimeConfig {} + interface NitroRouteConfig { + ssr?: boolean + experimentalNoScripts?: boolean + } + interface NitroRouteRules { + ssr?: boolean + experimentalNoScripts?: boolean + appMiddleware?: Record + } + interface NitroRuntimeHooks { + 'dev:ssr-logs': (ctx: { logs: LogObject[], path: string }) => void | Promise + 'render:html': (htmlContext: NuxtRenderHTMLContext, context: { event: H3Event }) => void | Promise + 'render:island': (islandResponse: NuxtIslandResponse, context: { event: H3Event, islandContext: NuxtIslandContext }) => void | Promise + } +} +declare module 'nitropack/types' { interface NitroRuntimeConfigApp { buildAssetsDir: string cdnURL: string diff --git a/packages/schema/build.config.ts b/packages/schema/build.config.ts index e7179a174f..d12712e2a0 100644 --- a/packages/schema/build.config.ts +++ b/packages/schema/build.config.ts @@ -31,6 +31,7 @@ export default defineBuildConfig({ 'vue', 'unctx', 'hookable', + 'nitro', 'nitropack', 'webpack', 'webpack-bundle-analyzer', diff --git a/packages/schema/package.json b/packages/schema/package.json index a08eaa35c8..cd0c7d286b 100644 --- a/packages/schema/package.json +++ b/packages/schema/package.json @@ -47,9 +47,9 @@ "@vue/language-core": "2.0.22", "c12": "1.11.1", "esbuild-loader": "4.2.0", - "h3": "1.12.0", + "h3": "npm:h3-nightly@2.0.0-1718872656.6765a6e", "ignore": "5.3.1", - "nitropack": "2.9.6", + "nitro": "npm:nitro-nightly@3.0.0-beta-28648657.9a717203", "ofetch": "1.3.4", "unbuild": "latest", "unctx": "2.3.1", diff --git a/packages/schema/src/config/experimental.ts b/packages/schema/src/config/experimental.ts index 69be571683..ce19e97781 100644 --- a/packages/schema/src/config/experimental.ts +++ b/packages/schema/src/config/experimental.ts @@ -106,6 +106,12 @@ export default defineUntypedSchema({ */ externalVue: true, + /** + * Enable accessing `appConfig` from server routes. + * + * @deprecated This option is not recommended. + */ + serverAppConfig: false, /** * Emit `app:chunkError` hook when there is an error loading vite/webpack * chunks. diff --git a/packages/schema/src/config/nitro.ts b/packages/schema/src/config/nitro.ts index f937bb2f20..855fec69a4 100644 --- a/packages/schema/src/config/nitro.ts +++ b/packages/schema/src/config/nitro.ts @@ -5,7 +5,7 @@ export default defineUntypedSchema({ /** * Configuration for Nitro. * @see https://nitro.unjs.io/config/ - * @type {typeof import('nitropack')['NitroConfig']} + * @type {typeof import('nitro/types')['NitroConfig']} */ nitro: { runtimeConfig: { @@ -38,7 +38,7 @@ export default defineUntypedSchema({ * Global route options applied to matching server routes. * @experimental This is an experimental feature and API may change in the future. * @see https://nitro.unjs.io/config/#routerules - * @type {typeof import('nitropack')['NitroConfig']['routeRules']} + * @type {typeof import('nitro/types')['NitroConfig']['routeRules']} */ routeRules: {}, @@ -61,14 +61,14 @@ export default defineUntypedSchema({ * { route: '/path/foo/**:name', handler: '~/server/foohandler.ts' } * ] * ``` - * @type {typeof import('nitropack')['NitroEventHandler'][]} + * @type {typeof import('nitro/types')['NitroEventHandler'][]} */ serverHandlers: [], /** * Nitro development-only server handlers. * @see https://nitro.unjs.io/guide/routing - * @type {typeof import('nitropack')['NitroDevEventHandler'][]} + * @type {typeof import('nitro/types')['NitroDevEventHandler'][]} */ devServerHandlers: [], }) diff --git a/packages/schema/src/config/typescript.ts b/packages/schema/src/config/typescript.ts index 232c2f4c68..28f0261ed6 100644 --- a/packages/schema/src/config/typescript.ts +++ b/packages/schema/src/config/typescript.ts @@ -34,7 +34,7 @@ export default defineUntypedSchema({ $resolve: (val) => { const defaults = [ // Nitro auto-imported/augmented dependencies - 'nitropack', + 'nitro/types', 'defu', 'h3', 'consola', diff --git a/packages/schema/src/types/config.ts b/packages/schema/src/types/config.ts index 63fe9376a3..db349cd529 100644 --- a/packages/schema/src/types/config.ts +++ b/packages/schema/src/types/config.ts @@ -3,7 +3,7 @@ import type { ServerOptions as ViteServerOptions, UserConfig as ViteUserConfig } import type { Options as VuePluginOptions } from '@vitejs/plugin-vue' import type { Options as VueJsxPluginOptions } from '@vitejs/plugin-vue-jsx' import type { SchemaDefinition } from 'untyped' -import type { NitroRuntimeConfig, NitroRuntimeConfigApp } from 'nitropack' +import type { NitroRuntimeConfig, NitroRuntimeConfigApp } from 'nitro/types' import type { SnakeCase } from 'scule' import type { ConfigSchema } from '../../schema/config' import type { Nuxt } from './nuxt' diff --git a/packages/schema/src/types/hooks.ts b/packages/schema/src/types/hooks.ts index 1c4fde5fad..34b5528960 100644 --- a/packages/schema/src/types/hooks.ts +++ b/packages/schema/src/types/hooks.ts @@ -6,7 +6,7 @@ import type { Manifest } from 'vue-bundle-renderer' import type { EventHandler } from 'h3' import type { Import, InlinePreset, Unimport } from 'unimport' import type { Compiler, Configuration, Stats } from 'webpack' -import type { Nitro, NitroConfig } from 'nitropack' +import type { Nitro, NitroConfig } from 'nitro/types' import type { Schema, SchemaDefinition } from 'untyped' import type { RouteLocationRaw } from 'vue-router' import type { VueCompilerOptions } from '@vue/language-core' diff --git a/packages/vite/package.json b/packages/vite/package.json index 670a3f4c55..9388da32af 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -46,7 +46,7 @@ "estree-walker": "^3.0.3", "externality": "^1.0.2", "get-port-please": "^3.1.2", - "h3": "^1.12.0", + "h3": "npm:h3-nightly@2.0.0-1718872656.6765a6e", "knitwork": "^1.1.0", "magic-string": "^0.30.10", "mlly": "^1.7.1", diff --git a/packages/vite/src/client.ts b/packages/vite/src/client.ts index 5ff1679549..0ef536bc5e 100644 --- a/packages/vite/src/client.ts +++ b/packages/vite/src/client.ts @@ -112,7 +112,7 @@ export async function buildClient (ctx: ViteBuildContext) { ...ctx.config.resolve?.alias, '#internal/nuxt/paths': resolve(ctx.nuxt.options.buildDir, 'paths.mjs'), '#build/plugins': resolve(ctx.nuxt.options.buildDir, 'plugins/client'), - '#internal/nitro': resolve(ctx.nuxt.options.buildDir, 'nitro.client.mjs'), + 'nitro/runtime': resolve(ctx.nuxt.options.buildDir, 'nitro.client.mjs'), }, dedupe: [ 'vue', diff --git a/packages/vite/src/server.ts b/packages/vite/src/server.ts index c449b46c80..0ae5faaa12 100644 --- a/packages/vite/src/server.ts +++ b/packages/vite/src/server.ts @@ -61,7 +61,7 @@ export async function buildServer (ctx: ViteBuildContext) { }, ssr: { external: [ - '#internal/nitro', '#internal/nitro/utils', + 'nitro/runtime', ], noExternal: [ ...transpile({ isServer: true, isDev: ctx.nuxt.options.dev }), @@ -80,7 +80,7 @@ export async function buildServer (ctx: ViteBuildContext) { ssr: true, rollupOptions: { input: { server: entry }, - external: ['#internal/nitro', '#internal/nuxt/paths'], + external: ['nitro/runtime', '#internal/nuxt/paths', '#internal/nuxt/app-config'], output: { entryFileNames: '[name].mjs', format: 'module', @@ -104,8 +104,8 @@ export async function buildServer (ctx: ViteBuildContext) { } satisfies vite.InlineConfig, ctx.nuxt.options.vite.$server || {})) if (!ctx.nuxt.options.dev) { - const nitroDependencies = await tryResolveModule('nitropack/package.json', ctx.nuxt.options.modulesDir) - .then(r => import(r!)).then(r => r.dependencies ? Object.keys(r.dependencies) : []).catch(() => []) + const nitroDependencies = await tryResolveModule('nitro/runtime/meta', ctx.nuxt.options.modulesDir) + .then(r => import(r!)).then(r => r.runtimeDependencies || []).catch(() => []) if (Array.isArray(serverConfig.ssr!.external)) { serverConfig.ssr!.external.push( // explicit dependencies we use in our ssr renderer - these can be inlined (if necessary) in the nitro build diff --git a/packages/webpack/package.json b/packages/webpack/package.json index 5b419a1fae..d70fa5534b 100644 --- a/packages/webpack/package.json +++ b/packages/webpack/package.json @@ -37,8 +37,10 @@ "estree-walker": "^3.0.3", "file-loader": "^6.2.0", "fork-ts-checker-webpack-plugin": "^9.0.2", - "h3": "^1.12.0", + "globby": "^14.0.1", + "h3": "npm:h3-nightly@2.0.0-1718872656.6765a6e", "hash-sum": "^2.0.0", + "knitwork": "^1.1.0", "lodash-es": "4.17.21", "magic-string": "^0.30.10", "memfs": "^4.9.3", @@ -75,6 +77,7 @@ "@types/pify": "5.0.4", "@types/webpack-bundle-analyzer": "4.7.0", "@types/webpack-hot-middleware": "2.25.9", + "rollup": "4.18.0", "unbuild": "latest", "vue": "3.4.30" }, diff --git a/packages/webpack/src/configs/server.ts b/packages/webpack/src/configs/server.ts index 16ab572de3..2af11d304e 100644 --- a/packages/webpack/src/configs/server.ts +++ b/packages/webpack/src/configs/server.ts @@ -53,9 +53,9 @@ function serverStandalone (ctx: WebpackConfigContext) { '#', ...ctx.options.build.transpile, ] - const external = ['#internal/nitro'] + const external = ['nitro/runtime'] if (!ctx.nuxt.options.dev) { - external.push('#internal/nuxt/paths') + external.push('#internal/nuxt/paths', '#internal/nuxt/app-config') } if (!Array.isArray(ctx.config.externals)) { return } diff --git a/packages/webpack/src/nitro/plugins/dynamic-require.ts b/packages/webpack/src/nitro/plugins/dynamic-require.ts new file mode 100644 index 0000000000..a8e3460e09 --- /dev/null +++ b/packages/webpack/src/nitro/plugins/dynamic-require.ts @@ -0,0 +1,128 @@ +import { pathToFileURL } from 'node:url' +import { globby } from 'globby' +import { genSafeVariableName } from 'knitwork' +import { resolve } from 'pathe' +import type { Plugin } from 'rollup' + +const PLUGIN_NAME = 'dynamic-require' +const HELPER_DYNAMIC = `\0${PLUGIN_NAME}.mjs` +const DYNAMIC_REQUIRE_RE = /import\("\.\/" ?\+(.*)\).then/g + +interface Options { + dir: string + inline: boolean + ignore: string[] + outDir?: string + prefix?: string +} + +interface Chunk { + id: string + src: string + name: string + meta?: { + id?: string + ids?: string[] + moduleIds?: string[] + } +} + +interface TemplateContext { + chunks: Chunk[] +} + +export function dynamicRequire ({ dir, ignore, inline }: Options): Plugin { + return { + name: PLUGIN_NAME, + transform (code: string, _id: string) { + return { + code: code.replace( + DYNAMIC_REQUIRE_RE, + `import('${HELPER_DYNAMIC}').then(r => r.default || r).then(dynamicRequire => dynamicRequire($1)).then`, + ), + map: null, + } + }, + resolveId (id: string) { + return id === HELPER_DYNAMIC ? id : null + }, + // TODO: Async chunk loading over network! + // renderDynamicImport () { + // return { + // left: 'fetch(', right: ')' + // } + // }, + async load (_id: string) { + if (_id !== HELPER_DYNAMIC) { + return null + } + + // Scan chunks + let files = [] + try { + const wpManifest = resolve(dir, './server.manifest.json') + files = await import(pathToFileURL(wpManifest).href).then(r => + Object.keys(r.files).filter(file => !ignore.includes(file)), + ) + } catch { + files = await globby('**/*.{cjs,mjs,js}', { + cwd: dir, + absolute: false, + ignore, + }) + } + + const chunks = ( + await Promise.all( + files.map(async id => ({ + id, + src: resolve(dir, id).replace(/\\/g, '/'), + name: genSafeVariableName(id), + meta: await getWebpackChunkMeta(resolve(dir, id)), + })), + ) + ).filter(chunk => chunk.meta) as Chunk[] + + return inline ? TMPL_INLINE({ chunks }) : TMPL_LAZY({ chunks }) + }, + } +} + +async function getWebpackChunkMeta (src: string) { + const chunk = await import(pathToFileURL(src).href).then( + r => r.default || r || {}, + ) + const { id, ids, modules } = chunk + if (!id && !ids) { + return null // Not a webpack chunk + } + return { + id, + ids, + moduleIds: Object.keys(modules || {}), + } +} + +function TMPL_INLINE ({ chunks }: TemplateContext) { + return `${chunks + .map(i => `import * as ${i.name} from '${i.src}'`) + .join('\n')} +const dynamicChunks = { + ${chunks.map(i => ` ['${i.id}']: ${i.name}`).join(',\n')} +}; + +export default function dynamicRequire(id) { + return Promise.resolve(dynamicChunks[id]); +};` +} + +function TMPL_LAZY ({ chunks }: TemplateContext) { + return ` +const dynamicChunks = { +${chunks.map(i => ` ['${i.id}']: () => import('${i.src}')`).join(',\n')} +}; + +export default function dynamicRequire(id) { + return dynamicChunks[id](); +};` +} diff --git a/packages/webpack/src/presets/base.ts b/packages/webpack/src/presets/base.ts index 1149e980b4..af138a1062 100644 --- a/packages/webpack/src/presets/base.ts +++ b/packages/webpack/src/presets/base.ts @@ -125,7 +125,7 @@ function baseAlias (ctx: WebpackConfigContext) { ...ctx.alias, } if (ctx.isClient) { - ctx.alias['#internal/nitro'] = resolve(ctx.nuxt.options.buildDir, 'nitro.client.mjs') + ctx.alias['nitro/runtime'] = resolve(ctx.nuxt.options.buildDir, 'nitro.client.mjs') } } diff --git a/packages/webpack/src/webpack.ts b/packages/webpack/src/webpack.ts index 2328a4104a..17c1595b17 100644 --- a/packages/webpack/src/webpack.ts +++ b/packages/webpack/src/webpack.ts @@ -1,6 +1,7 @@ import pify from 'pify' import webpack from 'webpack' import type { NodeMiddleware } from 'h3' +import { resolve } from 'pathe' import { defineEventHandler, fromNodeMiddleware } from 'h3' import type { MultiWatching } from 'webpack-dev-middleware' import webpackDevMiddleware from 'webpack-dev-middleware' @@ -9,7 +10,8 @@ import type { Compiler, Stats, Watching } from 'webpack' import { defu } from 'defu' import type { NuxtBuilder } from '@nuxt/schema' import { joinURL } from 'ufo' -import { logger, useNuxt } from '@nuxt/kit' +import { logger, useNitro, useNuxt } from '@nuxt/kit' +import type { InputPluginOption } from 'rollup' import { composableKeysPlugin } from '../../vite/src/plugins/composable-keys' import { DynamicBasePlugin } from './plugins/dynamic-base' @@ -18,6 +20,7 @@ import { createMFS } from './utils/mfs' import { registerVirtualModules } from './virtual-modules' import { client, server } from './configs' import { applyPresets, createWebpackConfigContext, getWebpackConfig } from './utils/config' +import { dynamicRequire } from './nitro/plugins/dynamic-require' // TODO: Support plugins // const plugins: string[] = [] @@ -32,6 +35,26 @@ export const bundle: NuxtBuilder['bundle'] = async (nuxt) => { return getWebpackConfig(ctx) }) + /** Inject rollup plugin for Nitro to handle dynamic imports from webpack chunks */ + const nitro = useNitro() + const dynamicRequirePlugin = dynamicRequire({ + dir: resolve(nuxt.options.buildDir, 'dist/server'), + inline: + nitro.options.node === false || nitro.options.inlineDynamicImports, + ignore: [ + 'client.manifest.mjs', + 'server.js', + 'server.cjs', + 'server.mjs', + 'server.manifest.mjs', + ], + }) + const prerenderRollupPlugins = nitro.options._config.rollupConfig!.plugins as InputPluginOption[] + const rollupPlugins = nitro.options.rollupConfig!.plugins as InputPluginOption[] + + prerenderRollupPlugins.push(dynamicRequirePlugin) + rollupPlugins.push(dynamicRequirePlugin) + await nuxt.callHook('webpack:config', webpackConfigs) // Initialize shared MFS for dev diff --git a/patches/ofetch@1.3.4.patch b/patches/ofetch@1.3.4.patch new file mode 100644 index 0000000000..6492d6c218 --- /dev/null +++ b/patches/ofetch@1.3.4.patch @@ -0,0 +1,33 @@ +diff --git a/dist/node.d.cts b/dist/node.d.cts +index d3a39ff53717d267ff4581af714533ff7229799c..4e3db1f3d6defb7b0c40d11589c0ff6cb8391ad5 100644 +--- a/dist/node.d.cts ++++ b/dist/node.d.cts +@@ -1,5 +1,5 @@ + import { $ as $Fetch } from './shared/ofetch.8459ad38.cjs'; +-export { F as FetchError, c as createFetch, a as createFetchError } from './shared/ofetch.8459ad38.cjs'; ++export { C as CreateFetchOptions, g as Fetch, b as FetchContext, F as FetchError, d as FetchOptions, h as FetchRequest, f as FetchResponse, G as GlobalOptions, I as IFetchError, M as MappedResponseType, R as ResponseMap, e as ResponseType, S as SearchParameters, c as createFetch, a as createFetchError } from './shared/ofetch.8459ad38.mjs'; + + declare function createNodeFetch(): (input: RequestInfo, init?: RequestInit) => any; + declare const fetch: typeof globalThis.fetch; +diff --git a/dist/node.d.mts b/dist/node.d.mts +index 3d8b330375ce60178c05292179ec8bac764ae516..bdcc322bd8554fc7e61d5d9760cb9991560560eb 100644 +--- a/dist/node.d.mts ++++ b/dist/node.d.mts +@@ -1,5 +1,5 @@ + import { $ as $Fetch } from './shared/ofetch.8459ad38.mjs'; +-export { F as FetchError, c as createFetch, a as createFetchError } from './shared/ofetch.8459ad38.mjs'; ++export { C as CreateFetchOptions, g as Fetch, b as FetchContext, F as FetchError, d as FetchOptions, h as FetchRequest, f as FetchResponse, G as GlobalOptions, I as IFetchError, M as MappedResponseType, R as ResponseMap, e as ResponseType, S as SearchParameters, c as createFetch, a as createFetchError } from './shared/ofetch.8459ad38.mjs'; + + declare function createNodeFetch(): (input: RequestInfo, init?: RequestInit) => any; + declare const fetch: typeof globalThis.fetch; +diff --git a/dist/node.d.ts b/dist/node.d.ts +index 6a5419d1939000a15958b362f44bf49fb1800207..4b319d2c3051e966274268670e243c5f99e2904d 100644 +--- a/dist/node.d.ts ++++ b/dist/node.d.ts +@@ -1,5 +1,5 @@ + import { $ as $Fetch } from './shared/ofetch.8459ad38.js'; +-export { F as FetchError, c as createFetch, a as createFetchError } from './shared/ofetch.8459ad38.js'; ++export { C as CreateFetchOptions, g as Fetch, b as FetchContext, F as FetchError, d as FetchOptions, h as FetchRequest, f as FetchResponse, G as GlobalOptions, I as IFetchError, M as MappedResponseType, R as ResponseMap, e as ResponseType, S as SearchParameters, c as createFetch, a as createFetchError } from './shared/ofetch.8459ad38.mjs'; + + declare function createNodeFetch(): (input: RequestInfo, init?: RequestInit) => any; + declare const fetch: typeof globalThis.fetch; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1ad7ac140c..d38d82f326 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -5,6 +5,9 @@ settings: excludeLinksFromLockfile: false overrides: + nitro: npm:nitro-nightly@3.0.0-beta-28648657.9a717203 + typescript: 5.5.2 + h3: npm:h3-nightly@2.0.0-1718872656.6765a6e '@nuxt/kit': workspace:* '@nuxt/schema': workspace:* '@nuxt/ui-templates': workspace:* @@ -16,6 +19,11 @@ overrides: vite: 5.3.1 vue: 3.4.30 +patchedDependencies: + ofetch@1.3.4: + hash: nxc3eojzwynarpj453xzxqr2f4 + path: patches/ofetch@1.3.4.patch + importers: .: @@ -31,7 +39,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.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)) + version: 3.13.1(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.30)(vue@3.4.30(typescript@5.5.2)))(@vue/test-utils@2.4.6)(h3-nightly@2.0.0-1718872656.6765a6e)(happy-dom@14.12.3)(magicast@0.3.4)(nitropack@2.9.6(@opentelemetry/api@1.9.0)(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.45.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.9)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0))(vue-router@4.4.0(vue@3.4.30(typescript@5.5.2)))(vue@3.4.30(typescript@5.5.2)) '@nuxt/webpack-builder': specifier: workspace:* version: link:packages/webpack @@ -90,8 +98,8 @@ importers: specifier: 14.0.1 version: 14.0.1 h3: - specifier: 1.12.0 - version: 1.12.0 + specifier: npm:h3-nightly@2.0.0-1718872656.6765a6e + version: h3-nightly@2.0.0-1718872656.6765a6e happy-dom: specifier: 14.12.3 version: 14.12.3 @@ -101,9 +109,9 @@ importers: markdownlint-cli: specifier: 0.41.0 version: 0.41.0 - nitropack: - specifier: 2.9.6 - version: 2.9.6(encoding@0.1.13)(magicast@0.3.4) + nitro: + specifier: npm:nitro-nightly@3.0.0-beta-28648657.9a717203 + version: nitro-nightly@3.0.0-beta-28648657.9a717203(@opentelemetry/api@1.9.0)(encoding@0.1.13) nuxi: specifier: 3.12.0 version: 3.12.0 @@ -115,7 +123,7 @@ importers: version: 0.0.10(@nuxtjs/mdc@0.5.0) ofetch: specifier: 1.3.4 - version: 1.3.4 + version: 1.3.4(patch_hash=nxc3eojzwynarpj453xzxqr2f4) pathe: specifier: 1.1.2 version: 1.1.2 @@ -142,7 +150,7 @@ importers: 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.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)) + version: 1.0.0(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.30)(vue@3.4.30(typescript@5.5.2)))(@vue/test-utils@2.4.6)(h3-nightly@2.0.0-1718872656.6765a6e)(happy-dom@14.12.3)(magicast@0.3.4)(nitropack@2.9.6(@opentelemetry/api@1.9.0)(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.45.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.9)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0))(vue-router@4.4.0(vue@3.4.30(typescript@5.5.2)))(vue@3.4.30(typescript@5.5.2)) vue: specifier: 3.4.30 version: 3.4.30(typescript@5.5.2) @@ -219,9 +227,9 @@ importers: '@types/semver': specifier: 7.5.8 version: 7.5.8 - nitropack: - specifier: 2.9.6 - version: 2.9.6(encoding@0.1.13)(magicast@0.3.4) + nitro: + specifier: npm:nitro-nightly@3.0.0-beta-28648657.9a717203 + version: nitro-nightly@3.0.0-beta-28648657.9a717203(@opentelemetry/api@1.9.0)(encoding@0.1.13) unbuild: specifier: latest version: 2.0.0(sass@1.69.4)(typescript@5.5.2) @@ -304,8 +312,8 @@ importers: specifier: ^14.0.1 version: 14.0.1 h3: - specifier: ^1.12.0 - version: 1.12.0 + specifier: npm:h3-nightly@2.0.0-1718872656.6765a6e + version: h3-nightly@2.0.0-1718872656.6765a6e hookable: specifier: ^5.5.3 version: 5.5.3 @@ -327,9 +335,9 @@ importers: mlly: specifier: ^1.7.1 version: 1.7.1 - nitropack: - specifier: ^2.9.6 - version: 2.9.6(encoding@0.1.13)(magicast@0.3.4) + nitro: + specifier: npm:nitro-nightly@3.0.0-beta-28648657.9a717203 + version: nitro-nightly@3.0.0-beta-28648657.9a717203(@opentelemetry/api@1.9.0)(encoding@0.1.13) nuxi: specifier: ^3.12.0 version: 3.12.0 @@ -338,7 +346,7 @@ importers: version: 0.3.8 ofetch: specifier: ^1.3.4 - version: 1.3.4 + version: 1.3.4(patch_hash=nxc3eojzwynarpj453xzxqr2f4) ohash: specifier: ^1.1.3 version: 1.1.3 @@ -392,7 +400,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)) unstorage: specifier: ^1.10.2 - version: 1.10.2(ioredis@5.3.2) + version: 1.10.2(ioredis@5.4.1) untyped: specifier: ^1.4.2 version: 1.4.2 @@ -411,7 +419,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.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)) + version: 0.5.1(@nuxt/devtools@1.3.6(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0)))(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(@vue/compiler-core@3.4.30)(ioredis@5.4.1)(nuxt@packages+nuxt)(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))(vue@3.4.30(typescript@5.5.2))(webpack@5.92.1(esbuild@0.21.5)) '@nuxt/ui-templates': specifier: workspace:* version: link:../ui-templates @@ -516,17 +524,17 @@ importers: specifier: 4.2.0 version: 4.2.0(webpack@5.92.1) h3: - specifier: 1.12.0 - version: 1.12.0 + specifier: npm:h3-nightly@2.0.0-1718872656.6765a6e + version: h3-nightly@2.0.0-1718872656.6765a6e ignore: specifier: 5.3.1 version: 5.3.1 - nitropack: - specifier: 2.9.6 - version: 2.9.6(encoding@0.1.13)(magicast@0.3.4) + nitro: + specifier: npm:nitro-nightly@3.0.0-beta-28648657.9a717203 + version: nitro-nightly@3.0.0-beta-28648657.9a717203(@opentelemetry/api@1.9.0)(encoding@0.1.13) ofetch: specifier: 1.3.4 - version: 1.3.4 + version: 1.3.4(patch_hash=nxc3eojzwynarpj453xzxqr2f4) unbuild: specifier: latest version: 2.0.0(sass@1.69.4)(typescript@5.5.2) @@ -645,8 +653,8 @@ importers: specifier: ^3.1.2 version: 3.1.2 h3: - specifier: ^1.12.0 - version: 1.12.0 + specifier: npm:h3-nightly@2.0.0-1718872656.6765a6e + version: h3-nightly@2.0.0-1718872656.6765a6e knitwork: specifier: ^1.1.0 version: 1.1.0 @@ -759,12 +767,18 @@ importers: fork-ts-checker-webpack-plugin: specifier: ^9.0.2 version: 9.0.2(typescript@5.5.2)(webpack@5.92.1) + globby: + specifier: ^14.0.1 + version: 14.0.1 h3: - specifier: ^1.12.0 - version: 1.12.0 + specifier: npm:h3-nightly@2.0.0-1718872656.6765a6e + version: h3-nightly@2.0.0-1718872656.6765a6e hash-sum: specifier: ^2.0.0 version: 2.0.0 + knitwork: + specifier: ^1.1.0 + version: 1.1.0 lodash-es: specifier: 4.17.21 version: 4.17.21 @@ -868,6 +882,9 @@ importers: '@types/webpack-hot-middleware': specifier: 2.25.9 version: 2.25.9 + rollup: + specifier: ^4.18.0 + version: 4.18.0 unbuild: specifier: latest version: 2.0.0(sass@1.69.4)(typescript@5.5.2) @@ -941,7 +958,7 @@ importers: devDependencies: ofetch: specifier: latest - version: 1.3.4 + version: 1.3.4(patch_hash=nxc3eojzwynarpj453xzxqr2f4) unplugin-vue-router: specifier: ^0.10.0 version: 0.10.0(rollup@4.18.0)(vue-router@4.4.0(vue@3.4.30(typescript@5.5.2)))(vue@3.4.30(typescript@5.5.2)) @@ -1011,7 +1028,7 @@ importers: specifier: latest version: 3.4.30 typescript: - specifier: latest + specifier: 5.5.2 version: 5.5.2 unhead: specifier: latest @@ -1224,8 +1241,9 @@ packages: '@bcoe/v8-coverage@0.2.3': resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} - '@cloudflare/kv-asset-handler@0.3.1': - resolution: {integrity: sha512-lKN2XCfKCmpKb86a1tl4GIwsJYDy9TGuwjhDELLmpKygQhw8X2xR4dusgpC5Tg7q1pB96Eb0rBo81kxSILQMwA==} + '@cloudflare/kv-asset-handler@0.3.3': + resolution: {integrity: sha512-wpE+WiWW2kUNwNE0xyl4CtTAs+STjGtouHGiZPGRaisGB7eXXdbvfZdOrQJQVKgTxZiNAgVgmc7fj0sUmd8zyA==} + engines: {node: '>=16.13'} '@discoveryjs/json-ext@0.5.7': resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==} @@ -1917,17 +1935,17 @@ packages: resolution: {integrity: sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==} hasBin: true - '@netlify/functions@2.6.0': - resolution: {integrity: sha512-vU20tij0fb4nRGACqb+5SQvKd50JYyTyEhQetCMHdakcJFzjLDivvRR16u1G2Oy4A7xNAtGJF1uz8reeOtTVcQ==} + '@netlify/functions@2.7.0': + resolution: {integrity: sha512-4pXC/fuj3eGQ86wbgPiM4zY8+AsNrdz6vcv6FEdUJnZW+LqF8IWjQcY3S0d1hLeLKODYOqq4CkrzGyCpce63Nw==} engines: {node: '>=14.0.0'} '@netlify/node-cookies@0.1.0': resolution: {integrity: sha512-OAs1xG+FfLX0LoRASpqzVntVV/RpYkgpI0VrUnw2u0Q1qiZUzcPffxRK8HF3gc4GjuhG5ahOEMJ9bswBiZPq0g==} engines: {node: ^14.16.0 || >=16.0.0} - '@netlify/serverless-functions-api@1.14.0': - resolution: {integrity: sha512-HUNETLNvNiC2J+SB/YuRwJA9+agPrc0azSoWVk8H85GC+YE114hcS5JW+dstpKwVerp2xILE3vNWN7IMXP5Q5Q==} - engines: {node: ^14.18.0 || >=16.0.0} + '@netlify/serverless-functions-api@1.18.1': + resolution: {integrity: sha512-DrSvivchuwsuQW03zbVPT3nxCQa5tn7m4aoPOsQKibuJXIuSbfxzCBxPLz0+LchU5ds7YyOaCc9872Y32ngYzg==} + engines: {node: '>=18.0.0'} '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} @@ -2040,7 +2058,7 @@ packages: '@testing-library/vue': ^7.0.0 || ^8.0.1 '@vitest/ui': ^0.34.6 || ^1.0.0 '@vue/test-utils': ^2.4.2 - h3: '*' + h3: npm:h3-nightly@2.0.0-1718872656.6765a6e happy-dom: ^9.10.9 || ^10.0.0 || ^11.0.0 || ^12.0.0 || ^13.0.0 || ^14.0.0 jsdom: ^22.0.0 || ^23.0.0 || ^24.0.0 nitropack: '*' @@ -2080,6 +2098,77 @@ packages: '@one-ini/wasm@0.1.1': resolution: {integrity: sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw==} + '@opentelemetry/api-logs@0.50.0': + resolution: {integrity: sha512-JdZuKrhOYggqOpUljAq4WWNi5nB10PmgoF0y2CvedLGXd0kSawb/UBnWT8gg1ND3bHCNHStAIVT0ELlxJJRqrA==} + engines: {node: '>=14'} + + '@opentelemetry/api@1.9.0': + resolution: {integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==} + engines: {node: '>=8.0.0'} + + '@opentelemetry/core@1.23.0': + resolution: {integrity: sha512-hdQ/a9TMzMQF/BO8Cz1juA43/L5YGtCSiKoOHmrTEf7VMDAZgy8ucpWx3eQTnQ3gBloRcWtzvcrMZABC3PTSKQ==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.9.0' + + '@opentelemetry/core@1.25.1': + resolution: {integrity: sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + + '@opentelemetry/otlp-transformer@0.50.0': + resolution: {integrity: sha512-s0sl1Yfqd5q1Kjrf6DqXPWzErL+XHhrXOfejh4Vc/SMTNqC902xDsC8JQxbjuramWt/+hibfguIvi7Ns8VLolA==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.3.0 <1.9.0' + + '@opentelemetry/resources@1.23.0': + resolution: {integrity: sha512-iPRLfVfcEQynYGo7e4Di+ti+YQTAY0h5mQEUJcHlU9JOqpb4x965O6PZ+wMcwYVY63G96KtdS86YCM1BF1vQZg==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.9.0' + + '@opentelemetry/resources@1.25.1': + resolution: {integrity: sha512-pkZT+iFYIZsVn6+GzM0kSX+u3MSLCY9md+lIJOoKl/P+gJFfxJte/60Usdp8Ce4rOs8GduUpSPNe1ddGyDT1sQ==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + + '@opentelemetry/sdk-logs@0.50.0': + resolution: {integrity: sha512-PeUEupBB29p9nlPNqXoa1PUWNLsZnxG0DCDj3sHqzae+8y76B/A5hvZjg03ulWdnvBLYpnJslqzylG9E0IL87g==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.4.0 <1.9.0' + '@opentelemetry/api-logs': '>=0.39.1' + + '@opentelemetry/sdk-metrics@1.23.0': + resolution: {integrity: sha512-4OkvW6+wST4h6LFG23rXSTf6nmTf201h9dzq7bE0z5R9ESEVLERZz6WXwE7PSgg1gdjlaznm1jLJf8GttypFDg==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.3.0 <1.9.0' + + '@opentelemetry/sdk-trace-base@1.23.0': + resolution: {integrity: sha512-PzBmZM8hBomUqvCddF/5Olyyviayka44O5nDWq673np3ctnvwMOvNrsUORZjKja1zJbwEuD9niAGbnVrz3jwRQ==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.9.0' + + '@opentelemetry/sdk-trace-base@1.25.1': + resolution: {integrity: sha512-C8k4hnEbc5FamuZQ92nTOp8X/diCY56XUTnMiv9UTuJitCzaNNHAVsdm5+HLCdI8SLQsLWIrG38tddMxLVoftw==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + + '@opentelemetry/semantic-conventions@1.23.0': + resolution: {integrity: sha512-MiqFvfOzfR31t8cc74CTP1OZfz7MbqpAnLCra8NqQoaHJX6ncIRTdYOQYBDQ2uFISDq0WY8Y9dDTWvsgzzBYRg==} + engines: {node: '>=14'} + + '@opentelemetry/semantic-conventions@1.25.1': + resolution: {integrity: sha512-ZDjMJJQRlyk8A1KZFCc+bCbsyrn1wTwdNt56F7twdfUfnHUZUq77/WfONCj8p72NZOyP7pNTdUWSTYC3GTbuuQ==} + engines: {node: '>=14'} + '@parcel/watcher-android-arm64@2.4.1': resolution: {integrity: sha512-LOi/WTbbh3aTn2RYddrO8pnapixAziFl6SMxHM69r3tvdSm94JtCenaKgk1GRg5FJ5wpMCpHeW+7yqPlvZv7kg==} engines: {node: '>= 10.0.0'} @@ -2187,6 +2276,15 @@ packages: rollup: optional: true + '@rollup/plugin-commonjs@26.0.1': + resolution: {integrity: sha512-UnsKoZK6/aGIH6AdkptXhNvhaqftcjq3zZdT+LY5Ftms6JR06nADcDsYp5hTU9E2lbJUEOhdlY5J4DNTneM+jQ==} + engines: {node: '>=16.0.0 || 14 >= 14.17'} + peerDependencies: + rollup: ^4.18.0 + peerDependenciesMeta: + rollup: + optional: true + '@rollup/plugin-inject@5.0.5': resolution: {integrity: sha512-2+DEJbNBoPROPkgTDNe8/1YXWcqxbN5DTjASVIOx8HS+pITXushyNiBV56RB08zuptzz8gT3YfkqriTBVycepg==} engines: {node: '>=14.0.0'} @@ -2845,8 +2943,13 @@ packages: peerDependencies: webpack: ^4 || ^5 - '@vercel/nft@0.26.4': - resolution: {integrity: sha512-j4jCOOXke2t8cHZCIxu1dzKLHLcFmYzC3yqAK6MfZznOL1QIJKd0xcFsXK3zcqzU7ScsE2zWkiMMNHGMHgp+FA==} + '@vercel/nft@0.26.5': + resolution: {integrity: sha512-NHxohEqad6Ra/r4lGknO52uc/GrWILXAMs1BB4401GTqww0fw1bAqzpG1XHuDO+dprg4GvsD9ZLLSsdo78p9hQ==} + engines: {node: '>=16'} + hasBin: true + + '@vercel/nft@0.27.2': + resolution: {integrity: sha512-7LeioS1yE5hwPpQfD3DdH04tuugKjo5KrJk3yK5kAI3Lh76iSsK/ezoFQfzuT08X3ZASQOd1y9ePjLNI9+TxTQ==} engines: {node: '>=16'} hasBin: true @@ -2951,7 +3054,7 @@ packages: '@vue/language-core@1.8.27': resolution: {integrity: sha512-L8Kc27VdQserNaCUNiSFdDl9LWT24ly8Hpwf1ECy3aFb9m6bDhBGQYOujDm21N7EW3moKIOKEanQwe1q5BK+mA==} peerDependencies: - typescript: '*' + typescript: 5.5.2 peerDependenciesMeta: typescript: optional: true @@ -2959,7 +3062,7 @@ packages: '@vue/language-core@2.0.22': resolution: {integrity: sha512-dNTAAtEOuMiz7N1s5tKpypnVVCtawxVSF5BukD0ELcYSw+DSbrSlYYSw8GuwvurodCeYFSHsmslE+c2sYDNoiA==} peerDependencies: - typescript: '*' + typescript: 5.5.2 peerDependenciesMeta: typescript: optional: true @@ -3607,7 +3710,7 @@ packages: resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} engines: {node: '>=14'} peerDependencies: - typescript: '>=4.9.5' + typescript: 5.5.2 peerDependenciesMeta: typescript: optional: true @@ -3616,7 +3719,7 @@ packages: resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} engines: {node: '>=14'} peerDependencies: - typescript: '>=4.9.5' + typescript: 5.5.2 peerDependenciesMeta: typescript: optional: true @@ -3636,8 +3739,8 @@ packages: critters@0.0.24: resolution: {integrity: sha512-Oyqew0FGM0wYUSNqR0L6AteO5MpMoUU0rhKRieXeiKs+PmRTxiJMyaunYB2KF6fQ3dzChXKCpbFOEJx3OQ1v/Q==} - croner@8.0.1: - resolution: {integrity: sha512-Hq1+lXVgjJjcS/U+uk6+yVmtxami0r0b+xVtlGyABgdz110l/kOnHWvlSI7nVzrTl8GCdZHwZS4pbBFT7hSL/g==} + croner@8.0.2: + resolution: {integrity: sha512-HgSdlSUX8mIgDTTiQpWUP4qY4IFRMsduPCYdca34Pelt8MVdxdaDOzreFtCscA6R+cRZd7UbD1CD3uyx6J3X1A==} engines: {node: '>=18.0'} cronstrue@2.50.0: @@ -3928,6 +4031,10 @@ packages: resolution: {integrity: sha512-xaBe6ZT4DHPkg0k4Ytbvn5xoxgpG0jOS1dYxSOwAHPuNLjP3/OzN0gH55SrLqpx8cBfSaVt91lXYkApjb+nYdQ==} engines: {node: '>=16'} + dot-prop@9.0.0: + resolution: {integrity: sha512-1gxPBJpI/pcjQhKgIU91II6Wkay+dLcN3M6rf2uwP8hRur3HtQXjVrdAK3sjC0piaEuxzMwjXChcETiJl47lAQ==} + engines: {node: '>=18'} + dotenv@16.4.5: resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} engines: {node: '>=12'} @@ -4319,7 +4426,7 @@ packages: resolution: {integrity: sha512-Uochze2R8peoN1XqlSi/rGUkDQpRogtLFocP9+PGu68zk1BDAKXfdeCdyVZpgTk8V8WFVQXdEz426VKjXLO1Gg==} engines: {node: '>=12.13.0', yarn: '>=1.0.0'} peerDependencies: - typescript: '>3.6.0' + typescript: 5.5.2 webpack: ^5.11.0 fraction.js@4.3.7: @@ -4495,6 +4602,12 @@ packages: resolution: {integrity: sha512-O1Ld7Dr+nqPnmGpdhzLmMTQ4vAsD+rHwMm1NLUmoUFFymBOMKxCCrtDxqdBRYXdeEPEi3SyoR4TizJLQrnKBNA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + h3-nightly@1.12.1-1718872526.a15b8de: + resolution: {integrity: sha512-wzWKg5vfCvzET4H57hFLq8S8ENf9DnXn/0A8G/HRUg16CFOCYTp45nd3Ku8IJrF1HmKBpZngh9MpuXd8LTFlSA==} + + h3-nightly@2.0.0-1718872656.6765a6e: + resolution: {integrity: sha512-LQ8hHOIzk+agD1p0K7UosByKuzDAKGLTnYsP0syV/XMr9E7pWmoaDSWkGdWjtLR9O3hinNqrXU1NW0kTmhiSag==} + h3@1.12.0: resolution: {integrity: sha512-Zi/CcNeWBXDrFNlV0hUBJQR9F7a96RjMeAZweW/ZWkR9fuXrMcvKnSA63f/zZ9l0GgQOZDVHGvXivNN9PWOwhA==} @@ -4704,8 +4817,8 @@ packages: resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==} engines: {node: '>= 0.4'} - ioredis@5.3.2: - resolution: {integrity: sha512-1DKMMzlIHM02eBBVOFQ1+AolGjs6+xEcM4PDL7NqOS6szq7H9jSaEkIUH6/a5Hl241LzW6JLSiAbNvTQjUupUA==} + ioredis@5.4.1: + resolution: {integrity: sha512-2YZsvl7jopIa1gaePkeMtd9rAcSjOOjPtpcLlOeusyO+XH2SK5ZcT+UCrElPP+WVIInh2TzeI4XW9ENaSLVVHA==} engines: {node: '>=12.22.0'} ip@2.0.1: @@ -5366,8 +5479,8 @@ packages: engines: {node: '>=10.0.0'} hasBin: true - mime@4.0.1: - resolution: {integrity: sha512-5lZ5tyrIfliMXzFtkYyekWbtRXObT9OWa8IwQ5uxTBDHucNNwniRqo0yInflj+iYi5CBa6qxadGzGarDfuEOxA==} + mime@4.0.3: + resolution: {integrity: sha512-KgUb15Oorc0NEKPbvfa0wRU+PItIEZmiv+pyAO2i0oTIVTJhlzMclU7w4RXWQrSOVH5ax/p/CkIO7KI4OyFJTQ==} engines: {node: '>=16'} hasBin: true @@ -5462,7 +5575,7 @@ packages: hasBin: true peerDependencies: sass: ^1.63.6 - typescript: '>=5.1.6' + typescript: 5.5.2 peerDependenciesMeta: sass: optional: true @@ -5518,6 +5631,16 @@ packages: neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + nitro-nightly@3.0.0-beta-28648657.9a717203: + resolution: {integrity: sha512-hWjdsIhN5UMZP4HeWPexigUyqoPI4euNzlE6ftYZQJI7WjVu3piD+eXcBX52Dx9b5sFO30ahtAFQ16C85rvg5Q==} + engines: {node: ^16.11.0 || >=17.0.0} + hasBin: true + peerDependencies: + xml2js: ^0.6.2 + peerDependenciesMeta: + xml2js: + optional: true + nitropack@2.9.6: resolution: {integrity: sha512-HP2PE0dREcDIBVkL8Zm6eVyrDd10/GI9hTL00PHvjUM8I9Y/2cv73wRDmxNyInfrx/CJKHATb2U/pQrqpzJyXA==} engines: {node: ^16.11.0 || >=17.0.0} @@ -5710,8 +5833,8 @@ packages: resolution: {integrity: sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==} engines: {node: '>=14.16'} - openapi-typescript@6.7.5: - resolution: {integrity: sha512-ZD6dgSZi0u1QCP55g8/2yS5hNJfIpgqsSGHLxxdOjvY7eIrXzj271FJEQw33VwsZ6RCtO/NOuhxa7GBWmEudyA==} + openapi-typescript@6.7.6: + resolution: {integrity: sha512-c/hfooPx+RBIOPM09GSxABOZhYPblDoyaGhqBkD/59vtpN21jEuWKDlM0KYTvqJVlSYjKs0tBcIdeXKChlSPtw==} hasBin: true opener@1.5.2: @@ -6408,7 +6531,7 @@ packages: engines: {node: '>=16'} peerDependencies: rollup: ^4.18.0 - typescript: ^4.5 || ^5.0 + typescript: 5.5.2 rollup-plugin-visualizer@5.12.0: resolution: {integrity: sha512-8/NU9jXcHRs7Nnj07PF2o4gjxmm9lXIrZ8r175bT9dK8qoLlvKTwRMArRCMgpMGlq8CTLugRvEmyMeMXIU2pNQ==} @@ -6489,8 +6612,8 @@ packages: serialize-javascript@6.0.2: resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} - serve-placeholder@2.0.1: - resolution: {integrity: sha512-rUzLlXk4uPFnbEaIz3SW8VISTxMuONas88nYWjAWaM2W9VDbt9tyFOr3lq8RhVOFrT3XISoBw8vni5una8qMnQ==} + serve-placeholder@2.0.2: + resolution: {integrity: sha512-/TMG8SboeiQbZJWRlfTCqMs2DD3SZgWp0kDQePz9yUuCnDfDh/92gf7/PxGhzXTKBIPASIHxFcZndoNbp6QOLQ==} serve-static@1.15.0: resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} @@ -6868,7 +6991,7 @@ packages: resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} engines: {node: '>=16'} peerDependencies: - typescript: '>=4.2.0' + typescript: 5.5.2 tslib@2.6.2: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} @@ -6883,12 +7006,12 @@ packages: twoslash-vue@0.2.4: resolution: {integrity: sha512-AIcsYRSxn5WuZC+dD7/n99s1UEY6e5IljoGL3YijQvI/pylgsKk5sWXptp5NrRTH0srBLXoeVpE1re1Eo6eiJw==} peerDependencies: - typescript: '*' + typescript: 5.5.2 twoslash@0.2.4: resolution: {integrity: sha512-hc3y11BjLHP4kV37TR6lUKksxpZp0LQi9kCy95ka6qobye/gV49PqXZIuWlRaRVGNvp4AJBMg8aiwkp0M8x/nQ==} peerDependencies: - typescript: '*' + typescript: 5.5.2 type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} @@ -6918,6 +7041,10 @@ packages: resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==} engines: {node: '>=14.16'} + type-fest@4.20.1: + resolution: {integrity: sha512-R6wDsVsoS9xYOpy8vgeBlqpdOyzJ12HNfQhC/aAKWM3YoCV9TtunJzh/QpkMgeDhkoynDcw5f1y+qF9yc/HHyg==} + engines: {node: '>=16'} + typescript@5.5.2: resolution: {integrity: sha512-NcRtPEOsPFFWjobJEtfihkLCZCXZt/os3zf8nTxjVH3RvTSxjrCamJpbExGvYOF+tFHc3pA65qpdwPbzjohhew==} engines: {node: '>=14.17'} @@ -6941,7 +7068,7 @@ packages: resolution: {integrity: sha512-JWCUYx3Oxdzvw2J9kTAp+DKE8df/BnH/JTSj6JyA4SH40ECdFu7FoJJcrm8G92B7TjofQ6GZGjJs50TRxoH6Wg==} hasBin: true peerDependencies: - typescript: ^5.1.6 + typescript: 5.5.2 peerDependenciesMeta: typescript: optional: true @@ -6958,8 +7085,8 @@ packages: undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - undici@5.28.3: - resolution: {integrity: sha512-3ItfzbrhDlINjaP0duwnNsKpDQk3acHI3gVJ1z4fmwMK31k5G9OVIAMLSIaP6w4FaGkaAkN6zaQO9LUvZ1t7VA==} + undici@5.28.4: + resolution: {integrity: sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==} engines: {node: '>=14.0'} unenv@1.9.0: @@ -7180,7 +7307,7 @@ packages: meow: ^9.0.0 optionator: ^0.9.1 stylelint: '>=13' - typescript: '*' + typescript: 5.5.2 vite: 5.3.1 vls: '*' vti: '*' @@ -7357,12 +7484,12 @@ packages: resolution: {integrity: sha512-lMBIwPBO0sxCcmvu45yt1b035AaQ8/XSXQDk8m75y4j0jSXY/y/XzfEtssQ9JMS47lDaR10O3/926oCs8OeGUw==} hasBin: true peerDependencies: - typescript: '*' + typescript: 5.5.2 vue@3.4.30: resolution: {integrity: sha512-NcxtKCwkdf1zPsr7Y8+QlDBCGqxvjLXF2EX+yi76rV5rrz90Y6gK1cq0olIhdWGgrlhs9ElHuhi9t3+W5sG5Xw==} peerDependencies: - typescript: '*' + typescript: 5.5.2 peerDependenciesMeta: typescript: optional: true @@ -7836,7 +7963,7 @@ snapshots: '@bcoe/v8-coverage@0.2.3': {} - '@cloudflare/kv-asset-handler@0.3.1': + '@cloudflare/kv-asset-handler@0.3.3': dependencies: mime: 3.0.0 @@ -8292,16 +8419,25 @@ snapshots: - encoding - supports-color - '@netlify/functions@2.6.0': + '@netlify/functions@2.7.0(@opentelemetry/api@1.9.0)': dependencies: - '@netlify/serverless-functions-api': 1.14.0 + '@netlify/serverless-functions-api': 1.18.1(@opentelemetry/api@1.9.0) + transitivePeerDependencies: + - '@opentelemetry/api' '@netlify/node-cookies@0.1.0': {} - '@netlify/serverless-functions-api@1.14.0': + '@netlify/serverless-functions-api@1.18.1(@opentelemetry/api@1.9.0)': dependencies: '@netlify/node-cookies': 0.1.0 + '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-transformer': 0.50.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 1.25.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 1.25.1(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.25.1 urlpattern-polyfill: 8.0.2 + transitivePeerDependencies: + - '@opentelemetry/api' '@nodelib/fs.scandir@2.1.5': dependencies: @@ -8544,7 +8680,7 @@ 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.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/scripts@0.5.1(@nuxt/devtools@1.3.6(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0)))(@unocss/webpack@0.60.4(rollup@4.18.0)(webpack@5.92.1(esbuild@0.21.5)))(@vue/compiler-core@3.4.30)(ioredis@5.4.1)(nuxt@packages+nuxt)(postcss@8.4.38)(rollup@4.18.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))(vue@3.4.30(typescript@5.5.2))(webpack@5.92.1(esbuild@0.21.5))': dependencies: '@nuxt/devtools-kit': 1.3.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)) @@ -8561,7 +8697,7 @@ snapshots: h3: 1.12.0 magic-string: 0.30.10 mlly: 1.7.1 - ofetch: 1.3.4 + ofetch: 1.3.4(patch_hash=nxc3eojzwynarpj453xzxqr2f4) ohash: 1.1.3 pathe: 1.1.2 pkg-types: 1.1.1 @@ -8573,7 +8709,7 @@ snapshots: ufo: 1.5.3 unimport: 3.7.2(rollup@4.18.0) unplugin: 1.10.1 - unstorage: 1.10.2(ioredis@5.3.2) + unstorage: 1.10.2(ioredis@5.4.1) valibot: 0.31.1 transitivePeerDependencies: - '@azure/app-configuration' @@ -8626,13 +8762,13 @@ snapshots: jiti: 1.21.6 mri: 1.2.0 nanoid: 5.0.7 - ofetch: 1.3.4 + ofetch: 1.3.4(patch_hash=nxc3eojzwynarpj453xzxqr2f4) parse-git-config: 3.0.0 pathe: 1.1.2 rc9: 2.1.2 std-env: 3.7.0 - '@nuxt/test-utils@3.13.1(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.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/test-utils@3.13.1(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.30)(vue@3.4.30(typescript@5.5.2)))(@vue/test-utils@2.4.6)(h3-nightly@2.0.0-1718872656.6765a6e)(happy-dom@14.12.3)(magicast@0.3.4)(nitropack@2.9.6(@opentelemetry/api@1.9.0)(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.45.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.9)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0))(vue-router@4.4.0(vue@3.4.30(typescript@5.5.2)))(vue@3.4.30(typescript@5.5.2))': dependencies: '@nuxt/kit': link:packages/kit '@nuxt/schema': link:packages/schema @@ -8644,12 +8780,12 @@ snapshots: execa: 8.0.1 fake-indexeddb: 5.0.2 get-port-please: 3.1.2 - h3: 1.12.0 + h3: h3-nightly@2.0.0-1718872656.6765a6e local-pkg: 0.5.0 magic-string: 0.30.10 - nitropack: 2.9.6(encoding@0.1.13)(magicast@0.3.4) + nitropack: 2.9.6(@opentelemetry/api@1.9.0)(encoding@0.1.13)(magicast@0.3.4) node-fetch-native: 1.6.4 - ofetch: 1.3.4 + ofetch: 1.3.4(patch_hash=nxc3eojzwynarpj453xzxqr2f4) pathe: 1.1.2 perfect-debounce: 1.0.0 radix3: 1.1.2 @@ -8659,7 +8795,7 @@ snapshots: unenv: 1.9.0 unplugin: 1.10.1 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)) + vitest-environment-nuxt: 1.0.0(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.30)(vue@3.4.30(typescript@5.5.2)))(@vue/test-utils@2.4.6)(h3-nightly@2.0.0-1718872656.6765a6e)(happy-dom@14.12.3)(magicast@0.3.4)(nitropack@2.9.6(@opentelemetry/api@1.9.0)(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.45.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.9)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0))(vue-router@4.4.0(vue@3.4.30(typescript@5.5.2)))(vue@3.4.30(typescript@5.5.2)) vue: 3.4.30(typescript@5.5.2) vue-router: 4.4.0(vue@3.4.30(typescript@5.5.2)) optionalDependencies: @@ -8720,6 +8856,76 @@ snapshots: '@one-ini/wasm@0.1.1': {} + '@opentelemetry/api-logs@0.50.0': + dependencies: + '@opentelemetry/api': 1.9.0 + + '@opentelemetry/api@1.9.0': {} + + '@opentelemetry/core@1.23.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/semantic-conventions': 1.23.0 + + '@opentelemetry/core@1.25.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/semantic-conventions': 1.25.1 + + '@opentelemetry/otlp-transformer@0.50.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/api-logs': 0.50.0 + '@opentelemetry/core': 1.23.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 1.23.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-logs': 0.50.0(@opentelemetry/api-logs@0.50.0)(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-metrics': 1.23.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 1.23.0(@opentelemetry/api@1.9.0) + + '@opentelemetry/resources@1.23.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.23.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.23.0 + + '@opentelemetry/resources@1.25.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.25.1 + + '@opentelemetry/sdk-logs@0.50.0(@opentelemetry/api-logs@0.50.0)(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/api-logs': 0.50.0 + '@opentelemetry/core': 1.23.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 1.23.0(@opentelemetry/api@1.9.0) + + '@opentelemetry/sdk-metrics@1.23.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.23.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 1.23.0(@opentelemetry/api@1.9.0) + lodash.merge: 4.6.2 + + '@opentelemetry/sdk-trace-base@1.23.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.23.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 1.23.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.23.0 + + '@opentelemetry/sdk-trace-base@1.25.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 1.25.1(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.25.1 + + '@opentelemetry/semantic-conventions@1.23.0': {} + + '@opentelemetry/semantic-conventions@1.25.1': {} + '@parcel/watcher-android-arm64@2.4.1': optional: true @@ -8803,6 +9009,17 @@ snapshots: optionalDependencies: rollup: 4.18.0 + '@rollup/plugin-commonjs@26.0.1(rollup@4.18.0)': + dependencies: + '@rollup/pluginutils': 5.1.0(rollup@4.18.0) + commondir: 1.0.1 + estree-walker: 2.0.2 + glob: 10.4.1 + is-reference: 1.2.1 + magic-string: 0.30.10 + optionalDependencies: + rollup: 4.18.0 + '@rollup/plugin-inject@5.0.5(rollup@4.18.0)': dependencies: '@rollup/pluginutils': 5.1.0(rollup@4.18.0) @@ -9488,7 +9705,7 @@ snapshots: dependencies: '@iconify/utils': 2.1.24 '@unocss/core': 0.60.4 - ofetch: 1.3.4 + ofetch: 1.3.4(patch_hash=nxc3eojzwynarpj453xzxqr2f4) transitivePeerDependencies: - supports-color @@ -9496,7 +9713,7 @@ snapshots: dependencies: '@iconify/utils': 2.1.24 '@unocss/core': 0.61.0 - ofetch: 1.3.4 + ofetch: 1.3.4(patch_hash=nxc3eojzwynarpj453xzxqr2f4) transitivePeerDependencies: - supports-color @@ -9547,12 +9764,12 @@ snapshots: '@unocss/preset-web-fonts@0.60.4': dependencies: '@unocss/core': 0.60.4 - ofetch: 1.3.4 + ofetch: 1.3.4(patch_hash=nxc3eojzwynarpj453xzxqr2f4) '@unocss/preset-web-fonts@0.61.0': dependencies: '@unocss/core': 0.61.0 - ofetch: 1.3.4 + ofetch: 1.3.4(patch_hash=nxc3eojzwynarpj453xzxqr2f4) '@unocss/preset-wind@0.60.4': dependencies: @@ -9685,7 +9902,25 @@ snapshots: transitivePeerDependencies: - rollup - '@vercel/nft@0.26.4(encoding@0.1.13)': + '@vercel/nft@0.26.5(encoding@0.1.13)': + dependencies: + '@mapbox/node-pre-gyp': 1.0.11(encoding@0.1.13) + '@rollup/pluginutils': 4.2.1 + acorn: 8.12.0 + acorn-import-attributes: 1.9.5(acorn@8.12.0) + async-sema: 3.1.1 + bindings: 1.5.0 + estree-walker: 2.0.2 + glob: 7.2.3 + graceful-fs: 4.2.11 + micromatch: 4.0.5 + node-gyp-build: 4.6.1 + resolve-from: 5.0.0 + transitivePeerDependencies: + - encoding + - supports-color + + '@vercel/nft@0.27.2(encoding@0.1.13)': dependencies: '@mapbox/node-pre-gyp': 1.0.11(encoding@0.1.13) '@rollup/pluginutils': 4.2.1 @@ -10439,7 +10674,7 @@ snapshots: execa: 8.0.1 mri: 1.2.0 node-fetch-native: 1.6.4 - ofetch: 1.3.4 + ofetch: 1.3.4(patch_hash=nxc3eojzwynarpj453xzxqr2f4) open: 9.1.0 pathe: 1.1.2 pkg-types: 1.1.1 @@ -10635,7 +10870,7 @@ snapshots: postcss: 8.4.38 postcss-media-query-parser: 0.2.3 - croner@8.0.1: {} + croner@8.0.2: {} cronstrue@2.50.0: {} @@ -10900,6 +11135,10 @@ snapshots: dependencies: type-fest: 3.13.1 + dot-prop@9.0.0: + dependencies: + type-fest: 4.20.1 + dotenv@16.4.5: {} duplexer@0.1.2: {} @@ -11682,6 +11921,36 @@ snapshots: dependencies: duplexer: 0.1.2 + h3-nightly@1.12.1-1718872526.a15b8de: + dependencies: + cookie-es: 1.1.0 + crossws: 0.2.4 + defu: 6.1.4 + destr: 2.0.3 + iron-webcrypto: 1.2.1 + ohash: 1.1.3 + radix3: 1.1.2 + ufo: 1.5.3 + uncrypto: 0.1.3 + unenv: 1.9.0 + transitivePeerDependencies: + - uWebSockets.js + + h3-nightly@2.0.0-1718872656.6765a6e: + dependencies: + cookie-es: 1.1.0 + crossws: 0.2.4 + defu: 6.1.4 + destr: 2.0.3 + iron-webcrypto: 1.2.1 + ohash: 1.1.3 + radix3: 1.1.2 + ufo: 1.5.3 + uncrypto: 0.1.3 + unenv: 1.9.0 + transitivePeerDependencies: + - uWebSockets.js + h3@1.12.0: dependencies: cookie-es: 1.1.0 @@ -11919,7 +12188,7 @@ snapshots: has: 1.0.4 side-channel: 1.0.4 - ioredis@5.3.2: + ioredis@5.4.1: dependencies: '@ioredis/commands': 1.2.0 cluster-key-slot: 1.1.2 @@ -12761,7 +13030,7 @@ snapshots: mime@3.0.0: {} - mime@4.0.1: {} + mime@4.0.3: {} mimic-fn@2.1.0: {} @@ -12891,12 +13160,12 @@ snapshots: neo-async@2.6.2: {} - nitropack@2.9.6(encoding@0.1.13)(magicast@0.3.4): + nitro-nightly@3.0.0-beta-28648657.9a717203(@opentelemetry/api@1.9.0)(encoding@0.1.13): dependencies: - '@cloudflare/kv-asset-handler': 0.3.1 - '@netlify/functions': 2.6.0 + '@cloudflare/kv-asset-handler': 0.3.3 + '@netlify/functions': 2.7.0(@opentelemetry/api@1.9.0) '@rollup/plugin-alias': 5.1.0(rollup@4.18.0) - '@rollup/plugin-commonjs': 25.0.7(rollup@4.18.0) + '@rollup/plugin-commonjs': 26.0.1(rollup@4.18.0) '@rollup/plugin-inject': 5.0.5(rollup@4.18.0) '@rollup/plugin-json': 6.1.0(rollup@4.18.0) '@rollup/plugin-node-resolve': 15.2.3(rollup@4.18.0) @@ -12904,43 +13173,46 @@ snapshots: '@rollup/plugin-terser': 0.4.4(rollup@4.18.0) '@rollup/pluginutils': 5.1.0(rollup@4.18.0) '@types/http-proxy': 1.17.14 - '@vercel/nft': 0.26.4(encoding@0.1.13) + '@vercel/nft': 0.27.2(encoding@0.1.13) archiver: 7.0.1 c12: 1.11.1(magicast@0.3.4) chalk: 5.3.0 chokidar: 3.6.0 citty: 0.1.6 + compatx: 0.1.8 + confbox: 0.1.7 consola: 3.2.3 cookie-es: 1.1.0 - croner: 8.0.1 + croner: 8.0.2 crossws: 0.2.4 db0: 0.1.4 defu: 6.1.4 destr: 2.0.3 - dot-prop: 8.0.2 - esbuild: 0.20.2 + dot-prop: 9.0.0 + esbuild: 0.21.5 escape-string-regexp: 5.0.0 etag: 1.8.1 fs-extra: 11.2.0 globby: 14.0.1 gzip-size: 7.0.0 - h3: 1.12.0 + h3: h3-nightly@1.12.1-1718872526.a15b8de hookable: 5.5.3 httpxy: 0.1.5 - ioredis: 5.3.2 + ioredis: 5.4.1 is-primitive: 3.0.1 jiti: 1.21.6 klona: 2.0.6 knitwork: 1.1.0 listhen: 1.7.2 magic-string: 0.30.10 - mime: 4.0.1 + magicast: 0.3.4 + mime: 4.0.3 mlly: 1.7.1 mri: 1.2.0 node-fetch-native: 1.6.4 - ofetch: 1.3.4 + ofetch: 1.3.4(patch_hash=nxc3eojzwynarpj453xzxqr2f4) ohash: 1.1.3 - openapi-typescript: 6.7.5 + openapi-typescript: 6.7.6 pathe: 1.1.2 perfect-debounce: 1.0.0 pkg-types: 1.1.1 @@ -12950,7 +13222,7 @@ snapshots: rollup-plugin-visualizer: 5.12.0(rollup@4.18.0) scule: 1.3.0 semver: 7.6.2 - serve-placeholder: 2.0.1 + serve-placeholder: 2.0.2 serve-static: 1.15.0 std-env: 3.7.0 ufo: 1.5.3 @@ -12958,7 +13230,8 @@ snapshots: unctx: 2.3.1 unenv: 1.9.0 unimport: 3.7.2(rollup@4.18.0) - unstorage: 1.10.2(ioredis@5.3.2) + unstorage: 1.10.2(ioredis@5.4.1) + untyped: 1.4.2 unwasm: 0.3.9 transitivePeerDependencies: - '@azure/app-configuration' @@ -12970,6 +13243,97 @@ snapshots: - '@capacitor/preferences' - '@libsql/client' - '@netlify/blobs' + - '@opentelemetry/api' + - '@planetscale/database' + - '@upstash/redis' + - '@vercel/kv' + - better-sqlite3 + - drizzle-orm + - encoding + - idb-keyval + - supports-color + - uWebSockets.js + + nitropack@2.9.6(@opentelemetry/api@1.9.0)(encoding@0.1.13)(magicast@0.3.4): + dependencies: + '@cloudflare/kv-asset-handler': 0.3.3 + '@netlify/functions': 2.7.0(@opentelemetry/api@1.9.0) + '@rollup/plugin-alias': 5.1.0(rollup@4.18.0) + '@rollup/plugin-commonjs': 25.0.7(rollup@4.18.0) + '@rollup/plugin-inject': 5.0.5(rollup@4.18.0) + '@rollup/plugin-json': 6.1.0(rollup@4.18.0) + '@rollup/plugin-node-resolve': 15.2.3(rollup@4.18.0) + '@rollup/plugin-replace': 5.0.7(rollup@4.18.0) + '@rollup/plugin-terser': 0.4.4(rollup@4.18.0) + '@rollup/pluginutils': 5.1.0(rollup@4.18.0) + '@types/http-proxy': 1.17.14 + '@vercel/nft': 0.26.5(encoding@0.1.13) + archiver: 7.0.1 + c12: 1.11.1(magicast@0.3.4) + chalk: 5.3.0 + chokidar: 3.6.0 + citty: 0.1.6 + consola: 3.2.3 + cookie-es: 1.1.0 + croner: 8.0.2 + crossws: 0.2.4 + db0: 0.1.4 + defu: 6.1.4 + destr: 2.0.3 + dot-prop: 8.0.2 + esbuild: 0.20.2 + escape-string-regexp: 5.0.0 + etag: 1.8.1 + fs-extra: 11.2.0 + globby: 14.0.1 + gzip-size: 7.0.0 + h3: h3-nightly@2.0.0-1718872656.6765a6e + hookable: 5.5.3 + httpxy: 0.1.5 + ioredis: 5.4.1 + is-primitive: 3.0.1 + jiti: 1.21.6 + klona: 2.0.6 + knitwork: 1.1.0 + listhen: 1.7.2 + magic-string: 0.30.10 + mime: 4.0.3 + mlly: 1.7.1 + mri: 1.2.0 + node-fetch-native: 1.6.4 + ofetch: 1.3.4(patch_hash=nxc3eojzwynarpj453xzxqr2f4) + ohash: 1.1.3 + openapi-typescript: 6.7.6 + pathe: 1.1.2 + perfect-debounce: 1.0.0 + pkg-types: 1.1.1 + pretty-bytes: 6.1.1 + radix3: 1.1.2 + rollup: 4.18.0 + rollup-plugin-visualizer: 5.12.0(rollup@4.18.0) + scule: 1.3.0 + semver: 7.6.2 + serve-placeholder: 2.0.2 + serve-static: 1.15.0 + std-env: 3.7.0 + ufo: 1.5.3 + uncrypto: 0.1.3 + unctx: 2.3.1 + unenv: 1.9.0 + unimport: 3.7.2(rollup@4.18.0) + unstorage: 1.10.2(ioredis@5.4.1) + unwasm: 0.3.9 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@libsql/client' + - '@netlify/blobs' + - '@opentelemetry/api' - '@planetscale/database' - '@upstash/redis' - '@vercel/kv' @@ -13165,7 +13529,7 @@ snapshots: has-symbols: 1.0.3 object-keys: 1.1.1 - ofetch@1.3.4: + ofetch@1.3.4(patch_hash=nxc3eojzwynarpj453xzxqr2f4): dependencies: destr: 2.0.3 node-fetch-native: 1.6.4 @@ -13209,13 +13573,13 @@ snapshots: is-inside-container: 1.0.0 is-wsl: 2.2.0 - openapi-typescript@6.7.5: + openapi-typescript@6.7.6: dependencies: ansi-colors: 4.1.3 fast-glob: 3.3.2 js-yaml: 4.1.0 supports-color: 9.4.0 - undici: 5.28.3 + undici: 5.28.4 yargs-parser: 21.1.1 opener@1.5.2: {} @@ -14081,7 +14445,7 @@ snapshots: dependencies: randombytes: 2.1.0 - serve-placeholder@2.0.1: + serve-placeholder@2.0.2: dependencies: defu: 6.1.4 @@ -14500,6 +14864,8 @@ snapshots: type-fest@3.13.1: {} + type-fest@4.20.1: {} + typescript@5.5.2: {} uc.micro@2.1.0: {} @@ -14559,7 +14925,7 @@ snapshots: undici-types@5.26.5: {} - undici@5.28.3: + undici@5.28.4: dependencies: '@fastify/busboy': 2.0.0 @@ -14734,7 +15100,7 @@ snapshots: webpack-sources: 3.2.3 webpack-virtual-modules: 0.6.2 - unstorage@1.10.2(ioredis@5.3.2): + unstorage@1.10.2(ioredis@5.4.1): dependencies: anymatch: 3.1.3 chokidar: 3.6.0 @@ -14744,10 +15110,10 @@ snapshots: lru-cache: 10.2.0 mri: 1.2.0 node-fetch-native: 1.6.4 - ofetch: 1.3.4 + ofetch: 1.3.4(patch_hash=nxc3eojzwynarpj453xzxqr2f4) ufo: 1.5.3 optionalDependencies: - ioredis: 5.3.2 + ioredis: 5.4.1 transitivePeerDependencies: - uWebSockets.js @@ -14927,9 +15293,9 @@ snapshots: sass: 1.69.4 terser: 5.27.0 - vitest-environment-nuxt@1.0.0(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.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)): + vitest-environment-nuxt@1.0.0(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.30)(vue@3.4.30(typescript@5.5.2)))(@vue/test-utils@2.4.6)(h3-nightly@2.0.0-1718872656.6765a6e)(happy-dom@14.12.3)(magicast@0.3.4)(nitropack@2.9.6(@opentelemetry/api@1.9.0)(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.45.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.9)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0))(vue-router@4.4.0(vue@3.4.30(typescript@5.5.2)))(vue@3.4.30(typescript@5.5.2)): dependencies: - '@nuxt/test-utils': 3.13.1(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.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/test-utils': 3.13.1(@testing-library/vue@8.1.0(@vue/compiler-sfc@3.4.30)(vue@3.4.30(typescript@5.5.2)))(@vue/test-utils@2.4.6)(h3-nightly@2.0.0-1718872656.6765a6e)(happy-dom@14.12.3)(magicast@0.3.4)(nitropack@2.9.6(@opentelemetry/api@1.9.0)(encoding@0.1.13)(magicast@0.3.4))(playwright-core@1.45.0)(vite@5.3.1(@types/node@20.14.9)(sass@1.69.4)(terser@5.27.0))(vitest@1.6.0(@types/node@20.14.9)(happy-dom@14.12.3)(sass@1.69.4)(terser@5.27.0))(vue-router@4.4.0(vue@3.4.30(typescript@5.5.2)))(vue@3.4.30(typescript@5.5.2)) transitivePeerDependencies: - '@cucumber/cucumber' - '@jest/globals' diff --git a/scripts/bump-edge.ts b/scripts/bump-edge.ts index 1e2b51a6fb..202f7779d2 100644 --- a/scripts/bump-edge.ts +++ b/scripts/bump-edge.ts @@ -4,8 +4,8 @@ import { consola } from 'consola' import { determineBumpType, loadWorkspace } from './_utils' const nightlyPackages = { - nitropack: 'nitropack-nightly', - h3: 'h3-nightly', + // nitro: 'nitro-nightly', + // h3: 'h3-nightly', nuxi: 'nuxi-nightly', } diff --git a/test/basic.test.ts b/test/basic.test.ts index 4b9aa4cf0b..35905159c4 100644 --- a/test/basic.test.ts +++ b/test/basic.test.ts @@ -4,13 +4,16 @@ import { describe, expect, it } from 'vitest' import { joinURL, withQuery } from 'ufo' import { isCI, isWindows } from 'std-env' import { join, normalize } from 'pathe' -import { $fetch, createPage, fetch, isDev, setup, startServer, url, useTestContext } from '@nuxt/test-utils/e2e' +import { $fetch as _$fetch, createPage, fetch, isDev, setup, startServer, url, useTestContext } from '@nuxt/test-utils/e2e' import { $fetchComponent } from '@nuxt/test-utils/experimental' import { expectNoClientErrors, expectWithPolling, gotoPath, isRenderingJson, parseData, parsePayload, renderPage } from './utils' import type { NuxtIslandResponse } from '#app' +// TODO: update @nuxt/test-utils +const $fetch = _$fetch as import('nitro/types').$Fetch + const isWebpack = process.env.TEST_BUILDER === 'webpack' const isTestingAppManifest = process.env.TEST_MANIFEST !== 'manifest-off' diff --git a/test/bundle.test.ts b/test/bundle.test.ts index 32bb10310c..1150207525 100644 --- a/test/bundle.test.ts +++ b/test/bundle.test.ts @@ -32,10 +32,10 @@ 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(`"210k"`) + expect.soft(roundToKilobytes(serverStats.totalBytes)).toMatchInlineSnapshot(`"209k"`) const modules = await analyzeSizes('node_modules/**/*', serverDir) - expect.soft(roundToKilobytes(modules.totalBytes)).toMatchInlineSnapshot(`"1341k"`) + expect.soft(roundToKilobytes(modules.totalBytes)).toMatchInlineSnapshot(`"1345k"`) const packages = modules.files .filter(m => m.endsWith('package.json')) @@ -55,6 +55,7 @@ describe.skipIf(process.env.SKIP_BUNDLE_SIZE === 'true' || process.env.ECOSYSTEM "@vue/runtime-dom", "@vue/server-renderer", "@vue/shared", + "db0", "devalue", "entities", "estree-walker", @@ -72,10 +73,10 @@ 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(`"532k"`) + expect.soft(roundToKilobytes(serverStats.totalBytes)).toMatchInlineSnapshot(`"531k"`) const modules = await analyzeSizes('node_modules/**/*', serverDir) - expect.soft(roundToKilobytes(modules.totalBytes)).toMatchInlineSnapshot(`"76.2k"`) + expect.soft(roundToKilobytes(modules.totalBytes)).toMatchInlineSnapshot(`"80.3k"`) const packages = modules.files .filter(m => m.endsWith('package.json')) @@ -86,6 +87,7 @@ describe.skipIf(process.env.SKIP_BUNDLE_SIZE === 'true' || process.env.ECOSYSTEM "@unhead/dom", "@unhead/shared", "@unhead/ssr", + "db0", "devalue", "hookable", "unhead", diff --git a/test/fixtures/basic/nuxt.config.ts b/test/fixtures/basic/nuxt.config.ts index 845b958c6d..bbdee24c87 100644 --- a/test/fixtures/basic/nuxt.config.ts +++ b/test/fixtures/basic/nuxt.config.ts @@ -5,7 +5,7 @@ import { createUnplugin } from 'unplugin' import { withoutLeadingSlash } from 'ufo' // (defined in nuxt/src/core/nitro.ts) -declare module 'nitropack' { +declare module 'nitro/types' { interface NitroRouteConfig { ssr?: boolean } @@ -242,6 +242,7 @@ export default defineNuxtConfig({ inlineStyles: id => !!id && !id.includes('assets.vue'), }, experimental: { + serverAppConfig: true, typedPages: true, clientFallback: true, restoreState: true, diff --git a/test/hmr.test.ts b/test/hmr.test.ts index c1e8963cf9..9669552178 100644 --- a/test/hmr.test.ts +++ b/test/hmr.test.ts @@ -3,10 +3,13 @@ import { fileURLToPath } from 'node:url' import { describe, expect, it } from 'vitest' import { isWindows } from 'std-env' import { join } from 'pathe' -import { $fetch, fetch, setup } from '@nuxt/test-utils/e2e' +import { $fetch as _$fetch, fetch, setup } from '@nuxt/test-utils/e2e' import { expectWithPolling, renderPage } from './utils' +// TODO: update @nuxt/test-utils +const $fetch = _$fetch as import('nitro/types').$Fetch + const isWebpack = process.env.TEST_BUILDER === 'webpack' // TODO: fix HMR on Windows diff --git a/tsconfig.json b/tsconfig.json index 46b20d2fbb..24e6147f72 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -31,15 +31,6 @@ ], "#app/*": [ "./packages/nuxt/src/app/*" - ], - "#internal/nitro": [ - "./node_modules/nitropack/dist/runtime" - ], - "#internal/nitro/app": [ - "./node_modules/nitropack/dist/runtime/app" - ], - "#internal/nitro/utils": [ - "./node_modules/nitropack/dist/runtime/utils" ] } },