@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-
|
|
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 `
|
|
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 {
|
|
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
|
-
|
|
20
|
-
event
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
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
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
const
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
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
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
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
|
-
|
|
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 {
|
|
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 {
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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 {
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
80
|
+
"nuxt": "npm:nuxt-nightly@5.0.0-29706259.91cb2fe2",
|
|
81
81
|
"tsdown": "0.22.3",
|
|
82
82
|
"vitest": "4.1.9"
|
|
83
83
|
},
|