import 'node-fetch-native/polyfill';
import { eventHandler, setHeaders, sendRedirect, defineEventHandler, handleCacheHeaders, createEvent, getRequestHeader, getQuery, getCookie, createError, lazyEventHandler, readBody, createApp, createRouter as createRouter$1, toNodeListener } from 'h3';
import { createFetch as createFetch$1, Headers } from 'ohmyfetch';
import destr from 'destr';
import { createCall, createFetch } from 'unenv/runtime/fetch/index';
import { createHooks } from 'hookable';
import { snakeCase, kebabCase, pascalCase, camelCase } from 'scule';
import { hash } from 'ohash';
import { parseURL, withQuery, withLeadingSlash, withoutTrailingSlash, isRelative, joinURL } from 'ufo';
import { createStorage, prefixStorage } from 'unstorage';
import overlay from 'unstorage/drivers/overlay';
import memory$1 from 'unstorage/drivers/memory';
import defu from 'defu';
import { toRouteMatcher, createRouter } from 'radix3';
import { extname, join } from 'pathe';
import { unified } from 'unified';
import { toString } from 'mdast-util-to-string';
import { preprocess } from 'micromark/lib/preprocess.js';
import { postprocess } from 'micromark/lib/postprocess.js';
import { stringifyPosition } from 'unist-util-stringify-position';
import { markdownLineEnding, markdownSpace } from 'micromark-util-character';
import { push, splice } from 'micromark-util-chunked';
import { resolveAll } from 'micromark-util-resolve-all';
import remarkEmoji from 'remark-emoji';
import rehypeSlug from 'rehype-slug';
import remarkSqueezeParagraphs from 'remark-squeeze-paragraphs';
import rehypeExternalLinks from 'rehype-external-links';
import remarkGfm from 'remark-gfm';
import rehypeSortAttributeValues from 'rehype-sort-attribute-values';
import rehypeSortAttributes from 'rehype-sort-attributes';
import rehypeRaw from 'rehype-raw';
import remarkMDC, { parseFrontMatter } from 'remark-mdc';
import remarkParse from 'remark-parse';
import remark2rehype from 'remark-rehype';
import { all } from 'mdast-util-to-hast';
import { detab } from 'detab';
import { u } from 'unist-builder';
import { encode } from 'mdurl';
import slugify from 'slugify';
import { position } from 'unist-util-position';
import htmlTags from 'html-tags';
import { visit } from 'unist-util-visit';
import { getHighlighter, BUNDLED_LANGUAGES, BUNDLED_THEMES } from 'shiki-es';
import consola from 'unenv/runtime/npm/consola';
const _runtimeConfig = {"app":{"baseURL":"/","buildAssetsDir":"/_nuxt/","cdnURL":""},"nitro":{"routeRules":{"/__nuxt_error":{"cache":false}},"envPrefix":"NUXT_"},"public":{"content":{"clientDB":{"isSPA":false,"integrity":1667202147293},"navigation":{"fields":["icon","titleTemplate","layout"]},"base":"_content","tags":{"p":"prose-p","a":"prose-a","blockquote":"prose-blockquote","code-inline":"prose-code-inline","code":"prose-code","em":"prose-em","h1":"prose-h1","h2":"prose-h2","h3":"prose-h3","h4":"prose-h4","h5":"prose-h5","h6":"prose-h6","hr":"prose-hr","img":"prose-img","ul":"prose-ul","ol":"prose-ol","li":"prose-li","strong":"prose-strong","table":"prose-table","thead":"prose-thead","tbody":"prose-tbody","td":"prose-td","th":"prose-th","tr":"prose-tr"},"highlight":{"theme":"one-dark-pro","preload":["json","js","ts","html","css","vue","diff","shell","markdown","yaml","bash","ini"],"apiURL":"/api/_content/highlight"},"wsUrl":"","documentDriven":{"page":true,"navigation":true,"surround":true,"globals":{},"layoutFallbacks":["theme"],"injectPage":true},"anchorLinks":{"depth":4,"exclude":[1]}}},"content":{"cacheVersion":2,"cacheIntegrity":"LjtMKRtVhB","transformers":["/Users/wobsoriano/tmp/trpc-nuxt/node_modules/.pnpm/@nuxt+content-edge@2.2.1-27781144.409f03f/node_modules/@nuxt/content-edge/dist/runtime/transformers/shiki.mjs"],"base":"_content","watch":{"ws":{"port":4000,"hostname":"localhost","showURL":false}},"sources":{},"ignores":["\\.","-"],"locales":[],"highlight":{"theme":"one-dark-pro","preload":["json","js","ts","html","css","vue","diff","shell","markdown","yaml","bash","ini"],"apiURL":"/api/_content/highlight"},"markdown":{"tags":{"p":"prose-p","a":"prose-a","blockquote":"prose-blockquote","code-inline":"prose-code-inline","code":"prose-code","em":"prose-em","h1":"prose-h1","h2":"prose-h2","h3":"prose-h3","h4":"prose-h4","h5":"prose-h5","h6":"prose-h6","hr":"prose-hr","img":"prose-img","ul":"prose-ul","ol":"prose-ol","li":"prose-li","strong":"prose-strong","table":"prose-table","thead":"prose-thead","tbody":"prose-tbody","td":"prose-td","th":"prose-th","tr":"prose-tr"},"anchorLinks":{"depth":4,"exclude":[1]},"remarkPlugins":{},"rehypePlugins":{}},"yaml":{},"csv":{"delimeter":",","json":true},"navigation":{"fields":["icon","titleTemplate","layout"]},"documentDriven":true,"experimental":{"clientDB":false}}};
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$1(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$1(obj[key])) {
if (isObject$1(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 = {
["nitro:bundled:cache:content:content-index.json"]: {
import: () => import('../raw/content-index.mjs').then(r => r.default || r),
meta: {"type":"application/json","etag":"\"110-VQN19Va/FIVJfysfpYw2E4LWiRg\"","mtime":"2022-10-31T07:42:37.246Z"}
},
["nitro:bundled:cache:content:content-navigation.json"]: {
import: () => import('../raw/content-navigation.mjs').then(r => r.default || r),
meta: {"type":"application/json","etag":"\"14d-F96X9zMpX9K+XRDcQA/F3oVjRBI\"","mtime":"2022-10-31T07:42:37.246Z"}
},
["nitro:bundled:cache:content:parsed:content:index.md"]: {
import: () => import('../raw/index.mjs').then(r => r.default || r),
meta: {"type":"text/markdown; charset=utf-8","etag":"\"b54-zDtkK7hOK3sS7JzCxTCPzp2vPLc\"","mtime":"2022-10-31T07:42:37.246Z"}
},
["nitro:bundled:cache:content:parsed:content:1.get-started:1.installation.md"]: {
import: () => import('../raw/1.installation.mjs').then(r => r.default || r),
meta: {"type":"text/markdown; charset=utf-8","etag":"\"5aff-Bz9R2EqWci34xp3Gp/63SaWpybY\"","mtime":"2022-10-31T07:42:37.246Z"}
},
["nitro:bundled:cache:content:parsed:content:1.get-started:2.usage.md"]: {
import: () => import('../raw/2.usage.mjs').then(r => r.default || r),
meta: {"type":"text/markdown; charset=utf-8","etag":"\"e944-06NlXNw8oQU+yRIm7XupXgZM5HE\"","mtime":"2022-10-31T07:42:37.246Z"}
},
["nitro:bundled:cache:content:parsed:content:2.examples:1.basic.md"]: {
import: () => import('../raw/1.basic.mjs').then(r => r.default || r),
meta: {"type":"text/markdown; charset=utf-8","etag":"\"2c6-gwAPkbnsFTTiaIZDZBC5TJy9csQ\"","mtime":"2022-10-31T07:42:37.246Z"}
},
["nitro:bundled:cache:content:parsed:content:2.examples:2.multiple-routers.md"]: {
import: () => import('../raw/2.multiple-routers.mjs').then(r => r.default || r),
meta: {"type":"text/markdown; charset=utf-8","etag":"\"2f2-2sXfRh6TLL3vbKbCHtVfVaKhbL8\"","mtime":"2022-10-31T07:42:37.246Z"}
}
};
function normalizeKey(key) {
if (!key) {
return "";
}
return key.replace(/[/\\]/g, ":").replace(/:+/g, ":").replace(/^:|:$/g, "");
}
const assets = {
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);
const bundledStorage = ["/cache/content"];
for (const base of bundledStorage) {
storage.mount(base, overlay({
layers: [
memory$1(),
// TODO
// prefixStorage(storage, base),
prefixStorage(storage, 'assets:nitro:bundled:' + base)
]
}));
}
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 nitro = (function(nitro) {
nitro.hooks.hook("render:html", (htmlContext, { event }) => {
const content = event?.pinceauContent || "";
htmlContext.head.push(``);
});
});
const script = "const w=window,de=document.documentElement,knownColorSchemes=[\"dark\",\"light\"],preference=window.localStorage.getItem(\"nuxt-color-mode\")||\"system\";let value=preference===\"system\"?getColorScheme():preference;const forcedColorMode=de.getAttribute(\"data-color-mode-forced\");forcedColorMode&&(value=forcedColorMode),addColorScheme(value),w[\"__NUXT_COLOR_MODE__\"]={preference,value,getColorScheme,addColorScheme,removeColorScheme};function addColorScheme(e){const o=\"\"+e+\"\",t=\"theme\";de.classList?de.classList.add(o):de.className+=\" \"+o,t&&de.setAttribute(\"data-\"+t,e)}function removeColorScheme(e){const o=\"\"+e+\"\",t=\"theme\";de.classList?de.classList.remove(o):de.className=de.className.replace(new RegExp(o,\"g\"),\"\"),t&&de.removeAttribute(\"data-\"+t)}function prefersColorScheme(e){return w.matchMedia(\"(prefers-color-scheme\"+e+\")\")}function getColorScheme(){if(w.matchMedia&&prefersColorScheme(\"\").media!==\"not all\"){for(const e of knownColorSchemes)if(prefersColorScheme(\":\"+e).matches)return e}return\"light\"}\n";
const _AFfrSDO2I9 = (function(nitro) {
nitro.hooks.hook("render:html", (htmlContext) => {
htmlContext.head.push(`