diff --git a/apps/docs/package.json b/apps/docs/package.json index 70640d6d..2a142b85 100644 --- a/apps/docs/package.json +++ b/apps/docs/package.json @@ -53,6 +53,7 @@ "github-slugger": "2.0.0", "postcss": "8.4.28", "rehype-pretty-code": "0.12.3", + "remark-shiki-twoslash": "3.1.3", "rehype-raw": "7.0.0", "rehype-slug": "6.0.0", "remark-gfm": "4.0.0", @@ -61,7 +62,8 @@ "tailwindcss": "3.3.3", "typescript": "4.9.5", "unist-util-visit": "5.0.0", - "vite": "5.0.11" + "vite": "5.0.11", + "@vinxi/plugin-mdx": "3.7.0" }, "engines": { "node": ">=18" diff --git a/apps/docs/src/app.tsx b/apps/docs/src/app.tsx index 76847cd1..b9cfe740 100644 --- a/apps/docs/src/app.tsx +++ b/apps/docs/src/app.tsx @@ -4,7 +4,7 @@ import "./root.css"; import { ColorModeProvider, ColorModeScript, cookieStorageManagerSSR, Toast } from "@kobalte/core"; import { MetaProvider, Title } from "@solidjs/meta"; -import { Navigate, Route, Router } from "@solidjs/router"; +import { Router } from "@solidjs/router"; import { FileRoutes } from "@solidjs/start"; import { Suspense } from "solid-js"; import { isServer, Portal } from "solid-js/web"; diff --git a/apps/docs/src/components/table-of-contents.tsx b/apps/docs/src/components/table-of-contents.tsx index 0347993a..f1964c5d 100644 --- a/apps/docs/src/components/table-of-contents.tsx +++ b/apps/docs/src/components/table-of-contents.tsx @@ -1,6 +1,7 @@ import { cache, createAsync, useLocation } from "@solidjs/router"; import { clsx } from "clsx"; -import { Accessor, createEffect, createSignal, For, onCleanup, Suspense } from "solid-js"; +import { Accessor, createEffect, createSignal, For, onCleanup, Suspense, onMount } from "solid-js"; +import { isServer } from "solid-js/web"; import { mods } from "../app"; @@ -72,9 +73,8 @@ function useCurrentSection(tableOfContents: Accessor) { } const getTOC = cache(async (pathname: string) => { - "use server"; - - return []; + console.log("TOC " + pathname); + console.log("TOC " + JSON.stringify(mods)); const mod = mods[`./routes${pathname}.mdx`] ?? mods[`./routes${pathname}.md`]; return !mod ? [] : mod.getHeadings().filter(h => h.depth > 1 && h.depth <= 3); @@ -83,7 +83,17 @@ const getTOC = cache(async (pathname: string) => { export function TableOfContents() { const path = useLocation(); - const toc = createAsync(() => getTOC(path.pathname)); + const [toc, setTOC] = createSignal>([]); + + console.log("LOADING TOC"); + + onMount(() => { + if (!isServer) { + const asyncTOC = createAsync(() => getTOC(path.pathname)); + + setTOC(asyncTOC() ?? []); + } + }); // const toc = createServerData$( // async pathname => { @@ -104,7 +114,7 @@ export function TableOfContents() {

+ > On this page

    @@ -117,16 +127,16 @@ export function TableOfContents() { class={clsx( "block w-full font-sans transition font-normal rounded px-3 py-2 hover:bg-sky-50 dark:hover:bg-sky-900/20", section.slug === currentSection() - ? "text-sky-700 dark:text-sky-600" - : "text-zinc-600 dark:text-zinc-400", + ? "text-sky-700 dark:text-sky-600" + : "text-zinc-600 dark:text-zinc-400", section.depth === 3 && "pl-6", - )} - > + )} + > {section.text} - )} + )}
diff --git a/apps/docs/src/mdx-components.tsx b/apps/docs/src/mdx-components.tsx index 527727a2..f25a5ffe 100644 --- a/apps/docs/src/mdx-components.tsx +++ b/apps/docs/src/mdx-components.tsx @@ -11,7 +11,7 @@ export const mdxComponents = { return (

- {local.children + " – Kobalte"} + {local.children} – Kobalte {local.children}

); diff --git a/apps/docs/src/routes/docs/changelog.tsx b/apps/docs/src/routes/docs/changelog.tsx index 2663d4b5..9e704160 100644 --- a/apps/docs/src/routes/docs/changelog.tsx +++ b/apps/docs/src/routes/docs/changelog.tsx @@ -1,4 +1,4 @@ -import { Outlet } from "@solidjs/router"; +import { RouteProps } from "@solidjs/router"; import { Layout } from "../../components"; import { NavSection } from "../../model/navigation"; @@ -14,10 +14,10 @@ const CHANGELOG_NAV_SECTIONS: NavSection[] = [ }, ]; -export default function ChangelogLayout() { +export default function ChangelogLayout(props: RouteProps) { return ( - + {props.children} ); } diff --git a/apps/docs/src/routes/docs/core.tsx b/apps/docs/src/routes/docs/core.tsx index efab4157..c242aa4a 100644 --- a/apps/docs/src/routes/docs/core.tsx +++ b/apps/docs/src/routes/docs/core.tsx @@ -1,4 +1,4 @@ -import { Outlet } from "@solidjs/router"; +import { RouteProps } from "@solidjs/router"; import { Layout } from "../../components"; import { NavSection } from "../../model/navigation"; @@ -158,10 +158,10 @@ const CORE_NAV_SECTIONS: NavSection[] = [ }, ]; -export default function CoreLayout() { +export default function CoreLayout(props: RouteProps) { return ( - + {props.children} ); } diff --git a/apps/docs/src/routes/docs/core/components/alert.mdx b/apps/docs/src/routes/docs/core/components/alert.mdx index 606027bd..04a8d67a 100644 --- a/apps/docs/src/routes/docs/core/components/alert.mdx +++ b/apps/docs/src/routes/docs/core/components/alert.mdx @@ -66,7 +66,7 @@ The alert consists of : ### Alert.Root -Renders a `div` by default and support all it's props. +Renders a `div` by default and support all its props. ## Rendered elements diff --git a/apps/docs/vite.config.ts b/apps/docs/vite.config.ts index 49999793..9b294295 100644 --- a/apps/docs/vite.config.ts +++ b/apps/docs/vite.config.ts @@ -1,4 +1,7 @@ import { nodeTypes } from "@mdx-js/mdx"; +import { defineConfig } from "@solidjs/start/config"; +// @ts-ignore missing types +import pkg from "@vinxi/plugin-mdx"; import { parse } from "acorn"; // @ts-ignore import Slugger from "github-slugger"; @@ -6,9 +9,11 @@ import rehypePrettyCode from "rehype-pretty-code"; import rehypeRaw from "rehype-raw"; import rehypeSlug from "rehype-slug"; import remarkGfm from "remark-gfm"; +import remarkShikiTwoslash from "remark-shiki-twoslash"; import { visit } from "unist-util-visit"; -import { defineConfig } from "@solidjs/start/config"; -import mdxRollup from "@mdx-js/rollup"; +import { Plugin } from "vite"; + +const { default: vinxiMdx } = pkg; function jsToTreeNode(jsString: any, acornOpts: any) { return { @@ -31,89 +36,278 @@ function jsToTreeNode(jsString: any, acornOpts: any) { }; } -function mdx(config: any) { - const cache = new Map(); - const headingsCache = new Map(); +interface MDXConfig { + rehypePlugins: any[]; + remarkPlugins: any[]; +} - function rehypeCollectHeadings() { - const slugger = new Slugger(); - return function (tree: any, file: any) { - const headings: any[] = []; - visit(tree, node => { - if (node.type !== "element") { - return; - } +//function mdx(config: MDXConfig): Plugin[] { +// const cache = new Map(); +// const headingsCache = new Map(); +// +// function rehypeCollectHeadings() { +// const slugger = new Slugger(); +// return function (tree: any, file: any) { +// const headings: any[] = []; +// visit(tree, node => { +// if (node.type !== "element") { +// return; +// } +// +// const { tagName } = node; +// +// if (tagName[0] !== "h") { +// return; +// } +// +// const [_, level] = tagName.match(/h([0-6])/) ?? []; +// +// if (!level) { +// return; +// } +// +// const depth = Number.parseInt(level); +// +// let text = ""; +// +// visit(node, (child, __, parent) => { +// if (child.type === "element" || parent == null) { +// return; +// } +// +// if (child.type === "raw" && child.value.match(/^\n?<.*>\n?$/)) { +// return; +// } +// +// if (new Set(["text", "raw", "mdxTextExpression"]).has(child.type)) { +// text += child.value; +// } +// }); +// +// node.properties = node.properties || {}; +// +// if (typeof node.properties.id !== "string") { +// let slug = slugger.slug(text); +// +// if (slug.endsWith("-")) { +// slug = slug.slice(0, -1); +// } +// +// node.properties.id = slug; +// } +// +// headings.push({ depth, slug: node.properties.id, text }); +// }); +// +// headingsCache.set(file.path, headings); +// +// tree.children.unshift( +// // @ts-ignoret +// jsToTreeNode(`export function getHeadings() { return ${JSON.stringify(headings)} }`), +// ); +// }; +// } +// +// const plugin = { +// ...vinxiMdx.withImports({})({ +// jsx: true, +// jsxImportSource: "solid-js", +// providerImportSource: "solid-mdx", +// rehypePlugins: [ +// ...config.rehypePlugins, +// rehypeSlug, +// rehypeCollectHeadings, +// [rehypeRaw, { passThrough: nodeTypes }], +// ], +// remarkPlugins: [ +// ...config.remarkPlugins, +// [ +// // @ts-ignore +// remarkShikiTwoslash.default, +// { +// disableImplicitReactImport: true, +// includeJSDocInHover: true, +// themes: ["github-light", "github-dark"], +// defaultOptions: { +// lib: ["dom", "es2015"], +// }, +// defaultCompilerOptions: { +// allowSyntheticDefaultImports: true, +// esModuleInterop: true, +// target: "ESNext", +// module: "ESNext", +// lib: ["dom", "es2015"], +// jsxImportSource: "solid-js", +// jsx: "preserve", +// types: ["vite/client"], +// paths: { +// "~/*": ["./src/*"], +// }, +// }, +// }, +// ], +// ], +// }), +// enforce: "pre", +// }; +// return [ +// { +// ...plugin, +// async transform(code: any, id: any) { +// if (id.endsWith(".mdx") || id.endsWith(".md")) { +// if (cache.has(code)) { +// return cache.get(code); +// } +// +// // @ts-ignore +// const result = await plugin.transform?.call(this, code, id); +// cache.set(code, result); +// +// return result; +// } +// }, +// }, +// +// { +// ...plugin, +// name: "mdx-meta", +// async transform(code: any, id: any) { +// if (id.endsWith(".mdx?meta") || id.endsWith(".md?meta")) { +// id = id.replace(/\?meta$/, ""); +// +// // eslint-disable-next-line no-inner-declarations +// function getCode() { +// return ` +// export function getHeadings() { return ${JSON.stringify( +// headingsCache.get(id), +// null, +// 2, +// )} +// } +// `; +// } +// +// if (cache.has(code)) { +// return { code: getCode() }; +// } +// +// // @ts-ignore +// const result = await plugin.transform?.call(this, code, id); +// +// cache.set(code, result); +// +// return { +// code: getCode(), +// }; +// } +// }, +// }, +// ]; +//} - const { tagName } = node; +const cache = new Map(); +const headingsCache = new Map(); - if (tagName[0] !== "h") { - return; - } +function rehypeCollectHeadings() { + const slugger = new Slugger(); + return function (tree: any, file: any) { + const headings: any[] = []; + visit(tree, node => { + if (node.type !== "element") { + return; + } - const [_, level] = tagName.match(/h([0-6])/) ?? []; + const { tagName } = node; - if (!level) { - return; - } + if (tagName[0] !== "h") { + return; + } - const depth = Number.parseInt(level); + const [_, level] = tagName.match(/h([0-6])/) ?? []; - let text = ""; + if (!level) { + return; + } - visit(node, (child, __, parent) => { - if (child.type === "element" || parent == null) { - return; - } + const depth = Number.parseInt(level); - if (child.type === "raw" && child.value.match(/^\n?<.*>\n?$/)) { - return; - } + let text = ""; - if (new Set(["text", "raw", "mdxTextExpression"]).has(child.type)) { - text += child.value; - } - }); + visit(node, (child, __, parent) => { + if (child.type === "element" || parent == null) { + return; + } + + if (child.type === "raw" && child.value.match(/^\n?<.*>\n?$/)) { + return; + } - node.properties = node.properties || {}; + if (new Set(["text", "raw", "mdxTextExpression"]).has(child.type)) { + text += child.value; + } + }); - if (typeof node.properties.id !== "string") { - let slug = slugger.slug(text); + node.properties = node.properties || {}; - if (slug.endsWith("-")) { - slug = slug.slice(0, -1); - } + if (typeof node.properties.id !== "string") { + let slug = slugger.slug(text); - node.properties.id = slug; + if (slug.endsWith("-")) { + slug = slug.slice(0, -1); } - headings.push({ depth, slug: node.properties.id, text }); - }); + node.properties.id = slug; + } + + headings.push({ depth, slug: node.properties.id, text }); + }); + + console.log("VITE SET HEADINGS", file.path, headings); + headingsCache.set(file.path, headings); + + tree.children.unshift( + // @ts-ignoret + jsToTreeNode(`export function getHeadings() { return ${JSON.stringify(headings)} }`), + ); + }; +} - headingsCache.set(file.path, headings); +/// - tree.children.unshift( - // @ts-ignoret - jsToTreeNode(`export function getHeadings() { return ${JSON.stringify(headings)} }`), - ); - }; - } +export default defineConfig({ + // @ts-ignore: type should be optional, bugged in @solidjs/start@0.4.4 + start: { + server: { + preset: process.env.GITHUB_ACTIONS ? "node" : "netlify", + }, + extensions: ["mdx", "md"], + // @ts-ignore: type should be optional, bugged in @solidjs/start@0.4.4 + solid: { + extensions: ["mdx", "md"], + }, + }, - const plugin = { - ...mdxRollup({ + plugins: [ + // @ts-ignore + // mdx({ + // rehypePlugins: [rehypePrettyCode], + // remarkPlugins: [remarkGfm], + // }), + vinxiMdx.withImports({})({ jsx: true, jsxImportSource: "solid-js", providerImportSource: "solid-mdx", rehypePlugins: [ - ...config.rehypePlugins, + [rehypeRaw, { passThrough: nodeTypes }], + rehypePrettyCode, rehypeSlug, rehypeCollectHeadings, - [rehypeRaw, { passThrough: nodeTypes }], ], remarkPlugins: [ - ...config.remarkPlugins, + remarkGfm, [ // @ts-ignore -// remarkShikiTwoslash.default, + remarkShikiTwoslash.default, { disableImplicitReactImport: true, includeJSDocInHover: true, @@ -138,34 +332,25 @@ function mdx(config: any) { ], ], }), - enforce: "pre", - }; - return [ + { enforce: "pre" }, { - ...plugin, + name: "mdx-meta-load", async transform(code: any, id: any) { - console.log("VITE id " + id); if (id.endsWith(".mdx") || id.endsWith(".md")) { - if (cache.has(code)) { - return cache.get(code); - } - - // @ts-ignore - const result = await plugin.transform?.call(this, code, id); - cache.set(code, result); - - return result; + console.log("VITE mdx-meta-load " + id); } }, }, - { - ...plugin, name: "mdx-meta", async transform(code: any, id: any) { if (id.endsWith(".mdx?meta") || id.endsWith(".md?meta")) { + console.log("VITE " + id); + id = id.replace(/\?meta$/, ""); + console.log("VITE CACHE", headingsCache); + // eslint-disable-next-line no-inner-declarations function getCode() { return ` @@ -178,14 +363,14 @@ function mdx(config: any) { `; } - if (cache.has(code)) { - return { code: getCode() }; - } - - // @ts-ignore - const result = await plugin.transform?.call(this, code, id); - - cache.set(code, result); +// if (cache.has(code)) { +// return { code: getCode() }; +// } +// +// // @ts-ignore +// const result = await plugin.transform?.call(this, code, id); +// +// cache.set(code, result); return { code: getCode(), @@ -193,26 +378,6 @@ function mdx(config: any) { } }, }, - ]; -} - -/// - -export default defineConfig({ - // @ts-ignore: type should be optional, bugged in @solidjs/start@0.4.4 - start: { - server: { - preset: process.env.GITHUB_ACTIONS ? "node" : "netlify", - }, - extensions: ["mdx", "md"], - }, - plugins: [ - // @ts-ignore - mdxRollup({ - jsx: true, - jsxImportSource: "solid-js/h", - providerImportSource: "solid-mdx", - }), ], ssr: { noExternal: ["@kobalte/core", "@tanstack/solid-virtual"], diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f1abd99e..28a37585 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -186,6 +186,9 @@ importers: '@tailwindcss/typography': specifier: 0.5.9 version: 0.5.9(tailwindcss@3.3.3) + '@vinxi/plugin-mdx': + specifier: 3.7.0 + version: 3.7.0(@mdx-js/mdx@3.0.0) acorn: specifier: 8.10.0 version: 8.10.0 @@ -198,6 +201,9 @@ importers: postcss: specifier: 8.4.28 version: 8.4.28 + rehype-autolink-headings: + specifier: 7.1.0 + version: 7.1.0 rehype-pretty-code: specifier: 0.12.3 version: 0.12.3(shikiji@0.9.17) @@ -210,6 +216,9 @@ importers: remark-gfm: specifier: 4.0.0 version: 4.0.0 + remark-shiki-twoslash: + specifier: 3.1.3 + version: 3.1.3(typescript@4.9.5) shiki: specifier: 0.14.7 version: 0.14.7 @@ -2339,6 +2348,15 @@ packages: requiresBuild: true optional: true + /@esbuild/android-arm64@0.18.7: + resolution: {integrity: sha512-o0VVztxJPkfDYbaU1tA1G1iwKiBh6Zt3bX5OdHDoITMFdRg+Mgdt3nHXMEtNlIjYA/Xn6hmlOYDHjJfQUduPuw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + /@esbuild/android-arm64@0.19.11: resolution: {integrity: sha512-aiu7K/5JnLj//KOnOfEZ0D90obUkRzDMyqd/wNAUQ34m4YUPVhRZpnqKV9uqDGxT7cToSDnIHsGooyIczu9T+Q==} engines: {node: '>=12'} @@ -2364,6 +2382,15 @@ packages: requiresBuild: true optional: true + /@esbuild/android-arm@0.18.7: + resolution: {integrity: sha512-nDQ7AC5WVKOqxaip/E5YbaRgnilBMsoGKjoGLCeCOYNePaBCBDwJsLfa2fn3FEtktiLaAF990W592avsHjJ/Vg==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + /@esbuild/android-arm@0.19.11: resolution: {integrity: sha512-5OVapq0ClabvKvQ58Bws8+wkLCV+Rxg7tUVbo9xu034Nm536QTII4YzhaFriQ7rMrorfnFKUsArD2lqKbFY4vw==} engines: {node: '>=12'} @@ -2380,6 +2407,15 @@ packages: requiresBuild: true optional: true + /@esbuild/android-x64@0.18.7: + resolution: {integrity: sha512-ga8Dtpb01GorCi1dk3jEwDk3AK/3F+cR5P+//Tl0ERL2K2pK/J1f3t8hcJ+RRt3UYBV/uTL9GEnx7touX0KRPQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + /@esbuild/android-x64@0.19.11: resolution: {integrity: sha512-eccxjlfGw43WYoY9QgB82SgGgDbibcqyDTlk3l3C0jOVHKxrjdc9CTwDUQd0vkvYg5um0OH+GpxYvp39r+IPOg==} engines: {node: '>=12'} @@ -2396,6 +2432,15 @@ packages: requiresBuild: true optional: true + /@esbuild/darwin-arm64@0.18.7: + resolution: {integrity: sha512-FVDOdfgyGOOISpd0b+UtA6YNbu5+RzZu7kDztjVsA/iZhGnyxbCR/vZ+B2j5yxbMZ9j3iz5uFiHIq1sl6nrZ0Q==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + /@esbuild/darwin-arm64@0.19.11: resolution: {integrity: sha512-ETp87DRWuSt9KdDVkqSoKoLFHYTrkyz2+65fj9nfXsaV3bMhTCjtQfw3y+um88vGRKRiF7erPrh/ZuIdLUIVxQ==} engines: {node: '>=12'} @@ -2412,6 +2457,15 @@ packages: requiresBuild: true optional: true + /@esbuild/darwin-x64@0.18.7: + resolution: {integrity: sha512-w7aeD1UjDFXqyrZQLBIPYGmLR+gJsl+7QSwmSz+nVrCZOB7cyWEkIjCF8s4inUD3ja3WtKUIqzX5S4qDnU5q7Q==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + /@esbuild/darwin-x64@0.19.11: resolution: {integrity: sha512-fkFUiS6IUK9WYUO/+22omwetaSNl5/A8giXvQlcinLIjVkxwTLSktbF5f/kJMftM2MJp9+fXqZ5ezS7+SALp4g==} engines: {node: '>=12'} @@ -2428,6 +2482,15 @@ packages: requiresBuild: true optional: true + /@esbuild/freebsd-arm64@0.18.7: + resolution: {integrity: sha512-wKyySDdoKVOPn9eDci/b3eP3EJVAVXC3b2CiaHphhCKfh4n5pWLwj7Ue96anK1HnpcZ0Uti8Sw9xq3Im0earHA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + /@esbuild/freebsd-arm64@0.19.11: resolution: {integrity: sha512-lhoSp5K6bxKRNdXUtHoNc5HhbXVCS8V0iZmDvyWvYq9S5WSfTIHU2UGjcGt7UeS6iEYp9eeymIl5mJBn0yiuxA==} engines: {node: '>=12'} @@ -2444,6 +2507,15 @@ packages: requiresBuild: true optional: true + /@esbuild/freebsd-x64@0.18.7: + resolution: {integrity: sha512-rbfjbgSvzWRjQMKIntogK1d2oIAiA/ZVayXfK1WjcIIMQYLg74sAoT8CZBj30+bwn13YR0t6lgIxA1mJaS2Lhw==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + /@esbuild/freebsd-x64@0.19.11: resolution: {integrity: sha512-JkUqn44AffGXitVI6/AbQdoYAq0TEullFdqcMY/PCUZ36xJ9ZJRtQabzMA+Vi7r78+25ZIBosLTOKnUXBSi1Kw==} engines: {node: '>=12'} @@ -2460,6 +2532,15 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-arm64@0.18.7: + resolution: {integrity: sha512-cwfxKYroaD5BZ42NsfxdVU1issD2NxcuJHlCNsN5LtWq+kZMpwmIVDCJxKlgLIG7zH/4yq8lTuZJurxq058GsA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-arm64@0.19.11: resolution: {integrity: sha512-LneLg3ypEeveBSMuoa0kwMpCGmpu8XQUh+mL8XXwoYZ6Be2qBnVtcDI5azSvh7vioMDhoJFZzp9GWp9IWpYoUg==} engines: {node: '>=12'} @@ -2476,6 +2557,15 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-arm@0.18.7: + resolution: {integrity: sha512-GpUBqqJnQ+7qdb7NqKNVj7TgD2JnLrEdzPtatPow77Me/EQ01GE1tHKZLePqhf5thdLDb5Se2Kcf4D9WTbSjmw==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-arm@0.19.11: resolution: {integrity: sha512-3CRkr9+vCV2XJbjwgzjPtO8T0SZUmRZla+UL1jw+XqHZPkPgZiyWvbDvl9rqAN8Zl7qJF0O/9ycMtjU67HN9/Q==} engines: {node: '>=12'} @@ -2492,6 +2582,15 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-ia32@0.18.7: + resolution: {integrity: sha512-SsvsGStwbArBcB/XNh+2MvUtgOLp0CR6Hn1PBWcdApCuAaMibHCDyzHS06+u/YOD1UpeXFHJZphix61HeVMH/w==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-ia32@0.19.11: resolution: {integrity: sha512-caHy++CsD8Bgq2V5CodbJjFPEiDPq8JJmBdeyZ8GWVQMjRD0sU548nNdwPNvKjVpamYYVL40AORekgfIubwHoA==} engines: {node: '>=12'} @@ -2517,6 +2616,15 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-loong64@0.18.7: + resolution: {integrity: sha512-WOqQ0eaWGE/e9vmbxFT2exbWuXxHuG8ld0fN7oX5f0v7W6oveUIF4DLJYVae93t1+Icv5R0NBo8wv/o4hEvxBQ==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-loong64@0.19.11: resolution: {integrity: sha512-ppZSSLVpPrwHccvC6nQVZaSHlFsvCQyjnvirnVjbKSHuE5N24Yl8F3UwYUUR1UEPaFObGD2tSvVKbvR+uT1Nrg==} engines: {node: '>=12'} @@ -2533,6 +2641,15 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-mips64el@0.18.7: + resolution: {integrity: sha512-/dKQ3OLr2Tmj0kuf4ZJioD+qnADUEJSBaiuDbk8v5602HnNNBSGHPrEB6S8PSb8y8jWsX9MMnxqk5KpLTf86OQ==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-mips64el@0.19.11: resolution: {integrity: sha512-B5x9j0OgjG+v1dF2DkH34lr+7Gmv0kzX6/V0afF41FkPMMqaQ77pH7CrhWeR22aEeHKaeZVtZ6yFwlxOKPVFyg==} engines: {node: '>=12'} @@ -2549,6 +2666,15 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-ppc64@0.18.7: + resolution: {integrity: sha512-x/k1+daIqiGJt0Yhr5llFJ/zkRg1XAqcS2ntAYzS3pHogO8oIyc+LjsINgVyFCeFMFUZ9Ae9W5z2Ib05bMum3g==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-ppc64@0.19.11: resolution: {integrity: sha512-MHrZYLeCG8vXblMetWyttkdVRjQlQUb/oMgBNurVEnhj4YWOr4G5lmBfZjHYQHHN0g6yDmCAQRR8MUHldvvRDA==} engines: {node: '>=12'} @@ -2565,6 +2691,15 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-riscv64@0.18.7: + resolution: {integrity: sha512-LegTDzK9gL/sTkiZUGYLigTISwppZJvQL3MRmFgXgHrj3IzdWkPgMwEtOItK3YiFzhBSSNyKA0mSKEg4UuK8JQ==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-riscv64@0.19.11: resolution: {integrity: sha512-f3DY++t94uVg141dozDu4CCUkYW+09rWtaWfnb3bqe4w5NqmZd6nPVBm+qbz7WaHZCoqXqHz5p6CM6qv3qnSSQ==} engines: {node: '>=12'} @@ -2581,6 +2716,15 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-s390x@0.18.7: + resolution: {integrity: sha512-fjBl45O8ivc3Nl14hdGpbHoVtdHnYGsLpwnlv2rNyb5NOsgY3Y8EhVe/fqR9ndHgO4eL68knKxkrRveEJq+v1g==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-s390x@0.19.11: resolution: {integrity: sha512-A5xdUoyWJHMMlcSMcPGVLzYzpcY8QP1RtYzX5/bS4dvjBGVxdhuiYyFwp7z74ocV7WDc0n1harxmpq2ePOjI0Q==} engines: {node: '>=12'} @@ -2597,6 +2741,15 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-x64@0.18.7: + resolution: {integrity: sha512-apYLJsg3wd3hW8nEt7H++8c8rTDvwXxX7h7YeI89g1RDPCT2QSXTO/xT1BCvFa/BFFoau+yvepQg2o5556FIWQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-x64@0.19.11: resolution: {integrity: sha512-grbyMlVCvJSfxFQUndw5mCtWs5LO1gUlwP4CDi4iJBbVpZcqLVT29FxgGuBJGSzyOxotFG4LoO5X+M1350zmPA==} engines: {node: '>=12'} @@ -2613,6 +2766,15 @@ packages: requiresBuild: true optional: true + /@esbuild/netbsd-x64@0.18.7: + resolution: {integrity: sha512-f82sUnrzdoW4MiiCDn1G3RSsPH8+no+okDhkHgGTGa+5F5wZCyxdXxzR6ctsiimvyPn9FIu9Zs+MesVsBRwyTw==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + /@esbuild/netbsd-x64@0.19.11: resolution: {integrity: sha512-13jvrQZJc3P230OhU8xgwUnDeuC/9egsjTkXN49b3GcS5BKvJqZn86aGM8W9pd14Kd+u7HuFBMVtrNGhh6fHEQ==} engines: {node: '>=12'} @@ -2629,6 +2791,15 @@ packages: requiresBuild: true optional: true + /@esbuild/openbsd-x64@0.18.7: + resolution: {integrity: sha512-1TNDfpFYhIloHeqSRbJFjHFMYtTJWgqI2+S9uCLVCWrADLl5tCe8vQKDfkM7Afz/lZyqi6qEX/Eg2KA5S7FcNQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + /@esbuild/openbsd-x64@0.19.11: resolution: {integrity: sha512-ysyOGZuTp6SNKPE11INDUeFVVQFrhcNDVUgSQVDzqsqX38DjhPEPATpid04LCoUr2WXhQTEZ8ct/EgJCUDpyNw==} engines: {node: '>=12'} @@ -2645,6 +2816,15 @@ packages: requiresBuild: true optional: true + /@esbuild/sunos-x64@0.18.7: + resolution: {integrity: sha512-lBhsHaM6EYCmzQCj+xeFev+dgqTgpSRqF7qXrxp5V4waFuidTBbWgqSXY5rsLRNLOyMMCh1cA+RqF8UL30oOJQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + /@esbuild/sunos-x64@0.19.11: resolution: {integrity: sha512-Hf+Sad9nVwvtxy4DXCZQqLpgmRTQqyFyhT3bZ4F2XlJCjxGmRFF0Shwn9rzhOYRB61w9VMXUkxlBy56dk9JJiQ==} engines: {node: '>=12'} @@ -2661,6 +2841,15 @@ packages: requiresBuild: true optional: true + /@esbuild/win32-arm64@0.18.7: + resolution: {integrity: sha512-p9ipv7rPKitXAAeufg5BzmyYZHZtFfrLGUX15+AxpTQqSZDAZd2wIusaOW5oONTf8RB53ujIqQw7W0QnZMuiUw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + /@esbuild/win32-arm64@0.19.11: resolution: {integrity: sha512-0P58Sbi0LctOMOQbpEOvOL44Ne0sqbS0XWHMvvrg6NE5jQ1xguCSSw9jQeUk2lfrXYsKDdOe6K+oZiwKPilYPQ==} engines: {node: '>=12'} @@ -2677,6 +2866,15 @@ packages: requiresBuild: true optional: true + /@esbuild/win32-ia32@0.18.7: + resolution: {integrity: sha512-WmNxuE+j1wUT2rK+e1Oakx3zobS1rPpQudPytGM4nxXEGv0gpXEvnZnrykRwriNFbGVCwFJoE4txayjW76LsCw==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + /@esbuild/win32-ia32@0.19.11: resolution: {integrity: sha512-6YOrWS+sDJDmshdBIQU+Uoyh7pQKrdykdefC1avn76ss5c+RN6gut3LZA4E2cH5xUEp5/cA0+YxRaVtRAb0xBg==} engines: {node: '>=12'} @@ -2693,6 +2891,15 @@ packages: requiresBuild: true optional: true + /@esbuild/win32-x64@0.18.7: + resolution: {integrity: sha512-6RENfAwwL6dxQk/V1PxO/ejYRiOUVUaHi99hP3Dso/38jfNKFzU6YSSR/haJGNV/2wAHIgBMROQodna0IejAuA==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + /@esbuild/win32-x64@0.19.11: resolution: {integrity: sha512-vfkhltrjCAb603XaFhqhAF4LGDi2M4OrCRrFusyQ+iTLQ/o60QQXxc9cZC/FFpihBI9N1Grn6SMKVJ4KP7Fuiw==} engines: {node: '>=12'} @@ -4432,6 +4639,32 @@ packages: eslint-visitor-keys: 3.4.3 dev: true + /@typescript/twoslash@3.1.0: + resolution: {integrity: sha512-kTwMUQ8xtAZaC4wb2XuLkPqFVBj2dNBueMQ89NWEuw87k2nLBbuafeG5cob/QEr6YduxIdTVUjix0MtC7mPlmg==} + dependencies: + '@typescript/vfs': 1.3.5 + debug: 4.3.4 + lz-string: 1.5.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript/vfs@1.3.4: + resolution: {integrity: sha512-RbyJiaAGQPIcAGWFa3jAXSuAexU4BFiDRF1g3hy7LmRqfNpYlTQWGXjcrOaVZjJ8YkkpuwG0FcsYvtWQpd9igQ==} + dependencies: + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript/vfs@1.3.5: + resolution: {integrity: sha512-pI8Saqjupf9MfLw7w2+og+fmb0fZS0J6vsKXXrp4/PDXEFvntgzXmChCXC/KefZZS0YGS6AT8e0hGAJcTsdJlg==} + dependencies: + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + /@ungap/structured-clone@1.2.0: resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} dev: true @@ -4538,6 +4771,18 @@ packages: vinxi: 0.1.1(@types/node@20.5.4)(preact@10.18.1)(rollup@3.28.1) dev: false + /@vinxi/plugin-mdx@3.7.0(@mdx-js/mdx@3.0.0): + resolution: {integrity: sha512-8ftsO3OEzEBfYkKgvqGNjzLVebUIIoHqV//n9S52X6EKRhSdHptCtX1zuJ5Ib0yaThSK8zMepPVxeHaCq8LSFg==} + peerDependencies: + '@mdx-js/mdx': <3 + dependencies: + '@alloc/quick-lru': 5.2.0 + '@mdx-js/mdx': 3.0.0 + esbuild: 0.18.7 + resolve: 1.22.8 + unified: 9.2.2 + dev: true + /@vinxi/server-components@0.1.0(vinxi@0.1.1): resolution: {integrity: sha512-neGlOj3hBewkycgdGAt97+uYzdqu7ine5IXWGx1IJzUj91TzJu5gqsIxaT92we3OMd3OtOQ4m18j60F47kqGYA==} peerDependencies: @@ -5135,6 +5380,10 @@ packages: '@babel/core': 7.23.7 babel-plugin-jsx-dom-expressions: 0.37.11(@babel/core@7.23.7) + /bail@1.0.5: + resolution: {integrity: sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==} + dev: true + /bail@2.0.2: resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} dev: true @@ -6595,6 +6844,36 @@ packages: '@esbuild/win32-ia32': 0.18.20 '@esbuild/win32-x64': 0.18.20 + /esbuild@0.18.7: + resolution: {integrity: sha512-46V0EFvQ/urmruUCChD1e0SZJWM0Ulny5F+uf5QkBry97HfvgvZTnjpTrwmw0+CGRhqTh9zpFeB+W8WGIEXOAQ==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': 0.18.7 + '@esbuild/android-arm64': 0.18.7 + '@esbuild/android-x64': 0.18.7 + '@esbuild/darwin-arm64': 0.18.7 + '@esbuild/darwin-x64': 0.18.7 + '@esbuild/freebsd-arm64': 0.18.7 + '@esbuild/freebsd-x64': 0.18.7 + '@esbuild/linux-arm': 0.18.7 + '@esbuild/linux-arm64': 0.18.7 + '@esbuild/linux-ia32': 0.18.7 + '@esbuild/linux-loong64': 0.18.7 + '@esbuild/linux-mips64el': 0.18.7 + '@esbuild/linux-ppc64': 0.18.7 + '@esbuild/linux-riscv64': 0.18.7 + '@esbuild/linux-s390x': 0.18.7 + '@esbuild/linux-x64': 0.18.7 + '@esbuild/netbsd-x64': 0.18.7 + '@esbuild/openbsd-x64': 0.18.7 + '@esbuild/sunos-x64': 0.18.7 + '@esbuild/win32-arm64': 0.18.7 + '@esbuild/win32-ia32': 0.18.7 + '@esbuild/win32-x64': 0.18.7 + dev: true + /esbuild@0.19.11: resolution: {integrity: sha512-HJ96Hev2hX/6i5cDVwcqiJBBtuo9+FeIJOtZ9W1kA5M6AMJRHUZlpYZ1/SbEwtO0ioNAW8rUooVpC/WehY2SfA==} engines: {node: '>=12'} @@ -7124,6 +7403,11 @@ packages: bser: 2.1.1 dev: true + /fenceparser@1.1.1: + resolution: {integrity: sha512-VdkTsK7GWLT0VWMK5S5WTAPn61wJ98WPFwJiRHumhg4ESNUO/tnkU8bzzzc62o6Uk1SVhuZFLnakmDA4SGV7wA==} + engines: {node: '>=12'} + dev: true + /figures@3.2.0: resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} engines: {node: '>=8'} @@ -7664,6 +7948,12 @@ packages: '@types/hast': 3.0.3 dev: true + /hast-util-is-element@3.0.0: + resolution: {integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==} + dependencies: + '@types/hast': 3.0.3 + dev: true + /hast-util-parse-selector@4.0.0: resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} dependencies: @@ -8062,6 +8352,11 @@ packages: call-bind: 1.0.5 has-tostringtag: 1.0.0 + /is-buffer@2.0.5: + resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==} + engines: {node: '>=4'} + dev: true + /is-builtin-module@3.2.1: resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} engines: {node: '>=6'} @@ -8202,6 +8497,11 @@ packages: engines: {node: '>=0.10.0'} dev: true + /is-plain-obj@2.1.0: + resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} + engines: {node: '>=8'} + dev: true + /is-plain-obj@4.1.0: resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} engines: {node: '>=12'} @@ -11031,6 +11331,10 @@ packages: resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} dev: true + /regenerator-runtime@0.13.11: + resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} + dev: true + /regenerator-runtime@0.14.0: resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==} @@ -11067,6 +11371,17 @@ packages: jsesc: 0.5.0 dev: true + /rehype-autolink-headings@7.1.0: + resolution: {integrity: sha512-rItO/pSdvnvsP4QRB1pmPiNHUskikqtPojZKJPPPAVx9Hj8i8TwMBhofrrAYRhYOOBZH9tgmG5lPqDLuIWPWmw==} + dependencies: + '@types/hast': 3.0.3 + '@ungap/structured-clone': 1.2.0 + hast-util-heading-rank: 3.0.0 + hast-util-is-element: 3.0.0 + unified: 11.0.4 + unist-util-visit: 5.0.0 + dev: true + /rehype-parse@9.0.0: resolution: {integrity: sha512-WG7nfvmWWkCR++KEkZevZb/uw41E8TsH4DsY9UxsTbIXCVGbAs4S+r8FrQ+OtH5EEQAs+5UxKC42VinkmpA1Yw==} dependencies: @@ -11151,6 +11466,25 @@ packages: vfile: 6.0.1 dev: true + /remark-shiki-twoslash@3.1.3(typescript@4.9.5): + resolution: {integrity: sha512-4e8OH3ySOCw5wUbDcPszokOKjKuebOqlP2WlySvC7ITBOq27BiGsFlq+FNWhxppZ+JzhTWah4gQrnMjX3KDbAQ==} + peerDependencies: + typescript: '>3' + dependencies: + '@types/unist': 2.0.9 + '@typescript/twoslash': 3.1.0 + '@typescript/vfs': 1.3.4 + fenceparser: 1.1.1 + regenerator-runtime: 0.13.11 + shiki: 0.10.1 + shiki-twoslash: 3.1.2(typescript@4.9.5) + tslib: 2.1.0 + typescript: 4.9.5 + unist-util-visit: 2.0.3 + transitivePeerDependencies: + - supports-color + dev: true + /remark-stringify@11.0.0: resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} dependencies: @@ -11525,6 +11859,28 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} + /shiki-twoslash@3.1.2(typescript@4.9.5): + resolution: {integrity: sha512-JBcRIIizi+exIA/OUhYkV6jtyeZco0ykCkIRd5sgwIt1Pm4pz+maoaRZpm6SkhPwvif4fCA7xOtJOykhpIV64Q==} + peerDependencies: + typescript: '>3' + dependencies: + '@typescript/twoslash': 3.1.0 + '@typescript/vfs': 1.3.4 + fenceparser: 1.1.1 + shiki: 0.10.1 + typescript: 4.9.5 + transitivePeerDependencies: + - supports-color + dev: true + + /shiki@0.10.1: + resolution: {integrity: sha512-VsY7QJVzU51j5o1+DguUd+6vmCmZ5v/6gYu4vyYAhzjuNQU6P/vmSy4uQaOhvje031qQMiW0d2BwgMH52vqMng==} + dependencies: + jsonc-parser: 3.2.0 + vscode-oniguruma: 1.7.0 + vscode-textmate: 5.2.0 + dev: true + /shiki@0.14.7: resolution: {integrity: sha512-dNPAPrxSc87ua2sKJ3H5dQ/6ZaY8RNnaAqK+t0eG7p0Soi2ydiqbGOTaZCqaYvA/uZYfS1LJnemt3Q+mSfcPCg==} dependencies: @@ -12199,6 +12555,10 @@ packages: engines: {node: '>=8'} dev: true + /trough@1.0.5: + resolution: {integrity: sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==} + dev: true + /trough@2.1.0: resolution: {integrity: sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==} dev: true @@ -12301,6 +12661,10 @@ packages: strip-bom: 3.0.0 dev: true + /tslib@2.1.0: + resolution: {integrity: sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==} + dev: true + /tslib@2.6.2: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} @@ -12611,6 +12975,18 @@ packages: vfile: 6.0.1 dev: true + /unified@9.2.2: + resolution: {integrity: sha512-Sg7j110mtefBD+qunSLO1lqOEKdrwBFBrR6Qd8f4uwkhWNlbkaqwHse6e7QvD3AP/MNoJdEDLaf8OxYyoWgorQ==} + dependencies: + '@types/unist': 2.0.9 + bail: 1.0.5 + extend: 3.0.2 + is-buffer: 2.0.5 + is-plain-obj: 2.1.0 + trough: 1.0.5 + vfile: 4.2.1 + dev: true + /unimport@3.7.1(rollup@3.28.1): resolution: {integrity: sha512-V9HpXYfsZye5bPPYUgs0Otn3ODS1mDUciaBlXljI4C2fTwfFpvFZRywmlOu943puN9sncxROMZhsZCjNXEpzEQ==} dependencies: @@ -12651,6 +13027,10 @@ packages: - rollup dev: false + /unist-util-is@4.1.0: + resolution: {integrity: sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==} + dev: true + /unist-util-is@6.0.0: resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} dependencies: @@ -12676,12 +13056,25 @@ packages: unist-util-visit: 5.0.0 dev: true + /unist-util-stringify-position@2.0.3: + resolution: {integrity: sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==} + dependencies: + '@types/unist': 2.0.9 + dev: true + /unist-util-stringify-position@4.0.0: resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} dependencies: '@types/unist': 3.0.1 dev: true + /unist-util-visit-parents@3.1.1: + resolution: {integrity: sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==} + dependencies: + '@types/unist': 2.0.9 + unist-util-is: 4.1.0 + dev: true + /unist-util-visit-parents@6.0.1: resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} dependencies: @@ -12689,6 +13082,14 @@ packages: unist-util-is: 6.0.0 dev: true + /unist-util-visit@2.0.3: + resolution: {integrity: sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==} + dependencies: + '@types/unist': 2.0.9 + unist-util-is: 4.1.0 + unist-util-visit-parents: 3.1.1 + dev: true + /unist-util-visit@5.0.0: resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} dependencies: @@ -12873,6 +13274,13 @@ packages: vfile: 6.0.1 dev: true + /vfile-message@2.0.4: + resolution: {integrity: sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==} + dependencies: + '@types/unist': 2.0.9 + unist-util-stringify-position: 2.0.3 + dev: true + /vfile-message@4.0.2: resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} dependencies: @@ -12880,6 +13288,15 @@ packages: unist-util-stringify-position: 4.0.0 dev: true + /vfile@4.2.1: + resolution: {integrity: sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==} + dependencies: + '@types/unist': 2.0.9 + is-buffer: 2.0.5 + unist-util-stringify-position: 2.0.3 + vfile-message: 2.0.4 + dev: true + /vfile@6.0.1: resolution: {integrity: sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==} dependencies: @@ -13146,6 +13563,10 @@ packages: resolution: {integrity: sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==} dev: true + /vscode-textmate@5.2.0: + resolution: {integrity: sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ==} + dev: true + /vscode-textmate@8.0.0: resolution: {integrity: sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==} dev: true