1636 lines
58 KiB
JavaScript
1636 lines
58 KiB
JavaScript
import { createApp, provide, onErrorCaptured, onServerPrefetch, unref, createVNode, resolveDynamicComponent, shallowReactive, reactive, effectScope, hasInjectionContext, getCurrentInstance, inject, defineAsyncComponent, mergeProps, getCurrentScope, toRef, defineComponent, ref, h, isVNode, createCommentVNode, shallowRef, isReadonly, Suspense, Fragment, useSSRContext, isRef, isShallow, isReactive, toRaw, watchEffect, toValue } from 'vue';
|
|
import { e as createError, $ as $fetch, B as joinURL, H as withQuery, I as sanitizeStatusCode, J as parseURL, K as decodePath, L as isScriptProtocol } from '../_/nitro.mjs';
|
|
import { b as baseURL } from '../routes/renderer.mjs';
|
|
import { RouterView, createMemoryHistory, createRouter, START_LOCATION } from 'vue-router';
|
|
import { ssrRenderSuspense, ssrRenderComponent, ssrRenderVNode, ssrRenderAttrs, ssrInterpolate } from 'vue/server-renderer';
|
|
|
|
//#region src/formatters/plain.ts
|
|
/**
|
|
* Renders a diagnostic into a multi-line, unicode-decorated string suitable
|
|
* for terminal output. The first line is `[<name>] <message>`; optional
|
|
* details (`fix`, `sources`, `docs`) follow with `├▶`/`╰▶` connectors.
|
|
*/
|
|
const captureStackTrace = Error.captureStackTrace;
|
|
var Diagnostic = class Diagnostic extends Error {
|
|
name;
|
|
/**
|
|
* The diagnostic code, e.g. `MATH_E001`.
|
|
* Also appears as the `name` property.
|
|
*/
|
|
code;
|
|
/**
|
|
* URL to extended documentation for this diagnostic code.
|
|
* Auto-generated from {@link DefineDiagnosticsOptions.docsBase}.
|
|
*/
|
|
docs;
|
|
/**
|
|
* Optional actionable instructions on how to resolve the problem.
|
|
*/
|
|
fix;
|
|
/**
|
|
* Locations in user code that contributed to this diagnostic, in
|
|
* `file:line:column` format. Relevant when the stack trace doesn't reflect
|
|
* the user's source (e.g. compilers, bundlers), otherwise redundant with the
|
|
* stack and should be omitted.
|
|
*/
|
|
sources;
|
|
/**
|
|
* Structured information associated with this diagnostic code.
|
|
*/
|
|
data;
|
|
/**
|
|
* Alias for {@link Error.message}: the reason this diagnostic was raised.
|
|
*/
|
|
get why() {
|
|
return this.message;
|
|
}
|
|
/**
|
|
* @param init structured initializer; `why` is required
|
|
* @param captureFrom V8 stack-cutoff frame. Defaults to {@link Diagnostic}
|
|
* so the top of the trace is the `new Diagnostic(...)` call site.
|
|
* `defineDiagnostics` passes its action method to strip its own frames too.
|
|
* Ignored on engines without `Error.captureStackTrace`.
|
|
*/
|
|
constructor(init, captureFrom = Diagnostic) {
|
|
super(init.why, { cause: init.cause });
|
|
this.code = this.name = init.code;
|
|
this.fix = init.fix;
|
|
this.docs = init.docs;
|
|
this.sources = init.sources;
|
|
this.data = init.data;
|
|
captureStackTrace?.(this, captureFrom);
|
|
}
|
|
/**
|
|
* Converts the diagnostic into a serializable structured object.
|
|
*/
|
|
toJSON() {
|
|
return {
|
|
name: this.name,
|
|
why: this.why,
|
|
fix: this.fix,
|
|
docs: this.docs,
|
|
sources: this.sources,
|
|
cause: this.cause,
|
|
data: this.data,
|
|
stack: this.stack
|
|
};
|
|
}
|
|
};
|
|
/**
|
|
* Resolves the docs URL for a code from a `docsBase` (string template or
|
|
* resolver function). Shared by {@link defineDiagnostics} and
|
|
* {@link defineProdDiagnostics}. Per-code `docs` overrides are handled by the
|
|
* caller; this only covers the `docsBase`-derived case.
|
|
*
|
|
* @internal
|
|
*/
|
|
function deriveDocs(docsBase, code) {
|
|
return typeof docsBase === "string" ? `${docsBase}/${code.toLowerCase()}` : docsBase?.(code);
|
|
}
|
|
//#endregion
|
|
//#region src/prod-diagnostics.ts
|
|
/**
|
|
* Production counterpart to {@link defineDiagnostics}. Returns a `Proxy` that
|
|
* builds a minimal {@link Diagnostic} for any accessed code: the code becomes
|
|
* the instance `name`, `docs` is derived from `docsBase`, and `why` points to
|
|
* the docs URL when one exists (empty otherwise, so the thrown header is just
|
|
* the code). It carries no catalog text or data, so it stays tiny in a bundle.
|
|
*
|
|
* The strip plugin (`@nostics/unplugin`) can rewrite a `defineDiagnostics()`
|
|
* call into a `"production" === 'production'` ternary that selects this
|
|
* factory in production, dropping every `why`/`fix` string from the bundle.
|
|
*
|
|
* @example
|
|
* ```ts
|
|
* const diagnostics = defineProdDiagnostics({ docsBase: 'https://docs.example.com' })
|
|
* throw diagnostics.NUXT_B2011() // NUXT_B2011: https://docs.example.com/nuxt_b2011
|
|
* ```
|
|
*/
|
|
/* @__NO_SIDE_EFFECTS__ */
|
|
function defineProdDiagnostics(options = {}) {
|
|
const { docsBase, reporters = [] } = options;
|
|
return new Proxy({}, { get(_target, code) {
|
|
if (typeof code !== "string") return void 0;
|
|
const handle = (params = {}, reporterOptions = {}) => {
|
|
const docs = deriveDocs(docsBase, code);
|
|
const diagnostic = new Diagnostic({
|
|
code,
|
|
why: docs ?? "",
|
|
docs,
|
|
cause: params.cause,
|
|
sources: params.sources
|
|
}, handle);
|
|
for (const reporter of reporters) reporter(diagnostic, reporterOptions);
|
|
return diagnostic;
|
|
};
|
|
return handle;
|
|
} });
|
|
}
|
|
|
|
function flatHooks(configHooks, hooks = {}, parentName) {
|
|
for (const key in configHooks) {
|
|
const subHook = configHooks[key];
|
|
const name = parentName ? `${parentName}:${key}` : key;
|
|
if (typeof subHook === "object" && subHook !== null) flatHooks(subHook, hooks, name);
|
|
else if (typeof subHook === "function") hooks[name] = subHook;
|
|
}
|
|
return hooks;
|
|
}
|
|
const createTask = /* @__PURE__ */ (() => {
|
|
if (console.createTask) return console.createTask;
|
|
const defaultTask = { run: (fn) => fn() };
|
|
return () => defaultTask;
|
|
})();
|
|
function callHooks(hooks, args, startIndex, task) {
|
|
for (let i = startIndex; i < hooks.length; i += 1) try {
|
|
const result = task ? task.run(() => hooks[i](...args)) : hooks[i](...args);
|
|
if (result && typeof result.then === "function") return Promise.resolve(result).then(() => callHooks(hooks, args, i + 1, task));
|
|
} catch (error) {
|
|
return Promise.reject(error);
|
|
}
|
|
}
|
|
function serialTaskCaller(hooks, args, name) {
|
|
if (hooks.length > 0) return callHooks(hooks, args, 0, createTask(name));
|
|
}
|
|
function parallelTaskCaller(hooks, args, name) {
|
|
if (hooks.length > 0) {
|
|
const task = createTask(name);
|
|
return Promise.all(hooks.map((hook) => task.run(() => hook(...args))));
|
|
}
|
|
}
|
|
function callEachWith(callbacks, arg0) {
|
|
for (const callback of [...callbacks]) callback(arg0);
|
|
}
|
|
var Hookable = class {
|
|
_hooks;
|
|
_before;
|
|
_after;
|
|
_deprecatedHooks;
|
|
_deprecatedMessages;
|
|
constructor() {
|
|
this._hooks = {};
|
|
this._before = void 0;
|
|
this._after = void 0;
|
|
this._deprecatedMessages = void 0;
|
|
this._deprecatedHooks = {};
|
|
this.hook = this.hook.bind(this);
|
|
this.callHook = this.callHook.bind(this);
|
|
this.callHookWith = this.callHookWith.bind(this);
|
|
}
|
|
hook(name, function_, options = {}) {
|
|
if (!name || typeof function_ !== "function") return () => {};
|
|
const originalName = name;
|
|
let dep;
|
|
while (this._deprecatedHooks[name]) {
|
|
dep = this._deprecatedHooks[name];
|
|
name = dep.to;
|
|
}
|
|
if (dep && !options.allowDeprecated) {
|
|
let message = dep.message;
|
|
if (!message) message = `${originalName} hook has been deprecated` + (dep.to ? `, please use ${dep.to}` : "");
|
|
if (!this._deprecatedMessages) this._deprecatedMessages = /* @__PURE__ */ new Set();
|
|
if (!this._deprecatedMessages.has(message)) {
|
|
console.warn(message);
|
|
this._deprecatedMessages.add(message);
|
|
}
|
|
}
|
|
if (!function_.name) try {
|
|
Object.defineProperty(function_, "name", {
|
|
get: () => "_" + name.replace(/\W+/g, "_") + "_hook_cb",
|
|
configurable: true
|
|
});
|
|
} catch {}
|
|
this._hooks[name] = this._hooks[name] || [];
|
|
this._hooks[name].push(function_);
|
|
return () => {
|
|
if (function_) {
|
|
this.removeHook(name, function_);
|
|
function_ = void 0;
|
|
}
|
|
};
|
|
}
|
|
hookOnce(name, function_) {
|
|
let _unreg;
|
|
let _function = (...arguments_) => {
|
|
if (typeof _unreg === "function") _unreg();
|
|
_unreg = void 0;
|
|
_function = void 0;
|
|
return function_(...arguments_);
|
|
};
|
|
_unreg = this.hook(name, _function);
|
|
return _unreg;
|
|
}
|
|
removeHook(name, function_) {
|
|
const hooks = this._hooks[name];
|
|
if (hooks) {
|
|
const index = hooks.indexOf(function_);
|
|
if (index !== -1) hooks.splice(index, 1);
|
|
if (hooks.length === 0) this._hooks[name] = void 0;
|
|
}
|
|
}
|
|
clearHook(name) {
|
|
this._hooks[name] = void 0;
|
|
}
|
|
deprecateHook(name, deprecated) {
|
|
this._deprecatedHooks[name] = typeof deprecated === "string" ? { to: deprecated } : deprecated;
|
|
const _hooks = this._hooks[name] || [];
|
|
this._hooks[name] = void 0;
|
|
for (const hook of _hooks) this.hook(name, hook);
|
|
}
|
|
deprecateHooks(deprecatedHooks) {
|
|
for (const name in deprecatedHooks) this.deprecateHook(name, deprecatedHooks[name]);
|
|
}
|
|
addHooks(configHooks) {
|
|
const hooks = flatHooks(configHooks);
|
|
const removeFns = Object.keys(hooks).map((key) => this.hook(key, hooks[key]));
|
|
return () => {
|
|
for (const unreg of removeFns) unreg();
|
|
removeFns.length = 0;
|
|
};
|
|
}
|
|
removeHooks(configHooks) {
|
|
const hooks = flatHooks(configHooks);
|
|
for (const key in hooks) this.removeHook(key, hooks[key]);
|
|
}
|
|
removeAllHooks() {
|
|
this._hooks = {};
|
|
}
|
|
callHook(name, ...args) {
|
|
return this.callHookWith(serialTaskCaller, name, args);
|
|
}
|
|
callHookParallel(name, ...args) {
|
|
return this.callHookWith(parallelTaskCaller, name, args);
|
|
}
|
|
callHookWith(caller, name, args) {
|
|
const event = this._before || this._after ? {
|
|
name,
|
|
args,
|
|
context: {}
|
|
} : void 0;
|
|
if (this._before) callEachWith(this._before, event);
|
|
const result = caller(this._hooks[name] ? [...this._hooks[name]] : [], args, name);
|
|
if (result instanceof Promise) return result.finally(() => {
|
|
if (this._after && event) callEachWith(this._after, event);
|
|
});
|
|
if (this._after && event) callEachWith(this._after, event);
|
|
return result;
|
|
}
|
|
beforeEach(function_) {
|
|
this._before = this._before || [];
|
|
this._before.push(function_);
|
|
return () => {
|
|
if (this._before !== void 0) {
|
|
const index = this._before.indexOf(function_);
|
|
if (index !== -1) this._before.splice(index, 1);
|
|
}
|
|
};
|
|
}
|
|
afterEach(function_) {
|
|
this._after = this._after || [];
|
|
this._after.push(function_);
|
|
return () => {
|
|
if (this._after !== void 0) {
|
|
const index = this._after.indexOf(function_);
|
|
if (index !== -1) this._after.splice(index, 1);
|
|
}
|
|
};
|
|
}
|
|
};
|
|
function createHooks() {
|
|
return new Hookable();
|
|
}
|
|
|
|
// @__NO_SIDE_EFFECTS__
|
|
function isUnsafeKey(key) {
|
|
return key === "__proto__" || key === "constructor" || key === "prototype";
|
|
}
|
|
|
|
function walkResolver(val, resolve, key) {
|
|
if (key === "_resolver")
|
|
return val;
|
|
if (typeof val === "function" && (!key || key !== "titleTemplate" && !key.startsWith("on")))
|
|
val = val();
|
|
const v = resolve ? resolve(key, val) : val;
|
|
if (Array.isArray(v)) {
|
|
let out;
|
|
for (let i = 0; i < v.length; i++) {
|
|
const r = walkResolver(v[i], resolve);
|
|
if (out) {
|
|
out[i] = r;
|
|
} else if (r !== v[i]) {
|
|
out = v.slice(0, i);
|
|
out[i] = r;
|
|
}
|
|
}
|
|
return out || v;
|
|
}
|
|
if (v?.constructor === Object) {
|
|
let next;
|
|
for (const k in v) {
|
|
const unsafe = isUnsafeKey(k);
|
|
const r = unsafe ? void 0 : walkResolver(v[k], resolve, k);
|
|
if (!next && (unsafe || r !== v[k])) {
|
|
next = {};
|
|
for (const pk in v) {
|
|
if (pk === k)
|
|
break;
|
|
next[pk] = v[pk];
|
|
}
|
|
}
|
|
if (next && !unsafe)
|
|
next[k] = r;
|
|
}
|
|
return next || v;
|
|
}
|
|
return v;
|
|
}
|
|
|
|
//#region ../site1/node_modules/nuxt/dist/app/diagnostics/_shared.js
|
|
/**
|
|
* Shared configuration for the runtime (E<N>xxx) diagnostics catalogs.
|
|
*
|
|
* Catalogs are split by domain and imported directly where used (no barrel),
|
|
* so the browser bundle only pulls in the codes a module references. Pair the
|
|
* pure-call annotations on each `defineDiagnostics()` with dev-guarded,
|
|
* statement-level report calls so report-only diagnostics strip from production.
|
|
*
|
|
* Codes are stable, fully-qualified `NUXT_E<NNNN>` identifiers. Codes with a
|
|
* dedicated docs page resolve a `see:` URL via {@link docsBase}; the rest opt
|
|
* out with `docs: false`.
|
|
*/
|
|
function docsBase(code) {
|
|
return `https://nuxt.com/docs/4.x/errors/${code.replace("NUXT_", "").toLowerCase()}`;
|
|
}
|
|
var prodReporter = (diagnostic) => {
|
|
console.error(`[${diagnostic.name}]`);
|
|
};
|
|
var prodReporters = [prodReporter];
|
|
//#endregion
|
|
//#region ../site1/node_modules/nuxt/dist/app/diagnostics/core.js
|
|
/**
|
|
* E1xxx
|
|
* Core / Nuxt-instance / lifecycle runtime diagnostics.
|
|
*/
|
|
var appDiagnostics = /* #__PURE__ */ defineProdDiagnostics({
|
|
docsBase,
|
|
reporters: prodReporters
|
|
});
|
|
//#endregion
|
|
//#region ../site1/node_modules/unctx/dist/index.mjs
|
|
function _getAsyncLocalStorage() {
|
|
return globalThis.AsyncLocalStorage || globalThis.process?.getBuiltinModule?.("node:async_hooks")?.AsyncLocalStorage;
|
|
}
|
|
var _WeakRef = globalThis.WeakRef || class StrongRef {
|
|
#value;
|
|
constructor(value) {
|
|
this.#value = value;
|
|
}
|
|
deref() {
|
|
return this.#value;
|
|
}
|
|
};
|
|
function createContext(opts = {}) {
|
|
let currentInstance;
|
|
let isSingleton = false;
|
|
const checkConflict = (instance) => {
|
|
if (currentInstance && currentInstance !== instance) throw new Error("Context conflict");
|
|
};
|
|
let als;
|
|
if (opts.asyncContext) {
|
|
const _AsyncLocalStorage = opts.AsyncLocalStorage || _getAsyncLocalStorage();
|
|
if (_AsyncLocalStorage) als = new _AsyncLocalStorage();
|
|
else console.warn("[unctx] `AsyncLocalStorage` is not provided.");
|
|
}
|
|
const _wrapInstance = (instance) => als && instance !== null && typeof instance === "object" ? { __unctx_weak: new _WeakRef(instance) } : instance;
|
|
const _unwrapInstance = (store) => store && store.__unctx_weak ? store.__unctx_weak.deref() : store;
|
|
const _getCurrentInstance = () => {
|
|
if (als) {
|
|
const store = als.getStore();
|
|
if (store !== void 0) return _unwrapInstance(store);
|
|
}
|
|
return currentInstance;
|
|
};
|
|
return {
|
|
use: () => {
|
|
const _instance = _getCurrentInstance();
|
|
if (_instance === void 0) throw new Error("Context is not available");
|
|
return _instance;
|
|
},
|
|
tryUse: () => {
|
|
return _getCurrentInstance() ?? null;
|
|
},
|
|
set: (instance, replace) => {
|
|
if (!replace) checkConflict(instance);
|
|
currentInstance = instance;
|
|
isSingleton = true;
|
|
},
|
|
unset: () => {
|
|
currentInstance = void 0;
|
|
isSingleton = false;
|
|
},
|
|
call: (instance, callback) => {
|
|
checkConflict(instance);
|
|
currentInstance = instance;
|
|
try {
|
|
return als ? als.run(_wrapInstance(instance), callback) : callback();
|
|
} finally {
|
|
if (!isSingleton) currentInstance = void 0;
|
|
}
|
|
},
|
|
async callAsync(instance, callback) {
|
|
currentInstance = instance;
|
|
const onRestore = () => {
|
|
currentInstance = instance;
|
|
};
|
|
const onLeave = () => currentInstance === instance ? onRestore : void 0;
|
|
asyncHandlers.add(onLeave);
|
|
try {
|
|
const r = als ? als.run(_wrapInstance(instance), callback) : callback();
|
|
if (!isSingleton) currentInstance = void 0;
|
|
return await r;
|
|
} finally {
|
|
asyncHandlers.delete(onLeave);
|
|
}
|
|
}
|
|
};
|
|
}
|
|
function createNamespace(defaultOpts = {}) {
|
|
const contexts = {};
|
|
return { get(key, opts = {}) {
|
|
if (!contexts[key]) contexts[key] = createContext({
|
|
...defaultOpts,
|
|
...opts
|
|
});
|
|
return contexts[key];
|
|
} };
|
|
}
|
|
var _globalThis = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : typeof global !== "undefined" ? global : {};
|
|
var globalKey = "__unctx__";
|
|
var defaultNamespace = _globalThis[globalKey] || (_globalThis[globalKey] = createNamespace());
|
|
var getContext$1 = (key, opts = {}) => defaultNamespace.get(key, opts);
|
|
var asyncHandlersKey = "__unctx_async_handlers__";
|
|
var asyncHandlers = _globalThis[asyncHandlersKey] || (_globalThis[asyncHandlersKey] = /* @__PURE__ */ new Set());
|
|
function executeAsync(function_) {
|
|
const restores = [];
|
|
for (const leaveHandler of asyncHandlers) {
|
|
const restore = leaveHandler();
|
|
if (restore) restores.push(restore);
|
|
}
|
|
const restore = () => {
|
|
for (const restore of restores) restore();
|
|
};
|
|
let awaitable = function_();
|
|
if (awaitable && typeof awaitable === "object" && "catch" in awaitable) awaitable = awaitable.catch((error) => {
|
|
restore();
|
|
throw error;
|
|
});
|
|
return [awaitable, restore];
|
|
}
|
|
//#endregion
|
|
//#region ../site1/node_modules/nuxt/dist/app/internal/context.js
|
|
globalThis.__nuxt_app_ctx__ ||= {};
|
|
function getContext(key, opts) {
|
|
return getContext$1(key, opts);
|
|
}
|
|
//#endregion
|
|
//#region virtual:nuxt:node_modules%2F.cache%2Fnuxt%2F.nuxt%2Fnuxt.config.mjs
|
|
var nuxtLinkDefaults = {
|
|
"componentName": "NuxtLink"};
|
|
//#endregion
|
|
//#region ../site1/node_modules/nuxt/dist/app/nuxt.js
|
|
function getNuxtAppCtx(id = "nuxt-app") {
|
|
return getContext(id, { asyncContext: false });
|
|
}
|
|
var NuxtPluginIndicator = "__nuxt_plugin";
|
|
/** @since 3.0.0 */
|
|
function createNuxtApp(options) {
|
|
let hydratingCount = 0;
|
|
const nuxtApp = {
|
|
_id: options.id || "nuxt-app",
|
|
_scope: effectScope(),
|
|
provide: void 0,
|
|
versions: {
|
|
get nuxt() {
|
|
return "4.6.0";
|
|
},
|
|
get vue() {
|
|
return nuxtApp.vueApp.version;
|
|
}
|
|
},
|
|
payload: shallowReactive({
|
|
...options.ssrContext?.payload || {},
|
|
data: shallowReactive({}),
|
|
state: reactive({}),
|
|
once: /* @__PURE__ */ new Set(),
|
|
_errors: shallowReactive({})
|
|
}),
|
|
static: { data: {} },
|
|
runWithContext(fn) {
|
|
if (nuxtApp._scope.active && !getCurrentScope()) return nuxtApp._scope.run(() => callWithNuxt(nuxtApp, fn));
|
|
return callWithNuxt(nuxtApp, fn);
|
|
},
|
|
isHydrating: false,
|
|
deferHydration() {
|
|
if (!nuxtApp.isHydrating) return () => {};
|
|
hydratingCount++;
|
|
let called = false;
|
|
return () => {
|
|
if (called) return;
|
|
called = true;
|
|
hydratingCount--;
|
|
if (hydratingCount === 0) {
|
|
nuxtApp.isHydrating = false;
|
|
return nuxtApp.callHook("app:suspense:resolve");
|
|
}
|
|
};
|
|
},
|
|
_asyncDataPromises: {},
|
|
_asyncData: shallowReactive({}),
|
|
_state: shallowReactive({}),
|
|
_payloadRevivers: {},
|
|
...options
|
|
};
|
|
nuxtApp.payload.serverRendered = true;
|
|
if (nuxtApp.ssrContext) {
|
|
nuxtApp.payload.path = nuxtApp.ssrContext.url;
|
|
nuxtApp.ssrContext.nuxt = nuxtApp;
|
|
nuxtApp.ssrContext.payload = nuxtApp.payload;
|
|
nuxtApp.ssrContext.config = {
|
|
public: nuxtApp.ssrContext.runtimeConfig.public,
|
|
app: nuxtApp.ssrContext.runtimeConfig.app
|
|
};
|
|
}
|
|
nuxtApp.hooks = createHooks();
|
|
nuxtApp.hook = nuxtApp.hooks.hook;
|
|
{
|
|
const runHooks = async (hooks, args) => {
|
|
for (const hook of hooks) await nuxtApp.runWithContext(() => hook(...args));
|
|
};
|
|
const contextCaller = runHooks;
|
|
nuxtApp.hooks.callHook = (name, ...args) => nuxtApp.hooks.callHookWith(contextCaller, name, args);
|
|
}
|
|
nuxtApp.callHook = nuxtApp.hooks.callHook;
|
|
nuxtApp.provide = (name, value) => {
|
|
const $name = "$" + name;
|
|
defineGetter(nuxtApp, $name, value);
|
|
defineGetter(nuxtApp.vueApp.config.globalProperties, $name, value);
|
|
};
|
|
defineGetter(nuxtApp.vueApp, "$nuxt", nuxtApp);
|
|
defineGetter(nuxtApp.vueApp.config.globalProperties, "$nuxt", nuxtApp);
|
|
const runtimeConfig = options.ssrContext.runtimeConfig;
|
|
nuxtApp.provide("config", runtimeConfig);
|
|
return nuxtApp;
|
|
}
|
|
/** @since 3.0.0 */
|
|
async function applyPlugin(nuxtApp, plugin) {
|
|
if (typeof plugin === "function") {
|
|
const run = () => nuxtApp.runWithContext(() => plugin(nuxtApp));
|
|
const { provide } = await run() || {};
|
|
if (provide && typeof provide === "object") for (const key in provide) nuxtApp.provide(key, provide[key]);
|
|
}
|
|
}
|
|
/** @since 3.0.0 */
|
|
async function applyPlugins(nuxtApp, plugins) {
|
|
let error;
|
|
for (const plugin of plugins) try {
|
|
await applyPlugin(nuxtApp, plugin);
|
|
} catch (e) {
|
|
if (!nuxtApp.payload.error) throw e;
|
|
error ||= e;
|
|
}
|
|
if (error) throw nuxtApp.payload.error || error;
|
|
}
|
|
/** @since 3.0.0 */
|
|
/* @__NO_SIDE_EFFECTS__ */
|
|
function defineNuxtPlugin(plugin) {
|
|
if (typeof plugin === "function") return plugin;
|
|
const _name = plugin._name || plugin.name;
|
|
delete plugin.name;
|
|
return Object.assign(plugin.setup || (() => {}), plugin, {
|
|
[NuxtPluginIndicator]: true,
|
|
_name
|
|
});
|
|
}
|
|
/**
|
|
* Ensures that the setup function passed in has access to the Nuxt instance via `useNuxtApp`.
|
|
* @param nuxt A Nuxt instance
|
|
* @param setup The function to call
|
|
* @since 3.0.0
|
|
*/
|
|
function callWithNuxt(nuxt, setup, args) {
|
|
const fn = () => setup();
|
|
const nuxtAppCtx = getNuxtAppCtx(nuxt._id);
|
|
return nuxt.vueApp.runWithContext(() => nuxtAppCtx.callAsync(nuxt, fn));
|
|
}
|
|
function tryUseNuxtApp(id) {
|
|
let nuxtAppInstance;
|
|
if (hasInjectionContext()) nuxtAppInstance = getCurrentInstance()?.appContext.app.$nuxt;
|
|
nuxtAppInstance ||= getNuxtAppCtx(id).tryUse();
|
|
return nuxtAppInstance || null;
|
|
}
|
|
function useNuxtApp(id) {
|
|
const nuxtAppInstance = tryUseNuxtApp(id);
|
|
if (!nuxtAppInstance) throw appDiagnostics.NUXT_E1001();
|
|
return nuxtAppInstance;
|
|
}
|
|
/** @since 3.0.0 */
|
|
/* @__NO_SIDE_EFFECTS__ */
|
|
function useRuntimeConfig(_event) {
|
|
return useNuxtApp().$config;
|
|
}
|
|
function defineGetter(obj, key, val) {
|
|
Object.defineProperty(obj, key, { get: () => val });
|
|
}
|
|
//#endregion
|
|
//#region ../site1/node_modules/nuxt/dist/app/error.js
|
|
var NUXT_ERROR_SIGNATURE = "__nuxt_error";
|
|
/** @since 3.0.0 */
|
|
var isNuxtError = (error) => !!error && typeof error === "object" && "__nuxt_error" in error;
|
|
/** @since 3.0.0 */
|
|
var createError$1 = (error) => {
|
|
if (isNuxtError(error)) return error;
|
|
if (typeof error !== "string" && error?.statusText) error.message ??= error.statusText;
|
|
const nuxtError = createError(error ?? {});
|
|
Object.defineProperty(nuxtError, NUXT_ERROR_SIGNATURE, {
|
|
value: true,
|
|
configurable: false,
|
|
writable: false
|
|
});
|
|
Object.defineProperty(nuxtError, "status", {
|
|
get: () => nuxtError.statusCode,
|
|
configurable: true
|
|
});
|
|
Object.defineProperty(nuxtError, "statusText", {
|
|
get: () => nuxtError.statusMessage,
|
|
configurable: true
|
|
});
|
|
return nuxtError;
|
|
};
|
|
//#endregion
|
|
//#region ../site1/node_modules/nuxt/dist/app/utils.js
|
|
var PROBE_BASE_A = "https://a.invalid/probe/";
|
|
var PROBE_BASE_B = "https://b.invalid/probe/";
|
|
function parseAnchorURL(value, base = PROBE_BASE_A) {
|
|
try {
|
|
return new URL(value, base);
|
|
} catch {
|
|
return null;
|
|
}
|
|
}
|
|
/** Whether a URL string is a path rooted at the current origin, so carries no protocol. */
|
|
function isRootedPath(value) {
|
|
return value[0] === "/" && value[1] !== "/" && value[1] !== "\\";
|
|
}
|
|
/** Whether a URL string carries its own protocol or authority. */
|
|
function isAbsoluteHref(value) {
|
|
if (!value || isRootedPath(value)) return false;
|
|
const resolved = parseAnchorURL(value);
|
|
return !!resolved && resolved.href === parseAnchorURL(value, PROBE_BASE_B)?.href;
|
|
}
|
|
/** The script-capable protocol a URL string would navigate to, or `null` when it is safe. */
|
|
function getScriptProtocol(value) {
|
|
if (!value || isRootedPath(value)) return null;
|
|
let resolved = parseAnchorURL(value.replace(/[\u0000-\u001F\u007F\s]+/g, ""));
|
|
while (resolved?.protocol === "view-source:") resolved = parseAnchorURL(resolved.pathname);
|
|
if (!resolved) return "";
|
|
return isScriptProtocol(resolved.protocol) ? resolved.protocol : null;
|
|
}
|
|
/** Returns the value unchanged when safe to use as an anchor `href`, or `null`. */
|
|
function sanitizeAnchorHref(value) {
|
|
return getScriptProtocol(value) === null ? value : null;
|
|
}
|
|
//#endregion
|
|
//#region ../site1/node_modules/nuxt/dist/app/components/injections.js
|
|
var LayoutMetaSymbol = Symbol("layout-meta");
|
|
var PageRouteSymbol = Symbol("route");
|
|
//#endregion
|
|
//#region ../site1/node_modules/nuxt/dist/app/diagnostics/navigation.js
|
|
/**
|
|
* E2xxx
|
|
* Navigation / routing / middleware runtime diagnostics.
|
|
*/
|
|
var navigationDiagnostics = /* #__PURE__ */ defineProdDiagnostics({
|
|
docsBase,
|
|
reporters: prodReporters
|
|
});
|
|
//#endregion
|
|
//#region ../site1/node_modules/nuxt/dist/app/composables/router.js
|
|
/** @since 3.0.0 */
|
|
var useRouter = (() => {
|
|
return useNuxtApp()?.$router;
|
|
});
|
|
/**
|
|
* Whether the current effect scope is (a descendant of) the component instance's scope.
|
|
* A detached scope (e.g. `createSharedComposable`) outlives the component, so the
|
|
* per-page route injected there would freeze after navigation (#18903).
|
|
*/
|
|
function getParentScope(scope) {
|
|
const internal = scope;
|
|
return internal.parent ?? internal.subs?.sub;
|
|
}
|
|
function isScopeWithinInstance(instance) {
|
|
const instanceScope = instance.scope;
|
|
let scope = getCurrentScope();
|
|
while (scope) {
|
|
if (scope === instanceScope) return true;
|
|
scope = getParentScope(scope);
|
|
}
|
|
return false;
|
|
}
|
|
/** @since 3.0.0 */
|
|
var useRoute$2 = (() => {
|
|
if (hasInjectionContext()) {
|
|
const instance = getCurrentInstance();
|
|
if (!instance || isScopeWithinInstance(instance)) return inject(PageRouteSymbol, useNuxtApp()._route);
|
|
}
|
|
return useNuxtApp()._route;
|
|
});
|
|
/** @since 3.0.0 */
|
|
/* @__NO_SIDE_EFFECTS__ */
|
|
function defineNuxtRouteMiddleware(middleware) {
|
|
return middleware;
|
|
}
|
|
/** @since 3.0.0 */
|
|
var isProcessingMiddleware = () => {
|
|
try {
|
|
if (useNuxtApp()._processingMiddleware) return true;
|
|
} catch {
|
|
return false;
|
|
}
|
|
return false;
|
|
};
|
|
var HTML_ATTR_UNSAFE_RE = /[&"'<>]/g;
|
|
var HTML_ATTR_ENCODE_MAP = {
|
|
"&": "&",
|
|
"\"": """,
|
|
"'": "'",
|
|
"<": "<",
|
|
">": ">"
|
|
};
|
|
function encodeForHtmlAttr(value) {
|
|
return value.replace(HTML_ATTR_UNSAFE_RE, (c) => HTML_ATTR_ENCODE_MAP[c]);
|
|
}
|
|
/**
|
|
* A helper that aids in programmatic navigation within your Nuxt application.
|
|
*
|
|
* Can be called on the server and on the client, within pages, route middleware, plugins, and more.
|
|
* @param {RouteLocationRaw | undefined | null} [to] - The route to navigate to. Accepts a route object, string path, `undefined`, or `null`. Defaults to '/'.
|
|
* @param {NavigateToOptions} [options] - Optional customization for controlling the behavior of the navigation.
|
|
* @returns {Promise<void | NavigationFailure | false> | false | void | RouteLocationRaw} The navigation result, which varies depending on context and options.
|
|
* @see https://nuxt.com/docs/4.x/api/utils/navigate-to
|
|
* @since 3.0.0
|
|
*/
|
|
var navigateTo = (to, options) => {
|
|
to ||= "/";
|
|
const toPath = typeof to === "string" ? to : "path" in to ? resolveRouteObject(to) : useRouter().resolve(to).href;
|
|
const isExternalHost = isAbsoluteHref(toPath);
|
|
const isExternal = options?.external || isExternalHost;
|
|
if (isExternal) {
|
|
if (!options?.external) throw navigationDiagnostics.NUXT_E2001({ toPath });
|
|
const protocol = getScriptProtocol(toPath);
|
|
if (protocol !== null) throw navigationDiagnostics.NUXT_E2002({
|
|
toPath,
|
|
protocol
|
|
});
|
|
}
|
|
const inMiddleware = isProcessingMiddleware();
|
|
const router = useRouter();
|
|
const nuxtApp = useNuxtApp();
|
|
if (nuxtApp.ssrContext) {
|
|
const fullPath = typeof to === "string" || isExternal ? toPath : router.resolve(to).fullPath || "/";
|
|
const location = isExternal ? toPath : joinURL((/* @__PURE__ */ useRuntimeConfig()).app.baseURL, fullPath);
|
|
const redirect = async function(response) {
|
|
await nuxtApp.callHook("app:redirected");
|
|
const encodedHeader = encodeURL(location, isExternalHost);
|
|
const encodedLoc = encodeForHtmlAttr(encodedHeader);
|
|
nuxtApp.ssrContext["~renderResponse"] = {
|
|
statusCode: sanitizeStatusCode(options?.redirectCode || 302, 302),
|
|
body: `<!DOCTYPE html><html><head><meta http-equiv="refresh" content="0; url=${encodedLoc}"></head></html>`,
|
|
headers: { location: encodedHeader }
|
|
};
|
|
return response;
|
|
};
|
|
if (!isExternal && inMiddleware) {
|
|
let expectedPath = fullPath;
|
|
if (typeof to === "string" && toPath.includes("?")) {
|
|
const target = router.resolve(to);
|
|
expectedPath = router.resolve({
|
|
path: target.path,
|
|
query: target.query,
|
|
hash: target.hash
|
|
}).fullPath || "/";
|
|
}
|
|
router.afterEach((final) => final.fullPath === expectedPath ? redirect(false) : void 0);
|
|
return to;
|
|
}
|
|
return redirect(!inMiddleware ? void 0 : false);
|
|
}
|
|
if (isExternal) {
|
|
nuxtApp._scope.stop();
|
|
if (options?.replace) (void 0).replace(toPath);
|
|
else (void 0).href = toPath;
|
|
if (inMiddleware) {
|
|
if (!nuxtApp.isHydrating) return false;
|
|
return new Promise(() => {});
|
|
}
|
|
return Promise.resolve();
|
|
}
|
|
const encodedTo = typeof to === "string" ? encodeRoutePath(to) : to;
|
|
return options?.replace ? router.replace(encodedTo) : router.push(encodedTo);
|
|
};
|
|
/**
|
|
* @internal
|
|
*/
|
|
function resolveRouteObject(to) {
|
|
return withQuery(to.path || "", to.query || {}) + (to.hash || "");
|
|
}
|
|
/**
|
|
* @internal
|
|
*/
|
|
function encodeURL(location, isExternalHost = false) {
|
|
const url = new URL(location, "http://localhost");
|
|
if (!isExternalHost) return url.pathname.replace(/^\/{2,}/, "/") + url.search + url.hash;
|
|
if (location.startsWith("//")) return url.toString().replace(url.protocol, "");
|
|
return url.toString();
|
|
}
|
|
/**
|
|
* Encode the pathname of a route location string. Ensures decoded paths like
|
|
* `/café` are percent-encoded to match vue-router's encoded route records.
|
|
* Already-encoded paths are not double-encoded.
|
|
* @internal
|
|
*/
|
|
function encodeRoutePath(url) {
|
|
const parsed = parseURL(url);
|
|
return encodeVueRouterPath(decodePath(parsed.pathname)) + parsed.search + parsed.hash;
|
|
}
|
|
var ENC_PIPE_RE = /%7C/g;
|
|
var ENC_BRACKET_OPEN_RE = /%5B/g;
|
|
var ENC_BRACKET_CLOSE_RE = /%5D/g;
|
|
var ENC_ENC_SLASH_RE = /%252F/gi;
|
|
var HASH_RE = /#/g;
|
|
var QUESTION_MARK_RE = /\?/g;
|
|
/**
|
|
* Apply vue-router's own path encoding, which leaves sub-delimiters like `&`
|
|
* and `+` literal. This must stay in sync with `encodeVueRouterPath` in
|
|
* `unrouting`, which encodes the route records we need to match against.
|
|
*/
|
|
function encodeVueRouterPath(value) {
|
|
return encodeURI(value).replace(ENC_PIPE_RE, "|").replace(ENC_BRACKET_OPEN_RE, "[").replace(ENC_BRACKET_CLOSE_RE, "]").replace(HASH_RE, "%23").replace(QUESTION_MARK_RE, "%3F").replace(ENC_ENC_SLASH_RE, "%2F");
|
|
}
|
|
//#endregion
|
|
//#region ../site1/node_modules/nuxt/dist/app/composables/error.js
|
|
/** @since 3.0.0 */
|
|
var useError = /* @__NO_SIDE_EFFECTS__ */ () => toRef(useNuxtApp().payload, "error");
|
|
/** @since 3.0.0 */
|
|
var showError = (error) => {
|
|
const nuxtError = createError$1(error);
|
|
try {
|
|
const error = /* @__PURE__ */ useError();
|
|
error.value ||= nuxtError;
|
|
} catch {
|
|
throw nuxtError;
|
|
}
|
|
return nuxtError;
|
|
};
|
|
/**
|
|
* Show the error page unless the current client is a crawler, in which case the
|
|
* bot receives the already server-rendered HTML instead (#32137, #35338).
|
|
*
|
|
* @internal
|
|
*/
|
|
var _showErrorUnlessCrawler = async (nuxtApp, error) => {
|
|
await nuxtApp.runWithContext(() => showError(error));
|
|
};
|
|
//#endregion
|
|
//#region virtual:nuxt:node_modules%2F.cache%2Fnuxt%2F.nuxt%2Ffetch.mjs
|
|
if (!globalThis.$fetch) globalThis.$fetch = $fetch.create({ baseURL: baseURL() });
|
|
//#endregion
|
|
//#region virtual:nuxt:node_modules%2F.cache%2Fnuxt%2F.nuxt%2Fglobal-polyfills.mjs
|
|
if (!("global" in globalThis)) globalThis.global = globalThis;
|
|
//#endregion
|
|
//#region ../site1/node_modules/nuxt/dist/head/runtime/island-head.js
|
|
/**
|
|
* No-op `head.push` until the returned `unfreeze` runs. Plugin/transformer
|
|
* augmentations on the same head are unaffected.
|
|
*/
|
|
function freezeHead(head) {
|
|
const realPush = head.push;
|
|
head.push = () => ({
|
|
dispose: () => {},
|
|
patch: () => {},
|
|
_i: 0
|
|
});
|
|
return () => {
|
|
head.push = realPush;
|
|
};
|
|
}
|
|
//#endregion
|
|
//#region ../site1/node_modules/nuxt/dist/head/runtime/plugins/unhead.server.js
|
|
var plugin$2 = /* @__PURE__ */ defineNuxtPlugin({
|
|
name: "nuxt:head",
|
|
enforce: "pre",
|
|
setup(nuxtApp) {
|
|
const head = nuxtApp.ssrContext.head;
|
|
if (nuxtApp.ssrContext.islandContext) {
|
|
const unfreeze = freezeHead(head);
|
|
nuxtApp.hooks.hookOnce("app:created", unfreeze);
|
|
}
|
|
nuxtApp.vueApp.use(head);
|
|
}
|
|
});
|
|
//#endregion
|
|
//#region ../site1/node_modules/nuxt/dist/pages/runtime/utils.js
|
|
var ROUTE_KEY_PARENTHESES_RE$1 = /(:\w+)\([^)]+\)/g;
|
|
var ROUTE_KEY_SYMBOLS_RE$1 = /(:\w+)[?+*]/g;
|
|
var ROUTE_KEY_NORMAL_RE$1 = /:\w+/g;
|
|
var interpolatePath = (route, match) => {
|
|
return match.path.replace(ROUTE_KEY_PARENTHESES_RE$1, "$1").replace(ROUTE_KEY_SYMBOLS_RE$1, "$1").replace(ROUTE_KEY_NORMAL_RE$1, (r) => route.params[r.slice(1)]?.toString() || "");
|
|
};
|
|
var generateRouteKey$1 = (routeProps, override) => {
|
|
const matchedRoute = routeProps.route.matched.find((m) => m.components?.default === routeProps.Component.type);
|
|
const source = matchedRoute?.meta.key ?? (matchedRoute && interpolatePath(routeProps.route, matchedRoute));
|
|
return typeof source === "function" ? source(routeProps.route) : source;
|
|
};
|
|
/** @since 3.9.0 */
|
|
function toArray(value) {
|
|
return Array.isArray(value) ? value : [value];
|
|
}
|
|
//#endregion
|
|
//#region virtual:nuxt:node_modules%2F.cache%2Fnuxt%2F.nuxt%2Froute-rules.mjs
|
|
var virtual_nuxt_node_modules_2F_cache_2Fnuxt_2F_nuxt_2Froute_rules_default = () => ({});
|
|
//#endregion
|
|
//#region ../site1/node_modules/nuxt/dist/app/components/utils.js
|
|
var ROUTE_KEY_PARENTHESES_RE = /(:\w+)\([^)]+\)/g;
|
|
var ROUTE_KEY_SYMBOLS_RE = /(:\w+)[?+*]/g;
|
|
var ROUTE_KEY_NORMAL_RE = /:\w+/g;
|
|
function generateRouteKey(route) {
|
|
const source = route?.meta.key ?? route.path.replace(ROUTE_KEY_PARENTHESES_RE, "$1").replace(ROUTE_KEY_SYMBOLS_RE, "$1").replace(ROUTE_KEY_NORMAL_RE, (r) => route.params[r.slice(1)]?.toString() || "");
|
|
return typeof source === "function" ? source(route) : source;
|
|
}
|
|
/**
|
|
* Utility used within router guards
|
|
* return true if the route has been changed with a page change during navigation
|
|
*/
|
|
function isChangingPage(to, from) {
|
|
if (to === from || from === START_LOCATION) return false;
|
|
if (generateRouteKey(to) !== generateRouteKey(from)) return true;
|
|
if (to.matched.every((comp, index) => comp.components && comp.components.default === from.matched[index]?.components?.default)) return false;
|
|
return true;
|
|
}
|
|
//#endregion
|
|
//#region ../site1/node_modules/nuxt/dist/pages/runtime/router.options.js
|
|
var router_options_default = { scrollBehavior(to, from, savedPosition) {
|
|
const nuxtApp = useNuxtApp();
|
|
const router = useRouter();
|
|
const hashScrollBehaviour = router.options?.scrollBehaviorType ?? "auto";
|
|
if (to.path.replace(/\/$/, "") === from.path.replace(/\/$/, "")) {
|
|
if (from.hash && !to.hash) return savedPosition ?? {
|
|
left: 0,
|
|
top: 0
|
|
};
|
|
if (to.hash) return {
|
|
el: to.hash,
|
|
top: _getHashElementScrollMarginTop(to.hash),
|
|
behavior: hashScrollBehaviour
|
|
};
|
|
return false;
|
|
}
|
|
if ((typeof to.meta.scrollToTop === "function" ? to.meta.scrollToTop(to, from) : to.meta.scrollToTop) === false) return false;
|
|
if (from === START_LOCATION) return _calculatePosition(to, from, savedPosition, hashScrollBehaviour);
|
|
return new Promise((resolve) => {
|
|
const doScroll = () => {
|
|
requestAnimationFrame(() => {
|
|
if (router.currentRoute.value.fullPath !== to.fullPath) {
|
|
resolve(false);
|
|
return;
|
|
}
|
|
resolve(_calculatePosition(to, from, savedPosition, hashScrollBehaviour));
|
|
});
|
|
};
|
|
nuxtApp.hooks.hookOnce("page:loading:end", () => {
|
|
const transitionPromise = nuxtApp["~transitionPromise"];
|
|
if (transitionPromise) transitionPromise.then(doScroll);
|
|
else doScroll();
|
|
});
|
|
});
|
|
} };
|
|
function _getHashElementScrollMarginTop(selector) {
|
|
try {
|
|
const elem = (void 0).querySelector(selector);
|
|
if (elem) return (Number.parseFloat(getComputedStyle(elem).scrollMarginTop) || 0) + (Number.parseFloat(getComputedStyle((void 0).documentElement).scrollPaddingTop) || 0);
|
|
} catch {}
|
|
return 0;
|
|
}
|
|
function _calculatePosition(to, from, savedPosition, defaultHashScrollBehaviour) {
|
|
if (savedPosition) return savedPosition;
|
|
if (to.hash) return {
|
|
el: to.hash,
|
|
top: _getHashElementScrollMarginTop(to.hash),
|
|
behavior: isChangingPage(to, from) ? defaultHashScrollBehaviour : "instant"
|
|
};
|
|
return {
|
|
left: 0,
|
|
top: 0
|
|
};
|
|
}
|
|
var virtual_nuxt_node_modules_2F_cache_2Fnuxt_2F_nuxt_2Frouter_options_default = {
|
|
hashMode: false,
|
|
scrollBehaviorType: "auto",
|
|
sensitive: false,
|
|
...router_options_default
|
|
};
|
|
Object.assign(Object.create(null), {});
|
|
var pageIslandRoutes = Object.assign(Object.create(null), {});
|
|
//#endregion
|
|
//#region ../site1/node_modules/nuxt/dist/pages/runtime/validate.js
|
|
var middleware$1 = /* @__PURE__ */ defineNuxtRouteMiddleware(async (to) => {
|
|
let __temp, __restore;
|
|
if (!to.meta?.validate) return;
|
|
const result = ([__temp, __restore] = executeAsync(() => Promise.resolve(to.meta.validate(to))), __temp = await __temp, __restore(), __temp);
|
|
if (result === true) return;
|
|
return createError$1({
|
|
fatal: false,
|
|
status: result && (result.status || result.statusCode) || 404,
|
|
statusText: result && (result.statusText || result.statusMessage) || `Page Not Found: ${to.fullPath}`,
|
|
data: { path: to.fullPath }
|
|
});
|
|
});
|
|
//#endregion
|
|
//#region ../site1/node_modules/nuxt/dist/app/diagnostics/manifest.js
|
|
/**
|
|
* E5xxx
|
|
* App manifest / route-rules runtime diagnostics.
|
|
*/
|
|
var manifestDiagnostics = /* #__PURE__ */ defineProdDiagnostics({
|
|
docsBase,
|
|
reporters: prodReporters
|
|
});
|
|
//#endregion
|
|
//#region ../site1/node_modules/nuxt/dist/app/composables/manifest.js
|
|
function routeRulesMatcher(path) {
|
|
return virtual_nuxt_node_modules_2F_cache_2Fnuxt_2F_nuxt_2Froute_rules_default();
|
|
}
|
|
function getRouteRules(arg) {
|
|
const path = typeof arg === "string" ? arg : arg.path;
|
|
try {
|
|
return routeRulesMatcher(path);
|
|
} catch (e) {
|
|
manifestDiagnostics.NUXT_E5003({
|
|
path,
|
|
cause: e
|
|
});
|
|
return {};
|
|
}
|
|
}
|
|
//#endregion
|
|
//#region virtual:nuxt:node_modules%2F.cache%2Fnuxt%2F.nuxt%2Fmiddleware.mjs
|
|
var globalMiddleware = [middleware$1, /* @__PURE__ */ defineNuxtRouteMiddleware((to) => {})];
|
|
var namedMiddleware = {};
|
|
//#endregion
|
|
//#region virtual:nuxt:node_modules%2F.cache%2Fnuxt%2F.nuxt%2Froutes.mjs
|
|
var virtual_nuxt_node_modules_2F_cache_2Fnuxt_2F_nuxt_2Froutes_default = [{
|
|
name: "slug",
|
|
path: "/:slug(.*)*",
|
|
component: () => import('../_/_...slug_-D-7ch2s3.mjs')
|
|
}, {
|
|
name: "index",
|
|
path: "/",
|
|
component: () => import('../_/pages-DZejV8vw.mjs')
|
|
}];
|
|
//#endregion
|
|
//#region ../site1/node_modules/nuxt/dist/pages/runtime/plugins/router.js
|
|
var plugin$1 = /* @__PURE__ */ defineNuxtPlugin({
|
|
name: "nuxt:router",
|
|
enforce: "pre",
|
|
async setup(nuxtApp) {
|
|
let __temp, __restore;
|
|
let routerBase = (/* @__PURE__ */ useRuntimeConfig()).app.baseURL;
|
|
const history = virtual_nuxt_node_modules_2F_cache_2Fnuxt_2F_nuxt_2Frouter_options_default.history?.(routerBase) ?? createMemoryHistory(routerBase);
|
|
const routes = virtual_nuxt_node_modules_2F_cache_2Fnuxt_2F_nuxt_2Frouter_options_default.routes ? ([__temp, __restore] = executeAsync(() => virtual_nuxt_node_modules_2F_cache_2Fnuxt_2F_nuxt_2Frouter_options_default.routes(virtual_nuxt_node_modules_2F_cache_2Fnuxt_2F_nuxt_2Froutes_default)), __temp = await __temp, __restore(), __temp) ?? virtual_nuxt_node_modules_2F_cache_2Fnuxt_2F_nuxt_2Froutes_default : virtual_nuxt_node_modules_2F_cache_2Fnuxt_2F_nuxt_2Froutes_default;
|
|
let startPosition;
|
|
const router = createRouter({
|
|
...virtual_nuxt_node_modules_2F_cache_2Fnuxt_2F_nuxt_2Frouter_options_default,
|
|
scrollBehavior: (to, from, savedPosition) => {
|
|
if (from === START_LOCATION) {
|
|
startPosition = savedPosition;
|
|
return;
|
|
}
|
|
if (virtual_nuxt_node_modules_2F_cache_2Fnuxt_2F_nuxt_2Frouter_options_default.scrollBehavior) {
|
|
router.options.scrollBehavior = virtual_nuxt_node_modules_2F_cache_2Fnuxt_2F_nuxt_2Frouter_options_default.scrollBehavior;
|
|
if ("scrollRestoration" in (void 0).history) {
|
|
const unsub = router.beforeEach(() => {
|
|
unsub();
|
|
(void 0).history.scrollRestoration = "manual";
|
|
});
|
|
}
|
|
return virtual_nuxt_node_modules_2F_cache_2Fnuxt_2F_nuxt_2Frouter_options_default.scrollBehavior(to, START_LOCATION, startPosition || savedPosition);
|
|
}
|
|
},
|
|
history,
|
|
routes
|
|
});
|
|
nuxtApp.vueApp.use(router);
|
|
const previousRoute = shallowRef(router.currentRoute.value);
|
|
router.afterEach((_to, from) => {
|
|
previousRoute.value = from;
|
|
});
|
|
Object.defineProperty(nuxtApp.vueApp.config.globalProperties, "previousRoute", { get: () => previousRoute.value });
|
|
const initialURL = nuxtApp.ssrContext.url;
|
|
const _route = shallowRef(router.currentRoute.value);
|
|
const syncCurrentRoute = () => {
|
|
_route.value = router.currentRoute.value;
|
|
};
|
|
router.afterEach((to, from) => {
|
|
const lastTo = to.matched.at(-1)?.components?.default;
|
|
const lastFrom = from.matched.at(-1)?.components?.default;
|
|
if (lastTo === lastFrom) {
|
|
if (generateRouteKey$1({
|
|
route: to,
|
|
Component: { type: lastTo }
|
|
}) === generateRouteKey$1({
|
|
route: from,
|
|
Component: { type: lastFrom }
|
|
})) syncCurrentRoute();
|
|
return;
|
|
}
|
|
if (to.matched.length < from.matched.length && to.matched.every((m, i) => m.components?.default === from.matched[i]?.components?.default)) syncCurrentRoute();
|
|
});
|
|
const route = { sync: syncCurrentRoute };
|
|
for (const key in _route.value) Object.defineProperty(route, key, {
|
|
get: () => _route.value[key],
|
|
enumerable: true
|
|
});
|
|
nuxtApp._route = shallowReactive(route);
|
|
nuxtApp._middleware ||= {
|
|
global: [],
|
|
named: {}
|
|
};
|
|
const error = /* @__PURE__ */ useError();
|
|
const isServerPage = nuxtApp.ssrContext?.islandContext?.name?.startsWith("page_");
|
|
if (!nuxtApp.ssrContext?.islandContext || isServerPage) router.afterEach(async (to, _from, failure) => {
|
|
delete nuxtApp._processingMiddleware;
|
|
delete nuxtApp._middlewareTo;
|
|
if (failure) await nuxtApp.callHook("page:loading:end");
|
|
if (failure?.type === 4) return;
|
|
if (to.redirectedFrom && to.fullPath !== initialURL) await nuxtApp.runWithContext(() => navigateTo(to.fullPath || "/"));
|
|
});
|
|
router.onError(async () => {
|
|
delete nuxtApp._processingMiddleware;
|
|
delete nuxtApp._middlewareTo;
|
|
await nuxtApp.callHook("page:loading:end");
|
|
});
|
|
try {
|
|
[__temp, __restore] = executeAsync(() => router.push(initialURL)), __temp = await __temp, __restore();
|
|
[__temp, __restore] = executeAsync(() => router.isReady()), await __temp, __restore();
|
|
} catch (error) {
|
|
[__temp, __restore] = executeAsync(() => _showErrorUnlessCrawler(nuxtApp, error)), await __temp, __restore();
|
|
}
|
|
const resolvedInitialRoute = router.currentRoute.value;
|
|
syncCurrentRoute();
|
|
if (nuxtApp.ssrContext?.islandContext && !isServerPage) return { provide: { router } };
|
|
const initialLayout = nuxtApp.payload.state._layout;
|
|
router.beforeEach(async (to, from) => {
|
|
await nuxtApp.callHook("page:loading:start");
|
|
to.meta = reactive(to.meta);
|
|
if (nuxtApp.isHydrating && initialLayout && !isReadonly(to.meta.layout)) to.meta.layout = initialLayout;
|
|
nuxtApp._processingMiddleware = true;
|
|
nuxtApp._middlewareTo = to;
|
|
if (!nuxtApp.ssrContext?.islandContext || isServerPage) {
|
|
const middlewareEntries = /* @__PURE__ */ new Set([...globalMiddleware, ...nuxtApp._middleware.global]);
|
|
for (const component of to.matched) {
|
|
const componentMiddleware = component.meta.middleware;
|
|
if (!componentMiddleware) continue;
|
|
for (const entry of toArray(componentMiddleware)) middlewareEntries.add(entry);
|
|
}
|
|
const routeRules = getRouteRules({ path: to.path });
|
|
if (routeRules.appMiddleware) for (const key in routeRules.appMiddleware) if (routeRules.appMiddleware[key]) middlewareEntries.add(key);
|
|
else middlewareEntries.delete(key);
|
|
for (const entry of middlewareEntries) {
|
|
const middleware = typeof entry === "string" ? nuxtApp._middleware.named[entry] || await namedMiddleware[entry]?.().then((r) => r.default || r) : entry;
|
|
if (!middleware) throw navigationDiagnostics.NUXT_E2004({
|
|
entry: String(entry),
|
|
validMiddleware: void 0
|
|
});
|
|
try {
|
|
const run = () => nuxtApp.runWithContext(() => middleware(to, from));
|
|
const result = await run();
|
|
if (result === false || result instanceof Error) {
|
|
const error = result || createError$1({
|
|
status: 404,
|
|
statusText: `Page Not Found: ${initialURL}`
|
|
});
|
|
await nuxtApp.runWithContext(() => showError(error));
|
|
return false;
|
|
}
|
|
if (result === true) continue;
|
|
if (result === false) return result;
|
|
if (result) {
|
|
if (isNuxtError(result) && result.fatal) await nuxtApp.runWithContext(() => showError(result));
|
|
return result;
|
|
}
|
|
} catch (err) {
|
|
const error = createError$1(err);
|
|
if (error.fatal) await nuxtApp.runWithContext(() => showError(error));
|
|
return error;
|
|
}
|
|
}
|
|
}
|
|
});
|
|
if (isServerPage) router.beforeResolve((to) => {
|
|
const expected = pageIslandRoutes[nuxtApp.ssrContext.islandContext.name];
|
|
const actual = to.matched.find((m) => (m.components?.default)?.__nuxt_island)?.components?.default;
|
|
if (!expected || expected !== actual?.__nuxt_island) {
|
|
nuxtApp.ssrContext["~renderResponse"] = {
|
|
statusCode: 400,
|
|
statusMessage: "Invalid island request path"
|
|
};
|
|
return false;
|
|
}
|
|
});
|
|
router.afterEach((to) => {
|
|
if (to.matched.length === 0 && !error.value) return nuxtApp.runWithContext(() => showError(createError$1({
|
|
status: 404,
|
|
fatal: false,
|
|
statusText: `Page not found: ${to.fullPath}`,
|
|
data: { path: to.fullPath }
|
|
})));
|
|
});
|
|
nuxtApp.hooks.hookOnce("app:created", async () => {
|
|
try {
|
|
if ("name" in resolvedInitialRoute) resolvedInitialRoute.name = void 0;
|
|
await router.replace({
|
|
...resolvedInitialRoute,
|
|
force: true
|
|
});
|
|
router.options.scrollBehavior = virtual_nuxt_node_modules_2F_cache_2Fnuxt_2F_nuxt_2Frouter_options_default.scrollBehavior;
|
|
} catch (error) {
|
|
await _showErrorUnlessCrawler(nuxtApp, error);
|
|
}
|
|
});
|
|
return { provide: { router } };
|
|
}
|
|
});
|
|
//#endregion
|
|
//#region ../site1/node_modules/nuxt/dist/app/diagnostics/head.js
|
|
/**
|
|
* E6xxx
|
|
* Head / unhead runtime diagnostics.
|
|
*/
|
|
var unheadDiagnostics = /* #__PURE__ */ defineProdDiagnostics({
|
|
docsBase,
|
|
reporters: prodReporters
|
|
});
|
|
//#endregion
|
|
//#region ../site1/node_modules/@unhead/vue/dist/shared/vue.DKb5ZKVl.mjs
|
|
var headSymbol = "usehead";
|
|
// @__NO_SIDE_EFFECTS__
|
|
function injectHead$1() {
|
|
if (hasInjectionContext()) {
|
|
const instance = inject(headSymbol);
|
|
if (instance) return instance;
|
|
}
|
|
throw new Error("useHead() was called without provide context, ensure you call it through the setup() function.");
|
|
}
|
|
//#endregion
|
|
//#region ../site1/node_modules/@unhead/vue/dist/shared/vue.D2XR8FqS.mjs
|
|
var VueResolver = /* @__PURE__ */ Object.assign((_, value) => isRef(value) ? toValue(value) : value, { _static: true });
|
|
//#endregion
|
|
//#region ../site1/node_modules/@unhead/vue/dist/shared/vue.BHyNcdic.mjs
|
|
function useHead$1(input, options = {}) {
|
|
const head = options.head || /* @__PURE__ */ injectHead$1();
|
|
return head.ssr ? head.push(input || {}, options) : clientUseHead(head, input, options);
|
|
}
|
|
function clientUseHead(head, input, options = {}) {
|
|
const scope = getCurrentScope();
|
|
if (scope && !scope.active) return {
|
|
patch() {},
|
|
dispose() {},
|
|
_i: -1
|
|
};
|
|
const deactivated = ref(false);
|
|
if (options.onRendered && scope) {
|
|
const _onRendered = options.onRendered;
|
|
options = {
|
|
...options,
|
|
onRendered: (ctx) => scope.run(() => _onRendered(ctx))
|
|
};
|
|
}
|
|
let entry;
|
|
watchEffect(() => {
|
|
const i = deactivated.value ? {} : walkResolver(input, VueResolver);
|
|
if (entry) entry.patch(i);
|
|
else entry = head.push(i, options);
|
|
});
|
|
if (getCurrentInstance()) ;
|
|
return entry;
|
|
}
|
|
//#endregion
|
|
//#region ../site1/node_modules/nuxt/dist/head/runtime/composables.js
|
|
/**
|
|
* Injects the head client from the Nuxt context or Vue inject.
|
|
*/
|
|
function injectHead(nuxtApp) {
|
|
const nuxt = nuxtApp || useNuxtApp();
|
|
return nuxt.ssrContext?.head || nuxt.runWithContext(() => {
|
|
if (hasInjectionContext()) {
|
|
const head = inject("usehead");
|
|
if (!head) throw unheadDiagnostics.NUXT_E6001();
|
|
return head;
|
|
}
|
|
});
|
|
}
|
|
function useHead(input, options = {}) {
|
|
return useHead$1(input, {
|
|
head: options.head || injectHead(options.nuxt),
|
|
...options
|
|
});
|
|
}
|
|
//#endregion
|
|
//#region ../site1/node_modules/nuxt/dist/app/composables/payload.js
|
|
/**
|
|
* This is an experimental function for configuring passing rich data from server -> client.
|
|
* @since 3.4.0
|
|
*/
|
|
function definePayloadReducer(name, reduce) {
|
|
useNuxtApp().ssrContext["~payloadReducers"][name] = reduce;
|
|
}
|
|
//#endregion
|
|
//#region ../site1/node_modules/nuxt/dist/app/plugins/revive-payload.server.js
|
|
var reducers = [
|
|
["NuxtError", (data) => isNuxtError(data) && data.toJSON()],
|
|
["EmptyShallowRef", (data) => isRef(data) && isShallow(data) && !data.value && (typeof data.value === "bigint" ? "0n" : JSON.stringify(data.value) || "_")],
|
|
["EmptyRef", (data) => isRef(data) && !data.value && (typeof data.value === "bigint" ? "0n" : JSON.stringify(data.value) || "_")],
|
|
["ShallowRef", (data) => isRef(data) && isShallow(data) && data.value],
|
|
["ShallowReactive", (data) => isReactive(data) && isShallow(data) && toRaw(data)],
|
|
["Ref", (data) => isRef(data) && data.value],
|
|
["Reactive", (data) => isReactive(data) && toRaw(data)]
|
|
];
|
|
//#endregion
|
|
//#region virtual:nuxt:node_modules%2F.cache%2Fnuxt%2F.nuxt%2Fplugins.server.mjs
|
|
var virtual_nuxt_node_modules_2F_cache_2Fnuxt_2F_nuxt_2Fplugins_server_default = [
|
|
plugin$2,
|
|
plugin$1,
|
|
/* @__PURE__ */ defineNuxtPlugin({
|
|
name: "nuxt:revive-payload:server",
|
|
setup() {
|
|
for (const [reducer, fn] of reducers) definePayloadReducer(reducer, fn);
|
|
}
|
|
}),
|
|
/* @__PURE__ */ defineNuxtPlugin({ name: "nuxt:global-components" })
|
|
];
|
|
//#endregion
|
|
//#region ../site1/node_modules/nuxt/dist/app/components/route-provider.js
|
|
var defineRouteProvider = (name = "RouteProvider") => defineComponent({
|
|
name,
|
|
props: {
|
|
route: {
|
|
type: Object,
|
|
required: true
|
|
},
|
|
vnode: Object,
|
|
vnodeRef: Object,
|
|
renderKey: String,
|
|
trackRootNodes: Boolean,
|
|
routeRecord: Object
|
|
},
|
|
setup(props) {
|
|
const previousKey = props.renderKey;
|
|
const previousRoute = props.route;
|
|
const route = {};
|
|
for (const key in props.route) Object.defineProperty(route, key, {
|
|
get: () => previousKey === props.renderKey ? props.route[key] : previousRoute[key],
|
|
enumerable: true
|
|
});
|
|
provide(PageRouteSymbol, shallowReactive(route));
|
|
return () => {
|
|
if (!props.vnode) return props.vnode;
|
|
return h(props.vnode, { ref: props.vnodeRef });
|
|
};
|
|
}
|
|
});
|
|
var RouteProvider = defineRouteProvider();
|
|
//#endregion
|
|
//#region ../site1/node_modules/nuxt/dist/pages/runtime/page.js
|
|
var page_default = defineComponent({
|
|
name: "NuxtPage",
|
|
inheritAttrs: false,
|
|
props: {
|
|
name: { type: String },
|
|
transition: {
|
|
type: [Boolean, Object],
|
|
default: void 0
|
|
},
|
|
keepalive: {
|
|
type: [Boolean, Object],
|
|
default: void 0
|
|
},
|
|
route: { type: Object },
|
|
pageKey: {
|
|
type: [Function, String],
|
|
default: null
|
|
}
|
|
},
|
|
setup(props, { attrs, slots, expose }) {
|
|
const nuxtApp = useNuxtApp();
|
|
const pageRef = ref();
|
|
inject(PageRouteSymbol, null);
|
|
expose({ pageRef });
|
|
inject(LayoutMetaSymbol, null);
|
|
nuxtApp.deferHydration();
|
|
return () => {
|
|
return h(RouterView, {
|
|
name: props.name,
|
|
route: props.route,
|
|
...attrs
|
|
}, { default: markStableSlot((routeProps) => {
|
|
return h(Suspense, { suspensible: true }, { default() {
|
|
return h(RouteProvider, {
|
|
vnode: slots.default ? normalizeSlot(slots.default, routeProps) : routeProps.Component,
|
|
route: routeProps.route,
|
|
vnodeRef: pageRef
|
|
});
|
|
} });
|
|
}) });
|
|
};
|
|
}
|
|
});
|
|
function markStableSlot(fn) {
|
|
const wrapped = ((routeProps) => {
|
|
const result = fn(routeProps);
|
|
if (Array.isArray(result)) return result;
|
|
if (result == null || !isVNode(result)) return [createCommentVNode()];
|
|
return [result];
|
|
});
|
|
wrapped._n = true;
|
|
return wrapped;
|
|
}
|
|
function normalizeSlot(slot, data) {
|
|
const slotContent = slot(data);
|
|
return slotContent.length === 1 ? h(slotContent[0]) : h(Fragment, void 0, slotContent);
|
|
}
|
|
//#endregion
|
|
//#region \0plugin-vue:export-helper
|
|
var _plugin_vue_export_helper_default = (sfc, props) => {
|
|
const target = sfc.__vccOpts || sfc;
|
|
for (const [key, val] of props) target[key] = val;
|
|
return target;
|
|
};
|
|
//#endregion
|
|
//#region components/AppFooter.vue
|
|
var _sfc_main$3 = {
|
|
__name: "AppFooter",
|
|
__ssrInlineRender: true,
|
|
setup(__props) {
|
|
const siteName = (/* @__PURE__ */ useRuntimeConfig()).public.siteName || "에듀로열 1:1 과외";
|
|
return (_ctx, _push, _parent, _attrs) => {
|
|
_push(`<footer${ssrRenderAttrs(mergeProps({ class: "site-footer" }, _attrs))} data-v-3b29a045><div class="footer-container" data-v-3b29a045><div class="footer-info" data-v-3b29a045><h4 class="footer-brand" data-v-3b29a045>${ssrInterpolate(unref(siteName))}</h4><p class="footer-meta" data-v-3b29a045> 전국 초·중·고 1:1 맞춤 방문과외 및 실시간 화상코칭 서비스 | 대표번호: 1588-0000<br data-v-3b29a045> 사업자등록번호: 123-45-67890 | 통신판매업신고: 제2026-서울강남-0123호 | 개인정보관리책임자: 교육연구소<br data-v-3b29a045> 주소: 서울특별시 강남구 테헤란로 123 에듀빌딩 4층 </p><p class="footer-copy" data-v-3b29a045> Copyright © 2026 ${ssrInterpolate(unref(siteName))}. All rights reserved. </p></div><div class="footer-links" data-v-3b29a045><a href="#consult-section" class="f-link" data-v-3b29a045>무료상담신청</a><span class="f-divider" data-v-3b29a045>|</span><span class="f-link" data-v-3b29a045>이용약관</span><span class="f-divider" data-v-3b29a045>|</span><span class="f-link" data-v-3b29a045><strong data-v-3b29a045>개인정보처리방침</strong></span></div></div></footer>`);
|
|
};
|
|
}
|
|
};
|
|
var _sfc_setup$3 = _sfc_main$3.setup;
|
|
_sfc_main$3.setup = (props, ctx) => {
|
|
const ssrContext = useSSRContext();
|
|
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/AppFooter.vue");
|
|
return _sfc_setup$3 ? _sfc_setup$3(props, ctx) : void 0;
|
|
};
|
|
var AppFooter_default = /*#__PURE__*/ _plugin_vue_export_helper_default(_sfc_main$3, [["__scopeId", "data-v-3b29a045"]]);
|
|
//#endregion
|
|
//#region app.vue
|
|
var _sfc_main$2 = {
|
|
__name: "app",
|
|
__ssrInlineRender: true,
|
|
setup(__props) {
|
|
return (_ctx, _push, _parent, _attrs) => {
|
|
const _component_NuxtPage = page_default;
|
|
const _component_AppFooter = AppFooter_default;
|
|
_push(`<div${ssrRenderAttrs(mergeProps({ class: "site-wrapper" }, _attrs))}><main class="site-main">`);
|
|
_push(ssrRenderComponent(_component_NuxtPage, null, null, _parent));
|
|
_push(`</main>`);
|
|
_push(ssrRenderComponent(_component_AppFooter, null, null, _parent));
|
|
_push(`</div>`);
|
|
};
|
|
}
|
|
};
|
|
var _sfc_setup$2 = _sfc_main$2.setup;
|
|
_sfc_main$2.setup = (props, ctx) => {
|
|
const ssrContext = useSSRContext();
|
|
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("app.vue");
|
|
return _sfc_setup$2 ? _sfc_setup$2(props, ctx) : void 0;
|
|
};
|
|
//#endregion
|
|
//#region ../site1/node_modules/nuxt/dist/app/components/nuxt-error-page.vue
|
|
var _sfc_main$1 = {
|
|
__name: "nuxt-error-page",
|
|
__ssrInlineRender: true,
|
|
props: { error: Object },
|
|
setup(__props) {
|
|
const _error = __props.error;
|
|
const status = Number(_error.statusCode || 500);
|
|
const is404 = status === 404;
|
|
const statusText = _error.statusMessage ?? (is404 ? "Page Not Found" : "Internal Server Error");
|
|
const description = _error.message || _error.toString();
|
|
const stack = void 0;
|
|
const _Error404 = defineAsyncComponent(() => import('../_/error-404-DelmxDv8.mjs'));
|
|
const _Error = defineAsyncComponent(() => import('../_/error-500-_lvxeZxk.mjs'));
|
|
const ErrorTemplate = is404 ? _Error404 : _Error;
|
|
return (_ctx, _push, _parent, _attrs) => {
|
|
_push(ssrRenderComponent(unref(ErrorTemplate), mergeProps({
|
|
status: unref(status),
|
|
statusText: unref(statusText),
|
|
statusCode: unref(status),
|
|
statusMessage: unref(statusText),
|
|
description: unref(description),
|
|
stack: unref(stack)
|
|
}, _attrs), null, _parent));
|
|
};
|
|
}
|
|
};
|
|
var _sfc_setup$1 = _sfc_main$1.setup;
|
|
_sfc_main$1.setup = (props, ctx) => {
|
|
const ssrContext = useSSRContext();
|
|
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("../site1/node_modules/nuxt/dist/app/components/nuxt-error-page.vue");
|
|
return _sfc_setup$1 ? _sfc_setup$1(props, ctx) : void 0;
|
|
};
|
|
//#endregion
|
|
//#region virtual:nuxt:node_modules%2F.cache%2Fnuxt%2F.nuxt%2Fisland-renderer.mjs
|
|
var IslandRenderer = () => null;
|
|
//#endregion
|
|
//#region ../site1/node_modules/nuxt/dist/app/components/nuxt-root.vue
|
|
var _sfc_main = {
|
|
__name: "nuxt-root",
|
|
__ssrInlineRender: true,
|
|
setup(__props) {
|
|
const nuxtApp = useNuxtApp();
|
|
nuxtApp.deferHydration();
|
|
nuxtApp.ssrContext.url;
|
|
const SingleRenderer = false;
|
|
provide(PageRouteSymbol, useRoute$2());
|
|
nuxtApp.hooks.callHookWith((hooks) => hooks.map((hook) => hook()), "vue:setup", []);
|
|
const error = /* @__PURE__ */ useError();
|
|
const abortRender = error.value && !nuxtApp.ssrContext.error;
|
|
function invokeAppErrorHandler(err, target, info) {
|
|
const errorHandler = nuxtApp.vueApp.config.errorHandler;
|
|
if (errorHandler && !errorHandler.__nuxt_default) try {
|
|
errorHandler(err, target, info);
|
|
} catch (handlerError) {
|
|
console.error("[nuxt] Error in `app.config.errorHandler`", handlerError);
|
|
}
|
|
}
|
|
onErrorCaptured((err, target, info) => {
|
|
nuxtApp.hooks.callHook("vue:error", err, target, info)?.catch((hookError) => console.error("[nuxt] Error in `vue:error` hook", hookError));
|
|
{
|
|
const p = nuxtApp.runWithContext(() => showError(err));
|
|
onServerPrefetch(() => p);
|
|
invokeAppErrorHandler(err, target, info);
|
|
return false;
|
|
}
|
|
});
|
|
const islandContext = nuxtApp.ssrContext.islandContext;
|
|
return (_ctx, _push, _parent, _attrs) => {
|
|
ssrRenderSuspense(_push, {
|
|
default: () => {
|
|
if (unref(abortRender)) _push(`<div></div>`);
|
|
else if (unref(error)) _push(ssrRenderComponent(unref(_sfc_main$1), { error: unref(error) }, null, _parent));
|
|
else if (unref(islandContext)) _push(ssrRenderComponent(unref(IslandRenderer), { context: unref(islandContext) }, null, _parent));
|
|
else if (unref(SingleRenderer)) ssrRenderVNode(_push, createVNode(resolveDynamicComponent(unref(SingleRenderer)), null, null), _parent);
|
|
else _push(ssrRenderComponent(unref(_sfc_main$2), null, null, _parent));
|
|
},
|
|
_: 1
|
|
});
|
|
};
|
|
}
|
|
};
|
|
var _sfc_setup = _sfc_main.setup;
|
|
_sfc_main.setup = (props, ctx) => {
|
|
const ssrContext = useSSRContext();
|
|
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("../site1/node_modules/nuxt/dist/app/components/nuxt-root.vue");
|
|
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
|
|
};
|
|
//#endregion
|
|
//#region ../site1/node_modules/nuxt/dist/app/entry.js
|
|
var entry$1 = async function createNuxtAppServer(ssrContext) {
|
|
const vueApp = createApp(_sfc_main);
|
|
const nuxt = createNuxtApp({
|
|
vueApp,
|
|
ssrContext
|
|
});
|
|
try {
|
|
await applyPlugins(nuxt, virtual_nuxt_node_modules_2F_cache_2Fnuxt_2F_nuxt_2Fplugins_server_default);
|
|
await nuxt.hooks.callHook("app:created", vueApp);
|
|
} catch (error) {
|
|
await nuxt.hooks.callHook("app:error", error);
|
|
nuxt.payload.error ||= createError$1(error);
|
|
}
|
|
if (ssrContext && (ssrContext["~renderResponse"] || ssrContext._renderResponse)) throw new Error("skipping render");
|
|
return vueApp;
|
|
};
|
|
var entry_default = ((ssrContext) => entry$1(ssrContext));
|
|
|
|
const entry = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
|
|
__proto__: null,
|
|
default: entry_default
|
|
}, Symbol.toStringTag, { value: 'Module' }));
|
|
|
|
export { _plugin_vue_export_helper_default as _, useRuntimeConfig as a, useRouter as b, isRootedPath as c, useNuxtApp as d, encodeRoutePath as e, nuxtLinkDefaults as f, entry as g, isAbsoluteHref as i, navigateTo as n, resolveRouteObject as r, sanitizeAnchorHref as s, useHead as u };
|
|
//# sourceMappingURL=entry.mjs.map
|