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(`