diff --git a/packages/kit/src/nitro.ts b/packages/kit/src/nitro.ts index a4fe041d016..8e48265246b 100644 --- a/packages/kit/src/nitro.ts +++ b/packages/kit/src/nitro.ts @@ -1,12 +1,12 @@ -import type { Middleware } from 'h3' +import type { NodeMiddleware } from 'h3' import type { NitroEventHandler, NitroDevEventHandler, Nitro } from 'nitropack' import { useNuxt } from './context' export interface LegacyServerMiddleware { route?: string, path?: string, - handle?: Middleware | string - handler: Middleware | string + handle?: NodeMiddleware | string + handler: NodeMiddleware | string } /** diff --git a/packages/nuxi/package.json b/packages/nuxi/package.json index a723492b634..08c79414591 100644 --- a/packages/nuxi/package.json +++ b/packages/nuxi/package.json @@ -35,7 +35,7 @@ "execa": "^6.1.0", "flat": "^5.0.2", "giget": "^0.1.7", - "h3": "^0.7.21", + "h3": "^0.8.1", "jiti": "^1.16.0", "listhen": "^0.3.4", "mlly": "^0.5.16", diff --git a/packages/nuxi/src/commands/analyze.ts b/packages/nuxi/src/commands/analyze.ts index 6dab922740c..8b07ba1a595 100644 --- a/packages/nuxi/src/commands/analyze.ts +++ b/packages/nuxi/src/commands/analyze.ts @@ -1,6 +1,6 @@ import { promises as fsp } from 'node:fs' import { join, resolve } from 'pathe' -import { createApp, defineLazyHandler } from 'h3' +import { createApp, eventHandler, lazyEventHandler, toNodeListener } from 'h3' import { listen } from 'listhen' import { writeTypes } from '../utils/prepare' import { loadKit } from '../utils/kit' @@ -37,9 +37,9 @@ export default defineNuxtCommand({ const app = createApp() - const serveFile = (filePath: string) => defineLazyHandler(async () => { + const serveFile = (filePath: string) => lazyEventHandler(async () => { const contents = await fsp.readFile(filePath, 'utf-8') - return (_req, res) => { res.end(contents) } + return eventHandler((event) => { event.res.end(contents) }) }) console.warn('Do not deploy analyze results! Use `nuxi build` before deploying.') @@ -65,7 +65,7 @@ export default defineNuxtCommand({ `) - await listen(app) + await listen(toNodeListener(app)) return 'wait' as const } diff --git a/packages/nuxi/src/commands/dev.ts b/packages/nuxi/src/commands/dev.ts index 54ed2a3f21e..9f6311877bd 100644 --- a/packages/nuxi/src/commands/dev.ts +++ b/packages/nuxi/src/commands/dev.ts @@ -25,6 +25,7 @@ export default defineNuxtCommand({ overrideEnv('development') const { listen } = await import('listhen') + const { toNodeListener } = await import('h3') let currentHandler: RequestListener | undefined let loadingMessage = 'Nuxt is starting...' const loadingHandler: RequestListener = async (_req, res) => { @@ -100,7 +101,7 @@ export default defineNuxtCommand({ writeTypes(currentNuxt).catch(console.error), buildNuxt(currentNuxt) ]) - currentHandler = currentNuxt.server.app + currentHandler = toNodeListener(currentNuxt.server.app) if (isRestart && args.clear !== false) { showBanner() showURL() diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index be76893e8d8..c8ad120b109 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -52,13 +52,13 @@ "escape-string-regexp": "^5.0.0", "fs-extra": "^10.1.0", "globby": "^13.1.2", - "h3": "^0.7.21", + "h3": "^0.8.1", "hash-sum": "^2.0.0", "hookable": "^5.4.1", "knitwork": "^0.1.2", "magic-string": "^0.26.7", "mlly": "^0.5.16", - "nitropack": "^0.5.4", + "nitropack": "npm:nitropack-edge@0.5.5-27764245.b884d0c", "nuxi": "3.0.0-rc.11", "ohash": "^0.1.5", "ohmyfetch": "^0.4.19", diff --git a/packages/nuxt/src/app/composables/cookie.ts b/packages/nuxt/src/app/composables/cookie.ts index 59e22169308..9df2d82852e 100644 --- a/packages/nuxt/src/app/composables/cookie.ts +++ b/packages/nuxt/src/app/composables/cookie.ts @@ -1,7 +1,7 @@ import { ref, Ref, watch } from 'vue' import { parse, serialize, CookieParseOptions, CookieSerializeOptions } from 'cookie-es' import { appendHeader } from 'h3' -import type { CompatibilityEvent } from 'h3' +import type { H3Event } from 'h3' import destr from 'destr' import { isEqual } from 'ohash' import { useNuxtApp } from '../nuxt' @@ -70,7 +70,7 @@ function writeClientCookie (name: string, value: any, opts: CookieSerializeOptio } } -function writeServerCookie (event: CompatibilityEvent, name: string, value: any, opts: CookieSerializeOptions = {}) { +function writeServerCookie (event: H3Event, name: string, value: any, opts: CookieSerializeOptions = {}) { if (event) { // TODO: Try to smart join with existing Set-Cookie headers appendHeader(event, 'Set-Cookie', serializeCookie(name, value, opts)) diff --git a/packages/nuxt/src/app/composables/ssr.ts b/packages/nuxt/src/app/composables/ssr.ts index f2e127e3f14..9ae0fc919fc 100644 --- a/packages/nuxt/src/app/composables/ssr.ts +++ b/packages/nuxt/src/app/composables/ssr.ts @@ -1,5 +1,5 @@ /* eslint-disable no-redeclare */ -import type { CompatibilityEvent } from 'h3' +import type { H3Event } from 'h3' import { useNuxtApp, NuxtApp } from '../nuxt' export function useRequestHeaders (include: K[]): Record @@ -11,8 +11,8 @@ export function useRequestHeaders (include?: any[]) { return Object.fromEntries(include.filter(key => headers[key]).map(key => [key, headers[key]])) } -export function useRequestEvent (nuxtApp: NuxtApp = useNuxtApp()): CompatibilityEvent { - return nuxtApp.ssrContext?.event as CompatibilityEvent +export function useRequestEvent (nuxtApp: NuxtApp = useNuxtApp()): H3Event { + return nuxtApp.ssrContext?.event as H3Event } export function setResponseStatus (code: number, message?: string) { diff --git a/packages/nuxt/src/app/nuxt.ts b/packages/nuxt/src/app/nuxt.ts index da86fdd4706..1d0c419331f 100644 --- a/packages/nuxt/src/app/nuxt.ts +++ b/packages/nuxt/src/app/nuxt.ts @@ -5,7 +5,7 @@ import { createHooks, Hookable } from 'hookable' import type { RuntimeConfig, AppConfigInput } from '@nuxt/schema' import { getContext } from 'unctx' import type { SSRContext } from 'vue-bundle-renderer/runtime' -import type { CompatibilityEvent } from 'h3' +import type { H3Event } from 'h3' const nuxtAppCtx = getContext('nuxt-app') @@ -40,11 +40,7 @@ export interface RuntimeNuxtHooks { export interface NuxtSSRContext extends SSRContext { url: string - event: CompatibilityEvent - /** @deprecated Use `event` instead. */ - req?: CompatibilityEvent['req'] - /** @deprecated Use `event` instead. */ - res?: CompatibilityEvent['res'] + event: H3Event runtimeConfig: RuntimeConfig noSSR: boolean /** whether we are rendering an SSR error */ diff --git a/packages/nuxt/src/core/nitro.ts b/packages/nuxt/src/core/nitro.ts index 051b87dbfaf..464ea493b78 100644 --- a/packages/nuxt/src/core/nitro.ts +++ b/packages/nuxt/src/core/nitro.ts @@ -6,7 +6,7 @@ import type { Nuxt } from '@nuxt/schema' import { resolvePath } from '@nuxt/kit' import defu from 'defu' import fsExtra from 'fs-extra' -import { toEventHandler, dynamicEventHandler } from 'h3' +import { dynamicEventHandler } from 'h3' import { distDir } from '../dirs' import { ImportProtectionPlugin } from './plugins/import-protection' @@ -22,7 +22,6 @@ export async function initNitro (nuxt: Nuxt & { _nitro?: Nitro }) { workspaceDir: nuxt.options.workspaceDir, srcDir: nuxt.options.serverDir, dev: nuxt.options.dev, - preset: nuxt.options.dev ? 'nitro-dev' : undefined, buildDir: nuxt.options.buildDir, analyze: nuxt.options.build.analyze && { template: 'treemap', @@ -190,7 +189,7 @@ export async function initNitro (nuxt: Nuxt & { _nitro?: Nitro }) { nuxt.hook('build:compile', ({ compiler }) => { compiler.outputFileSystem = { ...fsExtra, join } as any }) - nuxt.hook('server:devMiddleware', (m) => { devMiddlewareHandler.set(toEventHandler(m)) }) + nuxt.hook('server:devHandler', (h) => { devMiddlewareHandler.set(h) }) nuxt.server = createDevServer(nitro) nuxt.hook('build:resources', () => { nuxt.server.reload() @@ -230,7 +229,10 @@ async function resolveHandlers (nuxt: Nuxt) { } declare module 'nitropack' { - interface NitroRouteOption { + interface NitroRouteConfig { + ssr?: boolean + } + interface NitroRouteOptions { ssr?: boolean } } diff --git a/packages/nuxt/src/core/runtime/nitro/renderer.ts b/packages/nuxt/src/core/runtime/nitro/renderer.ts index 125106d0330..505b08f64f0 100644 --- a/packages/nuxt/src/core/runtime/nitro/renderer.ts +++ b/packages/nuxt/src/core/runtime/nitro/renderer.ts @@ -3,10 +3,9 @@ import type { RenderResponse } from 'nitropack' import type { Manifest } from 'vite' import { appendHeader, getQuery } from 'h3' import devalue from '@nuxt/devalue' -import { createRouter as createMatcher } from 'radix3' import { joinURL } from 'ufo' import { renderToString as _renderToString } from 'vue/server-renderer' -import { useRuntimeConfig, useNitroApp, defineRenderHandler } from '#internal/nitro' +import { useRuntimeConfig, useNitroApp, defineRenderHandler, getRouteOptions } from '#internal/nitro' // eslint-disable-next-line import/no-restricted-paths import type { NuxtApp, NuxtSSRContext } from '#app' @@ -107,9 +106,6 @@ const getSPARenderer = lazyCachedFunction(async () => { } }) -// Set up route rule matcher -const routerOptions = createMatcher({ routes: useRuntimeConfig().nitro.routes }) - const PAYLOAD_CACHE = (process.env.NUXT_PAYLOAD_EXTRACTION && process.env.prerender) ? new Map() : null // TODO: Use LRU cache const PAYLOAD_URL_RE = /\/_payload(\.[a-zA-Z0-9]+)?.js(\?.*)?$/ @@ -132,15 +128,13 @@ export default defineRenderHandler(async (event) => { } } - // TODO: share across endpoints on event context - const routeOptions = event.context.routeOptions || routerOptions.lookup(url) || {} + // Get route options (currently to apply `ssr: false`) + const routeOptions = getRouteOptions(event) // Initialize ssr context const ssrContext: NuxtSSRContext = { url, event, - req: event.req, - res: event.res, runtimeConfig: useRuntimeConfig() as NuxtSSRContext['runtimeConfig'], noSSR: !!(process.env.NUXT_NO_SSR) || diff --git a/packages/schema/src/types/hooks.ts b/packages/schema/src/types/hooks.ts index b0df1adeb82..d620c724003 100644 --- a/packages/schema/src/types/hooks.ts +++ b/packages/schema/src/types/hooks.ts @@ -4,7 +4,7 @@ import type { Compiler, Configuration, Stats } from 'webpack' import type { TSConfig } from 'pkg-types' import type { InlineConfig as ViteInlineConfig, ViteDevServer } from 'vite' import type { Manifest } from 'vue-bundle-renderer' -import type { Middleware } from 'h3' +import type { EventHandler } from 'h3' import type { ModuleContainer } from './module' import type { NuxtTemplate, Nuxt, NuxtApp } from './nuxt' import type { Preset as ImportPreset, Import } from 'unimport' @@ -77,6 +77,7 @@ export interface NuxtHooks { 'builder:generateApp': () => HookResult 'pages:extend': (pages: NuxtPage[]) => HookResult 'build:manifest': (manifest: Manifest) => HookResult + 'server:devHandler': (handler: EventHandler) => HookResult // Auto imports 'imports:sources': (presets: ImportPresetWithDeprecation[]) => HookResult @@ -158,10 +159,10 @@ export interface NuxtHooks { 'webpack:config': (webpackConfigs: Configuration[]) => HookResult 'webpack:devMiddleware': (middleware: (req: IncomingMessage, res: ServerResponse, next: (err?: any) => any) => any) => HookResult 'webpack:hotMiddleware': (middleware: (req: IncomingMessage, res: ServerResponse, next: (err?: any) => any) => any) => HookResult + 'server:devMiddleware': (middleware: (req: IncomingMessage, res: ServerResponse, next: (err?: any) => any) => any) => HookResult 'build:compile': (options: { name: string, compiler: Compiler }) => HookResult 'build:compiled': (options: { name: string, compiler: Compiler, stats: Stats }) => HookResult 'build:resources': (mfs?: Compiler['outputFileSystem']) => HookResult - 'server:devMiddleware': (middleware: Middleware) => HookResult 'bundler:change': (shortPath: string) => void 'bundler:error': () => void 'bundler:done': () => void diff --git a/packages/vite/package.json b/packages/vite/package.json index bb939d1d8d7..1f87da1f2f3 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -33,7 +33,7 @@ "externality": "^0.2.2", "fs-extra": "^10.1.0", "get-port-please": "^2.6.1", - "h3": "^0.7.21", + "h3": "^0.8.1", "knitwork": "^0.1.2", "magic-string": "^0.26.7", "mlly": "^0.5.16", diff --git a/packages/vite/src/client.ts b/packages/vite/src/client.ts index 76e71183c94..e1b97bfd526 100644 --- a/packages/vite/src/client.ts +++ b/packages/vite/src/client.ts @@ -2,12 +2,13 @@ import { join, resolve } from 'pathe' import * as vite from 'vite' import vuePlugin from '@vitejs/plugin-vue' import viteJsxPlugin from '@vitejs/plugin-vue-jsx' -import type { Connect, ServerOptions } from 'vite' +import type { ServerOptions } from 'vite' import { logger } from '@nuxt/kit' import { getPort } from 'get-port-please' import { joinURL, withoutLeadingSlash } from 'ufo' import defu from 'defu' import type { OutputOptions } from 'rollup' +import { defineEventHandler } from 'h3' import { cacheDirPlugin } from './plugins/cache-dir' import { wpfs } from './utils/wpfs' import type { ViteBuildContext, ViteOptions } from './vite' @@ -109,18 +110,20 @@ export async function buildClient (ctx: ViteBuildContext) { const viteServer = await vite.createServer(clientConfig) ctx.clientServer = viteServer await ctx.nuxt.callHook('vite:serverCreated', viteServer, { isClient: true, isServer: false }) - const viteMiddleware: Connect.NextHandleFunction = (req, res, next) => { + const viteMiddleware = defineEventHandler(async (event) => { // Workaround: vite devmiddleware modifies req.url - const originalURL = req.url! + const originalURL = event.req.url! if (!originalURL.startsWith('/__nuxt_vite_node__') && !originalURL.startsWith(clientConfig.base!)) { - req.url = joinURL('/__url', originalURL) + event.req.url = joinURL('/__url', originalURL) } - viteServer.middlewares.handle(req, res, (err: unknown) => { - req.url = originalURL - next(err) + await new Promise((resolve, reject) => { + viteServer.middlewares.handle(event.req, event.res, (err: Error) => { + event.req.url = originalURL + return err ? reject(err) : resolve(null) + }) }) - } - await ctx.nuxt.callHook('server:devMiddleware', viteMiddleware) + }) + await ctx.nuxt.callHook('server:devHandler', viteMiddleware) ctx.nuxt.hook('close', async () => { await viteServer.close() diff --git a/packages/vite/src/vite-node.ts b/packages/vite/src/vite-node.ts index 0addd3f1985..40002937db8 100644 --- a/packages/vite/src/vite-node.ts +++ b/packages/vite/src/vite-node.ts @@ -1,5 +1,5 @@ import { pathToFileURL } from 'node:url' -import { createApp, createError, defineEventHandler, defineLazyEventHandler } from 'h3' +import { createApp, createError, defineEventHandler, defineLazyEventHandler, eventHandler, toNodeListener } from 'h3' import { ViteNodeServer } from 'vite-node/server' import fse from 'fs-extra' import { resolve } from 'pathe' @@ -21,7 +21,7 @@ export function viteNodePlugin (ctx: ViteBuildContext): VitePlugin { name: 'nuxt:vite-node-server', enforce: 'post', configureServer (server) { - server.middlewares.use('/__nuxt_vite_node__', createViteNodeMiddleware(ctx, invalidates)) + server.middlewares.use('/__nuxt_vite_node__', toNodeListener(createViteNodeApp(ctx, invalidates))) }, handleHotUpdate ({ file, server }) { function markInvalidate (mod: ModuleNode) { @@ -43,7 +43,7 @@ export function viteNodePlugin (ctx: ViteBuildContext): VitePlugin { export function registerViteNodeMiddleware (ctx: ViteBuildContext) { addDevServerHandler({ route: '/__nuxt_vite_node__/', - handler: createViteNodeMiddleware(ctx) + handler: createViteNodeApp(ctx).handler }) } @@ -69,7 +69,7 @@ function getManifest (ctx: ViteBuildContext) { return manifest } -function createViteNodeMiddleware (ctx: ViteBuildContext, invalidates: Set = new Set()) { +function createViteNodeApp (ctx: ViteBuildContext, invalidates: Set = new Set()) { const app = createApp() app.use('/manifest', defineEventHandler(() => { @@ -107,7 +107,7 @@ function createViteNodeMiddleware (ctx: ViteBuildContext, invalidates: Set { + return eventHandler(async (event) => { const moduleId = decodeURI(event.req.url!).substring(1) if (moduleId === '/') { throw createError({ statusCode: 400 }) @@ -122,7 +122,7 @@ function createViteNodeMiddleware (ctx: ViteBuildContext, invalidates: Set + }) // @ts-ignore nuxt.hook('close', () => pify(devMiddleware.close.bind(devMiddleware))()) const { client: _client, ...hotMiddlewareOptions } = nuxt.options.webpack.hotMiddleware || {} - const hotMiddleware = pify(webpackHotMiddleware(compiler, { + const hotMiddleware = webpackHotMiddleware(compiler, { log: false, heartbeat: 10000, path: joinURL(nuxt.options.app.baseURL, '__webpack_hmr', compiler.options.name!), ...hotMiddlewareOptions - })) as any as API + }) await nuxt.callHook('webpack:devMiddleware', devMiddleware) await nuxt.callHook('webpack:hotMiddleware', hotMiddleware) // Register devMiddleware on server - const handlers = [promisifyHandler(devMiddleware), promisifyHandler(hotMiddleware)] - await nuxt.callHook('server:devMiddleware', async (req, res, next) => { - for (const mw of handlers) { - await mw?.(req, res) - } - next() - }) + const devHandler = fromNodeMiddleware(devMiddleware as NodeMiddleware) + const hotHandler = fromNodeMiddleware(hotMiddleware as NodeMiddleware) + await nuxt.callHook('server:devHandler', defineEventHandler(async (event) => { + await devHandler(event) + await hotHandler(event) + })) return devMiddleware } diff --git a/playground/app.vue b/playground/app.vue index c93a9dcaf5f..17d631007a1 100644 --- a/playground/app.vue +++ b/playground/app.vue @@ -9,4 +9,5 @@ diff --git a/yarn.lock b/yarn.lock index 368bf1d8abb..4fdb37c7573 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1442,7 +1442,7 @@ __metadata: languageName: node linkType: hard -"@netlify/functions@npm:^1.2.0": +"@netlify/functions@npm:^1.3.0": version: 1.3.0 resolution: "@netlify/functions@npm:1.3.0" dependencies: @@ -1873,7 +1873,7 @@ __metadata: externality: ^0.2.2 fs-extra: ^10.1.0 get-port-please: ^2.6.1 - h3: ^0.7.21 + h3: ^0.8.1 knitwork: ^0.1.2 magic-string: ^0.26.7 mlly: ^0.5.16 @@ -2180,17 +2180,6 @@ __metadata: languageName: node linkType: hard -"@rollup/plugin-alias@npm:^3.1.9": - version: 3.1.9 - resolution: "@rollup/plugin-alias@npm:3.1.9" - dependencies: - slash: ^3.0.0 - peerDependencies: - rollup: ^1.20.0||^2.0.0 - checksum: cefae9dfb7c30f0dc78d24f4ad9ccb8a0878397b313c0fa9d0f519667394941c58a930d968d841e25aee43b0fb892d1e3f7edbb55e8197f191cce7da6a50b882 - languageName: node - linkType: hard - "@rollup/plugin-alias@npm:^4.0.0": version: 4.0.0 resolution: "@rollup/plugin-alias@npm:4.0.0" @@ -2205,23 +2194,6 @@ __metadata: languageName: node linkType: hard -"@rollup/plugin-commonjs@npm:^22.0.2": - version: 22.0.2 - resolution: "@rollup/plugin-commonjs@npm:22.0.2" - dependencies: - "@rollup/pluginutils": ^3.1.0 - commondir: ^1.0.1 - estree-walker: ^2.0.1 - glob: ^7.1.6 - is-reference: ^1.2.1 - magic-string: ^0.25.7 - resolve: ^1.17.0 - peerDependencies: - rollup: ^2.68.0 - checksum: 70098a4b91afe3f164f5d27cba65edf148c5ed146ee0e07a964b66940681553ac77391083114cdcf9427e7f2706bf0d61eab310b3a2caeab83b7452c0292fcae - languageName: node - linkType: hard - "@rollup/plugin-commonjs@npm:^23.0.0": version: 23.0.0 resolution: "@rollup/plugin-commonjs@npm:23.0.0" @@ -2241,27 +2213,19 @@ __metadata: languageName: node linkType: hard -"@rollup/plugin-inject@npm:^4.0.4": - version: 4.0.4 - resolution: "@rollup/plugin-inject@npm:4.0.4" - dependencies: - "@rollup/pluginutils": ^3.1.0 - estree-walker: ^2.0.1 - magic-string: ^0.25.7 - peerDependencies: - rollup: ^1.20.0 || ^2.0.0 - checksum: 22a1847372a96296a5b176af3d5b23ac7b48143a32c77ec4efed38daf4b0d1399a3cd144496d65731299984c5f98c9e00dc6a7f53d0fe87bd4aab2d4bd7b8289 - languageName: node - linkType: hard - -"@rollup/plugin-json@npm:^4.1.0": - version: 4.1.0 - resolution: "@rollup/plugin-json@npm:4.1.0" +"@rollup/plugin-inject@npm:^5.0.1": + version: 5.0.1 + resolution: "@rollup/plugin-inject@npm:5.0.1" dependencies: - "@rollup/pluginutils": ^3.0.8 + "@rollup/pluginutils": ^4.2.1 + estree-walker: ^2.0.2 + magic-string: ^0.26.4 peerDependencies: - rollup: ^1.20.0 || ^2.0.0 - checksum: 867bc9339b4ccf0b9ff3b2617a95b3b8920115163f86c8e3b1f068a14ca25949472d3c05b09a5ac38ca0fe2185756e34617eaeb219d4a2b6e2307c501c7d4552 + rollup: ^1.20.0||^2.0.0||^3.0.0 + peerDependenciesMeta: + rollup: + optional: true + checksum: 73c0338e68007c66aa38e071631f7874bbc287a103dc5f23175d4a90bd50f6268945c798a7e7a160bfc7e0381f097eb1688c30a4672616de275c3125ee822b6d languageName: node linkType: hard @@ -2279,22 +2243,6 @@ __metadata: languageName: node linkType: hard -"@rollup/plugin-node-resolve@npm:^14.1.0": - version: 14.1.0 - resolution: "@rollup/plugin-node-resolve@npm:14.1.0" - dependencies: - "@rollup/pluginutils": ^3.1.0 - "@types/resolve": 1.17.1 - deepmerge: ^4.2.2 - is-builtin-module: ^3.1.0 - is-module: ^1.0.0 - resolve: ^1.19.0 - peerDependencies: - rollup: ^2.78.0 - checksum: 7c5bed3e5a511ee47172acd91da1a828383f7ef72d54d27d8050598ef9038df0f86a8559db455611e138e07b99d787fd7445b11f81129970d07104644576d80a - languageName: node - linkType: hard - "@rollup/plugin-node-resolve@npm:^15.0.0": version: 15.0.0 resolution: "@rollup/plugin-node-resolve@npm:15.0.0" @@ -2314,18 +2262,6 @@ __metadata: languageName: node linkType: hard -"@rollup/plugin-replace@npm:^4.0.0": - version: 4.0.0 - resolution: "@rollup/plugin-replace@npm:4.0.0" - dependencies: - "@rollup/pluginutils": ^3.1.0 - magic-string: ^0.25.7 - peerDependencies: - rollup: ^1.20.0 || ^2.0.0 - checksum: b61701e612661a46da06ca88f390c3839b586708abc0329a476411b90aa8ac59fe94437ede4c3fe53fea268b3054ea9d7d4ee851d7bd0cb7a5f06906002067cb - languageName: node - linkType: hard - "@rollup/plugin-replace@npm:^5.0.0": version: 5.0.0 resolution: "@rollup/plugin-replace@npm:5.0.0" @@ -2341,25 +2277,15 @@ __metadata: languageName: node linkType: hard -"@rollup/plugin-wasm@npm:^5.2.0": - version: 5.2.0 - resolution: "@rollup/plugin-wasm@npm:5.2.0" - peerDependencies: - rollup: ^1.20.0 || ^2.0.0 - checksum: b2ea6fc84d90d0617b79bd9ea957a384019f9ff862fb3da86c4c533b0fa5aba4b8f78ab978e511283e9d68d16091ff6d07d9177ac5b16bea71a67794f859a01b - languageName: node - linkType: hard - -"@rollup/pluginutils@npm:^3.0.8, @rollup/pluginutils@npm:^3.1.0": - version: 3.1.0 - resolution: "@rollup/pluginutils@npm:3.1.0" - dependencies: - "@types/estree": 0.0.39 - estree-walker: ^1.0.1 - picomatch: ^2.2.2 +"@rollup/plugin-wasm@npm:^6.0.0": + version: 6.0.0 + resolution: "@rollup/plugin-wasm@npm:6.0.0" peerDependencies: - rollup: ^1.20.0||^2.0.0 - checksum: 8be16e27863c219edbb25a4e6ec2fe0e1e451d9e917b6a43cf2ae5bc025a6b8faaa40f82a6e53b66d0de37b58ff472c6c3d57a83037ae635041f8df959d6d9aa + rollup: ^1.20.0||^2.0.0||^3.0.0 + peerDependenciesMeta: + rollup: + optional: true + checksum: fb9f5215ee98ab1a5f71642dd236a4923c5de04b01a1ccab8940096df059f16152b37cec4a4f21d84158bc66452320fc588dd7ac2ede963d0d5e77932ce84dad languageName: node linkType: hard @@ -2496,13 +2422,6 @@ __metadata: languageName: node linkType: hard -"@types/estree@npm:0.0.39": - version: 0.0.39 - resolution: "@types/estree@npm:0.0.39" - checksum: 412fb5b9868f2c418126451821833414189b75cc6bf84361156feed733e3d92ec220b9d74a89e52722e03d5e241b2932732711b7497374a404fad49087adc248 - languageName: node - linkType: hard - "@types/estree@npm:^0.0.51": version: 0.0.51 resolution: "@types/estree@npm:0.0.51" @@ -2670,15 +2589,6 @@ __metadata: languageName: node linkType: hard -"@types/resolve@npm:1.17.1": - version: 1.17.1 - resolution: "@types/resolve@npm:1.17.1" - dependencies: - "@types/node": "*" - checksum: dc6a6df507656004e242dcb02c784479deca516d5f4b58a1707e708022b269ae147e1da0521f3e8ad0d63638869d87e0adc023f0bd5454aa6f72ac66c7525cf5 - languageName: node - linkType: hard - "@types/resolve@npm:1.20.2": version: 1.20.2 resolution: "@types/resolve@npm:1.20.2" @@ -2934,22 +2844,6 @@ __metadata: languageName: node linkType: hard -"@unjsio/rollup-plugin-dts@npm:^5.0.0-rc.1": - version: 5.0.0-rc.1 - resolution: "@unjsio/rollup-plugin-dts@npm:5.0.0-rc.1" - dependencies: - "@babel/code-frame": ^7.18.6 - magic-string: ^0.26.7 - peerDependencies: - rollup: ^3.0.0 - typescript: ^4.1 - dependenciesMeta: - "@babel/code-frame": - optional: true - checksum: d3de0c98f06f54a401f00668a153e4f102d677ca498c2d24f27f61aa04166b20a8d439394f56440d760c64ae891ee31459f6d048ec66605a0ba4796ac7aaa529 - languageName: node - linkType: hard - "@unocss/astro@npm:0.45.29": version: 0.45.29 resolution: "@unocss/astro@npm:0.45.29" @@ -6510,7 +6404,7 @@ __metadata: languageName: node linkType: hard -"esbuild@npm:^0.15.10, esbuild@npm:^0.15.11, esbuild@npm:^0.15.6, esbuild@npm:^0.15.8, esbuild@npm:^0.15.9": +"esbuild@npm:^0.15.11, esbuild@npm:^0.15.6, esbuild@npm:^0.15.9": version: 0.15.11 resolution: "esbuild@npm:0.15.11" dependencies: @@ -6998,13 +6892,6 @@ __metadata: languageName: node linkType: hard -"estree-walker@npm:^1.0.1": - version: 1.0.1 - resolution: "estree-walker@npm:1.0.1" - checksum: 7e70da539691f6db03a08e7ce94f394ce2eef4180e136d251af299d41f92fb2d28ebcd9a6e393e3728d7970aeb5358705ddf7209d52fbcb2dd4693f95dcf925f - languageName: node - linkType: hard - "estree-walker@npm:^3.0.1": version: 3.0.1 resolution: "estree-walker@npm:3.0.1" @@ -8024,7 +7911,7 @@ __metadata: languageName: node linkType: hard -"glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.1.6, glob@npm:^7.2.0": +"glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.2.0": version: 7.2.3 resolution: "glob@npm:7.2.3" dependencies: @@ -8140,7 +8027,7 @@ __metadata: languageName: node linkType: hard -"h3@npm:^0.7.12, h3@npm:^0.7.21": +"h3@npm:^0.7.12": version: 0.7.21 resolution: "h3@npm:0.7.21" dependencies: @@ -8152,6 +8039,18 @@ __metadata: languageName: node linkType: hard +"h3@npm:^0.8.0, h3@npm:^0.8.1": + version: 0.8.1 + resolution: "h3@npm:0.8.1" + dependencies: + cookie-es: ^0.5.0 + destr: ^1.1.1 + radix3: ^0.2.1 + ufo: ^0.8.5 + checksum: 2f4f4925dcee721ea7f8f7c3d06b64dbaecf9d61a82dc3e85c8c70ae6127b821bf0cf9d48a4b3c5a45ac29abe5a4b94e8feba8e2e16276f8dd2aee6255e255ad + languageName: node + linkType: hard + "handlebars@npm:^4.7.7": version: 4.7.7 resolution: "handlebars@npm:4.7.7" @@ -8272,7 +8171,7 @@ __metadata: languageName: node linkType: hard -"hookable@npm:^5.3.0, hookable@npm:^5.4.0, hookable@npm:^5.4.1": +"hookable@npm:^5.4.1": version: 5.4.1 resolution: "hookable@npm:5.4.1" checksum: 2a48150436bf70b4b756bcf15694809032c490c1747aba363a6de928a96712e808b0918de06c933e082cc2042c3f051b593d400df6af4773cd9ad1e85d677839 @@ -8884,7 +8783,7 @@ __metadata: languageName: node linkType: hard -"is-reference@npm:1.2.1, is-reference@npm:^1.2.1": +"is-reference@npm:1.2.1": version: 1.2.1 resolution: "is-reference@npm:1.2.1" dependencies: @@ -9446,7 +9345,7 @@ __metadata: languageName: node linkType: hard -"listhen@npm:^0.3.1, listhen@npm:^0.3.4": +"listhen@npm:^0.3.4": version: 0.3.4 resolution: "listhen@npm:0.3.4" dependencies: @@ -10381,72 +10280,72 @@ __metadata: languageName: node linkType: hard -"nitropack@npm:^0.5.4": - version: 0.5.4 - resolution: "nitropack@npm:0.5.4" +"nitropack@npm:nitropack-edge@0.5.5-27764245.b884d0c": + version: 0.5.5-27764245.b884d0c + resolution: "nitropack-edge@npm:0.5.5-27764245.b884d0c" dependencies: "@cloudflare/kv-asset-handler": ^0.2.0 - "@netlify/functions": ^1.2.0 - "@rollup/plugin-alias": ^3.1.9 - "@rollup/plugin-commonjs": ^22.0.2 - "@rollup/plugin-inject": ^4.0.4 - "@rollup/plugin-json": ^4.1.0 - "@rollup/plugin-node-resolve": ^14.1.0 - "@rollup/plugin-replace": ^4.0.0 - "@rollup/plugin-wasm": ^5.2.0 - "@rollup/pluginutils": ^4.2.1 + "@netlify/functions": ^1.3.0 + "@rollup/plugin-alias": ^4.0.0 + "@rollup/plugin-commonjs": ^23.0.0 + "@rollup/plugin-inject": ^5.0.1 + "@rollup/plugin-json": ^5.0.0 + "@rollup/plugin-node-resolve": ^15.0.0 + "@rollup/plugin-replace": ^5.0.0 + "@rollup/plugin-wasm": ^6.0.0 + "@rollup/pluginutils": ^5.0.1 "@vercel/nft": ^0.22.1 archiver: ^5.3.1 c12: ^0.2.13 - chalk: ^5.0.1 + chalk: ^5.1.2 chokidar: ^3.5.3 consola: ^2.15.3 cookie-es: ^0.5.0 defu: ^6.1.0 destr: ^1.1.1 dot-prop: ^7.2.0 - esbuild: ^0.15.8 + esbuild: ^0.15.11 escape-string-regexp: ^5.0.0 etag: ^1.8.1 fs-extra: ^10.1.0 globby: ^13.1.2 gzip-size: ^7.0.0 - h3: ^0.7.21 - hookable: ^5.3.0 + h3: ^0.8.0 + hookable: ^5.4.1 http-proxy: ^1.18.1 is-primitive: ^3.0.1 jiti: ^1.16.0 klona: ^2.0.5 knitwork: ^0.1.2 - listhen: ^0.3.1 + listhen: ^0.3.4 mime: ^3.0.0 mlly: ^0.5.16 mri: ^1.2.0 - node-fetch-native: ^0.1.5 + node-fetch-native: ^0.1.7 ohash: ^0.1.5 ohmyfetch: ^0.4.19 - pathe: ^0.3.8 + pathe: ^0.3.9 perfect-debounce: ^0.1.3 pkg-types: ^0.3.5 pretty-bytes: ^6.0.0 - radix3: ^0.1.2 - rollup: ^2.79.0 + radix3: ^0.2.0 + rollup: ^2.79.1 rollup-plugin-terser: ^7.0.2 - rollup-plugin-visualizer: ^5.8.1 + rollup-plugin-visualizer: ^5.8.2 scule: ^0.3.2 - semver: ^7.3.7 + semver: ^7.3.8 serve-placeholder: ^2.0.1 serve-static: ^1.15.0 source-map-support: ^0.5.21 - std-env: ^3.2.1 + std-env: ^3.3.0 ufo: ^0.8.5 unenv: ^0.6.2 - unimport: ^0.6.7 + unimport: ^0.6.8 unstorage: ^0.5.6 bin: nitro: dist/cli.mjs nitropack: dist/cli.mjs - checksum: f6e4d8bcfbb864cbc6084806c16f809d0ab0c07baee800525f8f50a7ce0a4e4444166c33d27a3551378433cc03d94f7a3ed45b1652dfafa65f3aff4955dbafd4 + checksum: 4e044a2afafd5d5c597c672c6ee872bb7411609fb3190d69ce688d05624684ce9adee68a49b125292cf96e37a1d8693b233d9f8d746a8705a027b0af76fb894e languageName: node linkType: hard @@ -10473,7 +10372,7 @@ __metadata: languageName: node linkType: hard -"node-fetch-native@npm:^0.1.4, node-fetch-native@npm:^0.1.5": +"node-fetch-native@npm:^0.1.4, node-fetch-native@npm:^0.1.5, node-fetch-native@npm:^0.1.7": version: 0.1.7 resolution: "node-fetch-native@npm:0.1.7" checksum: 0e342f2e26b1c4970fc0c88469661813ad3f755df8ecd42cfacfc781e5a1a5de363fe50b9e9227d98a43368660e791af7a5f7a6566329caaeb7ea21017410539 @@ -10829,7 +10728,7 @@ __metadata: flat: ^5.0.2 fsevents: ~2.3.2 giget: ^0.1.7 - h3: ^0.7.21 + h3: ^0.8.1 jiti: ^1.16.0 listhen: ^0.3.4 mlly: ^0.5.16 @@ -10919,13 +10818,13 @@ __metadata: escape-string-regexp: ^5.0.0 fs-extra: ^10.1.0 globby: ^13.1.2 - h3: ^0.7.21 + h3: ^0.8.1 hash-sum: ^2.0.0 hookable: ^5.4.1 knitwork: ^0.1.2 magic-string: ^0.26.7 mlly: ^0.5.16 - nitropack: ^0.5.4 + nitropack: "npm:nitropack-edge@0.5.5-27764245.b884d0c" nuxi: 3.0.0-rc.11 ohash: ^0.1.5 ohmyfetch: ^0.4.19 @@ -12195,6 +12094,13 @@ __metadata: languageName: node linkType: hard +"radix3@npm:^0.2.0, radix3@npm:^0.2.1": + version: 0.2.1 + resolution: "radix3@npm:0.2.1" + checksum: 4d7b7360000efb96bf542a7327aafe6f23a21b25add40f173ade2fb1a757be5f3dc4fd2caf6fab746b68d1b0f176d56fc9f529e8493307d69cc3cb4ca4fcb57e + languageName: node + linkType: hard + "randombytes@npm:^2.1.0": version: 2.1.0 resolution: "randombytes@npm:2.1.0" @@ -12494,7 +12400,7 @@ __metadata: languageName: node linkType: hard -"resolve@npm:^1.1.7, resolve@npm:^1.10.0, resolve@npm:^1.10.1, resolve@npm:^1.17.0, resolve@npm:^1.19.0, resolve@npm:^1.20.0, resolve@npm:^1.22.0, resolve@npm:^1.22.1": +"resolve@npm:^1.1.7, resolve@npm:^1.10.0, resolve@npm:^1.10.1, resolve@npm:^1.20.0, resolve@npm:^1.22.0, resolve@npm:^1.22.1": version: 1.22.1 resolution: "resolve@npm:1.22.1" dependencies: @@ -12507,7 +12413,7 @@ __metadata: languageName: node linkType: hard -"resolve@patch:resolve@^1.1.7#~builtin, resolve@patch:resolve@^1.10.0#~builtin, resolve@patch:resolve@^1.10.1#~builtin, resolve@patch:resolve@^1.17.0#~builtin, resolve@patch:resolve@^1.19.0#~builtin, resolve@patch:resolve@^1.20.0#~builtin, resolve@patch:resolve@^1.22.0#~builtin, resolve@patch:resolve@^1.22.1#~builtin": +"resolve@patch:resolve@^1.1.7#~builtin, resolve@patch:resolve@^1.10.0#~builtin, resolve@patch:resolve@^1.10.1#~builtin, resolve@patch:resolve@^1.20.0#~builtin, resolve@patch:resolve@^1.22.0#~builtin, resolve@patch:resolve@^1.22.1#~builtin": version: 1.22.1 resolution: "resolve@patch:resolve@npm%3A1.22.1#~builtin::version=1.22.1&hash=07638b" dependencies: @@ -12565,6 +12471,22 @@ __metadata: languageName: node linkType: hard +"rollup-plugin-dts@npm:^5.0.0": + version: 5.0.0 + resolution: "rollup-plugin-dts@npm:5.0.0" + dependencies: + "@babel/code-frame": ^7.18.6 + magic-string: ^0.26.7 + peerDependencies: + rollup: ^3.0.0 + typescript: ^4.1 + dependenciesMeta: + "@babel/code-frame": + optional: true + checksum: feb2d614528c255ee698120be0fd404b0a4fa312362a3d687d76551157464decc66be6dfecb624c42bc64a9e6298ed21e13e689dc9b144acab8294cd08a53455 + languageName: node + linkType: hard + "rollup-plugin-terser@npm:^7.0.2": version: 7.0.2 resolution: "rollup-plugin-terser@npm:7.0.2" @@ -12579,21 +12501,21 @@ __metadata: languageName: node linkType: hard -"rollup-plugin-visualizer@npm:^5.8.1, rollup-plugin-visualizer@npm:^5.8.2": - version: 5.8.2 - resolution: "rollup-plugin-visualizer@npm:5.8.2" +"rollup-plugin-visualizer@npm:^5.8.2": + version: 5.8.3 + resolution: "rollup-plugin-visualizer@npm:5.8.3" dependencies: open: ^8.4.0 source-map: ^0.7.4 yargs: ^17.5.1 peerDependencies: - rollup: ^2.0.0 + rollup: 2.x || 3.x peerDependenciesMeta: rollup: optional: true bin: rollup-plugin-visualizer: dist/bin/cli.js - checksum: e4d5507e1991adbd3d454ef3855a57815587b37718b1b48aef8fb281f81011dd03b7a43a3811802a7115a78b60e7b674453c742e33d9df6457e7be5abb6895d7 + checksum: 0ed4b4b49be8c38fa4820190286daf6f94446a05190a6f1932f2718cb8d7e2a1afacc9f94bf75934087ec856a634a5c9355c078d77482a5796465d15deb988c9 languageName: node linkType: hard @@ -12606,7 +12528,7 @@ __metadata: languageName: node linkType: hard -"rollup@npm:^2.79.0, rollup@npm:^2.79.1": +"rollup@npm:^2.79.1": version: 2.79.1 resolution: "rollup@npm:2.79.1" dependencies: @@ -12620,7 +12542,7 @@ __metadata: languageName: node linkType: hard -"rollup@npm:^3.1.0": +"rollup@npm:^3.2.0": version: 3.2.0 resolution: "rollup@npm:3.2.0" dependencies: @@ -13188,7 +13110,7 @@ __metadata: languageName: node linkType: hard -"std-env@npm:^3.0.1, std-env@npm:^3.2.1": +"std-env@npm:^3.0.1, std-env@npm:^3.2.1, std-env@npm:^3.3.0": version: 3.3.0 resolution: "std-env@npm:3.3.0" checksum: 093f26c9e079ee5b1f99b08816f7cf5d72abccf75731901a2645a4b6e0cc1f039f9c44f0399f2acb80043d29a1977885738309e332a2746ee2178c2a57b9bd3a @@ -13935,8 +13857,8 @@ __metadata: linkType: hard "unbuild@npm:^0.9.2": - version: 0.9.2 - resolution: "unbuild@npm:0.9.2" + version: 0.9.4 + resolution: "unbuild@npm:0.9.4" dependencies: "@rollup/plugin-alias": ^4.0.0 "@rollup/plugin-commonjs": ^23.0.0 @@ -13944,13 +13866,12 @@ __metadata: "@rollup/plugin-node-resolve": ^15.0.0 "@rollup/plugin-replace": ^5.0.0 "@rollup/pluginutils": ^5.0.1 - "@unjsio/rollup-plugin-dts": ^5.0.0-rc.1 chalk: ^5.1.2 consola: ^2.15.3 defu: ^6.1.0 - esbuild: ^0.15.10 + esbuild: ^0.15.11 globby: ^13.1.2 - hookable: ^5.4.0 + hookable: ^5.4.1 jiti: ^1.16.0 magic-string: ^0.26.7 mkdirp: ^1.0.4 @@ -13961,13 +13882,14 @@ __metadata: pkg-types: ^0.3.5 pretty-bytes: ^6.0.0 rimraf: ^3.0.2 - rollup: ^3.1.0 + rollup: ^3.2.0 + rollup-plugin-dts: ^5.0.0 scule: ^0.3.2 typescript: ^4.8.4 untyped: ^0.5.0 bin: unbuild: dist/cli.mjs - checksum: 305752176903a0b70d66ef66500f9d3a77cf9abbad1ba3773bec3c916620e9ed74c9e0794a20c9a8240abbeeca4610e330953b33c5a76ad853ba4af5c0f10072 + checksum: 6e80e87547b28325e5136a9f84cc4b4f67855f09cdf9b67308f6e104896ae110cce1758c74eeecdc7dbd3963b5f35b89e96ce6a795d4bdeed684c9477225e927 languageName: node linkType: hard @@ -14015,7 +13937,7 @@ __metadata: languageName: node linkType: hard -"unimport@npm:^0.6.7, unimport@npm:^0.6.8": +"unimport@npm:^0.6.8": version: 0.6.8 resolution: "unimport@npm:0.6.8" dependencies: