server.mjs 59 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586
  1. import { effectScope, shallowReactive, reactive, getCurrentScope, hasInjectionContext, getCurrentInstance, inject, toRef, version, unref, h, shallowRef, isReadonly, isRef, isShallow, isReactive, toRaw, defineComponent, computed, ref, provide, Suspense, nextTick, mergeProps, Transition, watch, Fragment, withCtx, createVNode, useSSRContext, defineAsyncComponent, onErrorCaptured, onServerPrefetch, resolveDynamicComponent, createApp } from "vue";
  2. import { $fetch } from "ofetch";
  3. import { baseURL } from "#internal/nuxt/paths";
  4. import { createHooks } from "hookable";
  5. import { getContext } from "unctx";
  6. import { sanitizeStatusCode, createError as createError$1, appendHeader } from "h3";
  7. import { getActiveHead, CapoPlugin } from "unhead";
  8. import { defineHeadPlugin } from "@unhead/shared";
  9. import { START_LOCATION, createMemoryHistory, createRouter as createRouter$1, useRoute as useRoute$1, RouterView } from "vue-router";
  10. import { toRouteMatcher, createRouter } from "radix3";
  11. import { defu } from "defu";
  12. import { hasProtocol, isScriptProtocol, joinURL, withQuery } from "ufo";
  13. import { createPinia } from "pinia";
  14. import { ssrRenderAttrs, ssrRenderComponent, ssrRenderAttr, ssrRenderSuspense, ssrRenderVNode } from "vue/server-renderer";
  15. import { ElPopover } from "element-plus";
  16. if (!globalThis.$fetch) {
  17. globalThis.$fetch = $fetch.create({
  18. baseURL: baseURL()
  19. });
  20. }
  21. const appLayoutTransition = false;
  22. const appPageTransition = false;
  23. const appKeepalive = false;
  24. const nuxtLinkDefaults = { "componentName": "NuxtLink", "prefetch": true, "prefetchOn": { "visibility": true } };
  25. const appId = "nuxt-app";
  26. function getNuxtAppCtx(id = appId) {
  27. return getContext(id, {
  28. asyncContext: false
  29. });
  30. }
  31. const NuxtPluginIndicator = "__nuxt_plugin";
  32. function createNuxtApp(options) {
  33. var _a;
  34. let hydratingCount = 0;
  35. const nuxtApp = {
  36. _id: options.id || appId || "nuxt-app",
  37. _scope: effectScope(),
  38. provide: void 0,
  39. globalName: "nuxt",
  40. versions: {
  41. get nuxt() {
  42. return "3.15.2";
  43. },
  44. get vue() {
  45. return nuxtApp.vueApp.version;
  46. }
  47. },
  48. payload: shallowReactive({
  49. ...((_a = options.ssrContext) == null ? void 0 : _a.payload) || {},
  50. data: shallowReactive({}),
  51. state: reactive({}),
  52. once: /* @__PURE__ */ new Set(),
  53. _errors: shallowReactive({})
  54. }),
  55. static: {
  56. data: {}
  57. },
  58. runWithContext(fn) {
  59. if (nuxtApp._scope.active && !getCurrentScope()) {
  60. return nuxtApp._scope.run(() => callWithNuxt(nuxtApp, fn));
  61. }
  62. return callWithNuxt(nuxtApp, fn);
  63. },
  64. isHydrating: false,
  65. deferHydration() {
  66. if (!nuxtApp.isHydrating) {
  67. return () => {
  68. };
  69. }
  70. hydratingCount++;
  71. let called = false;
  72. return () => {
  73. if (called) {
  74. return;
  75. }
  76. called = true;
  77. hydratingCount--;
  78. if (hydratingCount === 0) {
  79. nuxtApp.isHydrating = false;
  80. return nuxtApp.callHook("app:suspense:resolve");
  81. }
  82. };
  83. },
  84. _asyncDataPromises: {},
  85. _asyncData: shallowReactive({}),
  86. _payloadRevivers: {},
  87. ...options
  88. };
  89. {
  90. nuxtApp.payload.serverRendered = true;
  91. }
  92. if (nuxtApp.ssrContext) {
  93. nuxtApp.payload.path = nuxtApp.ssrContext.url;
  94. nuxtApp.ssrContext.nuxt = nuxtApp;
  95. nuxtApp.ssrContext.payload = nuxtApp.payload;
  96. nuxtApp.ssrContext.config = {
  97. public: nuxtApp.ssrContext.runtimeConfig.public,
  98. app: nuxtApp.ssrContext.runtimeConfig.app
  99. };
  100. }
  101. nuxtApp.hooks = createHooks();
  102. nuxtApp.hook = nuxtApp.hooks.hook;
  103. {
  104. const contextCaller = async function(hooks, args) {
  105. for (const hook of hooks) {
  106. await nuxtApp.runWithContext(() => hook(...args));
  107. }
  108. };
  109. nuxtApp.hooks.callHook = (name, ...args) => nuxtApp.hooks.callHookWith(contextCaller, name, ...args);
  110. }
  111. nuxtApp.callHook = nuxtApp.hooks.callHook;
  112. nuxtApp.provide = (name, value) => {
  113. const $name = "$" + name;
  114. defineGetter(nuxtApp, $name, value);
  115. defineGetter(nuxtApp.vueApp.config.globalProperties, $name, value);
  116. };
  117. defineGetter(nuxtApp.vueApp, "$nuxt", nuxtApp);
  118. defineGetter(nuxtApp.vueApp.config.globalProperties, "$nuxt", nuxtApp);
  119. const runtimeConfig = options.ssrContext.runtimeConfig;
  120. nuxtApp.provide("config", runtimeConfig);
  121. return nuxtApp;
  122. }
  123. function registerPluginHooks(nuxtApp, plugin2) {
  124. if (plugin2.hooks) {
  125. nuxtApp.hooks.addHooks(plugin2.hooks);
  126. }
  127. }
  128. async function applyPlugin(nuxtApp, plugin2) {
  129. if (typeof plugin2 === "function") {
  130. const { provide: provide2 } = await nuxtApp.runWithContext(() => plugin2(nuxtApp)) || {};
  131. if (provide2 && typeof provide2 === "object") {
  132. for (const key in provide2) {
  133. nuxtApp.provide(key, provide2[key]);
  134. }
  135. }
  136. }
  137. }
  138. async function applyPlugins(nuxtApp, plugins2) {
  139. var _a, _b, _c, _d;
  140. const resolvedPlugins = [];
  141. const unresolvedPlugins = [];
  142. const parallels = [];
  143. const errors = [];
  144. let promiseDepth = 0;
  145. async function executePlugin(plugin2) {
  146. var _a2;
  147. const unresolvedPluginsForThisPlugin = ((_a2 = plugin2.dependsOn) == null ? void 0 : _a2.filter((name) => plugins2.some((p) => p._name === name) && !resolvedPlugins.includes(name))) ?? [];
  148. if (unresolvedPluginsForThisPlugin.length > 0) {
  149. unresolvedPlugins.push([new Set(unresolvedPluginsForThisPlugin), plugin2]);
  150. } else {
  151. const promise = applyPlugin(nuxtApp, plugin2).then(async () => {
  152. if (plugin2._name) {
  153. resolvedPlugins.push(plugin2._name);
  154. await Promise.all(unresolvedPlugins.map(async ([dependsOn, unexecutedPlugin]) => {
  155. if (dependsOn.has(plugin2._name)) {
  156. dependsOn.delete(plugin2._name);
  157. if (dependsOn.size === 0) {
  158. promiseDepth++;
  159. await executePlugin(unexecutedPlugin);
  160. }
  161. }
  162. }));
  163. }
  164. });
  165. if (plugin2.parallel) {
  166. parallels.push(promise.catch((e) => errors.push(e)));
  167. } else {
  168. await promise;
  169. }
  170. }
  171. }
  172. for (const plugin2 of plugins2) {
  173. if (((_a = nuxtApp.ssrContext) == null ? void 0 : _a.islandContext) && ((_b = plugin2.env) == null ? void 0 : _b.islands) === false) {
  174. continue;
  175. }
  176. registerPluginHooks(nuxtApp, plugin2);
  177. }
  178. for (const plugin2 of plugins2) {
  179. if (((_c = nuxtApp.ssrContext) == null ? void 0 : _c.islandContext) && ((_d = plugin2.env) == null ? void 0 : _d.islands) === false) {
  180. continue;
  181. }
  182. await executePlugin(plugin2);
  183. }
  184. await Promise.all(parallels);
  185. if (promiseDepth) {
  186. for (let i = 0; i < promiseDepth; i++) {
  187. await Promise.all(parallels);
  188. }
  189. }
  190. if (errors.length) {
  191. throw errors[0];
  192. }
  193. }
  194. // @__NO_SIDE_EFFECTS__
  195. function defineNuxtPlugin(plugin2) {
  196. if (typeof plugin2 === "function") {
  197. return plugin2;
  198. }
  199. const _name = plugin2._name || plugin2.name;
  200. delete plugin2.name;
  201. return Object.assign(plugin2.setup || (() => {
  202. }), plugin2, { [NuxtPluginIndicator]: true, _name });
  203. }
  204. function callWithNuxt(nuxt, setup, args) {
  205. const fn = () => setup();
  206. const nuxtAppCtx = getNuxtAppCtx(nuxt._id);
  207. {
  208. return nuxt.vueApp.runWithContext(() => nuxtAppCtx.callAsync(nuxt, fn));
  209. }
  210. }
  211. function tryUseNuxtApp(id) {
  212. var _a;
  213. let nuxtAppInstance;
  214. if (hasInjectionContext()) {
  215. nuxtAppInstance = (_a = getCurrentInstance()) == null ? void 0 : _a.appContext.app.$nuxt;
  216. }
  217. nuxtAppInstance = nuxtAppInstance || getNuxtAppCtx(id).tryUse();
  218. return nuxtAppInstance || null;
  219. }
  220. function useNuxtApp(id) {
  221. const nuxtAppInstance = tryUseNuxtApp(id);
  222. if (!nuxtAppInstance) {
  223. {
  224. throw new Error("[nuxt] instance unavailable");
  225. }
  226. }
  227. return nuxtAppInstance;
  228. }
  229. // @__NO_SIDE_EFFECTS__
  230. function useRuntimeConfig(_event) {
  231. return useNuxtApp().$config;
  232. }
  233. function defineGetter(obj, key, val) {
  234. Object.defineProperty(obj, key, { get: () => val });
  235. }
  236. const LayoutMetaSymbol = Symbol("layout-meta");
  237. const PageRouteSymbol = Symbol("route");
  238. const useRouter = () => {
  239. var _a;
  240. return (_a = useNuxtApp()) == null ? void 0 : _a.$router;
  241. };
  242. const useRoute = () => {
  243. if (hasInjectionContext()) {
  244. return inject(PageRouteSymbol, useNuxtApp()._route);
  245. }
  246. return useNuxtApp()._route;
  247. };
  248. // @__NO_SIDE_EFFECTS__
  249. function defineNuxtRouteMiddleware(middleware) {
  250. return middleware;
  251. }
  252. const isProcessingMiddleware = () => {
  253. try {
  254. if (useNuxtApp()._processingMiddleware) {
  255. return true;
  256. }
  257. } catch {
  258. return false;
  259. }
  260. return false;
  261. };
  262. const URL_QUOTE_RE = /"/g;
  263. const navigateTo = (to, options) => {
  264. if (!to) {
  265. to = "/";
  266. }
  267. const toPath = typeof to === "string" ? to : "path" in to ? resolveRouteObject(to) : useRouter().resolve(to).href;
  268. const isExternalHost = hasProtocol(toPath, { acceptRelative: true });
  269. const isExternal = (options == null ? void 0 : options.external) || isExternalHost;
  270. if (isExternal) {
  271. if (!(options == null ? void 0 : options.external)) {
  272. throw new Error("Navigating to an external URL is not allowed by default. Use `navigateTo(url, { external: true })`.");
  273. }
  274. const { protocol } = new URL(toPath, "http://localhost");
  275. if (protocol && isScriptProtocol(protocol)) {
  276. throw new Error(`Cannot navigate to a URL with '${protocol}' protocol.`);
  277. }
  278. }
  279. const inMiddleware = isProcessingMiddleware();
  280. const router = useRouter();
  281. const nuxtApp = useNuxtApp();
  282. {
  283. if (nuxtApp.ssrContext) {
  284. const fullPath = typeof to === "string" || isExternal ? toPath : router.resolve(to).fullPath || "/";
  285. const location2 = isExternal ? toPath : joinURL((/* @__PURE__ */ useRuntimeConfig()).app.baseURL, fullPath);
  286. const redirect = async function(response) {
  287. await nuxtApp.callHook("app:redirected");
  288. const encodedLoc = location2.replace(URL_QUOTE_RE, "%22");
  289. const encodedHeader = encodeURL(location2, isExternalHost);
  290. nuxtApp.ssrContext._renderResponse = {
  291. statusCode: sanitizeStatusCode((options == null ? void 0 : options.redirectCode) || 302, 302),
  292. body: `<!DOCTYPE html><html><head><meta http-equiv="refresh" content="0; url=${encodedLoc}"></head></html>`,
  293. headers: { location: encodedHeader }
  294. };
  295. return response;
  296. };
  297. if (!isExternal && inMiddleware) {
  298. router.afterEach((final) => final.fullPath === fullPath ? redirect(false) : void 0);
  299. return to;
  300. }
  301. return redirect(!inMiddleware ? void 0 : (
  302. /* abort route navigation */
  303. false
  304. ));
  305. }
  306. }
  307. if (isExternal) {
  308. nuxtApp._scope.stop();
  309. if (options == null ? void 0 : options.replace) {
  310. (void 0).replace(toPath);
  311. } else {
  312. (void 0).href = toPath;
  313. }
  314. if (inMiddleware) {
  315. if (!nuxtApp.isHydrating) {
  316. return false;
  317. }
  318. return new Promise(() => {
  319. });
  320. }
  321. return Promise.resolve();
  322. }
  323. return (options == null ? void 0 : options.replace) ? router.replace(to) : router.push(to);
  324. };
  325. function resolveRouteObject(to) {
  326. return withQuery(to.path || "", to.query || {}) + (to.hash || "");
  327. }
  328. function encodeURL(location2, isExternalHost = false) {
  329. const url = new URL(location2, "http://localhost");
  330. if (!isExternalHost) {
  331. return url.pathname + url.search + url.hash;
  332. }
  333. if (location2.startsWith("//")) {
  334. return url.toString().replace(url.protocol, "");
  335. }
  336. return url.toString();
  337. }
  338. const NUXT_ERROR_SIGNATURE = "__nuxt_error";
  339. const useError = () => toRef(useNuxtApp().payload, "error");
  340. const showError = (error) => {
  341. const nuxtError = createError(error);
  342. try {
  343. const nuxtApp = useNuxtApp();
  344. const error2 = useError();
  345. if (false) ;
  346. error2.value = error2.value || nuxtError;
  347. } catch {
  348. throw nuxtError;
  349. }
  350. return nuxtError;
  351. };
  352. const isNuxtError = (error) => !!error && typeof error === "object" && NUXT_ERROR_SIGNATURE in error;
  353. const createError = (error) => {
  354. const nuxtError = createError$1(error);
  355. Object.defineProperty(nuxtError, NUXT_ERROR_SIGNATURE, {
  356. value: true,
  357. configurable: false,
  358. writable: false
  359. });
  360. return nuxtError;
  361. };
  362. version[0] === "3";
  363. function resolveUnref(r) {
  364. return typeof r === "function" ? r() : unref(r);
  365. }
  366. function resolveUnrefHeadInput(ref2) {
  367. if (ref2 instanceof Promise || ref2 instanceof Date || ref2 instanceof RegExp)
  368. return ref2;
  369. const root = resolveUnref(ref2);
  370. if (!ref2 || !root)
  371. return root;
  372. if (Array.isArray(root))
  373. return root.map((r) => resolveUnrefHeadInput(r));
  374. if (typeof root === "object") {
  375. const resolved = {};
  376. for (const k in root) {
  377. if (!Object.prototype.hasOwnProperty.call(root, k)) {
  378. continue;
  379. }
  380. if (k === "titleTemplate" || k[0] === "o" && k[1] === "n") {
  381. resolved[k] = unref(root[k]);
  382. continue;
  383. }
  384. resolved[k] = resolveUnrefHeadInput(root[k]);
  385. }
  386. return resolved;
  387. }
  388. return root;
  389. }
  390. defineHeadPlugin({
  391. hooks: {
  392. "entries:resolve": (ctx) => {
  393. for (const entry2 of ctx.entries)
  394. entry2.resolvedInput = resolveUnrefHeadInput(entry2.input);
  395. }
  396. }
  397. });
  398. const headSymbol = "usehead";
  399. const _global = typeof globalThis !== "undefined" ? globalThis : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {};
  400. const globalKey$1 = "__unhead_injection_handler__";
  401. function setHeadInjectionHandler(handler) {
  402. _global[globalKey$1] = handler;
  403. }
  404. function injectHead() {
  405. if (globalKey$1 in _global) {
  406. return _global[globalKey$1]();
  407. }
  408. const head = inject(headSymbol);
  409. if (!head && process.env.NODE_ENV !== "production")
  410. console.warn("Unhead is missing Vue context, falling back to shared context. This may have unexpected results.");
  411. return head || getActiveHead();
  412. }
  413. [CapoPlugin({ track: true })];
  414. const unhead_KgADcZ0jPj = /* @__PURE__ */ defineNuxtPlugin({
  415. name: "nuxt:head",
  416. enforce: "pre",
  417. setup(nuxtApp) {
  418. const head = nuxtApp.ssrContext.head;
  419. setHeadInjectionHandler(
  420. // need a fresh instance of the nuxt app to avoid parallel requests interfering with each other
  421. () => useNuxtApp().vueApp._context.provides.usehead
  422. );
  423. nuxtApp.vueApp.use(head);
  424. }
  425. });
  426. function createContext(opts = {}) {
  427. let currentInstance;
  428. let isSingleton = false;
  429. const checkConflict = (instance) => {
  430. if (currentInstance && currentInstance !== instance) {
  431. throw new Error("Context conflict");
  432. }
  433. };
  434. let als;
  435. if (opts.asyncContext) {
  436. const _AsyncLocalStorage = opts.AsyncLocalStorage || globalThis.AsyncLocalStorage;
  437. if (_AsyncLocalStorage) {
  438. als = new _AsyncLocalStorage();
  439. } else {
  440. console.warn("[unctx] `AsyncLocalStorage` is not provided.");
  441. }
  442. }
  443. const _getCurrentInstance = () => {
  444. if (als) {
  445. const instance = als.getStore();
  446. if (instance !== void 0) {
  447. return instance;
  448. }
  449. }
  450. return currentInstance;
  451. };
  452. return {
  453. use: () => {
  454. const _instance = _getCurrentInstance();
  455. if (_instance === void 0) {
  456. throw new Error("Context is not available");
  457. }
  458. return _instance;
  459. },
  460. tryUse: () => {
  461. return _getCurrentInstance();
  462. },
  463. set: (instance, replace) => {
  464. if (!replace) {
  465. checkConflict(instance);
  466. }
  467. currentInstance = instance;
  468. isSingleton = true;
  469. },
  470. unset: () => {
  471. currentInstance = void 0;
  472. isSingleton = false;
  473. },
  474. call: (instance, callback) => {
  475. checkConflict(instance);
  476. currentInstance = instance;
  477. try {
  478. return als ? als.run(instance, callback) : callback();
  479. } finally {
  480. if (!isSingleton) {
  481. currentInstance = void 0;
  482. }
  483. }
  484. },
  485. async callAsync(instance, callback) {
  486. currentInstance = instance;
  487. const onRestore = () => {
  488. currentInstance = instance;
  489. };
  490. const onLeave = () => currentInstance === instance ? onRestore : void 0;
  491. asyncHandlers.add(onLeave);
  492. try {
  493. const r = als ? als.run(instance, callback) : callback();
  494. if (!isSingleton) {
  495. currentInstance = void 0;
  496. }
  497. return await r;
  498. } finally {
  499. asyncHandlers.delete(onLeave);
  500. }
  501. }
  502. };
  503. }
  504. function createNamespace(defaultOpts = {}) {
  505. const contexts = {};
  506. return {
  507. get(key, opts = {}) {
  508. if (!contexts[key]) {
  509. contexts[key] = createContext({ ...defaultOpts, ...opts });
  510. }
  511. return contexts[key];
  512. }
  513. };
  514. }
  515. const _globalThis = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : typeof global !== "undefined" ? global : {};
  516. const globalKey = "__unctx__";
  517. _globalThis[globalKey] || (_globalThis[globalKey] = createNamespace());
  518. const asyncHandlersKey = "__unctx_async_handlers__";
  519. const asyncHandlers = _globalThis[asyncHandlersKey] || (_globalThis[asyncHandlersKey] = /* @__PURE__ */ new Set());
  520. function executeAsync(function_) {
  521. const restores = [];
  522. for (const leaveHandler of asyncHandlers) {
  523. const restore2 = leaveHandler();
  524. if (restore2) {
  525. restores.push(restore2);
  526. }
  527. }
  528. const restore = () => {
  529. for (const restore2 of restores) {
  530. restore2();
  531. }
  532. };
  533. let awaitable = function_();
  534. if (awaitable && typeof awaitable === "object" && "catch" in awaitable) {
  535. awaitable = awaitable.catch((error) => {
  536. restore();
  537. throw error;
  538. });
  539. }
  540. return [awaitable, restore];
  541. }
  542. const ROUTE_KEY_PARENTHESES_RE$1 = /(:\w+)\([^)]+\)/g;
  543. const ROUTE_KEY_SYMBOLS_RE$1 = /(:\w+)[?+*]/g;
  544. const ROUTE_KEY_NORMAL_RE$1 = /:\w+/g;
  545. const interpolatePath = (route, match) => {
  546. return match.path.replace(ROUTE_KEY_PARENTHESES_RE$1, "$1").replace(ROUTE_KEY_SYMBOLS_RE$1, "$1").replace(ROUTE_KEY_NORMAL_RE$1, (r) => {
  547. var _a;
  548. return ((_a = route.params[r.slice(1)]) == null ? void 0 : _a.toString()) || "";
  549. });
  550. };
  551. const generateRouteKey$1 = (routeProps, override) => {
  552. const matchedRoute = routeProps.route.matched.find((m) => {
  553. var _a;
  554. return ((_a = m.components) == null ? void 0 : _a.default) === routeProps.Component.type;
  555. });
  556. const source = override ?? (matchedRoute == null ? void 0 : matchedRoute.meta.key) ?? (matchedRoute && interpolatePath(routeProps.route, matchedRoute));
  557. return typeof source === "function" ? source(routeProps.route) : source;
  558. };
  559. const wrapInKeepAlive = (props, children) => {
  560. return { default: () => children };
  561. };
  562. function toArray$1(value) {
  563. return Array.isArray(value) ? value : [value];
  564. }
  565. async function getRouteRules(arg) {
  566. const path = typeof arg === "string" ? arg : arg.path;
  567. {
  568. useNuxtApp().ssrContext._preloadManifest = true;
  569. const _routeRulesMatcher = toRouteMatcher(
  570. createRouter({ routes: (/* @__PURE__ */ useRuntimeConfig()).nitro.routeRules })
  571. );
  572. return defu({}, ..._routeRulesMatcher.matchAll(path).reverse());
  573. }
  574. }
  575. const __nuxt_page_meta$2 = {
  576. middleware: "auth"
  577. };
  578. const __nuxt_page_meta$1 = {
  579. middleware: "auth"
  580. };
  581. const __nuxt_page_meta = {
  582. middleware: "auth"
  583. };
  584. function handleHotUpdate(_router, _generateRoutes) {
  585. }
  586. const _routes = [
  587. {
  588. name: "advertising-adDetail",
  589. path: "/advertising/adDetail",
  590. component: () => import("./_nuxt/adDetail-JAkO5aWw.js")
  591. },
  592. {
  593. name: "advertising",
  594. path: "/advertising",
  595. component: () => import("./_nuxt/index-zzcnYU8i.js")
  596. },
  597. {
  598. name: "index",
  599. path: "/",
  600. component: () => import("./_nuxt/index-DkfcpJ6T.js")
  601. },
  602. {
  603. name: "login",
  604. path: "/login",
  605. component: () => import("./_nuxt/login-CBBpr7Ja.js")
  606. },
  607. {
  608. name: "newsDetail-id",
  609. path: "/newsDetail/:id()",
  610. component: () => import("./_nuxt/_id_-DwABV6sy.js")
  611. },
  612. {
  613. name: "newsList-id",
  614. path: "/newsList/:id()",
  615. meta: __nuxt_page_meta$2,
  616. component: () => import("./_nuxt/_id_-B4Tiqctw.js")
  617. },
  618. {
  619. name: "primaryNavigation-id",
  620. path: "/primaryNavigation/:id()",
  621. component: () => import("./_nuxt/_id_-CrdTwoDk.js")
  622. },
  623. {
  624. name: "register",
  625. path: "/register",
  626. component: () => import("./_nuxt/register-DR18Dcar.js")
  627. },
  628. {
  629. name: "search-search",
  630. path: "/search/search",
  631. meta: __nuxt_page_meta$1,
  632. component: () => import("./_nuxt/search-BKxW2ZpF.js")
  633. },
  634. {
  635. name: "speciaArticle-id",
  636. path: "/speciaArticle/:id()",
  637. component: () => import("./_nuxt/_id_-B78qypTK.js")
  638. },
  639. {
  640. name: "specialList-id",
  641. path: "/specialList/:id()",
  642. meta: __nuxt_page_meta,
  643. component: () => import("./_nuxt/_id_-BcFjZrab.js")
  644. },
  645. {
  646. name: "topic-id",
  647. path: "/topic/:id()",
  648. component: () => import("./_nuxt/_id_-DjOYAtbM.js")
  649. },
  650. {
  651. name: "topic",
  652. path: "/topic",
  653. component: () => import("./_nuxt/index-CLGwzU5C.js")
  654. },
  655. {
  656. name: "user-about",
  657. path: "/user/about",
  658. component: () => import("./_nuxt/about-BngT2DDj.js")
  659. }
  660. ];
  661. const _wrapIf = (component, props, slots) => {
  662. props = props === true ? {} : props;
  663. return { default: () => {
  664. var _a;
  665. return props ? h(component, props, slots) : (_a = slots.default) == null ? void 0 : _a.call(slots);
  666. } };
  667. };
  668. const ROUTE_KEY_PARENTHESES_RE = /(:\w+)\([^)]+\)/g;
  669. const ROUTE_KEY_SYMBOLS_RE = /(:\w+)[?+*]/g;
  670. const ROUTE_KEY_NORMAL_RE = /:\w+/g;
  671. function generateRouteKey(route) {
  672. const source = (route == null ? void 0 : route.meta.key) ?? route.path.replace(ROUTE_KEY_PARENTHESES_RE, "$1").replace(ROUTE_KEY_SYMBOLS_RE, "$1").replace(ROUTE_KEY_NORMAL_RE, (r) => {
  673. var _a;
  674. return ((_a = route.params[r.slice(1)]) == null ? void 0 : _a.toString()) || "";
  675. });
  676. return typeof source === "function" ? source(route) : source;
  677. }
  678. function isChangingPage(to, from) {
  679. if (to === from || from === START_LOCATION) {
  680. return false;
  681. }
  682. if (generateRouteKey(to) !== generateRouteKey(from)) {
  683. return true;
  684. }
  685. const areComponentsSame = to.matched.every(
  686. (comp, index) => {
  687. var _a, _b;
  688. return comp.components && comp.components.default === ((_b = (_a = from.matched[index]) == null ? void 0 : _a.components) == null ? void 0 : _b.default);
  689. }
  690. );
  691. if (areComponentsSame) {
  692. return false;
  693. }
  694. return true;
  695. }
  696. const routerOptions0 = {
  697. scrollBehavior(to, from, savedPosition) {
  698. var _a;
  699. const nuxtApp = useNuxtApp();
  700. const behavior = ((_a = useRouter().options) == null ? void 0 : _a.scrollBehaviorType) ?? "auto";
  701. let position = savedPosition || void 0;
  702. const routeAllowsScrollToTop = typeof to.meta.scrollToTop === "function" ? to.meta.scrollToTop(to, from) : to.meta.scrollToTop;
  703. if (!position && from && to && routeAllowsScrollToTop !== false && isChangingPage(to, from)) {
  704. position = { left: 0, top: 0 };
  705. }
  706. if (to.path === from.path) {
  707. if (from.hash && !to.hash) {
  708. return { left: 0, top: 0 };
  709. }
  710. if (to.hash) {
  711. return { el: to.hash, top: _getHashElementScrollMarginTop(to.hash), behavior };
  712. }
  713. return false;
  714. }
  715. const hasTransition = (route) => !!(route.meta.pageTransition ?? appPageTransition);
  716. const hookToWait = hasTransition(from) && hasTransition(to) ? "page:transition:finish" : "page:finish";
  717. return new Promise((resolve) => {
  718. nuxtApp.hooks.hookOnce(hookToWait, async () => {
  719. await new Promise((resolve2) => setTimeout(resolve2, 0));
  720. if (to.hash) {
  721. position = { el: to.hash, top: _getHashElementScrollMarginTop(to.hash), behavior };
  722. }
  723. resolve(position);
  724. });
  725. });
  726. }
  727. };
  728. function _getHashElementScrollMarginTop(selector) {
  729. try {
  730. const elem = (void 0).querySelector(selector);
  731. if (elem) {
  732. return (Number.parseFloat(getComputedStyle(elem).scrollMarginTop) || 0) + (Number.parseFloat(getComputedStyle((void 0).documentElement).scrollPaddingTop) || 0);
  733. }
  734. } catch {
  735. }
  736. return 0;
  737. }
  738. const configRouterOptions = {
  739. hashMode: false,
  740. scrollBehaviorType: "auto"
  741. };
  742. const hashMode = false;
  743. const routerOptions = {
  744. ...configRouterOptions,
  745. ...routerOptions0
  746. };
  747. const validate = /* @__PURE__ */ defineNuxtRouteMiddleware(async (to) => {
  748. var _a;
  749. let __temp, __restore;
  750. if (!((_a = to.meta) == null ? void 0 : _a.validate)) {
  751. return;
  752. }
  753. const nuxtApp = useNuxtApp();
  754. const router = useRouter();
  755. const result = ([__temp, __restore] = executeAsync(() => Promise.resolve(to.meta.validate(to))), __temp = await __temp, __restore(), __temp);
  756. if (result === true) {
  757. return;
  758. }
  759. const error = createError({
  760. statusCode: result && result.statusCode || 404,
  761. statusMessage: result && result.statusMessage || `Page Not Found: ${to.fullPath}`,
  762. data: {
  763. path: to.fullPath
  764. }
  765. });
  766. const unsub = router.beforeResolve((final) => {
  767. unsub();
  768. if (final === to) {
  769. const unsub2 = router.afterEach(async () => {
  770. unsub2();
  771. await nuxtApp.runWithContext(() => showError(error));
  772. });
  773. return false;
  774. }
  775. });
  776. });
  777. const manifest_45route_45rule = /* @__PURE__ */ defineNuxtRouteMiddleware(async (to) => {
  778. {
  779. return;
  780. }
  781. });
  782. const globalMiddleware = [
  783. validate,
  784. manifest_45route_45rule
  785. ];
  786. const namedMiddleware = {
  787. auth: () => import("./_nuxt/auth-DRRsgHvx.js")
  788. };
  789. const plugin = /* @__PURE__ */ defineNuxtPlugin({
  790. name: "nuxt:router",
  791. enforce: "pre",
  792. async setup(nuxtApp) {
  793. var _a, _b, _c;
  794. let __temp, __restore;
  795. let routerBase = (/* @__PURE__ */ useRuntimeConfig()).app.baseURL;
  796. const history = ((_a = routerOptions.history) == null ? void 0 : _a.call(routerOptions, routerBase)) ?? createMemoryHistory(routerBase);
  797. const routes2 = routerOptions.routes ? ([__temp, __restore] = executeAsync(() => routerOptions.routes(_routes)), __temp = await __temp, __restore(), __temp) ?? _routes : _routes;
  798. let startPosition;
  799. const router = createRouter$1({
  800. ...routerOptions,
  801. scrollBehavior: (to, from, savedPosition) => {
  802. if (from === START_LOCATION) {
  803. startPosition = savedPosition;
  804. return;
  805. }
  806. if (routerOptions.scrollBehavior) {
  807. router.options.scrollBehavior = routerOptions.scrollBehavior;
  808. if ("scrollRestoration" in (void 0).history) {
  809. const unsub = router.beforeEach(() => {
  810. unsub();
  811. (void 0).history.scrollRestoration = "manual";
  812. });
  813. }
  814. return routerOptions.scrollBehavior(to, START_LOCATION, startPosition || savedPosition);
  815. }
  816. },
  817. history,
  818. routes: routes2
  819. });
  820. handleHotUpdate(router, routerOptions.routes ? routerOptions.routes : (routes22) => routes22);
  821. nuxtApp.vueApp.use(router);
  822. const previousRoute = shallowRef(router.currentRoute.value);
  823. router.afterEach((_to, from) => {
  824. previousRoute.value = from;
  825. });
  826. Object.defineProperty(nuxtApp.vueApp.config.globalProperties, "previousRoute", {
  827. get: () => previousRoute.value
  828. });
  829. const initialURL = nuxtApp.ssrContext.url;
  830. const _route = shallowRef(router.currentRoute.value);
  831. const syncCurrentRoute = () => {
  832. _route.value = router.currentRoute.value;
  833. };
  834. nuxtApp.hook("page:finish", syncCurrentRoute);
  835. router.afterEach((to, from) => {
  836. var _a2, _b2, _c2, _d;
  837. if (((_b2 = (_a2 = to.matched[0]) == null ? void 0 : _a2.components) == null ? void 0 : _b2.default) === ((_d = (_c2 = from.matched[0]) == null ? void 0 : _c2.components) == null ? void 0 : _d.default)) {
  838. syncCurrentRoute();
  839. }
  840. });
  841. const route = {};
  842. for (const key in _route.value) {
  843. Object.defineProperty(route, key, {
  844. get: () => _route.value[key],
  845. enumerable: true
  846. });
  847. }
  848. nuxtApp._route = shallowReactive(route);
  849. nuxtApp._middleware = nuxtApp._middleware || {
  850. global: [],
  851. named: {}
  852. };
  853. useError();
  854. if (!((_b = nuxtApp.ssrContext) == null ? void 0 : _b.islandContext)) {
  855. router.afterEach(async (to, _from, failure) => {
  856. delete nuxtApp._processingMiddleware;
  857. if (failure) {
  858. await nuxtApp.callHook("page:loading:end");
  859. }
  860. if ((failure == null ? void 0 : failure.type) === 4) {
  861. return;
  862. }
  863. if (to.redirectedFrom && to.fullPath !== initialURL) {
  864. await nuxtApp.runWithContext(() => navigateTo(to.fullPath || "/"));
  865. }
  866. });
  867. }
  868. try {
  869. if (true) {
  870. ;
  871. [__temp, __restore] = executeAsync(() => router.push(initialURL)), await __temp, __restore();
  872. ;
  873. }
  874. ;
  875. [__temp, __restore] = executeAsync(() => router.isReady()), await __temp, __restore();
  876. ;
  877. } catch (error2) {
  878. [__temp, __restore] = executeAsync(() => nuxtApp.runWithContext(() => showError(error2))), await __temp, __restore();
  879. }
  880. const resolvedInitialRoute = router.currentRoute.value;
  881. syncCurrentRoute();
  882. if ((_c = nuxtApp.ssrContext) == null ? void 0 : _c.islandContext) {
  883. return { provide: { router } };
  884. }
  885. const initialLayout = nuxtApp.payload.state._layout;
  886. router.beforeEach(async (to, from) => {
  887. var _a2, _b2;
  888. await nuxtApp.callHook("page:loading:start");
  889. to.meta = reactive(to.meta);
  890. if (nuxtApp.isHydrating && initialLayout && !isReadonly(to.meta.layout)) {
  891. to.meta.layout = initialLayout;
  892. }
  893. nuxtApp._processingMiddleware = true;
  894. if (!((_a2 = nuxtApp.ssrContext) == null ? void 0 : _a2.islandContext)) {
  895. const middlewareEntries = /* @__PURE__ */ new Set([...globalMiddleware, ...nuxtApp._middleware.global]);
  896. for (const component of to.matched) {
  897. const componentMiddleware = component.meta.middleware;
  898. if (!componentMiddleware) {
  899. continue;
  900. }
  901. for (const entry2 of toArray$1(componentMiddleware)) {
  902. middlewareEntries.add(entry2);
  903. }
  904. }
  905. {
  906. const routeRules = await nuxtApp.runWithContext(() => getRouteRules({ path: to.path }));
  907. if (routeRules.appMiddleware) {
  908. for (const key in routeRules.appMiddleware) {
  909. if (routeRules.appMiddleware[key]) {
  910. middlewareEntries.add(key);
  911. } else {
  912. middlewareEntries.delete(key);
  913. }
  914. }
  915. }
  916. }
  917. for (const entry2 of middlewareEntries) {
  918. const middleware = typeof entry2 === "string" ? nuxtApp._middleware.named[entry2] || await ((_b2 = namedMiddleware[entry2]) == null ? void 0 : _b2.call(namedMiddleware).then((r) => r.default || r)) : entry2;
  919. if (!middleware) {
  920. throw new Error(`Unknown route middleware: '${entry2}'.`);
  921. }
  922. const result = await nuxtApp.runWithContext(() => middleware(to, from));
  923. {
  924. if (result === false || result instanceof Error) {
  925. const error2 = result || createError$1({
  926. statusCode: 404,
  927. statusMessage: `Page Not Found: ${initialURL}`
  928. });
  929. await nuxtApp.runWithContext(() => showError(error2));
  930. return false;
  931. }
  932. }
  933. if (result === true) {
  934. continue;
  935. }
  936. if (result || result === false) {
  937. return result;
  938. }
  939. }
  940. }
  941. });
  942. router.onError(async () => {
  943. delete nuxtApp._processingMiddleware;
  944. await nuxtApp.callHook("page:loading:end");
  945. });
  946. router.afterEach(async (to, _from) => {
  947. if (to.matched.length === 0) {
  948. await nuxtApp.runWithContext(() => showError(createError$1({
  949. statusCode: 404,
  950. fatal: false,
  951. statusMessage: `Page not found: ${to.fullPath}`,
  952. data: {
  953. path: to.fullPath
  954. }
  955. })));
  956. }
  957. });
  958. nuxtApp.hooks.hookOnce("app:created", async () => {
  959. try {
  960. if ("name" in resolvedInitialRoute) {
  961. resolvedInitialRoute.name = void 0;
  962. }
  963. await router.replace({
  964. ...resolvedInitialRoute,
  965. force: true
  966. });
  967. router.options.scrollBehavior = routerOptions.scrollBehavior;
  968. } catch (error2) {
  969. await nuxtApp.runWithContext(() => showError(error2));
  970. }
  971. });
  972. return { provide: { router } };
  973. }
  974. });
  975. function definePayloadReducer(name, reduce) {
  976. {
  977. useNuxtApp().ssrContext._payloadReducers[name] = reduce;
  978. }
  979. }
  980. const reducers = [
  981. ["NuxtError", (data) => isNuxtError(data) && data.toJSON()],
  982. ["EmptyShallowRef", (data) => isRef(data) && isShallow(data) && !data.value && (typeof data.value === "bigint" ? "0n" : JSON.stringify(data.value) || "_")],
  983. ["EmptyRef", (data) => isRef(data) && !data.value && (typeof data.value === "bigint" ? "0n" : JSON.stringify(data.value) || "_")],
  984. ["ShallowRef", (data) => isRef(data) && isShallow(data) && data.value],
  985. ["ShallowReactive", (data) => isReactive(data) && isShallow(data) && toRaw(data)],
  986. ["Ref", (data) => isRef(data) && data.value],
  987. ["Reactive", (data) => isReactive(data) && toRaw(data)]
  988. ];
  989. const revive_payload_server_eJ33V7gbc6 = /* @__PURE__ */ defineNuxtPlugin({
  990. name: "nuxt:revive-payload:server",
  991. setup() {
  992. for (const [reducer, fn] of reducers) {
  993. definePayloadReducer(reducer, fn);
  994. }
  995. }
  996. });
  997. const components_plugin_KR1HBZs4kY = /* @__PURE__ */ defineNuxtPlugin({
  998. name: "nuxt:global-components"
  999. });
  1000. const element_plus_elM4AXquKi = /* @__PURE__ */ defineNuxtPlugin(() => {
  1001. });
  1002. const pinia_Uphuq97G1L = /* @__PURE__ */ defineNuxtPlugin((nuxtApp) => {
  1003. const pinia = createPinia();
  1004. nuxtApp.vueApp.use(pinia);
  1005. return {
  1006. provide: {
  1007. pinia
  1008. }
  1009. };
  1010. });
  1011. function toArray(value) {
  1012. return Array.isArray(value) ? value : [value];
  1013. }
  1014. function useRequestEvent(nuxtApp = useNuxtApp()) {
  1015. var _a;
  1016. return (_a = nuxtApp.ssrContext) == null ? void 0 : _a.event;
  1017. }
  1018. function prerenderRoutes(path) {
  1019. if (!import.meta.prerender) {
  1020. return;
  1021. }
  1022. const paths = toArray(path);
  1023. appendHeader(useRequestEvent(), "x-nitro-prerender", paths.map((p) => encodeURIComponent(p)).join(", "));
  1024. }
  1025. let routes;
  1026. const prerender_server_LXx1wM9sKF = /* @__PURE__ */ defineNuxtPlugin(async () => {
  1027. let __temp, __restore;
  1028. if (!import.meta.prerender || hashMode) {
  1029. return;
  1030. }
  1031. if (routes && !routes.length) {
  1032. return;
  1033. }
  1034. (/* @__PURE__ */ useRuntimeConfig()).nitro.routeRules;
  1035. routes || (routes = Array.from(processRoutes(([__temp, __restore] = executeAsync(() => {
  1036. var _a;
  1037. return (_a = routerOptions.routes) == null ? void 0 : _a.call(routerOptions, _routes);
  1038. }), __temp = await __temp, __restore(), __temp) ?? _routes)));
  1039. const batch = routes.splice(0, 10);
  1040. prerenderRoutes(batch);
  1041. });
  1042. const OPTIONAL_PARAM_RE = /^\/?:.*(?:\?|\(\.\*\)\*)$/;
  1043. function shouldPrerender(path) {
  1044. return true;
  1045. }
  1046. function processRoutes(routes2, currentPath = "/", routesToPrerender = /* @__PURE__ */ new Set()) {
  1047. var _a;
  1048. for (const route of routes2) {
  1049. if (OPTIONAL_PARAM_RE.test(route.path) && !((_a = route.children) == null ? void 0 : _a.length) && shouldPrerender()) {
  1050. routesToPrerender.add(currentPath);
  1051. }
  1052. if (route.path.includes(":")) {
  1053. continue;
  1054. }
  1055. const fullPath = joinURL(currentPath, route.path);
  1056. {
  1057. routesToPrerender.add(fullPath);
  1058. }
  1059. if (route.children) {
  1060. processRoutes(route.children, fullPath, routesToPrerender);
  1061. }
  1062. }
  1063. return routesToPrerender;
  1064. }
  1065. const plugins = [
  1066. unhead_KgADcZ0jPj,
  1067. plugin,
  1068. revive_payload_server_eJ33V7gbc6,
  1069. components_plugin_KR1HBZs4kY,
  1070. element_plus_elM4AXquKi,
  1071. pinia_Uphuq97G1L,
  1072. prerender_server_LXx1wM9sKF
  1073. ];
  1074. const layouts = {};
  1075. const LayoutLoader = defineComponent({
  1076. name: "LayoutLoader",
  1077. inheritAttrs: false,
  1078. props: {
  1079. name: String,
  1080. layoutProps: Object
  1081. },
  1082. setup(props, context) {
  1083. return () => h(layouts[props.name], props.layoutProps, context.slots);
  1084. }
  1085. });
  1086. const __nuxt_component_0 = defineComponent({
  1087. name: "NuxtLayout",
  1088. inheritAttrs: false,
  1089. props: {
  1090. name: {
  1091. type: [String, Boolean, Object],
  1092. default: null
  1093. },
  1094. fallback: {
  1095. type: [String, Object],
  1096. default: null
  1097. }
  1098. },
  1099. setup(props, context) {
  1100. const nuxtApp = useNuxtApp();
  1101. const injectedRoute = inject(PageRouteSymbol);
  1102. const route = injectedRoute === useRoute() ? useRoute$1() : injectedRoute;
  1103. const layout = computed(() => {
  1104. let layout2 = unref(props.name) ?? route.meta.layout ?? "default";
  1105. if (layout2 && !(layout2 in layouts)) {
  1106. if (props.fallback) {
  1107. layout2 = unref(props.fallback);
  1108. }
  1109. }
  1110. return layout2;
  1111. });
  1112. const layoutRef = ref();
  1113. context.expose({ layoutRef });
  1114. const done = nuxtApp.deferHydration();
  1115. return () => {
  1116. const hasLayout = layout.value && layout.value in layouts;
  1117. const transitionProps = route.meta.layoutTransition ?? appLayoutTransition;
  1118. return _wrapIf(Transition, hasLayout && transitionProps, {
  1119. default: () => h(Suspense, { suspensible: true, onResolve: () => {
  1120. nextTick(done);
  1121. } }, {
  1122. default: () => h(
  1123. LayoutProvider,
  1124. {
  1125. layoutProps: mergeProps(context.attrs, { ref: layoutRef }),
  1126. key: layout.value || void 0,
  1127. name: layout.value,
  1128. shouldProvide: !props.name,
  1129. hasTransition: !!transitionProps
  1130. },
  1131. context.slots
  1132. )
  1133. })
  1134. }).default();
  1135. };
  1136. }
  1137. });
  1138. const LayoutProvider = defineComponent({
  1139. name: "NuxtLayoutProvider",
  1140. inheritAttrs: false,
  1141. props: {
  1142. name: {
  1143. type: [String, Boolean]
  1144. },
  1145. layoutProps: {
  1146. type: Object
  1147. },
  1148. hasTransition: {
  1149. type: Boolean
  1150. },
  1151. shouldProvide: {
  1152. type: Boolean
  1153. }
  1154. },
  1155. setup(props, context) {
  1156. const name = props.name;
  1157. if (props.shouldProvide) {
  1158. provide(LayoutMetaSymbol, {
  1159. isCurrent: (route) => name === (route.meta.layout ?? "default")
  1160. });
  1161. }
  1162. return () => {
  1163. var _a, _b;
  1164. if (!name || typeof name === "string" && !(name in layouts)) {
  1165. return (_b = (_a = context.slots).default) == null ? void 0 : _b.call(_a);
  1166. }
  1167. return h(
  1168. LayoutLoader,
  1169. { key: name, layoutProps: props.layoutProps, name },
  1170. context.slots
  1171. );
  1172. };
  1173. }
  1174. });
  1175. const RouteProvider = defineComponent({
  1176. props: {
  1177. vnode: {
  1178. type: Object,
  1179. required: true
  1180. },
  1181. route: {
  1182. type: Object,
  1183. required: true
  1184. },
  1185. vnodeRef: Object,
  1186. renderKey: String,
  1187. trackRootNodes: Boolean
  1188. },
  1189. setup(props) {
  1190. const previousKey = props.renderKey;
  1191. const previousRoute = props.route;
  1192. const route = {};
  1193. for (const key in props.route) {
  1194. Object.defineProperty(route, key, {
  1195. get: () => previousKey === props.renderKey ? props.route[key] : previousRoute[key],
  1196. enumerable: true
  1197. });
  1198. }
  1199. provide(PageRouteSymbol, shallowReactive(route));
  1200. return () => {
  1201. return h(props.vnode, { ref: props.vnodeRef });
  1202. };
  1203. }
  1204. });
  1205. const __nuxt_component_1 = defineComponent({
  1206. name: "NuxtPage",
  1207. inheritAttrs: false,
  1208. props: {
  1209. name: {
  1210. type: String
  1211. },
  1212. transition: {
  1213. type: [Boolean, Object],
  1214. default: void 0
  1215. },
  1216. keepalive: {
  1217. type: [Boolean, Object],
  1218. default: void 0
  1219. },
  1220. route: {
  1221. type: Object
  1222. },
  1223. pageKey: {
  1224. type: [Function, String],
  1225. default: null
  1226. }
  1227. },
  1228. setup(props, { attrs, slots, expose }) {
  1229. const nuxtApp = useNuxtApp();
  1230. const pageRef = ref();
  1231. const forkRoute = inject(PageRouteSymbol, null);
  1232. let previousPageKey;
  1233. expose({ pageRef });
  1234. inject(LayoutMetaSymbol, null);
  1235. let vnode;
  1236. const done = nuxtApp.deferHydration();
  1237. if (props.pageKey) {
  1238. watch(() => props.pageKey, (next, prev) => {
  1239. if (next !== prev) {
  1240. nuxtApp.callHook("page:loading:start");
  1241. }
  1242. });
  1243. }
  1244. let pageLoadingEndHookAlreadyCalled = false;
  1245. return () => {
  1246. return h(RouterView, { name: props.name, route: props.route, ...attrs }, {
  1247. default: (routeProps) => {
  1248. if (!routeProps.Component) {
  1249. done();
  1250. return;
  1251. }
  1252. const key = generateRouteKey$1(routeProps, props.pageKey);
  1253. if (!nuxtApp.isHydrating && !hasChildrenRoutes(forkRoute, routeProps.route, routeProps.Component) && previousPageKey === key) {
  1254. nuxtApp.callHook("page:loading:end");
  1255. pageLoadingEndHookAlreadyCalled = true;
  1256. }
  1257. previousPageKey = key;
  1258. const hasTransition = !!(props.transition ?? routeProps.route.meta.pageTransition ?? appPageTransition);
  1259. const transitionProps = hasTransition && _mergeTransitionProps([
  1260. props.transition,
  1261. routeProps.route.meta.pageTransition,
  1262. appPageTransition,
  1263. { onAfterLeave: () => {
  1264. nuxtApp.callHook("page:transition:finish", routeProps.Component);
  1265. } }
  1266. ].filter(Boolean));
  1267. const keepaliveConfig = props.keepalive ?? routeProps.route.meta.keepalive ?? appKeepalive;
  1268. vnode = _wrapIf(
  1269. Transition,
  1270. hasTransition && transitionProps,
  1271. wrapInKeepAlive(
  1272. keepaliveConfig,
  1273. h(Suspense, {
  1274. suspensible: true,
  1275. onPending: () => nuxtApp.callHook("page:start", routeProps.Component),
  1276. onResolve: () => {
  1277. nextTick(() => nuxtApp.callHook("page:finish", routeProps.Component).then(() => {
  1278. if (!pageLoadingEndHookAlreadyCalled) {
  1279. return nuxtApp.callHook("page:loading:end");
  1280. }
  1281. pageLoadingEndHookAlreadyCalled = false;
  1282. }).finally(done));
  1283. }
  1284. }, {
  1285. default: () => {
  1286. const providerVNode = h(RouteProvider, {
  1287. key: key || void 0,
  1288. vnode: slots.default ? h(Fragment, void 0, slots.default(routeProps)) : routeProps.Component,
  1289. route: routeProps.route,
  1290. renderKey: key || void 0,
  1291. trackRootNodes: hasTransition,
  1292. vnodeRef: pageRef
  1293. });
  1294. return providerVNode;
  1295. }
  1296. })
  1297. )
  1298. ).default();
  1299. return vnode;
  1300. }
  1301. });
  1302. };
  1303. }
  1304. });
  1305. function _mergeTransitionProps(routeProps) {
  1306. const _props = routeProps.map((prop) => ({
  1307. ...prop,
  1308. onAfterLeave: prop.onAfterLeave ? toArray$1(prop.onAfterLeave) : void 0
  1309. }));
  1310. return defu(..._props);
  1311. }
  1312. function hasChildrenRoutes(fork, newRoute, Component) {
  1313. if (!fork) {
  1314. return false;
  1315. }
  1316. const index = newRoute.matched.findIndex((m) => {
  1317. var _a;
  1318. return ((_a = m.components) == null ? void 0 : _a.default) === (Component == null ? void 0 : Component.type);
  1319. });
  1320. return index < newRoute.matched.length - 1;
  1321. }
  1322. const _imports_4 = "data:image/png;base64,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";
  1323. const _imports_5 = "data:image/png;base64,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";
  1324. const _export_sfc = (sfc, props) => {
  1325. const target = sfc.__vccOpts || sfc;
  1326. for (const [key, val] of props) {
  1327. target[key] = val;
  1328. }
  1329. return target;
  1330. };
  1331. const _sfc_main$2 = {
  1332. __name: "app",
  1333. __ssrInlineRender: true,
  1334. setup(__props) {
  1335. return (_ctx, _push, _parent, _attrs) => {
  1336. const _component_NuxtLayout = __nuxt_component_0;
  1337. const _component_NuxtPage = __nuxt_component_1;
  1338. _push(`<div${ssrRenderAttrs(mergeProps({ class: "sannong" }, _attrs))} data-v-82c887d8>`);
  1339. _push(ssrRenderComponent(_component_NuxtLayout, null, {
  1340. default: withCtx((_, _push2, _parent2, _scopeId) => {
  1341. if (_push2) {
  1342. _push2(ssrRenderComponent(_component_NuxtPage, null, null, _parent2, _scopeId));
  1343. _push2(`<ul class="kefu" data-v-82c887d8${_scopeId}><li data-v-82c887d8${_scopeId}>`);
  1344. _push2(ssrRenderComponent(unref(ElPopover), {
  1345. ref: "popover",
  1346. placement: "right",
  1347. width: 80,
  1348. trigger: "hover"
  1349. }, {
  1350. reference: withCtx((_2, _push3, _parent3, _scopeId2) => {
  1351. if (_push3) {
  1352. _push3(`<img${ssrRenderAttr("src", _imports_4)} alt="" data-v-82c887d8${_scopeId2}>`);
  1353. } else {
  1354. return [
  1355. createVNode("img", {
  1356. src: _imports_4,
  1357. alt: ""
  1358. })
  1359. ];
  1360. }
  1361. }),
  1362. default: withCtx((_2, _push3, _parent3, _scopeId2) => {
  1363. if (_push3) {
  1364. _push3(`<p data-v-82c887d8${_scopeId2}>联系QQ:</p><p data-v-82c887d8${_scopeId2}>2909421493</p><p data-v-82c887d8${_scopeId2}>213552413</p>`);
  1365. } else {
  1366. return [
  1367. createVNode("p", null, "联系QQ:"),
  1368. createVNode("p", null, "2909421493"),
  1369. createVNode("p", null, "213552413")
  1370. ];
  1371. }
  1372. }),
  1373. _: 1
  1374. }, _parent2, _scopeId));
  1375. _push2(`<h6 data-v-82c887d8${_scopeId}>QQ客服</h6></li><li data-v-82c887d8${_scopeId}>`);
  1376. _push2(ssrRenderComponent(unref(ElPopover), {
  1377. ref: "popover",
  1378. placement: "right",
  1379. width: 80,
  1380. trigger: "hover"
  1381. }, {
  1382. reference: withCtx((_2, _push3, _parent3, _scopeId2) => {
  1383. if (_push3) {
  1384. _push3(`<img${ssrRenderAttr("src", _imports_5)} alt="" data-v-82c887d8${_scopeId2}>`);
  1385. } else {
  1386. return [
  1387. createVNode("img", {
  1388. src: _imports_5,
  1389. alt: ""
  1390. })
  1391. ];
  1392. }
  1393. }),
  1394. default: withCtx((_2, _push3, _parent3, _scopeId2) => {
  1395. if (_push3) {
  1396. _push3(`<p data-v-82c887d8${_scopeId2}>联系电话:</p><p data-v-82c887d8${_scopeId2}>010-56019387</p>`);
  1397. } else {
  1398. return [
  1399. createVNode("p", null, "联系电话:"),
  1400. createVNode("p", null, "010-56019387")
  1401. ];
  1402. }
  1403. }),
  1404. _: 1
  1405. }, _parent2, _scopeId));
  1406. _push2(`<h6 data-v-82c887d8${_scopeId}>电话客服</h6></li></ul>`);
  1407. } else {
  1408. return [
  1409. createVNode(_component_NuxtPage),
  1410. createVNode("ul", { class: "kefu" }, [
  1411. createVNode("li", null, [
  1412. createVNode(unref(ElPopover), {
  1413. ref: "popover",
  1414. placement: "right",
  1415. width: 80,
  1416. trigger: "hover"
  1417. }, {
  1418. reference: withCtx(() => [
  1419. createVNode("img", {
  1420. src: _imports_4,
  1421. alt: ""
  1422. })
  1423. ]),
  1424. default: withCtx(() => [
  1425. createVNode("p", null, "联系QQ:"),
  1426. createVNode("p", null, "2909421493"),
  1427. createVNode("p", null, "213552413")
  1428. ]),
  1429. _: 1
  1430. }, 512),
  1431. createVNode("h6", null, "QQ客服")
  1432. ]),
  1433. createVNode("li", null, [
  1434. createVNode(unref(ElPopover), {
  1435. ref: "popover",
  1436. placement: "right",
  1437. width: 80,
  1438. trigger: "hover"
  1439. }, {
  1440. reference: withCtx(() => [
  1441. createVNode("img", {
  1442. src: _imports_5,
  1443. alt: ""
  1444. })
  1445. ]),
  1446. default: withCtx(() => [
  1447. createVNode("p", null, "联系电话:"),
  1448. createVNode("p", null, "010-56019387")
  1449. ]),
  1450. _: 1
  1451. }, 512),
  1452. createVNode("h6", null, "电话客服")
  1453. ])
  1454. ])
  1455. ];
  1456. }
  1457. }),
  1458. _: 1
  1459. }, _parent));
  1460. _push(`</div>`);
  1461. };
  1462. }
  1463. };
  1464. const _sfc_setup$2 = _sfc_main$2.setup;
  1465. _sfc_main$2.setup = (props, ctx) => {
  1466. const ssrContext = useSSRContext();
  1467. (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("app.vue");
  1468. return _sfc_setup$2 ? _sfc_setup$2(props, ctx) : void 0;
  1469. };
  1470. const AppComponent = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-82c887d8"]]);
  1471. const _sfc_main$1 = {
  1472. __name: "nuxt-error-page",
  1473. __ssrInlineRender: true,
  1474. props: {
  1475. error: Object
  1476. },
  1477. setup(__props) {
  1478. const props = __props;
  1479. const _error = props.error;
  1480. _error.stack ? _error.stack.split("\n").splice(1).map((line) => {
  1481. const text = line.replace("webpack:/", "").replace(".vue", ".js").trim();
  1482. return {
  1483. text,
  1484. internal: line.includes("node_modules") && !line.includes(".cache") || line.includes("internal") || line.includes("new Promise")
  1485. };
  1486. }).map((i) => `<span class="stack${i.internal ? " internal" : ""}">${i.text}</span>`).join("\n") : "";
  1487. const statusCode = Number(_error.statusCode || 500);
  1488. const is404 = statusCode === 404;
  1489. const statusMessage = _error.statusMessage ?? (is404 ? "Page Not Found" : "Internal Server Error");
  1490. const description = _error.message || _error.toString();
  1491. const stack = void 0;
  1492. const _Error404 = defineAsyncComponent(() => import("./_nuxt/error-404-BxLHD5OU.js"));
  1493. const _Error = defineAsyncComponent(() => import("./_nuxt/error-500-BgZPBPyl.js"));
  1494. const ErrorTemplate = is404 ? _Error404 : _Error;
  1495. return (_ctx, _push, _parent, _attrs) => {
  1496. _push(ssrRenderComponent(unref(ErrorTemplate), mergeProps({ statusCode: unref(statusCode), statusMessage: unref(statusMessage), description: unref(description), stack: unref(stack) }, _attrs), null, _parent));
  1497. };
  1498. }
  1499. };
  1500. const _sfc_setup$1 = _sfc_main$1.setup;
  1501. _sfc_main$1.setup = (props, ctx) => {
  1502. const ssrContext = useSSRContext();
  1503. (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("node_modules/nuxt/dist/app/components/nuxt-error-page.vue");
  1504. return _sfc_setup$1 ? _sfc_setup$1(props, ctx) : void 0;
  1505. };
  1506. const _sfc_main = {
  1507. __name: "nuxt-root",
  1508. __ssrInlineRender: true,
  1509. setup(__props) {
  1510. const IslandRenderer = () => null;
  1511. const nuxtApp = useNuxtApp();
  1512. nuxtApp.deferHydration();
  1513. nuxtApp.ssrContext.url;
  1514. const SingleRenderer = false;
  1515. provide(PageRouteSymbol, useRoute());
  1516. nuxtApp.hooks.callHookWith((hooks) => hooks.map((hook) => hook()), "vue:setup");
  1517. const error = useError();
  1518. const abortRender = error.value && !nuxtApp.ssrContext.error;
  1519. onErrorCaptured((err, target, info) => {
  1520. nuxtApp.hooks.callHook("vue:error", err, target, info).catch((hookError) => console.error("[nuxt] Error in `vue:error` hook", hookError));
  1521. {
  1522. const p = nuxtApp.runWithContext(() => showError(err));
  1523. onServerPrefetch(() => p);
  1524. return false;
  1525. }
  1526. });
  1527. const islandContext = nuxtApp.ssrContext.islandContext;
  1528. return (_ctx, _push, _parent, _attrs) => {
  1529. ssrRenderSuspense(_push, {
  1530. default: () => {
  1531. if (unref(abortRender)) {
  1532. _push(`<div></div>`);
  1533. } else if (unref(error)) {
  1534. _push(ssrRenderComponent(unref(_sfc_main$1), { error: unref(error) }, null, _parent));
  1535. } else if (unref(islandContext)) {
  1536. _push(ssrRenderComponent(unref(IslandRenderer), { context: unref(islandContext) }, null, _parent));
  1537. } else if (unref(SingleRenderer)) {
  1538. ssrRenderVNode(_push, createVNode(resolveDynamicComponent(unref(SingleRenderer)), null, null), _parent);
  1539. } else {
  1540. _push(ssrRenderComponent(unref(AppComponent), null, null, _parent));
  1541. }
  1542. },
  1543. _: 1
  1544. });
  1545. };
  1546. }
  1547. };
  1548. const _sfc_setup = _sfc_main.setup;
  1549. _sfc_main.setup = (props, ctx) => {
  1550. const ssrContext = useSSRContext();
  1551. (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("node_modules/nuxt/dist/app/components/nuxt-root.vue");
  1552. return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
  1553. };
  1554. let entry;
  1555. {
  1556. entry = async function createNuxtAppServer(ssrContext) {
  1557. const vueApp = createApp(_sfc_main);
  1558. const nuxt = createNuxtApp({ vueApp, ssrContext });
  1559. try {
  1560. await applyPlugins(nuxt, plugins);
  1561. await nuxt.hooks.callHook("app:created", vueApp);
  1562. } catch (error) {
  1563. await nuxt.hooks.callHook("app:error", error);
  1564. nuxt.payload.error = nuxt.payload.error || createError(error);
  1565. }
  1566. if (ssrContext == null ? void 0 : ssrContext._renderResponse) {
  1567. throw new Error("skipping render");
  1568. }
  1569. return vueApp;
  1570. };
  1571. }
  1572. const entry$1 = (ssrContext) => entry(ssrContext);
  1573. export {
  1574. _export_sfc as _,
  1575. navigateTo as a,
  1576. useNuxtApp as b,
  1577. useRuntimeConfig as c,
  1578. resolveUnrefHeadInput as d,
  1579. entry$1 as default,
  1580. useRoute as e,
  1581. injectHead as i,
  1582. nuxtLinkDefaults as n,
  1583. resolveRouteObject as r,
  1584. useRouter as u
  1585. };
  1586. //# sourceMappingURL=server.mjs.map