boltdocs 2.7.3 → 2.7.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,111 @@
1
+ /**
2
+ * Boltdocs - https://boltdocs.vercel.app
3
+ * Copyright (c) 2026 Jesus Alcala
4
+ * Licensed under the MIT License.
5
+ */
6
+ const e=require(`./chunk-Ds5LZdWN.cjs`),t=require(`./utils-Clzu7jvb.cjs`),n=require(`./cache-DorPMFgW.cjs`),r=require(`./routes-Co1mRM58.cjs`),i=require(`./doctor-COpf35L2.cjs`);let a=require(`@vitejs/plugin-react`);a=e.n(a);let o=require(`@tailwindcss/vite`);o=e.n(o);let s=require(`vite`),c=require(`node:path`);c=e.n(c);let l=require(`fs`);l=e.n(l);let u=require(`zod`),d=require(`node:fs`);d=e.n(d);let f=require(`node:crypto`);f=e.n(f);let p=require(`vite-plugin-image-optimizer`),m=require(`semver`);m=e.n(m);let h=require(`path`);h=e.n(h);let g=require(`node:module`);g=e.n(g);let _=require(`@mdx-js/rollup`);_=e.n(_);let v=require(`remark-gfm`);v=e.n(v);let y=require(`remark-frontmatter`);y=e.n(y);let b=require(`rehype-slug`);b=e.n(b);let ee=require(`unist-util-visit`),te=require(`shiki/engine/javascript`),ne=require(`shiki/core`),x=require(`@shikijs/themes/github-light`);x=e.n(x);let S=require(`@shikijs/themes/github-dark`);S=e.n(S);let C=require(`@shikijs/themes/tokyo-night`);C=e.n(C);let w=require(`@shikijs/themes/dracula`);w=e.n(w);let T=require(`@shikijs/themes/nord`);T=e.n(T);let E=require(`@shikijs/themes/one-dark-pro`);E=e.n(E);let D=require(`@shikijs/themes/one-light`);D=e.n(D);let O=require(`@shikijs/langs/html`);O=e.n(O);let re=require(`@shikijs/langs/js`);re=e.n(re);let k=require(`@shikijs/langs/ts`);k=e.n(k);let A=require(`@shikijs/langs/tsx`);A=e.n(A);let j=require(`@shikijs/langs/css`);j=e.n(j);let M=require(`@shikijs/langs/json`);M=e.n(M);let ie=require(`@shikijs/langs/bash`);ie=e.n(ie);let ae=require(`@shikijs/langs/markdown`);ae=e.n(ae);let oe=require(`@shikijs/langs/mdx`);oe=e.n(oe);let se=require(`@shikijs/langs/yaml`);se=e.n(se);let N=require(`@shikijs/langs/rust`);N=e.n(N);let P=require(`@shikijs/langs/toml`);P=e.n(P);let F=require(`@shikijs/langs/csv`);F=e.n(F);function ce(e){return e.map(e=>({path:e.path,filePath:e.filePath,title:e.title,description:e.description||``,sidebarPosition:e.sidebarPosition,badge:e.badge,icon:e.icon,headings:e.headings||[],_content:e._content||``,_rawContent:e._rawContent||``,locale:e.locale,version:e.version,tab:e.tab,group:e.group,groupTitle:e.groupTitle,groupPosition:e.groupPosition,groupIcon:e.groupIcon,subRouteGroup:e.subRouteGroup,seo:e.seo,date:e.date,lastUpdated:e.lastUpdated,category:e.category,order:e.order,sidebarLabel:e.sidebarLabel,sidebarHidden:e.sidebarHidden,frontmatter:e.frontmatter,slugParts:e.slugParts}))}function le(e,n){let r=(n.siteUrl||``).replace(/\/$/,``);if(!r)return``;let i=n.seo?.indexing!==`all`&&n.seo?.indexing!==`public`;return`<?xml version="1.0" encoding="UTF-8"?>
7
+ <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
8
+ ${e.filter(e=>e.seo?.noindex||typeof e.seo?.robots==`string`&&e.seo.robots.includes(`noindex`)?!1:(i&&e.seo?.index,!0)).map(e=>` <url>
9
+ <loc>${t.n(`${r}${e.path.startsWith(`/`)?e.path:`/${e.path}`}`)}</loc>
10
+ <changefreq>weekly</changefreq>
11
+ <priority>0.7</priority>
12
+ </url>`).join(`
13
+ `)}
14
+ </urlset>`}function ue(e){let t=e.siteUrl||``,n=t?`${t.replace(/\/$/,``)}/sitemap.xml`:``;if(e.seo?.indexing!==`all`&&e.seo?.indexing!==`public`&&e.seo?.indexing)return[`User-agent: *`,`Disallow: /`].filter(Boolean).join(`
15
+ `);if(typeof e.robots==`string`)return e.robots;if(e.robots&&typeof e.robots==`object`){let t=e.robots.rules||[],r=e.robots.sitemaps||[],i=t.map(e=>{let t=`User-agent: ${e.userAgent}\n`;return e.allow&&(Array.isArray(e.allow)?t+=e.allow.map(e=>`Allow: ${e}`).join(`
16
+ `)+`
17
+ `:t+=`Allow: ${e.allow}\n`),e.disallow&&(Array.isArray(e.disallow)?t+=e.disallow.map(e=>`Disallow: ${e}`).join(`
18
+ `)+`
19
+ `:t+=`Disallow: ${e.disallow}\n`),t.trim()}).join(`
20
+
21
+ `),a=[...n?[n]:[],...r].map(e=>`Sitemap: ${e}`).join(`
22
+ `);return`${i}${a?`\n\n${a}`:``}`}return[`User-agent: *`,`Allow: /`,``,n?`Sitemap: ${n}`:``].filter(Boolean).join(`
23
+ `)}function de(e){return`<!doctype html>
24
+ <html lang="en">
25
+ <head>
26
+ <meta charset="UTF-8" />
27
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
28
+ <title>${e.theme?.title||`Boltdocs`}</title>
29
+ </head>
30
+ <body>
31
+ <div id="root"></div>
32
+ </body>
33
+ </html>`}function fe(e,t){(!e||!e.includes(`<body`)||!e.includes(`<head`))&&(e=de(t));let n=t.theme,r=n?.title||`Boltdocs`;if(typeof r==`object`){let e=t.i18n?.defaultLocale||``;r=r[e]||Object.values(r)[0]||`Boltdocs`}let i=n?.description||``;if(typeof i==`object`){let e=t.i18n?.defaultLocale||``;i=i[e]||Object.values(i)[0]||``}let a=n?.favicon;!a&&n?.logo&&(a=typeof n.logo==`string`?n.logo:n.logo.light||n.logo.dark);let o=[a?`<link rel="icon" href="${a}">`:``,`<meta name="description" content="${i}">`,`<meta property="og:title" content="${r}">`,`<meta property="og:description" content="${i}">`,`<meta property="og:type" content="website">`,`<meta name="twitter:card" content="summary_large_image">`,`<meta name="twitter:title" content="${r}">`,`<meta name="twitter:description" content="${i}">`,`<meta name="generator" content="Boltdocs">`].filter(Boolean).join(`
34
+ `);e=e.includes(`<title>`)?e.replace(/<title>.*?<\/title>/,`<title>${r}</title>`):e.replace(`</head>`,` <title>${r}</title>\n </head>`);let s=``;if(t.integrations?.ga4){let e=t.integrations.ga4;if(process.env.NODE_ENV===`production`||e.debug){let t=e.anonymizeIp?`gtag('set', 'ip', true);`:``,n=e.sendPageView===!1?`{send_page_view: false}`:`{}`,r=e.cookieFlags?`, {'cookie_flags': '${e.cookieFlags}'}`:``;s=`
35
+ <!-- Google tag (gtag.js) - ${e.measurementId} -->
36
+ <script async src="https://www.googletagmanager.com/gtag/js?id=${e.measurementId}"><\/script>
37
+ <script>
38
+ window.dataLayer = window.dataLayer || [];
39
+ function gtag(){dataLayer.push(arguments);}
40
+ gtag('js', new Date());
41
+ ${t}
42
+ gtag('config', '${e.measurementId}', ${n}${r});
43
+ <\/script>
44
+ `}}let c=``,l=``;if(t.integrations?.gtm){let e=t.integrations.gtm;if(process.env.NODE_ENV===`production`){let t=e.dataLayerName||`dataLayer`;c=`
45
+ <!-- Google Tag Manager -->
46
+ <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
47
+ new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
48
+ j=d.createElement(s),dl=l!='${t}'?'&l='+l:'';j.async=true;j.src=
49
+ 'https://www.googletagmanager.com/gtm.js?id='+i+dl+'${e.preview?`&gtm_preview=${e.preview}`:``}';f.parentNode.insertBefore(j,f);
50
+ })(window,document,'script','${t}','${e.tagId}');<\/script>
51
+ <!-- End Google Tag Manager -->
52
+ `,l=`
53
+ <!-- Google Tag Manager (noscript) -->
54
+ <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=${e.tagId}"
55
+ height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
56
+ <!-- End Google Tag Manager (noscript) -->
57
+ `}}return e=e.replace(`</head>`,` ${o}\n
58
+ <script>
59
+ (function() {
60
+ try {
61
+ var stored = localStorage.getItem("boltdocs-theme");
62
+ var isDark =
63
+ stored === "dark" ||
64
+ (stored !== "light" && window.matchMedia("(prefers-color-scheme: dark)").matches);
65
+ document.documentElement.classList.toggle("dark", isDark);
66
+ document.documentElement.dataset.theme = isDark ? "dark" : "light";
67
+ } catch (e) {}
68
+ })();
69
+ <\/script>
70
+ \n${s}${c} </head>`),l&&(e=e.replace(/<body([^>]*)>/,`<body$1>\n${l}`)),!e.includes(`src/main`)&&!e.includes(`virtual:boltdocs-entry`)&&(e=e.replace(`</body>`,` <script type="module">import "virtual:boltdocs-entry";<\/script>
71
+ </body>`)),e}var I=class e extends Error{pluginName;constructor(t,n){super(`[plugin:${t}] ${n}`),this.name=`PluginError`,this.pluginName=t,Object.setPrototypeOf(this,e.prototype)}},L=class e extends I{constructor(t,n){super(t,`Validation failed: ${n}`),this.name=`PluginValidationError`,Object.setPrototypeOf(this,e.prototype)}},pe=class e extends I{constructor(t,n){super(t,`Compatibility error: ${n}`),this.name=`PluginCompatibilityError`,Object.setPrototypeOf(this,e.prototype)}},R=class e extends I{constructor(t,n){super(t,`Missing required permission: '${n}'`),this.name=`PluginPermissionError`,Object.setPrototypeOf(this,e.prototype)}},me=class e extends I{hookName;constructor(t,n,r){super(t,`Error in hook '${n}': ${r.message}`),this.name=`PluginHookError`,this.hookName=n,this.stack=r.stack,Object.setPrototypeOf(this,e.prototype)}},he=class{data=new Map;getNamespaceKey(e,t){return`${e}:${t}`}get(e,t){let n=this.getNamespaceKey(e,t),r=this.data.get(n);if(r!==void 0)return typeof r==`object`&&r?JSON.parse(JSON.stringify(r)):r}set(e,t,n){let r=this.getNamespaceKey(e,t),i=typeof n==`object`&&n?JSON.parse(JSON.stringify(n)):n;this.data.set(r,i)}has(e,t){let n=this.getNamespaceKey(e,t);return this.data.has(n)}};const ge=i._.extend({version:u.z.string().optional(),boltdocsVersion:u.z.string().optional(),permissions:u.z.array(u.z.string()).optional(),hooks:u.z.object({beforeBuild:u.z.function().optional(),afterBuild:u.z.function().optional(),beforeDev:u.z.function().optional(),afterDev:u.z.function().optional(),configResolved:u.z.function().optional(),buildEnd:u.z.function().optional()}).optional()});function _e(e,t){let n=[],r=new Set;for(let i of e){let e=ge.safeParse(i);if(!e.success)throw new L(i.name||`unknown`,e.error.issues.map(e=>`${e.path.join(`.`)}: ${e.message}`).join(`, `));let a=e.data;if(r.has(a.name))throw new L(a.name,`Duplicate plugin name detected`);if(r.add(a.name),a.boltdocsVersion&&!m.default.satisfies(t,a.boltdocsVersion))throw new pe(a.name,`Plugin expects Boltdocs version ${a.boltdocsVersion}, but current is ${t}`);if(a.components){for(let[e,t]of Object.entries(a.components))if((t.includes(`..`)||h.default.isAbsolute(t))&&t.includes(`..`))throw new L(a.name,`Component '${e}' has an invalid path: traversal sequences are not allowed.`)}n.push(a)}return n}function z(e,t){return e.permissions?e.permissions.includes(t):!1}var B=class e{static checkPermission(e,t){if(!z(e,t))throw new R(e.name,t)}static getSanitizedCapabilities(e){return{remarkPlugins:z(e,`mdx:remark`)?e.remarkPlugins:[],rehypePlugins:z(e,`mdx:rehype`)?e.rehypePlugins:[],vitePlugins:z(e,`vite:config`)?e.vitePlugins:[],components:z(e,`components`)?e.components:{}}}static async executeWithIsolation(t,n,r,i){try{return e.checkPermission(t,n),await i()}catch(e){if(e instanceof R){console.warn(`[boltdocs] Skipping hook '${r}' for plugin '${t.name}': ${e.message}`);return}throw e}}},ve=class{plugins;config;store;constructor(e,t){this.plugins=e,this.config=t,this.store=new he}async runHook(e,...t){let n=this.getSortedPlugins();for(let r of n){if(!r.hooks?.[e])continue;let n=this.createContext(r),i=e.toLowerCase().includes(`build`),a=e.toLowerCase().includes(`dev`),o=i?`hooks:build`:a?`hooks:dev`:void 0;try{o?await B.executeWithIsolation(r,o,e,()=>r.hooks[e](n,...t)):await r.hooks[e](n,...t)}catch(t){let i=new me(r.name,e,t instanceof Error?t:Error(String(t)));n.logger.error(i)}}}getSortedPlugins(){let e=this.plugins.filter(e=>e.enforce===`pre`),t=this.plugins.filter(e=>!e.enforce),n=this.plugins.filter(e=>e.enforce===`post`);return[...e,...t,...n]}createContext(e){return{config:Object.freeze({...this.config}),meta:{name:e.name,version:e.version,boltdocsVersion:e.boltdocsVersion},store:{get:(e,t)=>this.store.get(e,t),set:(e,t,n)=>this.store.set(e,t,n),has:(e,t)=>this.store.has(e,t)},logger:this.createLogger(e.name)}}createLogger(e){let t=`[plugin:${e}]`;return{info:e=>console.log(`${t} INFO: ${e}`),warn:e=>console.warn(`${t} WARN: ${e}`),error:e=>{let n=e instanceof Error?e.message:e;console.error(`${t} ERROR: ${n}`)},debug:e=>console.debug(`${t} DEBUG: ${e}`)}}};function ye(e){return e}function V(e){return typeof e==`string`?[e]:Array.isArray(e)?e.flatMap(V):e&&typeof e==`object`?Object.values(e).flatMap(V):[]}const be=new Set([`title`,`description`,`permalink`,`sidebarPosition`,`sidebarLabel`,`sidebarHidden`,`hidden`,`category`,`order`,`badge`,`icon`,`date`,`lastUpdated`,`groupTitle`,`groupPosition`,`seo`]);function xe(e){let t=[];for(let n of e){let e=``;n.frontmatter&&(e=V(Object.entries(n.frontmatter).filter(([e])=>!be.has(e)).map(([e,t])=>t)).join(` `));let r=e?`${n._content||``} ${e}`:n._content||``;if(t.push({id:n.path,title:n.title,content:r,url:n.path,display:n.groupTitle?`${n.groupTitle} > ${n.title}`:n.title,locale:n.locale,version:n.version}),n.headings)for(let e of n.headings)t.push({id:`${n.path}#${e.id}`,title:e.text,content:`${e.text} in ${n.title}`,url:`${n.path}#${e.id}`,display:`${n.title} > ${e.text}`,locale:n.locale,version:n.version})}return t}function H(e,n,r=!1){let i=h.default.resolve(process.cwd(),`index.css`),a=l.default.existsSync(i)?`import './index.css';`:``,o=n?.plugins?.flatMap(e=>Object.entries(e.components||{}))||[],s=o.map(([e,n])=>`import * as _comp_${e} from '${t.l(n)}';
72
+ const ${e} = _comp_${e}.default || _comp_${e}['${e}'] || _comp_${e};`).join(`
73
+ `),c=o.map(([e])=>e).join(`, `),u=h.default.basename(e.docsDir||`docs`),d=h.default.resolve(process.cwd(),e.docsDir||`docs`),f=[`tsx`,`ts`,`jsx`,`js`].map(e=>h.default.resolve(d,`pages-external/index.${e}`)).find(e=>l.default.existsSync(e));return`
74
+ import { ViteReactSSG, createRoutes } from 'boltdocs/client';
75
+ import _routes from 'virtual:boltdocs-routes.ts';
76
+ import _config from 'virtual:boltdocs-config.ts';
77
+ import _user_mdx_components from 'virtual:boltdocs-mdx-components.tsx';
78
+ import _Layout from 'virtual:boltdocs-layout.tsx';
79
+ ${a}
80
+ ${s}
81
+ ${f?`import * as _external_module from '${t.l(f)}';`:``}
82
+
83
+ const mdxModules = import.meta.glob('/${u}/**/*.{md,mdx}', { eager: true });
84
+
85
+ export const createRoot = ViteReactSSG(
86
+ {
87
+ routes: createRoutes({
88
+ routesData: _routes,
89
+ config: _config,
90
+ mdxModules,
91
+ Layout: _Layout,
92
+ ${f?`externalPages: _external_module.pages, externalLayout: _external_module.layout,`:``}
93
+ components: { ${c}${c?`, `:``} ...(_user_mdx_components || {}) },
94
+ }),
95
+ },
96
+ ({ isClient }) => {
97
+ // Boltdocs initialization hook
98
+ if (isClient) {
99
+ // Client-side initialization
100
+ }
101
+ },
102
+ );
103
+ `}let U=null,W=null;function Se(){U=null,W=null}function Ce(e,n,i,a){return{name:`vite-plugin-boltdocs-virtual-modules`,resolveId(e){let n=i()?.root||process.cwd();return e.includes(`boltdocs-entry.tsx`)||e===`virtual:boltdocs-entry`||e===`boltdocs-entry`||e===`\0virtual:boltdocs-entry`?t.l(c.default.resolve(n,`boltdocs-entry.tsx`)):e.includes(`boltdocs-client.mjs`)||e===`virtual:boltdocs-client`||e===`boltdocs-client`||e===`\0virtual:boltdocs-client.ts`?t.l(c.default.resolve(n,`boltdocs-client.mjs`)):e.startsWith(`virtual:boltdocs-`)?`\0`+e:e.startsWith(`\0virtual:boltdocs-`)?e:null},async load(o){let s=i()?.command===`build`,l=n();if(o.includes(`boltdocs-entry.tsx`)||o===`\0virtual:boltdocs-entry`)return H(e,l,s);if(o.includes(`boltdocs-client.mjs`)||o===`\0virtual:boltdocs-client.ts`||o===`virtual:boltdocs-client`){let e=__dirname,n=e;for(;e!==c.default.parse(e).root;){if(d.default.existsSync(c.default.join(e,`package.json`))&&JSON.parse(d.default.readFileSync(c.default.join(e,`package.json`),`utf-8`)).name===`boltdocs`){n=e;break}e=c.default.dirname(e)}let r=c.default.join(n,`src/client/index.ts`),i=c.default.join(n,`dist/client/index.js`);return`export * from '${t.l(d.default.existsSync(r)?r:i)}';`}if(!o.startsWith(`\0virtual:boltdocs-`))return;let u=o.replace(`\0virtual:boltdocs-`,``).replace(/\.tsx?$/,``);if(u===`routes`){let e=ce(await r.t(a,l));return`export default ${JSON.stringify(e,null,2)};`}if(u===`config`){if(U===null){let{loadDirectoryMeta:e}=await Promise.resolve().then(()=>require(`./meta-loader-0gJ4PtBC.cjs`));U=await e(a)}let e=U,t={base:l?.base,theme:l?.theme,i18n:l?.i18n,versions:l?.versions,siteUrl:l?.siteUrl,integrations:l?.integrations,plugins:l?.plugins?.map(e=>({name:e.name})),directoryMeta:e};return`export default ${JSON.stringify(t,null,2)};`}if(u===`entry`)return H(e,l,s);if(u===`mdx-components`){let e=[`tsx`,`ts`,`jsx`,`js`],n=null;for(let t of e){let e=c.default.resolve(a,`mdx-components.${t}`);if(d.default.existsSync(e)){n=e;break}}if(n){let e=t.l(n);return`import * as components from '${e}';
104
+ const mdxComponents = components.default || components;
105
+ export default mdxComponents;
106
+ export * from '${e}';`}return`export default {};`}if(u===`layout`){let e=[`tsx`,`jsx`],n=null;for(let t of e){let e=c.default.resolve(a,`layout.${t}`);if(d.default.existsSync(e)){n=e;break}}if(n)return`import UserLayout from '${t.l(n)}';
107
+ export default UserLayout;`;throw Error(`[Boltdocs] Layout file not found. A 'layout.tsx' or 'layout.jsx' file is mandatory in your docs directory. Please create one to define your site structure.`)}if(u===`icons`){let e=[`tsx`,`jsx`,`ts`,`js`],n=null;for(let t of e){let e=c.default.resolve(a,`icons.${t}`);if(d.default.existsSync(e)){n=e;break}}return n?`import * as icons from '${t.l(n)}';\nexport default icons;`:`export default {};`}if(u===`search`){if(!W){let e=xe(await r.t(a,l));W=`export default ${JSON.stringify(e,null,2)};`}return W}if(u===`client`){let e=__dirname,n=``;for(;e&&e!==c.default.parse(e).root;){let r=c.default.join(e,`src/client/index.ts`),i=c.default.join(e,`dist/client/index.mjs`),a=c.default.join(e,`client/index.ts`);if(d.default.existsSync(r)){n=t.l(r);break}if(d.default.existsSync(i)){n=t.l(i);break}if(d.default.existsSync(a)){n=t.l(a);break}e=c.default.dirname(e)}if(!n)throw Error(`[boltdocs] Could not resolve boltdocs/client entry point starting from ${__dirname}`);return`export * from '${n}';`}}}}const we={"X-Content-Type-Options":`nosniff`,"X-Frame-Options":`DENY`,"X-XSS-Protection":`1; mode=block`,"Referrer-Policy":`strict-origin-when-cross-origin`,"Permissions-Policy":`camera=(), microphone=(), geolocation=()`,"Strict-Transport-Security":`max-age=31536000; includeSubDomains`};function Te(e){let t=process.env.NODE_ENV===`development`,n={"default-src":[`'self'`],"script-src":[`'self'`,`'unsafe-inline'`],"style-src":[`'self'`,`'unsafe-inline'`],"img-src":[`'self'`,`data:`,`https:`],"font-src":[`'self'`],"connect-src":[`'self'`]};return t&&(n[`script-src`]=[`'self'`,`'unsafe-eval'`,`'unsafe-inline'`],n[`style-src`]=[`'self'`,`'unsafe-inline'`]),Object.entries(n).map(([e,t])=>`${e} ${t.join(` `)}`).join(`; `)}const G=new Map;async function Ee(e){try{let{data:n}=await t.u(e),r=JSON.stringify(n);return f.default.createHash(`md5`).update(r).digest(`hex`)}catch{return``}}function De(e){return G.get(e)}function Oe(e,t){G.set(e,t)}function ke(e){G.delete(e)}function K(e,t){let n=e.moduleGraph.getModuleById(`\0virtual:boltdocs-${t}.ts`);n&&e.moduleGraph.invalidateModule(n)}function Ae(e,n,a,o,s){let l=new Map;return{name:`vite-plugin-boltdocs-dev-server`,apply:`serve`,async configureServer(o){let u=s();await u?.runHook(`beforeDev`),i.s(e,process.cwd(),a()).catch(e=>{console.error(`[boltdocs] Failed to generate initial link tree:`,e)}),setTimeout(async()=>{try{let{generateRoutes:t}=await Promise.resolve().then(()=>require(`./routes-CHf76Ye4.cjs`)),n=await t(e,a());for(let e of n)if(e.filePath){let t=c.default.relative(process.cwd(),e.filePath).replace(/\\/g,`/`),n=t.startsWith(`/`)?t:`/${t}`;await o.transformRequest(n).catch(()=>{}),await new Promise(e=>setTimeout(e,50))}}catch{}},1e3),o.middlewares.use((e,t,n)=>{process.env.NODE_ENV===`production`&&Object.entries(we).forEach(([e,n])=>{t.setHeader(e,n)});let r=a();r.security?.enableCSP&&t.setHeader(`Content-Security-Policy`,Te(r)),n()}),o.middlewares.use((e,t,n)=>{if(e.url===`/robots.txt`){n();return}n()}),o.middlewares.use(async(e,t,n)=>{let r=e.url?.split(`?`)[0]||`/`,i=e.headers.accept||``,s=a(),c=/\.(js|css|png|jpe?g|gif|svg|ico|webp|woff2?|ttf|otf|mp4|webm|ogg|mp3|wav|flac|aac|pdf|zip|gz|map|json)$/i.test(r);if(i.includes(`text/html`)&&!c){let n=de(s);n=fe(n,s),n=await o.transformIndexHtml(e.url||`/`,n),t.statusCode=200,t.setHeader(`Content-Type`,`text/html`),t.end(n);return}n()});let d=i.f.map(e=>c.default.resolve(process.cwd(),e)),f=[`tsx`,`jsx`].map(t=>c.default.resolve(e,`layout.${t}`)),p=[`tsx`,`ts`,`jsx`,`js`],m=p.map(t=>c.default.resolve(e,`mdx-components.${t}`)),h=p.map(t=>c.default.resolve(e,`pages-external/index.${t}`)),g=p.map(t=>c.default.resolve(e,`icons.${t}`));o.watcher.add([...d,...m,...f,...h,...g]);let _=async(s,u)=>{try{let d=t.l(s);if(i.f.some(e=>d.endsWith(e))){o.restart();return}if(p.some(e=>d.endsWith(`mdx-components.${e}`))){i.g(a(),e),K(o,`mdx-components.tsx`),o.ws.send({type:`full-reload`});return}if(p.some(e=>d.endsWith(`icons.${e}`))){K(o,`icons.tsx`),o.ws.send({type:`full-reload`});return}if(d.endsWith(`layout.tsx`)||d.endsWith(`layout.jsx`)){K(o,`layout.tsx`),o.ws.send({type:`full-reload`});return}if(d.includes(`/pages-external/`)||d.includes(`\\pages-external\\`)){K(o,`entry`),o.ws.send({type:`full-reload`});return}if(!d.toLowerCase().startsWith(n.toLowerCase())||!t.s(d))return;if(u===`add`||u===`unlink`){u===`unlink`&&ke(s),r.n(),Se();let t=a();i.g(t,e),K(o,`config`),K(o,`routes`),K(o,`search`),i.s(e,process.cwd(),t).catch(e=>{console.error(`[boltdocs] Failed to update link tree:`,e)}),o.ws.send({type:`custom`,event:`boltdocs:config-update`,data:{theme:t?.theme,i18n:t?.i18n,versions:t?.versions,siteUrl:t?.siteUrl}}),o.ws.send({type:`full-reload`});return}l.has(d)&&clearTimeout(l.get(d)),l.set(d,setTimeout(async()=>{l.delete(d);try{let n=De(s),i=await Ee(s);Oe(s,i),r.r(s),n!==void 0&&n!==i&&(K(o,`routes`),K(o,`search`));let a=t.l(c.default.relative(e,s)),l=o.moduleGraph.getModulesByFile(d);if(l)for(let e of l)o.moduleGraph.invalidateModule(e);o.ws.send({type:`custom`,event:`boltdocs:mdx-update`,data:{file:d,relPath:a}})}catch(e){console.error(`[boltdocs] HMR error processing content change:`,e)}},150))}catch(e){console.error(`[boltdocs] HMR error during ${u} event:`,e)}};o.watcher.on(`add`,e=>_(e,`add`)),o.watcher.on(`unlink`,e=>_(e,`unlink`)),o.watcher.on(`change`,e=>_(e,`change`)),await u?.runHook(`afterDev`)},handleHotUpdate({file:e,server:r}){let i=t.l(e);if(i.toLowerCase().startsWith(n.toLowerCase())&&t.s(i))return[]}}}const q=g.createRequire(require(`url`).pathToFileURL(__filename).href);function je(e){let t=c.default.dirname(e);for(;t&&t!==c.default.dirname(t);){let e=c.default.join(t,`package.json`);if(d.default.existsSync(e))return e;t=c.default.dirname(t)}return null}function Me(e){let t=e.split(`/`);return e.startsWith(`@`)?{packageName:t.slice(0,2).join(`/`),subpath:t.slice(2).join(`/`)}:{packageName:t[0],subpath:t.slice(1).join(`/`)}}function J(e,t=q){try{let{packageName:n,subpath:r}=Me(e),i;try{i=t.resolve(n+`/package.json`)}catch{i=je(t.resolve(n))||``}if(!i)throw Error(`Could not find package.json for ${n}`);let a=c.default.dirname(i),o=JSON.parse(d.default.readFileSync(i,`utf-8`)),s=``,l=r?`./`+r:`.`;if(o.exports){let e=o.exports[l]||o.exports[r];e&&(s=typeof e==`string`?e:e.import||e.default||e.require||e)}if(!s&&!r&&(s=o.module||o.main||`index.js`),typeof s==`object`&&(s=s.import||s.default||s.require||``),s){let e=c.default.resolve(a,s);if(d.default.existsSync(e))return e}}catch{}return t.resolve(e)}function Ne(){let e=[`react`,`react-dom`,`react-router-dom`,`react-helmet-async`,`@bdocs/ssg`,`react-fast-compare`,`invariant`],n=[],r=q;try{let e=c.default.join(process.cwd(),`node_modules/boltdocs/package.json`);if(d.default.existsSync(e)){let t=d.default.realpathSync(e);r=g.createRequire(t)}else r=g.createRequire(c.default.join(process.cwd(),`package.json`))}catch{}for(let t of e)try{let e=``;e=t===`@bdocs/ssg`||t===`react-router-dom`||t===`react-helmet-async`?J(t,r):r.resolve(t),e&&n.push(d.default.realpathSync(e))}catch{}if(r!==q)for(let t of e)try{let e=``;e=t===`@bdocs/ssg`||t===`react-router-dom`||t===`react-helmet-async`?J(t,q):q.resolve(t),e&&n.push(d.default.realpathSync(e))}catch{}for(let e of[`react/jsx-runtime`,`react/jsx-dev-runtime`,`react-dom/client`]){try{n.push(d.default.realpathSync(r.resolve(e)))}catch{}if(r!==q)try{n.push(d.default.realpathSync(q.resolve(e)))}catch{}}return Array.from(new Set(n)).map(e=>t.l(e))}function Pe(e={},n){let a=c.default.resolve(process.cwd(),e.docsDir||`docs`),o=t.l(a),l=n,u,f=!1,m,h=[],_=()=>l;return[{name:`vite-plugin-boltdocs`,enforce:`pre`,async config(e,t){f=t.command===`build`;let n=!!(t.ssrBuild||t.ssr||e.build?.ssr),o=e.envDir||process.cwd(),u=(0,s.loadEnv)(t.mode,o,``);Object.assign(process.env,u),l||=await i.m(a);let p=(await Promise.resolve().then(()=>require(`./package-B9djt7Wj.cjs`))).version,g=_e(l.plugins||[],p);return l.plugins=g,m=new ve(g,l),h=g.flatMap(e=>B.getSanitizedCapabilities(e).vitePlugins||[]),f&&await m.runHook(`beforeBuild`),{ssgOptions:{entry:`boltdocs/entry`,htmlEntry:`index.html`,dirStyle:`nested`,includeAllRoutes:!0,mock:!0,script:`async`,beastiesOptions:{preload:`media`},onFinished:async e=>{let t=le(ce(await r.t(a,l)),l);t&&d.default.writeFileSync(c.default.join(e,`sitemap.xml`),t);let n=ue(l);d.default.writeFileSync(c.default.join(e,`robots.txt`),n)}},build:{ssrManifest:f},optimizeDeps:{include:[`react`,`react-dom`,`react-dom/client`,`react-router-dom`,`react-helmet-async`,`react-fast-compare`,`invariant`],exclude:[`boltdocs`,`boltdocs/client`]},resolve:{alias:[{find:`react-router-dom`,replacement:J(`react-router-dom`)},{find:`react-helmet-async`,replacement:J(`react-helmet-async`)},{find:`@bdocs/ssg`,replacement:J(`@bdocs/ssg`)}],dedupe:[`react`,`react-dom`,...n?[]:[`react-router-dom`,`react-helmet-async`,`@bdocs/ssg`]]},ssr:{external:[`react`,`react-dom`,`react-router-dom`,`react-helmet-async`,`@bdocs/ssg`,`react-fast-compare`,`invariant`,...Ne()],optimizeDeps:{include:[`react-fast-compare`,`invariant`]},noExternal:[]}}},configResolved(e){u=e,m?.runHook(`configResolved`,l)},resolveId(e,t,n){let r=[`react`,`react-dom`,`react-router-dom`,`react-helmet-async`,`@bdocs/ssg`].find(t=>e===t||e.startsWith(t+`/`)||e.includes(`/node_modules/${t}/`)||t.startsWith(`@`)&&e.includes(`/node_modules/${t.replace(`/`,c.default.sep)}/`));if(r&&n?.ssr){let t=e;if(!c.default.isAbsolute(e)){let n=q;try{let e=c.default.join(process.cwd(),`node_modules/boltdocs/package.json`);if(d.default.existsSync(e)){let t=d.default.realpathSync(e);n=g.createRequire(t)}else n=g.createRequire(c.default.join(process.cwd(),`package.json`))}catch{}try{t=r===`@bdocs/ssg`||r===`react-router-dom`||r===`react-helmet-async`?J(e,n):n.resolve(e)}catch{try{t=r===`@bdocs/ssg`||r===`react-router-dom`||r===`react-helmet-async`?J(e,q):q.resolve(e)}catch{}}}try{t=d.default.realpathSync(t)}catch{}return{id:t,external:!0}}return null},transformIndexHtml:{order:`pre`,handler(e){return fe(e,l)}},async buildEnd(){let{pool:e}=await Promise.resolve().then(()=>require(`./worker-pool-BwU8ckrg.cjs`));await e.terminate()},async closeBundle(){!f||u?.build?.ssr||(await m?.runHook(`afterBuild`),await m?.runHook(`buildEnd`))}},Ce(e,_,()=>u,a),Ae(a,o,_,e=>{l=e},()=>m),{...(0,p.ViteImageOptimizer)({includePublic:!0,png:{quality:80},jpeg:{quality:80},jpg:{quality:80},webp:{quality:80},avif:{quality:80},svg:{multipass:!0,plugins:[{name:`preset-default`}]}}),apply:`build`},...h]}const Y=new n.r(`mdx`),Fe=[x.default.default||x.default,S.default.default||S.default,C.default.default||C.default,w.default.default||w.default,T.default.default||T.default,E.default.default||E.default,D.default.default||D.default],Ie=[O.default,re.default,k.default,A.default,j.default,M.default,ie.default,ae.default,oe.default,se.default,N.default,P.default,F.default];let Le=null,X=null;const Re=()=>(Le??=(0,te.createJavaScriptRegexEngine)(),Le),ze=async e=>X||(X=(0,ne.createHighlighterCore)({themes:Fe,langs:Ie,engine:Re()}),X),Z={JSX_FLOW_ELEMENT:`mdxJsxFlowElement`,JSX_TEXT_ELEMENT:`mdxJsxTextElement`,JSX_ATTRIBUTE:`mdxJsxAttribute`,ELEMENT:`element`,TEXT:`text`,CODE:`code`},Be={PRE:`pre`,CODE:`code`},Q={TITLE:`data-title`,LANG:`data-lang`,HIGHLIGHTED:`data-highlighted`,HIGHLIGHTED_HTML:`data-highlighted-html`},$={LINE_NUMBERS:`shiki-line-numbers`,WORD_WRAP:`shiki-word-wrap`,FALLBACK:`shiki-fallback`},Ve={LIGHT:`github-light`,DARK:`github-dark`},He={LANG:`plaintext`,MDX_DEFAULT_LANG:`text`},Ue=(e={})=>{let{activateByDefault:t=!1}=e;return{name:`boltdocs:line-numbers`,pre(e){let n=this.options.meta?.lineNumbers===!0;(t||n)&&this.addClassToHast(e,$.LINE_NUMBERS)}}},We=(e={})=>{let{activateByDefault:t=!1}=e;return{name:`boltdocs:word-wrap`,pre(e){let n=this.options.meta?.wordWrap===!0;(t||n)&&this.addClassToHast(e,$.WORD_WRAP)}}},Ge=()=>({name:`AddTitleProperty`,pre(e){let t=this.options.meta?.title;t&&(e.properties[Q.TITLE]=t)}}),Ke=()=>({name:`AddLanguageProperty`,pre(e){e.properties[Q.LANG]=this.options.lang||He.LANG}});function qe(e){let t={};if(!e)return t;/lineNumbers|showLineNumbers/.test(e)&&(t.lineNumbers=!0),/wordWrap|word-wrap/.test(e)&&(t.wordWrap=!0);let n=e.match(/title=(["'])(.*?)\1/);return n&&(t.title=n[2]),t}var Je=class{config;constructor(e){this.config=e}getTheme(){return this.config?.theme?.codeTheme||{light:Ve.LIGHT,dark:Ve.DARK}}async getHighlighter(){return await ze(this.getTheme())}getOptions(e,t){let n=this.getTheme(),r={},i=``;typeof t==`string`?(i=t,r=qe(t)):t&&(r=t,i=t.__raw||``);let a={lang:e||He.LANG,meta:{__raw:i,...r},transformers:[Ue(),We(),Ge(),Ke()]};return typeof n==`object`?a.themes={light:n.light,dark:n.dark}:a.theme=n,a}async render(e,t,n){try{let r=await this.getHighlighter(),i=this.getOptions(t,n);return r.codeToHtml(e,i)}catch(t){return console.error(`[ShikiAdapter] Failed to render code:`,t),`<pre class="${$.FALLBACK}"><code>${Ye(e)}</code></pre>`}}};function Ye(e){return e.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`).replace(/"/g,`&quot;`).replace(/'/g,`&#039;`)}let Xe=null,Ze;function Qe(e){let t=JSON.stringify(e?.theme?.codeTheme||null);return(Xe===null||Ze!==t)&&(Xe=new Je(e),Ze=t),Xe}function $e(e){let t=Qe(e);return async e=>{let n=await t.getHighlighter();(0,ee.visit)(e,Z.ELEMENT,e=>{if(e.tagName===Be.PRE&&e.children?.[0]?.type===Z.ELEMENT&&e.children[0].tagName===Be.CODE){let r=e.children[0],i=(r.properties?.className||[]).find(e=>e.startsWith(`language-`)),a=i?i.slice(9):He.MDX_DEFAULT_LANG;if(a===`mermaid`)return;let o=r.children?.[0]?.value||``,s=qe(r.properties?.metastring||r.data?.meta||``),c=t.getOptions(a,s),l=``;try{l=n.codeToHtml(o,c)}catch(e){console.error(`[rehypeShiki] Failed to highlight code block:`,e),l=`<pre class="${$.FALLBACK}"><code>${Ye(o)}</code></pre>`}e.properties=e.properties||{},s.title&&(e.properties[Q.TITLE]=s.title),e.properties[Q.HIGHLIGHTED]=`true`,e.properties[Q.HIGHLIGHTED_HTML]=l,e.properties[Q.LANG]=a,e.children=[]}})}}function et(){return e=>{(0,ee.visit)(e,Z.CODE,e=>{e.meta&&(e.data=e.data||{},e.data.hProperties=e.data.hProperties||{},e.data.hProperties.metastring=e.meta)})}}let tt=!1;function nt(e,t=_.default){let n=e?.plugins?.flatMap(e=>B.getSanitizedCapabilities(e).remarkPlugins||[])||[],r=e?.plugins?.flatMap(e=>B.getSanitizedCapabilities(e).rehypePlugins||[])||[],i=t({remarkPlugins:[v.default,y.default,et,...n],rehypePlugins:[b.default,[$e,e],...r],jsxRuntime:`automatic`});return{...i,name:`vite-plugin-boltdocs-mdx`,async buildStart(){tt||=(await Y.load(),!0),i.buildStart&&await i.buildStart.call(this)},async transform(e,t,n){let[r]=t.split(`?`);if(!r.endsWith(`.md`)&&!r.endsWith(`.mdx`))return i.transform?.call(this,e,t,n);let a=`${r}:${f.default.createHash(`md5`).update(e).digest(`hex`)}:${process.env.NODE_ENV===`production`?`prod`:`dev`}:v3`,o=await Y.getAsync(a);if(o)return{code:o,map:null};let s=await i.transform.call(this,e,r,n);return s&&typeof s==`object`&&s.code&&(process.env.NODE_ENV!==`production`&&(s.code+=`
108
+ if (import.meta.hot) {
109
+ import.meta.hot.accept();
110
+ }
111
+ `),Y.set(a,s.code)),s},async buildEnd(){Y.save(),await Y.flush(),i.buildEnd&&await i.buildEnd.call(this)}}}(0,g.createRequire)(require(`url`).pathToFileURL(__filename).href);async function rt(e){let t=await i.m(e?.docsDir||`docs`);return[...Pe({...e},t),nt(t)]}async function it(e,t=`development`){let n=await i.m(`docs`,e),r=t===`production`,l=r?{...we}:{};return n.security?.enableCSP&&(l[`Content-Security-Policy`]=Te(n)),{root:e,mode:t,oxc:{jsx:{development:!r,runtime:`automatic`,importSource:`react`}},optimizeDeps:{include:[`react`,`react-dom`,`react-dom/client`,`react-helmet-async`,`react-router-dom`,`react-fast-compare`,`invariant`,`use-sync-external-store/shim`]},build:{},plugins:[(0,a.default)(),(0,o.default)(),...Pe({docsDir:`docs`,root:e},n),nt(n)],resolve:{alias:[{find:`boltdocs/entry`,replacement:(0,s.normalizePath)(c.default.resolve(e,`boltdocs-entry.tsx`))},{find:`boltdocs/client`,replacement:(0,s.normalizePath)(c.default.resolve(e,`boltdocs-client.mjs`))},{find:`use-sync-external-store/shim/index.js`,replacement:`react`},{find:`use-sync-external-store/shim`,replacement:`react`},{find:`use-sync-external-store`,replacement:`react`}],dedupe:[`react`,`react-dom`]},ssr:{external:[`react`,`react-dom`,`react-router-dom`,`react-helmet-async`,`@bdocs/ssg`,`react-fast-compare`,`invariant`,...Ne()],optimizeDeps:{include:[`react-fast-compare`,`invariant`,...n.vite?.ssr?.optimizeDeps?.include||[]]},noExternal:[`boltdocs`,/@bdocs\/(?!ssg).*/,`react-aria-components`,`@react-aria/collections`,`@react-aria/utils`]},server:{headers:{...l,...n.vite?.server?.headers},...n.vite?.server},preview:{headers:{...l,...n.vite?.preview?.headers},...n.vite?.preview},...n.vite}}Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return ve}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return z}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return pe}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return I}}),Object.defineProperty(exports,`h`,{enumerable:!0,get:function(){return L}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return ye}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return _e}}),Object.defineProperty(exports,`m`,{enumerable:!0,get:function(){return R}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return it}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return B}}),Object.defineProperty(exports,`p`,{enumerable:!0,get:function(){return me}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return H}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return ge}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return rt}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return he}});
@@ -0,0 +1,111 @@
1
+ /**
2
+ * Boltdocs - https://boltdocs.vercel.app
3
+ * Copyright (c) 2026 Jesus Alcala
4
+ * Licensed under the MIT License.
5
+ */
6
+ import{a as e,l as t,n,s as r,u as i}from"./doctor-COxqQQQ8.mjs";import{l as a,n as o,s,u as c}from"./utils-BxNAXhZZ.mjs";import{r as l}from"./cache-CQKlT4fI.mjs";import{i as u,n as d,t as f}from"./routes-D0KpEheM.mjs";import*as p from"node:module";import{createRequire as m}from"node:module";import h from"@vitejs/plugin-react";import g from"@tailwindcss/vite";import{loadEnv as ee,normalizePath as _}from"vite";import v from"node:path";import y from"fs";import{z as b}from"zod";import x from"node:fs";import S from"node:crypto";import{ViteImageOptimizer as te}from"vite-plugin-image-optimizer";import ne from"semver";import C from"path";import{fileURLToPath as re}from"node:url";import ie from"@mdx-js/rollup";import ae from"remark-gfm";import oe from"remark-frontmatter";import se from"rehype-slug";import{visit as ce}from"unist-util-visit";import{createJavaScriptRegexEngine as le}from"shiki/engine/javascript";import{createHighlighterCore as ue}from"shiki/core";import de from"@shikijs/themes/github-light";import fe from"@shikijs/themes/github-dark";import pe from"@shikijs/themes/tokyo-night";import me from"@shikijs/themes/dracula";import he from"@shikijs/themes/nord";import ge from"@shikijs/themes/one-dark-pro";import _e from"@shikijs/themes/one-light";import ve from"@shikijs/langs/html";import ye from"@shikijs/langs/js";import be from"@shikijs/langs/ts";import xe from"@shikijs/langs/tsx";import Se from"@shikijs/langs/css";import Ce from"@shikijs/langs/json";import we from"@shikijs/langs/bash";import Te from"@shikijs/langs/markdown";import Ee from"@shikijs/langs/mdx";import De from"@shikijs/langs/yaml";import Oe from"@shikijs/langs/rust";import ke from"@shikijs/langs/toml";import Ae from"@shikijs/langs/csv";function w(e){return e.map(e=>({path:e.path,filePath:e.filePath,title:e.title,description:e.description||``,sidebarPosition:e.sidebarPosition,badge:e.badge,icon:e.icon,headings:e.headings||[],_content:e._content||``,_rawContent:e._rawContent||``,locale:e.locale,version:e.version,tab:e.tab,group:e.group,groupTitle:e.groupTitle,groupPosition:e.groupPosition,groupIcon:e.groupIcon,subRouteGroup:e.subRouteGroup,seo:e.seo,date:e.date,lastUpdated:e.lastUpdated,category:e.category,order:e.order,sidebarLabel:e.sidebarLabel,sidebarHidden:e.sidebarHidden,frontmatter:e.frontmatter,slugParts:e.slugParts}))}function je(e,t){let n=(t.siteUrl||``).replace(/\/$/,``);if(!n)return``;let r=t.seo?.indexing!==`all`&&t.seo?.indexing!==`public`;return`<?xml version="1.0" encoding="UTF-8"?>
7
+ <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
8
+ ${e.filter(e=>e.seo?.noindex||typeof e.seo?.robots==`string`&&e.seo.robots.includes(`noindex`)?!1:(r&&e.seo?.index,!0)).map(e=>` <url>
9
+ <loc>${o(`${n}${e.path.startsWith(`/`)?e.path:`/${e.path}`}`)}</loc>
10
+ <changefreq>weekly</changefreq>
11
+ <priority>0.7</priority>
12
+ </url>`).join(`
13
+ `)}
14
+ </urlset>`}function Me(e){let t=e.siteUrl||``,n=t?`${t.replace(/\/$/,``)}/sitemap.xml`:``;if(e.seo?.indexing!==`all`&&e.seo?.indexing!==`public`&&e.seo?.indexing)return[`User-agent: *`,`Disallow: /`].filter(Boolean).join(`
15
+ `);if(typeof e.robots==`string`)return e.robots;if(e.robots&&typeof e.robots==`object`){let t=e.robots.rules||[],r=e.robots.sitemaps||[],i=t.map(e=>{let t=`User-agent: ${e.userAgent}\n`;return e.allow&&(Array.isArray(e.allow)?t+=e.allow.map(e=>`Allow: ${e}`).join(`
16
+ `)+`
17
+ `:t+=`Allow: ${e.allow}\n`),e.disallow&&(Array.isArray(e.disallow)?t+=e.disallow.map(e=>`Disallow: ${e}`).join(`
18
+ `)+`
19
+ `:t+=`Disallow: ${e.disallow}\n`),t.trim()}).join(`
20
+
21
+ `),a=[...n?[n]:[],...r].map(e=>`Sitemap: ${e}`).join(`
22
+ `);return`${i}${a?`\n\n${a}`:``}`}return[`User-agent: *`,`Allow: /`,``,n?`Sitemap: ${n}`:``].filter(Boolean).join(`
23
+ `)}function T(e){return`<!doctype html>
24
+ <html lang="en">
25
+ <head>
26
+ <meta charset="UTF-8" />
27
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
28
+ <title>${e.theme?.title||`Boltdocs`}</title>
29
+ </head>
30
+ <body>
31
+ <div id="root"></div>
32
+ </body>
33
+ </html>`}function E(e,t){(!e||!e.includes(`<body`)||!e.includes(`<head`))&&(e=T(t));let n=t.theme,r=n?.title||`Boltdocs`;if(typeof r==`object`){let e=t.i18n?.defaultLocale||``;r=r[e]||Object.values(r)[0]||`Boltdocs`}let i=n?.description||``;if(typeof i==`object`){let e=t.i18n?.defaultLocale||``;i=i[e]||Object.values(i)[0]||``}let a=n?.favicon;!a&&n?.logo&&(a=typeof n.logo==`string`?n.logo:n.logo.light||n.logo.dark);let o=[a?`<link rel="icon" href="${a}">`:``,`<meta name="description" content="${i}">`,`<meta property="og:title" content="${r}">`,`<meta property="og:description" content="${i}">`,`<meta property="og:type" content="website">`,`<meta name="twitter:card" content="summary_large_image">`,`<meta name="twitter:title" content="${r}">`,`<meta name="twitter:description" content="${i}">`,`<meta name="generator" content="Boltdocs">`].filter(Boolean).join(`
34
+ `);e=e.includes(`<title>`)?e.replace(/<title>.*?<\/title>/,`<title>${r}</title>`):e.replace(`</head>`,` <title>${r}</title>\n </head>`);let s=``;if(t.integrations?.ga4){let e=t.integrations.ga4;if(process.env.NODE_ENV===`production`||e.debug){let t=e.anonymizeIp?`gtag('set', 'ip', true);`:``,n=e.sendPageView===!1?`{send_page_view: false}`:`{}`,r=e.cookieFlags?`, {'cookie_flags': '${e.cookieFlags}'}`:``;s=`
35
+ <!-- Google tag (gtag.js) - ${e.measurementId} -->
36
+ <script async src="https://www.googletagmanager.com/gtag/js?id=${e.measurementId}"><\/script>
37
+ <script>
38
+ window.dataLayer = window.dataLayer || [];
39
+ function gtag(){dataLayer.push(arguments);}
40
+ gtag('js', new Date());
41
+ ${t}
42
+ gtag('config', '${e.measurementId}', ${n}${r});
43
+ <\/script>
44
+ `}}let c=``,l=``;if(t.integrations?.gtm){let e=t.integrations.gtm;if(process.env.NODE_ENV===`production`){let t=e.dataLayerName||`dataLayer`;c=`
45
+ <!-- Google Tag Manager -->
46
+ <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
47
+ new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
48
+ j=d.createElement(s),dl=l!='${t}'?'&l='+l:'';j.async=true;j.src=
49
+ 'https://www.googletagmanager.com/gtm.js?id='+i+dl+'${e.preview?`&gtm_preview=${e.preview}`:``}';f.parentNode.insertBefore(j,f);
50
+ })(window,document,'script','${t}','${e.tagId}');<\/script>
51
+ <!-- End Google Tag Manager -->
52
+ `,l=`
53
+ <!-- Google Tag Manager (noscript) -->
54
+ <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=${e.tagId}"
55
+ height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
56
+ <!-- End Google Tag Manager (noscript) -->
57
+ `}}return e=e.replace(`</head>`,` ${o}\n
58
+ <script>
59
+ (function() {
60
+ try {
61
+ var stored = localStorage.getItem("boltdocs-theme");
62
+ var isDark =
63
+ stored === "dark" ||
64
+ (stored !== "light" && window.matchMedia("(prefers-color-scheme: dark)").matches);
65
+ document.documentElement.classList.toggle("dark", isDark);
66
+ document.documentElement.dataset.theme = isDark ? "dark" : "light";
67
+ } catch (e) {}
68
+ })();
69
+ <\/script>
70
+ \n${s}${c} </head>`),l&&(e=e.replace(/<body([^>]*)>/,`<body$1>\n${l}`)),!e.includes(`src/main`)&&!e.includes(`virtual:boltdocs-entry`)&&(e=e.replace(`</body>`,` <script type="module">import "virtual:boltdocs-entry";<\/script>
71
+ </body>`)),e}var D=class e extends Error{pluginName;constructor(t,n){super(`[plugin:${t}] ${n}`),this.name=`PluginError`,this.pluginName=t,Object.setPrototypeOf(this,e.prototype)}},O=class e extends D{constructor(t,n){super(t,`Validation failed: ${n}`),this.name=`PluginValidationError`,Object.setPrototypeOf(this,e.prototype)}},k=class e extends D{constructor(t,n){super(t,`Compatibility error: ${n}`),this.name=`PluginCompatibilityError`,Object.setPrototypeOf(this,e.prototype)}},A=class e extends D{constructor(t,n){super(t,`Missing required permission: '${n}'`),this.name=`PluginPermissionError`,Object.setPrototypeOf(this,e.prototype)}},j=class e extends D{hookName;constructor(t,n,r){super(t,`Error in hook '${n}': ${r.message}`),this.name=`PluginHookError`,this.hookName=n,this.stack=r.stack,Object.setPrototypeOf(this,e.prototype)}},M=class{data=new Map;getNamespaceKey(e,t){return`${e}:${t}`}get(e,t){let n=this.getNamespaceKey(e,t),r=this.data.get(n);if(r!==void 0)return typeof r==`object`&&r?JSON.parse(JSON.stringify(r)):r}set(e,t,n){let r=this.getNamespaceKey(e,t),i=typeof n==`object`&&n?JSON.parse(JSON.stringify(n)):n;this.data.set(r,i)}has(e,t){let n=this.getNamespaceKey(e,t);return this.data.has(n)}};const N=i.extend({version:b.string().optional(),boltdocsVersion:b.string().optional(),permissions:b.array(b.string()).optional(),hooks:b.object({beforeBuild:b.function().optional(),afterBuild:b.function().optional(),beforeDev:b.function().optional(),afterDev:b.function().optional(),configResolved:b.function().optional(),buildEnd:b.function().optional()}).optional()});function P(e,t){let n=[],r=new Set;for(let i of e){let e=N.safeParse(i);if(!e.success)throw new O(i.name||`unknown`,e.error.issues.map(e=>`${e.path.join(`.`)}: ${e.message}`).join(`, `));let a=e.data;if(r.has(a.name))throw new O(a.name,`Duplicate plugin name detected`);if(r.add(a.name),a.boltdocsVersion&&!ne.satisfies(t,a.boltdocsVersion))throw new k(a.name,`Plugin expects Boltdocs version ${a.boltdocsVersion}, but current is ${t}`);if(a.components){for(let[e,t]of Object.entries(a.components))if((t.includes(`..`)||C.isAbsolute(t))&&t.includes(`..`))throw new O(a.name,`Component '${e}' has an invalid path: traversal sequences are not allowed.`)}n.push(a)}return n}function F(e,t){return e.permissions?e.permissions.includes(t):!1}var I=class e{static checkPermission(e,t){if(!F(e,t))throw new A(e.name,t)}static getSanitizedCapabilities(e){return{remarkPlugins:F(e,`mdx:remark`)?e.remarkPlugins:[],rehypePlugins:F(e,`mdx:rehype`)?e.rehypePlugins:[],vitePlugins:F(e,`vite:config`)?e.vitePlugins:[],components:F(e,`components`)?e.components:{}}}static async executeWithIsolation(t,n,r,i){try{return e.checkPermission(t,n),await i()}catch(e){if(e instanceof A){console.warn(`[boltdocs] Skipping hook '${r}' for plugin '${t.name}': ${e.message}`);return}throw e}}},Ne=class{plugins;config;store;constructor(e,t){this.plugins=e,this.config=t,this.store=new M}async runHook(e,...t){let n=this.getSortedPlugins();for(let r of n){if(!r.hooks?.[e])continue;let n=this.createContext(r),i=e.toLowerCase().includes(`build`),a=e.toLowerCase().includes(`dev`),o=i?`hooks:build`:a?`hooks:dev`:void 0;try{o?await I.executeWithIsolation(r,o,e,()=>r.hooks[e](n,...t)):await r.hooks[e](n,...t)}catch(t){let i=new j(r.name,e,t instanceof Error?t:Error(String(t)));n.logger.error(i)}}}getSortedPlugins(){let e=this.plugins.filter(e=>e.enforce===`pre`),t=this.plugins.filter(e=>!e.enforce),n=this.plugins.filter(e=>e.enforce===`post`);return[...e,...t,...n]}createContext(e){return{config:Object.freeze({...this.config}),meta:{name:e.name,version:e.version,boltdocsVersion:e.boltdocsVersion},store:{get:(e,t)=>this.store.get(e,t),set:(e,t,n)=>this.store.set(e,t,n),has:(e,t)=>this.store.has(e,t)},logger:this.createLogger(e.name)}}createLogger(e){let t=`[plugin:${e}]`;return{info:e=>console.log(`${t} INFO: ${e}`),warn:e=>console.warn(`${t} WARN: ${e}`),error:e=>{let n=e instanceof Error?e.message:e;console.error(`${t} ERROR: ${n}`)},debug:e=>console.debug(`${t} DEBUG: ${e}`)}}};function Pe(e){return e}const L=v.dirname(re(import.meta.url));function R(e){return typeof e==`string`?[e]:Array.isArray(e)?e.flatMap(R):e&&typeof e==`object`?Object.values(e).flatMap(R):[]}const Fe=new Set([`title`,`description`,`permalink`,`sidebarPosition`,`sidebarLabel`,`sidebarHidden`,`hidden`,`category`,`order`,`badge`,`icon`,`date`,`lastUpdated`,`groupTitle`,`groupPosition`,`seo`]);function Ie(e){let t=[];for(let n of e){let e=``;n.frontmatter&&(e=R(Object.entries(n.frontmatter).filter(([e])=>!Fe.has(e)).map(([e,t])=>t)).join(` `));let r=e?`${n._content||``} ${e}`:n._content||``;if(t.push({id:n.path,title:n.title,content:r,url:n.path,display:n.groupTitle?`${n.groupTitle} > ${n.title}`:n.title,locale:n.locale,version:n.version}),n.headings)for(let e of n.headings)t.push({id:`${n.path}#${e.id}`,title:e.text,content:`${e.text} in ${n.title}`,url:`${n.path}#${e.id}`,display:`${n.title} > ${e.text}`,locale:n.locale,version:n.version})}return t}function z(e,t,n=!1){let r=C.resolve(process.cwd(),`index.css`),i=y.existsSync(r)?`import './index.css';`:``,o=t?.plugins?.flatMap(e=>Object.entries(e.components||{}))||[],s=o.map(([e,t])=>`import * as _comp_${e} from '${a(t)}';
72
+ const ${e} = _comp_${e}.default || _comp_${e}['${e}'] || _comp_${e};`).join(`
73
+ `),c=o.map(([e])=>e).join(`, `),l=C.basename(e.docsDir||`docs`),u=C.resolve(process.cwd(),e.docsDir||`docs`),d=[`tsx`,`ts`,`jsx`,`js`].map(e=>C.resolve(u,`pages-external/index.${e}`)).find(e=>y.existsSync(e));return`
74
+ import { ViteReactSSG, createRoutes } from 'boltdocs/client';
75
+ import _routes from 'virtual:boltdocs-routes.ts';
76
+ import _config from 'virtual:boltdocs-config.ts';
77
+ import _user_mdx_components from 'virtual:boltdocs-mdx-components.tsx';
78
+ import _Layout from 'virtual:boltdocs-layout.tsx';
79
+ ${i}
80
+ ${s}
81
+ ${d?`import * as _external_module from '${a(d)}';`:``}
82
+
83
+ const mdxModules = import.meta.glob('/${l}/**/*.{md,mdx}', { eager: true });
84
+
85
+ export const createRoot = ViteReactSSG(
86
+ {
87
+ routes: createRoutes({
88
+ routesData: _routes,
89
+ config: _config,
90
+ mdxModules,
91
+ Layout: _Layout,
92
+ ${d?`externalPages: _external_module.pages, externalLayout: _external_module.layout,`:``}
93
+ components: { ${c}${c?`, `:``} ...(_user_mdx_components || {}) },
94
+ }),
95
+ },
96
+ ({ isClient }) => {
97
+ // Boltdocs initialization hook
98
+ if (isClient) {
99
+ // Client-side initialization
100
+ }
101
+ },
102
+ );
103
+ `}let B=null,V=null;function Le(){B=null,V=null}function Re(e,t,n,r){return{name:`vite-plugin-boltdocs-virtual-modules`,resolveId(e){let t=n()?.root||process.cwd();return e.includes(`boltdocs-entry.tsx`)||e===`virtual:boltdocs-entry`||e===`boltdocs-entry`||e===`\0virtual:boltdocs-entry`?a(v.resolve(t,`boltdocs-entry.tsx`)):e.includes(`boltdocs-client.mjs`)||e===`virtual:boltdocs-client`||e===`boltdocs-client`||e===`\0virtual:boltdocs-client.ts`?a(v.resolve(t,`boltdocs-client.mjs`)):e.startsWith(`virtual:boltdocs-`)?`\0`+e:e.startsWith(`\0virtual:boltdocs-`)?e:null},async load(i){let o=n()?.command===`build`,s=t();if(i.includes(`boltdocs-entry.tsx`)||i===`\0virtual:boltdocs-entry`)return z(e,s,o);if(i.includes(`boltdocs-client.mjs`)||i===`\0virtual:boltdocs-client.ts`||i===`virtual:boltdocs-client`){let e=L,t=e;for(;e!==v.parse(e).root;){if(x.existsSync(v.join(e,`package.json`))&&JSON.parse(x.readFileSync(v.join(e,`package.json`),`utf-8`)).name===`boltdocs`){t=e;break}e=v.dirname(e)}let n=v.join(t,`src/client/index.ts`),r=v.join(t,`dist/client/index.js`);return`export * from '${a(x.existsSync(n)?n:r)}';`}if(!i.startsWith(`\0virtual:boltdocs-`))return;let c=i.replace(`\0virtual:boltdocs-`,``).replace(/\.tsx?$/,``);if(c===`routes`){let e=w(await f(r,s));return`export default ${JSON.stringify(e,null,2)};`}if(c===`config`){if(B===null){let{loadDirectoryMeta:e}=await import(`./meta-loader-9IpAHWDS.mjs`);B=await e(r)}let e=B,t={base:s?.base,theme:s?.theme,i18n:s?.i18n,versions:s?.versions,siteUrl:s?.siteUrl,integrations:s?.integrations,plugins:s?.plugins?.map(e=>({name:e.name})),directoryMeta:e};return`export default ${JSON.stringify(t,null,2)};`}if(c===`entry`)return z(e,s,o);if(c===`mdx-components`){let e=[`tsx`,`ts`,`jsx`,`js`],t=null;for(let n of e){let e=v.resolve(r,`mdx-components.${n}`);if(x.existsSync(e)){t=e;break}}if(t){let e=a(t);return`import * as components from '${e}';
104
+ const mdxComponents = components.default || components;
105
+ export default mdxComponents;
106
+ export * from '${e}';`}return`export default {};`}if(c===`layout`){let e=[`tsx`,`jsx`],t=null;for(let n of e){let e=v.resolve(r,`layout.${n}`);if(x.existsSync(e)){t=e;break}}if(t)return`import UserLayout from '${a(t)}';
107
+ export default UserLayout;`;throw Error(`[Boltdocs] Layout file not found. A 'layout.tsx' or 'layout.jsx' file is mandatory in your docs directory. Please create one to define your site structure.`)}if(c===`icons`){let e=[`tsx`,`jsx`,`ts`,`js`],t=null;for(let n of e){let e=v.resolve(r,`icons.${n}`);if(x.existsSync(e)){t=e;break}}return t?`import * as icons from '${a(t)}';\nexport default icons;`:`export default {};`}if(c===`search`){if(!V){let e=Ie(await f(r,s));V=`export default ${JSON.stringify(e,null,2)};`}return V}if(c===`client`){let e=L,t=``;for(;e&&e!==v.parse(e).root;){let n=v.join(e,`src/client/index.ts`),r=v.join(e,`dist/client/index.mjs`),i=v.join(e,`client/index.ts`);if(x.existsSync(n)){t=a(n);break}if(x.existsSync(r)){t=a(r);break}if(x.existsSync(i)){t=a(i);break}e=v.dirname(e)}if(!t)throw Error(`[boltdocs] Could not resolve boltdocs/client entry point starting from ${L}`);return`export * from '${t}';`}}}}const ze={"X-Content-Type-Options":`nosniff`,"X-Frame-Options":`DENY`,"X-XSS-Protection":`1; mode=block`,"Referrer-Policy":`strict-origin-when-cross-origin`,"Permissions-Policy":`camera=(), microphone=(), geolocation=()`,"Strict-Transport-Security":`max-age=31536000; includeSubDomains`};function Be(e){let t=process.env.NODE_ENV===`development`,n={"default-src":[`'self'`],"script-src":[`'self'`,`'unsafe-inline'`],"style-src":[`'self'`,`'unsafe-inline'`],"img-src":[`'self'`,`data:`,`https:`],"font-src":[`'self'`],"connect-src":[`'self'`]};return t&&(n[`script-src`]=[`'self'`,`'unsafe-eval'`,`'unsafe-inline'`],n[`style-src`]=[`'self'`,`'unsafe-inline'`]),Object.entries(n).map(([e,t])=>`${e} ${t.join(` `)}`).join(`; `)}const H=new Map;async function Ve(e){try{let{data:t}=await c(e),n=JSON.stringify(t);return S.createHash(`md5`).update(n).digest(`hex`)}catch{return``}}function He(e){return H.get(e)}function Ue(e,t){H.set(e,t)}function We(e){H.delete(e)}function U(e,t){let n=e.moduleGraph.getModuleById(`\0virtual:boltdocs-${t}.ts`);n&&e.moduleGraph.invalidateModule(n)}function Ge(r,i,o,c,l){let f=new Map;return{name:`vite-plugin-boltdocs-dev-server`,apply:`serve`,async configureServer(c){let p=l();await p?.runHook(`beforeDev`),n(r,process.cwd(),o()).catch(e=>{console.error(`[boltdocs] Failed to generate initial link tree:`,e)}),setTimeout(async()=>{try{let{generateRoutes:e}=await import(`./routes-D0KpEheM.mjs`).then(e=>e.r),t=await e(r,o());for(let e of t)if(e.filePath){let t=v.relative(process.cwd(),e.filePath).replace(/\\/g,`/`),n=t.startsWith(`/`)?t:`/${t}`;await c.transformRequest(n).catch(()=>{}),await new Promise(e=>setTimeout(e,50))}}catch{}},1e3),c.middlewares.use((e,t,n)=>{process.env.NODE_ENV===`production`&&Object.entries(ze).forEach(([e,n])=>{t.setHeader(e,n)});let r=o();r.security?.enableCSP&&t.setHeader(`Content-Security-Policy`,Be(r)),n()}),c.middlewares.use((e,t,n)=>{if(e.url===`/robots.txt`){n();return}n()}),c.middlewares.use(async(e,t,n)=>{let r=e.url?.split(`?`)[0]||`/`,i=e.headers.accept||``,a=o(),s=/\.(js|css|png|jpe?g|gif|svg|ico|webp|woff2?|ttf|otf|mp4|webm|ogg|mp3|wav|flac|aac|pdf|zip|gz|map|json)$/i.test(r);if(i.includes(`text/html`)&&!s){let n=T(a);n=E(n,a),n=await c.transformIndexHtml(e.url||`/`,n),t.statusCode=200,t.setHeader(`Content-Type`,`text/html`),t.end(n);return}n()});let m=e.map(e=>v.resolve(process.cwd(),e)),h=[`tsx`,`jsx`].map(e=>v.resolve(r,`layout.${e}`)),g=[`tsx`,`ts`,`jsx`,`js`],ee=g.map(e=>v.resolve(r,`mdx-components.${e}`)),_=g.map(e=>v.resolve(r,`pages-external/index.${e}`)),y=g.map(e=>v.resolve(r,`icons.${e}`));c.watcher.add([...m,...ee,...h,..._,...y]);let b=async(l,p)=>{try{let m=a(l);if(e.some(e=>m.endsWith(e))){c.restart();return}if(g.some(e=>m.endsWith(`mdx-components.${e}`))){t(o(),r),U(c,`mdx-components.tsx`),c.ws.send({type:`full-reload`});return}if(g.some(e=>m.endsWith(`icons.${e}`))){U(c,`icons.tsx`),c.ws.send({type:`full-reload`});return}if(m.endsWith(`layout.tsx`)||m.endsWith(`layout.jsx`)){U(c,`layout.tsx`),c.ws.send({type:`full-reload`});return}if(m.includes(`/pages-external/`)||m.includes(`\\pages-external\\`)){U(c,`entry`),c.ws.send({type:`full-reload`});return}if(!m.toLowerCase().startsWith(i.toLowerCase())||!s(m))return;if(p===`add`||p===`unlink`){p===`unlink`&&We(l),d(),Le();let e=o();t(e,r),U(c,`config`),U(c,`routes`),U(c,`search`),n(r,process.cwd(),e).catch(e=>{console.error(`[boltdocs] Failed to update link tree:`,e)}),c.ws.send({type:`custom`,event:`boltdocs:config-update`,data:{theme:e?.theme,i18n:e?.i18n,versions:e?.versions,siteUrl:e?.siteUrl}}),c.ws.send({type:`full-reload`});return}f.has(m)&&clearTimeout(f.get(m)),f.set(m,setTimeout(async()=>{f.delete(m);try{let e=He(l),t=await Ve(l);Ue(l,t),u(l),e!==void 0&&e!==t&&(U(c,`routes`),U(c,`search`));let n=a(v.relative(r,l)),i=c.moduleGraph.getModulesByFile(m);if(i)for(let e of i)c.moduleGraph.invalidateModule(e);c.ws.send({type:`custom`,event:`boltdocs:mdx-update`,data:{file:m,relPath:n}})}catch(e){console.error(`[boltdocs] HMR error processing content change:`,e)}},150))}catch(e){console.error(`[boltdocs] HMR error during ${p} event:`,e)}};c.watcher.on(`add`,e=>b(e,`add`)),c.watcher.on(`unlink`,e=>b(e,`unlink`)),c.watcher.on(`change`,e=>b(e,`change`)),await p?.runHook(`afterDev`)},handleHotUpdate({file:e,server:t}){let n=a(e);if(n.toLowerCase().startsWith(i.toLowerCase())&&s(n))return[]}}}const W=p.createRequire(import.meta.url);function Ke(e){let t=v.dirname(e);for(;t&&t!==v.dirname(t);){let e=v.join(t,`package.json`);if(x.existsSync(e))return e;t=v.dirname(t)}return null}function qe(e){let t=e.split(`/`);return e.startsWith(`@`)?{packageName:t.slice(0,2).join(`/`),subpath:t.slice(2).join(`/`)}:{packageName:t[0],subpath:t.slice(1).join(`/`)}}function G(e,t=W){try{let{packageName:n,subpath:r}=qe(e),i;try{i=t.resolve(n+`/package.json`)}catch{i=Ke(t.resolve(n))||``}if(!i)throw Error(`Could not find package.json for ${n}`);let a=v.dirname(i),o=JSON.parse(x.readFileSync(i,`utf-8`)),s=``,c=r?`./`+r:`.`;if(o.exports){let e=o.exports[c]||o.exports[r];e&&(s=typeof e==`string`?e:e.import||e.default||e.require||e)}if(!s&&!r&&(s=o.module||o.main||`index.js`),typeof s==`object`&&(s=s.import||s.default||s.require||``),s){let e=v.resolve(a,s);if(x.existsSync(e))return e}}catch{}return t.resolve(e)}function Je(){let e=[`react`,`react-dom`,`react-router-dom`,`react-helmet-async`,`@bdocs/ssg`,`react-fast-compare`,`invariant`],t=[],n=W;try{let e=v.join(process.cwd(),`node_modules/boltdocs/package.json`);if(x.existsSync(e)){let t=x.realpathSync(e);n=p.createRequire(t)}else n=p.createRequire(v.join(process.cwd(),`package.json`))}catch{}for(let r of e)try{let e=``;e=r===`@bdocs/ssg`||r===`react-router-dom`||r===`react-helmet-async`?G(r,n):n.resolve(r),e&&t.push(x.realpathSync(e))}catch{}if(n!==W)for(let n of e)try{let e=``;e=n===`@bdocs/ssg`||n===`react-router-dom`||n===`react-helmet-async`?G(n,W):W.resolve(n),e&&t.push(x.realpathSync(e))}catch{}for(let e of[`react/jsx-runtime`,`react/jsx-dev-runtime`,`react-dom/client`]){try{t.push(x.realpathSync(n.resolve(e)))}catch{}if(n!==W)try{t.push(x.realpathSync(W.resolve(e)))}catch{}}return Array.from(new Set(t)).map(e=>a(e))}function Ye(e={},t){let n=v.resolve(process.cwd(),e.docsDir||`docs`),i=a(n),o=t,s,c=!1,l,u=[],d=()=>o;return[{name:`vite-plugin-boltdocs`,enforce:`pre`,async config(e,t){c=t.command===`build`;let i=!!(t.ssrBuild||t.ssr||e.build?.ssr),a=e.envDir||process.cwd(),s=ee(t.mode,a,``);Object.assign(process.env,s),o||=await r(n);let d=(await import(`./package-jddH_QJ9.mjs`)).version,p=P(o.plugins||[],d);return o.plugins=p,l=new Ne(p,o),u=p.flatMap(e=>I.getSanitizedCapabilities(e).vitePlugins||[]),c&&await l.runHook(`beforeBuild`),{ssgOptions:{entry:`boltdocs/entry`,htmlEntry:`index.html`,dirStyle:`nested`,includeAllRoutes:!0,mock:!0,script:`async`,beastiesOptions:{preload:`media`},onFinished:async e=>{let t=je(w(await f(n,o)),o);t&&x.writeFileSync(v.join(e,`sitemap.xml`),t);let r=Me(o);x.writeFileSync(v.join(e,`robots.txt`),r)}},build:{ssrManifest:c},optimizeDeps:{include:[`react`,`react-dom`,`react-dom/client`,`react-router-dom`,`react-helmet-async`,`react-fast-compare`,`invariant`],exclude:[`boltdocs`,`boltdocs/client`]},resolve:{alias:[{find:`react-router-dom`,replacement:G(`react-router-dom`)},{find:`react-helmet-async`,replacement:G(`react-helmet-async`)},{find:`@bdocs/ssg`,replacement:G(`@bdocs/ssg`)}],dedupe:[`react`,`react-dom`,...i?[]:[`react-router-dom`,`react-helmet-async`,`@bdocs/ssg`]]},ssr:{external:[`react`,`react-dom`,`react-router-dom`,`react-helmet-async`,`@bdocs/ssg`,`react-fast-compare`,`invariant`,...Je()],optimizeDeps:{include:[`react-fast-compare`,`invariant`]},noExternal:[]}}},configResolved(e){s=e,l?.runHook(`configResolved`,o)},resolveId(e,t,n){let r=[`react`,`react-dom`,`react-router-dom`,`react-helmet-async`,`@bdocs/ssg`].find(t=>e===t||e.startsWith(t+`/`)||e.includes(`/node_modules/${t}/`)||t.startsWith(`@`)&&e.includes(`/node_modules/${t.replace(`/`,v.sep)}/`));if(r&&n?.ssr){let t=e;if(!v.isAbsolute(e)){let n=W;try{let e=v.join(process.cwd(),`node_modules/boltdocs/package.json`);if(x.existsSync(e)){let t=x.realpathSync(e);n=p.createRequire(t)}else n=p.createRequire(v.join(process.cwd(),`package.json`))}catch{}try{t=r===`@bdocs/ssg`||r===`react-router-dom`||r===`react-helmet-async`?G(e,n):n.resolve(e)}catch{try{t=r===`@bdocs/ssg`||r===`react-router-dom`||r===`react-helmet-async`?G(e,W):W.resolve(e)}catch{}}}try{t=x.realpathSync(t)}catch{}return{id:t,external:!0}}return null},transformIndexHtml:{order:`pre`,handler(e){return E(e,o)}},async buildEnd(){let{pool:e}=await import(`./worker-pool-Bd8Y9KDv.mjs`);await e.terminate()},async closeBundle(){!c||s?.build?.ssr||(await l?.runHook(`afterBuild`),await l?.runHook(`buildEnd`))}},Re(e,d,()=>s,n),Ge(n,i,d,e=>{o=e},()=>l),{...te({includePublic:!0,png:{quality:80},jpeg:{quality:80},jpg:{quality:80},webp:{quality:80},avif:{quality:80},svg:{multipass:!0,plugins:[{name:`preset-default`}]}}),apply:`build`},...u]}const K=new l(`mdx`),Xe=[de.default||de,fe.default||fe,pe.default||pe,me.default||me,he.default||he,ge.default||ge,_e.default||_e],Ze=[ve,ye,be,xe,Se,Ce,we,Te,Ee,De,Oe,ke,Ae];let Qe=null,q=null;const $e=()=>(Qe??=le(),Qe),et=async e=>q||(q=ue({themes:Xe,langs:Ze,engine:$e()}),q),J={JSX_FLOW_ELEMENT:`mdxJsxFlowElement`,JSX_TEXT_ELEMENT:`mdxJsxTextElement`,JSX_ATTRIBUTE:`mdxJsxAttribute`,ELEMENT:`element`,TEXT:`text`,CODE:`code`},tt={PRE:`pre`,CODE:`code`},Y={TITLE:`data-title`,LANG:`data-lang`,HIGHLIGHTED:`data-highlighted`,HIGHLIGHTED_HTML:`data-highlighted-html`},X={LINE_NUMBERS:`shiki-line-numbers`,WORD_WRAP:`shiki-word-wrap`,FALLBACK:`shiki-fallback`},nt={LIGHT:`github-light`,DARK:`github-dark`},Z={LANG:`plaintext`,MDX_DEFAULT_LANG:`text`},rt=(e={})=>{let{activateByDefault:t=!1}=e;return{name:`boltdocs:line-numbers`,pre(e){let n=this.options.meta?.lineNumbers===!0;(t||n)&&this.addClassToHast(e,X.LINE_NUMBERS)}}},it=(e={})=>{let{activateByDefault:t=!1}=e;return{name:`boltdocs:word-wrap`,pre(e){let n=this.options.meta?.wordWrap===!0;(t||n)&&this.addClassToHast(e,X.WORD_WRAP)}}},at=()=>({name:`AddTitleProperty`,pre(e){let t=this.options.meta?.title;t&&(e.properties[Y.TITLE]=t)}}),ot=()=>({name:`AddLanguageProperty`,pre(e){e.properties[Y.LANG]=this.options.lang||Z.LANG}});function st(e){let t={};if(!e)return t;/lineNumbers|showLineNumbers/.test(e)&&(t.lineNumbers=!0),/wordWrap|word-wrap/.test(e)&&(t.wordWrap=!0);let n=e.match(/title=(["'])(.*?)\1/);return n&&(t.title=n[2]),t}var ct=class{config;constructor(e){this.config=e}getTheme(){return this.config?.theme?.codeTheme||{light:nt.LIGHT,dark:nt.DARK}}async getHighlighter(){return await et(this.getTheme())}getOptions(e,t){let n=this.getTheme(),r={},i=``;typeof t==`string`?(i=t,r=st(t)):t&&(r=t,i=t.__raw||``);let a={lang:e||Z.LANG,meta:{__raw:i,...r},transformers:[rt(),it(),at(),ot()]};return typeof n==`object`?a.themes={light:n.light,dark:n.dark}:a.theme=n,a}async render(e,t,n){try{let r=await this.getHighlighter(),i=this.getOptions(t,n);return r.codeToHtml(e,i)}catch(t){return console.error(`[ShikiAdapter] Failed to render code:`,t),`<pre class="${X.FALLBACK}"><code>${lt(e)}</code></pre>`}}};function lt(e){return e.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`).replace(/"/g,`&quot;`).replace(/'/g,`&#039;`)}let Q=null,ut;function dt(e){let t=JSON.stringify(e?.theme?.codeTheme||null);return(Q===null||ut!==t)&&(Q=new ct(e),ut=t),Q}function ft(e){let t=dt(e);return async e=>{let n=await t.getHighlighter();ce(e,J.ELEMENT,e=>{if(e.tagName===tt.PRE&&e.children?.[0]?.type===J.ELEMENT&&e.children[0].tagName===tt.CODE){let r=e.children[0],i=(r.properties?.className||[]).find(e=>e.startsWith(`language-`)),a=i?i.slice(9):Z.MDX_DEFAULT_LANG;if(a===`mermaid`)return;let o=r.children?.[0]?.value||``,s=st(r.properties?.metastring||r.data?.meta||``),c=t.getOptions(a,s),l=``;try{l=n.codeToHtml(o,c)}catch(e){console.error(`[rehypeShiki] Failed to highlight code block:`,e),l=`<pre class="${X.FALLBACK}"><code>${lt(o)}</code></pre>`}e.properties=e.properties||{},s.title&&(e.properties[Y.TITLE]=s.title),e.properties[Y.HIGHLIGHTED]=`true`,e.properties[Y.HIGHLIGHTED_HTML]=l,e.properties[Y.LANG]=a,e.children=[]}})}}function pt(){return e=>{ce(e,J.CODE,e=>{e.meta&&(e.data=e.data||{},e.data.hProperties=e.data.hProperties||{},e.data.hProperties.metastring=e.meta)})}}let mt=!1;function $(e,t=ie){let n=e?.plugins?.flatMap(e=>I.getSanitizedCapabilities(e).remarkPlugins||[])||[],r=e?.plugins?.flatMap(e=>I.getSanitizedCapabilities(e).rehypePlugins||[])||[],i=t({remarkPlugins:[ae,oe,pt,...n],rehypePlugins:[se,[ft,e],...r],jsxRuntime:`automatic`});return{...i,name:`vite-plugin-boltdocs-mdx`,async buildStart(){mt||=(await K.load(),!0),i.buildStart&&await i.buildStart.call(this)},async transform(e,t,n){let[r]=t.split(`?`);if(!r.endsWith(`.md`)&&!r.endsWith(`.mdx`))return i.transform?.call(this,e,t,n);let a=`${r}:${S.createHash(`md5`).update(e).digest(`hex`)}:${process.env.NODE_ENV===`production`?`prod`:`dev`}:v3`,o=await K.getAsync(a);if(o)return{code:o,map:null};let s=await i.transform.call(this,e,r,n);return s&&typeof s==`object`&&s.code&&(process.env.NODE_ENV!==`production`&&(s.code+=`
108
+ if (import.meta.hot) {
109
+ import.meta.hot.accept();
110
+ }
111
+ `),K.set(a,s.code)),s},async buildEnd(){K.save(),await K.flush(),i.buildEnd&&await i.buildEnd.call(this)}}}m(import.meta.url);async function ht(e){let t=await r(e?.docsDir||`docs`);return[...Ye({...e},t),$(t)]}async function gt(e,t=`development`){let n=await r(`docs`,e),i=t===`production`,a=i?{...ze}:{};return n.security?.enableCSP&&(a[`Content-Security-Policy`]=Be(n)),{root:e,mode:t,oxc:{jsx:{development:!i,runtime:`automatic`,importSource:`react`}},optimizeDeps:{include:[`react`,`react-dom`,`react-dom/client`,`react-helmet-async`,`react-router-dom`,`react-fast-compare`,`invariant`,`use-sync-external-store/shim`]},build:{},plugins:[h(),g(),...Ye({docsDir:`docs`,root:e},n),$(n)],resolve:{alias:[{find:`boltdocs/entry`,replacement:_(v.resolve(e,`boltdocs-entry.tsx`))},{find:`boltdocs/client`,replacement:_(v.resolve(e,`boltdocs-client.mjs`))},{find:`use-sync-external-store/shim/index.js`,replacement:`react`},{find:`use-sync-external-store/shim`,replacement:`react`},{find:`use-sync-external-store`,replacement:`react`}],dedupe:[`react`,`react-dom`]},ssr:{external:[`react`,`react-dom`,`react-router-dom`,`react-helmet-async`,`@bdocs/ssg`,`react-fast-compare`,`invariant`,...Je()],optimizeDeps:{include:[`react-fast-compare`,`invariant`,...n.vite?.ssr?.optimizeDeps?.include||[]]},noExternal:[`boltdocs`,/@bdocs\/(?!ssg).*/,`react-aria-components`,`@react-aria/collections`,`@react-aria/utils`]},server:{headers:{...a,...n.vite?.server?.headers},...n.vite?.server},preview:{headers:{...a,...n.vite?.preview?.headers},...n.vite?.preview},...n.vite}}export{Ne as a,F as c,k as d,D as f,O as h,Pe as i,P as l,A as m,gt as n,I as o,j as p,z as r,N as s,ht as t,M as u};
@@ -3,4 +3,4 @@
3
3
  * Copyright (c) 2026 Jesus Alcala
4
4
  * Licensed under the MIT License.
5
5
  */
6
- var e=`2.7.3`;Object.defineProperty(exports,`version`,{enumerable:!0,get:function(){return e}});
6
+ var e=`2.7.5`;Object.defineProperty(exports,`version`,{enumerable:!0,get:function(){return e}});
@@ -3,4 +3,4 @@
3
3
  * Copyright (c) 2026 Jesus Alcala
4
4
  * Licensed under the MIT License.
5
5
  */
6
- var e=`2.7.3`;export{e as version};
6
+ var e=`2.7.5`;export{e as version};
@@ -3,4 +3,4 @@
3
3
  * Copyright (c) 2026 Jesus Alcala
4
4
  * Licensed under the MIT License.
5
5
  */
6
- import{d as e}from"./doctor-Dh1XP7Pz.mjs";import{c as t,f as n,g as r,h as i,i as a,m as o,p as s,r as c,t as l,u,y as d}from"./utils-BxNAXhZZ.mjs";import{t as f}from"./cache-CQKlT4fI.mjs";import p from"node:path";import m from"github-slugger";function h(e,t,n,r,i){let s=p.relative(t,e).replace(/\\/g,`/`),c=s.split(`/`),l,u,d;if(r?.versions&&c.length>0){let e=c[0],t=r.versions.prefix||``,n=r.versions.versions.find(n=>e===t+n.path||e===n.path);n&&(u=n.path,c=c.slice(1))}if(r?.i18n&&c.length>0){let e=c[0];(Array.isArray(r.i18n.locales)?r.i18n.locales.includes(e):r.i18n.locales[e])&&(l=e,c=c.slice(1))}if(c.length>0){let e=c[0].match(/^\((.+)\)$/);e&&(d=e[1].toLowerCase(),c=c.slice(1))}let f=[...c],m=c.map(e=>o(e)).join(`/`),h=i?i.startsWith(`/`)?i:`/${i}`:a(m||`index.md`),g=[n,u,l,i?void 0:d,h].filter(Boolean).join(`/`).replace(/\/+/g,`/`).replace(/\/$/,``)||`/`;return{relativePath:s,finalPath:g.startsWith(`/`)?g:`/${g}`,remainingParts:f,locale:l,version:u,inferredTab:d,subRouteGroup:void 0}}const g=/^(#{2,4})\s+(.+)$/gm,_=/\[([^\]]+)\]\([^)]+\)/g,v=/[_*`]/g,y=/\s+/g,b=/[[\]_*`]|#+.*$|\{[^}]+\}/gm,x=/\((?:[^)]+)\)/g;function S(e,t){let r=new m,i=[];for(let t of e.matchAll(g)){let e=t[1].length,a=n(t[2].replace(_,`$1`).replace(v,``).trim()).trim(),o=r.slug(a);i.push({level:e,text:a,id:o})}let a=s(e.replace(b,``).replace(x,``).replace(y,` `)).trim(),o=t?n(t).trim():``;return!o&&e&&(o=a.substring(0,160)),{headings:i,description:o,plainText:a}}const C=[`og:`,`twitter:`,`article:`,`music:`,`video:`,`profile:`,`book:`],w=[`noindex`,`robots`,`canonical`,`keywords`,`author`];function T(e){let t={};e.seo&&typeof e.seo==`object`&&Object.assign(t,e.seo);for(let n of Object.keys(e))(w.includes(n)||C.some(e=>n.startsWith(e)))&&(t[n]=e[n]);return e.hidden===!0&&t.noindex===void 0&&(t.noindex=!0),Object.keys(t).length>0?t:void 0}function E(e){return{title:e.title?n(String(e.title)):void 0,badge:e.badge?n(String(e.badge)):void 0,description:e.description?n(String(e.description)):void 0}}async function D(e,t,n,i){let a=await f.get(e);if(a)return a;let s=e.replace(/\\/g,`/`),m=t.replace(/\\/g,`/`),g=O(s),_=p.resolve(g),v=p.resolve(m);if(p.sep===`/`){let e=e=>{let t=e.replace(/\\/g,`/`);return/^[a-zA-Z]:/.test(t)&&(t=t.replace(/^[a-zA-Z]:/,``)),p.resolve(t)};_=e(g),v=e(m)}let y=p.relative(v,_).replace(/\\/g,`/`);if(y.startsWith(`../`)||y!==`.`&&!d.test(y))throw new r(`Security breach: File is outside of docs directory, contains null bytes, or invalid path characters: ${p.basename(g)}`);let{data:b,content:x}=await u(e),C=h(_,v,n,i,b.permalink),w=S(x,b.description),D=E(b),k=T(b),A=p.basename(C.relativePath),j=o(A),M=C.remainingParts.map(e=>o(e)).slice(0,-1),N=/^index\.mdx?$/.test(j),P=b.sidebarPosition??c(A),F=M.join(`/`),I={route:{path:C.finalPath,componentPath:e,filePath:C.relativePath,title:D.title||o(p.basename(s,p.extname(s))),description:w.description,sidebarPosition:P,headings:w.headings,locale:C.locale,version:C.version,badge:D.badge,icon:b.icon?String(b.icon):void 0,tab:C.inferredTab,subRouteGroup:C.subRouteGroup,slugParts:M,_content:w.plainText,_rawContent:x,date:b.date,lastUpdated:b.lastUpdated,category:b.category,order:b.order,sidebarLabel:b.sidebarLabel,sidebarHidden:b.sidebarHidden||b.hidden,seo:k,frontmatter:b},relativeDir:F||void 0,isGroupIndex:N,inferredTab:C.inferredTab,groupMeta:N?{title:b.groupTitle||D.title||(M.length>0?l(M[M.length-1]):``),position:b.groupPosition??b.sidebarPosition??(C.remainingParts.length>1?c(C.remainingParts[C.remainingParts.length-2]):void 0),icon:b.icon?String(b.icon):void 0}:void 0,inferredGroupPosition:C.remainingParts.length>1?c(C.remainingParts[C.remainingParts.length-2]):void 0};return await f.set(e,I),I}function O(e){let n;try{n=decodeURIComponent(e)}catch{throw t(`SECURITY_ERROR`,`Invalid encoding in path`,{file:e}),new i(`Security breach: Invalid characters or encoding in path`)}if(n.length>260)throw new r(`Path length exceeds limit`);return n}var k=e({parseDocFile:()=>D});export{D as n,k as t};
6
+ import{d as e}from"./doctor-COxqQQQ8.mjs";import{c as t,f as n,g as r,h as i,i as a,m as o,p as s,r as c,t as l,u,y as d}from"./utils-BxNAXhZZ.mjs";import{t as f}from"./cache-CQKlT4fI.mjs";import p from"node:path";import m from"github-slugger";function h(e,t,n,r,i){let s=p.relative(t,e).replace(/\\/g,`/`),c=s.split(`/`),l,u,d;if(r?.versions&&c.length>0){let e=c[0],t=r.versions.prefix||``,n=r.versions.versions.find(n=>e===t+n.path||e===n.path);n&&(u=n.path,c=c.slice(1))}if(r?.i18n&&c.length>0){let e=c[0];(Array.isArray(r.i18n.locales)?r.i18n.locales.includes(e):r.i18n.locales[e])&&(l=e,c=c.slice(1))}if(c.length>0){let e=c[0].match(/^\((.+)\)$/);e&&(d=e[1].toLowerCase(),c=c.slice(1))}let f=[...c],m=c.map(e=>o(e)).join(`/`),h=i?i.startsWith(`/`)?i:`/${i}`:a(m||`index.md`),g=[n,u,l,i?void 0:d,h].filter(Boolean).join(`/`).replace(/\/+/g,`/`).replace(/\/$/,``)||`/`;return{relativePath:s,finalPath:g.startsWith(`/`)?g:`/${g}`,remainingParts:f,locale:l,version:u,inferredTab:d,subRouteGroup:void 0}}const g=/^(#{2,4})\s+(.+)$/gm,_=/\[([^\]]+)\]\([^)]+\)/g,v=/[_*`]/g,y=/\s+/g,b=/[[\]_*`]|#+.*$|\{[^}]+\}/gm,x=/\((?:[^)]+)\)/g;function S(e,t){let r=new m,i=[];for(let t of e.matchAll(g)){let e=t[1].length,a=n(t[2].replace(_,`$1`).replace(v,``).trim()).trim(),o=r.slug(a);i.push({level:e,text:a,id:o})}let a=s(e.replace(b,``).replace(x,``).replace(y,` `)).trim(),o=t?n(t).trim():``;return!o&&e&&(o=a.substring(0,160)),{headings:i,description:o,plainText:a}}const C=[`og:`,`twitter:`,`article:`,`music:`,`video:`,`profile:`,`book:`],w=[`noindex`,`robots`,`canonical`,`keywords`,`author`];function T(e){let t={};e.seo&&typeof e.seo==`object`&&Object.assign(t,e.seo);for(let n of Object.keys(e))(w.includes(n)||C.some(e=>n.startsWith(e)))&&(t[n]=e[n]);return e.hidden===!0&&t.noindex===void 0&&(t.noindex=!0),Object.keys(t).length>0?t:void 0}function E(e){return{title:e.title?n(String(e.title)):void 0,badge:e.badge?n(String(e.badge)):void 0,description:e.description?n(String(e.description)):void 0}}async function D(e,t,n,i){let a=await f.get(e);if(a)return a;let s=e.replace(/\\/g,`/`),m=t.replace(/\\/g,`/`),g=O(s),_=p.resolve(g),v=p.resolve(m);if(p.sep===`/`){let e=e=>{let t=e.replace(/\\/g,`/`);return/^[a-zA-Z]:/.test(t)&&(t=t.replace(/^[a-zA-Z]:/,``)),p.resolve(t)};_=e(g),v=e(m)}let y=p.relative(v,_).replace(/\\/g,`/`);if(y.startsWith(`../`)||y!==`.`&&!d.test(y))throw new r(`Security breach: File is outside of docs directory, contains null bytes, or invalid path characters: ${p.basename(g)}`);let{data:b,content:x}=await u(e),C=h(_,v,n,i,b.permalink),w=S(x,b.description),D=E(b),k=T(b),A=p.basename(C.relativePath),j=o(A),M=C.remainingParts.map(e=>o(e)).slice(0,-1),N=/^index\.mdx?$/.test(j),P=b.sidebarPosition??c(A),F=M.join(`/`),I={route:{path:C.finalPath,componentPath:e,filePath:C.relativePath,title:D.title||o(p.basename(s,p.extname(s))),description:w.description,sidebarPosition:P,headings:w.headings,locale:C.locale,version:C.version,badge:D.badge,icon:b.icon?String(b.icon):void 0,tab:C.inferredTab,subRouteGroup:C.subRouteGroup,slugParts:M,_content:w.plainText,_rawContent:x,date:b.date,lastUpdated:b.lastUpdated,category:b.category,order:b.order,sidebarLabel:b.sidebarLabel,sidebarHidden:b.sidebarHidden||b.hidden,seo:k,frontmatter:b},relativeDir:F||void 0,isGroupIndex:N,inferredTab:C.inferredTab,groupMeta:N?{title:b.groupTitle||D.title||(M.length>0?l(M[M.length-1]):``),position:b.groupPosition??b.sidebarPosition??(C.remainingParts.length>1?c(C.remainingParts[C.remainingParts.length-2]):void 0),icon:b.icon?String(b.icon):void 0}:void 0,inferredGroupPosition:C.remainingParts.length>1?c(C.remainingParts[C.remainingParts.length-2]):void 0};return await f.set(e,I),I}function O(e){let n;try{n=decodeURIComponent(e)}catch{throw t(`SECURITY_ERROR`,`Invalid encoding in path`,{file:e}),new i(`Security breach: Invalid characters or encoding in path`)}if(n.length>260)throw new r(`Path length exceeds limit`);return n}var k=e({parseDocFile:()=>D});export{D as n,k as t};
@@ -3,4 +3,4 @@
3
3
  * Copyright (c) 2026 Jesus Alcala
4
4
  * Licensed under the MIT License.
5
5
  */
6
- import{d as e}from"./doctor-Dh1XP7Pz.mjs";import{t}from"./utils-BxNAXhZZ.mjs";import{n,t as r}from"./cache-CQKlT4fI.mjs";import i from"node:path";import{fdir as a}from"fdir";const o=new n({name:`routes`});function s(){o.invalidateAll(),r.clear()}function c(e){o.invalidate(e),r.invalidate(e)}function l(e){return e.sort((e,t)=>!e.group&&!t.group?u(e,t):e.group?t.group?e.group===t.group?u(e,t):d(e,t):1:-1)}function u(e,t){return e.sidebarPosition!==void 0&&t.sidebarPosition!==void 0?e.sidebarPosition-t.sidebarPosition:e.sidebarPosition===void 0?t.sidebarPosition===void 0?e.title.localeCompare(t.title):1:-1}function d(e,t){return e.groupPosition!==void 0&&t.groupPosition!==void 0?e.groupPosition-t.groupPosition:e.groupPosition===void 0?t.groupPosition===void 0?(e.groupTitle||e.group).localeCompare(t.groupTitle||t.group):1:-1}var f=e({generateRoutes:()=>_,invalidateRouteCache:()=>g});let p=null;const m=new Map;let h=null;function g(){p=null,m.clear(),s()}async function _(e,n,r,s=!1){if(h)return h;let c=(async()=>{let c=r||n?.base||`/docs`;await o.load(),m.clear();let u;if(!s&&p)u=p;else{let t=await new a().withFullPaths().filter(t=>t.endsWith(`.md`)||t.endsWith(`.mdx`)?!i.relative(e,t).replace(/\\/g,`/`).split(`/`).some(e=>e.startsWith(`_`)&&e!==`_index.md`&&e!==`_index.mdx`):!1).crawl(e).withPromise(),n=[/index\./i,/intro/i,/getting-started/i,/readme/i],r=t.map(e=>{let t=i.basename(e),r=n.findIndex(e=>e.test(t));return{f:e,score:r===-1?2**53-1:r}});r.sort((e,t)=>e.score-t.score),u=r.map(e=>e.f),p=u}o.pruneStale(new Set(u));let d=process.env.NODE_ENV===`test`||process.env.VITEST===`true`,f;if(d){let{parseDocFile:t}=await import(`./parser-D8eQvE7N.mjs`).then(e=>e.t);f=await Promise.all(u.map(async r=>{let i=o.get(r);if(i)return i;let a=await t(r,e,c,n);return o.set(r,a),a}))}else{let{pool:t}=await import(`./worker-pool-Bd8Y9KDv.mjs`),r=n?{i18n:n.i18n,versions:n.versions}:void 0;f=await Promise.all(u.map(async n=>{let i=o.get(n);if(i)return i;let a=await t.parseFile(n,e,c,r);return o.set(n,a),a}))}o.save();let h=new Map,g=[],_=n?.i18n?.defaultLocale||``;for(let e of f)if(e.isGroupIndex&&e.relativeDir&&g.push(e),e.relativeDir){let n=`${e.route.locale||_}:${e.relativeDir}`,r=h.get(n);r?r.position===void 0&&e.inferredGroupPosition!==void 0&&(r.position=e.inferredGroupPosition):(r={title:t(e.relativeDir),position:e.inferredGroupPosition},h.set(n,r))}for(let e of g){let t=`${e.route.locale||_}:${e.relativeDir}`,n=h.get(t);e.groupMeta&&(n.title=e.groupMeta.title,e.groupMeta.position!==void 0&&(n.position=e.groupMeta.position),e.groupMeta.icon&&(n.icon=e.groupMeta.icon))}if(n?.theme?.sidebarGroups){let e=n.i18n?Object.keys(n.i18n.locales):[_];for(let[r,i]of Object.entries(n.theme.sidebarGroups))for(let n of e){let e=`${n}:${r}`,a=h.get(e),o;typeof i.title==`string`?o=i.title:i.title&&(o=i.title[n]||i.title[_]),a?(o&&(a.title=o),i.icon&&(a.icon=i.icon)):h.set(e,{title:o||t(r),icon:i.icon})}}let y=Array(f.length);for(let e=0;e<f.length;e++){let n=f[e],r=n.relativeDir,i=n.route.locale||_,a=r?`${i}:${r}`:void 0,o=a?h.get(a):void 0,s;o&&(s=typeof o.title==`string`?o.title:o.title[i]||o.title[_]),y[e]={...n.route,group:r,groupTitle:s||(r?t(r):void 0),groupPosition:o?.position,groupIcon:o?.icon}}let b=y;if(n?.i18n){let e=v(y,n,c);b=[...y,...e]}return l(b)})();h=c;try{return await c}finally{h=null}}function v(e,t,n){let r=t.i18n.defaultLocale,i=Object.keys(t.i18n.locales),a=[],o=new Map,s=[];for(let t of e){let e=t.locale||r;o.has(e)||o.set(e,new Set),o.get(e).add(t.path),e===r&&s.push(t)}for(let e of i){let i=o.get(e)||new Set;for(let o of s){let s=y(o.path,r,e,n,t);s!==o.path&&(i.has(s)||a.push({...o,path:s,locale:e}))}}return a}function y(e,t,n,r,i){let a=`${e}:${n}`,o=m.get(a);if(o)return o;let s=r.startsWith(`/`)?r:`/`+r,c=s;if(i?.versions){let t=i.versions.prefix||``;for(let n of i.versions.versions){let r=`${s}/${t+n.path}`;if(e.startsWith(r)){c=r;break}let i=`${s}/${n.path}`;if(e.startsWith(i)){c=i;break}}}let l=e.substring(c.length),u=`/${t}`;if(l.startsWith(u+`/`))l=`/`+n+`/`+l.substring(u.length+1);else if(l===u)l=`/`+n;else if(l===`/`||l===``)l=`/`+n;else{let e=l.startsWith(`/`)?``:`/`;l=`/`+n+e+l}let d=c+l;return m.size>2e3&&m.clear(),m.set(a,d),d}export{c as i,g as n,f as r,_ as t};
6
+ import{d as e}from"./doctor-COxqQQQ8.mjs";import{t}from"./utils-BxNAXhZZ.mjs";import{n,t as r}from"./cache-CQKlT4fI.mjs";import i from"node:path";import{fdir as a}from"fdir";const o=new n({name:`routes`});function s(){o.invalidateAll(),r.clear()}function c(e){o.invalidate(e),r.invalidate(e)}function l(e){return e.sort((e,t)=>!e.group&&!t.group?u(e,t):e.group?t.group?e.group===t.group?u(e,t):d(e,t):1:-1)}function u(e,t){return e.sidebarPosition!==void 0&&t.sidebarPosition!==void 0?e.sidebarPosition-t.sidebarPosition:e.sidebarPosition===void 0?t.sidebarPosition===void 0?e.title.localeCompare(t.title):1:-1}function d(e,t){return e.groupPosition!==void 0&&t.groupPosition!==void 0?e.groupPosition-t.groupPosition:e.groupPosition===void 0?t.groupPosition===void 0?(e.groupTitle||e.group).localeCompare(t.groupTitle||t.group):1:-1}var f=e({generateRoutes:()=>_,invalidateRouteCache:()=>g});let p=null;const m=new Map;let h=null;function g(){p=null,m.clear(),s()}async function _(e,n,r,s=!1){if(h)return h;let c=(async()=>{let c=r||n?.base||`/docs`;await o.load(),m.clear();let u;if(!s&&p)u=p;else{let t=await new a().withFullPaths().filter(t=>t.endsWith(`.md`)||t.endsWith(`.mdx`)?!i.relative(e,t).replace(/\\/g,`/`).split(`/`).some(e=>e.startsWith(`_`)&&e!==`_index.md`&&e!==`_index.mdx`):!1).crawl(e).withPromise(),n=[/index\./i,/intro/i,/getting-started/i,/readme/i],r=t.map(e=>{let t=i.basename(e),r=n.findIndex(e=>e.test(t));return{f:e,score:r===-1?2**53-1:r}});r.sort((e,t)=>e.score-t.score),u=r.map(e=>e.f),p=u}o.pruneStale(new Set(u));let d=process.env.NODE_ENV===`test`||process.env.VITEST===`true`,f;if(d){let{parseDocFile:t}=await import(`./parser-DiHXWckn.mjs`).then(e=>e.t);f=await Promise.all(u.map(async r=>{let i=o.get(r);if(i)return i;let a=await t(r,e,c,n);return o.set(r,a),a}))}else{let{pool:t}=await import(`./worker-pool-Bd8Y9KDv.mjs`),r=n?{i18n:n.i18n,versions:n.versions}:void 0;f=await Promise.all(u.map(async n=>{let i=o.get(n);if(i)return i;let a=await t.parseFile(n,e,c,r);return o.set(n,a),a}))}o.save();let h=new Map,g=[],_=n?.i18n?.defaultLocale||``;for(let e of f)if(e.isGroupIndex&&e.relativeDir&&g.push(e),e.relativeDir){let n=`${e.route.locale||_}:${e.relativeDir}`,r=h.get(n);r?r.position===void 0&&e.inferredGroupPosition!==void 0&&(r.position=e.inferredGroupPosition):(r={title:t(e.relativeDir),position:e.inferredGroupPosition},h.set(n,r))}for(let e of g){let t=`${e.route.locale||_}:${e.relativeDir}`,n=h.get(t);e.groupMeta&&(n.title=e.groupMeta.title,e.groupMeta.position!==void 0&&(n.position=e.groupMeta.position),e.groupMeta.icon&&(n.icon=e.groupMeta.icon))}if(n?.theme?.sidebarGroups){let e=n.i18n?Object.keys(n.i18n.locales):[_];for(let[r,i]of Object.entries(n.theme.sidebarGroups))for(let n of e){let e=`${n}:${r}`,a=h.get(e),o;typeof i.title==`string`?o=i.title:i.title&&(o=i.title[n]||i.title[_]),a?(o&&(a.title=o),i.icon&&(a.icon=i.icon)):h.set(e,{title:o||t(r),icon:i.icon})}}let y=Array(f.length);for(let e=0;e<f.length;e++){let n=f[e],r=n.relativeDir,i=n.route.locale||_,a=r?`${i}:${r}`:void 0,o=a?h.get(a):void 0,s;o&&(s=typeof o.title==`string`?o.title:o.title[i]||o.title[_]),y[e]={...n.route,group:r,groupTitle:s||(r?t(r):void 0),groupPosition:o?.position,groupIcon:o?.icon}}let b=y;if(n?.i18n){let e=v(y,n,c);b=[...y,...e]}return l(b)})();h=c;try{return await c}finally{h=null}}function v(e,t,n){let r=t.i18n.defaultLocale,i=Object.keys(t.i18n.locales),a=[],o=new Map,s=[];for(let t of e){let e=t.locale||r;o.has(e)||o.set(e,new Set),o.get(e).add(t.path),e===r&&s.push(t)}for(let e of i){let i=o.get(e)||new Set;for(let o of s){let s=y(o.path,r,e,n,t);s!==o.path&&(i.has(s)||a.push({...o,path:s,locale:e}))}}return a}function y(e,t,n,r,i){let a=`${e}:${n}`,o=m.get(a);if(o)return o;let s=r.startsWith(`/`)?r:`/`+r,c=s;if(i?.versions){let t=i.versions.prefix||``;for(let n of i.versions.versions){let r=`${s}/${t+n.path}`;if(e.startsWith(r)){c=r;break}let i=`${s}/${n.path}`;if(e.startsWith(i)){c=i;break}}}let l=e.substring(c.length),u=`/${t}`;if(l.startsWith(u+`/`))l=`/`+n+`/`+l.substring(u.length+1);else if(l===u)l=`/`+n;else if(l===`/`||l===``)l=`/`+n;else{let e=l.startsWith(`/`)?``:`/`;l=`/`+n+e+l}let d=c+l;return m.size>2e3&&m.clear(),m.set(a,d),d}export{c as i,g as n,f as r,_ as t};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "boltdocs",
3
- "version": "2.7.3",
3
+ "version": "2.7.5",
4
4
  "description": "A lightweight documentation generator for React projects.",
5
5
  "main": "dist/node/index.mjs",
6
6
  "module": "dist/node/index.mjs",
@@ -318,6 +318,7 @@ export function createRoutes(options: CreateRoutesOptions): RouteRecord[] {
318
318
 
319
319
  // Group all documentation routes under the persistent DocsLayout
320
320
  const docsLayoutRoute: RouteRecord = {
321
+ path: baseDocsPath,
321
322
  element: <DocsLayout />,
322
323
  children: docRoutes,
323
324
  }
@@ -1,111 +0,0 @@
1
- /**
2
- * Boltdocs - https://boltdocs.vercel.app
3
- * Copyright (c) 2026 Jesus Alcala
4
- * Licensed under the MIT License.
5
- */
6
- import{a as e,l as t,n,s as r,u as i}from"./doctor-Dh1XP7Pz.mjs";import{l as a,n as o,s,u as c}from"./utils-BxNAXhZZ.mjs";import{r as l}from"./cache-CQKlT4fI.mjs";import{i as u,n as d,t as f}from"./routes-CMUZGI6T.mjs";import p from"@vitejs/plugin-react";import m from"@tailwindcss/vite";import{loadEnv as h,normalizePath as g}from"vite";import _ from"node:path";import v from"fs";import{z as y}from"zod";import b from"node:fs";import x from"node:crypto";import{ViteImageOptimizer as ee}from"vite-plugin-image-optimizer";import te from"semver";import S from"path";import{fileURLToPath as ne}from"node:url";import re from"@mdx-js/rollup";import ie from"remark-gfm";import ae from"remark-frontmatter";import oe from"rehype-slug";import{visit as C}from"unist-util-visit";import{createJavaScriptRegexEngine as se}from"shiki/engine/javascript";import{createHighlighterCore as ce}from"shiki/core";import le from"@shikijs/themes/github-light";import ue from"@shikijs/themes/github-dark";import de from"@shikijs/themes/tokyo-night";import fe from"@shikijs/themes/dracula";import pe from"@shikijs/themes/nord";import me from"@shikijs/themes/one-dark-pro";import he from"@shikijs/themes/one-light";import ge from"@shikijs/langs/html";import _e from"@shikijs/langs/js";import ve from"@shikijs/langs/ts";import ye from"@shikijs/langs/tsx";import be from"@shikijs/langs/css";import xe from"@shikijs/langs/json";import Se from"@shikijs/langs/bash";import Ce from"@shikijs/langs/markdown";import we from"@shikijs/langs/mdx";import Te from"@shikijs/langs/yaml";import Ee from"@shikijs/langs/rust";import De from"@shikijs/langs/toml";import Oe from"@shikijs/langs/csv";function w(e){return e.map(e=>({path:e.path,filePath:e.filePath,title:e.title,description:e.description||``,sidebarPosition:e.sidebarPosition,badge:e.badge,icon:e.icon,headings:e.headings||[],_content:e._content||``,_rawContent:e._rawContent||``,locale:e.locale,version:e.version,tab:e.tab,group:e.group,groupTitle:e.groupTitle,groupPosition:e.groupPosition,groupIcon:e.groupIcon,subRouteGroup:e.subRouteGroup,seo:e.seo,date:e.date,lastUpdated:e.lastUpdated,category:e.category,order:e.order,sidebarLabel:e.sidebarLabel,sidebarHidden:e.sidebarHidden,frontmatter:e.frontmatter,slugParts:e.slugParts}))}function ke(e,t){let n=(t.siteUrl||``).replace(/\/$/,``);if(!n)return``;let r=t.seo?.indexing!==`all`&&t.seo?.indexing!==`public`;return`<?xml version="1.0" encoding="UTF-8"?>
7
- <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
8
- ${e.filter(e=>e.seo?.noindex||typeof e.seo?.robots==`string`&&e.seo.robots.includes(`noindex`)?!1:(r&&e.seo?.index,!0)).map(e=>` <url>
9
- <loc>${o(`${n}${e.path.startsWith(`/`)?e.path:`/${e.path}`}`)}</loc>
10
- <changefreq>weekly</changefreq>
11
- <priority>0.7</priority>
12
- </url>`).join(`
13
- `)}
14
- </urlset>`}function Ae(e){let t=e.siteUrl||``,n=t?`${t.replace(/\/$/,``)}/sitemap.xml`:``;if(e.seo?.indexing!==`all`&&e.seo?.indexing!==`public`&&e.seo?.indexing)return[`User-agent: *`,`Disallow: /`].filter(Boolean).join(`
15
- `);if(typeof e.robots==`string`)return e.robots;if(e.robots&&typeof e.robots==`object`){let t=e.robots.rules||[],r=e.robots.sitemaps||[],i=t.map(e=>{let t=`User-agent: ${e.userAgent}\n`;return e.allow&&(Array.isArray(e.allow)?t+=e.allow.map(e=>`Allow: ${e}`).join(`
16
- `)+`
17
- `:t+=`Allow: ${e.allow}\n`),e.disallow&&(Array.isArray(e.disallow)?t+=e.disallow.map(e=>`Disallow: ${e}`).join(`
18
- `)+`
19
- `:t+=`Disallow: ${e.disallow}\n`),t.trim()}).join(`
20
-
21
- `),a=[...n?[n]:[],...r].map(e=>`Sitemap: ${e}`).join(`
22
- `);return`${i}${a?`\n\n${a}`:``}`}return[`User-agent: *`,`Allow: /`,``,n?`Sitemap: ${n}`:``].filter(Boolean).join(`
23
- `)}function T(e){return`<!doctype html>
24
- <html lang="en">
25
- <head>
26
- <meta charset="UTF-8" />
27
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
28
- <title>${e.theme?.title||`Boltdocs`}</title>
29
- </head>
30
- <body>
31
- <div id="root"></div>
32
- </body>
33
- </html>`}function E(e,t){(!e||!e.includes(`<body`)||!e.includes(`<head`))&&(e=T(t));let n=t.theme,r=n?.title||`Boltdocs`;if(typeof r==`object`){let e=t.i18n?.defaultLocale||``;r=r[e]||Object.values(r)[0]||`Boltdocs`}let i=n?.description||``;if(typeof i==`object`){let e=t.i18n?.defaultLocale||``;i=i[e]||Object.values(i)[0]||``}let a=n?.favicon;!a&&n?.logo&&(a=typeof n.logo==`string`?n.logo:n.logo.light||n.logo.dark);let o=[a?`<link rel="icon" href="${a}">`:``,`<meta name="description" content="${i}">`,`<meta property="og:title" content="${r}">`,`<meta property="og:description" content="${i}">`,`<meta property="og:type" content="website">`,`<meta name="twitter:card" content="summary_large_image">`,`<meta name="twitter:title" content="${r}">`,`<meta name="twitter:description" content="${i}">`,`<meta name="generator" content="Boltdocs">`].filter(Boolean).join(`
34
- `);e=e.includes(`<title>`)?e.replace(/<title>.*?<\/title>/,`<title>${r}</title>`):e.replace(`</head>`,` <title>${r}</title>\n </head>`);let s=``;if(t.integrations?.ga4){let e=t.integrations.ga4;if(process.env.NODE_ENV===`production`||e.debug){let t=e.anonymizeIp?`gtag('set', 'ip', true);`:``,n=e.sendPageView===!1?`{send_page_view: false}`:`{}`,r=e.cookieFlags?`, {'cookie_flags': '${e.cookieFlags}'}`:``;s=`
35
- <!-- Google tag (gtag.js) - ${e.measurementId} -->
36
- <script async src="https://www.googletagmanager.com/gtag/js?id=${e.measurementId}"><\/script>
37
- <script>
38
- window.dataLayer = window.dataLayer || [];
39
- function gtag(){dataLayer.push(arguments);}
40
- gtag('js', new Date());
41
- ${t}
42
- gtag('config', '${e.measurementId}', ${n}${r});
43
- <\/script>
44
- `}}let c=``,l=``;if(t.integrations?.gtm){let e=t.integrations.gtm;if(process.env.NODE_ENV===`production`){let t=e.dataLayerName||`dataLayer`;c=`
45
- <!-- Google Tag Manager -->
46
- <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
47
- new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
48
- j=d.createElement(s),dl=l!='${t}'?'&l='+l:'';j.async=true;j.src=
49
- 'https://www.googletagmanager.com/gtm.js?id='+i+dl+'${e.preview?`&gtm_preview=${e.preview}`:``}';f.parentNode.insertBefore(j,f);
50
- })(window,document,'script','${t}','${e.tagId}');<\/script>
51
- <!-- End Google Tag Manager -->
52
- `,l=`
53
- <!-- Google Tag Manager (noscript) -->
54
- <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=${e.tagId}"
55
- height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
56
- <!-- End Google Tag Manager (noscript) -->
57
- `}}return e=e.replace(`</head>`,` ${o}\n
58
- <script>
59
- (function() {
60
- try {
61
- var stored = localStorage.getItem("boltdocs-theme");
62
- var isDark =
63
- stored === "dark" ||
64
- (stored !== "light" && window.matchMedia("(prefers-color-scheme: dark)").matches);
65
- document.documentElement.classList.toggle("dark", isDark);
66
- document.documentElement.dataset.theme = isDark ? "dark" : "light";
67
- } catch (e) {}
68
- })();
69
- <\/script>
70
- \n${s}${c} </head>`),l&&(e=e.replace(/<body([^>]*)>/,`<body$1>\n${l}`)),!e.includes(`src/main`)&&!e.includes(`virtual:boltdocs-entry`)&&(e=e.replace(`</body>`,` <script type="module">import "virtual:boltdocs-entry";<\/script>
71
- </body>`)),e}var D=class e extends Error{pluginName;constructor(t,n){super(`[plugin:${t}] ${n}`),this.name=`PluginError`,this.pluginName=t,Object.setPrototypeOf(this,e.prototype)}},O=class e extends D{constructor(t,n){super(t,`Validation failed: ${n}`),this.name=`PluginValidationError`,Object.setPrototypeOf(this,e.prototype)}},k=class e extends D{constructor(t,n){super(t,`Compatibility error: ${n}`),this.name=`PluginCompatibilityError`,Object.setPrototypeOf(this,e.prototype)}},A=class e extends D{constructor(t,n){super(t,`Missing required permission: '${n}'`),this.name=`PluginPermissionError`,Object.setPrototypeOf(this,e.prototype)}},j=class e extends D{hookName;constructor(t,n,r){super(t,`Error in hook '${n}': ${r.message}`),this.name=`PluginHookError`,this.hookName=n,this.stack=r.stack,Object.setPrototypeOf(this,e.prototype)}},M=class{data=new Map;getNamespaceKey(e,t){return`${e}:${t}`}get(e,t){let n=this.getNamespaceKey(e,t),r=this.data.get(n);if(r!==void 0)return typeof r==`object`&&r?JSON.parse(JSON.stringify(r)):r}set(e,t,n){let r=this.getNamespaceKey(e,t),i=typeof n==`object`&&n?JSON.parse(JSON.stringify(n)):n;this.data.set(r,i)}has(e,t){let n=this.getNamespaceKey(e,t);return this.data.has(n)}};const N=i.extend({version:y.string().optional(),boltdocsVersion:y.string().optional(),permissions:y.array(y.string()).optional(),hooks:y.object({beforeBuild:y.function().optional(),afterBuild:y.function().optional(),beforeDev:y.function().optional(),afterDev:y.function().optional(),configResolved:y.function().optional(),buildEnd:y.function().optional()}).optional()});function P(e,t){let n=[],r=new Set;for(let i of e){let e=N.safeParse(i);if(!e.success)throw new O(i.name||`unknown`,e.error.issues.map(e=>`${e.path.join(`.`)}: ${e.message}`).join(`, `));let a=e.data;if(r.has(a.name))throw new O(a.name,`Duplicate plugin name detected`);if(r.add(a.name),a.boltdocsVersion&&!te.satisfies(t,a.boltdocsVersion))throw new k(a.name,`Plugin expects Boltdocs version ${a.boltdocsVersion}, but current is ${t}`);if(a.components){for(let[e,t]of Object.entries(a.components))if((t.includes(`..`)||S.isAbsolute(t))&&t.includes(`..`))throw new O(a.name,`Component '${e}' has an invalid path: traversal sequences are not allowed.`)}n.push(a)}return n}function F(e,t){return e.permissions?e.permissions.includes(t):!1}var I=class e{static checkPermission(e,t){if(!F(e,t))throw new A(e.name,t)}static getSanitizedCapabilities(e){return{remarkPlugins:F(e,`mdx:remark`)?e.remarkPlugins:[],rehypePlugins:F(e,`mdx:rehype`)?e.rehypePlugins:[],vitePlugins:F(e,`vite:config`)?e.vitePlugins:[],components:F(e,`components`)?e.components:{}}}static async executeWithIsolation(t,n,r,i){try{return e.checkPermission(t,n),await i()}catch(e){if(e instanceof A){console.warn(`[boltdocs] Skipping hook '${r}' for plugin '${t.name}': ${e.message}`);return}throw e}}},L=class{plugins;config;store;constructor(e,t){this.plugins=e,this.config=t,this.store=new M}async runHook(e,...t){let n=this.getSortedPlugins();for(let r of n){if(!r.hooks?.[e])continue;let n=this.createContext(r),i=e.toLowerCase().includes(`build`),a=e.toLowerCase().includes(`dev`),o=i?`hooks:build`:a?`hooks:dev`:void 0;try{o?await I.executeWithIsolation(r,o,e,()=>r.hooks[e](n,...t)):await r.hooks[e](n,...t)}catch(t){let i=new j(r.name,e,t instanceof Error?t:Error(String(t)));n.logger.error(i)}}}getSortedPlugins(){let e=this.plugins.filter(e=>e.enforce===`pre`),t=this.plugins.filter(e=>!e.enforce),n=this.plugins.filter(e=>e.enforce===`post`);return[...e,...t,...n]}createContext(e){return{config:Object.freeze({...this.config}),meta:{name:e.name,version:e.version,boltdocsVersion:e.boltdocsVersion},store:{get:(e,t)=>this.store.get(e,t),set:(e,t,n)=>this.store.set(e,t,n),has:(e,t)=>this.store.has(e,t)},logger:this.createLogger(e.name)}}createLogger(e){let t=`[plugin:${e}]`;return{info:e=>console.log(`${t} INFO: ${e}`),warn:e=>console.warn(`${t} WARN: ${e}`),error:e=>{let n=e instanceof Error?e.message:e;console.error(`${t} ERROR: ${n}`)},debug:e=>console.debug(`${t} DEBUG: ${e}`)}}};function je(e){return e}const R=_.dirname(ne(import.meta.url));function z(e){return typeof e==`string`?[e]:Array.isArray(e)?e.flatMap(z):e&&typeof e==`object`?Object.values(e).flatMap(z):[]}const Me=new Set([`title`,`description`,`permalink`,`sidebarPosition`,`sidebarLabel`,`sidebarHidden`,`hidden`,`category`,`order`,`badge`,`icon`,`date`,`lastUpdated`,`groupTitle`,`groupPosition`,`seo`]);function Ne(e){let t=[];for(let n of e){let e=``;n.frontmatter&&(e=z(Object.entries(n.frontmatter).filter(([e])=>!Me.has(e)).map(([e,t])=>t)).join(` `));let r=e?`${n._content||``} ${e}`:n._content||``;if(t.push({id:n.path,title:n.title,content:r,url:n.path,display:n.groupTitle?`${n.groupTitle} > ${n.title}`:n.title,locale:n.locale,version:n.version}),n.headings)for(let e of n.headings)t.push({id:`${n.path}#${e.id}`,title:e.text,content:`${e.text} in ${n.title}`,url:`${n.path}#${e.id}`,display:`${n.title} > ${e.text}`,locale:n.locale,version:n.version})}return t}function B(e,t,n=!1){let r=S.resolve(process.cwd(),`index.css`),i=v.existsSync(r)?`import './index.css';`:``,o=t?.plugins?.flatMap(e=>Object.entries(e.components||{}))||[],s=o.map(([e,t])=>`import * as _comp_${e} from '${a(t)}';
72
- const ${e} = _comp_${e}.default || _comp_${e}['${e}'] || _comp_${e};`).join(`
73
- `),c=o.map(([e])=>e).join(`, `),l=S.basename(e.docsDir||`docs`),u=S.resolve(process.cwd(),e.docsDir||`docs`),d=[`tsx`,`ts`,`jsx`,`js`].map(e=>S.resolve(u,`pages-external/index.${e}`)).find(e=>v.existsSync(e));return`
74
- import { ViteReactSSG, createRoutes } from 'boltdocs/client';
75
- import _routes from 'virtual:boltdocs-routes.ts';
76
- import _config from 'virtual:boltdocs-config.ts';
77
- import _user_mdx_components from 'virtual:boltdocs-mdx-components.tsx';
78
- import _Layout from 'virtual:boltdocs-layout.tsx';
79
- ${i}
80
- ${s}
81
- ${d?`import * as _external_module from '${a(d)}';`:``}
82
-
83
- const mdxModules = import.meta.glob('/${l}/**/*.{md,mdx}', { eager: true });
84
-
85
- export const createRoot = ViteReactSSG(
86
- {
87
- routes: createRoutes({
88
- routesData: _routes,
89
- config: _config,
90
- mdxModules,
91
- Layout: _Layout,
92
- ${d?`externalPages: _external_module.pages, externalLayout: _external_module.layout,`:``}
93
- components: { ${c}${c?`, `:``} ...(_user_mdx_components || {}) },
94
- }),
95
- },
96
- ({ isClient }) => {
97
- // Boltdocs initialization hook
98
- if (isClient) {
99
- // Client-side initialization
100
- }
101
- },
102
- );
103
- `}let V=null,H=null;function Pe(){V=null,H=null}function Fe(e,t,n,r){return{name:`vite-plugin-boltdocs-virtual-modules`,resolveId(e){let t=n()?.root||process.cwd();return e.includes(`boltdocs-entry.tsx`)||e===`virtual:boltdocs-entry`||e===`boltdocs-entry`||e===`\0virtual:boltdocs-entry`?a(_.resolve(t,`boltdocs-entry.tsx`)):e.includes(`boltdocs-client.mjs`)||e===`virtual:boltdocs-client`||e===`boltdocs-client`||e===`\0virtual:boltdocs-client.ts`?a(_.resolve(t,`boltdocs-client.mjs`)):e.startsWith(`virtual:boltdocs-`)?`\0`+e:e.startsWith(`\0virtual:boltdocs-`)?e:null},async load(i){let o=n()?.command===`build`,s=t();if(i.includes(`boltdocs-entry.tsx`)||i===`\0virtual:boltdocs-entry`)return B(e,s,o);if(i.includes(`boltdocs-client.mjs`)||i===`\0virtual:boltdocs-client.ts`||i===`virtual:boltdocs-client`){let e=R,t=e;for(;e!==_.parse(e).root;){if(b.existsSync(_.join(e,`package.json`))&&JSON.parse(b.readFileSync(_.join(e,`package.json`),`utf-8`)).name===`boltdocs`){t=e;break}e=_.dirname(e)}let n=_.join(t,`src/client/index.ts`),r=_.join(t,`dist/client/index.js`);return`export * from '${a(b.existsSync(n)?n:r)}';`}if(!i.startsWith(`\0virtual:boltdocs-`))return;let c=i.replace(`\0virtual:boltdocs-`,``).replace(/\.tsx?$/,``);if(c===`routes`){let e=w(await f(r,s));return`export default ${JSON.stringify(e,null,2)};`}if(c===`config`){if(V===null){let{loadDirectoryMeta:e}=await import(`./meta-loader-9IpAHWDS.mjs`);V=await e(r)}let e=V,t={base:s?.base,theme:s?.theme,i18n:s?.i18n,versions:s?.versions,siteUrl:s?.siteUrl,integrations:s?.integrations,plugins:s?.plugins?.map(e=>({name:e.name})),directoryMeta:e};return`export default ${JSON.stringify(t,null,2)};`}if(c===`entry`)return B(e,s,o);if(c===`mdx-components`){let e=[`tsx`,`ts`,`jsx`,`js`],t=null;for(let n of e){let e=_.resolve(r,`mdx-components.${n}`);if(b.existsSync(e)){t=e;break}}if(t){let e=a(t);return`import * as components from '${e}';
104
- const mdxComponents = components.default || components;
105
- export default mdxComponents;
106
- export * from '${e}';`}return`export default {};`}if(c===`layout`){let e=[`tsx`,`jsx`],t=null;for(let n of e){let e=_.resolve(r,`layout.${n}`);if(b.existsSync(e)){t=e;break}}if(t)return`import UserLayout from '${a(t)}';
107
- export default UserLayout;`;throw Error(`[Boltdocs] Layout file not found. A 'layout.tsx' or 'layout.jsx' file is mandatory in your docs directory. Please create one to define your site structure.`)}if(c===`icons`){let e=[`tsx`,`jsx`,`ts`,`js`],t=null;for(let n of e){let e=_.resolve(r,`icons.${n}`);if(b.existsSync(e)){t=e;break}}return t?`import * as icons from '${a(t)}';\nexport default icons;`:`export default {};`}if(c===`search`){if(!H){let e=Ne(await f(r,s));H=`export default ${JSON.stringify(e,null,2)};`}return H}if(c===`client`){let e=R,t=``;for(;e&&e!==_.parse(e).root;){let n=_.join(e,`src/client/index.ts`),r=_.join(e,`dist/client/index.mjs`),i=_.join(e,`client/index.ts`);if(b.existsSync(n)){t=a(n);break}if(b.existsSync(r)){t=a(r);break}if(b.existsSync(i)){t=a(i);break}e=_.dirname(e)}if(!t)throw Error(`[boltdocs] Could not resolve boltdocs/client entry point starting from ${R}`);return`export * from '${t}';`}}}}const U={"X-Content-Type-Options":`nosniff`,"X-Frame-Options":`DENY`,"X-XSS-Protection":`1; mode=block`,"Referrer-Policy":`strict-origin-when-cross-origin`,"Permissions-Policy":`camera=(), microphone=(), geolocation=()`,"Strict-Transport-Security":`max-age=31536000; includeSubDomains`};function Ie(e){let t=process.env.NODE_ENV===`development`,n={"default-src":[`'self'`],"script-src":[`'self'`,`'unsafe-inline'`],"style-src":[`'self'`,`'unsafe-inline'`],"img-src":[`'self'`,`data:`,`https:`],"font-src":[`'self'`],"connect-src":[`'self'`]};return t&&(n[`script-src`]=[`'self'`,`'unsafe-eval'`,`'unsafe-inline'`],n[`style-src`]=[`'self'`,`'unsafe-inline'`]),Object.entries(n).map(([e,t])=>`${e} ${t.join(` `)}`).join(`; `)}const W=new Map;async function Le(e){try{let{data:t}=await c(e),n=JSON.stringify(t);return x.createHash(`md5`).update(n).digest(`hex`)}catch{return``}}function Re(e){return W.get(e)}function ze(e,t){W.set(e,t)}function Be(e){W.delete(e)}function G(e,t){let n=e.moduleGraph.getModuleById(`\0virtual:boltdocs-${t}.ts`);n&&e.moduleGraph.invalidateModule(n)}function Ve(r,i,o,c,l){let f=new Map;return{name:`vite-plugin-boltdocs-dev-server`,apply:`serve`,async configureServer(c){let p=l();await p?.runHook(`beforeDev`),n(r,process.cwd(),o()).catch(e=>{console.error(`[boltdocs] Failed to generate initial link tree:`,e)}),setTimeout(async()=>{try{let{generateRoutes:e}=await import(`./routes-CMUZGI6T.mjs`).then(e=>e.r),t=await e(r,o());for(let e of t)if(e.filePath){let t=_.relative(process.cwd(),e.filePath).replace(/\\/g,`/`),n=t.startsWith(`/`)?t:`/${t}`;await c.transformRequest(n).catch(()=>{}),await new Promise(e=>setTimeout(e,50))}}catch{}},1e3),c.middlewares.use((e,t,n)=>{process.env.NODE_ENV===`production`&&Object.entries(U).forEach(([e,n])=>{t.setHeader(e,n)});let r=o();r.security?.enableCSP&&t.setHeader(`Content-Security-Policy`,Ie(r)),n()}),c.middlewares.use((e,t,n)=>{if(e.url===`/robots.txt`){n();return}n()}),c.middlewares.use(async(e,t,n)=>{let r=e.url?.split(`?`)[0]||`/`,i=e.headers.accept||``,a=o(),s=/\.(js|css|png|jpe?g|gif|svg|ico|webp|woff2?|ttf|otf|mp4|webm|ogg|mp3|wav|flac|aac|pdf|zip|gz|map|json)$/i.test(r);if(i.includes(`text/html`)&&!s){let n=T(a);n=E(n,a),n=await c.transformIndexHtml(e.url||`/`,n),t.statusCode=200,t.setHeader(`Content-Type`,`text/html`),t.end(n);return}n()});let m=e.map(e=>_.resolve(process.cwd(),e)),h=[`tsx`,`jsx`].map(e=>_.resolve(r,`layout.${e}`)),g=[`tsx`,`ts`,`jsx`,`js`],v=g.map(e=>_.resolve(r,`mdx-components.${e}`)),y=g.map(e=>_.resolve(r,`pages-external/index.${e}`)),b=g.map(e=>_.resolve(r,`icons.${e}`));c.watcher.add([...m,...v,...h,...y,...b]);let x=async(l,p)=>{try{let m=a(l);if(e.some(e=>m.endsWith(e))){c.restart();return}if(g.some(e=>m.endsWith(`mdx-components.${e}`))){t(o(),r),G(c,`mdx-components.tsx`),c.ws.send({type:`full-reload`});return}if(g.some(e=>m.endsWith(`icons.${e}`))){G(c,`icons.tsx`),c.ws.send({type:`full-reload`});return}if(m.endsWith(`layout.tsx`)||m.endsWith(`layout.jsx`)){G(c,`layout.tsx`),c.ws.send({type:`full-reload`});return}if(m.includes(`/pages-external/`)||m.includes(`\\pages-external\\`)){G(c,`entry`),c.ws.send({type:`full-reload`});return}if(!m.toLowerCase().startsWith(i.toLowerCase())||!s(m))return;if(p===`add`||p===`unlink`){p===`unlink`&&Be(l),d(),Pe();let e=o();t(e,r),G(c,`config`),G(c,`routes`),G(c,`search`),n(r,process.cwd(),e).catch(e=>{console.error(`[boltdocs] Failed to update link tree:`,e)}),c.ws.send({type:`custom`,event:`boltdocs:config-update`,data:{theme:e?.theme,i18n:e?.i18n,versions:e?.versions,siteUrl:e?.siteUrl}}),c.ws.send({type:`full-reload`});return}f.has(m)&&clearTimeout(f.get(m)),f.set(m,setTimeout(async()=>{f.delete(m);try{let e=Re(l),t=await Le(l);ze(l,t),u(l),e!==void 0&&e!==t&&(G(c,`routes`),G(c,`search`));let n=a(_.relative(r,l)),i=c.moduleGraph.getModulesByFile(m);if(i)for(let e of i)c.moduleGraph.invalidateModule(e);c.ws.send({type:`custom`,event:`boltdocs:mdx-update`,data:{file:m,relPath:n}})}catch(e){console.error(`[boltdocs] HMR error processing content change:`,e)}},150))}catch(e){console.error(`[boltdocs] HMR error during ${p} event:`,e)}};c.watcher.on(`add`,e=>x(e,`add`)),c.watcher.on(`unlink`,e=>x(e,`unlink`)),c.watcher.on(`change`,e=>x(e,`change`)),await p?.runHook(`afterDev`)},handleHotUpdate({file:e,server:t}){let n=a(e);if(n.toLowerCase().startsWith(i.toLowerCase())&&s(n))return[]}}}function He(e={},t){let n=_.resolve(process.cwd(),e.docsDir||`docs`),i=a(n),o=t,s,c=!1,l,u=[],d=()=>o;return[{name:`vite-plugin-boltdocs`,enforce:`pre`,async config(e,t){c=t.command===`build`;let i=e.envDir||process.cwd(),a=h(t.mode,i,``);Object.assign(process.env,a),o||=await r(n);let s=(await import(`./package-DK5Olmvh.mjs`)).version,d=P(o.plugins||[],s);return o.plugins=d,l=new L(d,o),u=d.flatMap(e=>I.getSanitizedCapabilities(e).vitePlugins||[]),c&&await l.runHook(`beforeBuild`),{ssgOptions:{entry:`boltdocs/entry`,htmlEntry:`index.html`,dirStyle:`nested`,includeAllRoutes:!0,mock:!0,script:`async`,beastiesOptions:{preload:`media`},onFinished:async e=>{let t=ke(w(await f(n,o)),o);t&&b.writeFileSync(_.join(e,`sitemap.xml`),t);let r=Ae(o);b.writeFileSync(_.join(e,`robots.txt`),r)}},build:{ssrManifest:c},async config(){return{optimizeDeps:{include:[`react`,`react-dom`,`react-dom/client`,`react-router-dom`,`react-helmet-async`,`react-fast-compare`],exclude:[`boltdocs`,`boltdocs/client`]},resolve:{dedupe:[`react`,`react-dom`]},ssr:{optimizeDeps:{include:[`react-fast-compare`]},noExternal:[`react-router-dom`]}}}}},configResolved(e){s=e,l?.runHook(`configResolved`,o)},transformIndexHtml:{order:`pre`,handler(e){return E(e,o)}},async buildEnd(){let{pool:e}=await import(`./worker-pool-Bd8Y9KDv.mjs`);await e.terminate()},async closeBundle(){!c||s?.build?.ssr||(await l?.runHook(`afterBuild`),await l?.runHook(`buildEnd`))}},Fe(e,d,()=>s,n),Ve(n,i,d,e=>{o=e},()=>l),{...ee({includePublic:!0,png:{quality:80},jpeg:{quality:80},jpg:{quality:80},webp:{quality:80},avif:{quality:80},svg:{multipass:!0,plugins:[{name:`preset-default`}]}}),apply:`build`},...u]}const K=new l(`mdx`),Ue=[le.default||le,ue.default||ue,de.default||de,fe.default||fe,pe.default||pe,me.default||me,he.default||he],We=[ge,_e,ve,ye,be,xe,Se,Ce,we,Te,Ee,De,Oe];let Ge=null,q=null;const Ke=()=>(Ge??=se(),Ge),qe=async e=>q||(q=ce({themes:Ue,langs:We,engine:Ke()}),q),J={JSX_FLOW_ELEMENT:`mdxJsxFlowElement`,JSX_TEXT_ELEMENT:`mdxJsxTextElement`,JSX_ATTRIBUTE:`mdxJsxAttribute`,ELEMENT:`element`,TEXT:`text`,CODE:`code`},Je={PRE:`pre`,CODE:`code`},Y={TITLE:`data-title`,LANG:`data-lang`,HIGHLIGHTED:`data-highlighted`,HIGHLIGHTED_HTML:`data-highlighted-html`},X={LINE_NUMBERS:`shiki-line-numbers`,WORD_WRAP:`shiki-word-wrap`,FALLBACK:`shiki-fallback`},Ye={LIGHT:`github-light`,DARK:`github-dark`},Z={LANG:`plaintext`,MDX_DEFAULT_LANG:`text`},Xe=(e={})=>{let{activateByDefault:t=!1}=e;return{name:`boltdocs:line-numbers`,pre(e){let n=this.options.meta?.lineNumbers===!0;(t||n)&&this.addClassToHast(e,X.LINE_NUMBERS)}}},Ze=(e={})=>{let{activateByDefault:t=!1}=e;return{name:`boltdocs:word-wrap`,pre(e){let n=this.options.meta?.wordWrap===!0;(t||n)&&this.addClassToHast(e,X.WORD_WRAP)}}},Qe=()=>({name:`AddTitleProperty`,pre(e){let t=this.options.meta?.title;t&&(e.properties[Y.TITLE]=t)}}),$e=()=>({name:`AddLanguageProperty`,pre(e){e.properties[Y.LANG]=this.options.lang||Z.LANG}});function et(e){let t={};if(!e)return t;/lineNumbers|showLineNumbers/.test(e)&&(t.lineNumbers=!0),/wordWrap|word-wrap/.test(e)&&(t.wordWrap=!0);let n=e.match(/title=(["'])(.*?)\1/);return n&&(t.title=n[2]),t}var tt=class{config;constructor(e){this.config=e}getTheme(){return this.config?.theme?.codeTheme||{light:Ye.LIGHT,dark:Ye.DARK}}async getHighlighter(){return await qe(this.getTheme())}getOptions(e,t){let n=this.getTheme(),r={},i=``;typeof t==`string`?(i=t,r=et(t)):t&&(r=t,i=t.__raw||``);let a={lang:e||Z.LANG,meta:{__raw:i,...r},transformers:[Xe(),Ze(),Qe(),$e()]};return typeof n==`object`?a.themes={light:n.light,dark:n.dark}:a.theme=n,a}async render(e,t,n){try{let r=await this.getHighlighter(),i=this.getOptions(t,n);return r.codeToHtml(e,i)}catch(t){return console.error(`[ShikiAdapter] Failed to render code:`,t),`<pre class="${X.FALLBACK}"><code>${nt(e)}</code></pre>`}}};function nt(e){return e.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`).replace(/"/g,`&quot;`).replace(/'/g,`&#039;`)}let Q=null,rt;function it(e){let t=JSON.stringify(e?.theme?.codeTheme||null);return(Q===null||rt!==t)&&(Q=new tt(e),rt=t),Q}function at(e){let t=it(e);return async e=>{let n=await t.getHighlighter();C(e,J.ELEMENT,e=>{if(e.tagName===Je.PRE&&e.children?.[0]?.type===J.ELEMENT&&e.children[0].tagName===Je.CODE){let r=e.children[0],i=(r.properties?.className||[]).find(e=>e.startsWith(`language-`)),a=i?i.slice(9):Z.MDX_DEFAULT_LANG;if(a===`mermaid`)return;let o=r.children?.[0]?.value||``,s=et(r.properties?.metastring||r.data?.meta||``),c=t.getOptions(a,s),l=``;try{l=n.codeToHtml(o,c)}catch(e){console.error(`[rehypeShiki] Failed to highlight code block:`,e),l=`<pre class="${X.FALLBACK}"><code>${nt(o)}</code></pre>`}e.properties=e.properties||{},s.title&&(e.properties[Y.TITLE]=s.title),e.properties[Y.HIGHLIGHTED]=`true`,e.properties[Y.HIGHLIGHTED_HTML]=l,e.properties[Y.LANG]=a,e.children=[]}})}}function ot(){return e=>{C(e,J.CODE,e=>{e.meta&&(e.data=e.data||{},e.data.hProperties=e.data.hProperties||{},e.data.hProperties.metastring=e.meta)})}}let st=!1;function $(e,t=re){let n=e?.plugins?.flatMap(e=>I.getSanitizedCapabilities(e).remarkPlugins||[])||[],r=e?.plugins?.flatMap(e=>I.getSanitizedCapabilities(e).rehypePlugins||[])||[],i=t({remarkPlugins:[ie,ae,ot,...n],rehypePlugins:[oe,[at,e],...r],jsxRuntime:`automatic`});return{...i,name:`vite-plugin-boltdocs-mdx`,async buildStart(){st||=(await K.load(),!0),i.buildStart&&await i.buildStart.call(this)},async transform(e,t,n){let[r]=t.split(`?`);if(!r.endsWith(`.md`)&&!r.endsWith(`.mdx`))return i.transform?.call(this,e,t,n);let a=`${r}:${x.createHash(`md5`).update(e).digest(`hex`)}:${process.env.NODE_ENV===`production`?`prod`:`dev`}:v3`,o=await K.getAsync(a);if(o)return{code:o,map:null};let s=await i.transform.call(this,e,r,n);return s&&typeof s==`object`&&s.code&&(process.env.NODE_ENV!==`production`&&(s.code+=`
108
- if (import.meta.hot) {
109
- import.meta.hot.accept();
110
- }
111
- `),K.set(a,s.code)),s},async buildEnd(){K.save(),await K.flush(),i.buildEnd&&await i.buildEnd.call(this)}}}async function ct(e){let t=await r(e?.docsDir||`docs`);return[...He({...e},t),$(t)]}async function lt(e,t=`development`){let n=await r(`docs`,e),i=t===`production`,a=i?{...U}:{};return n.security?.enableCSP&&(a[`Content-Security-Policy`]=Ie(n)),{root:e,mode:t,oxc:{jsx:{development:!i,runtime:`automatic`,importSource:`react`}},optimizeDeps:{include:[`react`,`react-dom`,`react-dom/client`,`react-helmet-async`,`react-router-dom`,`react-fast-compare`,`use-sync-external-store/shim`],rolldownOptions:{}},build:{rolldownOptions:{}},plugins:[p(),m(),...He({docsDir:`docs`,root:e},n),$(n)],resolve:{alias:[{find:`boltdocs/entry`,replacement:g(_.resolve(e,`boltdocs-entry.tsx`))},{find:`boltdocs/client`,replacement:g(_.resolve(e,`boltdocs-client.mjs`))},{find:`use-sync-external-store/shim/index.js`,replacement:`react`},{find:`use-sync-external-store/shim`,replacement:`react`},{find:`use-sync-external-store`,replacement:`react`}],dedupe:[`react`,`react-dom`,`react-router-dom`,`react-helmet-async`,`@bdocs/ssg`]},ssr:{optimizeDeps:{include:[`react`,`react-dom`,`react/jsx-runtime`,`react/jsx-dev-runtime`,`react-fast-compare`,...n.vite?.ssr?.optimizeDeps?.include||[]]},noExternal:[`boltdocs`,/@bdocs\/(?!ssg).*/,`react-helmet-async`,`react-aria-components`,`@react-aria/collections`,`@react-aria/utils`,`react-router-dom`]},server:{headers:{...a,...n.vite?.server?.headers},...n.vite?.server},preview:{headers:{...a,...n.vite?.preview?.headers},...n.vite?.preview},...n.vite}}export{L as a,F as c,k as d,D as f,O as h,je as i,P as l,A as m,lt as n,I as o,j as p,B as r,N as s,ct as t,M as u};