@nuxt/nitro-server-nightly 4.3.0-29434171.a4fda917 → 4.3.0-29434256.ce15997c
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 +13 -11
- package/dist/runtime/handlers/renderer.js +15 -20
- package/dist/runtime/utils/cache.js +3 -3
- package/dist/runtime/utils/renderer/app.js +3 -3
- package/dist/runtime/utils/renderer/build-files.js +2 -1
- package/dist/runtime/utils/renderer/payload.js +5 -5
- package/package.json +5 -5
package/dist/index.mjs
CHANGED
|
@@ -17,7 +17,7 @@ import { isWindows } from 'std-env';
|
|
|
17
17
|
import { ImpoundPlugin } from 'impound';
|
|
18
18
|
import { resolveModulePath } from 'exsolve';
|
|
19
19
|
|
|
20
|
-
const version = "4.3.0-
|
|
20
|
+
const version = "4.3.0-29434256.ce15997c";
|
|
21
21
|
const nitroBuilder = {
|
|
22
22
|
version: version};
|
|
23
23
|
|
|
@@ -311,7 +311,18 @@ async function bundle(nuxt) {
|
|
|
311
311
|
"#spa-template": async () => `export const template = ${JSON.stringify(await spaLoadingTemplate(nuxt))}`,
|
|
312
312
|
// this will be overridden in vite plugin
|
|
313
313
|
"#internal/entry-chunk.mjs": () => `export const entryFileName = undefined`,
|
|
314
|
-
"#internal/nuxt/entry-ids.mjs": () => `export default []
|
|
314
|
+
"#internal/nuxt/entry-ids.mjs": () => `export default []`,
|
|
315
|
+
"#internal/nuxt/nitro-config.mjs": () => [
|
|
316
|
+
`export const NUXT_NO_SSR = ${nuxt.options.ssr === false}`,
|
|
317
|
+
`export const NUXT_EARLY_HINTS = ${nuxt.options.experimental.writeEarlyHints !== false}`,
|
|
318
|
+
`export const NUXT_NO_SCRIPTS = ${nuxt.options.features.noScripts === "all" || !!nuxt.options.features.noScripts && !nuxt.options.dev}`,
|
|
319
|
+
`export const NUXT_INLINE_STYLES = ${!!nuxt.options.features.inlineStyles}`,
|
|
320
|
+
`export const PARSE_ERROR_DATA = ${!!nuxt.options.experimental.parseErrorData}`,
|
|
321
|
+
`export const NUXT_JSON_PAYLOADS = ${!!nuxt.options.experimental.renderJsonPayloads}`,
|
|
322
|
+
`export const NUXT_ASYNC_CONTEXT = ${!!nuxt.options.experimental.asyncContext}`,
|
|
323
|
+
`export const NUXT_SHARED_DATA = ${!!nuxt.options.experimental.sharedPrerenderData}`,
|
|
324
|
+
`export const NUXT_PAYLOAD_EXTRACTION = ${!!nuxt.options.experimental.payloadExtraction}`
|
|
325
|
+
].join("\n")
|
|
315
326
|
},
|
|
316
327
|
routeRules: {
|
|
317
328
|
"/__nuxt_error": { cache: false }
|
|
@@ -404,15 +415,6 @@ async function bundle(nuxt) {
|
|
|
404
415
|
"#internal/nuxt/paths": resolve(distDir, "runtime/utils/paths")
|
|
405
416
|
},
|
|
406
417
|
replace: {
|
|
407
|
-
"process.env.NUXT_NO_SSR": String(nuxt.options.ssr === false),
|
|
408
|
-
"process.env.NUXT_EARLY_HINTS": String(nuxt.options.experimental.writeEarlyHints !== false),
|
|
409
|
-
"process.env.NUXT_NO_SCRIPTS": String(nuxt.options.features.noScripts === "all" || !!nuxt.options.features.noScripts && !nuxt.options.dev),
|
|
410
|
-
"process.env.NUXT_INLINE_STYLES": String(!!nuxt.options.features.inlineStyles),
|
|
411
|
-
"process.env.PARSE_ERROR_DATA": String(!!nuxt.options.experimental.parseErrorData),
|
|
412
|
-
"process.env.NUXT_JSON_PAYLOADS": String(!!nuxt.options.experimental.renderJsonPayloads),
|
|
413
|
-
"process.env.NUXT_ASYNC_CONTEXT": String(!!nuxt.options.experimental.asyncContext),
|
|
414
|
-
"process.env.NUXT_SHARED_DATA": String(!!nuxt.options.experimental.sharedPrerenderData),
|
|
415
|
-
"process.dev": String(nuxt.options.dev),
|
|
416
418
|
"__VUE_PROD_DEVTOOLS__": String(false)
|
|
417
419
|
},
|
|
418
420
|
rollupConfig: {
|
|
@@ -1,11 +1,5 @@
|
|
|
1
1
|
import { AsyncLocalStorage } from "node:async_hooks";
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
getPrefetchLinks,
|
|
5
|
-
getPreloadLinks,
|
|
6
|
-
getRequestDependencies,
|
|
7
|
-
renderResourceHeaders
|
|
8
|
-
} from "vue-bundle-renderer/runtime";
|
|
2
|
+
import { getPrefetchLinks, getPreloadLinks, getRequestDependencies, renderResourceHeaders } from "vue-bundle-renderer/runtime";
|
|
9
3
|
import { appendResponseHeader, createError, getQuery, getResponseStatus, getResponseStatusText, writeEarlyHints } from "h3";
|
|
10
4
|
import { getQuery as getURLQuery, joinURL } from "ufo";
|
|
11
5
|
import { propsToString, renderSSRHead } from "@unhead/vue/server";
|
|
@@ -18,6 +12,7 @@ import { createSSRContext, setSSRError } from "../utils/renderer/app.js";
|
|
|
18
12
|
import { renderInlineStyles } from "../utils/renderer/inline-styles.js";
|
|
19
13
|
import { replaceIslandTeleports } from "../utils/renderer/islands.js";
|
|
20
14
|
import { renderSSRHeadOptions } from "#internal/unhead.config.mjs";
|
|
15
|
+
import { NUXT_ASYNC_CONTEXT, NUXT_EARLY_HINTS, NUXT_INLINE_STYLES, NUXT_JSON_PAYLOADS, NUXT_NO_SCRIPTS, NUXT_PAYLOAD_EXTRACTION, PARSE_ERROR_DATA } from "#internal/nuxt/nitro-config.mjs";
|
|
21
16
|
import { appHead, appTeleportAttrs, appTeleportTag, componentIslands, appManifest as isAppManifestEnabled } from "#internal/nuxt.config.mjs";
|
|
22
17
|
import entryIds from "#internal/nuxt/entry-ids.mjs";
|
|
23
18
|
import { entryFileName } from "#internal/entry-chunk.mjs";
|
|
@@ -25,14 +20,14 @@ import { buildAssetsURL, publicAssetsURL } from "#internal/nuxt/paths";
|
|
|
25
20
|
import { relative } from "pathe";
|
|
26
21
|
globalThis.__buildAssetsURL = buildAssetsURL;
|
|
27
22
|
globalThis.__publicAssetsURL = publicAssetsURL;
|
|
28
|
-
if (
|
|
23
|
+
if (NUXT_ASYNC_CONTEXT && !("AsyncLocalStorage" in globalThis)) {
|
|
29
24
|
globalThis.AsyncLocalStorage = AsyncLocalStorage;
|
|
30
25
|
}
|
|
31
26
|
const HAS_APP_TELEPORTS = !!(appTeleportTag && appTeleportAttrs.id);
|
|
32
27
|
const APP_TELEPORT_OPEN_TAG = HAS_APP_TELEPORTS ? `<${appTeleportTag}${propsToString(appTeleportAttrs)}>` : "";
|
|
33
28
|
const APP_TELEPORT_CLOSE_TAG = HAS_APP_TELEPORTS ? `</${appTeleportTag}>` : "";
|
|
34
|
-
const PAYLOAD_URL_RE =
|
|
35
|
-
const PAYLOAD_FILENAME =
|
|
29
|
+
const PAYLOAD_URL_RE = NUXT_JSON_PAYLOADS ? /^[^?]*\/_payload.json(?:\?.*)?$/ : /^[^?]*\/_payload.js(?:\?.*)?$/;
|
|
30
|
+
const PAYLOAD_FILENAME = NUXT_JSON_PAYLOADS ? "_payload.json" : "_payload.js";
|
|
36
31
|
let entryPath;
|
|
37
32
|
export default defineRenderHandler(async (event) => {
|
|
38
33
|
const nitroApp = useNitroApp();
|
|
@@ -48,7 +43,7 @@ export default defineRenderHandler(async (event) => {
|
|
|
48
43
|
ssrContext.head.push(appHead, headEntryOptions);
|
|
49
44
|
if (ssrError) {
|
|
50
45
|
ssrError.statusCode &&= Number.parseInt(ssrError.statusCode);
|
|
51
|
-
if (
|
|
46
|
+
if (PARSE_ERROR_DATA && typeof ssrError.data === "string") {
|
|
52
47
|
try {
|
|
53
48
|
ssrError.data = destr(ssrError.data);
|
|
54
49
|
} catch {
|
|
@@ -56,7 +51,7 @@ export default defineRenderHandler(async (event) => {
|
|
|
56
51
|
}
|
|
57
52
|
setSSRError(ssrContext, ssrError);
|
|
58
53
|
}
|
|
59
|
-
const isRenderingPayload =
|
|
54
|
+
const isRenderingPayload = NUXT_PAYLOAD_EXTRACTION && PAYLOAD_URL_RE.test(ssrContext.url);
|
|
60
55
|
if (isRenderingPayload) {
|
|
61
56
|
const url = ssrContext.url.substring(0, ssrContext.url.lastIndexOf("/")) || "/";
|
|
62
57
|
ssrContext.url = url;
|
|
@@ -69,16 +64,16 @@ export default defineRenderHandler(async (event) => {
|
|
|
69
64
|
if (routeOptions.ssr === false) {
|
|
70
65
|
ssrContext.noSSR = true;
|
|
71
66
|
}
|
|
72
|
-
const _PAYLOAD_EXTRACTION = import.meta.prerender &&
|
|
67
|
+
const _PAYLOAD_EXTRACTION = import.meta.prerender && NUXT_PAYLOAD_EXTRACTION && !ssrContext.noSSR;
|
|
73
68
|
const payloadURL = _PAYLOAD_EXTRACTION ? joinURL(ssrContext.runtimeConfig.app.cdnURL || ssrContext.runtimeConfig.app.baseURL, ssrContext.url.replace(/\?.*$/, ""), PAYLOAD_FILENAME) + "?" + ssrContext.runtimeConfig.app.buildId : void 0;
|
|
74
69
|
const renderer = await getRenderer(ssrContext);
|
|
75
|
-
if (
|
|
70
|
+
if (NUXT_EARLY_HINTS && !isRenderingPayload && !import.meta.prerender) {
|
|
76
71
|
const { link: link2 } = renderResourceHeaders({}, renderer.rendererContext);
|
|
77
72
|
if (link2) {
|
|
78
73
|
writeEarlyHints(event, link2);
|
|
79
74
|
}
|
|
80
75
|
}
|
|
81
|
-
if (
|
|
76
|
+
if (NUXT_INLINE_STYLES) {
|
|
82
77
|
for (const id of entryIds) {
|
|
83
78
|
ssrContext.modules.add(id);
|
|
84
79
|
}
|
|
@@ -91,7 +86,7 @@ export default defineRenderHandler(async (event) => {
|
|
|
91
86
|
await ssrContext.nuxt?.hooks.callHook("app:error", _err);
|
|
92
87
|
throw _err;
|
|
93
88
|
});
|
|
94
|
-
const inlinedStyles =
|
|
89
|
+
const inlinedStyles = NUXT_INLINE_STYLES && !ssrContext["~renderResponse"] && !ssrContext._renderResponse && !isRenderingPayload ? await renderInlineStyles(ssrContext.modules ?? []) : [];
|
|
95
90
|
await ssrContext.nuxt?.hooks.callHook("app:rendered", { ssrContext, renderResult: _rendered });
|
|
96
91
|
if (ssrContext["~renderResponse"] || ssrContext._renderResponse) {
|
|
97
92
|
return ssrContext["~renderResponse"] || ssrContext._renderResponse;
|
|
@@ -110,7 +105,7 @@ export default defineRenderHandler(async (event) => {
|
|
|
110
105
|
appendResponseHeader(event, "x-nitro-prerender", joinURL(ssrContext.url.replace(/\?.*$/, ""), PAYLOAD_FILENAME));
|
|
111
106
|
await payloadCache.setItem(ssrContext.url === "/" ? "/" : ssrContext.url.replace(/\/$/, ""), renderPayloadResponse(ssrContext));
|
|
112
107
|
}
|
|
113
|
-
const NO_SCRIPTS =
|
|
108
|
+
const NO_SCRIPTS = NUXT_NO_SCRIPTS || routeOptions.noScripts;
|
|
114
109
|
const { styles, scripts } = getRequestDependencies(ssrContext, renderer.rendererContext);
|
|
115
110
|
if (entryFileName && !NO_SCRIPTS) {
|
|
116
111
|
let path = entryPath;
|
|
@@ -137,7 +132,7 @@ export default defineRenderHandler(async (event) => {
|
|
|
137
132
|
if (_PAYLOAD_EXTRACTION && !NO_SCRIPTS) {
|
|
138
133
|
ssrContext.head.push({
|
|
139
134
|
link: [
|
|
140
|
-
|
|
135
|
+
NUXT_JSON_PAYLOADS ? { rel: "preload", as: "fetch", crossorigin: "anonymous", href: payloadURL } : { rel: "modulepreload", crossorigin: "", href: payloadURL }
|
|
141
136
|
]
|
|
142
137
|
}, headEntryOptions);
|
|
143
138
|
}
|
|
@@ -169,7 +164,7 @@ export default defineRenderHandler(async (event) => {
|
|
|
169
164
|
link: getPrefetchLinks(ssrContext, renderer.rendererContext)
|
|
170
165
|
}, headEntryOptions);
|
|
171
166
|
ssrContext.head.push({
|
|
172
|
-
script: _PAYLOAD_EXTRACTION ?
|
|
167
|
+
script: _PAYLOAD_EXTRACTION ? NUXT_JSON_PAYLOADS ? renderPayloadJsonScript({ ssrContext, data: splitPayload(ssrContext).initial, src: payloadURL }) : renderPayloadScript({ ssrContext, data: splitPayload(ssrContext).initial, src: payloadURL }) : NUXT_JSON_PAYLOADS ? renderPayloadJsonScript({ ssrContext, data: ssrContext.payload }) : renderPayloadScript({ ssrContext, data: ssrContext.payload })
|
|
173
168
|
}, {
|
|
174
169
|
...headEntryOptions,
|
|
175
170
|
// this should come before another end of body scripts
|
|
@@ -178,7 +173,7 @@ export default defineRenderHandler(async (event) => {
|
|
|
178
173
|
});
|
|
179
174
|
}
|
|
180
175
|
if (!routeOptions.noScripts) {
|
|
181
|
-
const tagPosition = _PAYLOAD_EXTRACTION && !
|
|
176
|
+
const tagPosition = _PAYLOAD_EXTRACTION && !NUXT_JSON_PAYLOADS ? "bodyClose" : "head";
|
|
182
177
|
ssrContext.head.push({
|
|
183
178
|
script: Object.values(scripts).map((resource) => ({
|
|
184
179
|
type: resource.module ? "module" : null,
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { useStorage } from "nitropack/runtime";
|
|
2
|
-
import
|
|
2
|
+
import { NUXT_SHARED_DATA } from "#internal/nuxt/nitro-config.mjs";
|
|
3
3
|
export const payloadCache = import.meta.prerender ? useStorage("internal:nuxt:prerender:payload") : null;
|
|
4
4
|
export const islandCache = import.meta.prerender ? useStorage("internal:nuxt:prerender:island") : null;
|
|
5
5
|
export const islandPropCache = import.meta.prerender ? useStorage("internal:nuxt:prerender:island-props") : null;
|
|
6
|
-
export const sharedPrerenderPromises = import.meta.prerender &&
|
|
6
|
+
export const sharedPrerenderPromises = import.meta.prerender && NUXT_SHARED_DATA ? /* @__PURE__ */ new Map() : null;
|
|
7
7
|
const sharedPrerenderKeys = /* @__PURE__ */ new Set();
|
|
8
|
-
export const sharedPrerenderCache = import.meta.prerender &&
|
|
8
|
+
export const sharedPrerenderCache = import.meta.prerender && NUXT_SHARED_DATA ? {
|
|
9
9
|
get(key) {
|
|
10
10
|
if (sharedPrerenderKeys.has(key)) {
|
|
11
11
|
return sharedPrerenderPromises.get(key) ?? useStorage("internal:nuxt:prerender:shared").getItem(key);
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import process from "node:process";
|
|
2
1
|
import { useRuntimeConfig } from "nitropack/runtime";
|
|
3
2
|
import { createHead } from "@unhead/vue/server";
|
|
4
3
|
import { sharedPrerenderCache } from "../cache.js";
|
|
5
4
|
import unheadOptions from "#internal/unhead-options.mjs";
|
|
5
|
+
import { NUXT_NO_SSR, NUXT_SHARED_DATA } from "#internal/nuxt/nitro-config.mjs";
|
|
6
6
|
const PRERENDER_NO_SSR_ROUTES = /* @__PURE__ */ new Set(["/index.html", "/200.html", "/404.html"]);
|
|
7
7
|
export function createSSRContext(event) {
|
|
8
8
|
const ssrContext = {
|
|
9
9
|
url: event.path,
|
|
10
10
|
event,
|
|
11
11
|
runtimeConfig: useRuntimeConfig(event),
|
|
12
|
-
noSSR: !!
|
|
12
|
+
noSSR: !!NUXT_NO_SSR || event.context.nuxt?.noSSR || (import.meta.prerender ? PRERENDER_NO_SSR_ROUTES.has(event.path) : false),
|
|
13
13
|
head: createHead(unheadOptions),
|
|
14
14
|
error: false,
|
|
15
15
|
nuxt: void 0,
|
|
@@ -19,7 +19,7 @@ export function createSSRContext(event) {
|
|
|
19
19
|
modules: /* @__PURE__ */ new Set()
|
|
20
20
|
};
|
|
21
21
|
if (import.meta.prerender) {
|
|
22
|
-
if (
|
|
22
|
+
if (NUXT_SHARED_DATA) {
|
|
23
23
|
ssrContext["~sharedPrerenderCache"] = sharedPrerenderCache;
|
|
24
24
|
}
|
|
25
25
|
ssrContext.payload.prerenderedAt = Date.now();
|
|
@@ -3,6 +3,7 @@ import { createRenderer } from "vue-bundle-renderer/runtime";
|
|
|
3
3
|
import { renderToString as _renderToString } from "vue/server-renderer";
|
|
4
4
|
import { propsToString } from "@unhead/vue/server";
|
|
5
5
|
import { useRuntimeConfig } from "nitropack/runtime";
|
|
6
|
+
import { NUXT_NO_SSR } from "#internal/nuxt/nitro-config.mjs";
|
|
6
7
|
import { appRootAttrs, appRootTag, appSpaLoaderAttrs, appSpaLoaderTag, spaLoadingTemplateOutside } from "#internal/nuxt.config.mjs";
|
|
7
8
|
import { buildAssetsURL } from "#internal/nuxt/paths";
|
|
8
9
|
const APP_ROOT_OPEN_TAG = `<${appRootTag}${propsToString(appRootAttrs)}>`;
|
|
@@ -80,6 +81,6 @@ function lazyCachedFunction(fn) {
|
|
|
80
81
|
};
|
|
81
82
|
}
|
|
82
83
|
export function getRenderer(ssrContext) {
|
|
83
|
-
return
|
|
84
|
+
return NUXT_NO_SSR || ssrContext.noSSR ? getSPARenderer() : getSSRRenderer();
|
|
84
85
|
}
|
|
85
86
|
export const getSSRStyles = lazyCachedFunction(() => import("#build/dist/server/styles.mjs").then((r) => r.default || r));
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import process from "node:process";
|
|
2
1
|
import { getResponseStatus, getResponseStatusText } from "h3";
|
|
3
2
|
import devalue from "@nuxt/devalue";
|
|
4
3
|
import { stringify, uneval } from "devalue";
|
|
5
4
|
import { appId, multiApp } from "#internal/nuxt.config.mjs";
|
|
5
|
+
import { NUXT_JSON_PAYLOADS, NUXT_NO_SSR, NUXT_PAYLOAD_EXTRACTION } from "#internal/nuxt/nitro-config.mjs";
|
|
6
6
|
export function renderPayloadResponse(ssrContext) {
|
|
7
7
|
return {
|
|
8
|
-
body:
|
|
8
|
+
body: NUXT_JSON_PAYLOADS ? stringify(splitPayload(ssrContext).payload, ssrContext["~payloadReducers"]) : `export default ${devalue(splitPayload(ssrContext).payload)}`,
|
|
9
9
|
statusCode: getResponseStatus(ssrContext.event),
|
|
10
10
|
statusMessage: getResponseStatusText(ssrContext.event),
|
|
11
11
|
headers: {
|
|
12
|
-
"content-type":
|
|
12
|
+
"content-type": NUXT_JSON_PAYLOADS ? "application/json;charset=utf-8" : "text/javascript;charset=utf-8",
|
|
13
13
|
"x-powered-by": "Nuxt"
|
|
14
14
|
}
|
|
15
15
|
};
|
|
@@ -20,7 +20,7 @@ export function renderPayloadJsonScript(opts) {
|
|
|
20
20
|
"type": "application/json",
|
|
21
21
|
"innerHTML": contents,
|
|
22
22
|
"data-nuxt-data": appId,
|
|
23
|
-
"data-ssr": !(
|
|
23
|
+
"data-ssr": !(NUXT_NO_SSR || opts.ssrContext.noSSR)
|
|
24
24
|
};
|
|
25
25
|
if (!multiApp) {
|
|
26
26
|
payload.id = "__NUXT_DATA__";
|
|
@@ -38,7 +38,7 @@ export function renderPayloadJsonScript(opts) {
|
|
|
38
38
|
}
|
|
39
39
|
export function renderPayloadScript(opts) {
|
|
40
40
|
opts.data.config = opts.ssrContext.config;
|
|
41
|
-
const _PAYLOAD_EXTRACTION = import.meta.prerender &&
|
|
41
|
+
const _PAYLOAD_EXTRACTION = import.meta.prerender && NUXT_PAYLOAD_EXTRACTION && !opts.ssrContext.noSSR;
|
|
42
42
|
const nuxtData = devalue(opts.data);
|
|
43
43
|
if (_PAYLOAD_EXTRACTION) {
|
|
44
44
|
const singleAppPayload2 = `import p from "${opts.src}";window.__NUXT__={...p,...(${nuxtData})}`;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nuxt/nitro-server-nightly",
|
|
3
|
-
"version": "4.3.0-
|
|
3
|
+
"version": "4.3.0-29434256.ce15997c",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "git+https://github.com/nuxt/nuxt.git",
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
],
|
|
20
20
|
"dependencies": {
|
|
21
21
|
"@nuxt/devalue": "^2.0.2",
|
|
22
|
-
"@nuxt/kit": "npm:@nuxt/kit-nightly@4.3.0-
|
|
22
|
+
"@nuxt/kit": "npm:@nuxt/kit-nightly@4.3.0-29434256.ce15997c",
|
|
23
23
|
"@unhead/vue": "^2.0.19",
|
|
24
24
|
"@vue/shared": "^3.5.25",
|
|
25
25
|
"consola": "^3.4.2",
|
|
@@ -46,11 +46,11 @@
|
|
|
46
46
|
"vue-devtools-stub": "^0.1.0"
|
|
47
47
|
},
|
|
48
48
|
"peerDependencies": {
|
|
49
|
-
"nuxt": "npm:nuxt-nightly@4.3.0-
|
|
49
|
+
"nuxt": "npm:nuxt-nightly@4.3.0-29434256.ce15997c"
|
|
50
50
|
},
|
|
51
51
|
"devDependencies": {
|
|
52
|
-
"@nuxt/schema": "npm:@nuxt/schema-nightly@4.3.0-
|
|
53
|
-
"nuxt": "npm:nuxt-nightly@4.3.0-
|
|
52
|
+
"@nuxt/schema": "npm:@nuxt/schema-nightly@4.3.0-29434256.ce15997c",
|
|
53
|
+
"nuxt": "npm:nuxt-nightly@4.3.0-29434256.ce15997c",
|
|
54
54
|
"unbuild": "3.6.1",
|
|
55
55
|
"vitest": "3.2.4"
|
|
56
56
|
},
|