boltdocs 3.3.1 → 3.3.3
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.
- package/dist/{adapters-BmB4TKCc.mjs → adapters-BKzKe2mO.mjs} +1 -1
- package/dist/{adapters-Cp1Maurn.cjs → adapters-DwDTQoCG.cjs} +1 -1
- package/dist/{audit-COgjnQ5n.cjs → audit-CHkGiV3c.cjs} +1 -1
- package/dist/{audit-CLXjMzwQ.mjs → audit-CMc_ydRr.mjs} +1 -1
- package/dist/{build-D6FfNA8m.cjs → build-Dh61OnDW.cjs} +1 -1
- package/dist/{build-D_7SvwTh.mjs → build-WmZDi-TG.mjs} +1 -1
- package/dist/client/index.cjs +37 -3
- package/dist/client/index.d.cts +2 -2
- package/dist/client/index.d.ts +2 -2
- package/dist/client/index.js +36 -3
- package/dist/client/primitives.d.cts +2 -2
- package/dist/client/primitives.d.ts +2 -2
- package/dist/client/router.d.cts +1 -1
- package/dist/client/router.d.ts +1 -1
- package/dist/client/theme/reset.css +31 -13
- package/dist/config-CrsQJHQz.cjs +7 -0
- package/dist/config-DC0nMMk7.mjs +7 -0
- package/dist/{config-jJh8WYJI.cjs → config-PLvresCv.cjs} +1 -1
- package/dist/{dev-CwOyh-wP.mjs → dev-BObyQM9q.mjs} +1 -1
- package/dist/{dev-B9l7fVoQ.cjs → dev-wKVrEH6o.cjs} +1 -1
- package/dist/{doctor-C7whl4ED.cjs → doctor-DMECtdK6.cjs} +1 -1
- package/dist/{doctor-B1_YL0Wt.cjs → doctor-FuFY1jBz.cjs} +1 -1
- package/dist/{doctor-DmQnml2k.mjs → doctor-i8Qmd8DJ.mjs} +1 -1
- package/dist/{index-C56bL-A-.d.cts → index-CSiMUBhC.d.cts} +7 -1
- package/dist/{index-Cu9H6CRa.d.ts → index-Cg3TmXIZ.d.ts} +7 -1
- package/dist/{index-CPUUKzxD.d.cts → index-CgWkOCCn.d.cts} +82 -6
- package/dist/{index-Ci4kfOHF.d.ts → index-CuNSD3E2.d.ts} +82 -6
- package/dist/{native-Kre2T5eS.cjs → native-nLA4Jr0T.cjs} +1 -1
- package/dist/node/cli-entry.cjs +1 -1
- package/dist/node/cli-entry.mjs +1 -1
- package/dist/node/highlight.cjs +6 -0
- package/dist/node/highlight.d.cts +5 -0
- package/dist/node/highlight.d.mts +5 -0
- package/dist/node/highlight.mjs +6 -0
- package/dist/node/index.cjs +1 -1
- package/dist/node/index.d.cts +37 -3
- package/dist/node/index.d.mts +38 -4
- package/dist/node/index.mjs +1 -1
- package/dist/node/mdx/shiki-adapter.cjs +1 -1
- package/dist/node/mdx/shiki-adapter.d.cts +48 -32
- package/dist/node/mdx/shiki-adapter.d.mts +48 -32
- package/dist/node/mdx/shiki-adapter.mjs +1 -1
- package/dist/node-B4GvEOqF.cjs +23 -0
- package/dist/node-DwgtnlGU.mjs +23 -0
- package/dist/{package-5EsGUTVl.mjs → package-DWYDpDWO.mjs} +1 -1
- package/dist/package-xYC9zF1o.cjs +6 -0
- package/dist/{parser-CGMY2lJ7.mjs → parser-CD8Oo8qh.mjs} +1 -1
- package/dist/{parser-BqTOsEUa.cjs → parser-vPaKvzLp.cjs} +1 -1
- package/dist/plugin-CxlOHnaa.cjs +69 -0
- package/dist/plugin-VpWRKnmN.mjs +69 -0
- package/dist/{plugin-context-wqHNSZum.mjs → plugin-context-BKK-nfOd.mjs} +1 -1
- package/dist/{plugin-context-C-l90hFt.cjs → plugin-context-BxF88sW4.cjs} +1 -1
- package/dist/{plugin-lifecycle-BAKNKOxd.cjs → plugin-lifecycle-mhRaVBY8.cjs} +1 -1
- package/dist/registry-BbB6NqSv.d.cts +44 -0
- package/dist/registry-CHh8A5as.mjs +6 -0
- package/dist/registry-DLJIooEu.cjs +6 -0
- package/dist/registry-sJqDv0kE.d.mts +44 -0
- package/dist/{resolve-B7vWOd8R.cjs → resolve-BelytNYR.cjs} +1 -1
- package/dist/{resolve-C2kKnk_5.mjs → resolve-C5rT6B21.mjs} +1 -1
- package/dist/{routes-U9L8psZ9.cjs → routes-C0kb4ue6.cjs} +1 -1
- package/dist/{routes-C2nPecwu.cjs → routes-C3_w9fLX.cjs} +1 -1
- package/dist/{routes-BL4y79tb.mjs → routes-C4wrLWwu.mjs} +1 -1
- package/dist/server/index.cjs +1 -1
- package/dist/server/index.d.mts +1 -1
- package/dist/server/index.mjs +1 -1
- package/dist/{config-BoRlz0Ca.d.mts → types-Db6zToZH.d.mts} +83 -32
- package/dist/{config-CTsX_tGM.d.cts → types-o7iZ2BAR.d.cts} +84 -33
- package/dist/virtual-modules-XBiJoTsp.mjs +39 -0
- package/dist/virtual-modules-hndVivLR.cjs +39 -0
- package/package.json +10 -5
- package/src/shared/types.ts +92 -1
- package/dist/config-Ceib-AOH.cjs +0 -7
- package/dist/config-DGLQsy7y.mjs +0 -7
- package/dist/node-BFNCsPs3.mjs +0 -23
- package/dist/node-TpmWEqXM.cjs +0 -23
- package/dist/package-Ca2WSiy2.cjs +0 -6
- package/dist/plugin-CUmUZOLD.mjs +0 -69
- package/dist/plugin-Ds3RLYpy.cjs +0 -69
- package/dist/virtual-modules-Ca5tHk1X.cjs +0 -30
- package/dist/virtual-modules-Dlgt1fP0.mjs +0 -30
- /package/dist/{config-files-BYHDOrKn.mjs → config-files-DfwZ3Wot.mjs} +0 -0
- /package/dist/{config-files-D9cdBMl2.cjs → config-files-ph2ZtHWl.cjs} +0 -0
- /package/dist/{csp-C4LmN1ko.cjs → csp-BiGAG8aF.cjs} +0 -0
- /package/dist/{csp-D6JEOqKh.mjs → csp-D0BOH8ae.mjs} +0 -0
- /package/dist/{generator-BlW45ST7.cjs → generator-BCrZL53x.cjs} +0 -0
- /package/dist/{generator-BwknNejd.mjs → generator-CFukoGa0.mjs} +0 -0
- /package/dist/{handler-CDEoKARD.cjs → handler-Ch-Q9NAB.cjs} +0 -0
- /package/dist/{handler-D7UyZlPm.mjs → handler-Lex5DbvG.mjs} +0 -0
- /package/dist/{index-lFoyzCXy.d.mts → index-HAwIo4nZ.d.mts} +0 -0
- /package/dist/{native-BNCY7PRF.cjs → native-BOet8hpE.cjs} +0 -0
- /package/dist/{native-Di9Fnfrv.mjs → native-BYKMke79.mjs} +0 -0
- /package/dist/{resolve-YdTrt_FG.mjs → resolve-C8AFoOQL.mjs} +0 -0
- /package/dist/{resolve-It1Iug83.cjs → resolve-C9jGArE_.cjs} +0 -0
- /package/dist/{types-generator-DG1GX1EZ.mjs → types-generator-BtZ6-ZKx.mjs} +0 -0
- /package/dist/{types-generator-DDSA93P3.cjs → types-generator-C83Iy6X5.cjs} +0 -0
- /package/dist/{update-check-QnrVR3q1.mjs → update-check-BXD1atVv.mjs} +0 -0
- /package/dist/{update-check-BKqmYfwT.cjs → update-check-DFQZyoSU.cjs} +0 -0
|
@@ -0,0 +1,39 @@
|
|
|
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-D1Md3oWO.cjs`),t=require(`./utils-ej6_SjIZ.cjs`),n=require(`./plugin-context-BxF88sW4.cjs`),r=require(`./routes-C0kb4ue6.cjs`);let i=require(`node:path`);i=e.r(i);let a=require(`node:fs`);a=e.r(a);function o(e){return typeof e==`string`?[e]:Array.isArray(e)?e.flatMap(o):e&&typeof e==`object`?Object.values(e).flatMap(o):[]}const s=new Set([`title`,`description`,`permalink`,`sidebarPosition`,`sidebarLabel`,`sidebarHidden`,`hidden`,`category`,`order`,`badge`,`icon`,`date`,`lastUpdated`,`groupTitle`,`groupPosition`,`seo`]);function c(e){let t=[];for(let n of e){let e=``;n.frontmatter&&(e=o(Object.entries(n.frontmatter).filter(([e])=>!s.has(e)).map(([e,t])=>t)).join(` `));let r=(e?`${n._content||``} ${e}`:n._content||``).slice(0,500);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 l(e){return{path:e.path,filePath:e.filePath,title:e.title,description:e.description||``,sidebarPosition:e.sidebarPosition,badge:e.badge,icon:e.icon,headings:e.headings||[],frontmatter:e.frontmatter,locale:e.locale,version:e.version,tab:e.tab,collection:e.collection,tags:e.tags,author:e.author,draft:e.draft,excerpt:e.excerpt,coverImage:e.coverImage,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,slugParts:e.slugParts}}function u(e){return{routeCacheContext:e,routeGenerationFingerprint:void 0,directoryMetaCache:null,routesDataMap:new Map,collectionsDataMap:new Map,searchDataMap:new Map}}const d=u();function f(e){return e??d}function p(e){let t=f(e);t.directoryMetaCache=null,t.routeGenerationFingerprint=void 0,t.routeCacheVariant=void 0,t.routesDataMap.clear(),t.collectionsDataMap.clear(),t.searchDataMap.clear()}function m(e,t){return(!t.routeCacheContext||t.routeCacheContext.disposed)&&(t.routeCacheContext=r.s(e),t.routeCacheVariant=void 0,t.routeGenerationFingerprint=void 0,t.routesDataMap.clear(),t.collectionsDataMap.clear(),t.searchDataMap.clear()),t.routeCacheContext}async function h(e,t,n,i){let a=f(n),o=m(e,a),s=r.l(t),c=(i?.fingerprint===s&&o.variants.get(s)===i?i:void 0)??r.c(o,s);a.routeCacheVariant=c,a.routeGenerationFingerprint=s;let l=await r.t(e,t,void 0,!1,o,c);a.routesDataMap.clear();for(let e of l)a.routesDataMap.set(e.path,e);g(a)}function g(e){let t=f(e),n=Array.from(t.routesDataMap.values()),r=c(n);t.searchDataMap.clear();for(let e of r)t.searchDataMap.set(e.id,e);t.collectionsDataMap.clear();for(let e of n)if(e.collection){let n={path:e.path,title:e.title,date:e.date,excerpt:e.excerpt,tags:e.tags,author:e.author,coverImage:e.coverImage,filePath:e.filePath,locale:e.locale,version:e.version,frontmatter:e.frontmatter,draft:e.frontmatter?.draft,collection:e.collection};t.collectionsDataMap.set(e.filePath,n)}}async function _(e,t,n){let i=f(n);m(e,i);let a=r.l(t);(i.routesDataMap.size===0||i.routeGenerationFingerprint!==a)&&(i.routesDataMap.clear(),i.collectionsDataMap.clear(),i.searchDataMap.clear(),await h(e,t,i))}function v(e){let t=f(e),n={},r=Array.from(t.collectionsDataMap.values()).sort((e,t)=>{let n=e=>{if(!e)return-1/0;let t=new Date(e).getTime();return Number.isFinite(t)?t:-1/0},r=n(e.date),i=n(t.date)-r;return i===0?e.path.localeCompare(t.path):i});for(let e of r){let t=e.collection;t&&(n[t]||(n[t]=[]),n[t].push(e))}return n}function y(e,t=e=>e){let n=Array.from(e.values(),t).sort((e,t)=>{let n=e=>{if(typeof e!=`object`||!e)return String(e);let t=e;return`${String(t.path||``)}\u0000${String(t.id||``)}\u0000${String(t.filePath||``)}`};return n(e).localeCompare(n(t))});return`export default ${JSON.stringify(n)};`}function b(e){return Array.from(f(e).searchDataMap.values()).sort((e,t)=>e.id.localeCompare(t.id))}function x(e){return`export default ${JSON.stringify(e)};`}async function S(e,t,n,i,a){let o=f(n);i&&(o.routeCacheContext=i),a&&(o.routeCacheVariant=a);let s=r.l(t);o.routeGenerationFingerprint!==s&&(o.routesDataMap.clear(),o.collectionsDataMap.clear(),o.searchDataMap.clear());let c=new Map(o.routesDataMap),u=new Map(o.collectionsDataMap),d=new Map(o.searchDataMap);await h(e,t,o);let p={routes:{updated:[],deleted:[]},collections:{updated:[],deleted:[]},search:{updated:[],deleted:[]}};for(let[e,t]of o.routesDataMap){let n=c.get(e);(!n||JSON.stringify(n)!==JSON.stringify(t))&&p.routes.updated.push(l(t))}for(let e of c.keys())o.routesDataMap.has(e)||p.routes.deleted.push(e);for(let[e,t]of o.collectionsDataMap){let n=u.get(e);(!n||JSON.stringify(n)!==JSON.stringify(t))&&p.collections.updated.push(t)}for(let e of u.keys())o.collectionsDataMap.has(e)||p.collections.deleted.push(e);for(let[e,t]of o.searchDataMap){let n=d.get(e);(!n||JSON.stringify(n)!==JSON.stringify(t))&&p.search.updated.push(t)}for(let e of d.keys())o.searchDataMap.has(e)||p.search.deleted.push(e);return p}function C(e,r,o,s,c,u){let d=c?.virtualModuleRegistry??n.h,p=f(u);return{name:`vite-plugin-boltdocs-virtual-modules`,resolveId(e){if(o()?.root||process.cwd(),e.includes(`boltdocs-entry`)||e===`virtual:boltdocs-entry`||e===`boltdocs/entry`||e===`boltdocs-entry`||e===`\0virtual:boltdocs-entry`||e===`\0virtual:boltdocs-entry.tsx`)return`\0virtual:boltdocs-entry.tsx`;if(e.includes(`boltdocs-client`)||e===`virtual:boltdocs-client`||e===`boltdocs/client`||e===`boltdocs-client`||e===`\0virtual:boltdocs-client.mjs`)return`\0virtual:boltdocs-client.mjs`;if(e.startsWith(`\0`)){let t=e.slice(1);if(!t.startsWith(`virtual:boltdocs-`)&&d?.has(t))return e}else if(!e.startsWith(`virtual:boltdocs-`)&&d?.has(e))return`\0`+e;return e.startsWith(`virtual:boltdocs-`)?`\0`+e:e.startsWith(`\0virtual:boltdocs-`)?e:null},async load(c,u){let f=r(),m=c.startsWith(`\0`)?c.slice(1):c;if(!m.includes(`boltdocs-entry.tsx`)&&!m.includes(`boltdocs-client.mjs`)&&!m.startsWith(`virtual:boltdocs-`)&&d?.has(m)){let e=d?.get(m);if(!e)return null;try{let t=await e.loader();if(typeof t!=`string`)throw Error(`[boltdocs] Plugin virtual module '${m}' loader must return a string source code, got ${typeof t}.`);return t}catch(e){throw Error(`[boltdocs] Plugin virtual module '${m}' failed to load: ${e instanceof Error?e.message:String(e)}`)}}if(c.includes(`boltdocs-entry.tsx`)||c===`\0virtual:boltdocs-entry`){let t=this.environment?.config?.consumer,r=o(),i=t===void 0?!!r?.build?.ssr:t!==`client`;return n.g({...e,ssr:i,useCompiledPages:r?.command===`build`},f)}if(c.includes(`boltdocs-client.mjs`)||c===`\0virtual:boltdocs-client.ts`||c===`virtual:boltdocs-client`){let e=__dirname,n=e;for(;e!==i.default.parse(e).root;){if(a.default.existsSync(i.default.join(e,`package.json`))&&JSON.parse(a.default.readFileSync(i.default.join(e,`package.json`),`utf-8`)).name===`boltdocs`){n=e;break}e=i.default.dirname(e)}let r=i.default.join(n,`src/client/index.ts`),o=i.default.join(n,`dist/client/index.js`);return`export * from '${t.u(a.default.existsSync(r)?r:o)}';`}if(!c.startsWith(`\0virtual:boltdocs-`))return;let h=c.replace(`\0virtual:boltdocs-`,``).replace(/\.tsx?$/,``);if(h===`routes`)return await _(s,f,p),y(p.routesDataMap,l);if(h===`collections`)return await _(s,f,p),x(v(p));if(h===`config`){await _(s,f,p);let e=p.routeCacheVariant?.directoryMeta||{};p.directoryMetaCache=e;let t=[...new Set(Array.from(p.routesDataMap.values()).map(e=>e.collection).filter(e=>!!e))].sort((e,t)=>e.localeCompare(t)),n=f?.collections,r=n?{...n,labels:{...n.labels||{},...Object.fromEntries(t.map(e=>[e,n.labels?.[e]??e]))}}:t.length>0?t:void 0,i={base:f?.base,theme:f?.theme,i18n:f?.i18n,versions:f?.versions,siteUrl:f?.siteUrl,integrations:f?.integrations,collections:r,seo:f?.seo,experimental:f?.experimental,plugins:f?.plugins?.map(e=>({name:e.name})),directoryMeta:e};return`export default ${JSON.stringify(i,null,2)};`}if(h===`entry`){let t=this,r=o(),i=t.environment?.config?.consumer,a=i===void 0?!!(u?.ssr??r?.build?.ssr):i!==`client`;return n.g({...e,ssr:a,useCompiledPages:r?.command===`build`},f)}if(h===`mdx-components`){let e=[`tsx`,`ts`,`jsx`,`js`],n=null;for(let t of e){let e=i.default.resolve(s,`mdx-components.${t}`);if(a.default.existsSync(e)){n=e;break}}let r={};if(f?.plugins)for(let e of f.plugins)e.components&&Object.assign(r,e.components);let o=Object.entries(r),c=o.map(([e,t],n)=>`import * as _pluginCompMod_${n} from '${t}';`).join(`
|
|
7
|
+
`),l=o.map(([e],t)=>`${JSON.stringify(e)}: _pluginCompMod_${t}[${JSON.stringify(e)}] || _pluginCompMod_${t}["default"] || _pluginCompMod_${t}`).join(`,
|
|
8
|
+
`);if(n){let e=t.u(n);return`${c}
|
|
9
|
+
import * as components from '${e}';
|
|
10
|
+
const userMdxComponents = components.default || components;
|
|
11
|
+
const mdxComponents = {
|
|
12
|
+
${l}${l?`,`:``}
|
|
13
|
+
...userMdxComponents,
|
|
14
|
+
};
|
|
15
|
+
export default mdxComponents;
|
|
16
|
+
export * from '${e}';`}return`${c}
|
|
17
|
+
const mdxComponents = {
|
|
18
|
+
${l}
|
|
19
|
+
};
|
|
20
|
+
export default mdxComponents;`}if(h===`layout`){let e=[`tsx`,`jsx`],n=null;for(let t of e){let e=i.default.resolve(s,`layout.${t}`);if(a.default.existsSync(e)){n=e;break}}if(n)return`import UserLayout from '${t.u(n)}';
|
|
21
|
+
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(h===`icons`){let e=[`tsx`,`jsx`,`ts`,`js`],n=null;for(let t of e){let e=i.default.resolve(s,`icons.${t}`);if(a.default.existsSync(e)){n=e;break}}return n?`import * as icons from '${t.u(n)}';\nexport default icons;`:`export default {};`}if(h===`search`)return await _(s,f,p),`export default async function fetchSearchData(options = {}) {
|
|
22
|
+
const base = import.meta.env.BASE_URL || '/';
|
|
23
|
+
const origin = typeof window !== 'undefined' ? window.location.origin : 'http://localhost';
|
|
24
|
+
const basePath = base.endsWith('/') ? base : base + '/';
|
|
25
|
+
const url = new URL('search.json', new URL(basePath, origin));
|
|
26
|
+
if (options.bustCache) url.searchParams.set('t', String(Date.now()));
|
|
27
|
+
const res = await fetch(url, { cache: options.bustCache ? 'no-store' : 'default' });
|
|
28
|
+
if (!res.ok) throw new Error('Failed to fetch search index');
|
|
29
|
+
return res.json();
|
|
30
|
+
}`;if(h===`page-source`){await _(s,f,p);let e={};for(let t of p.routesDataMap.values())t.path&&t._rawContent&&(e[t.path]=t._rawContent);return`export default async function fetchPageSource(options = {}) {
|
|
31
|
+
const base = import.meta.env.BASE_URL || '/';
|
|
32
|
+
const origin = typeof window !== 'undefined' ? window.location.origin : 'http://localhost';
|
|
33
|
+
const basePath = base.endsWith('/') ? base : base + '/';
|
|
34
|
+
const url = new URL('page-source.json', new URL(basePath, origin));
|
|
35
|
+
if (options.bustCache) url.searchParams.set('t', String(Date.now()));
|
|
36
|
+
const res = await fetch(url, { cache: options.bustCache ? 'no-store' : 'default' });
|
|
37
|
+
if (!res.ok) throw new Error('Failed to fetch page source');
|
|
38
|
+
return res.json();
|
|
39
|
+
}`}if(h===`client`){let e=__dirname,n=``;for(;e&&e!==i.default.parse(e).root;){let r=i.default.join(e,`src/client/index.ts`),o=i.default.join(e,`dist/client/index.mjs`),s=i.default.join(e,`client/index.ts`);if(a.default.existsSync(r)){n=t.u(r);break}if(a.default.existsSync(o)){n=t.u(o);break}if(a.default.existsSync(s)){n=t.u(s);break}e=i.default.dirname(e)}if(!n)throw Error(`[boltdocs] Could not resolve boltdocs/client entry point starting from ${__dirname}`);return`export * from '${n}';`}}}}exports.computeFrontmatterDelta=S,exports.createVirtualModuleState=u,exports.createVirtualModulesPlugin=C,exports.getSearchDataExport=b,exports.invalidateDirectoryMetaCache=p;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "boltdocs",
|
|
3
|
-
"version": "3.3.
|
|
3
|
+
"version": "3.3.3",
|
|
4
4
|
"description": "A lightweight documentation generator for React projects.",
|
|
5
5
|
"main": "dist/node/index.mjs",
|
|
6
6
|
"module": "dist/node/index.mjs",
|
|
@@ -27,6 +27,11 @@
|
|
|
27
27
|
"import": "./dist/node/cache.mjs",
|
|
28
28
|
"require": "./dist/node/cache.cjs"
|
|
29
29
|
},
|
|
30
|
+
"./node/highlight": {
|
|
31
|
+
"types": "./dist/node/highlight.d.ts",
|
|
32
|
+
"import": "./dist/node/highlight.mjs",
|
|
33
|
+
"require": "./dist/node/highlight.cjs"
|
|
34
|
+
},
|
|
30
35
|
"./node/mdx/shiki-adapter": {
|
|
31
36
|
"types": "./dist/node/mdx/shiki-adapter.d.ts",
|
|
32
37
|
"import": "./dist/node/mdx/shiki-adapter.mjs",
|
|
@@ -102,11 +107,11 @@
|
|
|
102
107
|
"tailwind-merge": "3.5.0",
|
|
103
108
|
"vite": "8.1.5",
|
|
104
109
|
"zod": "4.3.6",
|
|
105
|
-
"@bdocs/parser": "1.2.0",
|
|
106
110
|
"@bdocs/plugin-image-optimizer": "0.2.2",
|
|
107
|
-
"@bdocs/
|
|
108
|
-
"@bdocs/processor-satteri": "0.3.
|
|
109
|
-
"@bdocs/ssg": "0.4.
|
|
111
|
+
"@bdocs/parser": "1.2.0",
|
|
112
|
+
"@bdocs/processor-satteri": "0.3.2",
|
|
113
|
+
"@bdocs/ssg": "0.4.2",
|
|
114
|
+
"@bdocs/unist-utils": "0.2.1"
|
|
110
115
|
},
|
|
111
116
|
"peerDependencies": {
|
|
112
117
|
"react": "19.0.0",
|
package/src/shared/types.ts
CHANGED
|
@@ -130,7 +130,93 @@ export interface BoltdocsThemeConfig {
|
|
|
130
130
|
text: string | Record<string, string>
|
|
131
131
|
icon?: string
|
|
132
132
|
}>
|
|
133
|
-
|
|
133
|
+
/**
|
|
134
|
+
* Legacy alias for `codeHighlighting.theme`. Kept for backwards
|
|
135
|
+
* compatibility — prefer `codeHighlighting`.
|
|
136
|
+
* @deprecated Use `codeHighlighting` instead.
|
|
137
|
+
*/
|
|
138
|
+
codeTheme?: CodeTheme
|
|
139
|
+
/**
|
|
140
|
+
* Configures the markdown code highlighting engine. The engine is
|
|
141
|
+
* engine-agnostic: `engine` accepts a registry id (`'shiki'` by default),
|
|
142
|
+
* an adapter instance, or an adapter factory — so any highlighter can be
|
|
143
|
+
* plugged in without changes to the core.
|
|
144
|
+
*
|
|
145
|
+
* Shorthand: a plain string is a registry id, i.e. `'shiki'` is
|
|
146
|
+
* equivalent to `{ engine: 'shiki' }` (resolved by
|
|
147
|
+
* `normalizeCodeHighlightConfig()` at every read site).
|
|
148
|
+
*/
|
|
149
|
+
codeHighlighting?: CodeHighlightConfig | string
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
/**
|
|
153
|
+
* An engine-agnostic theme: either a single theme name or a light/dark pair.
|
|
154
|
+
*/
|
|
155
|
+
export type CodeTheme = string | { light: string; dark: string }
|
|
156
|
+
|
|
157
|
+
/**
|
|
158
|
+
* Runtime produced by a {@link CodeHighlighterAdapter} after initialization.
|
|
159
|
+
*/
|
|
160
|
+
export interface CodeHighlighterRuntime {
|
|
161
|
+
codeToHast(code: string, options: Record<string, unknown>): unknown
|
|
162
|
+
codeToHtml(code: string, options: Record<string, unknown>): Promise<string>
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
/**
|
|
166
|
+
* The SPI every highlighting engine must implement. Build the highlighter
|
|
167
|
+
* lazily via {@link CodeHighlighterAdapter.initialize} (never on module load)
|
|
168
|
+
* so unused engines cost nothing and the core stays engine-agnostic.
|
|
169
|
+
*/
|
|
170
|
+
export interface CodeHighlighterAdapter {
|
|
171
|
+
/** Registry id, emitted as `data-code-engine` on rendered `<pre>` blocks. */
|
|
172
|
+
name: string
|
|
173
|
+
version?: string
|
|
174
|
+
/** Assemble engine options for a code block (theme, transformers, meta...). */
|
|
175
|
+
getOptions(lang: string, meta: ParsedMetaLike): Record<string, unknown>
|
|
176
|
+
/** Create (or reuse) the highlighter runtime for this adapter. */
|
|
177
|
+
initialize(): Promise<CodeHighlighterRuntime>
|
|
178
|
+
/** Ensure a language grammar/capability is loaded before rendering. */
|
|
179
|
+
ensureLanguage?(lang: string): Promise<boolean>
|
|
180
|
+
/** Warm the highlighter off the critical path (background, never awaited). */
|
|
181
|
+
prewarm?(options?: Record<string, unknown>): void | Promise<void>
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
/**
|
|
185
|
+
* Minimal structural view of `ParsedMeta` so `shared/types.ts` (bundled to
|
|
186
|
+
* the client) does not depend on `@bdocs/unist-utils`. The framework's
|
|
187
|
+
* canonical implementation lives in `@bdocs/unist-utils`.
|
|
188
|
+
*/
|
|
189
|
+
export interface ParsedMetaLike {
|
|
190
|
+
title?: string
|
|
191
|
+
lineNumbers?: boolean
|
|
192
|
+
wordWrap?: boolean
|
|
193
|
+
__raw?: string
|
|
194
|
+
[key: string]: unknown
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
/**
|
|
198
|
+
* How to select a highlighting engine:
|
|
199
|
+
* - `string` → registry id (e.g. `'shiki'`, or a plugin-provided engine name)
|
|
200
|
+
* - `CodeHighlighterAdapter` → used directly
|
|
201
|
+
* - `() => CodeHighlighterAdapter | Promise<...>` → factory resolved on demand
|
|
202
|
+
*/
|
|
203
|
+
export type CodeHighlighterEngine =
|
|
204
|
+
| string
|
|
205
|
+
| CodeHighlighterAdapter
|
|
206
|
+
| ((
|
|
207
|
+
api: CodeHighlightConfig,
|
|
208
|
+
) => CodeHighlighterAdapter | Promise<CodeHighlighterAdapter>)
|
|
209
|
+
|
|
210
|
+
/**
|
|
211
|
+
* Engine-agnostic configuration for markdown code highlighting.
|
|
212
|
+
*/
|
|
213
|
+
export interface CodeHighlightConfig {
|
|
214
|
+
/** Engine selector. Defaults to the built-in `'shiki'` engine. */
|
|
215
|
+
engine?: CodeHighlighterEngine
|
|
216
|
+
/** Single theme name or a light/dark pair. */
|
|
217
|
+
theme?: CodeTheme
|
|
218
|
+
/** Engine-specific options (e.g. `{ regexEngine: 'oniguruma' | 'javascript' }` for Shiki). */
|
|
219
|
+
options?: Record<string, unknown>
|
|
134
220
|
}
|
|
135
221
|
|
|
136
222
|
/**
|
|
@@ -958,6 +1044,11 @@ export interface BoltdocsIntegrationsConfig {
|
|
|
958
1044
|
export interface BoltdocsSsgConfig {
|
|
959
1045
|
/** Critical CSS strategy; `none` disables critical CSS processing. */
|
|
960
1046
|
criticalCss?: 'zig-critters' | 'beasties' | 'none'
|
|
1047
|
+
/**
|
|
1048
|
+
* Per-page budget (bytes) for inlined critical CSS. Pages exceeding it get
|
|
1049
|
+
* no inline critical CSS (with a build warning). Default: 24576 (24KB).
|
|
1050
|
+
*/
|
|
1051
|
+
criticalCssMaxSize?: number
|
|
961
1052
|
}
|
|
962
1053
|
|
|
963
1054
|
/**
|
package/dist/config-Ceib-AOH.cjs
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
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-D1Md3oWO.cjs`),t=require(`./errors-vKw8CkiX.cjs`),n=require(`./config-files-D9cdBMl2.cjs`);let r=require(`node:path`);r=e.r(r);let i=require(`node:fs`);i=e.r(i);let a=require(`node:crypto`);a=e.r(a);let o=require(`zod`),s=require(`@bdocs/dui`);function c(e){return e}const l=o.z.object({icon:o.z.string().max(50),link:o.z.string().url()}),u=o.z.object({processor:o.z.enum([`satteri`]).default(`satteri`)}),d=o.z.object({name:o.z.string(),enforce:o.z.enum([`pre`,`post`]).optional(),version:o.z.string().optional(),boltdocsVersion:o.z.string().optional(),clientEntry:o.z.string().optional(),remarkPlugins:o.z.array(o.z.unknown()).optional(),rehypePlugins:o.z.array(o.z.unknown()).optional(),vitePlugins:o.z.array(o.z.unknown()).optional(),components:o.z.record(o.z.string(),o.z.string()).optional(),metadata:o.z.record(o.z.string(),o.z.unknown()).optional(),css:o.z.object({cssFiles:o.z.array(o.z.string()).optional(),headStyles:o.z.array(o.z.string()).optional(),postcssPlugins:o.z.array(o.z.unknown()).optional(),preprocessorOptions:o.z.record(o.z.string(),o.z.unknown()).optional()}).optional(),middleware:o.z.array(o.z.object({name:o.z.string().optional(),enforce:o.z.enum([`pre`,`post`]).optional()}).passthrough()).optional(),hooks:o.z.record(o.z.string(),o.z.unknown()).optional()}),f=o.z.object({title:o.z.union([o.z.string(),o.z.record(o.z.string(),o.z.string())]).optional(),description:o.z.union([o.z.string(),o.z.record(o.z.string(),o.z.string())]).optional(),logo:o.z.union([o.z.string(),o.z.object({dark:o.z.string(),light:o.z.string(),alt:o.z.string().optional(),width:o.z.number().optional(),height:o.z.number().optional()})]).optional(),navbar:o.z.array(o.z.object({label:o.z.union([o.z.string(),o.z.record(o.z.string(),o.z.string())]),href:o.z.string(),items:o.z.array(o.z.object({label:o.z.union([o.z.string(),o.z.record(o.z.string(),o.z.string())]),href:o.z.string()})).optional()})).optional(),sidebar:o.z.record(o.z.string(),o.z.array(o.z.object({text:o.z.string(),link:o.z.string()}))).optional(),sidebarGroups:o.z.record(o.z.string(),o.z.object({title:o.z.union([o.z.string(),o.z.record(o.z.string(),o.z.string())]).optional(),icon:o.z.string().optional()})).optional(),socialLinks:o.z.array(l).optional(),editLink:o.z.string().refine(e=>!e||e.includes(`:path`),{message:`editLink must contain ':path' placeholder if specified`}).optional(),communityHelp:o.z.string().url().optional(),version:o.z.string().max(50).optional(),githubRepo:o.z.string().max(100).optional(),favicon:o.z.string().optional(),tabs:o.z.array(o.z.object({id:o.z.string(),text:o.z.union([o.z.string(),o.z.record(o.z.string(),o.z.string())]),icon:o.z.string().optional()})).optional(),codeTheme:o.z.union([o.z.string(),o.z.object({light:o.z.string(),dark:o.z.string()})]).optional()}),p=o.z.union([o.z.string(),o.z.object({rules:o.z.array(o.z.object({userAgent:o.z.string(),allow:o.z.union([o.z.string(),o.z.array(o.z.string())]).optional(),disallow:o.z.union([o.z.string(),o.z.array(o.z.string())]).optional()})).optional(),sitemaps:o.z.array(o.z.string().url()).optional()})]),m=o.z.object({defaultLocale:o.z.string(),locales:o.z.union([o.z.record(o.z.string(),o.z.string()),o.z.array(o.z.string())]).transform(e=>Array.isArray(e)?Object.fromEntries(e.map(e=>[e,e])):e),localeConfigs:o.z.record(o.z.string(),o.z.object({label:o.z.string().optional(),direction:o.z.enum([`ltr`,`rtl`]).optional(),htmlLang:o.z.string().optional(),calendar:o.z.string().optional()})).optional()}),h=o.z.object({defaultVersion:o.z.string(),prefix:o.z.string().optional(),versions:o.z.array(o.z.object({label:o.z.string(),path:o.z.string()}))}),g=o.z.object({headers:o.z.record(o.z.string(),o.z.string()).optional(),enableCSP:o.z.boolean().optional(),customHeaders:o.z.record(o.z.string(),o.z.string()).optional()}),_=o.z.object({google:o.z.string().optional(),bing:o.z.string().optional(),yandex:o.z.string().optional(),pinterest:o.z.string().optional(),facebook:o.z.string().optional()}),v=o.z.lazy(()=>o.z.union([o.z.string(),o.z.number(),o.z.boolean(),o.z.null(),o.z.array(v),o.z.record(o.z.string(),v)])),y=o.z.union([o.z.record(o.z.string(),v),o.z.array(o.z.record(o.z.string(),v))]),b=o.z.object({metatags:o.z.record(o.z.string(),o.z.string()).optional(),indexing:o.z.enum([`all`,`public`]).optional(),thumbnails:o.z.object({background:o.z.string().optional()}).optional(),verification:_.optional(),structuredData:y.optional()}),x=o.z.object({viewTransitions:o.z.union([o.z.boolean(),o.z.object({enabled:o.z.boolean().optional(),types:o.z.array(o.z.string()).optional()})]).optional(),fileRouting:o.z.boolean().optional()}),S=o.z.object({measurementId:o.z.string().min(1,`Measurement ID is required for GA4`),debug:o.z.boolean().optional(),anonymizeIp:o.z.boolean().optional(),sendPageView:o.z.boolean().optional(),cookieFlags:o.z.string().optional(),autoTrack:o.z.object({pageViews:o.z.boolean().optional(),downloads:o.z.boolean().optional(),externalLinks:o.z.boolean().optional(),search:o.z.boolean().optional()}).optional()}),C=o.z.object({tagId:o.z.string().min(1,`Tag ID is required for GTM`),dataLayerName:o.z.string().optional(),preview:o.z.string().optional()}),w=o.z.object({appId:o.z.string().min(1,`Algolia App ID is required`),apiKey:o.z.string().min(1,`Algolia API Key is required`),indexName:o.z.string().min(1,`Algolia Index Name is required`)}),T=o.z.object({repo:o.z.string().min(1,`Giscus repository is required`),repoId:o.z.string().min(1,`Giscus repository ID is required`),category:o.z.string().optional(),categoryId:o.z.string().optional(),mapping:o.z.enum([`pathname`,`url`,`title`,`og:title`,`specific`,`number`]).optional(),strict:o.z.union([o.z.enum([`0`,`1`]),o.z.boolean()]).optional(),reactionsEnabled:o.z.union([o.z.enum([`0`,`1`]),o.z.boolean()]).optional(),emitMetadata:o.z.union([o.z.enum([`0`,`1`]),o.z.boolean()]).optional(),inputPosition:o.z.enum([`top`,`bottom`]).optional(),theme:o.z.string().optional(),darkTheme:o.z.string().optional(),lang:o.z.string().optional(),loading:o.z.enum([`lazy`,`eager`]).optional()}),E=o.z.object({enabled:o.z.boolean(),owner:o.z.string().min(1,`GitHub owner is required`),repo:o.z.string().min(1,`GitHub repository name is required`),categorySlug:o.z.string().optional(),endpoint:o.z.string().optional()}),D=o.z.object({analytics:o.z.boolean().optional(),speedInsights:o.z.boolean().optional()}),O=o.z.object({apiKey:o.z.string().min(1,`API key is required for PostHog`),host:o.z.string().url().optional(),capturePageview:o.z.boolean().optional(),capturePageleave:o.z.boolean().optional(),sessionRecording:o.z.boolean().optional(),autocapture:o.z.boolean().optional()}),k=o.z.object({ga4:S.optional(),gtm:C.optional(),vercel:D.optional(),posthog:O.optional()}),A=o.z.object({algolia:w.optional()}),j=o.z.object({giscus:T.optional(),custom:E.optional()}),M=o.z.object({analytics:k.optional(),search:A.optional(),feedback:j.optional()}),N=o.z.object({criticalCss:o.z.enum([`zig-critters`,`beasties`,`none`]).optional()}),P=o.z.object({labels:o.z.record(o.z.string(),o.z.union([o.z.string(),o.z.record(o.z.string(),o.z.string())])).optional(),positions:o.z.record(o.z.string(),o.z.number()).optional(),postsPerPage:o.z.number().int().positive().optional(),defaultCollection:o.z.string().optional(),dateFormat:o.z.string().optional(),sortBy:o.z.enum([`date`,`title`,`sidebarPosition`]).optional()}),F=o.z.object({visible:o.z.boolean().optional(),environments:o.z.array(o.z.string()).optional()}),I=o.z.object({turbo:o.z.boolean().optional(),siteUrl:o.z.string().url().optional(),docsDir:o.z.string().optional(),base:o.z.string().optional(),theme:f.optional(),i18n:m.optional(),versions:h.optional(),mdx:u.optional(),ssg:N.optional(),plugins:o.z.array(d).optional(),collections:P.optional(),robots:p.optional(),security:g.optional(),seo:b.optional(),integrations:M.optional(),drafts:F.optional(),experimental:x.optional(),aliases:o.z.custom().optional(),featureFlags:o.z.record(o.z.string(),o.z.union([o.z.boolean(),o.z.string()])).optional(),vite:o.z.custom().optional()}),L=new Map;function R(e,t,n,r){return`${e}::${t}::${n}::${r}`}function z(e){return r.default.join(e,`.boltdocs`,`cache`,`config.json`)}function B(e,t,n,r,i){return a.default.createHash(`sha256`).update(`${e}:${t}:${n}:${r}:${i}`).digest(`hex`)}function V(e,t,n){let a=z(e);if(!i.default.existsSync(a))return null;try{let o=i.default.readFileSync(a,`utf-8`),s=JSON.parse(o),c=r.default.resolve(e,s.filename);if(!i.default.existsSync(c))return null;let l=i.default.statSync(c);if(B(s.filename,l.mtimeMs,l.size,t,n)!==B(s.filename,s.mtimeMs,s.size,s.command,s.mode))return null;let u=I.safeParse(s.config);return u.success?{config:u.data,configFile:c}:null}catch{return null}}function H(e,t,n,a,o,s,c){try{let l=z(e);i.default.mkdirSync(r.default.dirname(l),{recursive:!0});let u={filename:t,mtimeMs:n,size:a,command:o,mode:s,config:{...c,plugins:[]}};i.default.writeFileSync(l,JSON.stringify(u),`utf-8`)}catch(e){process.env.BOLTDOCS_DEBUG===`true`&&console.warn(`[boltdocs] Failed to write config cache:`,e)}}async function U(e,t){let{createJiti:n}=await import(`jiti`),r=await n(t,{interopDefault:!0}).import(e);return r.default??r.config??r}async function W(e,a=process.cwd(),o=`serve`,c=`development`){let l=a,u=R(e,l,o,c);{let e=L.get(u);if(e)return e}let d=V(l,o,c);if(d){try{let e=await U(d.configFile,l);e?.plugins&&(d.config.plugins=e.plugins)}catch{}return L.set(u,d.config),d.config}let f={docsDir:r.default.resolve(l,e),theme:{title:`Boltdocs`,description:`A Vite documentation framework`,navbar:[{label:`Home`,href:`/`},{label:`Documentation`,href:`/docs`}],codeTheme:{light:`github-light`,dark:`github-dark`}}},p={},m=null;for(let e of n.t){let t=r.default.resolve(l,e);if(i.default.existsSync(t))try{let n;try{n=await U(t,l)}catch(r){process.env.BOLTDOCS_DEBUG===`true`&&console.warn(`[boltdocs] jiti config load failed for ${e}, falling back to Vite: ${r instanceof Error?r.message:String(r)}`);let{loadConfigFromFile:i}=await import(`vite`);n=(await i({command:o,mode:c},t,l))?.config}if(n){p=n;let r=i.default.statSync(t);m={filename:e,mtimeMs:r.mtimeMs,size:r.size};break}}catch(t){t instanceof Error&&(console.error(`\x1b[31m[boltdocs] ✖ Failed to load config from ${e}: ${t.message}\x1b[0m`),(0,s.warn)(`Failed to load config from ${e}: ${t.message}`))}}let h={title:p.title,description:p.description,logo:p.logo,favicon:p.favicon,navbar:p.navbar,sidebar:p.sidebar,sidebarGroups:p.theme?.sidebarGroups,socialLinks:p.socialLinks,githubRepo:p.githubRepo,tabs:p.tabs,codeTheme:p.codeTheme,communityHelp:p.communityHelp,version:p.version,editLink:p.editLink,...p.theme||{}},g=Object.fromEntries(Object.entries(h).filter(([e,t])=>t!==void 0));g.navbar&&=g.navbar.map(e=>({label:e.label||``,href:e.href||``,items:e.items}));let _={docsDir:r.default.resolve(l,p.docsDir||e),theme:{...f.theme,...g},i18n:p.i18n?{...p.i18n,locales:Array.isArray(p.i18n.locales)?Object.fromEntries(p.i18n.locales.map(e=>[e,e])):p.i18n.locales}:void 0,versions:p.versions,siteUrl:p.siteUrl,base:p.base,ssg:p.ssg,seo:p.seo,plugins:p.plugins||[],robots:p.robots,security:p.security,integrations:p.integrations,experimental:p.experimental,featureFlags:p.featureFlags,aliases:p.aliases,drafts:p.drafts,collections:p.collections,vite:p.vite},v=I.safeParse(_);if(!v.success)throw new t.r(`Invalid Boltdocs configuration:\n${v.error.issues.map(e=>` - ${e.path.join(`.`)}: ${e.message}`).join(`
|
|
7
|
-
`)}`);let y=v.data;return m&&H(l,m.filename,m.mtimeMs,m.size,o,c,y),L.set(u,y),y}Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return W}});
|
package/dist/config-DGLQsy7y.mjs
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Boltdocs - https://boltdocs.vercel.app
|
|
3
|
-
* Copyright (c) 2026 Jesus Alcala
|
|
4
|
-
* Licensed under the MIT License.
|
|
5
|
-
*/
|
|
6
|
-
import{t as e}from"./chunk-BFSpntXv.mjs";import{r as t}from"./errors-N-b6Sn2G.mjs";import{t as n}from"./config-files-BYHDOrKn.mjs";import r from"node:path";import i from"node:fs";import a from"node:crypto";import{z as o}from"zod";import{warn as s}from"@bdocs/dui";function c(e){return e}const l=o.object({icon:o.string().max(50),link:o.string().url()}),u=o.object({processor:o.enum([`satteri`]).default(`satteri`)}),d=o.object({name:o.string(),enforce:o.enum([`pre`,`post`]).optional(),version:o.string().optional(),boltdocsVersion:o.string().optional(),clientEntry:o.string().optional(),remarkPlugins:o.array(o.unknown()).optional(),rehypePlugins:o.array(o.unknown()).optional(),vitePlugins:o.array(o.unknown()).optional(),components:o.record(o.string(),o.string()).optional(),metadata:o.record(o.string(),o.unknown()).optional(),css:o.object({cssFiles:o.array(o.string()).optional(),headStyles:o.array(o.string()).optional(),postcssPlugins:o.array(o.unknown()).optional(),preprocessorOptions:o.record(o.string(),o.unknown()).optional()}).optional(),middleware:o.array(o.object({name:o.string().optional(),enforce:o.enum([`pre`,`post`]).optional()}).passthrough()).optional(),hooks:o.record(o.string(),o.unknown()).optional()}),f=o.object({title:o.union([o.string(),o.record(o.string(),o.string())]).optional(),description:o.union([o.string(),o.record(o.string(),o.string())]).optional(),logo:o.union([o.string(),o.object({dark:o.string(),light:o.string(),alt:o.string().optional(),width:o.number().optional(),height:o.number().optional()})]).optional(),navbar:o.array(o.object({label:o.union([o.string(),o.record(o.string(),o.string())]),href:o.string(),items:o.array(o.object({label:o.union([o.string(),o.record(o.string(),o.string())]),href:o.string()})).optional()})).optional(),sidebar:o.record(o.string(),o.array(o.object({text:o.string(),link:o.string()}))).optional(),sidebarGroups:o.record(o.string(),o.object({title:o.union([o.string(),o.record(o.string(),o.string())]).optional(),icon:o.string().optional()})).optional(),socialLinks:o.array(l).optional(),editLink:o.string().refine(e=>!e||e.includes(`:path`),{message:`editLink must contain ':path' placeholder if specified`}).optional(),communityHelp:o.string().url().optional(),version:o.string().max(50).optional(),githubRepo:o.string().max(100).optional(),favicon:o.string().optional(),tabs:o.array(o.object({id:o.string(),text:o.union([o.string(),o.record(o.string(),o.string())]),icon:o.string().optional()})).optional(),codeTheme:o.union([o.string(),o.object({light:o.string(),dark:o.string()})]).optional()}),p=o.union([o.string(),o.object({rules:o.array(o.object({userAgent:o.string(),allow:o.union([o.string(),o.array(o.string())]).optional(),disallow:o.union([o.string(),o.array(o.string())]).optional()})).optional(),sitemaps:o.array(o.string().url()).optional()})]),m=o.object({defaultLocale:o.string(),locales:o.union([o.record(o.string(),o.string()),o.array(o.string())]).transform(e=>Array.isArray(e)?Object.fromEntries(e.map(e=>[e,e])):e),localeConfigs:o.record(o.string(),o.object({label:o.string().optional(),direction:o.enum([`ltr`,`rtl`]).optional(),htmlLang:o.string().optional(),calendar:o.string().optional()})).optional()}),h=o.object({defaultVersion:o.string(),prefix:o.string().optional(),versions:o.array(o.object({label:o.string(),path:o.string()}))}),g=o.object({headers:o.record(o.string(),o.string()).optional(),enableCSP:o.boolean().optional(),customHeaders:o.record(o.string(),o.string()).optional()}),_=o.object({google:o.string().optional(),bing:o.string().optional(),yandex:o.string().optional(),pinterest:o.string().optional(),facebook:o.string().optional()}),v=o.lazy(()=>o.union([o.string(),o.number(),o.boolean(),o.null(),o.array(v),o.record(o.string(),v)])),y=o.union([o.record(o.string(),v),o.array(o.record(o.string(),v))]),b=o.object({metatags:o.record(o.string(),o.string()).optional(),indexing:o.enum([`all`,`public`]).optional(),thumbnails:o.object({background:o.string().optional()}).optional(),verification:_.optional(),structuredData:y.optional()}),x=o.object({viewTransitions:o.union([o.boolean(),o.object({enabled:o.boolean().optional(),types:o.array(o.string()).optional()})]).optional(),fileRouting:o.boolean().optional()}),S=o.object({measurementId:o.string().min(1,`Measurement ID is required for GA4`),debug:o.boolean().optional(),anonymizeIp:o.boolean().optional(),sendPageView:o.boolean().optional(),cookieFlags:o.string().optional(),autoTrack:o.object({pageViews:o.boolean().optional(),downloads:o.boolean().optional(),externalLinks:o.boolean().optional(),search:o.boolean().optional()}).optional()}),C=o.object({tagId:o.string().min(1,`Tag ID is required for GTM`),dataLayerName:o.string().optional(),preview:o.string().optional()}),w=o.object({appId:o.string().min(1,`Algolia App ID is required`),apiKey:o.string().min(1,`Algolia API Key is required`),indexName:o.string().min(1,`Algolia Index Name is required`)}),T=o.object({repo:o.string().min(1,`Giscus repository is required`),repoId:o.string().min(1,`Giscus repository ID is required`),category:o.string().optional(),categoryId:o.string().optional(),mapping:o.enum([`pathname`,`url`,`title`,`og:title`,`specific`,`number`]).optional(),strict:o.union([o.enum([`0`,`1`]),o.boolean()]).optional(),reactionsEnabled:o.union([o.enum([`0`,`1`]),o.boolean()]).optional(),emitMetadata:o.union([o.enum([`0`,`1`]),o.boolean()]).optional(),inputPosition:o.enum([`top`,`bottom`]).optional(),theme:o.string().optional(),darkTheme:o.string().optional(),lang:o.string().optional(),loading:o.enum([`lazy`,`eager`]).optional()}),E=o.object({enabled:o.boolean(),owner:o.string().min(1,`GitHub owner is required`),repo:o.string().min(1,`GitHub repository name is required`),categorySlug:o.string().optional(),endpoint:o.string().optional()}),D=o.object({analytics:o.boolean().optional(),speedInsights:o.boolean().optional()}),O=o.object({apiKey:o.string().min(1,`API key is required for PostHog`),host:o.string().url().optional(),capturePageview:o.boolean().optional(),capturePageleave:o.boolean().optional(),sessionRecording:o.boolean().optional(),autocapture:o.boolean().optional()}),k=o.object({ga4:S.optional(),gtm:C.optional(),vercel:D.optional(),posthog:O.optional()}),A=o.object({algolia:w.optional()}),j=o.object({giscus:T.optional(),custom:E.optional()}),M=o.object({analytics:k.optional(),search:A.optional(),feedback:j.optional()}),N=o.object({criticalCss:o.enum([`zig-critters`,`beasties`,`none`]).optional()}),P=o.object({labels:o.record(o.string(),o.union([o.string(),o.record(o.string(),o.string())])).optional(),positions:o.record(o.string(),o.number()).optional(),postsPerPage:o.number().int().positive().optional(),defaultCollection:o.string().optional(),dateFormat:o.string().optional(),sortBy:o.enum([`date`,`title`,`sidebarPosition`]).optional()}),F=o.object({visible:o.boolean().optional(),environments:o.array(o.string()).optional()}),I=o.object({turbo:o.boolean().optional(),siteUrl:o.string().url().optional(),docsDir:o.string().optional(),base:o.string().optional(),theme:f.optional(),i18n:m.optional(),versions:h.optional(),mdx:u.optional(),ssg:N.optional(),plugins:o.array(d).optional(),collections:P.optional(),robots:p.optional(),security:g.optional(),seo:b.optional(),integrations:M.optional(),drafts:F.optional(),experimental:x.optional(),aliases:o.custom().optional(),featureFlags:o.record(o.string(),o.union([o.boolean(),o.string()])).optional(),vite:o.custom().optional()});var L=e({resolveConfig:()=>G});const R=new Map;function z(e,t,n,r){return`${e}::${t}::${n}::${r}`}function B(e){return r.join(e,`.boltdocs`,`cache`,`config.json`)}function V(e,t,n,r,i){return a.createHash(`sha256`).update(`${e}:${t}:${n}:${r}:${i}`).digest(`hex`)}function H(e,t,n){let a=B(e);if(!i.existsSync(a))return null;try{let o=i.readFileSync(a,`utf-8`),s=JSON.parse(o),c=r.resolve(e,s.filename);if(!i.existsSync(c))return null;let l=i.statSync(c);if(V(s.filename,l.mtimeMs,l.size,t,n)!==V(s.filename,s.mtimeMs,s.size,s.command,s.mode))return null;let u=I.safeParse(s.config);return u.success?{config:u.data,configFile:c}:null}catch{return null}}function U(e,t,n,a,o,s,c){try{let l=B(e);i.mkdirSync(r.dirname(l),{recursive:!0});let u={filename:t,mtimeMs:n,size:a,command:o,mode:s,config:{...c,plugins:[]}};i.writeFileSync(l,JSON.stringify(u),`utf-8`)}catch(e){process.env.BOLTDOCS_DEBUG===`true`&&console.warn(`[boltdocs] Failed to write config cache:`,e)}}async function W(e,t){let{createJiti:n}=await import(`jiti`),r=await n(t,{interopDefault:!0}).import(e);return r.default??r.config??r}async function G(e,a=process.cwd(),o=`serve`,c=`development`){let l=a,u=z(e,l,o,c);{let e=R.get(u);if(e)return e}let d=H(l,o,c);if(d){try{let e=await W(d.configFile,l);e?.plugins&&(d.config.plugins=e.plugins)}catch{}return R.set(u,d.config),d.config}let f={docsDir:r.resolve(l,e),theme:{title:`Boltdocs`,description:`A Vite documentation framework`,navbar:[{label:`Home`,href:`/`},{label:`Documentation`,href:`/docs`}],codeTheme:{light:`github-light`,dark:`github-dark`}}},p={},m=null;for(let e of n){let t=r.resolve(l,e);if(i.existsSync(t))try{let n;try{n=await W(t,l)}catch(r){process.env.BOLTDOCS_DEBUG===`true`&&console.warn(`[boltdocs] jiti config load failed for ${e}, falling back to Vite: ${r instanceof Error?r.message:String(r)}`);let{loadConfigFromFile:i}=await import(`vite`);n=(await i({command:o,mode:c},t,l))?.config}if(n){p=n;let r=i.statSync(t);m={filename:e,mtimeMs:r.mtimeMs,size:r.size};break}}catch(t){t instanceof Error&&(console.error(`\x1b[31m[boltdocs] ✖ Failed to load config from ${e}: ${t.message}\x1b[0m`),s(`Failed to load config from ${e}: ${t.message}`))}}let h={title:p.title,description:p.description,logo:p.logo,favicon:p.favicon,navbar:p.navbar,sidebar:p.sidebar,sidebarGroups:p.theme?.sidebarGroups,socialLinks:p.socialLinks,githubRepo:p.githubRepo,tabs:p.tabs,codeTheme:p.codeTheme,communityHelp:p.communityHelp,version:p.version,editLink:p.editLink,...p.theme||{}},g=Object.fromEntries(Object.entries(h).filter(([e,t])=>t!==void 0));g.navbar&&=g.navbar.map(e=>({label:e.label||``,href:e.href||``,items:e.items}));let _={docsDir:r.resolve(l,p.docsDir||e),theme:{...f.theme,...g},i18n:p.i18n?{...p.i18n,locales:Array.isArray(p.i18n.locales)?Object.fromEntries(p.i18n.locales.map(e=>[e,e])):p.i18n.locales}:void 0,versions:p.versions,siteUrl:p.siteUrl,base:p.base,ssg:p.ssg,seo:p.seo,plugins:p.plugins||[],robots:p.robots,security:p.security,integrations:p.integrations,experimental:p.experimental,featureFlags:p.featureFlags,aliases:p.aliases,drafts:p.drafts,collections:p.collections,vite:p.vite},v=I.safeParse(_);if(!v.success)throw new t(`Invalid Boltdocs configuration:\n${v.error.issues.map(e=>` - ${e.path.join(`.`)}: ${e.message}`).join(`
|
|
7
|
-
`)}`);let y=v.data;return m&&U(l,m.filename,m.mtimeMs,m.size,o,c,y),R.set(u,y),y}export{c as i,G as n,d as r,L as t};
|
package/dist/node-BFNCsPs3.mjs
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Boltdocs - https://boltdocs.vercel.app
|
|
3
|
-
* Copyright (c) 2026 Jesus Alcala
|
|
4
|
-
* Licensed under the MIT License.
|
|
5
|
-
*/
|
|
6
|
-
import{t as e}from"./chunk-BFSpntXv.mjs";import{_ as t,a as n,c as r,i,l as a,n as o,o as s,r as c,u as l}from"./plugin-context-wqHNSZum.mjs";import{r as u}from"./utils-8lzafE49.mjs";import{n as d}from"./pages-external-BBw8ObVK.mjs";import"./node/cache.mjs";import{c as f,l as p,s as m,t as h}from"./routes-BL4y79tb.mjs";import{n as g,r as _}from"./config-DGLQsy7y.mjs";import{r as v,t as y}from"./types-generator-DG1GX1EZ.mjs";import{t as b}from"./resolve-YdTrt_FG.mjs";import"./handler-D7UyZlPm.mjs";import"./adapters-BmB4TKCc.mjs";import x from"node:path";import S from"node:fs";import C from"node:crypto";import{z as w}from"zod";import*as T from"@bdocs/dui";import{colors as E,warn as D}from"@bdocs/dui";import ee from"semver";import{build as te}from"@bdocs/ssg/node";function ne(){return{name:`boltdocs-ssr-dirname-polyfill`,config:(e,{isSsrBuild:t})=>t?{define:{__dirname:`import.meta.dirname`}}:{}}}const re=new Set([`boltdocs/entry`,`boltdocs/client`,`boltdocs/primitives`,`boltdocs/mdx`,`boltdocs/client/router`,`use-sync-external-store/shim/index.js`,`use-sync-external-store/shim`,`use-sync-external-store`]);function O(e){return e?Array.isArray(e)?[...e]:Object.entries(e).map(([e,t])=>({find:e,replacement:t})):[]}function ie(e,t){typeof t.find==`string`&&re.has(t.find)&&e.some(e=>e.find===t.find)||e.push({...t,...typeof t.replacement==`string`?{replacement:t.replacement}:{}})}function ae({root:e,clientSourceRoot:t,aliases:n}){let r=[{find:`boltdocs/entry`,replacement:x.resolve(e,`boltdocs-entry.tsx`)},{find:`boltdocs/client`,replacement:x.resolve(e,`boltdocs-client.mjs`)},...t?[{find:`boltdocs/primitives`,replacement:x.join(t,`primitives.ts`)},{find:`boltdocs/mdx`,replacement:x.join(t,`mdx.ts`)},{find:`boltdocs/client/router`,replacement:x.join(t,`router/index.ts`)}]:[],{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`}].map(e=>({...e,replacement:e.replacement}));for(let t of O(n))ie(r,{...t,replacement:typeof t.replacement==`string`&&t.replacement.startsWith(`.`)?x.resolve(e,t.replacement):t.replacement});return r}function k(e){return e}function oe(e){let t=[];if(e.website&&t.push(A(e.website)),e.article&&t.push(M(e.article)),e.breadcrumbs?.length&&t.push(N(e.breadcrumbs)),e.additional&&t.push(...Array.isArray(e.additional)?e.additional:[e.additional]),t.length===0)throw Error(`createStructuredData() requires at least one of website, article, breadcrumbs, or additional`);return t.length===1?t[0]:t}function A(e){let t={"@context":`https://schema.org`,"@type":`WebSite`,name:e.name,url:e.url};return e.description&&(t.description=e.description),e.searchUrl&&(t.potentialAction={"@type":`SearchAction`,target:`${e.searchUrl}{search_term_string}`,"query-input":`required name=search_term_string`}),t}function j(e,t){let n=new Date(e);if(Number.isNaN(n.getTime()))throw TypeError(`Invalid ${t} value: ${String(e)}`);return n.toISOString()}function M(e){let t={"@context":`https://schema.org`,"@type":`Article`,headline:e.headline,url:e.url};return e.description&&(t.description=e.description),e.datePublished&&(t.datePublished=j(e.datePublished,`datePublished`)),e.dateModified&&(t.dateModified=j(e.dateModified,`dateModified`)),e.image&&(t.image=e.image),e.author&&(t.author=typeof e.author==`string`?{"@type":`Person`,name:e.author}:{"@type":`Person`,...e.author}),t}function N(e){return{"@context":`https://schema.org`,"@type":`BreadcrumbList`,itemListElement:e.map((e,t)=>({"@type":`ListItem`,position:t+1,name:e.name,item:e.url}))}}var P=class extends Error{name=this.constructor.name;constructor(e,t,n){super(`[plugin:${e}] ${t}`,n),this.pluginName=e}},F=class extends P{constructor(e,t){super(e,`Validation failed: ${t}`)}},I=class extends P{constructor(e,t){super(e,`Compatibility error: ${t}`)}},L=class extends P{constructor(e,t,n){super(e,`Error in hook '${t}': ${n.message}`,{cause:n}),this.hookName=t}},R=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 se=_.extend({version:w.string().optional(),boltdocsVersion:w.string().optional(),css:w.object({cssFiles:w.array(w.string()).optional(),headStyles:w.array(w.string()).optional(),postcssPlugins:w.array(w.any()).optional(),preprocessorOptions:w.record(w.string(),w.any()).optional()}).optional(),hooks:w.object({beforeBuild:w.custom(e=>typeof e==`function`).optional(),afterBuild:w.custom(e=>typeof e==`function`).optional(),beforeDev:w.custom(e=>typeof e==`function`).optional(),afterDev:w.custom(e=>typeof e==`function`).optional(),buildEnd:w.custom(e=>typeof e==`function`).optional(),transformSource:w.custom(e=>typeof e==`function`).optional(),transformMdx:w.custom(e=>typeof e==`function`).optional(),transformHtml:w.custom(e=>typeof e==`function`).optional()}).passthrough().optional()});function ce(e,t){let n=[],r=new Set;for(let i of e){let e=se.safeParse(i);if(!e.success)throw new F(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 F(a.name,`Duplicate plugin name detected`);if(r.add(a.name),a.boltdocsVersion&&!ee.satisfies(t,a.boltdocsVersion))throw new I(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(`..`))throw new F(a.name,`Component '${e}' has an invalid path: traversal sequences are not allowed.`);if(x.isAbsolute(t))throw new F(a.name,`Component '${e}' has an invalid path: absolute paths are not allowed.`)}n.push(a)}return n}const z=new Map;function B(e,t=process.cwd()){let n=e.plugins||[];for(let e of n)if(e.name&&!z.has(e.name))try{let n=b(e.name,t)?.pkg,r=n&&typeof n.scripts==`object`?n.scripts:{},i=!!(r.preinstall||r.postinstall||r.install);i&&D(`💡 ${E.yellow(E.bold(`Nota de seguridad:`))} El plugin ${E.cyan(e.name)} ejecuta scripts nativos al instalarse. Corre ${E.bold(`boltdocs audit`)} para un análisis detallado.`),z.set(e.name,i)}catch{z.set(e.name,!1)}}var V=class{name=`ConfigResolve`;async execute(e){e.config=await g(`docs`,e.root,`build`,`production`),e.allCached||B(e.config,e.root);let t=x.resolve(e.root,e.config.docsDir||`docs`);e.docsDir=t;let n=await h(t,e.config,void 0,!1);e.routes=n;let r=n.map(e=>e.path),i=(e.config.base||`/docs`).replace(/\/$/,``);r.includes(i)||r.push(i);let a=d(t,e.config);for(let e of a)r.includes(e)||r.push(e);e.routePaths=r,e.viteConfig=await $(e.root,`production`,e.config,{routes:n,skipTypes:!0,skipLinkTree:!0})}},H=class{name=`RouteGenerate`;async execute(e){if(!e.routes)throw Error(`Routes not generated by ConfigResolveStep. Verify pipeline order.`)}};const U=w.object({title:w.string().optional(),description:w.string().optional(),canonical:w.string().url().optional(),robots:w.string().optional(),noindex:w.boolean().optional(),"og:title":w.string().optional(),"og:description":w.string().optional(),"og:image":w.string().optional(),"og:type":w.string().optional(),"og:url":w.string().url().optional()});var W=class{name=`SEOValidate`;async execute(e){if(!e.routes||!e.config)throw Error(`Routes or Config not initialized.`);let t=e.config?.siteUrl,n=e.routes;for(let r of n){let n=r.seo||{},i=n.canonical||(t?`${t.replace(/\/$/,``)}${r.path}`:void 0),a=n[`og:url`]||i||void 0,o=e.config?.seo?.thumbnails?.background??void 0,s=n[`og:image`]||r.coverImage||o;s&&t&&!/^https?:\/\/|^\/\//.test(s)&&(s=`${t.endsWith(`/`)?t.slice(0,-1):t}${s.startsWith(`/`)?s:`/${s}`}`);let c={...n};i&&(c.canonical=i),a&&(c[`og:url`]=a),s&&(c[`og:image`]=s),!c[`og:title`]&&r.title&&(c[`og:title`]=String(r.title)),!c[`og:description`]&&r.description&&(c[`og:description`]=String(r.description));let l=U.safeParse(c);l.success||D(`[SEOValidate] Validation issues on route "${r.path}": ${l.error.message}`),r.title||D(`[SEOValidate] Route "${r.path}" is missing a title.`),r.seo=c}e.ssgRoutes=n}},G=class{name=`TypeGenerate`;async execute(e){if(!e.config||!e.docsDir||!e.routePaths)throw Error(`Config, docs directory, or route paths not initialized. Verify pipeline order.`);y(e.config,`docs`,e.root,e.routePaths),v(e.routePaths,e.root),e.typesGenerated=!0}},le=class{name=`SSGBuild`;async execute(e){if(!e.routes||!e.viteConfig)throw Error(`Routes or ViteConfig not initialized.`);let t={};for(let n of e.routes)if(n.path&&n.componentPath){t[n.path]=n.componentPath;let e=n.path.replace(/\/$/,``);t[e]=n.componentPath}let n=[];await te({entry:`boltdocs/entry`,routeToSourceFileMap:t,cacheDir:x.resolve(e.root,`.boltdocs/build`),onStep:e=>{n.push(e)}},e.viteConfig),e.ssgSubSteps=n,e.outDir=e.viteConfig.build?.outDir||`dist`}};function ue(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=>`${n}${e.path.startsWith(`/`)?e.path:`/${e.path}`}`).sort((e,t)=>e<t?-1:e>t?1:0).map(e=>` <url>
|
|
9
|
-
<loc>${u(e)}</loc>
|
|
10
|
-
<changefreq>weekly</changefreq>
|
|
11
|
-
<priority>0.7</priority>
|
|
12
|
-
</url>`).join(`
|
|
13
|
-
`)}
|
|
14
|
-
</urlset>`}function de(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
|
-
`)}var fe=class{name=`SEOWrite`;async execute(e){if(!e.ssgRoutes||!e.config||!e.outDir)throw Error(`SSG Routes, Config, or OutDir not initialized.`);let t=ue(e.ssgRoutes,e.config),n=e.docsDir||x.resolve(e.root,`docs`),r=x.resolve(e.root,e.outDir);t&&S.writeFileSync(x.join(r,`sitemap.xml`),t,`utf-8`);let i=de(e.config);if(S.writeFileSync(x.join(r,`robots.txt`),i,`utf-8`),e.config.plugins&&e.config.plugins.length>0){let{PluginLifecycleManager:t}=await Promise.resolve().then(()=>q);await new t(e.config.plugins,e.config,n,e.root,e.routes??[],r).runHook(`build:generate`,{routes:e.routes??[],outDir:r,siteUrl:e.config.siteUrl})}}};function pe(){return new K().addStep(new V).addStep(new H).addParallelSteps([new W,new G]).addStep(new le).addStep(new fe)}var K=class{steps=[];addStep(e){return this.steps.push(e),this}addParallelSteps(e){return this.steps.push(e),this}async run(e){let t=[],n=performance.now(),r={...e,timing:{}};for(let e of this.steps){let i=Array.isArray(e),a=i?e:[e],o=performance.now();try{i?await Promise.all(a.map(e=>e.execute(r))):await a[0].execute(r);let e=performance.now()-o;for(let n of a){let i=r.stepDetails?.[n.name];t.push({name:n.name,duration:e,success:!0,details:i}),r.timing[n.name]=e}if(r.ssgSubSteps){for(let e of r.ssgSubSteps)t.push(e);delete r.ssgSubSteps}}catch(e){let i=performance.now()-o,s=a.find(e=>!t.some(t=>t.name===e.name&&t.success))?.name||a.map(e=>e.name).join(` | `);t.push({name:s,duration:i,success:!1,error:e instanceof Error?e:Error(String(e))});for(let e of t.filter(e=>e.success).reverse()){let t=this.steps.flat().find(t=>t.name===e.name);if(t?.rollback)try{await t.rollback(r)}catch(t){console.error(`[pipeline] rollback failed for step "${e.name}":`,t)}}let c=performance.now()-n;return{success:!1,failedStep:s,error:e instanceof Error?e:Error(String(e)),timing:{total:c,steps:r.timing},stepResults:t}}}return{success:!0,timing:{total:performance.now()-n,steps:r.timing},stepResults:t}}},q=e({PluginLifecycleManager:()=>Y,resolvePluginHook:()=>J});const me={"build:before":`beforeBuild`,"build:after":`afterBuild`,"build:end":`buildEnd`,"dev:before":`beforeDev`,"dev:after":`afterDev`,"transform:source":`transformSource`,"transform:mdx":`transformMdx`,"transform:html":`transformHtml`,beforeBuild:`build:before`,afterBuild:`build:after`,buildEnd:`build:end`,beforeDev:`dev:before`,afterDev:`dev:after`,transformSource:`transform:source`,transformMdx:`transform:mdx`,transformHtml:`transform:html`};function J(e,t){if(!e.hooks)return;let n=e.hooks[t];if(typeof n==`function`)return n;let r=me[t];if(r){let t=e.hooks[r];if(typeof t==`function`)return t}}var Y=class{plugins;config;store;docsDir;rootDir;routes;outDir;runtime;routeCacheContext;routeCacheVariant;constructor(e,t,n,r,i,a,o,s,c){this.plugins=e,this.config=t,this.store=new R,this.docsDir=n||process.cwd(),this.rootDir=r||process.cwd(),this.routes=i||[],this.outDir=a||`dist`,this.runtime=o??l(),this.routeCacheContext=s??m(this.docsDir),this.routeCacheVariant=c??f(this.routeCacheContext,p(t,t.base))}async runHook(e,...t){let n=this.getSortedPlugins(),r=new K;for(let i of n)J(i,e)&&r.addStep(this.createStep(i,e,t));await r.run({})}async runChain(e,t){let n=this.getSortedPlugins(),r=t;for(let t of n){let n=J(t,e);if(!n)continue;let i=this.createContext(t);try{let e=await n(i,r);if(e!==void 0){let t=e.__signal;if(t===`break`)break;if(t===`skip`){r=e;break}r=e}}catch(n){let r=new L(t.name,e,n instanceof Error?n:Error(String(n)));i.logger.error(r),i.diagnostics.report(`error`,`PLUGIN_HOOK_ERROR`,r.message)}}return r}hasHook(e){return!!(this.plugins.some(t=>J(t,e))||this.plugins.flatMap(e=>e.middleware??[]).some(t=>t[e])||(e===`transformSource`||e===`transformMdx`||e===`transformHtml`)&&[...this.runtime.middlewareRegistry.values()].some(t=>t[e]))}async runMiddlewareChain(e,t){let n=this.plugins.flatMap(e=>e.middleware??[]),r=[...this.runtime.middlewareRegistry.values()],i=[...n,...r],a=[...i.filter(e=>e.enforce===`pre`),...i.filter(e=>!e.enforce),...i.filter(e=>e.enforce===`post`)],o=t;for(let t of a){let n=t[e];if(!n)continue;let r=this.createGenericContext();try{let e=await n(r,o);if(e!==void 0){let t=e.__signal;if(t===`break`)break;if(t===`skip`){o=e;break}o=e}}catch(e){let n=`Middleware '${t.name??`<unnamed>`}' threw: ${e instanceof Error?e.message:String(e)}`;r.logger.error(n),r.diagnostics.report(`error`,`MIDDLEWARE_ERROR`,n)}}return o}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]}createStep(e,t,n){return{name:`${e.name}:${String(t)}`,execute:async()=>{let r=this.createContext(e);try{let i=J(e,t);i&&await i(r,...n)}catch(n){let i=new L(e.name,t,n instanceof Error?n:Error(String(n)));r.logger.error(i)}},rollback:async()=>{let t=J(e,`build:end`);if(t){let n=this.createContext(e);try{await t(n)}catch{}}}}}createContext(e){return{config:Object.freeze({...this.config}),docsDir:this.docsDir,rootDir:this.rootDir,outDir:this.outDir,routes:this.routes,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),caches:o(this.routeCacheContext,this.rootDir,this.routeCacheVariant),diagnostics:c(e.name,this.runtime),paths:s(this.docsDir,this.rootDir),virtualModules:a(this.runtime),middleware:n(this.runtime),hmr:i(this.runtime),server:r(this.runtime)}}createGenericContext(){let e=`<middleware>`;return{config:Object.freeze({...this.config}),docsDir:this.docsDir,rootDir:this.rootDir,outDir:this.outDir,routes:this.routes,meta:{name:e},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),caches:o(this.routeCacheContext,this.rootDir,this.routeCacheVariant),diagnostics:c(e,this.runtime),paths:s(this.docsDir,this.rootDir),virtualModules:a(this.runtime),middleware:n(this.runtime),hmr:i(this.runtime),server:r(this.runtime)}}createLogger(e){let t=`[plugin:${e}]`;return{info:e=>T.info(`${t} ${e}`),warn:e=>T.warn(`${t} ${e}`),error:e=>{T.error(`${t} ${e instanceof Error?e.message:e}`)},debug:e=>T.debug(`${t} ${e}`)}}};function X(e){return t=>typeof e==`function`?e(t):e}function he(e){return typeof e==`function`?X(e):e}const Z=new Map;function ge(){let e=t;for(;e&&e!==x.parse(e).root;){let t=x.join(e,`package.json`);if(S.existsSync(t)){let n=``;try{n=JSON.parse(S.readFileSync(t,`utf-8`)).name||``}catch{n=``}if(n===`boltdocs`){let t=x.join(e,`src/client`);return S.existsSync(t)?t:void 0}}e=x.dirname(e)}}const _e=ge();function Q(e,t,n){if(n===!1)return!1;if(typeof n==`string`)return x.resolve(e,n);let r=t?.vite?.publicDir;if(r===!1)return!1;if(typeof r==`string`)return x.resolve(e,r);let i=x.resolve(e,`public`),a=x.resolve(e,t?.docsDir||`docs`,`public`);return S.existsSync(i)||!S.existsSync(a)?i:a}function ve(e,t,n,r){return`${e}::${t}::${C.createHash(`md5`).update(JSON.stringify({root:e,mode:t,routeCount:n.routes?.length??0,skipTypes:n.skipTypes??!1,skipLinkTree:n.skipLinkTree??!1,skipRoutes:n.skipRoutes??!1,hasPreResolved:!!r,docsDir:r?.docsDir||`docs`,aliases:r?.aliases,viteAliases:r?.vite?.resolve?.alias,publicDir:Q(e,r,n.publicDir)})).digest(`hex`)}`}async function ye(e){let{resolveConfig:t}=await import(`./config-DGLQsy7y.mjs`).then(e=>e.t),{generateRoutes:n,getExternalRoutePaths:r}=await import(`./routes-BL4y79tb.mjs`).then(e=>e.i),{generateProjectTypes:i,writeLinkTree:a}=await import(`./types-generator-DG1GX1EZ.mjs`).then(e=>e.n),{boltdocsPlugin:o}=await import(`./plugin-CUmUZOLD.mjs`),s=e?.docsDir||`docs`,c=await t(s),l=await n(s,c),u=l.map(e=>e.path),d=(c.base||`/docs`).replace(/\/$/,``);u.includes(d)||u.push(d);let f=r(s,c);for(let e of f)u.includes(e)||u.push(e);return i(c,s,void 0,u),a(u),o({...e,routes:e?.routes??l},c)}async function $(e,t=`development`,n,r={}){let i=ve(e,t,r,n),a=Z.get(i);if(a)return a.config;let o=null,s=null,c=null,l=null,u=null;async function d(){if(u)return;let e=[import(`@vitejs/plugin-react`),import(`./plugin-CUmUZOLD.mjs`),import(`./resolve-C2kKnk_5.mjs`),import(`vite`).then(e=>({normalizePath:e.normalizePath}))],t=await Promise.all(e);o=t[0].default,s=t[1].boltdocsPlugin,c=t[1].getExternalAbsolutePaths,l=t[2].resolveSecurityHeaders,u=t[3].normalizePath}d();let f=n||await(async()=>{let{resolveConfig:t}=await import(`./config-DGLQsy7y.mjs`).then(e=>e.t);return t(`docs`,e)})(),p=x.resolve(e,f.docsDir||`docs`),m=r.routes??(r.skipRoutes?[]:await(async()=>{let{generateRoutes:e}=await import(`./routes-BL4y79tb.mjs`).then(e=>e.i);return e(p,f,void 0,!1)})()),h=t===`production`,g=(async()=>(await d(),l(f,h)))(),_=!r.skipTypes,v=!r.skipLinkTree;if(_||v){let[{generateRoutes:t,getExternalRoutePaths:n},{generateProjectTypes:r,writeLinkTree:i}]=await Promise.all([import(`./routes-BL4y79tb.mjs`).then(e=>e.i),import(`./types-generator-DG1GX1EZ.mjs`).then(e=>e.n)]),a=m.map(e=>e.path),o=(f.base||`/docs`).replace(/\/$/,``);a.includes(o)||a.push(o);let s=n(p,f);for(let e of s)a.includes(e)||a.push(e);_&&r(f,p,e,a),v&&i(a)}let y=await g;await d();let b=[],S={};if(f.plugins)for(let e of f.plugins)e.css?.postcssPlugins&&b.push(...e.css.postcssPlugins),e.css?.preprocessorOptions&&Object.assign(S,e.css.preprocessorOptions);let C={root:e,mode:t,experimental:{bundledDev:!h&&process.env.BOLTDOCS_BUNDLED_DEV===`true`},oxc:{jsx:{development:!h,runtime:`automatic`,importSource:`react`}},optimizeDeps:{entries:[`index.html`],include:[`react`,`react-dom`,`react-dom/client`,`react-helmet-async`,`react-router-dom`,`react-fast-compare`,`invariant`,`use-sync-external-store/shim`]},css:b.length>0||Object.keys(S).length>0?{postcss:b.length>0?{plugins:b}:void 0,preprocessorOptions:Object.keys(S).length>0?S:void 0}:void 0,build:{},plugins:[ne(),o(),...s({docsDir:p,root:e,routes:m},f)],ssr:{external:[`react`,`react-dom`,`react-helmet-async`,`react-router-dom`,`@bdocs/ssg`,`jsdom`,...c()],optimizeDeps:{include:[`react`,`react-dom`,`react-fast-compare`,...f.vite?.ssr?.optimizeDeps?.include??[]]},noExternal:[]},server:{watch:{ignored:[`**/.boltdocs/**`,...f.vite?.server?.watch?.ignored??[]]},headers:{...y,...f.vite?.server?.headers},...f.vite?.server},preview:{headers:{...y,...f.vite?.preview?.headers},...f.vite?.preview},...f.vite??{},resolve:{...f.vite?.resolve??{},alias:ae({root:e,clientSourceRoot:_e,aliases:[...O(f.aliases),...O(f.vite?.resolve?.alias)]}).map(e=>({...e,...typeof e.replacement==`string`?{replacement:u(e.replacement)}:{}})),dedupe:[`react`,`react-dom`,`react-router-dom`,...f.vite?.resolve?.dedupe??[]]},base:f.base||`/`,publicDir:Q(e,f,r.publicDir)};return Z.set(i,{config:C}),C.__boltdocsConfig=f,C}export{N as _,Y as a,k as b,pe as c,R as d,I as f,M as g,F as h,X as i,B as l,L as m,$ as n,q as o,P as p,he as r,J as s,ye as t,ce as u,oe as v,A as y};
|
package/dist/node-TpmWEqXM.cjs
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
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-D1Md3oWO.cjs`),t=require(`./utils-ej6_SjIZ.cjs`),n=require(`./pages-external-DPiPFxxP.cjs`),r=require(`./plugin-context-C-l90hFt.cjs`),i=require(`./node/cache.cjs`),a=require(`./routes-U9L8psZ9.cjs`),o=require(`./config-Ceib-AOH.cjs`),s=require(`./types-generator-DDSA93P3.cjs`),c=require(`./resolve-It1Iug83.cjs`),l=require(`./handler-CDEoKARD.cjs`),u=require(`./adapters-Cp1Maurn.cjs`);let d=require(`node:path`);d=e.r(d);let f=require(`node:fs`);f=e.r(f);let p=require(`node:crypto`);p=e.r(p);let m=require(`zod`),h=require(`@bdocs/dui`);h=e.r(h);let g=require(`semver`);g=e.r(g);let _=require(`@bdocs/ssg/node`);function v(){return{name:`boltdocs-ssr-dirname-polyfill`,config:(e,{isSsrBuild:t})=>t?{define:{__dirname:`import.meta.dirname`}}:{}}}const y=new Set([`boltdocs/entry`,`boltdocs/client`,`boltdocs/primitives`,`boltdocs/mdx`,`boltdocs/client/router`,`use-sync-external-store/shim/index.js`,`use-sync-external-store/shim`,`use-sync-external-store`]);function b(e){return e?Array.isArray(e)?[...e]:Object.entries(e).map(([e,t])=>({find:e,replacement:t})):[]}function x(e,t){typeof t.find==`string`&&y.has(t.find)&&e.some(e=>e.find===t.find)||e.push({...t,...typeof t.replacement==`string`?{replacement:t.replacement}:{}})}function S({root:e,clientSourceRoot:t,aliases:n}){let r=[{find:`boltdocs/entry`,replacement:d.default.resolve(e,`boltdocs-entry.tsx`)},{find:`boltdocs/client`,replacement:d.default.resolve(e,`boltdocs-client.mjs`)},...t?[{find:`boltdocs/primitives`,replacement:d.default.join(t,`primitives.ts`)},{find:`boltdocs/mdx`,replacement:d.default.join(t,`mdx.ts`)},{find:`boltdocs/client/router`,replacement:d.default.join(t,`router/index.ts`)}]:[],{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`}].map(e=>({...e,replacement:e.replacement}));for(let t of b(n))x(r,{...t,replacement:typeof t.replacement==`string`&&t.replacement.startsWith(`.`)?d.default.resolve(e,t.replacement):t.replacement});return r}function C(e){return e}function w(e){let t=[];if(e.website&&t.push(T(e.website)),e.article&&t.push(D(e.article)),e.breadcrumbs?.length&&t.push(O(e.breadcrumbs)),e.additional&&t.push(...Array.isArray(e.additional)?e.additional:[e.additional]),t.length===0)throw Error(`createStructuredData() requires at least one of website, article, breadcrumbs, or additional`);return t.length===1?t[0]:t}function T(e){let t={"@context":`https://schema.org`,"@type":`WebSite`,name:e.name,url:e.url};return e.description&&(t.description=e.description),e.searchUrl&&(t.potentialAction={"@type":`SearchAction`,target:`${e.searchUrl}{search_term_string}`,"query-input":`required name=search_term_string`}),t}function E(e,t){let n=new Date(e);if(Number.isNaN(n.getTime()))throw TypeError(`Invalid ${t} value: ${String(e)}`);return n.toISOString()}function D(e){let t={"@context":`https://schema.org`,"@type":`Article`,headline:e.headline,url:e.url};return e.description&&(t.description=e.description),e.datePublished&&(t.datePublished=E(e.datePublished,`datePublished`)),e.dateModified&&(t.dateModified=E(e.dateModified,`dateModified`)),e.image&&(t.image=e.image),e.author&&(t.author=typeof e.author==`string`?{"@type":`Person`,name:e.author}:{"@type":`Person`,...e.author}),t}function O(e){return{"@context":`https://schema.org`,"@type":`BreadcrumbList`,itemListElement:e.map((e,t)=>({"@type":`ListItem`,position:t+1,name:e.name,item:e.url}))}}var k=class extends Error{name=this.constructor.name;constructor(e,t,n){super(`[plugin:${e}] ${t}`,n),this.pluginName=e}},A=class extends k{constructor(e,t){super(e,`Validation failed: ${t}`)}},j=class extends k{constructor(e,t){super(e,`Compatibility error: ${t}`)}},M=class extends k{constructor(e,t,n){super(e,`Error in hook '${t}': ${n.message}`,{cause:n}),this.hookName=t}},N=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 P=o.n.extend({version:m.z.string().optional(),boltdocsVersion:m.z.string().optional(),css:m.z.object({cssFiles:m.z.array(m.z.string()).optional(),headStyles:m.z.array(m.z.string()).optional(),postcssPlugins:m.z.array(m.z.any()).optional(),preprocessorOptions:m.z.record(m.z.string(),m.z.any()).optional()}).optional(),hooks:m.z.object({beforeBuild:m.z.custom(e=>typeof e==`function`).optional(),afterBuild:m.z.custom(e=>typeof e==`function`).optional(),beforeDev:m.z.custom(e=>typeof e==`function`).optional(),afterDev:m.z.custom(e=>typeof e==`function`).optional(),buildEnd:m.z.custom(e=>typeof e==`function`).optional(),transformSource:m.z.custom(e=>typeof e==`function`).optional(),transformMdx:m.z.custom(e=>typeof e==`function`).optional(),transformHtml:m.z.custom(e=>typeof e==`function`).optional()}).passthrough().optional()});function F(e,t){let n=[],r=new Set;for(let i of e){let e=P.safeParse(i);if(!e.success)throw new A(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 A(a.name,`Duplicate plugin name detected`);if(r.add(a.name),a.boltdocsVersion&&!g.default.satisfies(t,a.boltdocsVersion))throw new j(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(`..`))throw new A(a.name,`Component '${e}' has an invalid path: traversal sequences are not allowed.`);if(d.default.isAbsolute(t))throw new A(a.name,`Component '${e}' has an invalid path: absolute paths are not allowed.`)}n.push(a)}return n}const I=new Map;function L(e,t=process.cwd()){let n=e.plugins||[];for(let e of n)if(e.name&&!I.has(e.name))try{let n=c.t(e.name,t)?.pkg,r=n&&typeof n.scripts==`object`?n.scripts:{},i=!!(r.preinstall||r.postinstall||r.install);i&&(0,h.warn)(`💡 ${h.colors.yellow(h.colors.bold(`Nota de seguridad:`))} El plugin ${h.colors.cyan(e.name)} ejecuta scripts nativos al instalarse. Corre ${h.colors.bold(`boltdocs audit`)} para un análisis detallado.`),I.set(e.name,i)}catch{I.set(e.name,!1)}}var R=class{name=`ConfigResolve`;async execute(e){e.config=await o.t(`docs`,e.root,`build`,`production`),e.allCached||L(e.config,e.root);let t=d.default.resolve(e.root,e.config.docsDir||`docs`);e.docsDir=t;let r=await a.t(t,e.config,void 0,!1);e.routes=r;let i=r.map(e=>e.path),s=(e.config.base||`/docs`).replace(/\/$/,``);i.includes(s)||i.push(s);let c=n.n(t,e.config);for(let e of c)i.includes(e)||i.push(e);e.routePaths=i,e.viteConfig=await $(e.root,`production`,e.config,{routes:r,skipTypes:!0,skipLinkTree:!0})}},z=class{name=`RouteGenerate`;async execute(e){if(!e.routes)throw Error(`Routes not generated by ConfigResolveStep. Verify pipeline order.`)}};const ee=m.z.object({title:m.z.string().optional(),description:m.z.string().optional(),canonical:m.z.string().url().optional(),robots:m.z.string().optional(),noindex:m.z.boolean().optional(),"og:title":m.z.string().optional(),"og:description":m.z.string().optional(),"og:image":m.z.string().optional(),"og:type":m.z.string().optional(),"og:url":m.z.string().url().optional()});var te=class{name=`SEOValidate`;async execute(e){if(!e.routes||!e.config)throw Error(`Routes or Config not initialized.`);let t=e.config?.siteUrl,n=e.routes;for(let r of n){let n=r.seo||{},i=n.canonical||(t?`${t.replace(/\/$/,``)}${r.path}`:void 0),a=n[`og:url`]||i||void 0,o=e.config?.seo?.thumbnails?.background??void 0,s=n[`og:image`]||r.coverImage||o;s&&t&&!/^https?:\/\/|^\/\//.test(s)&&(s=`${t.endsWith(`/`)?t.slice(0,-1):t}${s.startsWith(`/`)?s:`/${s}`}`);let c={...n};i&&(c.canonical=i),a&&(c[`og:url`]=a),s&&(c[`og:image`]=s),!c[`og:title`]&&r.title&&(c[`og:title`]=String(r.title)),!c[`og:description`]&&r.description&&(c[`og:description`]=String(r.description));let l=ee.safeParse(c);l.success||(0,h.warn)(`[SEOValidate] Validation issues on route "${r.path}": ${l.error.message}`),r.title||(0,h.warn)(`[SEOValidate] Route "${r.path}" is missing a title.`),r.seo=c}e.ssgRoutes=n}},ne=class{name=`TypeGenerate`;async execute(e){if(!e.config||!e.docsDir||!e.routePaths)throw Error(`Config, docs directory, or route paths not initialized. Verify pipeline order.`);s.t(e.config,`docs`,e.root,e.routePaths),s.r(e.routePaths,e.root),e.typesGenerated=!0}},re=class{name=`SSGBuild`;async execute(e){if(!e.routes||!e.viteConfig)throw Error(`Routes or ViteConfig not initialized.`);let t={};for(let n of e.routes)if(n.path&&n.componentPath){t[n.path]=n.componentPath;let e=n.path.replace(/\/$/,``);t[e]=n.componentPath}let n=[];await(0,_.build)({entry:`boltdocs/entry`,routeToSourceFileMap:t,cacheDir:d.default.resolve(e.root,`.boltdocs/build`),onStep:e=>{n.push(e)}},e.viteConfig),e.ssgSubSteps=n,e.outDir=e.viteConfig.build?.outDir||`dist`}};function ie(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=>`${r}${e.path.startsWith(`/`)?e.path:`/${e.path}`}`).sort((e,t)=>e<t?-1:e>t?1:0).map(e=>` <url>
|
|
9
|
-
<loc>${t.r(e)}</loc>
|
|
10
|
-
<changefreq>weekly</changefreq>
|
|
11
|
-
<priority>0.7</priority>
|
|
12
|
-
</url>`).join(`
|
|
13
|
-
`)}
|
|
14
|
-
</urlset>`}function B(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
|
-
`)}var V=class{name=`SEOWrite`;async execute(e){if(!e.ssgRoutes||!e.config||!e.outDir)throw Error(`SSG Routes, Config, or OutDir not initialized.`);let t=ie(e.ssgRoutes,e.config),n=e.docsDir||d.default.resolve(e.root,`docs`),r=d.default.resolve(e.root,e.outDir);t&&f.default.writeFileSync(d.default.join(r,`sitemap.xml`),t,`utf-8`);let i=B(e.config);if(f.default.writeFileSync(d.default.join(r,`robots.txt`),i,`utf-8`),e.config.plugins&&e.config.plugins.length>0){let{PluginLifecycleManager:t}=await Promise.resolve().then(()=>require(`./plugin-lifecycle-BAKNKOxd.cjs`));await new t(e.config.plugins,e.config,n,e.root,e.routes??[],r).runHook(`build:generate`,{routes:e.routes??[],outDir:r,siteUrl:e.config.siteUrl})}}};function H(){return new U().addStep(new R).addStep(new z).addParallelSteps([new te,new ne]).addStep(new re).addStep(new V)}var U=class{steps=[];addStep(e){return this.steps.push(e),this}addParallelSteps(e){return this.steps.push(e),this}async run(e){let t=[],n=performance.now(),r={...e,timing:{}};for(let e of this.steps){let i=Array.isArray(e),a=i?e:[e],o=performance.now();try{i?await Promise.all(a.map(e=>e.execute(r))):await a[0].execute(r);let e=performance.now()-o;for(let n of a){let i=r.stepDetails?.[n.name];t.push({name:n.name,duration:e,success:!0,details:i}),r.timing[n.name]=e}if(r.ssgSubSteps){for(let e of r.ssgSubSteps)t.push(e);delete r.ssgSubSteps}}catch(e){let i=performance.now()-o,s=a.find(e=>!t.some(t=>t.name===e.name&&t.success))?.name||a.map(e=>e.name).join(` | `);t.push({name:s,duration:i,success:!1,error:e instanceof Error?e:Error(String(e))});for(let e of t.filter(e=>e.success).reverse()){let t=this.steps.flat().find(t=>t.name===e.name);if(t?.rollback)try{await t.rollback(r)}catch(t){console.error(`[pipeline] rollback failed for step "${e.name}":`,t)}}let c=performance.now()-n;return{success:!1,failedStep:s,error:e instanceof Error?e:Error(String(e)),timing:{total:c,steps:r.timing},stepResults:t}}}return{success:!0,timing:{total:performance.now()-n,steps:r.timing},stepResults:t}}};const W={"build:before":`beforeBuild`,"build:after":`afterBuild`,"build:end":`buildEnd`,"dev:before":`beforeDev`,"dev:after":`afterDev`,"transform:source":`transformSource`,"transform:mdx":`transformMdx`,"transform:html":`transformHtml`,beforeBuild:`build:before`,afterBuild:`build:after`,buildEnd:`build:end`,beforeDev:`dev:before`,afterDev:`dev:after`,transformSource:`transform:source`,transformMdx:`transform:mdx`,transformHtml:`transform:html`};function G(e,t){if(!e.hooks)return;let n=e.hooks[t];if(typeof n==`function`)return n;let r=W[t];if(r){let t=e.hooks[r];if(typeof t==`function`)return t}}var K=class{plugins;config;store;docsDir;rootDir;routes;outDir;runtime;routeCacheContext;routeCacheVariant;constructor(e,t,n,i,o,s,c,l,u){this.plugins=e,this.config=t,this.store=new N,this.docsDir=n||process.cwd(),this.rootDir=i||process.cwd(),this.routes=o||[],this.outDir=s||`dist`,this.runtime=c??r.u(),this.routeCacheContext=l??a.s(this.docsDir),this.routeCacheVariant=u??a.c(this.routeCacheContext,a.l(t,t.base))}async runHook(e,...t){let n=this.getSortedPlugins(),r=new U;for(let i of n)G(i,e)&&r.addStep(this.createStep(i,e,t));await r.run({})}async runChain(e,t){let n=this.getSortedPlugins(),r=t;for(let t of n){let n=G(t,e);if(!n)continue;let i=this.createContext(t);try{let e=await n(i,r);if(e!==void 0){let t=e.__signal;if(t===`break`)break;if(t===`skip`){r=e;break}r=e}}catch(n){let r=new M(t.name,e,n instanceof Error?n:Error(String(n)));i.logger.error(r),i.diagnostics.report(`error`,`PLUGIN_HOOK_ERROR`,r.message)}}return r}hasHook(e){return!!(this.plugins.some(t=>G(t,e))||this.plugins.flatMap(e=>e.middleware??[]).some(t=>t[e])||(e===`transformSource`||e===`transformMdx`||e===`transformHtml`)&&[...this.runtime.middlewareRegistry.values()].some(t=>t[e]))}async runMiddlewareChain(e,t){let n=this.plugins.flatMap(e=>e.middleware??[]),r=[...this.runtime.middlewareRegistry.values()],i=[...n,...r],a=[...i.filter(e=>e.enforce===`pre`),...i.filter(e=>!e.enforce),...i.filter(e=>e.enforce===`post`)],o=t;for(let t of a){let n=t[e];if(!n)continue;let r=this.createGenericContext();try{let e=await n(r,o);if(e!==void 0){let t=e.__signal;if(t===`break`)break;if(t===`skip`){o=e;break}o=e}}catch(e){let n=`Middleware '${t.name??`<unnamed>`}' threw: ${e instanceof Error?e.message:String(e)}`;r.logger.error(n),r.diagnostics.report(`error`,`MIDDLEWARE_ERROR`,n)}}return o}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]}createStep(e,t,n){return{name:`${e.name}:${String(t)}`,execute:async()=>{let r=this.createContext(e);try{let i=G(e,t);i&&await i(r,...n)}catch(n){let i=new M(e.name,t,n instanceof Error?n:Error(String(n)));r.logger.error(i)}},rollback:async()=>{let t=G(e,`build:end`);if(t){let n=this.createContext(e);try{await t(n)}catch{}}}}}createContext(e){return{config:Object.freeze({...this.config}),docsDir:this.docsDir,rootDir:this.rootDir,outDir:this.outDir,routes:this.routes,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),caches:r.n(this.routeCacheContext,this.rootDir,this.routeCacheVariant),diagnostics:r.r(e.name,this.runtime),paths:r.o(this.docsDir,this.rootDir),virtualModules:r.l(this.runtime),middleware:r.a(this.runtime),hmr:r.i(this.runtime),server:r.c(this.runtime)}}createGenericContext(){let e=`<middleware>`;return{config:Object.freeze({...this.config}),docsDir:this.docsDir,rootDir:this.rootDir,outDir:this.outDir,routes:this.routes,meta:{name:e},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),caches:r.n(this.routeCacheContext,this.rootDir,this.routeCacheVariant),diagnostics:r.r(e,this.runtime),paths:r.o(this.docsDir,this.rootDir),virtualModules:r.l(this.runtime),middleware:r.a(this.runtime),hmr:r.i(this.runtime),server:r.c(this.runtime)}}createLogger(e){let t=`[plugin:${e}]`;return{info:e=>h.info(`${t} ${e}`),warn:e=>h.warn(`${t} ${e}`),error:e=>{h.error(`${t} ${e instanceof Error?e.message:e}`)},debug:e=>h.debug(`${t} ${e}`)}}};function q(e){return t=>typeof e==`function`?e(t):e}function J(e){return typeof e==`function`?q(e):e}var Y=e.t({BoltdocsPluginStore:()=>N,PluginCompatibilityError:()=>j,PluginError:()=>k,PluginHookError:()=>M,PluginLifecycleManager:()=>K,PluginValidationError:()=>A,createArticleStructuredData:()=>D,createBreadcrumbStructuredData:()=>O,createPlugin:()=>J,createStructuredData:()=>w,createViteConfig:()=>$,createWebSiteStructuredData:()=>T,default:()=>Q,defineConfig:()=>o.r,definePlugin:()=>q,defineStructuredData:()=>C,flushCache:()=>i.flushCache,generateEntryCode:()=>r.g,generateRoutes:()=>a.t,handleAwsFeedback:()=>u.t,handleFeedback:()=>l.t,handleNetlifyFeedback:()=>u.r,handleVercelFeedback:()=>u.i,handleWebFeedback:()=>u.n,invalidateRouteCache:()=>a.i,normalizePath:()=>t.u,resolveConfig:()=>o.t,resolvePluginHook:()=>G,sanitizeFilename:()=>t.f,validatePlugins:()=>F});const X=new Map;function ae(){let e=__dirname;for(;e&&e!==d.default.parse(e).root;){let t=d.default.join(e,`package.json`);if(f.default.existsSync(t)){let n=``;try{n=JSON.parse(f.default.readFileSync(t,`utf-8`)).name||``}catch{n=``}if(n===`boltdocs`){let t=d.default.join(e,`src/client`);return f.default.existsSync(t)?t:void 0}}e=d.default.dirname(e)}}const oe=ae();function Z(e,t,n){if(n===!1)return!1;if(typeof n==`string`)return d.default.resolve(e,n);let r=t?.vite?.publicDir;if(r===!1)return!1;if(typeof r==`string`)return d.default.resolve(e,r);let i=d.default.resolve(e,`public`),a=d.default.resolve(e,t?.docsDir||`docs`,`public`);return f.default.existsSync(i)||!f.default.existsSync(a)?i:a}function se(e,t,n,r){return`${e}::${t}::${p.default.createHash(`md5`).update(JSON.stringify({root:e,mode:t,routeCount:n.routes?.length??0,skipTypes:n.skipTypes??!1,skipLinkTree:n.skipLinkTree??!1,skipRoutes:n.skipRoutes??!1,hasPreResolved:!!r,docsDir:r?.docsDir||`docs`,aliases:r?.aliases,viteAliases:r?.vite?.resolve?.alias,publicDir:Z(e,r,n.publicDir)})).digest(`hex`)}`}async function Q(e){let{resolveConfig:t}=await Promise.resolve().then(()=>require(`./config-jJh8WYJI.cjs`)),{generateRoutes:n,getExternalRoutePaths:r}=await Promise.resolve().then(()=>require(`./routes-C2nPecwu.cjs`)),{generateProjectTypes:i,writeLinkTree:a}=await Promise.resolve().then(()=>require(`./types-generator-DDSA93P3.cjs`)).then(e=>e.n),{boltdocsPlugin:o}=await Promise.resolve().then(()=>require(`./plugin-Ds3RLYpy.cjs`)),s=e?.docsDir||`docs`,c=await t(s),l=await n(s,c),u=l.map(e=>e.path),d=(c.base||`/docs`).replace(/\/$/,``);u.includes(d)||u.push(d);let f=r(s,c);for(let e of f)u.includes(e)||u.push(e);return i(c,s,void 0,u),a(u),o({...e,routes:e?.routes??l},c)}async function $(e,t=`development`,n,r={}){let i=se(e,t,r,n),a=X.get(i);if(a)return a.config;let o=null,s=null,c=null,l=null,u=null;async function f(){if(u)return;let e=[import(`@vitejs/plugin-react`),Promise.resolve().then(()=>require(`./plugin-Ds3RLYpy.cjs`)),Promise.resolve().then(()=>require(`./resolve-B7vWOd8R.cjs`)),import(`vite`).then(e=>({normalizePath:e.normalizePath}))],t=await Promise.all(e);o=t[0].default,s=t[1].boltdocsPlugin,c=t[1].getExternalAbsolutePaths,l=t[2].resolveSecurityHeaders,u=t[3].normalizePath}f();let p=n||await(async()=>{let{resolveConfig:t}=await Promise.resolve().then(()=>require(`./config-jJh8WYJI.cjs`));return t(`docs`,e)})(),m=d.default.resolve(e,p.docsDir||`docs`),h=r.routes??(r.skipRoutes?[]:await(async()=>{let{generateRoutes:e}=await Promise.resolve().then(()=>require(`./routes-C2nPecwu.cjs`));return e(m,p,void 0,!1)})()),g=t===`production`,_=(async()=>(await f(),l(p,g)))(),y=!r.skipTypes,x=!r.skipLinkTree;if(y||x){let[{generateRoutes:t,getExternalRoutePaths:n},{generateProjectTypes:r,writeLinkTree:i}]=await Promise.all([Promise.resolve().then(()=>require(`./routes-C2nPecwu.cjs`)),Promise.resolve().then(()=>require(`./types-generator-DDSA93P3.cjs`)).then(e=>e.n)]),a=h.map(e=>e.path),o=(p.base||`/docs`).replace(/\/$/,``);a.includes(o)||a.push(o);let s=n(m,p);for(let e of s)a.includes(e)||a.push(e);y&&r(p,m,e,a),x&&i(a)}let C=await _;await f();let w=[],T={};if(p.plugins)for(let e of p.plugins)e.css?.postcssPlugins&&w.push(...e.css.postcssPlugins),e.css?.preprocessorOptions&&Object.assign(T,e.css.preprocessorOptions);let E={root:e,mode:t,experimental:{bundledDev:!g&&process.env.BOLTDOCS_BUNDLED_DEV===`true`},oxc:{jsx:{development:!g,runtime:`automatic`,importSource:`react`}},optimizeDeps:{entries:[`index.html`],include:[`react`,`react-dom`,`react-dom/client`,`react-helmet-async`,`react-router-dom`,`react-fast-compare`,`invariant`,`use-sync-external-store/shim`]},css:w.length>0||Object.keys(T).length>0?{postcss:w.length>0?{plugins:w}:void 0,preprocessorOptions:Object.keys(T).length>0?T:void 0}:void 0,build:{},plugins:[v(),o(),...s({docsDir:m,root:e,routes:h},p)],ssr:{external:[`react`,`react-dom`,`react-helmet-async`,`react-router-dom`,`@bdocs/ssg`,`jsdom`,...c()],optimizeDeps:{include:[`react`,`react-dom`,`react-fast-compare`,...p.vite?.ssr?.optimizeDeps?.include??[]]},noExternal:[]},server:{watch:{ignored:[`**/.boltdocs/**`,...p.vite?.server?.watch?.ignored??[]]},headers:{...C,...p.vite?.server?.headers},...p.vite?.server},preview:{headers:{...C,...p.vite?.preview?.headers},...p.vite?.preview},...p.vite??{},resolve:{...p.vite?.resolve??{},alias:S({root:e,clientSourceRoot:oe,aliases:[...b(p.aliases),...b(p.vite?.resolve?.alias)]}).map(e=>({...e,...typeof e.replacement==`string`?{replacement:u(e.replacement)}:{}})),dedupe:[`react`,`react-dom`,`react-router-dom`,...p.vite?.resolve?.dedupe??[]]},base:p.base||`/`,publicDir:Z(e,p,r.publicDir)};return X.set(i,{config:E}),E.__boltdocsConfig=p,E}Object.defineProperty(exports,`_`,{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return q}}),Object.defineProperty(exports,`b`,{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return H}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,`g`,{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,`h`,{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return J}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return L}}),Object.defineProperty(exports,`m`,{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return $}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return K}}),Object.defineProperty(exports,`p`,{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return Y}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return G}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return Q}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,`v`,{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,`y`,{enumerable:!0,get:function(){return T}});
|
package/dist/plugin-CUmUZOLD.mjs
DELETED
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Boltdocs - https://boltdocs.vercel.app
|
|
3
|
-
* Copyright (c) 2026 Jesus Alcala
|
|
4
|
-
* Licensed under the MIT License.
|
|
5
|
-
*/
|
|
6
|
-
import{_ as e,d as t,f as n,m as r,p as i,s as a,t as o}from"./plugin-context-wqHNSZum.mjs";import{a as s,u as c}from"./node-BFNCsPs3.mjs";import{c as l,d as u,n as d,u as f}from"./utils-8lzafE49.mjs";import{n as p}from"./pages-external-BBw8ObVK.mjs";import{a as m,c as h,l as g,n as _,o as v,r as y,s as b,t as x,u as S}from"./routes-BL4y79tb.mjs";import{n as C}from"./config-DGLQsy7y.mjs";import{r as ee,t as w}from"./types-generator-DG1GX1EZ.mjs";import{t as T}from"./config-files-BYHDOrKn.mjs";import{n as te}from"./doctor-DmQnml2k.mjs";import{computeFrontmatterDelta as E,createVirtualModuleState as D,createVirtualModulesPlugin as O,getSearchDataExport as k,invalidateDirectoryMetaCache as A}from"./virtual-modules-Dlgt1fP0.mjs";import{n as j,t as M}from"./csp-D6JEOqKh.mjs";import{createRequire as N}from"node:module";import P from"node:path";import F from"node:fs";import I from"node:crypto";import{error as L}from"@bdocs/dui";import{loadEnv as ne}from"vite";import{ViteImageOptimizer as re}from"@bdocs/plugin-image-optimizer";import{createSatteriMdxPlugin as ie,invalidateMdxFileCache as R}from"@bdocs/processor-satteri/node";function ae(e){return`<!doctype html>
|
|
7
|
-
<html lang="en">
|
|
8
|
-
<head>
|
|
9
|
-
<meta charset="UTF-8" />
|
|
10
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
11
|
-
</head>
|
|
12
|
-
<body>
|
|
13
|
-
<div id="root"></div>
|
|
14
|
-
</body>
|
|
15
|
-
</html>`}function oe(e,t,n){return e?typeof e==`string`?e:e[n||``]||Object.values(e)[0]||t:t}function se(e){let t=e.i18n?.defaultLocale,n=oe(e.theme?.title,`Boltdocs`,t),r=e.theme?.favicon;!r&&e.theme?.logo&&(r=typeof e.theme.logo==`string`?e.theme.logo:e.theme.logo.light||e.theme.logo.dark);let i=e.seo?.indexing,a=i===`none`?`noindex, nofollow`:i===`all`?void 0:i,o=e.seo?.metatags||{},s=Object.entries(o).map(([e,t])=>{let n=d(e),r=d(t);return e.startsWith(`og:`)||e.startsWith(`music:`)||e.startsWith(`video:`)||e.startsWith(`article:`)||e.startsWith(`book:`)||e.startsWith(`profile:`)?`<meta property="${n}" content="${r}">`:`<meta name="${n}" content="${r}">`});return{title:n,favicon:r,robotsContent:a,customMetaTags:s}}function z(e,t){if(!e.startsWith(`/`)||e.startsWith(`//`)||(()=>{let n=(t.base||``).replace(/^\/+|\/+$/g,``);return!!n&&(e===`/${n}`||e.startsWith(`/${n}/`))})())return e;let n=(t.base||`/`).replace(/\/+$/,``);return n&&n!==`/`?`${n}${e}`:e}function ce(e,t){let n=e.favicon?z(e.favicon,t):void 0;return[n?`<link rel="icon" href="${d(n)}">`:``,e.robotsContent?`<meta name="robots" content="${d(e.robotsContent)}">`:``,`<meta name="generator" content="Boltdocs">`,...e.customMetaTags].filter(Boolean).join(`
|
|
16
|
-
`)}function le(e){if(!e)return``;let t=[];return e.google&&t.push(`<meta name="google-site-verification" content="${d(e.google)}">`),e.bing&&t.push(`<meta name="msvalidate.01" content="${d(e.bing)}">`),e.yandex&&t.push(`<meta name="yandex-verification" content="${d(e.yandex)}">`),e.pinterest&&t.push(`<meta name="p:domain_verify" content="${d(e.pinterest)}">`),e.facebook&&t.push(`<meta name="facebook-domain-verification" content="${d(e.facebook)}">`),t.join(`
|
|
17
|
-
`)}function ue(e){let t=[],n=e.theme?.logo,r;if(typeof n==`string`?r=n:n&&typeof n==`object`&&(r=n.light||n.dark),r){let n={webp:`image/webp`,png:`image/png`,jpg:`image/jpeg`,jpeg:`image/jpeg`,svg:`image/svg+xml`,avif:`image/avif`}[r.split(`.`).pop()?.toLowerCase()||``]||`image/png`;t.push(`<link rel="preload" as="image" href="${z(r,e)}" type="${n}" fetchpriority="high">`)}return t.join(`
|
|
18
|
-
`)}function de(){return`
|
|
19
|
-
<script>
|
|
20
|
-
(function() {
|
|
21
|
-
try {
|
|
22
|
-
var stored = localStorage.getItem("boltdocs-theme");
|
|
23
|
-
var isDark =
|
|
24
|
-
stored === "dark" ||
|
|
25
|
-
(stored !== "light" && window.matchMedia("(prefers-color-scheme: dark)").matches);
|
|
26
|
-
document.documentElement.classList.toggle("dark", isDark);
|
|
27
|
-
document.documentElement.dataset.theme = isDark ? "dark" : "light";
|
|
28
|
-
} catch (e) {
|
|
29
|
-
}
|
|
30
|
-
})();
|
|
31
|
-
<\/script>
|
|
32
|
-
`}function fe(e,t){if(!e||!t&&!e.debug)return``;let n=e.anonymizeIp?`gtag('set', 'ip', true);`:``,r=e.sendPageView===!1?`{send_page_view: false}`:`{}`,i=e.cookieFlags?`, {'cookie_flags': '${e.cookieFlags}'}`:``,a=d(e.measurementId);return`
|
|
33
|
-
<!-- Google tag (gtag.js) -->
|
|
34
|
-
<script async src="https://www.googletagmanager.com/gtag/js?id=${a}"><\/script>
|
|
35
|
-
<script>
|
|
36
|
-
window.dataLayer = window.dataLayer || [];
|
|
37
|
-
function gtag(){dataLayer.push(arguments);}
|
|
38
|
-
gtag('js', new Date());
|
|
39
|
-
${n}
|
|
40
|
-
gtag('config', '${a}', ${r}${i});
|
|
41
|
-
<\/script>
|
|
42
|
-
`}function pe(e,t){if(!e||!t)return{script:``,noScript:``};let n=d(e.dataLayerName||`dataLayer`),r=e.preview?`>m_preview=${d(e.preview)}`:``,i=d(e.tagId);return{script:`
|
|
43
|
-
<!-- Google Tag Manager -->
|
|
44
|
-
<script defer>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
|
|
45
|
-
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
|
|
46
|
-
j=d.createElement(s),dl=l!='${n}'?'&l='+l:'';j.src=
|
|
47
|
-
'https://www.googletagmanager.com/gtm.js?id='+i+dl+'${r}';f.parentNode.insertBefore(j,f);
|
|
48
|
-
})(window,document,'script','${n}','${i}');<\/script>
|
|
49
|
-
<!-- End Google Tag Manager -->
|
|
50
|
-
`,noScript:`
|
|
51
|
-
<!-- Google Tag Manager (noscript) -->
|
|
52
|
-
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=${i}"
|
|
53
|
-
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
|
|
54
|
-
<!-- End Google Tag Manager (noscript) -->
|
|
55
|
-
`}}function me(e,t,n){if(!e||!t)return``;let{analytics:r,speedInsights:i}=e,a=e=>z(e,n),o=``;return r&&(o+=`
|
|
56
|
-
<script>window.va=window.va||function(){(window.vaq=window.vaq||[]).push(arguments)};<\/script>
|
|
57
|
-
<script defer src="${a(`/_vercel/insights/script.js`)}"><\/script>
|
|
58
|
-
`),i&&(o+=`
|
|
59
|
-
<script>window.si=window.si||function(){(window.siq=window.siq||[]).push(arguments)};<\/script>
|
|
60
|
-
<script defer src="${a(`/_vercel/speed-insights/script.js`)}"><\/script>
|
|
61
|
-
`),o}function he(e,t){if(!e||!t)return``;let n=d(e.apiKey),r=[`api_host: "${d(e.host||`https://us.i.posthog.com`)}"`];return e.capturePageview===!1&&r.push(`capture_pageview: false`),e.capturePageleave===!1&&r.push(`capture_pageleave: false`),e.sessionRecording===!0&&r.push(`session_recording: { recordCrossOriginPages: true }`),e.autocapture===!0&&r.push(`autocapture: true`),`
|
|
62
|
-
<!-- PostHog -->
|
|
63
|
-
<script>
|
|
64
|
-
!function(t,e){var o,n,p,r;e.__SV||(window.posthog=e,e._i=[],e.init=function(i,s,a){function g(t,e){var o=e.split(".");2==o.length&&(t=t[o[0]],e=o[1]),t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}}(p=t.createElement("script")).type="text/javascript",p.crossOrigin="anonymous",p.async=!0,p.src=s.api_host.replace(".i.posthog.com","-assets.i.posthog.com")+"/static/array.js",(r=t.getElementsByTagName("script")[0]).parentNode.insertBefore(p,r);var u=e;for(void 0!==a?(u=e[a]=[]):(a="posthog"),u.people=u.people||[],u.toString=function(t){var e="posthog";return"posthog"!==a&&(e+="."+a),t||(e+=" (stub)"),e},u.people.toString=function(){return u.toString(1)+".people (stub)"},o="init capture register register_once register_for_session unregister unregister_for_session getFeatureFlag getFeatureFlagResult isFeatureEnabled reloadFeatureFlags updateEarlyAccessFeatureEnrollment getEarlyAccessFeatures on onFeatureFlags onSessionId getSurveys getActiveMatchingSurveys renderSurvey canRenderSurvey getNextSurveyStep identify setPersonProperties group resetGroups setPersonPropertiesForFlags resetPersonPropertiesForFlags setGroupPropertiesForFlags resetGroupPropertiesForFlags reset get_distinct_id getGroups get_session_id get_session_replay_url alias set_config startSessionRecording stopSessionRecording sessionRecordingStarted captureException loadToolbar get_property getSessionProperty createPersonProfile opt_in_capturing opt_out_capturing has_opted_in_capturing has_opted_out_capturing clear_opt_in_out_capturing debug".split(" "),n=0;n<o.length;n++)g(u,o[n]);e._i.push([i,s,a])},e.__SV=1)}(document,window.posthog||[]);
|
|
65
|
-
posthog.init("${n}", { ${r.join(`, `)} });
|
|
66
|
-
<\/script>
|
|
67
|
-
`}function ge(e,t){return e.replace(`<head>`,`<head>\n${t}`)}function _e(e,t){return e.replace(`</head>`,` ${t}</head>`)}function ve(e,t){return t?e.replace(/<body([^>]*)>/,`<body$1>\n${t}`):e}function ye(e){return e.includes(`src/main`)||e.includes(`virtual:boltdocs-entry`)?e:e.replace(`</body>`,` <script type="module">import "virtual:boltdocs-entry";<\/script>
|
|
68
|
-
</body>`)}function be(e,t){(!e?.includes(`<body`)||!e.includes(`<head`))&&(e=ae(t));let n=process.env.NODE_ENV===`production`,r=ce(se(t),t),i=le(t.seo?.verification),a=ue(t),o=de(),s=fe(t.integrations?.analytics?.ga4,n),c=pe(t.integrations?.analytics?.gtm,n),l=[i,a,r,s,me(t.integrations?.analytics?.vercel,n,t),he(t.integrations?.analytics?.posthog,n),c.script].filter(Boolean).join(`
|
|
69
|
-
`);return e=ge(e,o),e=_e(e,l),e=ve(e,c.noScript),e=ye(e),e}function xe(e){return(t,n,r)=>{let i=e().integrations?.feedback?.custom,a=i?.endpoint||`/api/feedback`;if(!i?.enabled||t.method!==`POST`||t.url?.split(`?`)[0]!==a)return r();let o=``,s=0;t.on(`data`,e=>{if(s+=e.length,s>10240){n.statusCode=413,n.end(JSON.stringify({error:`Request body too large`})),t.destroy();return}o+=e}),t.on(`end`,async()=>{n.setHeader(`Content-Type`,`application/json`);try{let{handleFeedback:e}=await import(`./handler-D7UyZlPm.mjs`).then(e=>e.n),t=await e(JSON.parse(o),process.env,{owner:i.owner,repo:i.repo,categorySlug:i.categorySlug});n.statusCode=200,n.end(JSON.stringify(t))}catch(e){n.statusCode=500;let t=e instanceof Error?e.message:`Failed to submit feedback`;n.end(JSON.stringify({error:t}))}})}}function Se(e){return(t,n,r)=>{let i=t.url||`/`,a=i.split(`?`)[0].split(`#`)[0];if(P.extname(a))return r();let o=e(),s=P.resolve(o?.root||process.cwd(),o?.build?.outDir||`dist`),c=a.replace(/\/$/,``)||`/`,l=P.join(s,c,`index.html`);c!==`/`&&F.existsSync(l)&&(t.url=`${c}/index.html${i.includes(`?`)?`?${i.split(`?`)[1]}`:``}`),r()}}const Ce=/\.(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;function we(e,t,n){let r=process.env.NODE_ENV===`production`;e.middlewares.use(xe(n)),e.middlewares.use((e,t,i)=>{r&&Object.entries(j).forEach(([e,n])=>{t.setHeader(e,n)});let a=n();a.security?.enableCSP&&t.setHeader(`Content-Security-Policy`,M(a)),i()}),e.middlewares.use((e,t,n)=>{if(e.url===`/robots.txt`){n();return}n()}),e.middlewares.use(async(t,r,i)=>{let a=t.url?.split(`?`)[0]||`/`,o=t.headers.accept||``,s=n();if(o.includes(`text/html`)&&!Ce.test(a)){let n=ae(s);n=be(n,s),n=await e.transformIndexHtml(t.url||`/`,n),r.statusCode=200,r.setHeader(`Content-Type`,`text/html`),r.end(n);return}i()})}const B=new WeakMap,V=[/\/index\./i,/\/getting-started/i,/\/intro/i,/\/readme/i],Te=[`react`,`react-dom`,`react-dom/client`,`react-router-dom`,`react-helmet-async`];function Ee(e){for(let t=0;t<V.length;t++)if(V[t].test(e))return t;return V.length}function De(e){for(let t of Te)e.transformRequest(`/${t}`).catch(()=>{})}function Oe(e,t,n,r){if(B.has(e))return;De(e);let i=new Promise(i=>{setTimeout(async()=>{try{let i=(r?await r:await(await import(`./routes-BL4y79tb.mjs`).then(e=>e.i)).generateRoutes(t,n())).filter(e=>e.filePath).map(e=>e.filePath).sort((e,t)=>Ee(e)-Ee(t)),a=performance.now();for(let t=0;t<i.length;t+=8){let n=i.slice(t,t+8);await Promise.allSettled(n.map(t=>{let n=P.relative(process.cwd(),t).replace(/\\/g,`/`),r=n.startsWith(`/`)?n:`/${n}`;return e.transformRequest(r)}))}(process.env.BOLTDOCS_DEBUG===`true`||process.env.BOLTDOCS_BENCHMARK===`true`)&&console.log(`[boltdocs] prewarm done (${i.length} files) in ${Math.round(performance.now()-a)}ms`)}catch(e){process.env.BOLTDOCS_DEBUG===`true`&&console.warn(`[boltdocs] Prewarm failed:`,e)}finally{B.delete(e),i()}},1500)});B.set(e,i)}const ke=[`tsx`,`jsx`],H=[`tsx`,`ts`,`jsx`,`js`];function Ae(e,t){let n=P.resolve(e.config.root),r=e=>{let t=P.resolve(e);return t===n||t.startsWith(`${n}${P.sep}`)},i=[...T.map(e=>P.resolve(process.cwd(),e)),...ke.map(e=>P.resolve(t,`layout.${e}`)),...H.map(e=>P.resolve(t,`mdx-components.${e}`)),...H.map(e=>P.resolve(t,`pages-external/index.${e}`)),...H.map(e=>P.resolve(t,`icons.${e}`))].filter(e=>!r(e));i.length>0&&e.watcher.add(i)}const U=new Map;function je(e){let{lastUpdated:t,...n}=e;return I.createHash(`md5`).update(JSON.stringify(n)).digest(`hex`)}async function Me(e){try{let{data:t}=await u(e);return je(t)}catch{return``}}function Ne(e,t,n){let r=n?.frontmatterHashes??t?.frontmatterHashes??U,i=r.get(e);if(i===void 0){let a=(n?.docCache??t?.docCache??v).getStale(e);a?.route?.frontmatter&&(i=je(a.route.frontmatter),r.set(e,i))}return i}function Pe(e,t,n,r){(r?.frontmatterHashes??n?.frontmatterHashes??U).set(e,t)}function Fe(e,t,n){(n?.frontmatterHashes??t?.frontmatterHashes??U).delete(e)}const Ie=[`tsx`,`ts`,`jsx`,`js`];function W(e,t){let n=[`\0virtual:boltdocs-${t}.ts`,`\0virtual:boltdocs-${t}.tsx`];for(let t of n){let n=e.moduleGraph.getModuleById(t);if(n){e.moduleGraph.invalidateModule(n);break}}}function Le(e,t,r,i,a,o,s,c){let u=s&&!s.disposed?s:o?.routeCacheContext&&!o.routeCacheContext.disposed?o.routeCacheContext:b(t),d=c??h(u,g(i())),p=new Map,m=new Map,v=new Map,x=r.replace(/\/+$/,``).toLowerCase(),C=null;function ee(){if(C)return C;C=new Map;for(let[t,n]of e.moduleGraph.fileToModulesMap.entries())try{n&&C.set(decodeURIComponent(t).toLowerCase(),n)}catch{}return C}e.watcher.on(`all`,()=>{C=null});function D(e,t){return v.get(e)===t}function O(t){let n=e.moduleGraph.getModulesByFile(t);if((!n||n.size===0)&&(n=ee().get(t.toLowerCase())),n&&n.size>0){for(let t of n)e.moduleGraph.invalidateModule(t);return!0}return!1}function k(n,r,i){if(!D(r,i))return;let a=f(P.relative(t,n)),o=O(r);D(r,i)&&(o?e.ws.send({type:`custom`,event:`boltdocs:mdx-update`,data:{file:r,relPath:a}}):e.ws.send({type:`full-reload`}))}let j=async(r,s)=>{try{let c=f(r),h=(v.get(c)??0)+1;if(v.set(c,h),s===`add`||s===`unlink`){let e=p.get(c);e&&(clearTimeout(e),p.delete(c))}if(T.some(e=>c.endsWith(e))){e.restart();return}if(Ie.some(e=>c.endsWith(`mdx-components.${e}`))){w(i(),t),W(e,`mdx-components.tsx`),e.ws.send({type:`full-reload`});return}if(Ie.some(e=>c.endsWith(`icons.${e}`))){W(e,`icons.tsx`),e.ws.send({type:`full-reload`});return}if(c.endsWith(`layout.tsx`)||c.endsWith(`layout.jsx`)){W(e,`layout.tsx`),e.ws.send({type:`full-reload`});return}if(c.endsWith(`/post.tsx`)||c.endsWith(`/post.jsx`)||c.endsWith(`/list.tsx`)||c.endsWith(`/list.jsx`)){W(e,`entry`),e.ws.send({type:`full-reload`});return}if(c.includes(`/pages-external/`)||c.includes(`\\pages-external\\`)){W(e,`entry`),e.ws.send({type:`full-reload`});return}let g=c.toLowerCase();if(!(g===x||g.startsWith(`${x}/`)))return;let b=c.endsWith(`meta.json`)||c.endsWith(`_meta.json`);if(!b&&!l(c))return;if(s===`add`||s===`unlink`||b){s===`unlink`&&Fe(r,u,d),b&&S(r,u),s===`add`&&(R(r),O(c)),y(u),A(o),(a?n(s,c,a):n(s,c)).catch(e=>{L(`Plugin HMR handler error:`,e)});let l=i();w(l,t),W(e,`config`),W(e,`routes`),W(e,`search`),W(e,`collections`),te(t,process.cwd(),l).catch(e=>{L(`Failed to update link tree:`,e)}),e.ws.send({type:`custom`,event:`boltdocs:config-update`,data:{theme:l?.theme,i18n:l?.i18n,versions:l?.versions,siteUrl:l?.siteUrl}}),e.ws.send({type:`full-reload`});return}if(p.has(c)){let e=p.get(c);e&&clearTimeout(e)}p.set(c,setTimeout(()=>{p.delete(c);let s=(m.get(c)??Promise.resolve()).then(async()=>{if(v.get(c)===h)try{let s=Ne(r,u,d),l=await Me(r);if(v.get(c)!==h||!D(c,h))return;if(_(r,u),R(r),Pe(r,l,u,d),a?await n(`change`,c,a):await n(`change`,c),s!==void 0&&s!==l){if(!D(c,h))return;W(e,`routes`),W(e,`search`),W(e,`collections`);let n=i();try{let r=await E(t,n,o,u,d);if(!D(c,h))return;if(r.routes.deleted.length>0){D(c,h)&&e.ws.send({type:`full-reload`});return}if(!D(c,h))return;e.ws.send({type:`custom`,event:`boltdocs:frontmatter-update`,data:r})}catch(t){if(typeof t==`symbol`){D(c,h)&&e.ws.send({type:`full-reload`});return}L(`Failed to compute frontmatter delta:`,t),D(c,h)&&e.ws.send({type:`full-reload`});return}k(r,c,h);return}k(r,c,h)}catch(e){L(`HMR error processing content change:`,e)}});m.set(c,s);let l=()=>{m.get(c)===s&&m.delete(c)};s.then(l,l)},150))}catch(e){L(`HMR error during ${s} event:`,e)}};e.watcher.on(`add`,e=>j(e,`add`)),e.watcher.on(`unlink`,e=>j(e,`unlink`)),e.watcher.on(`change`,e=>j(e,`change`))}function Re(e){let t=f(e).replace(/\/+$/,``).toLowerCase();return({file:e})=>{let n=f(e).toLowerCase(),r=n===t||n.startsWith(`${t}/`),i=n.includes(`/pages-external/`)||n.includes(`\\pages-external\\`);if(r&&(l(e)||n.endsWith(`meta.json`)||i))return[]}}function ze(e,n,a,s,c,l,u,d){return{name:`vite-plugin-boltdocs-dev-server`,apply:`serve`,async configureServer(s){t(l),A(u);let f=c();await f?.runHook(`dev:before`).catch(e=>{L(`dev:before hook failed:`,e)});let p=import(`./routes-BL4y79tb.mjs`).then(e=>e.i).then(({generateRoutes:t})=>t(e,a()));p.then(e=>import(`./types-generator-DG1GX1EZ.mjs`).then(e=>e.n).then(({writeLinkTree:t})=>t(e.map(e=>e.path)))).catch(()=>{});let h=d&&!d.disposed?d:u?.routeCacheContext&&!u.routeCacheContext.disposed?u.routeCacheContext:b(e);u&&(u.routeCacheContext=h),Oe(s,e,a,p),we(s,e,a),Ae(s,e),Le(s,e,n,a,l,u,h),h&&s.httpServer?.once(`close`,()=>{m(e,h)}),s.httpServer?.once(`listening`,()=>{import(`./node/mdx/shiki-adapter.mjs`).then(({prewarmShiki:e})=>e(a())).catch(()=>{})}),r((e,t)=>{s.ws.send(e,t)},l),o(s,l),await i(l).catch(()=>{}),await f?.runHook(`dev:after`).catch(()=>{})},hotUpdate:Re(n)}}function Be(e,t){let n=new Map,r=Ve(t);return!r||!e?{resolve:()=>null}:{resolve:t=>{if(n.has(t))return n.get(t)??null;let i=null;if(!t.startsWith(`${r}/`)){let n=decodeURIComponent(t).replace(/^\//,``),a=P.join(e,n);n.length>0&&!n.includes(`..`)&&a.startsWith(e)&&F.existsSync(a)&&F.statSync(a).isFile()&&(i=`${r}${t}`)}return n.set(t,i),i}}}function Ve(e){if(!e||e===`/`)return null;let t=e.replace(/\/+$/,``);return t.length>0&&t!==``?t:null}const He=`srcset`;function Ue(e,t){let n=e.replace(RegExp(`(?:src|href|poster|content)="(/[^"]*)"`,`g`),(e,n)=>{let r=t.resolve(n);return r?e.replace(n,r):e});return n=n.replace(RegExp(`${He}="([^"]*)"`,`g`),(e,n)=>{let r=!1,i=n.split(`,`).map(e=>{let[n,...i]=e.trim().split(/\s+/);if(!n?.startsWith(`/`))return e;let a=t.resolve(n);return a?(r=!0,[a,...i].join(` `)):e}).join(`, `);return r?`${He}="${i}"`:e}),n}function We(e,t){let n=Be(e,t);return function(e,t,r){if(e.method&&e.method!==`GET`&&e.method!==`HEAD`){r();return}let i=e.url??`/`,a=i.indexOf(`?`),o=a===-1?i:i.slice(0,a);if(!o.startsWith(`/`)){r();return}let s=n.resolve(o);if(!s){r();return}t.writeHead(302,{Location:`${s}${a===-1?``:i.slice(a)}`}),t.end()}}const G=N(import.meta.url),Ge=[`react`,`react-dom`,`react-router-dom`,`react-helmet-async`,`@bdocs/ssg`,`jsdom`,`lucide-react`,`react-fast-compare`,`invariant`,`scheduler`],Ke=[`react/jsx-runtime`,`react/jsx-dev-runtime`,`react-dom/client`];function K(e=G){try{let e=P.join(process.cwd(),`node_modules/boltdocs/package.json`);return F.existsSync(e)?N(F.realpathSync(e)):N(P.join(process.cwd(),`package.json`))}catch{return e}}function q(e,t=G){try{let n=e.split(`/`),r=e.startsWith(`@`)?n.slice(0,2).join(`/`):n[0],i=e.startsWith(`@`)?n.slice(2).join(`/`):n.slice(1).join(`/`),a=``;try{a=t.resolve(`${r}/package.json`)}catch{let e=t.resolve(r),n=P.dirname(e);for(;n&&n!==P.dirname(n);){let e=P.join(n,`package.json`);if(F.existsSync(e)){a=e;break}n=P.dirname(n)}}if(!a)throw Error();let o=P.dirname(a),s=JSON.parse(F.readFileSync(a,`utf-8`)),c=i?`./${i}`:`.`,l=s.exports?.[c]||s.exports?.[i]||``;typeof l==`object`&&l&&(l=l.import||l.default||l.require||``),!l&&!i&&(l=s.module||s.main||`index.js`);let u=P.resolve(o,l);if(F.existsSync(u))return u}catch{}return t.resolve(e)}function J(e=G){let t=[],n=K(e),r=new Set([n,e]);for(let e of r){for(let n of Ge)try{let r=[`@bdocs/ssg`,`react-router-dom`,`react-helmet-async`].includes(n)?q(n,e):e.resolve(n);r&&t.push(F.realpathSync(r))}catch{}for(let n of Ke)try{t.push(F.realpathSync(e.resolve(n)))}catch{}}return Array.from(new Set(t)).map(e=>f(e))}const Y=N(import.meta.url),qe=new Set([`react`,`react-dom`,`react-router-dom`,`react-helmet-async`,`@bdocs/ssg`,`lucide-react`,`react-fast-compare`,`invariant`,`scheduler`]),Je=[`react/`,`react-dom/`,`react-router-dom/`,`react-helmet-async/`,`@bdocs/ssg/`,`lucide-react/`,`scheduler/`],X=new Set([`@bdocs/ssg`,`react-router-dom`,`react-helmet-async`]);let Ye=null;function Xe(){return Ye||=new Map,Ye}function Ze(e,t){return`${e}::${t?`1`:`0`}`}const Qe=[`react`,`react-dom`,`react-router-dom`,`react-helmet-async`,`@bdocs/ssg`,`lucide-react`,`react-fast-compare`,`invariant`,`scheduler`];let $e=null;function et(){return $e||=JSON.parse(F.readFileSync(P.resolve(e,`../../../package.json`),`utf-8`)).version??`0.0.0`,$e}const Z=new Map;function tt(e){return P.join(e,`.boltdocs`,`cache`,`plugin-validation.json`)}function nt(e,t){try{let n=tt(e);if(!F.existsSync(n))return!1;let r=F.readFileSync(n,`utf-8`);return JSON.parse(r).key===t}catch{return!1}}function rt(e,t,n,r){try{let i=tt(e);F.mkdirSync(P.dirname(i),{recursive:!0});let a={key:t,boltdocsVersion:n,validatedNames:r,timestamp:Date.now()};F.writeFileSync(i,JSON.stringify(a),`utf-8`)}catch{}}let Q=null;function $(e){return e??[]}function it(e={},t){let n=P.resolve(e.root||process.cwd()),r=P.resolve(n,e.docsDir||`docs`),l=f(r),u=t,d,m=!1,h=a(),g=b(r),_=D(g),v,y=e.routes??[],S=null,T=null,te=()=>T||(T=Be(d?.publicDir,d?.base),T),E=[];if(u?.plugins?.length)try{let e=et(),t=JSON.stringify(u.plugins.map(e=>[e.name||``,e.version||``,e.boltdocsVersion||``].join(`:`)).sort()),i=Z.get(t);if(i){let e=i.validated;u.plugins=e,v=new s(e,u,r,void 0,void 0,void 0,h,g),E=e.flatMap(e=>$(e.vitePlugins))}else if(nt(n,t)){let e=u.plugins;v=new s(e,u,r,void 0,void 0,void 0,h,g),E=e.flatMap(e=>$(e.vitePlugins)),Z.set(t,{validated:e})}else{let i=c(u.plugins,e);u.plugins=i,v=new s(i,u,r,void 0,void 0,void 0,h,g),E=i.flatMap(e=>$(e.vitePlugins)),Z.set(t,{validated:i}),rt(n,t,e,i.map(e=>e.name))}}catch{}let A=null,j=new Map,M=()=>u,N=e=>{u=e},I=()=>d,L=()=>(g.disposed&&(g=b(r),_.routeCacheContext=g,_.routeCacheVariant=void 0,_.routeGenerationFingerprint=void 0,_.routesDataMap.clear(),_.collectionsDataMap.clear(),_.searchDataMap.clear(),v=new s(u.plugins||[],u,r,void 0,y,d?.build?.outDir||`dist`,h,g)),v);return[{name:`vite-plugin-boltdocs`,enforce:`pre`,async config(e,t){m=t.command===`build`;let n=!!(t.isSsrBuild||e.build?.ssr);if(n&&u&&y.length>0&&v)return{build:{ssrManifest:!0},ssr:{external:[`react`,`react-dom`,`react-helmet-async`,`react-router-dom`,`@bdocs/ssg`,`jsdom`,`lucide-react`,`react-fast-compare`,`invariant`,`scheduler`,...J(Y)],optimizeDeps:{include:[`react-fast-compare`]},noExternal:[]}};if(Object.assign(process.env,ne(t.mode,e.envDir||process.cwd(),``)),u||=await C(r),y.length===0&&m){S||=x(r,u),y=await S;let e=y.map(e=>e.path),t=(u.base||`/docs`).replace(/\/$/,``);e.includes(t)||e.push(t);let n=p(r,u);for(let t of n)e.includes(t)||e.push(t);w(u,r,void 0,e),ee(e)}if(m&&import(`./node/mdx/shiki-adapter.mjs`).then(({prewarmShiki:e})=>e(u)).catch(()=>{}),!v){let{version:e}=await import(`./package-5EsGUTVl.mjs`),t=c(u.plugins||[],e);u.plugins=t,v=new s(t,u,r,void 0,y,d?.build?.outDir||`dist`,h,g),E=t.flatMap(e=>$(e.vitePlugins))}if(m&&await v?.runHook(`build:before`),!A){let e=u.ssg?.criticalCss;A={entry:`boltdocs/entry`,htmlEntry:`index.html`,dirStyle:`flat`,includeAllRoutes:!0,mock:!0,script:`async`,beastiesOptions:!1,criticalCss:e===`none`?!1:e===`beasties`?`beasties`:`zig-critters`,onPageRendered:async(e,t)=>{if(!v)return t;try{let n=j.get(e)??y.find(t=>t.path===e);n&&j.set(e,n);let r=(await v.runChain(`transformHtml`,{html:t,path:e,route:n})).html;r=(await v.runMiddlewareChain(`transformHtml`,{html:r,path:e})).html;let i=te();return i&&(r=Ue(r,i)),r}catch{return t}}}}return{ssgOptions:A,build:{ssrManifest:m},optimizeDeps:{include:[`react`,`react-dom`,`react-dom/client`,`react-router-dom`,`react-helmet-async`,`react-fast-compare`,`invariant`,`lucide-react`],exclude:[`boltdocs`,`boltdocs/client`]},resolve:{alias:n?[]:[{find:`react-router-dom`,replacement:q(`react-router-dom`)},{find:`react-helmet-async`,replacement:q(`react-helmet-async`)},{find:`@bdocs/ssg`,replacement:q(`@bdocs/ssg`)}],dedupe:[`react`,`react-dom`,...n?[]:[`react-router-dom`,`react-helmet-async`,`@bdocs/ssg`]]},ssr:{external:[`react`,`react-dom`,`react-helmet-async`,`react-router-dom`,`@bdocs/ssg`,`jsdom`,`lucide-react`,`react-fast-compare`,`invariant`,`scheduler`,...J(Y)],optimizeDeps:{include:[`react-fast-compare`]},noExternal:[]}}},configResolved(e){if(d=e,!Q){Q=new Map;for(let e of X)try{let t=q(e),n=F.realpathSync(t);Q.set(e,n)}catch{}for(let e of[`react`,`react-dom`,`jsdom`,`lucide-react`,`react-fast-compare`,`invariant`,`scheduler`])try{let t=Y.resolve(e),n=F.realpathSync(t);Q.set(e,n)}catch{}}},resolveId(e,t,n){let r=Xe(),i=Ze(e,n?.ssr),a=r.get(i);if(a!==void 0)return a;if(!P.isAbsolute(e)&&!e.startsWith(`.`)&&!qe.has(e)&&!e.startsWith(`react`)&&!e.startsWith(`@bdocs`))return r.set(i,null),null;let o=null;if(qe.has(e)&&(o=e),!o&&!P.isAbsolute(e)&&!e.startsWith(`.`)){let t=Je.find(t=>e.startsWith(t));t&&(o=t.slice(0,-1))}if(!o&&e.includes(`/node_modules/`)){for(let t of Qe)if(e.includes(`/node_modules/${t}/`)){o=t;break}}if(o&&n?.ssr&&!P.isAbsolute(e)&&o!==`react`&&o!==`react-dom`){let t=Q?.get(o);if(t){let e={id:t,external:!0};return r.set(i,e),e}let n=K(Y),a=e;try{a=X.has(o)?q(e,n):n.resolve(e)}catch{try{a=X.has(o)?q(e,Y):Y.resolve(e)}catch{}}try{a=F.realpathSync(a)}catch{}let s={id:a,external:!0};return r.set(i,s),s}return r.set(i,null),null},transformIndexHtml:{order:`pre`,handler:e=>be(e,u)},configureServer(e){e.middlewares.use(We(d?.publicDir,d?.base)),e.middlewares.use((e,t,n)=>{let r=e.url?.split(`?`)[0];if(r===`/search.json`||r?.endsWith(`/search.json`)){import(`./virtual-modules-Dlgt1fP0.mjs`).then(()=>{let e=k(_);t.setHeader(`Content-Type`,`application/json`),t.end(JSON.stringify(e))}).catch(e=>{console.error(`[boltdocs] Failed to serve search.json:`,e),t.statusCode=500,t.end(`[]`)});return}n()})},async generateBundle(){if(!(!m||d?.build?.ssr))try{let e=k(_);this.emitFile({type:`asset`,fileName:`search.json`,source:JSON.stringify(e)})}catch(e){console.error(`[boltdocs] Failed to emit search.json:`,e)}},async closeBundle(){!m||d?.build?.ssr||(await v?.runHook(`build:after`),await v?.runHook(`build:end`))},configurePreviewServer(e){e.middlewares.use(xe(M)),e.middlewares.use(Se(I)),o(e,h),i(h).catch(()=>{})}},O(e,M,I,r,h,_),ze(r,l,M,N,L,h,_),...$([ie(u,L,{docsDir:e.docsDir||`docs`})]),...$([re({includePublic:!0})]),...E]}export{it as boltdocsPlugin,K as getBaseRequire,J as getExternalAbsolutePaths,q as resolveEsm};
|