@nuxt/nitro-server-nightly 5.0.0-29705271.19701cef → 5.0.0-29706259.91cb2fe2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -19,7 +19,7 @@ import { resolveModulePath } from "exsolve";
19
19
  import { runtimeDependencies } from "nitro/meta";
20
20
  import { resolveModuleExportNames } from "mlly";
21
21
  //#region package.json
22
- var version = "5.0.0-29705271.19701cef";
22
+ var version = "5.0.0-29706259.91cb2fe2";
23
23
  //#endregion
24
24
  //#region src/utils.ts
25
25
  function toArray(value) {
@@ -296,17 +296,12 @@ async function bundle(nuxt) {
296
296
  });
297
297
  if (nuxt.options.experimental.componentIslands) {
298
298
  const islandHandlerPath = JSON.stringify(resolve(distDir, "runtime/handlers/island"));
299
- const h3Path = JSON.stringify(resolve(distDir, "h3"));
300
299
  const ISLAND_RENDERER_KEY = "#internal/nuxt/island-renderer.mjs";
301
300
  nuxt.options.nitro.virtual ||= {};
302
301
  nuxt.options.nitro.virtual[ISLAND_RENDERER_KEY] = () => {
303
302
  if (nuxt.options.dev || nuxt.options.experimental.componentIslands !== "auto" || nuxt.apps.default?.pages?.some((p) => p.mode === "server") || nuxt.apps.default?.components?.some((c) => c.mode === "server" && !nuxt.apps.default?.components.some((other) => other.pascalName === c.pascalName && other.mode === "client"))) return `export { default } from ${islandHandlerPath}`;
304
- return `import { defineEventHandler } from ${h3Path}; export default defineEventHandler(() => {});`;
303
+ return `export default { fetch: () => undefined }`;
305
304
  };
306
- nuxt.options.serverHandlers.push({
307
- route: "/__nuxt_island/**",
308
- handler: ISLAND_RENDERER_KEY
309
- });
310
305
  if (!nuxt.options.ssr && nuxt.options.experimental.componentIslands !== "auto") {
311
306
  nuxt.options.ssr = true;
312
307
  nuxt.options.nitro.routeRules ||= {};
@@ -1,13 +1,14 @@
1
1
  import { computeIslandHash } from "../nuxt/src/app/island-hash.mjs";
2
2
  import { traceAsync } from "../nuxt/src/app/internal/tracing.mjs";
3
- import { createSSRContext } from "../utils/renderer/app.mjs";
3
+ import { createSSRContext, rethrowWithResponseHeaders, returnRenderResponse } from "../utils/renderer/app.mjs";
4
4
  import { getSSRRenderer } from "../utils/renderer/build-files.mjs";
5
5
  import { renderInlineStyles } from "../utils/renderer/inline-styles.mjs";
6
6
  import { getClientIslandResponse, getServerComponentHTML, getSlotIslandResponse } from "../utils/renderer/islands.mjs";
7
7
  import { getQuery } from "ufo";
8
+ import { FastResponse } from "srvx";
8
9
  import { useNitroHooks } from "nitro/app";
9
10
  import { destr } from "destr";
10
- import { HTTPError, defineEventHandler, getQuery as getQuery$1, readBody } from "nitro/h3";
11
+ import { H3Event, HTTPError, getQuery as getQuery$1, readBody } from "nitro/h3";
11
12
  import { VueResolver, walkResolver } from "@unhead/vue/utils";
12
13
  import { getRequestDependencies } from "vue-bundle-renderer/runtime";
13
14
  import { tracingChannelNuxt } from "#internal/nuxt.config.mjs";
@@ -16,87 +17,78 @@ import { useStorage } from "nitro/storage";
16
17
  const islandCache = import.meta.prerender ? useStorage("internal:nuxt:prerender:island") : null;
17
18
  const islandPropCache = import.meta.prerender ? useStorage("internal:nuxt:prerender:island-props") : null;
18
19
  const ISLAND_SUFFIX_RE = /\.json(?:\?.*)?$/;
19
- const handler = defineEventHandler(async (event) => {
20
- event.res.headers.set("content-type", "application/json;charset=utf-8");
21
- event.res.headers.set("x-powered-by", "Nuxt");
22
- const islandPath = event.url.pathname;
23
- if (import.meta.prerender && await islandCache.hasItem(islandPath)) return await islandCache.getItem(islandPath) || void 0;
24
- const islandContext = await getIslandContext(event);
25
- const ssrContext = {
26
- ...createSSRContext(event),
27
- islandContext,
28
- noSSR: false,
29
- url: islandContext.url
30
- };
31
- const renderer = await getSSRRenderer();
32
- const renderResult = await (tracingChannelNuxt ? traceAsync("nuxt.island", {
33
- event,
34
- ssrContext,
35
- islandContext
36
- }, () => renderer.renderToString(ssrContext)) : renderer.renderToString(ssrContext)).catch(async (err) => {
37
- if (ssrContext["~renderResponse"] && err?.message === "skipping render") return {};
38
- await ssrContext.nuxt?.hooks.callHook("app:error", err);
39
- throw err;
40
- });
41
- await ssrContext.nuxt?.hooks.callHook("app:rendered", {
42
- ssrContext,
43
- renderResult
44
- });
45
- if (ssrContext["~renderResponse"]) {
46
- const response = ssrContext["~renderResponse"];
47
- if (response.status && response.status >= 400) throw new HTTPError({
48
- status: response.status,
49
- statusText: response.statusText
20
+ var island_default = { async fetch(request) {
21
+ const event = new H3Event(request);
22
+ try {
23
+ event.res.headers.set("content-type", "application/json;charset=utf-8");
24
+ event.res.headers.set("x-powered-by", "Nuxt");
25
+ const islandPath = event.url.pathname;
26
+ if (import.meta.prerender && await islandCache.hasItem(islandPath)) return new FastResponse(JSON.stringify(await islandCache.getItem(islandPath)), event.res);
27
+ const islandContext = await getIslandContext(event);
28
+ const ssrContext = {
29
+ ...createSSRContext(event),
30
+ islandContext,
31
+ noSSR: false,
32
+ url: islandContext.url
33
+ };
34
+ const renderer = await getSSRRenderer();
35
+ const renderResult = await (tracingChannelNuxt ? traceAsync("nuxt.island", {
36
+ event,
37
+ ssrContext,
38
+ islandContext
39
+ }, () => renderer.renderToString(ssrContext)) : renderer.renderToString(ssrContext)).catch(async (err) => {
40
+ if (ssrContext["~renderResponse"] && err?.message === "skipping render") return {};
41
+ await ssrContext.nuxt?.hooks.callHook("app:error", err);
42
+ throw err;
50
43
  });
51
- return returnIslandResponse(event, response);
52
- }
53
- if (ssrContext.payload?.error) throw ssrContext.payload.error;
54
- const inlinedStyles = await renderInlineStyles(ssrContext.modules ?? []);
55
- if (inlinedStyles.length) ssrContext.head.push({ style: inlinedStyles });
56
- if (import.meta.dev) {
57
- const { styles } = getRequestDependencies(ssrContext, renderer.rendererContext);
58
- const link = [];
59
- for (const resource of Object.values(styles)) {
60
- if ("inline" in getQuery(resource.file)) continue;
61
- if (resource.file.includes("scoped") && !resource.file.includes("pages/")) link.push({
62
- rel: "stylesheet",
63
- href: renderer.rendererContext.buildAssetsURL(resource.file),
64
- crossorigin: ""
65
- });
44
+ await ssrContext.nuxt?.hooks.callHook("app:rendered", {
45
+ ssrContext,
46
+ renderResult
47
+ });
48
+ if (ssrContext["~renderResponse"]) return returnRenderResponse(event, ssrContext["~renderResponse"]);
49
+ if (ssrContext.payload?.error) throw ssrContext.payload.error;
50
+ const inlinedStyles = await renderInlineStyles(ssrContext.modules ?? []);
51
+ if (inlinedStyles.length) ssrContext.head.push({ style: inlinedStyles });
52
+ if (import.meta.dev) {
53
+ const { styles } = getRequestDependencies(ssrContext, renderer.rendererContext);
54
+ const link = [];
55
+ for (const resource of Object.values(styles)) {
56
+ if ("inline" in getQuery(resource.file)) continue;
57
+ if (resource.file.includes("scoped") && !resource.file.includes("pages/")) link.push({
58
+ rel: "stylesheet",
59
+ href: renderer.rendererContext.buildAssetsURL(resource.file),
60
+ crossorigin: ""
61
+ });
62
+ }
63
+ if (link.length) ssrContext.head.push({ link });
66
64
  }
67
- if (link.length) ssrContext.head.push({ link });
68
- }
69
- const islandHead = {};
70
- for (const entry of ssrContext.head.entries.values()) for (const [key, value] of Object.entries(walkResolver(entry.input, VueResolver))) {
71
- const currentValue = islandHead[key];
72
- if (Array.isArray(currentValue)) currentValue.push(...value);
73
- else islandHead[key] = value;
74
- }
75
- const islandResponse = {
76
- id: islandContext.id,
77
- head: islandHead,
78
- html: getServerComponentHTML(renderResult.html),
79
- components: getClientIslandResponse(ssrContext),
80
- slots: getSlotIslandResponse(ssrContext)
81
- };
82
- await useNitroHooks().callHook("render:island", islandResponse, {
83
- event,
84
- islandContext
85
- });
86
- const islandResponseString = JSON.stringify(islandResponse);
87
- if (import.meta.prerender) {
88
- const requestUrl = islandPath + event.url.search + event.url.hash;
89
- await islandCache.setItem(islandPath, islandResponseString);
90
- await islandPropCache.setItem(islandPath, requestUrl);
65
+ const islandHead = {};
66
+ for (const entry of ssrContext.head.entries.values()) for (const [key, value] of Object.entries(walkResolver(entry.input, VueResolver))) {
67
+ const currentValue = islandHead[key];
68
+ if (Array.isArray(currentValue)) currentValue.push(...value);
69
+ else islandHead[key] = value;
70
+ }
71
+ const islandResponse = {
72
+ id: islandContext.id,
73
+ head: islandHead,
74
+ html: getServerComponentHTML(renderResult.html),
75
+ components: getClientIslandResponse(ssrContext),
76
+ slots: getSlotIslandResponse(ssrContext)
77
+ };
78
+ await useNitroHooks().callHook("render:island", islandResponse, {
79
+ event,
80
+ islandContext
81
+ });
82
+ if (import.meta.prerender) {
83
+ const requestUrl = islandPath + event.url.search + event.url.hash;
84
+ await islandCache.setItem(islandPath, islandResponse);
85
+ await islandPropCache.setItem(islandPath, requestUrl);
86
+ }
87
+ return new FastResponse(JSON.stringify(islandResponse), event.res);
88
+ } catch (error) {
89
+ rethrowWithResponseHeaders(event, error);
91
90
  }
92
- return islandResponseString;
93
- });
94
- function returnIslandResponse(event, response) {
95
- for (const header in response.headers || {}) event.res.headers.set(header, response.headers[header]);
96
- if (response.status) event.res.status = response.status;
97
- if (response.statusText) event.res.statusText = response.statusText;
98
- return response.body;
99
- }
91
+ } };
100
92
  const ISLAND_PATH_PREFIX = "/__nuxt_island/";
101
93
  const VALID_COMPONENT_NAME_RE = /^[a-z][\w.-]*$/i;
102
94
  async function getIslandContext(event) {
@@ -136,4 +128,4 @@ async function getIslandContext(event) {
136
128
  };
137
129
  }
138
130
  //#endregion
139
- export { handler as default, islandCache, islandPropCache };
131
+ export { island_default as default, islandCache, islandPropCache };
@@ -1,15 +1,16 @@
1
1
  import { traceAsync } from "../nuxt/src/app/internal/tracing.mjs";
2
2
  import { payloadCache, prerenderRenderingURLs } from "../utils/cache.mjs";
3
- import { createSSRContext, setSSRError } from "../utils/renderer/app.mjs";
3
+ import { createSSRContext, rethrowWithResponseHeaders, returnRenderResponse, setSSRError } from "../utils/renderer/app.mjs";
4
4
  import { buildAssetsURL, publicAssetsURL } from "../utils/paths.mjs";
5
5
  import { APP_ROOT_CLOSE_TAG, APP_ROOT_OPEN_TAG, getRenderer, getServerApp } from "../utils/renderer/build-files.mjs";
6
6
  import { renderInlineStyles } from "../utils/renderer/inline-styles.mjs";
7
7
  import { renderStreamedIslandTeleports, replaceIslandTeleports } from "../utils/renderer/islands.mjs";
8
8
  import { renderPayloadJsonScript, renderPayloadResponse, splitPayload } from "../utils/renderer/payload.mjs";
9
9
  import { getQuery, joinURL } from "ufo";
10
+ import { FastResponse } from "srvx";
10
11
  import { getRouteRules, useNitroHooks } from "nitro/app";
11
12
  import destr$1 from "destr";
12
- import { HTTPError, defineEventHandler, getQuery as getQuery$1, writeEarlyHints } from "nitro/h3";
13
+ import { H3Event, HTTPError, getQuery as getQuery$1, writeEarlyHints } from "nitro/h3";
13
14
  import { getPrefetchLinks, getPreloadLinks, getRequestDependencies, renderResourceHeaders } from "vue-bundle-renderer/runtime";
14
15
  import { appHead, appTeleportAttrs, appTeleportTag, componentIslands, componentIslandsActive, tracingChannelNuxt } from "#internal/nuxt.config.mjs";
15
16
  import { propsToString, renderSSRHead } from "@unhead/vue/server";
@@ -34,7 +35,9 @@ const PAYLOAD_URL_RE = /^[^?]*\/_payload.json(?:\?.*)?$/;
34
35
  const PAYLOAD_FILENAME = "_payload.json";
35
36
  let entryPath;
36
37
  const SSR_BOT_RE = NUXT_SSR_STREAMING_BOT_RE;
37
- const handler = defineEventHandler((event) => {
38
+ var renderer_default = { fetch(request) {
39
+ const event = new H3Event(request);
40
+ if (componentIslands && event.url.pathname.startsWith("/__nuxt_island/")) return import("#internal/nuxt/island-renderer.mjs").then((r) => r.default.fetch(request));
38
41
  const ssrError = event.url.pathname.startsWith("/__nuxt_error") ? getQuery$1(event) : void 0;
39
42
  if (ssrError && !event.context.nuxt?.["~rendering-error"]) throw new HTTPError({
40
43
  status: 404,
@@ -47,10 +50,10 @@ const handler = defineEventHandler((event) => {
47
50
  status: 508,
48
51
  statusText: `Loop detected while prerendering "${renderingURL}" (${[...stack, renderingURL].filter((url) => !url.startsWith("/__nuxt_error")).map((url) => `"${url}"`).join(" -> ")}). Check for \`useFetch\`/\`$fetch\` calls targeting a URL that is currently being rendered.`
49
52
  });
50
- return prerenderRenderingURLs.run([...stack || [], renderingURL], () => renderRoute(event, ssrError));
53
+ return prerenderRenderingURLs.run([...stack || [], renderingURL], () => renderRoute(event, ssrError)).catch((error) => rethrowWithResponseHeaders(event, error));
51
54
  }
52
- return renderRoute(event, ssrError);
53
- });
55
+ return renderRoute(event, ssrError).catch((error) => rethrowWithResponseHeaders(event, error));
56
+ } };
54
57
  async function renderRoute(event, ssrError) {
55
58
  const ssrContext = createSSRContext(event);
56
59
  ssrContext.head.push(appHead);
@@ -71,7 +74,8 @@ async function renderRoute(event, ssrError) {
71
74
  ssrContext.url = url;
72
75
  if (import.meta.prerender && await payloadCache.hasItem(url + ".json")) {
73
76
  event.res.headers.set("content-type", "application/json");
74
- return returnResponse(event, await payloadCache.getItem(url + ".json") || void 0);
77
+ const response = await payloadCache.getItem(url + ".json") || void 0;
78
+ return new FastResponse(response?.body, response);
75
79
  }
76
80
  }
77
81
  const payloadURL = _PAYLOAD_EXTRACTION ? joinURL(ssrContext.runtimeConfig.app.cdnURL || ssrContext.runtimeConfig.app.baseURL, ssrContext.url.replace(/\?.*$/, ""), PAYLOAD_FILENAME) + "?" + ssrContext.runtimeConfig.app.buildId : void 0;
@@ -123,12 +127,12 @@ async function renderRoute(event, ssrError) {
123
127
  renderResult: _rendered
124
128
  });
125
129
  if (appRenderedResult instanceof Promise) await appRenderedResult;
126
- if (ssrContext["~renderResponse"]) return returnResponse(event, ssrContext["~renderResponse"]);
130
+ if (ssrContext["~renderResponse"]) return returnRenderResponse(event, ssrContext["~renderResponse"]);
127
131
  if (ssrContext.payload?.error && !ssrError) throw ssrContext.payload.error;
128
132
  if (isRenderingPayload) {
129
133
  const response = renderPayloadResponse(ssrContext);
130
134
  if (import.meta.prerender) await payloadCache.setItem(ssrContext.url + ".json", response);
131
- return returnResponse(event, response);
135
+ return new FastResponse(response.body, response);
132
136
  }
133
137
  if (_PAYLOAD_EXTRACTION && import.meta.prerender) {
134
138
  event.res.headers.append("x-nitro-prerender", joinURL(ssrContext.url.replace(/\?.*$/, ""), PAYLOAD_FILENAME));
@@ -206,7 +210,7 @@ async function renderRoute(event, ssrError) {
206
210
  if (renderHtmlResult instanceof Promise) await renderHtmlResult;
207
211
  event.res.headers.set("content-type", "text/html;charset=utf-8");
208
212
  event.res.headers.set("x-powered-by", "Nuxt");
209
- return renderHTMLDocument(htmlContext);
213
+ return new FastResponse(renderHTMLDocument(htmlContext), event.res);
210
214
  }
211
215
  async function renderStreamedResponse(ctx) {
212
216
  const { event, ssrContext, renderer, routeOptions, ssrError, _PAYLOAD_EXTRACTION, _PAYLOAD_INLINE, payloadURL } = ctx;
@@ -272,7 +276,7 @@ async function renderStreamedResponse(ctx) {
272
276
  } catch (error) {
273
277
  if (ssrContext["~renderResponse"] && error?.message === "skipping render") {
274
278
  event.res.headers.delete("link");
275
- return returnResponse(event, ssrContext["~renderResponse"]);
279
+ return returnRenderResponse(event, ssrContext["~renderResponse"]);
276
280
  }
277
281
  const r = ssrContext.nuxt?.hooks.callHook("app:error", error);
278
282
  if (r instanceof Promise) await r;
@@ -280,7 +284,7 @@ async function renderStreamedResponse(ctx) {
280
284
  }
281
285
  if (ssrContext["~renderResponse"]) {
282
286
  event.res.headers.delete("link");
283
- return returnResponse(event, ssrContext["~renderResponse"]);
287
+ return returnRenderResponse(event, ssrContext["~renderResponse"]);
284
288
  }
285
289
  const { headTags, bodyTags, bodyTagsOpen, htmlAttrs, bodyAttrs } = renderShell(ssrContext.head);
286
290
  const cspNonce = headTags.match(/<script[^>]+\bnonce="([^"]*)"/)?.[1];
@@ -324,7 +328,7 @@ async function renderStreamedResponse(ctx) {
324
328
  reader.releaseLock();
325
329
  event.res.headers.delete("link");
326
330
  const response = ssrContext["~renderResponse"];
327
- if (response) return returnResponse(event, response);
331
+ if (response) return returnRenderResponse(event, response);
328
332
  const _err = !ssrError && ssrContext.payload?.error || error;
329
333
  const r = ssrContext.nuxt?.hooks.callHook("app:error", _err);
330
334
  if (r instanceof Promise) await r;
@@ -334,7 +338,7 @@ async function renderStreamedResponse(ctx) {
334
338
  if (response) {
335
339
  reader.cancel().catch(() => {});
336
340
  event.res.headers.delete("link");
337
- return returnResponse(event, response);
341
+ return returnRenderResponse(event, response);
338
342
  }
339
343
  if (ssrContext.payload?.error && !ssrError) {
340
344
  reader.cancel().catch(() => {});
@@ -468,7 +472,7 @@ async function renderStreamedResponse(ctx) {
468
472
  });
469
473
  event.res.headers.set("content-type", "text/html;charset=utf-8");
470
474
  event.res.headers.set("x-powered-by", "Nuxt");
471
- return outputStream;
475
+ return new FastResponse(outputStream, event.res);
472
476
  }
473
477
  function normalizeChunks(chunks) {
474
478
  const result = [];
@@ -503,12 +507,5 @@ function stripInlineOnlyPayloadFields(payload) {
503
507
  const { prefetchLinks: _, ...rest } = payload;
504
508
  return rest;
505
509
  }
506
- function returnResponse(event, response) {
507
- if (!response) return;
508
- for (const header in response.headers || {}) event.res.headers.set(header, response.headers[header]);
509
- if (response.status) event.res.status = response.status;
510
- if (response.statusText) event.res.statusText = response.statusText;
511
- return response.body;
512
- }
513
510
  //#endregion
514
- export { handler as default };
511
+ export { renderer_default as default };
@@ -1,4 +1,5 @@
1
1
  import { sharedPrerenderCache } from "../cache.mjs";
2
+ import { FastResponse } from "srvx";
2
3
  import { useRuntimeConfig } from "nitro/runtime-config";
3
4
  import { createHead } from "@unhead/vue/server";
4
5
  import { NUXT_NO_SSR, NUXT_SHARED_DATA } from "#internal/nuxt/nitro-config.mjs";
@@ -35,5 +36,25 @@ function setSSRError(ssrContext, error) {
35
36
  const url = new URL(error.url);
36
37
  ssrContext.url = url.pathname + url.search + url.hash;
37
38
  }
39
+ function mergeHeaders(base, overlay) {
40
+ for (const [name, value] of overlay) {
41
+ if (name === "set-cookie") continue;
42
+ base.set(name, value);
43
+ }
44
+ for (const cookie of overlay.getSetCookie()) base.append("set-cookie", cookie);
45
+ return base;
46
+ }
47
+ function returnRenderResponse(event, response) {
48
+ const headers = mergeHeaders(new Headers(event.res.headers), response.headers);
49
+ return new FastResponse(response.body, {
50
+ status: response.status,
51
+ statusText: response.statusText,
52
+ headers
53
+ });
54
+ }
55
+ function rethrowWithResponseHeaders(event, error) {
56
+ error.headers = mergeHeaders(error.headers instanceof Headers ? error.headers : new Headers(error.headers), event.res.headers);
57
+ throw error;
58
+ }
38
59
  //#endregion
39
- export { createSSRContext, setSSRError };
60
+ export { createSSRContext, mergeHeaders, rethrowWithResponseHeaders, returnRenderResponse, setSSRError };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nuxt/nitro-server-nightly",
3
- "version": "5.0.0-29705271.19701cef",
3
+ "version": "5.0.0-29706259.91cb2fe2",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/nuxt/nuxt.git",
@@ -27,7 +27,7 @@
27
27
  "dist"
28
28
  ],
29
29
  "dependencies": {
30
- "@nuxt/kit": "npm:@nuxt/kit-nightly@5.0.0-29705271.19701cef",
30
+ "@nuxt/kit": "npm:@nuxt/kit-nightly@5.0.0-29706259.91cb2fe2",
31
31
  "@unhead/vue": "^3.1.4",
32
32
  "@vue/shared": "3.5.38",
33
33
  "consola": "^3.4.2",
@@ -58,7 +58,7 @@
58
58
  "@babel/plugin-proposal-decorators": "^7.25.0",
59
59
  "@babel/plugin-syntax-typescript": "^7.25.0",
60
60
  "@rollup/plugin-babel": "^6.0.0 || ^7.0.0",
61
- "nuxt": "npm:nuxt-nightly@5.0.0-29705271.19701cef"
61
+ "nuxt": "npm:nuxt-nightly@5.0.0-29706259.91cb2fe2"
62
62
  },
63
63
  "peerDependenciesMeta": {
64
64
  "@babel/plugin-proposal-decorators": {
@@ -74,10 +74,10 @@
74
74
  "devDependencies": {
75
75
  "@babel/plugin-proposal-decorators": "7.29.7",
76
76
  "@babel/plugin-syntax-typescript": "7.29.7",
77
- "@nuxt/schema": "npm:@nuxt/schema-nightly@5.0.0-29705271.19701cef",
77
+ "@nuxt/schema": "npm:@nuxt/schema-nightly@5.0.0-29706259.91cb2fe2",
78
78
  "@rollup/plugin-babel": "7.1.0",
79
79
  "hookable": "6.1.1",
80
- "nuxt": "npm:nuxt-nightly@5.0.0-29705271.19701cef",
80
+ "nuxt": "npm:nuxt-nightly@5.0.0-29706259.91cb2fe2",
81
81
  "tsdown": "0.22.3",
82
82
  "vitest": "4.1.9"
83
83
  },