globalThis._importMeta_=globalThis._importMeta_||{url:"file:///_entry.js",env:process.env};import 'node-fetch-native/polyfill';
import { Server as Server$1 } from 'http';
import { Server } from 'https';
import destr from 'destr';
import { eventHandler, setHeaders, sendRedirect, defineEventHandler, handleCacheHeaders, createEvent, getRequestHeader, getRequestHeaders, setResponseHeader, createError, createApp, createRouter as createRouter$1, lazyEventHandler, toNodeListener } from 'h3';
import { createFetch as createFetch$1, Headers } from 'ofetch';
import { createCall, createFetch } from 'unenv/runtime/fetch/index';
import { createHooks } from 'hookable';
import { snakeCase } from 'scule';
import { hash } from 'ohash';
import { parseURL, withQuery, joinURL, withLeadingSlash, withoutTrailingSlash } from 'ufo';
import { createStorage } from 'unstorage';
import defu from 'defu';
import { toRouteMatcher, createRouter } from 'radix3';
import { promises } from 'node:fs';
import { fileURLToPath } from 'node:url';
import { dirname, resolve } from 'pathe';

const _runtimeConfig = {"app":{"baseURL":"/","buildAssetsDir":"/_nuxt/","cdnURL":""},"nitro":{"routeRules":{"/__nuxt_error":{"cache":false}},"envPrefix":"NUXT_"},"public":{"apiUrl":"http://localhost:3010"}};
const ENV_PREFIX = "NITRO_";
const ENV_PREFIX_ALT = _runtimeConfig.nitro.envPrefix ?? process.env.NITRO_ENV_PREFIX ?? "_";
const getEnv = (key) => {
  const envKey = snakeCase(key).toUpperCase();
  return destr(process.env[ENV_PREFIX + envKey] ?? process.env[ENV_PREFIX_ALT + envKey]);
};
function isObject(input) {
  return typeof input === "object" && !Array.isArray(input);
}
function overrideConfig(obj, parentKey = "") {
  for (const key in obj) {
    const subKey = parentKey ? `${parentKey}_${key}` : key;
    const envValue = getEnv(subKey);
    if (isObject(obj[key])) {
      if (isObject(envValue)) {
        obj[key] = { ...obj[key], ...envValue };
      }
      overrideConfig(obj[key], subKey);
    } else {
      obj[key] = envValue ?? obj[key];
    }
  }
}
overrideConfig(_runtimeConfig);
const config$1 = deepFreeze(_runtimeConfig);
const useRuntimeConfig = () => config$1;
function deepFreeze(object) {
  const propNames = Object.getOwnPropertyNames(object);
  for (const name of propNames) {
    const value = object[name];
    if (value && typeof value === "object") {
      deepFreeze(value);
    }
  }
  return Object.freeze(object);
}

const globalTiming = globalThis.__timing__ || {
  start: () => 0,
  end: () => 0,
  metrics: []
};
const timingMiddleware = eventHandler((event) => {
  const start = globalTiming.start();
  const _end = event.res.end;
  event.res.end = function(chunk, encoding, cb) {
    const metrics = [["Generate", globalTiming.end(start)], ...globalTiming.metrics];
    const serverTiming = metrics.map((m) => `-;dur=${m[1]};desc="${encodeURIComponent(m[0])}"`).join(", ");
    if (!event.res.headersSent) {
      event.res.setHeader("Server-Timing", serverTiming);
    }
    _end.call(event.res, chunk, encoding, cb);
    return this;
  }.bind(event.res);
});

const _assets = {

};

function normalizeKey(key) {
  if (!key) {
    return "";
  }
  return key.replace(/[/\\]/g, ":").replace(/:+/g, ":").replace(/^:|:$/g, "");
}

const assets$1 = {
  getKeys() {
    return Promise.resolve(Object.keys(_assets))
  },
  hasItem (id) {
    id = normalizeKey(id);
    return Promise.resolve(id in _assets)
  },
  getItem (id) {
    id = normalizeKey(id);
    return Promise.resolve(_assets[id] ? _assets[id].import() : null)
  },
  getMeta (id) {
    id = normalizeKey(id);
    return Promise.resolve(_assets[id] ? _assets[id].meta : {})
  }
};

const storage = createStorage({});

const useStorage = () => storage;

storage.mount('/assets', assets$1);

const config = useRuntimeConfig();
const _routeRulesMatcher = toRouteMatcher(createRouter({ routes: config.nitro.routeRules }));
function createRouteRulesHandler() {
  return eventHandler((event) => {
    const routeRules = getRouteRules(event);
    if (routeRules.headers) {
      setHeaders(event, routeRules.headers);
    }
    if (routeRules.redirect) {
      return sendRedirect(event, routeRules.redirect.to, routeRules.redirect.statusCode);
    }
  });
}
function getRouteRules(event) {
  event.context._nitro = event.context._nitro || {};
  if (!event.context._nitro.routeRules) {
    const path = new URL(event.req.url, "http://localhost").pathname;
    event.context._nitro.routeRules = getRouteRulesForPath(path);
  }
  return event.context._nitro.routeRules;
}
function getRouteRulesForPath(path) {
  return defu({}, ..._routeRulesMatcher.matchAll(path).reverse());
}

const defaultCacheOptions = {
  name: "_",
  base: "/cache",
  swr: true,
  maxAge: 1
};
function defineCachedFunction(fn, opts) {
  opts = { ...defaultCacheOptions, ...opts };
  const pending = {};
  const group = opts.group || "nitro";
  const name = opts.name || fn.name || "_";
  const integrity = hash([opts.integrity, fn, opts]);
  const validate = opts.validate || (() => true);
  async function get(key, resolver) {
    const cacheKey = [opts.base, group, name, key + ".json"].filter(Boolean).join(":").replace(/:\/$/, ":index");
    const entry = await useStorage().getItem(cacheKey) || {};
    const ttl = (opts.maxAge ?? opts.maxAge ?? 0) * 1e3;
    if (ttl) {
      entry.expires = Date.now() + ttl;
    }
    const expired = entry.integrity !== integrity || ttl && Date.now() - (entry.mtime || 0) > ttl || !validate(entry);
    const _resolve = async () => {
      if (!pending[key]) {
        entry.value = void 0;
        entry.integrity = void 0;
        entry.mtime = void 0;
        entry.expires = void 0;
        pending[key] = Promise.resolve(resolver());
      }
      entry.value = await pending[key];
      entry.mtime = Date.now();
      entry.integrity = integrity;
      delete pending[key];
      if (validate(entry)) {
        useStorage().setItem(cacheKey, entry).catch((error) => console.error("[nitro] [cache]", error));
      }
    };
    const _resolvePromise = expired ? _resolve() : Promise.resolve();
    if (opts.swr && entry.value) {
      _resolvePromise.catch(console.error);
      return Promise.resolve(entry);
    }
    return _resolvePromise.then(() => entry);
  }
  return async (...args) => {
    const key = (opts.getKey || getKey)(...args);
    const entry = await get(key, () => fn(...args));
    let value = entry.value;
    if (opts.transform) {
      value = await opts.transform(entry, ...args) || value;
    }
    return value;
  };
}
const cachedFunction = defineCachedFunction;
function getKey(...args) {
  return args.length ? hash(args, {}) : "";
}
function defineCachedEventHandler(handler, opts = defaultCacheOptions) {
  const _opts = {
    ...opts,
    getKey: (event) => {
      const url = event.req.originalUrl || event.req.url;
      const friendlyName = decodeURI(parseURL(url).pathname).replace(/[^a-zA-Z0-9]/g, "").substring(0, 16);
      const urlHash = hash(url);
      return `${friendlyName}.${urlHash}`;
    },
    validate: (entry) => {
      if (entry.value.code >= 400) {
        return false;
      }
      if (entry.value.body === void 0) {
        return false;
      }
      return true;
    },
    group: opts.group || "nitro/handlers",
    integrity: [
      opts.integrity,
      handler
    ]
  };
  const _cachedHandler = cachedFunction(async (incomingEvent) => {
    const reqProxy = cloneWithProxy(incomingEvent.req, { headers: {} });
    const resHeaders = {};
    let _resSendBody;
    const resProxy = cloneWithProxy(incomingEvent.res, {
      statusCode: 200,
      getHeader(name) {
        return resHeaders[name];
      },
      setHeader(name, value) {
        resHeaders[name] = value;
        return this;
      },
      getHeaderNames() {
        return Object.keys(resHeaders);
      },
      hasHeader(name) {
        return name in resHeaders;
      },
      removeHeader(name) {
        delete resHeaders[name];
      },
      getHeaders() {
        return resHeaders;
      },
      end(chunk, arg2, arg3) {
        if (typeof chunk === "string") {
          _resSendBody = chunk;
        }
        if (typeof arg2 === "function") {
          arg2();
        }
        if (typeof arg3 === "function") {
          arg3();
        }
        return this;
      },
      write(chunk, arg2, arg3) {
        if (typeof chunk === "string") {
          _resSendBody = chunk;
        }
        if (typeof arg2 === "function") {
          arg2();
        }
        if (typeof arg3 === "function") {
          arg3();
        }
        return this;
      },
      writeHead(statusCode, headers2) {
        this.statusCode = statusCode;
        if (headers2) {
          for (const header in headers2) {
            this.setHeader(header, headers2[header]);
          }
        }
        return this;
      }
    });
    const event = createEvent(reqProxy, resProxy);
    event.context = incomingEvent.context;
    const body = await handler(event) || _resSendBody;
    const headers = event.res.getHeaders();
    headers.etag = headers.Etag || headers.etag || `W/"${hash(body)}"`;
    headers["last-modified"] = headers["Last-Modified"] || headers["last-modified"] || new Date().toUTCString();
    const cacheControl = [];
    if (opts.swr) {
      if (opts.maxAge) {
        cacheControl.push(`s-maxage=${opts.maxAge}`);
      }
      if (opts.staleMaxAge) {
        cacheControl.push(`stale-while-revalidate=${opts.staleMaxAge}`);
      } else {
        cacheControl.push("stale-while-revalidate");
      }
    } else if (opts.maxAge) {
      cacheControl.push(`max-age=${opts.maxAge}`);
    }
    if (cacheControl.length) {
      headers["cache-control"] = cacheControl.join(", ");
    }
    const cacheEntry = {
      code: event.res.statusCode,
      headers,
      body
    };
    return cacheEntry;
  }, _opts);
  return defineEventHandler(async (event) => {
    if (opts.headersOnly) {
      if (handleCacheHeaders(event, { maxAge: opts.maxAge })) {
        return;
      }
      return handler(event);
    }
    const response = await _cachedHandler(event);
    if (event.res.headersSent || event.res.writableEnded) {
      return response.body;
    }
    if (handleCacheHeaders(event, {
      modifiedTime: new Date(response.headers["last-modified"]),
      etag: response.headers.etag,
      maxAge: opts.maxAge
    })) {
      return;
    }
    event.res.statusCode = response.code;
    for (const name in response.headers) {
      event.res.setHeader(name, response.headers[name]);
    }
    return response.body;
  });
}
function cloneWithProxy(obj, overrides) {
  return new Proxy(obj, {
    get(target, property, receiver) {
      if (property in overrides) {
        return overrides[property];
      }
      return Reflect.get(target, property, receiver);
    },
    set(target, property, value, receiver) {
      if (property in overrides) {
        overrides[property] = value;
        return true;
      }
      return Reflect.set(target, property, value, receiver);
    }
  });
}
const cachedEventHandler = defineCachedEventHandler;

const plugins = [
  
];

function hasReqHeader(event, name, includes) {
  const value = getRequestHeader(event, name);
  return value && typeof value === "string" && value.toLowerCase().includes(includes);
}
function isJsonRequest(event) {
  return hasReqHeader(event, "accept", "application/json") || hasReqHeader(event, "user-agent", "curl/") || hasReqHeader(event, "user-agent", "httpie/") || event.req.url?.endsWith(".json") || event.req.url?.includes("/api/");
}
function normalizeError(error) {
  const cwd = process.cwd();
  const stack = (error.stack || "").split("\n").splice(1).filter((line) => line.includes("at ")).map((line) => {
    const text = line.replace(cwd + "/", "./").replace("webpack:/", "").replace("file://", "").trim();
    return {
      text,
      internal: line.includes("node_modules") && !line.includes(".cache") || line.includes("internal") || line.includes("new Promise")
    };
  });
  const statusCode = error.statusCode || 500;
  const statusMessage = error.statusMessage ?? (statusCode === 404 ? "Not Found" : "");
  const message = error.message || error.toString();
  return {
    stack,
    statusCode,
    statusMessage,
    message
  };
}

const errorHandler = (async function errorhandler(error, event) {
  const { stack, statusCode, statusMessage, message } = normalizeError(error);
  const errorObject = {
    url: event.node.req.url,
    statusCode,
    statusMessage,
    message,
    stack: "",
    data: error.data
  };
  event.node.res.statusCode = errorObject.statusCode !== 200 && errorObject.statusCode || 500;
  if (errorObject.statusMessage) {
    event.node.res.statusMessage = errorObject.statusMessage;
  }
  if (error.unhandled || error.fatal) {
    const tags = [
      "[nuxt]",
      "[request error]",
      error.unhandled && "[unhandled]",
      error.fatal && "[fatal]",
      Number(errorObject.statusCode) !== 200 && `[${errorObject.statusCode}]`
    ].filter(Boolean).join(" ");
    console.error(tags, errorObject.message + "\n" + stack.map((l) => "  " + l.text).join("  \n"));
  }
  if (isJsonRequest(event)) {
    event.node.res.setHeader("Content-Type", "application/json");
    event.node.res.end(JSON.stringify(errorObject));
    return;
  }
  const isErrorPage = event.node.req.url?.startsWith("/__nuxt_error");
  const res = !isErrorPage ? await useNitroApp().localFetch(withQuery(joinURL(useRuntimeConfig().app.baseURL, "/__nuxt_error"), errorObject), {
    headers: getRequestHeaders(event),
    redirect: "manual"
  }).catch(() => null) : null;
  if (!res) {
    const { template } = await import('./error-500.mjs');
    event.node.res.setHeader("Content-Type", "text/html;charset=UTF-8");
    event.node.res.end(template(errorObject));
    return;
  }
  for (const [header, value] of res.headers.entries()) {
    setResponseHeader(event, header, value);
  }
  if (res.status && res.status !== 200) {
    event.node.res.statusCode = res.status;
  }
  if (res.statusText) {
    event.node.res.statusMessage = res.statusText;
  }
  event.node.res.end(await res.text());
});

const assets = {
  "/css/nuxt-google-fonts.css": {
    "type": "text/css; charset=utf-8",
    "etag": "\"9eb-VmcjOi5eOJPV+5EyOLpPDwu/i+k\"",
    "mtime": "2022-12-08T17:23:31.879Z",
    "size": 2539,
    "path": "../public/css/nuxt-google-fonts.css"
  },
  "/fonts/Asap-400-1.woff2": {
    "type": "font/woff2",
    "etag": "\"da0-Grpj92Xa+hoJJaLlXacZTDatbdg\"",
    "mtime": "2022-12-08T17:23:31.847Z",
    "size": 3488,
    "path": "../public/fonts/Asap-400-1.woff2"
  },
  "/fonts/Asap-400-2.woff2": {
    "type": "font/woff2",
    "etag": "\"26f0-MSpUtXybDRIOabnWWV53mxL4h3E\"",
    "mtime": "2022-12-08T17:23:31.859Z",
    "size": 9968,
    "path": "../public/fonts/Asap-400-2.woff2"
  },
  "/fonts/Asap-400-3.woff2": {
    "type": "font/woff2",
    "etag": "\"33d4-V/9Agd3jh3UqyAUHqfrrjq/Y2kQ\"",
    "mtime": "2022-12-08T17:23:31.867Z",
    "size": 13268,
    "path": "../public/fonts/Asap-400-3.woff2"
  },
  "/fonts/Nunito-400-4.woff2": {
    "type": "font/woff2",
    "etag": "\"2884-PEU9ZZZJolbbwttcAv50dVqiEDo\"",
    "mtime": "2022-12-08T17:23:31.864Z",
    "size": 10372,
    "path": "../public/fonts/Nunito-400-4.woff2"
  },
  "/fonts/Nunito-400-5.woff2": {
    "type": "font/woff2",
    "etag": "\"1e64-B0w/V2/DPKprnDSKAKDC0Eqe2cI\"",
    "mtime": "2022-12-08T17:23:31.864Z",
    "size": 7780,
    "path": "../public/fonts/Nunito-400-5.woff2"
  },
  "/fonts/Nunito-400-6.woff2": {
    "type": "font/woff2",
    "etag": "\"109c-BZjbfuYE2+HWTleJaRSJlUvzM6M\"",
    "mtime": "2022-12-08T17:23:31.859Z",
    "size": 4252,
    "path": "../public/fonts/Nunito-400-6.woff2"
  },
  "/fonts/Nunito-400-7.woff2": {
    "type": "font/woff2",
    "etag": "\"31c0-TYJzHsR3fYOgI/JNsNJz4hedC6M\"",
    "mtime": "2022-12-08T17:23:31.872Z",
    "size": 12736,
    "path": "../public/fonts/Nunito-400-7.woff2"
  },
  "/fonts/Nunito-400-8.woff2": {
    "type": "font/woff2",
    "etag": "\"36ec-rQbz/9DbYDTrChL5iqiqTerUMPs\"",
    "mtime": "2022-12-08T17:23:31.878Z",
    "size": 14060,
    "path": "../public/fonts/Nunito-400-8.woff2"
  },
  "/_nuxt/Account.c2caf63f.svg": {
    "type": "image/svg+xml",
    "etag": "\"af58-crREvuBS1ooRyGV1WHwYKO7yMt8\"",
    "mtime": "2022-12-08T17:23:38.850Z",
    "size": 44888,
    "path": "../public/_nuxt/Account.c2caf63f.svg"
  },
  "/_nuxt/add.21d4e03d.js": {
    "type": "application/javascript",
    "etag": "\"226-q3jdMNbU6ZRl+H/cyGpetXS5pKg\"",
    "mtime": "2022-12-08T17:23:38.854Z",
    "size": 550,
    "path": "../public/_nuxt/add.21d4e03d.js"
  },
  "/_nuxt/add.3ef433de.js": {
    "type": "application/javascript",
    "etag": "\"10b-uu89pmsn5zqf5yyU+0r5DE4bJA8\"",
    "mtime": "2022-12-08T17:23:38.859Z",
    "size": 267,
    "path": "../public/_nuxt/add.3ef433de.js"
  },
  "/_nuxt/add.9b07dbd5.js": {
    "type": "application/javascript",
    "etag": "\"115-GsBodC8Ovhx5hHKZJkwwvMTdAC0\"",
    "mtime": "2022-12-08T17:23:38.854Z",
    "size": 277,
    "path": "../public/_nuxt/add.9b07dbd5.js"
  },
  "/_nuxt/add.a552e612.js": {
    "type": "application/javascript",
    "etag": "\"10b-Oj+RZnbgfNXJM2Kajf7YrYnIbac\"",
    "mtime": "2022-12-08T17:23:38.857Z",
    "size": 267,
    "path": "../public/_nuxt/add.a552e612.js"
  },
  "/_nuxt/add.a8c4f9ae.js": {
    "type": "application/javascript",
    "etag": "\"109-mdpCgkhOD6oy6cGQDMOjZ4i71yo\"",
    "mtime": "2022-12-08T17:23:38.859Z",
    "size": 265,
    "path": "../public/_nuxt/add.a8c4f9ae.js"
  },
  "/_nuxt/add.c09875af.js": {
    "type": "application/javascript",
    "etag": "\"109-B/GpfWX7WhZs0ofBrGzXAUMGkO8\"",
    "mtime": "2022-12-08T17:23:38.863Z",
    "size": 265,
    "path": "../public/_nuxt/add.c09875af.js"
  },
  "/_nuxt/Asap-400-2.cf56d6d4.woff2": {
    "type": "font/woff2",
    "etag": "\"26f0-MSpUtXybDRIOabnWWV53mxL4h3E\"",
    "mtime": "2022-12-08T17:23:38.849Z",
    "size": 9968,
    "path": "../public/_nuxt/Asap-400-2.cf56d6d4.woff2"
  },
  "/_nuxt/Asap-400-3.737e7631.woff2": {
    "type": "font/woff2",
    "etag": "\"33d4-V/9Agd3jh3UqyAUHqfrrjq/Y2kQ\"",
    "mtime": "2022-12-08T17:23:38.846Z",
    "size": 13268,
    "path": "../public/_nuxt/Asap-400-3.737e7631.woff2"
  },
  "/_nuxt/component.6c997487.js": {
    "type": "application/javascript",
    "etag": "\"bdf-qWxiOcN4/Ey7SN1F6c4Ipe+tqgM\"",
    "mtime": "2022-12-08T17:23:38.851Z",
    "size": 3039,
    "path": "../public/_nuxt/component.6c997487.js"
  },
  "/_nuxt/components.9cfe348a.css": {
    "type": "text/css; charset=utf-8",
    "etag": "\"2f5d-6FMbQK4bjdmTsagCvEaf0kG/7j8\"",
    "mtime": "2022-12-08T17:23:38.864Z",
    "size": 12125,
    "path": "../public/_nuxt/components.9cfe348a.css"
  },
  "/_nuxt/components.client.e8e3e180.js": {
    "type": "application/javascript",
    "etag": "\"25fa-ElqrJFotxaUin1ZSsrHEwmry5O4\"",
    "mtime": "2022-12-08T17:23:38.854Z",
    "size": 9722,
    "path": "../public/_nuxt/components.client.e8e3e180.js"
  },
  "/_nuxt/composables.3f41d4a8.js": {
    "type": "application/javascript",
    "etag": "\"5c-cVjaB44yFM6ISxEZY5SaIbEgFR8\"",
    "mtime": "2022-12-08T17:23:38.854Z",
    "size": 92,
    "path": "../public/_nuxt/composables.3f41d4a8.js"
  },
  "/_nuxt/default.30120196.js": {
    "type": "application/javascript",
    "etag": "\"297-4FnlTteU6u8PlMwTPJ/5A3Dx4YY\"",
    "mtime": "2022-12-08T17:23:38.863Z",
    "size": 663,
    "path": "../public/_nuxt/default.30120196.js"
  },
  "/_nuxt/default.39827890.css": {
    "type": "text/css; charset=utf-8",
    "etag": "\"24-DdBTiWq9YGHT67KAhobwefUIAlc\"",
    "mtime": "2022-12-08T17:23:38.864Z",
    "size": 36,
    "path": "../public/_nuxt/default.39827890.css"
  },
  "/_nuxt/enity-nav.3debeb1d.js": {
    "type": "application/javascript",
    "etag": "\"27d-h0+j9aSnsmfiASQZKq54JHDllKg\"",
    "mtime": "2022-12-08T17:23:38.854Z",
    "size": 637,
    "path": "../public/_nuxt/enity-nav.3debeb1d.js"
  },
  "/_nuxt/entry.6c387933.css": {
    "type": "text/css; charset=utf-8",
    "etag": "\"4db3f-NW/E08FMciOEM/BcVX1V+HOv/eU\"",
    "mtime": "2022-12-08T17:23:38.865Z",
    "size": 318271,
    "path": "../public/_nuxt/entry.6c387933.css"
  },
  "/_nuxt/entry.731fa101.js": {
    "type": "application/javascript",
    "etag": "\"6e9bf-LCj+z7CBtflmsXMt0wqEu5LrRxE\"",
    "mtime": "2022-12-08T17:23:38.850Z",
    "size": 453055,
    "path": "../public/_nuxt/entry.731fa101.js"
  },
  "/_nuxt/error-404.37afb329.css": {
    "type": "text/css; charset=utf-8",
    "etag": "\"e2e-ByFsBrvVlyo8rkr1MFmM0O7O1IU\"",
    "mtime": "2022-12-08T17:23:38.865Z",
    "size": 3630,
    "path": "../public/_nuxt/error-404.37afb329.css"
  },
  "/_nuxt/error-404.b1c43384.js": {
    "type": "application/javascript",
    "etag": "\"8d5-NlOjfPEvGQ0jwfG6JCZr//2I0H4\"",
    "mtime": "2022-12-08T17:23:38.863Z",
    "size": 2261,
    "path": "../public/_nuxt/error-404.b1c43384.js"
  },
  "/_nuxt/error-500.b7351e05.css": {
    "type": "text/css; charset=utf-8",
    "etag": "\"79e-MYG3JJRjHaBMiPwIKSogK0Nv5vY\"",
    "mtime": "2022-12-08T17:23:38.865Z",
    "size": 1950,
    "path": "../public/_nuxt/error-500.b7351e05.css"
  },
  "/_nuxt/error-500.fe274e78.js": {
    "type": "application/javascript",
    "etag": "\"77e-6G1P/aOURCue8Cf5dD80NRFKguE\"",
    "mtime": "2022-12-08T17:23:38.863Z",
    "size": 1918,
    "path": "../public/_nuxt/error-500.fe274e78.js"
  },
  "/_nuxt/error-component.912be1bb.js": {
    "type": "application/javascript",
    "etag": "\"4ad-3RA/IXTdeyasxHOIRyU6vzkkshk\"",
    "mtime": "2022-12-08T17:23:38.850Z",
    "size": 1197,
    "path": "../public/_nuxt/error-component.912be1bb.js"
  },
  "/_nuxt/fa-brands-400.b1d1c1b0.ttf": {
    "type": "font/ttf",
    "etag": "\"2d70c-oUqR2MFw/J4VkED2eUNp2CnghZ4\"",
    "mtime": "2022-12-08T17:23:38.850Z",
    "size": 186124,
    "path": "../public/_nuxt/fa-brands-400.b1d1c1b0.ttf"
  },
  "/_nuxt/fa-brands-400.c61287c2.woff2": {
    "type": "font/woff2",
    "etag": "\"1a488-uZgTs8Ux2P6QrtO3XS7XH44Mh/Q\"",
    "mtime": "2022-12-08T17:23:38.850Z",
    "size": 107656,
    "path": "../public/_nuxt/fa-brands-400.c61287c2.woff2"
  },
  "/_nuxt/fa-regular-400.5da313b0.woff2": {
    "type": "font/woff2",
    "etag": "\"6294-MRlnZ1CvDgvDOMxKrSIL3HLFbMU\"",
    "mtime": "2022-12-08T17:23:38.849Z",
    "size": 25236,
    "path": "../public/_nuxt/fa-regular-400.5da313b0.woff2"
  },
  "/_nuxt/fa-regular-400.d7b19fe2.ttf": {
    "type": "font/ttf",
    "etag": "\"f370-2tOtcbODeJu2LCSXQu9Z40aF59A\"",
    "mtime": "2022-12-08T17:23:38.850Z",
    "size": 62320,
    "path": "../public/_nuxt/fa-regular-400.d7b19fe2.ttf"
  },
  "/_nuxt/fa-solid-900.8f06540f.woff2": {
    "type": "font/woff2",
    "etag": "\"24bf4-wObna0oCw0ZW/ypBtnHgLyghgps\"",
    "mtime": "2022-12-08T17:23:38.849Z",
    "size": 150516,
    "path": "../public/_nuxt/fa-solid-900.8f06540f.woff2"
  },
  "/_nuxt/fa-solid-900.e4f6a7e9.ttf": {
    "type": "font/ttf",
    "etag": "\"6106c-Prm0suoicRuW47NWGW/SC08X+w4\"",
    "mtime": "2022-12-08T17:23:38.850Z",
    "size": 397420,
    "path": "../public/_nuxt/fa-solid-900.e4f6a7e9.ttf"
  },
  "/_nuxt/fa-v4compatibility.2ddb3b41.ttf": {
    "type": "font/ttf",
    "etag": "\"279c-UqhKZJXif0Ppdi8sKpUx2f4V6e4\"",
    "mtime": "2022-12-08T17:23:38.850Z",
    "size": 10140,
    "path": "../public/_nuxt/fa-v4compatibility.2ddb3b41.ttf"
  },
  "/_nuxt/fa-v4compatibility.f46715c9.woff2": {
    "type": "font/woff2",
    "etag": "\"11d8-3X5Kdt4m6eORaN+sP7uKNKh7drw\"",
    "mtime": "2022-12-08T17:23:38.850Z",
    "size": 4568,
    "path": "../public/_nuxt/fa-v4compatibility.f46715c9.woff2"
  },
  "/_nuxt/footer.5c42222c.js": {
    "type": "application/javascript",
    "etag": "\"133-0Utj4usDBnrih8qXOuR/nwwI0yM\"",
    "mtime": "2022-12-08T17:23:38.863Z",
    "size": 307,
    "path": "../public/_nuxt/footer.5c42222c.js"
  },
  "/_nuxt/header.2f5fb5da.js": {
    "type": "application/javascript",
    "etag": "\"58f-YXtjioNMYtMD9uaBIZ1vItEw9cY\"",
    "mtime": "2022-12-08T17:23:38.863Z",
    "size": 1423,
    "path": "../public/_nuxt/header.2f5fb5da.js"
  },
  "/_nuxt/index.0b3426ae.js": {
    "type": "application/javascript",
    "etag": "\"2f1-b94okiS9MZhW/mwK4QdKiqYB0I8\"",
    "mtime": "2022-12-08T17:23:38.859Z",
    "size": 753,
    "path": "../public/_nuxt/index.0b3426ae.js"
  },
  "/_nuxt/index.14aaf5ec.js": {
    "type": "application/javascript",
    "etag": "\"209-bATHhkAl/XYqDbqcUoS1JRWMl/I\"",
    "mtime": "2022-12-08T17:23:38.850Z",
    "size": 521,
    "path": "../public/_nuxt/index.14aaf5ec.js"
  },
  "/_nuxt/index.25a55c8f.js": {
    "type": "application/javascript",
    "etag": "\"16d-VmfgFLI+c8H6NxUjyNoDT+hPlJY\"",
    "mtime": "2022-12-08T17:23:38.863Z",
    "size": 365,
    "path": "../public/_nuxt/index.25a55c8f.js"
  },
  "/_nuxt/index.3b08edb5.js": {
    "type": "application/javascript",
    "etag": "\"290-taJ2HZPJ53SaaE1HhyleY1NtCHE\"",
    "mtime": "2022-12-08T17:23:38.859Z",
    "size": 656,
    "path": "../public/_nuxt/index.3b08edb5.js"
  },
  "/_nuxt/index.51cd224f.js": {
    "type": "application/javascript",
    "etag": "\"1d6-ayzGFr/efU+64cbbJEh7iezJCaM\"",
    "mtime": "2022-12-08T17:23:38.854Z",
    "size": 470,
    "path": "../public/_nuxt/index.51cd224f.js"
  },
  "/_nuxt/index.54ad8157.js": {
    "type": "application/javascript",
    "etag": "\"383-9NsCaaw5Z0YQInUmZqwbD5On+a0\"",
    "mtime": "2022-12-08T17:23:38.859Z",
    "size": 899,
    "path": "../public/_nuxt/index.54ad8157.js"
  },
  "/_nuxt/index.5d7dc0f3.js": {
    "type": "application/javascript",
    "etag": "\"3a6-G/lqrYsUwokpTqeQw2dsjSbWD6Y\"",
    "mtime": "2022-12-08T17:23:38.854Z",
    "size": 934,
    "path": "../public/_nuxt/index.5d7dc0f3.js"
  },
  "/_nuxt/index.64073982.js": {
    "type": "application/javascript",
    "etag": "\"1eb-Zmvo/xuj0KmYp/k4II8Gq91lHdU\"",
    "mtime": "2022-12-08T17:23:38.858Z",
    "size": 491,
    "path": "../public/_nuxt/index.64073982.js"
  },
  "/_nuxt/index.708179c9.js": {
    "type": "application/javascript",
    "etag": "\"2f4-hE0vDQ153tbXAS+SWbdZZ6XRM7Y\"",
    "mtime": "2022-12-08T17:23:38.859Z",
    "size": 756,
    "path": "../public/_nuxt/index.708179c9.js"
  },
  "/_nuxt/index.76983472.js": {
    "type": "application/javascript",
    "etag": "\"316-nkFHH4FfQDtZ5lhziv+u4kqyyBs\"",
    "mtime": "2022-12-08T17:23:38.854Z",
    "size": 790,
    "path": "../public/_nuxt/index.76983472.js"
  },
  "/_nuxt/index.8190a0e0.js": {
    "type": "application/javascript",
    "etag": "\"2f1-aqbEXq/YTsLVRRIo3oR3DbhBQ90\"",
    "mtime": "2022-12-08T17:23:38.863Z",
    "size": 753,
    "path": "../public/_nuxt/index.8190a0e0.js"
  },
  "/_nuxt/index.89fe88f4.js": {
    "type": "application/javascript",
    "etag": "\"335-/kvgk11ECfr9o39CkbDHx3jHH7k\"",
    "mtime": "2022-12-08T17:23:38.863Z",
    "size": 821,
    "path": "../public/_nuxt/index.89fe88f4.js"
  },
  "/_nuxt/index.a26fb5c4.js": {
    "type": "application/javascript",
    "etag": "\"1d0-cHZjEi1+l7HRP3z0pvJvbzXoUyU\"",
    "mtime": "2022-12-08T17:23:38.859Z",
    "size": 464,
    "path": "../public/_nuxt/index.a26fb5c4.js"
  },
  "/_nuxt/index.a5f54f35.js": {
    "type": "application/javascript",
    "etag": "\"392-Xfel0kUo8l4T6mwVxt6GqVd6a/Y\"",
    "mtime": "2022-12-08T17:23:38.854Z",
    "size": 914,
    "path": "../public/_nuxt/index.a5f54f35.js"
  },
  "/_nuxt/index.ab39b3dd.js": {
    "type": "application/javascript",
    "etag": "\"2f9-aa0cuTw1J4W0+I3WvwbvhaTTllw\"",
    "mtime": "2022-12-08T17:23:38.858Z",
    "size": 761,
    "path": "../public/_nuxt/index.ab39b3dd.js"
  },
  "/_nuxt/index.b24e3649.js": {
    "type": "application/javascript",
    "etag": "\"b8-Vnh57QJ1F6b6fk5P6lro3sIZi3s\"",
    "mtime": "2022-12-08T17:23:38.863Z",
    "size": 184,
    "path": "../public/_nuxt/index.b24e3649.js"
  },
  "/_nuxt/index.b62775cd.js": {
    "type": "application/javascript",
    "etag": "\"389-rtqwvRvQa+3sQq6x0EcgGDUr4CM\"",
    "mtime": "2022-12-08T17:23:38.858Z",
    "size": 905,
    "path": "../public/_nuxt/index.b62775cd.js"
  },
  "/_nuxt/index.d1028052.js": {
    "type": "application/javascript",
    "etag": "\"38b-U4V4MzI/piIrEuTQwKvSRzb//MU\"",
    "mtime": "2022-12-08T17:23:38.859Z",
    "size": 907,
    "path": "../public/_nuxt/index.d1028052.js"
  },
  "/_nuxt/index.e0f724bd.js": {
    "type": "application/javascript",
    "etag": "\"268-YTXtwBs4G53SJWiSlyY0Gx3P88Y\"",
    "mtime": "2022-12-08T17:23:38.854Z",
    "size": 616,
    "path": "../public/_nuxt/index.e0f724bd.js"
  },
  "/_nuxt/index.ea815a81.js": {
    "type": "application/javascript",
    "etag": "\"37f-cXOPYxVRo0vRZEM/PGidHqIoX9w\"",
    "mtime": "2022-12-08T17:23:38.863Z",
    "size": 895,
    "path": "../public/_nuxt/index.ea815a81.js"
  },
  "/_nuxt/index.f5221fcf.js": {
    "type": "application/javascript",
    "etag": "\"1d1-HmO7+Cc29Ol5Gm4RHgY0hegKbzY\"",
    "mtime": "2022-12-08T17:23:38.855Z",
    "size": 465,
    "path": "../public/_nuxt/index.f5221fcf.js"
  },
  "/_nuxt/login.5f38ee51.js": {
    "type": "application/javascript",
    "etag": "\"56a-RijE5EFvPXq26tPoFnEMLF1AbCM\"",
    "mtime": "2022-12-08T17:23:38.863Z",
    "size": 1386,
    "path": "../public/_nuxt/login.5f38ee51.js"
  },
  "/_nuxt/Login.bb43092d.svg": {
    "type": "image/svg+xml",
    "etag": "\"fc06-lwQ9HrOQg0bJeahOdAUHu3CtCq4\"",
    "mtime": "2022-12-08T17:23:38.850Z",
    "size": 64518,
    "path": "../public/_nuxt/Login.bb43092d.svg"
  },
  "/_nuxt/LoginSVG.150727e9.js": {
    "type": "application/javascript",
    "etag": "\"140-ze7CShcT8kVjfafx+J1ZP8fA/ag\"",
    "mtime": "2022-12-08T17:23:38.854Z",
    "size": 320,
    "path": "../public/_nuxt/LoginSVG.150727e9.js"
  },
  "/_nuxt/logout.b348f104.js": {
    "type": "application/javascript",
    "etag": "\"164-XWd9JSUzLT+AgYd8bWaw25J97EQ\"",
    "mtime": "2022-12-08T17:23:38.863Z",
    "size": 356,
    "path": "../public/_nuxt/logout.b348f104.js"
  },
  "/_nuxt/Nunito-400-4.29a4d00e.woff2": {
    "type": "font/woff2",
    "etag": "\"2884-PEU9ZZZJolbbwttcAv50dVqiEDo\"",
    "mtime": "2022-12-08T17:23:38.849Z",
    "size": 10372,
    "path": "../public/_nuxt/Nunito-400-4.29a4d00e.woff2"
  },
  "/_nuxt/Nunito-400-5.ce5142e3.woff2": {
    "type": "font/woff2",
    "etag": "\"1e64-B0w/V2/DPKprnDSKAKDC0Eqe2cI\"",
    "mtime": "2022-12-08T17:23:38.849Z",
    "size": 7780,
    "path": "../public/_nuxt/Nunito-400-5.ce5142e3.woff2"
  },
  "/_nuxt/Nunito-400-6.7ed3b3e7.woff2": {
    "type": "font/woff2",
    "etag": "\"109c-BZjbfuYE2+HWTleJaRSJlUvzM6M\"",
    "mtime": "2022-12-08T17:23:38.849Z",
    "size": 4252,
    "path": "../public/_nuxt/Nunito-400-6.7ed3b3e7.woff2"
  },
  "/_nuxt/Nunito-400-7.a8aed46d.woff2": {
    "type": "font/woff2",
    "etag": "\"31c0-TYJzHsR3fYOgI/JNsNJz4hedC6M\"",
    "mtime": "2022-12-08T17:23:38.849Z",
    "size": 12736,
    "path": "../public/_nuxt/Nunito-400-7.a8aed46d.woff2"
  },
  "/_nuxt/Nunito-400-8.5e2f97ea.woff2": {
    "type": "font/woff2",
    "etag": "\"36ec-rQbz/9DbYDTrChL5iqiqTerUMPs\"",
    "mtime": "2022-12-08T17:23:38.849Z",
    "size": 14060,
    "path": "../public/_nuxt/Nunito-400-8.5e2f97ea.woff2"
  },
  "/_nuxt/permissions.c94b6b4c.js": {
    "type": "application/javascript",
    "etag": "\"146-PY4BqPWv9vIIwGWEx8ROsoORjPo\"",
    "mtime": "2022-12-08T17:23:38.859Z",
    "size": 326,
    "path": "../public/_nuxt/permissions.c94b6b4c.js"
  },
  "/_nuxt/permissions.d08a01b7.js": {
    "type": "application/javascript",
    "etag": "\"141-18xWZ6tRSt/HlcxX6z8vOPKu548\"",
    "mtime": "2022-12-08T17:23:38.859Z",
    "size": 321,
    "path": "../public/_nuxt/permissions.d08a01b7.js"
  },
  "/_nuxt/permissions.ee4bd313.js": {
    "type": "application/javascript",
    "etag": "\"147-7RWuKIyTCl+SLVhkjmNw31mq0Ag\"",
    "mtime": "2022-12-08T17:23:38.858Z",
    "size": 327,
    "path": "../public/_nuxt/permissions.ee4bd313.js"
  },
  "/_nuxt/robots.31458929.js": {
    "type": "application/javascript",
    "etag": "\"147-wB8vva4FBwLplWYZsuPrTx1IoZs\"",
    "mtime": "2022-12-08T17:23:38.854Z",
    "size": 327,
    "path": "../public/_nuxt/robots.31458929.js"
  },
  "/_nuxt/roles.03eebb9e.js": {
    "type": "application/javascript",
    "etag": "\"141-QZYDp/fJDnz4ILAV9O45L8vtMJA\"",
    "mtime": "2022-12-08T17:23:38.854Z",
    "size": 321,
    "path": "../public/_nuxt/roles.03eebb9e.js"
  },
  "/_nuxt/roles.1ac4cffc.js": {
    "type": "application/javascript",
    "etag": "\"13c-ZdJHBS505rQW0g5AQyGyXTtvg6E\"",
    "mtime": "2022-12-08T17:23:38.858Z",
    "size": 316,
    "path": "../public/_nuxt/roles.1ac4cffc.js"
  },
  "/_nuxt/roles.db2ae30f.js": {
    "type": "application/javascript",
    "etag": "\"140-6rIEguPfkeJAQOguIzwNi67NAkQ\"",
    "mtime": "2022-12-08T17:23:38.860Z",
    "size": 320,
    "path": "../public/_nuxt/roles.db2ae30f.js"
  },
  "/_nuxt/security.760a1778.js": {
    "type": "application/javascript",
    "etag": "\"155-gRF9+UN1ebw7Ezt7X5jle83Ysbg\"",
    "mtime": "2022-12-08T17:23:38.863Z",
    "size": 341,
    "path": "../public/_nuxt/security.760a1778.js"
  },
  "/_nuxt/sidebar.15c664dc.js": {
    "type": "application/javascript",
    "etag": "\"47f-Qq6Ii2UW5ryuax3dTSQlvDGKbhU\"",
    "mtime": "2022-12-08T17:23:38.863Z",
    "size": 1151,
    "path": "../public/_nuxt/sidebar.15c664dc.js"
  },
  "/_nuxt/sidebar.vue_vue_type_script_lang.a371e2e8.js": {
    "type": "application/javascript",
    "etag": "\"20e-0NKRJU73mm5hJaU4Uj9BS1B1dDk\"",
    "mtime": "2022-12-08T17:23:38.854Z",
    "size": 526,
    "path": "../public/_nuxt/sidebar.vue_vue_type_script_lang.a371e2e8.js"
  },
  "/_nuxt/users.2ecf8dde.js": {
    "type": "application/javascript",
    "etag": "\"140-ETb9en+xi4fFgPTlfjRjNyVLolo\"",
    "mtime": "2022-12-08T17:23:38.859Z",
    "size": 320,
    "path": "../public/_nuxt/users.2ecf8dde.js"
  },
  "/_nuxt/users.e40e5d65.js": {
    "type": "application/javascript",
    "etag": "\"146-83+FxBwzMqI5YjO2AwkZH/MWr/A\"",
    "mtime": "2022-12-08T17:23:38.854Z",
    "size": 326,
    "path": "../public/_nuxt/users.e40e5d65.js"
  },
  "/_nuxt/welcome.11f58b43.js": {
    "type": "application/javascript",
    "etag": "\"175bf-JjWXSPKPl8ttd9ZjV4E3LF0zBZM\"",
    "mtime": "2022-12-08T17:23:38.864Z",
    "size": 95679,
    "path": "../public/_nuxt/welcome.11f58b43.js"
  },
  "/_nuxt/_id_.2fa311f9.js": {
    "type": "application/javascript",
    "etag": "\"40e-dvg1WA8i2pW51nEaPWDgO0Rqrhk\"",
    "mtime": "2022-12-08T17:23:38.854Z",
    "size": 1038,
    "path": "../public/_nuxt/_id_.2fa311f9.js"
  },
  "/_nuxt/_id_.4d1de4e3.js": {
    "type": "application/javascript",
    "etag": "\"480-XPgygvbwm7xuZBgM37ZYpZGHHwo\"",
    "mtime": "2022-12-08T17:23:38.858Z",
    "size": 1152,
    "path": "../public/_nuxt/_id_.4d1de4e3.js"
  },
  "/_nuxt/_id_.527cd37b.js": {
    "type": "application/javascript",
    "etag": "\"49c-awajI/Rk4/5wYk03uHZUq/0CK10\"",
    "mtime": "2022-12-08T17:23:38.854Z",
    "size": 1180,
    "path": "../public/_nuxt/_id_.527cd37b.js"
  },
  "/_nuxt/_id_.52e81b4b.js": {
    "type": "application/javascript",
    "etag": "\"3e3-BxgepnOvTIPsQif0dB1czJVMLwo\"",
    "mtime": "2022-12-08T17:23:38.855Z",
    "size": 995,
    "path": "../public/_nuxt/_id_.52e81b4b.js"
  },
  "/_nuxt/_id_.dd4f98a6.js": {
    "type": "application/javascript",
    "etag": "\"468-xr4BFUKu4pkaCvACNg4wPbxlfF8\"",
    "mtime": "2022-12-08T17:23:38.859Z",
    "size": 1128,
    "path": "../public/_nuxt/_id_.dd4f98a6.js"
  },
  "/_nuxt/_id_.de1c541e.js": {
    "type": "application/javascript",
    "etag": "\"47a-E40SkFxB1+G+Zv5U8MzQFm5zOeE\"",
    "mtime": "2022-12-08T17:23:38.862Z",
    "size": 1146,
    "path": "../public/_nuxt/_id_.de1c541e.js"
  }
};

function readAsset (id) {
  const serverDir = dirname(fileURLToPath(globalThis._importMeta_.url));
  return promises.readFile(resolve(serverDir, assets[id].path))
}

const publicAssetBases = [];

function isPublicAssetURL(id = '') {
  if (assets[id]) {
    return true
  }
  for (const base of publicAssetBases) {
    if (id.startsWith(base)) { return true }
  }
  return false
}

function getAsset (id) {
  return assets[id]
}

const METHODS = ["HEAD", "GET"];
const EncodingMap = { gzip: ".gz", br: ".br" };
const _f4b49z = eventHandler((event) => {
  if (event.req.method && !METHODS.includes(event.req.method)) {
    return;
  }
  let id = decodeURIComponent(withLeadingSlash(withoutTrailingSlash(parseURL(event.req.url).pathname)));
  let asset;
  const encodingHeader = String(event.req.headers["accept-encoding"] || "");
  const encodings = encodingHeader.split(",").map((e) => EncodingMap[e.trim()]).filter(Boolean).sort().concat([""]);
  if (encodings.length > 1) {
    event.res.setHeader("Vary", "Accept-Encoding");
  }
  for (const encoding of encodings) {
    for (const _id of [id + encoding, joinURL(id, "index.html" + encoding)]) {
      const _asset = getAsset(_id);
      if (_asset) {
        asset = _asset;
        id = _id;
        break;
      }
    }
  }
  if (!asset) {
    if (isPublicAssetURL(id)) {
      throw createError({
        statusMessage: "Cannot find static asset " + id,
        statusCode: 404
      });
    }
    return;
  }
  const ifNotMatch = event.req.headers["if-none-match"] === asset.etag;
  if (ifNotMatch) {
    event.res.statusCode = 304;
    event.res.end();
    return;
  }
  const ifModifiedSinceH = event.req.headers["if-modified-since"];
  if (ifModifiedSinceH && asset.mtime) {
    if (new Date(ifModifiedSinceH) >= new Date(asset.mtime)) {
      event.res.statusCode = 304;
      event.res.end();
      return;
    }
  }
  if (asset.type && !event.res.getHeader("Content-Type")) {
    event.res.setHeader("Content-Type", asset.type);
  }
  if (asset.etag && !event.res.getHeader("ETag")) {
    event.res.setHeader("ETag", asset.etag);
  }
  if (asset.mtime && !event.res.getHeader("Last-Modified")) {
    event.res.setHeader("Last-Modified", asset.mtime);
  }
  if (asset.encoding && !event.res.getHeader("Content-Encoding")) {
    event.res.setHeader("Content-Encoding", asset.encoding);
  }
  if (asset.size && !event.res.getHeader("Content-Length")) {
    event.res.setHeader("Content-Length", asset.size);
  }
  return readAsset(id);
});

const _lazy_RHx31B = () => import('./renderer.mjs');

const handlers = [
  { route: '', handler: _f4b49z, lazy: false, middleware: true, method: undefined },
  { route: '/__nuxt_error', handler: _lazy_RHx31B, lazy: true, middleware: false, method: undefined },
  { route: '/**', handler: _lazy_RHx31B, lazy: true, middleware: false, method: undefined }
];

function createNitroApp() {
  const config = useRuntimeConfig();
  const hooks = createHooks();
  const h3App = createApp({
    debug: destr(false),
    onError: errorHandler
  });
  h3App.use(config.app.baseURL, timingMiddleware);
  const router = createRouter$1();
  h3App.use(createRouteRulesHandler());
  for (const h of handlers) {
    let handler = h.lazy ? lazyEventHandler(h.handler) : h.handler;
    if (h.middleware || !h.route) {
      const middlewareBase = (config.app.baseURL + (h.route || "/")).replace(/\/+/g, "/");
      h3App.use(middlewareBase, handler);
    } else {
      const routeRules = getRouteRulesForPath(h.route.replace(/:\w+|\*\*/g, "_"));
      if (routeRules.cache) {
        handler = cachedEventHandler(handler, {
          group: "nitro/routes",
          ...routeRules.cache
        });
      }
      router.use(h.route, handler, h.method);
    }
  }
  h3App.use(config.app.baseURL, router);
  const localCall = createCall(toNodeListener(h3App));
  const localFetch = createFetch(localCall, globalThis.fetch);
  const $fetch = createFetch$1({ fetch: localFetch, Headers, defaults: { baseURL: config.app.baseURL } });
  globalThis.$fetch = $fetch;
  const app = {
    hooks,
    h3App,
    router,
    localCall,
    localFetch
  };
  for (const plugin of plugins) {
    plugin(app);
  }
  return app;
}
const nitroApp = createNitroApp();
const useNitroApp = () => nitroApp;

const cert = process.env.NITRO_SSL_CERT;
const key = process.env.NITRO_SSL_KEY;
const server = cert && key ? new Server({ key, cert }, toNodeListener(nitroApp.h3App)) : new Server$1(toNodeListener(nitroApp.h3App));
const port = destr(process.env.NITRO_PORT || process.env.PORT) || 3e3;
const host = process.env.NITRO_HOST || process.env.HOST;
const s = server.listen(port, host, (err) => {
  if (err) {
    console.error(err);
    process.exit(1);
  }
  const protocol = cert && key ? "https" : "http";
  const i = s.address();
  const baseURL = (useRuntimeConfig().app.baseURL || "").replace(/\/$/, "");
  const url = `${protocol}://${i.family === "IPv6" ? `[${i.address}]` : i.address}:${i.port}${baseURL}`;
  console.log(`Listening ${url}`);
});
{
  process.on("unhandledRejection", (err) => console.error("[nitro] [dev] [unhandledRejection] " + err));
  process.on("uncaughtException", (err) => console.error("[nitro] [dev] [uncaughtException] " + err));
}
const nodeServer = {};

export { useRuntimeConfig as a, getRouteRules as g, nodeServer as n, useNitroApp as u };
//# sourceMappingURL=node-server.mjs.map
