123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451 |
- import process from 'node:process';globalThis._importMeta_=globalThis._importMeta_||{url:"file:///_entry.js",env:process.env};import { getRequestDependencies, getPreloadLinks, getPrefetchLinks, createRenderer } from 'file://D:/zwj/nuxt/sannongzixunwang_web/node_modules/vue-bundle-renderer/dist/runtime.mjs';
- import { eventHandler, setResponseHeader, send, getResponseStatus, setResponseStatus, setResponseHeaders, getQuery, createError, appendResponseHeader, getResponseStatusText } from 'file://D:/zwj/nuxt/sannongzixunwang_web/node_modules/h3/dist/index.mjs';
- import { stringify, uneval } from 'file://D:/zwj/nuxt/sannongzixunwang_web/node_modules/devalue/index.js';
- import { joinRelativeURL, joinURL, withoutTrailingSlash } from 'file://D:/zwj/nuxt/sannongzixunwang_web/node_modules/ufo/dist/index.mjs';
- import { renderToString } from 'file://D:/zwj/nuxt/sannongzixunwang_web/node_modules/vue/server-renderer/index.mjs';
- import { propsToString, renderSSRHead } from 'file://D:/zwj/nuxt/sannongzixunwang_web/node_modules/@unhead/ssr/dist/index.mjs';
- import { u as useRuntimeConfig, a as useNitroApp, b as useStorage, g as getRouteRules } from '../routes/index.mjs';
- import { createServerHead as createServerHead$1, CapoPlugin } from 'file://D:/zwj/nuxt/sannongzixunwang_web/node_modules/unhead/dist/index.mjs';
- import { version, unref } from 'file://D:/zwj/nuxt/sannongzixunwang_web/node_modules/vue/index.mjs';
- import { defineHeadPlugin } from 'file://D:/zwj/nuxt/sannongzixunwang_web/node_modules/@unhead/shared/dist/index.mjs';
- function defineRenderHandler(handler) {
- const runtimeConfig = useRuntimeConfig();
- return eventHandler(async (event) => {
- if (event.path === `${runtimeConfig.app.baseURL}favicon.ico`) {
- setResponseHeader(event, "Content-Type", "image/x-icon");
- return send(
- event,
- "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"
- );
- }
- const response = await handler(event);
- if (!response) {
- const _currentStatus = getResponseStatus(event);
- setResponseStatus(event, _currentStatus === 200 ? 500 : _currentStatus);
- return send(
- event,
- "No response returned from render handler: " + event.path
- );
- }
- const nitroApp = useNitroApp();
- await nitroApp.hooks.callHook("render:response", response, { event });
- if (response.headers) {
- setResponseHeaders(event, response.headers);
- }
- if (response.statusCode || response.statusMessage) {
- setResponseStatus(event, response.statusCode, response.statusMessage);
- }
- return response.body;
- });
- }
- const Vue3 = version[0] === "3";
- function resolveUnref(r) {
- return typeof r === "function" ? r() : unref(r);
- }
- function resolveUnrefHeadInput(ref) {
- if (ref instanceof Promise || ref instanceof Date || ref instanceof RegExp)
- return ref;
- const root = resolveUnref(ref);
- if (!ref || !root)
- return root;
- if (Array.isArray(root))
- return root.map((r) => resolveUnrefHeadInput(r));
- if (typeof root === "object") {
- const resolved = {};
- for (const k in root) {
- if (!Object.prototype.hasOwnProperty.call(root, k)) {
- continue;
- }
- if (k === "titleTemplate" || k[0] === "o" && k[1] === "n") {
- resolved[k] = unref(root[k]);
- continue;
- }
- resolved[k] = resolveUnrefHeadInput(root[k]);
- }
- return resolved;
- }
- return root;
- }
- const VueReactivityPlugin = defineHeadPlugin({
- hooks: {
- "entries:resolve": (ctx) => {
- for (const entry of ctx.entries)
- entry.resolvedInput = resolveUnrefHeadInput(entry.input);
- }
- }
- });
- const headSymbol = "usehead";
- function vueInstall(head) {
- const plugin = {
- install(app) {
- if (Vue3) {
- app.config.globalProperties.$unhead = head;
- app.config.globalProperties.$head = head;
- app.provide(headSymbol, head);
- }
- }
- };
- return plugin.install;
- }
- function createServerHead(options = {}) {
- const head = createServerHead$1(options);
- head.use(VueReactivityPlugin);
- head.install = vueInstall(head);
- return head;
- }
- const unheadPlugins = true ? [CapoPlugin({ track: true })] : [];
- const renderSSRHeadOptions = {"omitLineBreaks":false};
- const appHead = {"meta":[{"name":"viewport","content":"width=device-width, initial-scale=1"},{"charset":"utf-8"}],"link":[],"style":[],"script":[],"noscript":[]};
- const appRootTag = "div";
- const appRootAttrs = {"id":"__nuxt"};
- const appTeleportTag = "div";
- const appTeleportAttrs = {"id":"teleports"};
- const componentIslands = false;
- const appId = "nuxt-app";
- function baseURL() {
- return useRuntimeConfig().app.baseURL;
- }
- function buildAssetsDir() {
- return useRuntimeConfig().app.buildAssetsDir;
- }
- function buildAssetsURL(...path) {
- return joinRelativeURL(publicAssetsURL(), buildAssetsDir(), ...path);
- }
- function publicAssetsURL(...path) {
- const app = useRuntimeConfig().app;
- const publicBase = app.cdnURL || app.baseURL;
- return path.length ? joinRelativeURL(publicBase, ...path) : publicBase;
- }
- globalThis.__buildAssetsURL = buildAssetsURL;
- globalThis.__publicAssetsURL = publicAssetsURL;
- const getClientManifest = () => import('../build/client.manifest.mjs').then((r) => r.default || r).then((r) => typeof r === "function" ? r() : r);
- const getEntryIds = () => getClientManifest().then((r) => Object.values(r).filter(
- (r2) => (
- // @ts-expect-error internal key set by CSS inlining configuration
- r2._globalCSS
- )
- ).map((r2) => r2.src));
- const getServerEntry = () => import('../build/server.mjs').then((r) => r.default || r);
- const getSSRStyles = lazyCachedFunction(() => import('../build/styles.mjs').then((r) => r.default || r));
- const getSSRRenderer = lazyCachedFunction(async () => {
- const manifest = await getClientManifest();
- if (!manifest) {
- throw new Error("client.manifest is not available");
- }
- const createSSRApp = await getServerEntry();
- if (!createSSRApp) {
- throw new Error("Server bundle is not available");
- }
- const options = {
- manifest,
- renderToString: renderToString$1,
- buildAssetsURL
- };
- const renderer = createRenderer(createSSRApp, options);
- async function renderToString$1(input, context) {
- const html = await renderToString(input, context);
- return APP_ROOT_OPEN_TAG + html + APP_ROOT_CLOSE_TAG;
- }
- return renderer;
- });
- const getSPARenderer = lazyCachedFunction(async () => {
- const manifest = await getClientManifest();
- const spaTemplate = await import('../virtual/_virtual_spa-template.mjs').then((r) => r.template).catch(() => "").then((r) => APP_ROOT_OPEN_TAG + r + APP_ROOT_CLOSE_TAG);
- const options = {
- manifest,
- renderToString: () => spaTemplate,
- buildAssetsURL
- };
- const renderer = createRenderer(() => () => {
- }, options);
- const result = await renderer.renderToString({});
- const renderToString = (ssrContext) => {
- const config = useRuntimeConfig(ssrContext.event);
- ssrContext.modules = ssrContext.modules || /* @__PURE__ */ new Set();
- ssrContext.payload.serverRendered = false;
- ssrContext.config = {
- public: config.public,
- app: config.app
- };
- return Promise.resolve(result);
- };
- return {
- rendererContext: renderer.rendererContext,
- renderToString
- };
- });
- const payloadCache = useStorage("internal:nuxt:prerender:payload") ;
- useStorage("internal:nuxt:prerender:island") ;
- useStorage("internal:nuxt:prerender:island-props") ;
- const HAS_APP_TELEPORTS = !!(appTeleportAttrs.id);
- const APP_TELEPORT_OPEN_TAG = HAS_APP_TELEPORTS ? `<${appTeleportTag}${propsToString(appTeleportAttrs)}>` : "";
- const APP_TELEPORT_CLOSE_TAG = HAS_APP_TELEPORTS ? `</${appTeleportTag}>` : "";
- const APP_ROOT_OPEN_TAG = `<${appRootTag}${propsToString(appRootAttrs)}>`;
- const APP_ROOT_CLOSE_TAG = `</${appRootTag}>`;
- const PAYLOAD_URL_RE = /\/_payload.json(\?.*)?$/ ;
- const PRERENDER_NO_SSR_ROUTES = /* @__PURE__ */ new Set(["/index.html", "/200.html", "/404.html"]);
- const renderer = defineRenderHandler(async (event) => {
- const nitroApp = useNitroApp();
- const ssrError = event.path.startsWith("/__nuxt_error") ? getQuery(event) : null;
- if (ssrError && ssrError.statusCode) {
- ssrError.statusCode = Number.parseInt(ssrError.statusCode);
- }
- if (ssrError && !("__unenv__" in event.node.req)) {
- throw createError({
- statusCode: 404,
- statusMessage: "Page Not Found: /__nuxt_error"
- });
- }
- const isRenderingIsland = componentIslands;
- const islandContext = void 0;
- let url = ssrError?.url || islandContext?.url || event.path;
- const isRenderingPayload = PAYLOAD_URL_RE.test(url) && !isRenderingIsland;
- if (isRenderingPayload) {
- url = url.substring(0, url.lastIndexOf("/")) || "/";
- event._path = url;
- event.node.req.url = url;
- if (await payloadCache.hasItem(url)) {
- return payloadCache.getItem(url);
- }
- }
- const routeOptions = getRouteRules(event);
- const head = createServerHead({
- plugins: unheadPlugins
- });
- const headEntryOptions = { mode: "server" };
- {
- head.push(appHead, headEntryOptions);
- }
- const ssrContext = {
- url,
- event,
- runtimeConfig: useRuntimeConfig(event),
- noSSR: event.context.nuxt?.noSSR || routeOptions.ssr === false && !isRenderingIsland || (PRERENDER_NO_SSR_ROUTES.has(url) ),
- head,
- error: !!ssrError,
- nuxt: void 0,
- /* NuxtApp */
- payload: ssrError ? { error: ssrError } : {},
- _payloadReducers: /* @__PURE__ */ Object.create(null),
- modules: /* @__PURE__ */ new Set(),
- islandContext
- };
- const _PAYLOAD_EXTRACTION = !ssrContext.noSSR && !isRenderingIsland;
- const payloadURL = _PAYLOAD_EXTRACTION ? joinURL(ssrContext.runtimeConfig.app.cdnURL || ssrContext.runtimeConfig.app.baseURL, url, "_payload.json" ) + "?" + ssrContext.runtimeConfig.app.buildId : void 0;
- {
- ssrContext.payload.prerenderedAt = Date.now();
- }
- const renderer = ssrContext.noSSR ? await getSPARenderer() : await getSSRRenderer();
- {
- for (const id of await getEntryIds()) {
- ssrContext.modules.add(id);
- }
- }
- const _rendered = await renderer.renderToString(ssrContext).catch(async (error) => {
- if (ssrContext._renderResponse && error.message === "skipping render") {
- return {};
- }
- const _err = !ssrError && ssrContext.payload?.error || error;
- await ssrContext.nuxt?.hooks.callHook("app:error", _err);
- throw _err;
- });
- await ssrContext.nuxt?.hooks.callHook("app:rendered", { ssrContext, renderResult: _rendered });
- if (ssrContext._renderResponse) {
- return ssrContext._renderResponse;
- }
- if (ssrContext.payload?.error && !ssrError) {
- throw ssrContext.payload.error;
- }
- if (isRenderingPayload) {
- const response2 = renderPayloadResponse(ssrContext);
- {
- await payloadCache.setItem(url, response2);
- }
- return response2;
- }
- if (_PAYLOAD_EXTRACTION) {
- appendResponseHeader(event, "x-nitro-prerender", joinURL(url, "_payload.json" ));
- await payloadCache.setItem(withoutTrailingSlash(url), renderPayloadResponse(ssrContext));
- }
- const inlinedStyles = await renderInlineStyles(ssrContext.modules ?? []) ;
- const NO_SCRIPTS = routeOptions.experimentalNoScripts;
- const { styles, scripts } = getRequestDependencies(ssrContext, renderer.rendererContext);
- if (_PAYLOAD_EXTRACTION && !NO_SCRIPTS && !isRenderingIsland) {
- head.push({
- link: [
- { rel: "preload", as: "fetch", crossorigin: "anonymous", href: payloadURL }
- ]
- }, headEntryOptions);
- }
- if (inlinedStyles.length) {
- head.push({ style: inlinedStyles });
- }
- {
- const link = [];
- for (const style in styles) {
- const resource = styles[style];
- {
- link.push({ rel: "stylesheet", href: renderer.rendererContext.buildAssetsURL(resource.file) });
- }
- }
- if (link.length) {
- head.push({ link }, headEntryOptions);
- }
- }
- if (!NO_SCRIPTS && !isRenderingIsland) {
- head.push({
- link: getPreloadLinks(ssrContext, renderer.rendererContext)
- }, headEntryOptions);
- head.push({
- link: getPrefetchLinks(ssrContext, renderer.rendererContext)
- }, headEntryOptions);
- head.push({
- script: _PAYLOAD_EXTRACTION ? renderPayloadJsonScript({ ssrContext, data: splitPayload(ssrContext).initial, src: payloadURL }) : renderPayloadJsonScript({ ssrContext, data: ssrContext.payload })
- }, {
- ...headEntryOptions,
- // this should come before another end of body scripts
- tagPosition: "bodyClose",
- tagPriority: "high"
- });
- }
- if (!routeOptions.experimentalNoScripts && !isRenderingIsland) {
- head.push({
- script: Object.values(scripts).map((resource) => ({
- type: resource.module ? "module" : null,
- src: renderer.rendererContext.buildAssetsURL(resource.file),
- defer: resource.module ? null : true,
- // if we are rendering script tag payloads that import an async payload
- // we need to ensure this resolves before executing the Nuxt entry
- tagPosition: _PAYLOAD_EXTRACTION && !true ? "bodyClose" : "head",
- crossorigin: ""
- }))
- }, headEntryOptions);
- }
- const { headTags, bodyTags, bodyTagsOpen, htmlAttrs, bodyAttrs } = await renderSSRHead(head, renderSSRHeadOptions);
- const htmlContext = {
- island: isRenderingIsland,
- htmlAttrs: htmlAttrs ? [htmlAttrs] : [],
- head: normalizeChunks([headTags]),
- bodyAttrs: bodyAttrs ? [bodyAttrs] : [],
- bodyPrepend: normalizeChunks([bodyTagsOpen, ssrContext.teleports?.body]),
- body: [
- _rendered.html,
- APP_TELEPORT_OPEN_TAG + (HAS_APP_TELEPORTS ? joinTags([ssrContext.teleports?.[`#${appTeleportAttrs.id}`]]) : "") + APP_TELEPORT_CLOSE_TAG
- ],
- bodyAppend: [bodyTags]
- };
- await nitroApp.hooks.callHook("render:html", htmlContext, { event });
- const response = {
- body: renderHTMLDocument(htmlContext),
- statusCode: getResponseStatus(event),
- statusMessage: getResponseStatusText(event),
- headers: {
- "content-type": "text/html;charset=utf-8",
- "x-powered-by": "Nuxt"
- }
- };
- return response;
- });
- function lazyCachedFunction(fn) {
- let res = null;
- return () => {
- if (res === null) {
- res = fn().catch((err) => {
- res = null;
- throw err;
- });
- }
- return res;
- };
- }
- function normalizeChunks(chunks) {
- return chunks.filter(Boolean).map((i) => i.trim());
- }
- function joinTags(tags) {
- return tags.join("");
- }
- function joinAttrs(chunks) {
- if (chunks.length === 0) {
- return "";
- }
- return " " + chunks.join(" ");
- }
- function renderHTMLDocument(html) {
- return `<!DOCTYPE html><html${joinAttrs(html.htmlAttrs)}><head>${joinTags(html.head)}</head><body${joinAttrs(html.bodyAttrs)}>${joinTags(html.bodyPrepend)}${joinTags(html.body)}${joinTags(html.bodyAppend)}</body></html>`;
- }
- async function renderInlineStyles(usedModules) {
- const styleMap = await getSSRStyles();
- const inlinedStyles = /* @__PURE__ */ new Set();
- for (const mod of usedModules) {
- if (mod in styleMap) {
- for (const style of await styleMap[mod]()) {
- inlinedStyles.add(style);
- }
- }
- }
- return Array.from(inlinedStyles).map((style) => ({ innerHTML: style }));
- }
- function renderPayloadResponse(ssrContext) {
- return {
- body: stringify(splitPayload(ssrContext).payload, ssrContext._payloadReducers) ,
- statusCode: getResponseStatus(ssrContext.event),
- statusMessage: getResponseStatusText(ssrContext.event),
- headers: {
- "content-type": "application/json;charset=utf-8" ,
- "x-powered-by": "Nuxt"
- }
- };
- }
- function renderPayloadJsonScript(opts) {
- const contents = opts.data ? stringify(opts.data, opts.ssrContext._payloadReducers) : "";
- const payload = {
- "type": "application/json",
- "innerHTML": contents,
- "data-nuxt-data": appId,
- "data-ssr": !(opts.ssrContext.noSSR)
- };
- {
- payload.id = "__NUXT_DATA__";
- }
- if (opts.src) {
- payload["data-src"] = opts.src;
- }
- const config = uneval(opts.ssrContext.config);
- return [
- payload,
- {
- innerHTML: `window.__NUXT__={};window.__NUXT__.config=${config}`
- }
- ];
- }
- function splitPayload(ssrContext) {
- const { data, prerenderedAt, ...initial } = ssrContext.payload;
- return {
- initial: { ...initial, prerenderedAt },
- payload: { data, prerenderedAt }
- };
- }
- const renderer$1 = /*#__PURE__*/Object.freeze({
- __proto__: null,
- default: renderer
- });
- export { buildAssetsURL as a, baseURL as b, renderer$1 as r };
- //# sourceMappingURL=renderer.mjs.map
|