boltdocs 2.7.10 → 2.8.0
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/README.md +2 -2
- package/dist/banner-3N4Jd_L9.d.ts +100 -0
- package/dist/banner-MynZD_Ox.d.cts +100 -0
- package/dist/cache-BMUyNiiA.mjs +6 -0
- package/dist/cache-CKm45d2w.cjs +6 -0
- package/dist/client/index.cjs +2268 -1
- package/dist/client/index.d.cts +86 -110
- package/dist/client/index.d.ts +87 -111
- package/dist/client/index.js +2214 -1
- package/dist/client/mdx.cjs +12 -1
- package/dist/client/mdx.d.cts +39 -93
- package/dist/client/mdx.d.ts +38 -93
- package/dist/client/mdx.js +7 -1
- package/dist/client/primitives.cjs +60 -1
- package/dist/client/primitives.d.cts +411 -347
- package/dist/client/primitives.d.ts +411 -347
- package/dist/client/primitives.js +20 -1
- package/dist/docs-layout-CwCq42Zt.cjs +1348 -0
- package/dist/docs-layout-Dn6S5g59.js +1167 -0
- package/dist/doctor-BArviV8X.cjs +28 -0
- package/dist/doctor-CgLA7_Uv.mjs +28 -0
- package/dist/{doctor-CrytFkqW.cjs → doctor-DyNUVe96.cjs} +1 -1
- package/dist/{routes-DP1vmWRj.cjs → doctor-aN_leTbh.mjs} +1 -1
- package/dist/{generator-ClVanhvi.mjs → generator-BHCrLU6h.mjs} +2 -2
- package/dist/{generator-CHqxiQhF.cjs → generator-CC2yHzhZ.cjs} +2 -2
- package/dist/icons-dev-DvJ-hh9x.cjs +1209 -0
- package/dist/icons-dev-Oju24Wjp.js +845 -0
- package/dist/image-Ch4-GxdO.cjs +268 -0
- package/dist/image-Do8V9PCW.js +214 -0
- package/dist/mdx-D3A2_l7P.js +520 -0
- package/dist/mdx-PLhhPJRS.cjs +531 -0
- package/dist/node/cli-entry.cjs +3 -1
- package/dist/node/cli-entry.mjs +3 -1
- package/dist/node/index.cjs +1 -1
- package/dist/node/index.d.cts +258 -152
- package/dist/node/index.d.mts +258 -150
- package/dist/node/index.mjs +1 -1
- package/dist/node/routes/worker.cjs +1 -1
- package/dist/node/routes/worker.mjs +1 -1
- package/dist/node-BmlP0eBP.cjs +159 -0
- package/dist/node-Y8_4ayje.mjs +159 -0
- package/dist/package-2nFy_NsW.cjs +6 -0
- package/dist/{package--0Yf0t1N.mjs → package-DAbtltXX.mjs} +1 -1
- package/dist/parser-B7-6PyQz.cjs +6 -0
- package/dist/{parser-Aq8LoH-0.cjs → parser-BzB-zCkF.cjs} +1 -1
- package/dist/parser-WGZdWs0X.mjs +6 -0
- package/dist/routes-BDDSxAl0.mjs +6 -0
- package/dist/routes-DJNJ-rTt.cjs +6 -0
- package/dist/routes-DiYC4nD2.cjs +6 -0
- package/dist/routes-_Bb2f4eI.mjs +6 -0
- package/dist/search-dialog-BXVoecTx.cjs +483 -0
- package/dist/search-dialog-BYhOov4S.cjs +331 -0
- package/dist/search-dialog-C09riYmx.js +313 -0
- package/dist/search-dialog-CUeAfy-8.cjs +8 -0
- package/dist/search-dialog-D8gLkhUV.js +453 -0
- package/dist/search-dialog-DHc_8FFX.js +8 -0
- package/dist/{sidebar-CcBkrm06.d.cts → sidebar-DNq4_ZAa.d.ts} +118 -52
- package/dist/{sidebar-CyZS9YOm.d.ts → sidebar-Dlkgbxs6.d.cts} +118 -52
- package/dist/utils-BYITg7T5.mjs +7 -0
- package/dist/utils-Cjmx1hhk.cjs +7 -0
- package/dist/worker-pool-CtqklOXq.cjs +6 -0
- package/dist/worker-pool-k0DY6k8T.mjs +6 -0
- package/package.json +5 -6
- package/src/shared/config-utils.ts +4 -0
- package/src/shared/types.ts +52 -6
- package/dist/cache-Ba-DZQNH.cjs +0 -6
- package/dist/cache-BuMZ58L5.mjs +0 -6
- package/dist/cards-BakZPTz9.d.ts +0 -30
- package/dist/cards-CQn9mXZS.d.cts +0 -30
- package/dist/docs-layout-KoWNZc8_.js +0 -6
- package/dist/docs-layout-x2yKt2cL.cjs +0 -6
- package/dist/doctor-Be7Ly1oM.mjs +0 -21
- package/dist/doctor-jMxWZyLJ.cjs +0 -21
- package/dist/icons-dev-B_RZIyxu.js +0 -6
- package/dist/icons-dev-BlV3wWFT.cjs +0 -6
- package/dist/image-BHhTvQzr.cjs +0 -6
- package/dist/image-CqKzYD8f.js +0 -6
- package/dist/mdx-DudBEac0.js +0 -7
- package/dist/mdx-r4cDQxWu.cjs +0 -7
- package/dist/node-DtEDyN1u.cjs +0 -111
- package/dist/node-_1jhMGYx.mjs +0 -111
- package/dist/package-DrwtlXfk.cjs +0 -6
- package/dist/parser-CdNbqN5y.cjs +0 -6
- package/dist/parser-nE792MLO.mjs +0 -6
- package/dist/rolldown-runtime-fkIsjY3S.mjs +0 -6
- package/dist/routes-2k3tbUmC.cjs +0 -6
- package/dist/routes-CpxZIsMM.mjs +0 -6
- package/dist/search-dialog-B584t9ZF.js +0 -6
- package/dist/search-dialog-BvBopRsZ.cjs +0 -6
- package/dist/search-dialog-ByvGScjt.js +0 -6
- package/dist/search-dialog-Cyko6TJm.cjs +0 -6
- package/dist/search-dialog-D6BNohIJ.js +0 -6
- package/dist/search-dialog-DuYTIefy.cjs +0 -6
- package/dist/utils-CG65J0Sc.mjs +0 -7
- package/dist/utils-CKunkU96.cjs +0 -7
- package/dist/worker-pool-CGn7DrLb.mjs +0 -6
- package/dist/worker-pool-Crbqgw5R.cjs +0 -6
- package/src/client/app/config-context.tsx +0 -51
- package/src/client/app/doc-page.tsx +0 -38
- package/src/client/app/docs-layout.tsx +0 -28
- package/src/client/app/head.tsx +0 -122
- package/src/client/app/helmet-compat.tsx +0 -36
- package/src/client/app/mdx-component.tsx +0 -8
- package/src/client/app/mdx-components-context.tsx +0 -72
- package/src/client/app/routes-context.tsx +0 -34
- package/src/client/app/scroll-handler.tsx +0 -74
- package/src/client/app/theme-context.tsx +0 -103
- package/src/client/app/ui-context.tsx +0 -42
- package/src/client/components/docs-layout-default.tsx +0 -85
- package/src/client/components/icons-dev.tsx +0 -282
- package/src/client/components/mdx/callout.tsx +0 -97
- package/src/client/components/mdx/card.tsx +0 -99
- package/src/client/components/mdx/cards.tsx +0 -27
- package/src/client/components/mdx/code-block.tsx +0 -184
- package/src/client/components/mdx/field.tsx +0 -33
- package/src/client/components/mdx/image.tsx +0 -44
- package/src/client/components/mdx/index.ts +0 -19
- package/src/client/components/mdx/table.tsx +0 -54
- package/src/client/components/mdx/typographics.tsx +0 -120
- package/src/client/components/mdx/use-code-block.ts +0 -34
- package/src/client/components/primitives/breadcrumbs.tsx +0 -54
- package/src/client/components/primitives/button-group.tsx +0 -54
- package/src/client/components/primitives/button.tsx +0 -6
- package/src/client/components/primitives/code-block.tsx +0 -120
- package/src/client/components/primitives/docs-layout.tsx +0 -125
- package/src/client/components/primitives/error-boundary.tsx +0 -107
- package/src/client/components/primitives/heading.tsx +0 -128
- package/src/client/components/primitives/helpers/observer.ts +0 -141
- package/src/client/components/primitives/image.tsx +0 -26
- package/src/client/components/primitives/link.tsx +0 -102
- package/src/client/components/primitives/menu.tsx +0 -137
- package/src/client/components/primitives/navbar.tsx +0 -466
- package/src/client/components/primitives/on-this-page.tsx +0 -430
- package/src/client/components/primitives/page-nav.tsx +0 -51
- package/src/client/components/primitives/popover.tsx +0 -28
- package/src/client/components/primitives/search-dialog.tsx +0 -193
- package/src/client/components/primitives/sidebar.tsx +0 -423
- package/src/client/components/primitives/skeleton.tsx +0 -26
- package/src/client/components/primitives/tabs.tsx +0 -70
- package/src/client/components/primitives/tooltip.tsx +0 -81
- package/src/client/components/primitives/types.ts +0 -11
- package/src/client/components/ui-base/banner.tsx +0 -66
- package/src/client/components/ui-base/breadcrumbs.tsx +0 -44
- package/src/client/components/ui-base/copy-markdown.tsx +0 -107
- package/src/client/components/ui-base/error-boundary.tsx +0 -15
- package/src/client/components/ui-base/github-stars.tsx +0 -29
- package/src/client/components/ui-base/icons.tsx +0 -240
- package/src/client/components/ui-base/index.ts +0 -16
- package/src/client/components/ui-base/last-updated.tsx +0 -27
- package/src/client/components/ui-base/navbar.tsx +0 -266
- package/src/client/components/ui-base/not-found.tsx +0 -26
- package/src/client/components/ui-base/on-this-page.tsx +0 -57
- package/src/client/components/ui-base/page-nav.tsx +0 -50
- package/src/client/components/ui-base/search-dialog.tsx +0 -163
- package/src/client/components/ui-base/search-highlight.tsx +0 -10
- package/src/client/components/ui-base/sidebar.tsx +0 -92
- package/src/client/components/ui-base/tabs.tsx +0 -83
- package/src/client/components/ui-base/theme-toggle.tsx +0 -130
- package/src/client/components/ui-base/version-i18n.tsx +0 -80
- package/src/client/hooks/index.ts +0 -13
- package/src/client/hooks/use-analytics.ts +0 -272
- package/src/client/hooks/use-breadcrumbs.ts +0 -22
- package/src/client/hooks/use-i18n.ts +0 -182
- package/src/client/hooks/use-localized-to.ts +0 -113
- package/src/client/hooks/use-location.ts +0 -5
- package/src/client/hooks/use-navbar.ts +0 -130
- package/src/client/hooks/use-page-nav.ts +0 -46
- package/src/client/hooks/use-routes.ts +0 -108
- package/src/client/hooks/use-search-highlight.ts +0 -185
- package/src/client/hooks/use-search.ts +0 -118
- package/src/client/hooks/use-sidebar.ts +0 -205
- package/src/client/hooks/use-tabs.ts +0 -46
- package/src/client/hooks/use-version.ts +0 -111
- package/src/client/index.ts +0 -31
- package/src/client/mdx.ts +0 -2
- package/src/client/primitives.ts +0 -19
- package/src/client/ssg/boltdocs-shell.tsx +0 -148
- package/src/client/ssg/create-routes.tsx +0 -473
- package/src/client/ssg/index.ts +0 -4
- package/src/client/ssg/mdx-page.tsx +0 -38
- package/src/client/store/boltdocs-context.tsx +0 -137
- package/src/client/theme/neutral.css +0 -141
- package/src/client/theme/reset.css +0 -189
- package/src/client/types.ts +0 -116
- package/src/client/utils/cn.ts +0 -6
- package/src/client/utils/copy-clipboard.ts +0 -22
- package/src/client/utils/get-base-file-path.ts +0 -21
- package/src/client/utils/github.ts +0 -121
- package/src/client/utils/i18n.ts +0 -23
- package/src/client/utils/path.ts +0 -9
- package/src/client/utils/react-to-text.ts +0 -34
- package/src/client/virtual.d.ts +0 -24
- /package/dist/{meta-loader-CWg2gnbY.mjs → meta-loader-DzwDFtdT.mjs} +0 -0
|
@@ -0,0 +1,159 @@
|
|
|
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-CU-zTemE.cjs`),t=require(`./utils-Cjmx1hhk.cjs`),n=require(`./cache-CKm45d2w.cjs`),r=require(`./routes-DiYC4nD2.cjs`),i=require(`./doctor-BArviV8X.cjs`);let a=require(`@vitejs/plugin-react`);a=e.t(a);let o=require(`@tailwindcss/vite`);o=e.t(o);let s=require(`vite`),c=require(`node:path`);c=e.t(c);let l=require(`node:fs`);l=e.t(l);let u=require(`zod`),d=require(`@bdocs/dui`);d=e.t(d);let f=require(`node:crypto`);f=e.t(f);let ee=require(`vite-plugin-image-optimizer`),p=require(`semver`);p=e.t(p);let m=require(`node:module`);m=e.t(m);let h=require(`@bdocs/ssg/node`),g=require(`unist-util-visit`),te=require(`shiki/engine/javascript`),_=require(`shiki/core`),v=require(`@shikijs/themes/github-light`);v=e.t(v);let y=require(`@shikijs/themes/github-dark`);y=e.t(y);let b=require(`@shikijs/themes/tokyo-night`);b=e.t(b);let x=require(`@shikijs/themes/dracula`);x=e.t(x);let S=require(`@shikijs/themes/nord`);S=e.t(S);let C=require(`@shikijs/themes/one-dark-pro`);C=e.t(C);let w=require(`@shikijs/themes/one-light`);w=e.t(w);let T=require(`@shikijs/langs/html`);T=e.t(T);let E=require(`@shikijs/langs/js`);E=e.t(E);let D=require(`@shikijs/langs/ts`);D=e.t(D);let O=require(`@shikijs/langs/tsx`);O=e.t(O);let k=require(`@shikijs/langs/css`);k=e.t(k);let ne=require(`@shikijs/langs/json`);ne=e.t(ne);let re=require(`@shikijs/langs/bash`);re=e.t(re);let ie=require(`@shikijs/langs/markdown`);ie=e.t(ie);let ae=require(`@shikijs/langs/mdx`);ae=e.t(ae);let oe=require(`@shikijs/langs/yaml`);oe=e.t(oe);let se=require(`@shikijs/langs/rust`);se=e.t(se);let ce=require(`@shikijs/langs/toml`);ce=e.t(ce);let le=require(`@shikijs/langs/csv`);le=e.t(le);let A=require(`@mdx-js/rollup`);A=e.t(A);let j=require(`remark-gfm`);j=e.t(j);let M=require(`remark-frontmatter`);M=e.t(M);let N=require(`rehype-slug`);N=e.t(N);function ue(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
|
+
<title>${e.theme?.title||`Boltdocs`}</title>
|
|
12
|
+
</head>
|
|
13
|
+
<body>
|
|
14
|
+
<div id="root"></div>
|
|
15
|
+
</body>
|
|
16
|
+
</html>`}function de(e,t){(!e||!e.includes(`<body`)||!e.includes(`<head`))&&(e=ue(t));let n=t.theme,r=n?.title||`Boltdocs`;if(typeof r==`object`){let e=t.i18n?.defaultLocale||``;r=r[e]||Object.values(r)[0]||`Boltdocs`}let i=n?.description||``;if(typeof i==`object`){let e=t.i18n?.defaultLocale||``;i=i[e]||Object.values(i)[0]||``}let a=n?.favicon;!a&&n?.logo&&(a=typeof n.logo==`string`?n.logo:n.logo.light||n.logo.dark);let o=[a?`<link rel="icon" href="${a}">`:``,`<meta name="description" content="${i}">`,`<meta property="og:title" content="${r}">`,`<meta property="og:description" content="${i}">`,`<meta property="og:type" content="website">`,t.siteUrl?`<meta property="og:url" content="${t.siteUrl}">`:``,t.siteUrl?`<link rel="canonical" href="${t.siteUrl}">`:``,`<meta name="twitter:card" content="summary_large_image">`,`<meta name="twitter:title" content="${r}">`,`<meta name="twitter:description" content="${i}">`,`<meta name="generator" content="Boltdocs">`].filter(Boolean).join(`
|
|
17
|
+
`);e=e.includes(`<title>`)?e.replace(/<title>.*?<\/title>/,`<title>${r}</title>`):e.replace(`</head>`,` <title>${r}</title>\n </head>`);let s=``;if(t.integrations?.ga4){let e=t.integrations.ga4;if(process.env.NODE_ENV===`production`||e.debug){let t=e.anonymizeIp?`gtag('set', 'ip', true);`:``,n=e.sendPageView===!1?`{send_page_view: false}`:`{}`,r=e.cookieFlags?`, {'cookie_flags': '${e.cookieFlags}'}`:``;s=`
|
|
18
|
+
<!-- Google tag (gtag.js) - ${e.measurementId} -->
|
|
19
|
+
<script async src="https://www.googletagmanager.com/gtag/js?id=${e.measurementId}"><\/script>
|
|
20
|
+
<script>
|
|
21
|
+
window.dataLayer = window.dataLayer || [];
|
|
22
|
+
function gtag(){dataLayer.push(arguments);}
|
|
23
|
+
gtag('js', new Date());
|
|
24
|
+
${t}
|
|
25
|
+
gtag('config', '${e.measurementId}', ${n}${r});
|
|
26
|
+
<\/script>
|
|
27
|
+
`}}let c=``,l=``;if(t.integrations?.gtm){let e=t.integrations.gtm;if(process.env.NODE_ENV===`production`){let t=e.dataLayerName||`dataLayer`;c=`
|
|
28
|
+
<!-- Google Tag Manager -->
|
|
29
|
+
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
|
|
30
|
+
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
|
|
31
|
+
j=d.createElement(s),dl=l!='${t}'?'&l='+l:'';j.async=true;j.src=
|
|
32
|
+
'https://www.googletagmanager.com/gtm.js?id='+i+dl+'${e.preview?`>m_preview=${e.preview}`:``}';f.parentNode.insertBefore(j,f);
|
|
33
|
+
})(window,document,'script','${t}','${e.tagId}');<\/script>
|
|
34
|
+
<!-- End Google Tag Manager -->
|
|
35
|
+
`,l=`
|
|
36
|
+
<!-- Google Tag Manager (noscript) -->
|
|
37
|
+
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=${e.tagId}"
|
|
38
|
+
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
|
|
39
|
+
<!-- End Google Tag Manager (noscript) -->
|
|
40
|
+
`}}return e=e.replace(`</head>`,` ${o}\n
|
|
41
|
+
<script>
|
|
42
|
+
(function() {
|
|
43
|
+
try {
|
|
44
|
+
var stored = localStorage.getItem("boltdocs-theme");
|
|
45
|
+
var isDark =
|
|
46
|
+
stored === "dark" ||
|
|
47
|
+
(stored !== "light" && window.matchMedia("(prefers-color-scheme: dark)").matches);
|
|
48
|
+
document.documentElement.classList.toggle("dark", isDark);
|
|
49
|
+
document.documentElement.dataset.theme = isDark ? "dark" : "light";
|
|
50
|
+
} catch (e) {
|
|
51
|
+
// Ignore localStorage errors (e.g. if cookies/storage are disabled)
|
|
52
|
+
}
|
|
53
|
+
})();
|
|
54
|
+
<\/script>
|
|
55
|
+
\n${s}${c} </head>`),l&&(e=e.replace(/<body([^>]*)>/,`<body$1>\n${l}`)),!e.includes(`src/main`)&&!e.includes(`virtual:boltdocs-entry`)&&(e=e.replace(`</body>`,` <script type="module">import "virtual:boltdocs-entry";<\/script>
|
|
56
|
+
</body>`)),e}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}`)}},fe=class extends P{constructor(e,t){super(e,`Compatibility error: ${t}`)}},I=class extends P{constructor(e,t,n){super(e,`Error in hook '${t}': ${n.message}`,{cause:n}),this.hookName=t}},pe=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 me=i._.extend({version:u.z.string().optional(),boltdocsVersion:u.z.string().optional(),hooks:u.z.object({beforeBuild:u.z.function().optional(),afterBuild:u.z.function().optional(),beforeDev:u.z.function().optional(),afterDev:u.z.function().optional(),buildEnd:u.z.function().optional(),transformMdx:u.z.function().optional(),transformHtml:u.z.function().optional()}).optional()});function he(e,t){let n=[],r=new Set;for(let i of e){let e=me.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&&!p.default.satisfies(t,a.boltdocsVersion))throw new fe(a.name,`Plugin expects Boltdocs version ${a.boltdocsVersion}, but current is ${t}`);if(a.components){for(let[e,t]of Object.entries(a.components))if((t.includes(`..`)||c.default.isAbsolute(t))&&t.includes(`..`))throw new F(a.name,`Component '${e}' has an invalid path: traversal sequences are not allowed.`)}n.push(a)}return n}function ge(e,t=process.cwd()){let n=e.plugins||[];for(let e of n)if(e.name)try{let n=null;try{let{createRequire:r}=require(`node:module`);n=r(c.default.resolve(t,`package.json`)).resolve(`${e.name}/package.json`)}catch{let r=c.default.resolve(t,`node_modules`,e.name,`package.json`);l.default.existsSync(r)&&(n=r)}if(n&&l.default.existsSync(n)){let t=JSON.parse(l.default.readFileSync(n,`utf-8`)).scripts||{};(t.preinstall||t.postinstall||t.install)&&(0,d.warn)(`💡 ${d.colors.yellow(d.colors.bold(`Nota de seguridad:`))} El plugin ${d.colors.cyan(e.name)} ejecuta scripts nativos al instalarse. Corre ${d.colors.bold(`boltdocs audit`)} para un análisis detallado.`)}}catch{}}var _e=class{name=`ConfigResolve`;async execute(e){e.config=await i.p(`docs`,e.root),ge(e.config,e.root),e.viteConfig=await Nt(e.root,`production`)}};function L(e){return e.map(e=>({path:e.path,filePath:e.filePath,title:e.title,description:e.description||``,sidebarPosition:e.sidebarPosition,badge:e.badge,icon:e.icon,headings:e.headings||[],_content:e._content||``,_rawContent:e._rawContent||``,locale:e.locale,version:e.version,tab:e.tab,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,frontmatter:e.frontmatter,slugParts:e.slugParts}))}var ve=class{name=`RouteGenerate`;async execute(e){if(!e.config)throw Error(`Config not resolved. Run ConfigResolve first.`);let t=c.default.resolve(e.root,`docs`),n=e.viteConfig?.base||e.config.base||`/docs`;e.routes=[...await r.t(t,e.config,n)],e.ssgRoutes=L(e.routes)}};const ye=u.z.object({title:u.z.string().optional(),description:u.z.string().optional(),canonical:u.z.string().url().optional(),robots:u.z.string().optional(),noindex:u.z.boolean().optional(),"og:title":u.z.string().optional(),"og:description":u.z.string().optional(),"og:image":u.z.string().optional(),"og:type":u.z.string().optional(),"og:url":u.z.string().url().optional()});var be=class{name=`SEOValidate`;async execute(e){if(!e.routes||!e.config)throw Error(`Routes or Config not initialized.`);let t=e.config.siteUrl;e.routes=e.routes.map(e=>{let n=e.seo||{},r=n.canonical||(t?`${t.replace(/\/$/,``)}${e.path}`:void 0),i=n[`og:url`]||r||void 0,a={...n};r&&(a.canonical=r),i&&(a[`og:url`]=i),!a[`og:title`]&&e.title&&(a[`og:title`]=e.title),!a[`og:description`]&&e.description&&(a[`og:description`]=e.description);let o=ye.safeParse(a);return o.success||(0,d.warn)(`[SEOValidate] Validation issues on route "${e.path}":`,o.error.message),e.title||(0,d.warn)(`[SEOValidate] Route "${e.path}" is missing a title.`),{...e,seo:a}}),e.ssgRoutes=L(e.routes)}},xe=class{name=`TypeGenerate`;async execute(e){if(!e.config||!e.routes)throw Error(`Config or Routes not initialized.`);let t=c.default.resolve(e.root,`docs`),n=e.routes.map(e=>e.path),r=(e.config.base||`/docs`).replace(/\/$/,``);n.includes(r)||n.push(r),i.h(e.config,t,e.root,n),i.g(n)}},Se=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}await(0,h.build)({entry:`boltdocs/entry`,routeToSourceFileMap:t,cacheDir:c.default.resolve(e.root,`.boltdocs/build`)},e.viteConfig),e.outDir=e.viteConfig.build?.outDir||`dist`}};function Ce(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"?>
|
|
57
|
+
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
|
58
|
+
${e.filter(e=>e.seo?.noindex||typeof e.seo?.robots==`string`&&e.seo.robots.includes(`noindex`)?!1:(i&&e.seo?.index,!0)).map(e=>` <url>
|
|
59
|
+
<loc>${t.r(`${r}${e.path.startsWith(`/`)?e.path:`/${e.path}`}`)}</loc>
|
|
60
|
+
<changefreq>weekly</changefreq>
|
|
61
|
+
<priority>0.7</priority>
|
|
62
|
+
</url>`).join(`
|
|
63
|
+
`)}
|
|
64
|
+
</urlset>`}function we(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(`
|
|
65
|
+
`);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(`
|
|
66
|
+
`)+`
|
|
67
|
+
`:t+=`Allow: ${e.allow}\n`),e.disallow&&(Array.isArray(e.disallow)?t+=e.disallow.map(e=>`Disallow: ${e}`).join(`
|
|
68
|
+
`)+`
|
|
69
|
+
`:t+=`Disallow: ${e.disallow}\n`),t.trim()}).join(`
|
|
70
|
+
|
|
71
|
+
`),a=[...n?[n]:[],...r].map(e=>`Sitemap: ${e}`).join(`
|
|
72
|
+
`);return`${i}${a?`\n\n${a}`:``}`}return[`User-agent: *`,`Allow: /`,``,n?`Sitemap: ${n}`:``].filter(Boolean).join(`
|
|
73
|
+
`)}var Te=class{name=`SEOWrite`;async execute(e){if(!e.ssgRoutes||!e.config||!e.outDir)throw Error(`SSG Routes, Config, or OutDir not initialized.`);let t=Ce(e.ssgRoutes,e.config),n=c.default.resolve(e.root,e.outDir);t&&l.default.writeFileSync(c.default.join(n,`sitemap.xml`),t,`utf-8`);let r=we(e.config);l.default.writeFileSync(c.default.join(n,`robots.txt`),r,`utf-8`)}};function Ee(){return new De().addStep(new _e).addStep(new ve).addStep(new be).addStep(new xe).addStep(new Se).addStep(new Te)}var De=class{steps=[];addStep(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=performance.now();try{await e.execute(r);let n=performance.now()-i;t.push({name:e.name,duration:n,success:!0}),r.timing[e.name]=n}catch(a){let o=performance.now()-i;t.push({name:e.name,duration:o,success:!1,error:a instanceof Error?a:Error(String(a))});for(let e of t.filter(e=>e.success).reverse()){let t=this.steps.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 s=performance.now()-n;return{success:!1,failedStep:e.name,error:a instanceof Error?a:Error(String(a)),timing:{total:s,steps:r.timing},stepResults:t}}}return{success:!0,timing:{total:performance.now()-n,steps:r.timing},stepResults:t}}},Oe=class{plugins;config;store;docsDir;rootDir;constructor(e,t,n,r){this.plugins=e,this.config=t,this.store=new pe,this.docsDir=n||process.cwd(),this.rootDir=r||process.cwd()}async runHook(e,...t){let n=this.getSortedPlugins(),r=new De;for(let i of n)i.hooks?.[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){if(!t.hooks?.[e])continue;let n=this.createContext(t);try{let i=t.hooks[e],a=await i(n,r);a!==void 0&&(r=a)}catch(r){let i=new I(t.name,e,r instanceof Error?r:Error(String(r)));n.logger.error(i)}}return r}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=e.hooks[t];await i(r,...n)}catch(n){let i=new I(e.name,t,n instanceof Error?n:Error(String(n)));r.logger.error(i)}},rollback:async()=>{let t=e.hooks?.buildEnd;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,meta:{name:e.name,version:e.version,boltdocsVersion:e.boltdocsVersion},store:{get:(e,t)=>this.store.get(e,t),set:(e,t,n)=>this.store.set(e,t,n),has:(e,t)=>this.store.has(e,t)},logger:this.createLogger(e.name)}}createLogger(e){let t=`[plugin:${e}]`;return{info:e=>d.info(`${t} ${e}`),warn:e=>d.warn(`${t} ${e}`),error:e=>{d.error(`${t} ${e instanceof Error?e.message:e}`)},debug:e=>d.debug(`${t} ${e}`)}}};const R={ROOT:`root`,ELEMENT:`element`,TEXT:`text`,COMMENT:`comment`,CODE:`code`,INLINE_CODE:`inlineCode`,HEADING:`heading`,PARAGRAPH:`paragraph`,LINK:`link`,IMAGE:`image`,LIST:`list`,LIST_ITEM:`listItem`,JSX_FLOW_ELEMENT:`mdxJsxFlowElement`,JSX_TEXT_ELEMENT:`mdxJsxTextElement`,JSX_ATTRIBUTE:`mdxJsxAttribute`,FLOW_EXPRESSION:`mdxFlowExpression`,TEXT_EXPRESSION:`mdxTextExpression`,ESM:`mdxjsEsm`},z={TITLE:`data-title`,LANG:`data-lang`,HIGHLIGHTED:`data-highlighted`,HIGHLIGHTED_HTML:`data-highlighted-html`},B={LINE_NUMBERS:`shiki-line-numbers`,WORD_WRAP:`shiki-word-wrap`,FALLBACK:`shiki-fallback`},ke={LIGHT:`github-light`,DARK:`github-dark`},V={LANG:`plaintext`,MDX_DEFAULT_LANG:`text`},Ae=[v.default.default||v.default,y.default.default||y.default,b.default.default||b.default,x.default.default||x.default,S.default.default||S.default,C.default.default||C.default,w.default.default||w.default],je=[T.default,E.default,D.default,O.default,k.default,ne.default,re.default,ie.default,ae.default,oe.default,se.default,ce.default,le.default];let Me=null,H=null;const Ne=()=>(Me??=(0,te.createJavaScriptRegexEngine)(),Me),Pe=async e=>H||(H=(0,_.createHighlighterCore)({themes:Ae,langs:je,engine:Ne()}),H),Fe=(e={})=>{let{activateByDefault:t=!1}=e;return{name:`boltdocs:line-numbers`,pre(e){let n=this.options.meta?.lineNumbers===!0;(t||n)&&this.addClassToHast(e,B.LINE_NUMBERS)}}},Ie=(e={})=>{let{activateByDefault:t=!1}=e;return{name:`boltdocs:word-wrap`,pre(e){let n=this.options.meta?.wordWrap===!0;(t||n)&&this.addClassToHast(e,B.WORD_WRAP)}}},Le=()=>({name:`AddTitleProperty`,pre(e){let t=this.options.meta?.title;t&&(e.properties[z.TITLE]=t)}}),Re=()=>({name:`AddLanguageProperty`,pre(e){e.properties[z.LANG]=this.options.lang||V.LANG}});function U(e){let t={};if(!e)return t;/lineNumbers|showLineNumbers/.test(e)&&(t.lineNumbers=!0),/wordWrap|word-wrap/.test(e)&&(t.wordWrap=!0);let n=e.match(/title=(["'])(.*?)\1/);return n&&(t.title=n[2]),t}var ze=class{config;constructor(e){this.config=e}getTheme(){return this.config?.theme?.codeTheme||{light:ke.LIGHT,dark:ke.DARK}}async getHighlighter(){return await Pe(this.getTheme())}getOptions(e,t){let n=this.getTheme(),r={},i=``;typeof t==`string`?(i=t,r=U(t)):t&&(r=t,i=t.__raw||``);let a={lang:e||V.LANG,meta:{__raw:i,...r},transformers:[Fe(),Ie(),Le(),Re()]};return typeof n==`object`?a.themes={light:n.light,dark:n.dark}:a.theme=n,a}async render(e,n,r){try{let t=await this.getHighlighter(),i=this.getOptions(n,r);return t.codeToHtml(e,i)}catch(n){return(0,d.error)(`[ShikiAdapter] Failed to render code:`,n),`<pre class="${B.FALLBACK}"><code>${t.n(e)}</code></pre>`}}};let Be=null,Ve;function He(e){let t=JSON.stringify(e?.theme?.codeTheme||null);return(Be===null||Ve!==t)&&(Be=new ze(e),Ve=t),Be}function W(e,t,n){e&&(0,g.visit)(e,typeof t==`function`?t:e=>Array.isArray(t)?t.includes(e.type):e.type===t,(e,t,r)=>{if(t!==void 0&&r!==void 0)return n(e,t,r)})}function Ue(e,t,n){W(e,R.ELEMENT,(e,r,i)=>{if(e.tagName===t)return n(e,r,i)})}function We(e,t,n){let r=Array.isArray(t)?t:[t],i=[R.JSX_FLOW_ELEMENT,R.JSX_TEXT_ELEMENT];W(e,e=>i.includes(e.type),(e,t,i)=>{if(e.name&&r.includes(e.name))return n(e,t,i)})}function Ge(e,t,n){e&&(e.data=e.data||{},e.data.hProperties=e.data.hProperties||{},e.data.hProperties[t]=n)}function Ke(e,t){return e?.data?.hProperties?.[t]}function qe(e,t){return typeof t==`object`&&t?{type:R.JSX_ATTRIBUTE,name:e,value:t}:{type:R.JSX_ATTRIBUTE,name:e,value:String(t)}}function Je(e,t={},n=[]){return{type:R.ELEMENT,tagName:e,properties:t,children:n}}function Ye(e,t={},n=[],r=!0){let i=Object.entries(t).map(([e,t])=>qe(e,t));return{type:r?R.JSX_FLOW_ELEMENT:R.JSX_TEXT_ELEMENT,name:e,attributes:i,children:n}}function Xe(e,t){e&&(0,g.visit)(e,R.HEADING,(e,n,r)=>{if(n!==void 0&&r!==void 0)return t(e,n,r)})}function Ze(e,t){e&&(0,g.visit)(e,R.LINK,(e,n,r)=>{if(n!==void 0&&r!==void 0)return t(e,n,r)})}function Qe(e,t){if(!e)return;e.properties=e.properties||{};let n=e.properties.className;Array.isArray(n)?n.includes(t)||n.push(t):typeof n==`string`?n!==t&&(e.properties.className=[n,t]):e.properties.className=[t]}function $e(e,t){if(!e||!e.properties||!e.properties.className)return;let n=e.properties.className;Array.isArray(n)?e.properties.className=n.filter(e=>e!==t):typeof n==`string`&&n===t&&delete e.properties.className}function et(e,t){if(!e||!e.properties||!e.properties.className)return!1;let n=e.properties.className;return Array.isArray(n)?n.includes(t):typeof n==`string`?n===t:!1}function tt(e){return e}function G(e){return typeof e==`string`?[e]:Array.isArray(e)?e.flatMap(G):e&&typeof e==`object`?Object.values(e).flatMap(G):[]}const nt=new Set([`title`,`description`,`permalink`,`sidebarPosition`,`sidebarLabel`,`sidebarHidden`,`hidden`,`category`,`order`,`badge`,`icon`,`date`,`lastUpdated`,`groupTitle`,`groupPosition`,`seo`]);function rt(e){let t=[];for(let n of e){let e=``;n.frontmatter&&(e=G(Object.entries(n.frontmatter).filter(([e])=>!nt.has(e)).map(([e,t])=>t)).join(` `));let r=e?`${n._content||``} ${e}`:n._content||``;if(t.push({id:n.path,title:n.title,content:r,url:n.path,display:n.groupTitle?`${n.groupTitle} > ${n.title}`:n.title,locale:n.locale,version:n.version}),n.headings)for(let e of n.headings)t.push({id:`${n.path}#${e.id}`,title:e.text,content:`${e.text} in ${n.title}`,url:`${n.path}#${e.id}`,display:`${n.title} > ${e.text}`,locale:n.locale,version:n.version})}return t}function K(e,n){let r=c.default.resolve(process.cwd(),`index.css`),i=l.default.existsSync(r)?`import './index.css';`:``,a=n?.plugins?.flatMap(e=>Object.entries(e.components||{}))||[],o=a.map(([e,n])=>`import * as _comp_${e} from '${t.u(n)}';
|
|
74
|
+
const ${e} = _comp_${e}.default || _comp_${e}['${e}'] || _comp_${e};`).join(`
|
|
75
|
+
`),s=a.map(([e])=>e).join(`, `),u=c.default.basename(e.docsDir||`docs`),d=c.default.resolve(process.cwd(),e.docsDir||`docs`),f=[`tsx`,`ts`,`jsx`,`js`].map(e=>c.default.resolve(d,`pages-external/index.${e}`)).find(e=>l.default.existsSync(e)),ee=f?`import * as _external_module from '${t.u(f)}';`:``,p=f?`externalPages: _external_module.pages, externalLayout: _external_module.layout,`:``,m=process.env.VITE_SSG===`true`,h=m?`{ eager: true }`:`{}`,g=m?``:`
|
|
76
|
+
if (typeof window !== 'undefined') {
|
|
77
|
+
const prefetchAll = () => {
|
|
78
|
+
const getters = Object.values(mdxModules)
|
|
79
|
+
if (getters.length === 0) return
|
|
80
|
+
let i = 0
|
|
81
|
+
const nextBatch = () => {
|
|
82
|
+
if (i >= getters.length) return
|
|
83
|
+
const batch = getters.slice(i, i + 6)
|
|
84
|
+
i += batch.length
|
|
85
|
+
Promise.allSettled(batch.map(fn => fn())).then(() => {
|
|
86
|
+
setTimeout(nextBatch, 0)
|
|
87
|
+
})
|
|
88
|
+
}
|
|
89
|
+
;(typeof requestIdleCallback === 'function' ? requestIdleCallback : function(cb) { setTimeout(cb, 500) })(nextBatch)
|
|
90
|
+
}
|
|
91
|
+
prefetchAll()
|
|
92
|
+
}
|
|
93
|
+
`;return`
|
|
94
|
+
import { ViteReactSSG, createRoutes } from 'boltdocs/client'
|
|
95
|
+
import _routes from 'virtual:boltdocs-routes.ts'
|
|
96
|
+
import _collections from 'virtual:boltdocs-collections.ts'
|
|
97
|
+
import _config from 'virtual:boltdocs-config.ts'
|
|
98
|
+
import _user_mdx_components from 'virtual:boltdocs-mdx-components.tsx'
|
|
99
|
+
${i}
|
|
100
|
+
${o}
|
|
101
|
+
${ee}
|
|
102
|
+
|
|
103
|
+
const mdxModules = import.meta.glob('/${u}/**/*.{md,mdx}', ${h});
|
|
104
|
+
|
|
105
|
+
const _collLayoutMods = import.meta.glob('${`/${u}/**/layout.tsx`}', { eager: true });
|
|
106
|
+
const _collListMods = import.meta.glob('${`/${u}/**/list.tsx`}', { eager: true });
|
|
107
|
+
const _collPostMods = import.meta.glob('${`/${u}/**/post.tsx`}', { eager: true });
|
|
108
|
+
|
|
109
|
+
const _collectionLayouts = {};
|
|
110
|
+
for (const [p, mod] of Object.entries(_collLayoutMods)) {
|
|
111
|
+
const dir = p.split('/').slice(-2, -1)[0];
|
|
112
|
+
if (dir.startsWith('[') && dir.endsWith(']')) {
|
|
113
|
+
_collectionLayouts[dir.slice(1, -1)] = mod.default || mod;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
const _collectionLists = {};
|
|
118
|
+
for (const [p, mod] of Object.entries(_collListMods)) {
|
|
119
|
+
const dir = p.split('/').slice(-2, -1)[0];
|
|
120
|
+
if (dir.startsWith('[') && dir.endsWith(']')) {
|
|
121
|
+
_collectionLists[dir.slice(1, -1)] = mod.default || mod;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
const _collectionPosts = {};
|
|
126
|
+
for (const [p, mod] of Object.entries(_collPostMods)) {
|
|
127
|
+
const dir = p.split('/').slice(-2, -1)[0];
|
|
128
|
+
if (dir.startsWith('[') && dir.endsWith(']')) {
|
|
129
|
+
_collectionPosts[dir.slice(1, -1)] = mod.default || mod;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
export const createRoot = ViteReactSSG(
|
|
134
|
+
{
|
|
135
|
+
routes: createRoutes({
|
|
136
|
+
routesData: _routes,
|
|
137
|
+
collectionsData: _collections,
|
|
138
|
+
collectionLayouts: _collectionLayouts,
|
|
139
|
+
collectionLists: _collectionLists,
|
|
140
|
+
collectionPosts: _collectionPosts,
|
|
141
|
+
config: _config,
|
|
142
|
+
mdxModules,
|
|
143
|
+
${p}
|
|
144
|
+
components: { ${s}${s?`, `:``} ...(_user_mdx_components || {}) },
|
|
145
|
+
}),
|
|
146
|
+
},
|
|
147
|
+
({ isClient }) => {
|
|
148
|
+
// Boltdocs initialization hook
|
|
149
|
+
if (isClient) {
|
|
150
|
+
// Client-side initialization
|
|
151
|
+
}
|
|
152
|
+
},
|
|
153
|
+
);
|
|
154
|
+
${g}
|
|
155
|
+
`}let q=null,J=null;function it(){q=null,J=null}function at(e,n,i,a){return{name:`vite-plugin-boltdocs-virtual-modules`,resolveId(e){let n=i()?.root||process.cwd();return e.includes(`boltdocs-entry.tsx`)||e===`virtual:boltdocs-entry`||e===`boltdocs-entry`||e===`\0virtual:boltdocs-entry`?t.u(c.default.resolve(n,`boltdocs-entry.tsx`)):e.includes(`boltdocs-client.mjs`)||e===`virtual:boltdocs-client`||e===`boltdocs-client`||e===`\0virtual:boltdocs-client.ts`?t.u(c.default.resolve(n,`boltdocs-client.mjs`)):e.startsWith(`virtual:boltdocs-`)?`\0`+e:e.startsWith(`\0virtual:boltdocs-`)?e:null},async load(i){let o=n();if(i.includes(`boltdocs-entry.tsx`)||i===`\0virtual:boltdocs-entry`)return K(e,o);if(i.includes(`boltdocs-client.mjs`)||i===`\0virtual:boltdocs-client.ts`||i===`virtual:boltdocs-client`){let e=__dirname,n=e;for(;e!==c.default.parse(e).root;){if(l.default.existsSync(c.default.join(e,`package.json`))&&JSON.parse(l.default.readFileSync(c.default.join(e,`package.json`),`utf-8`)).name===`boltdocs`){n=e;break}e=c.default.dirname(e)}let r=c.default.join(n,`src/client/index.ts`),i=c.default.join(n,`dist/client/index.js`);return`export * from '${t.u(l.default.existsSync(r)?r:i)}';`}if(!i.startsWith(`\0virtual:boltdocs-`))return;let s=i.replace(`\0virtual:boltdocs-`,``).replace(/\.tsx?$/,``);if(s===`routes`){let e=L(await r.t(a,o));return`export default ${JSON.stringify(e,null,2)};`}if(s===`collections`){let e=L(await r.t(a,o)),t={};for(let n of e)n.collection&&(t[n.collection]||(t[n.collection]=[]),t[n.collection].push({path:n.path,title:n.title,date:n.date,excerpt:n.excerpt,tags:n.tags,author:n.author,coverImage:n.coverImage,filePath:n.filePath,frontmatter:n.frontmatter}));return`export default ${JSON.stringify(t,null,2)};`}if(s===`config`){if(q===null){let{loadDirectoryMeta:e}=await Promise.resolve().then(()=>require(`./meta-loader-Cv9O0Pzl.cjs`));q=await e(a)}let e=q,t={base:o?.base,theme:o?.theme,i18n:o?.i18n,versions:o?.versions,siteUrl:o?.siteUrl,integrations:o?.integrations,plugins:o?.plugins?.map(e=>({name:e.name})),directoryMeta:e};return`export default ${JSON.stringify(t,null,2)};`}if(s===`entry`)return K(e,o);if(s===`mdx-components`){let e=[`tsx`,`ts`,`jsx`,`js`],n=null;for(let t of e){let e=c.default.resolve(a,`mdx-components.${t}`);if(l.default.existsSync(e)){n=e;break}}if(n){let e=t.u(n);return`import * as components from '${e}';
|
|
156
|
+
const mdxComponents = components.default || components;
|
|
157
|
+
export default mdxComponents;
|
|
158
|
+
export * from '${e}';`}return`export default {};`}if(s===`layout`){let e=[`tsx`,`jsx`],n=null;for(let t of e){let e=c.default.resolve(a,`layout.${t}`);if(l.default.existsSync(e)){n=e;break}}if(n)return`import UserLayout from '${t.u(n)}';
|
|
159
|
+
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(s===`icons`){let e=[`tsx`,`jsx`,`ts`,`js`],n=null;for(let t of e){let e=c.default.resolve(a,`icons.${t}`);if(l.default.existsSync(e)){n=e;break}}return n?`import * as icons from '${t.u(n)}';\nexport default icons;`:`export default {};`}if(s===`search`){if(!J){let e=rt(await r.t(a,o));J=`export default ${JSON.stringify(e,null,2)};`}return J}if(s===`client`){let e=__dirname,n=``;for(;e&&e!==c.default.parse(e).root;){let r=c.default.join(e,`src/client/index.ts`),i=c.default.join(e,`dist/client/index.mjs`),a=c.default.join(e,`client/index.ts`);if(l.default.existsSync(r)){n=t.u(r);break}if(l.default.existsSync(i)){n=t.u(i);break}if(l.default.existsSync(a)){n=t.u(a);break}e=c.default.dirname(e)}if(!n)throw Error(`[boltdocs] Could not resolve boltdocs/client entry point starting from ${__dirname}`);return`export * from '${n}';`}}}}const ot={"X-Content-Type-Options":`nosniff`,"X-Frame-Options":`DENY`,"X-XSS-Protection":`1; mode=block`,"Referrer-Policy":`strict-origin-when-cross-origin`,"Permissions-Policy":`camera=(), microphone=(), geolocation=()`,"Strict-Transport-Security":`max-age=31536000; includeSubDomains`};function st(e){let t=process.env.NODE_ENV===`development`,n={"default-src":[`'self'`],"script-src":[`'self'`,`'unsafe-inline'`],"style-src":[`'self'`,`'unsafe-inline'`],"img-src":[`'self'`,`data:`,`https:`],"font-src":[`'self'`],"connect-src":[`'self'`]};return t&&(n[`script-src`]=[`'self'`,`'unsafe-eval'`,`'unsafe-inline'`],n[`style-src`]=[`'self'`,`'unsafe-inline'`]),Object.entries(n).map(([e,t])=>`${e} ${t.join(` `)}`).join(`; `)}const ct=/\.(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 lt(e,t){let n=process.env.NODE_ENV===`production`;e.middlewares.use((e,r,i)=>{n&&Object.entries(ot).forEach(([e,t])=>{r.setHeader(e,t)});let a=t();a.security?.enableCSP&&r.setHeader(`Content-Security-Policy`,st(a)),i()}),e.middlewares.use((e,t,n)=>{if(e.url===`/robots.txt`){n();return}n()}),e.middlewares.use(async(n,r,i)=>{let a=n.url?.split(`?`)[0]||`/`,o=n.headers.accept||``,s=t();if(o.includes(`text/html`)&&!ct.test(a)){let t=ue(s);t=de(t,s),t=await e.transformIndexHtml(n.url||`/`,t),r.statusCode=200,r.setHeader(`Content-Type`,`text/html`),r.end(t);return}i()})}function ut(e,t,n){setTimeout(async()=>{try{let{generateRoutes:r}=await Promise.resolve().then(()=>require(`./routes-DJNJ-rTt.cjs`)),i=(await r(t,n())).filter(e=>e.filePath).map(e=>e.filePath);for(let t=0;t<i.length;t+=8){let n=i.slice(t,t+8);await Promise.allSettled(n.map(t=>{let n=c.default.relative(process.cwd(),t).replace(/\\/g,`/`),r=n.startsWith(`/`)?n:`/${n}`;return e.transformRequest(r)}))}}catch{}},1e3)}const dt=[`tsx`,`jsx`],ft=[`tsx`,`ts`,`jsx`,`js`];function pt(e,t){let n=i.f.map(e=>c.default.resolve(process.cwd(),e)),r=dt.map(e=>c.default.resolve(t,`layout.${e}`)),a=ft.map(e=>c.default.resolve(t,`mdx-components.${e}`)),o=ft.map(e=>c.default.resolve(t,`pages-external/index.${e}`)),s=ft.map(e=>c.default.resolve(t,`icons.${e}`));e.watcher.add([...n,...a,...r,...o,...s])}const Y=new Map;function mt(e){let{lastUpdated:t,...n}=e;return f.default.createHash(`md5`).update(JSON.stringify(n)).digest(`hex`)}async function ht(e){try{let{data:n}=await t.d(e);return mt(n)}catch{return``}}function gt(e){let t=Y.get(e);if(t===void 0){let n=r.r.get(e);n?.route?.frontmatter&&(t=mt(n.route.frontmatter),Y.set(e,t))}return t}function _t(e,t){Y.set(e,t)}function vt(e){Y.delete(e)}const yt=[`tsx`,`ts`,`jsx`,`js`];function X(e,t){let n=e.moduleGraph.getModuleById(`\0virtual:boltdocs-${t}.ts`);n&&e.moduleGraph.invalidateModule(n)}function bt(e,n,a,o){let s=new Map,l=a.toLowerCase(),u=async(a,u)=>{try{let f=t.u(a);if(i.f.some(e=>f.endsWith(e))){e.restart();return}if(yt.some(e=>f.endsWith(`mdx-components.${e}`))){i.h(o(),n),X(e,`mdx-components.tsx`),e.ws.send({type:`full-reload`});return}if(yt.some(e=>f.endsWith(`icons.${e}`))){X(e,`icons.tsx`),e.ws.send({type:`full-reload`});return}if(f.endsWith(`layout.tsx`)||f.endsWith(`layout.jsx`)){X(e,`layout.tsx`),e.ws.send({type:`full-reload`});return}if(f.includes(`/pages-external/`)||f.includes(`\\pages-external\\`)){X(e,`entry`),e.ws.send({type:`full-reload`});return}if(!f.toLowerCase().startsWith(l)||!t.c(f))return;if(u===`add`||u===`unlink`){u===`unlink`&&vt(a),r.n(),it();let t=o();i.h(t,n),X(e,`config`),X(e,`routes`),X(e,`search`),X(e,`collections`),i.c(n,process.cwd(),t).catch(e=>{(0,d.error)(`Failed to update link tree:`,e)}),e.ws.send({type:`custom`,event:`boltdocs:config-update`,data:{theme:t?.theme,i18n:t?.i18n,versions:t?.versions,siteUrl:t?.siteUrl}}),e.ws.send({type:`full-reload`});return}s.has(f)&&clearTimeout(s.get(f)),s.set(f,setTimeout(async()=>{s.delete(f);try{let i=gt(a),o=await ht(a);if(_t(a,o),r.i(a),i!==void 0&&i!==o){X(e,`routes`),X(e,`search`),X(e,`collections`),e.ws.send({type:`full-reload`});return}let s=t.u(c.default.relative(n,a)),l=e.moduleGraph.getModulesByFile(f);if(l&&l.size>0)for(let t of l)e.moduleGraph.invalidateModule(t);else{e.ws.send({type:`full-reload`});return}e.ws.send({type:`custom`,event:`boltdocs:mdx-update`,data:{file:f,relPath:s}})}catch(e){(0,d.error)(`HMR error processing content change:`,e)}},150))}catch(e){(0,d.error)(`HMR error during ${u} event:`,e)}};e.watcher.on(`add`,e=>u(e,`add`)),e.watcher.on(`unlink`,e=>u(e,`unlink`)),e.watcher.on(`change`,e=>u(e,`change`))}function xt(e){let n=e.toLowerCase();return({file:e})=>{if(e.toLowerCase().startsWith(n)&&t.c(e))return[]}}function St(e,t,n,r,a){return{name:`vite-plugin-boltdocs-dev-server`,apply:`serve`,async configureServer(r){let o=a();await o?.runHook(`beforeDev`),i.c(e,process.cwd(),n()).catch(e=>{(0,d.error)(`Failed to generate initial link tree:`,e)}),ut(r,e,n),lt(r,n),pt(r,e),bt(r,e,t,n),await o?.runHook(`afterDev`)},hotUpdate:xt(t)}}const Z=new n.r(`mdx`);function Ct(e){let t=He(e);return async e=>{let n=await t.getHighlighter();W(e,R.ELEMENT,e=>{if(e.tagName!==`pre`)return;let r=e.children?.[0];if(!r||r.type!==R.ELEMENT||r.tagName!==`code`)return;let i=(r.properties?.className||[]).find(e=>e.startsWith(`language-`)),a=i?i.slice(9):V.MDX_DEFAULT_LANG;if(a===`mermaid`)return;let o=U(r.properties?.metastring||r.data?.meta||``),s=t.getOptions(a,o),c=r.children?.[0]?.value||``;try{let t=n.codeToHast(c,s),r=t.type===`root`?t.children[0]:t;e.children=r.children,e.properties={...e.properties,...r.properties,[z.HIGHLIGHTED]:`true`,[z.LANG]:a}}catch(t){(0,d.error)(`[rehypeShiki] Failed to highlight code block:`,t),e.properties=e.properties||{},e.properties.className=[...e.properties.className||[],B.FALLBACK],e.properties[z.HIGHLIGHTED]=`false`,e.properties[z.LANG]=a}return o.title&&(e.properties[z.TITLE]=o.title),g.SKIP})}}function wt(){return e=>{W(e,R.CODE,e=>{e.meta&&Ge(e,`metastring`,e.meta)})}}let Tt=!1;function Et(e,t,n=A.default){let r=e?.plugins?.flatMap(e=>e.remarkPlugins||[])||[],i=e?.plugins?.flatMap(e=>e.rehypePlugins||[])||[],a=n({remarkPlugins:[j.default,M.default,wt,...r],rehypePlugins:[N.default,[Ct,e],...i],jsxRuntime:`automatic`});return{...a,name:`vite-plugin-boltdocs-mdx`,async buildStart(){Tt||=(await Z.load(),!0),a.buildStart&&await a.buildStart.call(this)},async transform(e,n,r){let[i]=n.split(`?`);if(!i.endsWith(`.md`)&&!i.endsWith(`.mdx`))return a.transform?.call(this,e,n,r);let o=`${i}:${f.default.createHash(`md5`).update(e).digest(`hex`)}:${process.env.NODE_ENV===`production`?`prod`:`dev`}:v3`,s=await Z.getAsync(o);if(s)return{code:s,map:null};let c=await a.transform.call(this,e,i,r);if(c&&typeof c==`object`&&c.code){let e=c.code,n=t?.();return n&&(e=(await n.runChain(`transformMdx`,{code:e,filePath:i})).code),Z.set(o,e),{code:e,map:null}}return c},async buildEnd(){Z.save(),await Z.flush(),a.buildEnd&&await a.buildEnd.call(this)}}}const Q=m.createRequire(require(`url`).pathToFileURL(__filename).href);function Dt(e){try{let e=c.default.join(process.cwd(),`node_modules/boltdocs/package.json`);if(l.default.existsSync(e)){let t=l.default.realpathSync(e);return m.createRequire(t)}else return m.createRequire(c.default.join(process.cwd(),`package.json`))}catch{return e}}function Ot(e){let t=c.default.dirname(e);for(;t&&t!==c.default.dirname(t);){let e=c.default.join(t,`package.json`);if(l.default.existsSync(e))return e;t=c.default.dirname(t)}return null}function kt(e){let t=e.split(`/`);return e.startsWith(`@`)?{packageName:t.slice(0,2).join(`/`),subpath:t.slice(2).join(`/`)}:{packageName:t[0],subpath:t.slice(1).join(`/`)}}function $(e,t=Q){try{let{packageName:n,subpath:r}=kt(e),i;try{i=t.resolve(n+`/package.json`)}catch{i=Ot(t.resolve(n))||``}if(!i)throw Error(`Could not find package.json for ${n}`);let a=c.default.dirname(i),o=JSON.parse(l.default.readFileSync(i,`utf-8`)),s=``,u=r?`./`+r:`.`;if(o.exports){let e=o.exports[u]||o.exports[r];e&&(s=typeof e==`string`?e:e.import||e.default||e.require||e)}if(!s&&!r&&(s=o.module||o.main||`index.js`),typeof s==`object`&&s){let e=s;s=e.import||e.default||e.require||``}if(s){let e=c.default.resolve(a,s);if(l.default.existsSync(e))return e}}catch{}return t.resolve(e)}function At(){let e=[`react`,`react-dom`,`react-router-dom`,`react-helmet-async`,`@bdocs/ssg`,`react-fast-compare`,`invariant`],n=[],r=Dt(Q);for(let t of e)try{let e=``;e=t===`@bdocs/ssg`||t===`react-router-dom`||t===`react-helmet-async`?$(t,r):r.resolve(t),e&&n.push(l.default.realpathSync(e))}catch{}if(r!==Q)for(let t of e)try{let e=``;e=t===`@bdocs/ssg`||t===`react-router-dom`||t===`react-helmet-async`?$(t,Q):Q.resolve(t),e&&n.push(l.default.realpathSync(e))}catch{}for(let e of[`react/jsx-runtime`,`react/jsx-dev-runtime`,`react-dom/client`]){try{n.push(l.default.realpathSync(r.resolve(e)))}catch{}if(r!==Q)try{n.push(l.default.realpathSync(Q.resolve(e)))}catch{}}return Array.from(new Set(n)).map(e=>t.u(e))}function jt(e={},n){let a=c.default.resolve(process.cwd(),e.docsDir||`docs`),o=t.u(a),u=n,d,f=!1,p,m=[],h=()=>u,g=e=>{u=e},te=()=>d,_=()=>p;return[{name:`vite-plugin-boltdocs`,enforce:`pre`,async config(e,t){f=t.command===`build`;let n=!!(t.isSsrBuild||e.build?.ssr),o=e.envDir||process.cwd(),c=(0,s.loadEnv)(t.mode,o,``);if(Object.assign(process.env,c),!u){u=await i.p(a);let e=(await r.t(a,u)).map(e=>e.path),t=(u.base||`/docs`).replace(/\/$/,``);e.includes(t)||e.push(t),i.h(u,a,void 0,e),i.g(e)}let l=(await Promise.resolve().then(()=>require(`./package-2nFy_NsW.cjs`))).version,d=he(u.plugins||[],l);return u.plugins=d,p=new Oe(d,u),m=d.flatMap(e=>e.vitePlugins||[]),f&&await p.runHook(`beforeBuild`),{ssgOptions:{entry:`boltdocs/entry`,htmlEntry:`index.html`,dirStyle:`flat`,includeAllRoutes:!0,mock:!0,script:`async`,beastiesOptions:{preload:`media`}},build:{ssrManifest:f},optimizeDeps:{include:[`react`,`react-dom`,`react-dom/client`,`react-router-dom`,`react-helmet-async`,`react-fast-compare`,`invariant`],exclude:[`boltdocs`,`boltdocs/client`]},resolve:{alias:[{find:`react-router-dom`,replacement:$(`react-router-dom`)},{find:`react-helmet-async`,replacement:$(`react-helmet-async`)},{find:`@bdocs/ssg`,replacement:$(`@bdocs/ssg`)}],dedupe:[`react`,`react-dom`,...n?[]:[`react-router-dom`,`react-helmet-async`,`@bdocs/ssg`]]},ssr:{external:[`react`,`react-dom`,`react-helmet-async`,`@bdocs/ssg`,`react-fast-compare`,`invariant`,...At()],optimizeDeps:{include:[`react-fast-compare`,`invariant`]},noExternal:[`react-router-dom`]}}},configResolved(e){d=e},resolveId(e,t,n){let r=[`react`,`react-dom`,`react-router-dom`,`react-helmet-async`,`@bdocs/ssg`].find(t=>e===t||e.startsWith(t+`/`)||e.includes(`/node_modules/${t}/`)||t.startsWith(`@`)&&e.includes(`/node_modules/${t.replace(`/`,c.default.sep)}/`));if(r&&n?.ssr){let t=e;if(!c.default.isAbsolute(e)){let n=Dt(Q);try{t=r===`@bdocs/ssg`||r===`react-router-dom`||r===`react-helmet-async`?$(e,n):n.resolve(e)}catch{try{t=r===`@bdocs/ssg`||r===`react-router-dom`||r===`react-helmet-async`?$(e,Q):Q.resolve(e)}catch{}}}try{t=l.default.realpathSync(t)}catch{}return{id:t,external:!0}}return null},transformIndexHtml:{order:`pre`,handler(e){return de(e,u)}},async buildEnd(){let{pool:e}=await Promise.resolve().then(()=>require(`./worker-pool-CtqklOXq.cjs`));await e.terminate()},async closeBundle(){!f||d?.build?.ssr||(await p?.runHook(`afterBuild`),await p?.runHook(`buildEnd`))},configurePreviewServer(e){let t=d?.build?.outDir?c.default.resolve(d.root||process.cwd(),d.build.outDir):c.default.resolve(process.cwd(),`dist`);e.middlewares.use((e,n,r)=>{let i=e.url||`/`,a=i.split(`?`)[0].split(`#`)[0];if(c.default.extname(a))return r();let o=a.replace(/\/$/,``)||`/`,s=c.default.join(t,o,`index.html`);o!==`/`&&l.default.existsSync(s)&&(e.url=`${o}/index.html${i.includes(`?`)?`?${i.split(`?`)[1]}`:``}`),r()})}},at(e,h,te,a),St(a,o,h,g,_),Et(u,_),{...(0,ee.ViteImageOptimizer)({includePublic:!0,png:{quality:80},jpeg:{quality:80},jpg:{quality:80},webp:{quality:80},avif:{quality:80},svg:{multipass:!0,plugins:[{name:`preset-default`}]}}),apply:`build`},...m]}(0,m.createRequire)(require(`url`).pathToFileURL(__filename).href);async function Mt(e){let t=e?.docsDir||`docs`,n=await i.p(t),a=(await r.t(t,n)).map(e=>e.path),o=(n.base||`/docs`).replace(/\/$/,``);return a.includes(o)||a.push(o),i.h(n,t,void 0,a),i.g(a),jt({...e},n)}async function Nt(e,t=`development`){let n=await i.p(`docs`,e),l=(await r.t(`docs`,n)).map(e=>e.path),u=(n.base||`/docs`).replace(/\/$/,``);l.includes(u)||l.push(u),i.h(n,`docs`,e,l),i.g(l);let d=t===`production`,f=d?{...ot}:{};return n.security?.enableCSP&&(f[`Content-Security-Policy`]=st(n)),{root:e,mode:t,oxc:{jsx:{development:!d,runtime:`automatic`,importSource:`react`}},optimizeDeps:{include:[`react`,`react-dom`,`react-dom/client`,`react-helmet-async`,`react-router-dom`,`react-fast-compare`,`invariant`,`use-sync-external-store/shim`]},build:{},plugins:[(0,a.default)(),(0,o.default)(),...jt({docsDir:`docs`,root:e},n)],resolve:{alias:[{find:`boltdocs/entry`,replacement:(0,s.normalizePath)(c.default.resolve(e,`boltdocs-entry.tsx`))},{find:`boltdocs/client`,replacement:(0,s.normalizePath)(c.default.resolve(e,`boltdocs-client.mjs`))},{find:`use-sync-external-store/shim/index.js`,replacement:`react`},{find:`use-sync-external-store/shim`,replacement:`react`},{find:`use-sync-external-store`,replacement:`react`}],dedupe:[`react`,`react-dom`]},ssr:{external:[`react`,`react-dom`,`react-helmet-async`,`@bdocs/ssg`,`react-fast-compare`,`invariant`,...At()],optimizeDeps:{include:[`react`,`react-dom`,`react-fast-compare`,`invariant`,...n.vite?.ssr?.optimizeDeps?.include||[]]},noExternal:[`boltdocs`,/@bdocs\/(?!ssg).*/,`react-aria-components`,`@react-aria/collections`,`@react-aria/utils`,`react-router-dom`]},server:{headers:{...f,...n.vite?.server?.headers},...n.vite?.server},preview:{headers:{...f,...n.vite?.preview?.headers},...n.vite?.preview},...n.vite}}Object.defineProperty(exports,`C`,{enumerable:!0,get:function(){return he}}),Object.defineProperty(exports,`D`,{enumerable:!0,get:function(){return I}}),Object.defineProperty(exports,`E`,{enumerable:!0,get:function(){return P}}),Object.defineProperty(exports,`O`,{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,`S`,{enumerable:!0,get:function(){return ge}}),Object.defineProperty(exports,`T`,{enumerable:!0,get:function(){return fe}}),Object.defineProperty(exports,`_`,{enumerable:!0,get:function(){return Ze}}),Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return Qe}}),Object.defineProperty(exports,`b`,{enumerable:!0,get:function(){return Oe}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return Je}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return $e}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return Ge}}),Object.defineProperty(exports,`g`,{enumerable:!0,get:function(){return Xe}}),Object.defineProperty(exports,`h`,{enumerable:!0,get:function(){return Ue}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return tt}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return Ke}}),Object.defineProperty(exports,`m`,{enumerable:!0,get:function(){return W}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return Nt}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return qe}}),Object.defineProperty(exports,`p`,{enumerable:!0,get:function(){return We}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return K}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return Ye}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return Mt}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return et}}),Object.defineProperty(exports,`v`,{enumerable:!0,get:function(){return U}}),Object.defineProperty(exports,`w`,{enumerable:!0,get:function(){return pe}}),Object.defineProperty(exports,`x`,{enumerable:!0,get:function(){return Ee}}),Object.defineProperty(exports,`y`,{enumerable:!0,get:function(){return R}});
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Boltdocs - https://boltdocs.vercel.app
|
|
3
|
+
* Copyright (c) 2026 Jesus Alcala
|
|
4
|
+
* Licensed under the MIT License.
|
|
5
|
+
*/
|
|
6
|
+
import{c as e,d as t,n,r,u as i}from"./utils-BYITg7T5.mjs";import{r as a}from"./cache-BMUyNiiA.mjs";import{i as o,n as s,r as c,t as l}from"./routes-BDDSxAl0.mjs";import{_ as u,c as d,f,g as p,h as m,p as h}from"./doctor-CgLA7_Uv.mjs";import*as g from"node:module";import{createRequire as _}from"node:module";import ee from"@vitejs/plugin-react";import te from"@tailwindcss/vite";import{loadEnv as ne,normalizePath as re}from"vite";import v from"node:path";import y from"node:fs";import{z as b}from"zod";import*as x from"@bdocs/dui";import{colors as S,error as C,warn as w}from"@bdocs/dui";import ie from"node:crypto";import{ViteImageOptimizer as ae}from"vite-plugin-image-optimizer";import oe from"semver";import{build as se}from"@bdocs/ssg/node";import{EXIT as ce,SKIP as le,visit as T}from"unist-util-visit";import{createJavaScriptRegexEngine as ue}from"shiki/engine/javascript";import{createHighlighterCore as de}from"shiki/core";import fe from"@shikijs/themes/github-light";import pe from"@shikijs/themes/github-dark";import me from"@shikijs/themes/tokyo-night";import he from"@shikijs/themes/dracula";import ge from"@shikijs/themes/nord";import _e from"@shikijs/themes/one-dark-pro";import ve from"@shikijs/themes/one-light";import ye from"@shikijs/langs/html";import be from"@shikijs/langs/js";import xe from"@shikijs/langs/ts";import Se from"@shikijs/langs/tsx";import Ce from"@shikijs/langs/css";import we from"@shikijs/langs/json";import Te from"@shikijs/langs/bash";import Ee from"@shikijs/langs/markdown";import De from"@shikijs/langs/mdx";import Oe from"@shikijs/langs/yaml";import ke from"@shikijs/langs/rust";import Ae from"@shikijs/langs/toml";import je from"@shikijs/langs/csv";import{fileURLToPath as Me}from"node:url";import Ne from"@mdx-js/rollup";import Pe from"remark-gfm";import Fe from"remark-frontmatter";import Ie from"rehype-slug";var Le=Object.defineProperty,Re=(e,t)=>{let n={};for(var r in e)Le(n,r,{get:e[r],enumerable:!0});return t||Le(n,Symbol.toStringTag,{value:`Module`}),n},ze=_(import.meta.url);function Be(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
|
+
<title>${e.theme?.title||`Boltdocs`}</title>
|
|
12
|
+
</head>
|
|
13
|
+
<body>
|
|
14
|
+
<div id="root"></div>
|
|
15
|
+
</body>
|
|
16
|
+
</html>`}function Ve(e,t){(!e||!e.includes(`<body`)||!e.includes(`<head`))&&(e=Be(t));let n=t.theme,r=n?.title||`Boltdocs`;if(typeof r==`object`){let e=t.i18n?.defaultLocale||``;r=r[e]||Object.values(r)[0]||`Boltdocs`}let i=n?.description||``;if(typeof i==`object`){let e=t.i18n?.defaultLocale||``;i=i[e]||Object.values(i)[0]||``}let a=n?.favicon;!a&&n?.logo&&(a=typeof n.logo==`string`?n.logo:n.logo.light||n.logo.dark);let o=[a?`<link rel="icon" href="${a}">`:``,`<meta name="description" content="${i}">`,`<meta property="og:title" content="${r}">`,`<meta property="og:description" content="${i}">`,`<meta property="og:type" content="website">`,t.siteUrl?`<meta property="og:url" content="${t.siteUrl}">`:``,t.siteUrl?`<link rel="canonical" href="${t.siteUrl}">`:``,`<meta name="twitter:card" content="summary_large_image">`,`<meta name="twitter:title" content="${r}">`,`<meta name="twitter:description" content="${i}">`,`<meta name="generator" content="Boltdocs">`].filter(Boolean).join(`
|
|
17
|
+
`);e=e.includes(`<title>`)?e.replace(/<title>.*?<\/title>/,`<title>${r}</title>`):e.replace(`</head>`,` <title>${r}</title>\n </head>`);let s=``;if(t.integrations?.ga4){let e=t.integrations.ga4;if(process.env.NODE_ENV===`production`||e.debug){let t=e.anonymizeIp?`gtag('set', 'ip', true);`:``,n=e.sendPageView===!1?`{send_page_view: false}`:`{}`,r=e.cookieFlags?`, {'cookie_flags': '${e.cookieFlags}'}`:``;s=`
|
|
18
|
+
<!-- Google tag (gtag.js) - ${e.measurementId} -->
|
|
19
|
+
<script async src="https://www.googletagmanager.com/gtag/js?id=${e.measurementId}"><\/script>
|
|
20
|
+
<script>
|
|
21
|
+
window.dataLayer = window.dataLayer || [];
|
|
22
|
+
function gtag(){dataLayer.push(arguments);}
|
|
23
|
+
gtag('js', new Date());
|
|
24
|
+
${t}
|
|
25
|
+
gtag('config', '${e.measurementId}', ${n}${r});
|
|
26
|
+
<\/script>
|
|
27
|
+
`}}let c=``,l=``;if(t.integrations?.gtm){let e=t.integrations.gtm;if(process.env.NODE_ENV===`production`){let t=e.dataLayerName||`dataLayer`;c=`
|
|
28
|
+
<!-- Google Tag Manager -->
|
|
29
|
+
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
|
|
30
|
+
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
|
|
31
|
+
j=d.createElement(s),dl=l!='${t}'?'&l='+l:'';j.async=true;j.src=
|
|
32
|
+
'https://www.googletagmanager.com/gtm.js?id='+i+dl+'${e.preview?`>m_preview=${e.preview}`:``}';f.parentNode.insertBefore(j,f);
|
|
33
|
+
})(window,document,'script','${t}','${e.tagId}');<\/script>
|
|
34
|
+
<!-- End Google Tag Manager -->
|
|
35
|
+
`,l=`
|
|
36
|
+
<!-- Google Tag Manager (noscript) -->
|
|
37
|
+
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=${e.tagId}"
|
|
38
|
+
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
|
|
39
|
+
<!-- End Google Tag Manager (noscript) -->
|
|
40
|
+
`}}return e=e.replace(`</head>`,` ${o}\n
|
|
41
|
+
<script>
|
|
42
|
+
(function() {
|
|
43
|
+
try {
|
|
44
|
+
var stored = localStorage.getItem("boltdocs-theme");
|
|
45
|
+
var isDark =
|
|
46
|
+
stored === "dark" ||
|
|
47
|
+
(stored !== "light" && window.matchMedia("(prefers-color-scheme: dark)").matches);
|
|
48
|
+
document.documentElement.classList.toggle("dark", isDark);
|
|
49
|
+
document.documentElement.dataset.theme = isDark ? "dark" : "light";
|
|
50
|
+
} catch (e) {
|
|
51
|
+
// Ignore localStorage errors (e.g. if cookies/storage are disabled)
|
|
52
|
+
}
|
|
53
|
+
})();
|
|
54
|
+
<\/script>
|
|
55
|
+
\n${s}${c} </head>`),l&&(e=e.replace(/<body([^>]*)>/,`<body$1>\n${l}`)),!e.includes(`src/main`)&&!e.includes(`virtual:boltdocs-entry`)&&(e=e.replace(`</body>`,` <script type="module">import "virtual:boltdocs-entry";<\/script>
|
|
56
|
+
</body>`)),e}var E=class extends Error{name=this.constructor.name;constructor(e,t,n){super(`[plugin:${e}] ${t}`,n),this.pluginName=e}},D=class extends E{constructor(e,t){super(e,`Validation failed: ${t}`)}},O=class extends E{constructor(e,t){super(e,`Compatibility error: ${t}`)}},k=class extends E{constructor(e,t,n){super(e,`Error in hook '${t}': ${n.message}`,{cause:n}),this.hookName=t}},He=class{data=new Map;getNamespaceKey(e,t){return`${e}:${t}`}get(e,t){let n=this.getNamespaceKey(e,t),r=this.data.get(n);if(r!==void 0)return typeof r==`object`&&r?JSON.parse(JSON.stringify(r)):r}set(e,t,n){let r=this.getNamespaceKey(e,t),i=typeof n==`object`&&n?JSON.parse(JSON.stringify(n)):n;this.data.set(r,i)}has(e,t){let n=this.getNamespaceKey(e,t);return this.data.has(n)}};const Ue=u.extend({version:b.string().optional(),boltdocsVersion:b.string().optional(),hooks:b.object({beforeBuild:b.function().optional(),afterBuild:b.function().optional(),beforeDev:b.function().optional(),afterDev:b.function().optional(),buildEnd:b.function().optional(),transformMdx:b.function().optional(),transformHtml:b.function().optional()}).optional()});function A(e,t){let n=[],r=new Set;for(let i of e){let e=Ue.safeParse(i);if(!e.success)throw new D(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 D(a.name,`Duplicate plugin name detected`);if(r.add(a.name),a.boltdocsVersion&&!oe.satisfies(t,a.boltdocsVersion))throw new O(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(`..`)||v.isAbsolute(t))&&t.includes(`..`))throw new D(a.name,`Component '${e}' has an invalid path: traversal sequences are not allowed.`)}n.push(a)}return n}function We(e,t=process.cwd()){let n=e.plugins||[];for(let e of n)if(e.name)try{let n=null;try{let{createRequire:r}=ze(`node:module`);n=r(v.resolve(t,`package.json`)).resolve(`${e.name}/package.json`)}catch{let r=v.resolve(t,`node_modules`,e.name,`package.json`);y.existsSync(r)&&(n=r)}if(n&&y.existsSync(n)){let t=JSON.parse(y.readFileSync(n,`utf-8`)).scripts||{};(t.preinstall||t.postinstall||t.install)&&w(`💡 ${S.yellow(S.bold(`Nota de seguridad:`))} El plugin ${S.cyan(e.name)} ejecuta scripts nativos al instalarse. Corre ${S.bold(`boltdocs audit`)} para un análisis detallado.`)}}catch{}}var Ge=class{name=`ConfigResolve`;async execute(e){e.config=await h(`docs`,e.root),We(e.config,e.root),e.viteConfig=await nn(e.root,`production`)}};function j(e){return e.map(e=>({path:e.path,filePath:e.filePath,title:e.title,description:e.description||``,sidebarPosition:e.sidebarPosition,badge:e.badge,icon:e.icon,headings:e.headings||[],_content:e._content||``,_rawContent:e._rawContent||``,locale:e.locale,version:e.version,tab:e.tab,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,frontmatter:e.frontmatter,slugParts:e.slugParts}))}var Ke=class{name=`RouteGenerate`;async execute(e){if(!e.config)throw Error(`Config not resolved. Run ConfigResolve first.`);let t=v.resolve(e.root,`docs`),n=e.viteConfig?.base||e.config.base||`/docs`;e.routes=[...await l(t,e.config,n)],e.ssgRoutes=j(e.routes)}};const qe=b.object({title:b.string().optional(),description:b.string().optional(),canonical:b.string().url().optional(),robots:b.string().optional(),noindex:b.boolean().optional(),"og:title":b.string().optional(),"og:description":b.string().optional(),"og:image":b.string().optional(),"og:type":b.string().optional(),"og:url":b.string().url().optional()});var Je=class{name=`SEOValidate`;async execute(e){if(!e.routes||!e.config)throw Error(`Routes or Config not initialized.`);let t=e.config.siteUrl;e.routes=e.routes.map(e=>{let n=e.seo||{},r=n.canonical||(t?`${t.replace(/\/$/,``)}${e.path}`:void 0),i=n[`og:url`]||r||void 0,a={...n};r&&(a.canonical=r),i&&(a[`og:url`]=i),!a[`og:title`]&&e.title&&(a[`og:title`]=e.title),!a[`og:description`]&&e.description&&(a[`og:description`]=e.description);let o=qe.safeParse(a);return o.success||w(`[SEOValidate] Validation issues on route "${e.path}":`,o.error.message),e.title||w(`[SEOValidate] Route "${e.path}" is missing a title.`),{...e,seo:a}}),e.ssgRoutes=j(e.routes)}},Ye=class{name=`TypeGenerate`;async execute(e){if(!e.config||!e.routes)throw Error(`Config or Routes not initialized.`);let t=v.resolve(e.root,`docs`),n=e.routes.map(e=>e.path),r=(e.config.base||`/docs`).replace(/\/$/,``);n.includes(r)||n.push(r),m(e.config,t,e.root,n),p(n)}},Xe=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}await se({entry:`boltdocs/entry`,routeToSourceFileMap:t,cacheDir:v.resolve(e.root,`.boltdocs/build`)},e.viteConfig),e.outDir=e.viteConfig.build?.outDir||`dist`}};function Ze(e,t){let n=(t.siteUrl||``).replace(/\/$/,``);if(!n)return``;let i=t.seo?.indexing!==`all`&&t.seo?.indexing!==`public`;return`<?xml version="1.0" encoding="UTF-8"?>
|
|
57
|
+
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
|
58
|
+
${e.filter(e=>e.seo?.noindex||typeof e.seo?.robots==`string`&&e.seo.robots.includes(`noindex`)?!1:(i&&e.seo?.index,!0)).map(e=>` <url>
|
|
59
|
+
<loc>${r(`${n}${e.path.startsWith(`/`)?e.path:`/${e.path}`}`)}</loc>
|
|
60
|
+
<changefreq>weekly</changefreq>
|
|
61
|
+
<priority>0.7</priority>
|
|
62
|
+
</url>`).join(`
|
|
63
|
+
`)}
|
|
64
|
+
</urlset>`}function Qe(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(`
|
|
65
|
+
`);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(`
|
|
66
|
+
`)+`
|
|
67
|
+
`:t+=`Allow: ${e.allow}\n`),e.disallow&&(Array.isArray(e.disallow)?t+=e.disallow.map(e=>`Disallow: ${e}`).join(`
|
|
68
|
+
`)+`
|
|
69
|
+
`:t+=`Disallow: ${e.disallow}\n`),t.trim()}).join(`
|
|
70
|
+
|
|
71
|
+
`),a=[...n?[n]:[],...r].map(e=>`Sitemap: ${e}`).join(`
|
|
72
|
+
`);return`${i}${a?`\n\n${a}`:``}`}return[`User-agent: *`,`Allow: /`,``,n?`Sitemap: ${n}`:``].filter(Boolean).join(`
|
|
73
|
+
`)}var $e=class{name=`SEOWrite`;async execute(e){if(!e.ssgRoutes||!e.config||!e.outDir)throw Error(`SSG Routes, Config, or OutDir not initialized.`);let t=Ze(e.ssgRoutes,e.config),n=v.resolve(e.root,e.outDir);t&&y.writeFileSync(v.join(n,`sitemap.xml`),t,`utf-8`);let r=Qe(e.config);y.writeFileSync(v.join(n,`robots.txt`),r,`utf-8`)}};function et(){return new tt().addStep(new Ge).addStep(new Ke).addStep(new Je).addStep(new Ye).addStep(new Xe).addStep(new $e)}var tt=class{steps=[];addStep(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=performance.now();try{await e.execute(r);let n=performance.now()-i;t.push({name:e.name,duration:n,success:!0}),r.timing[e.name]=n}catch(a){let o=performance.now()-i;t.push({name:e.name,duration:o,success:!1,error:a instanceof Error?a:Error(String(a))});for(let e of t.filter(e=>e.success).reverse()){let t=this.steps.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 s=performance.now()-n;return{success:!1,failedStep:e.name,error:a instanceof Error?a:Error(String(a)),timing:{total:s,steps:r.timing},stepResults:t}}}return{success:!0,timing:{total:performance.now()-n,steps:r.timing},stepResults:t}}},nt=class{plugins;config;store;docsDir;rootDir;constructor(e,t,n,r){this.plugins=e,this.config=t,this.store=new He,this.docsDir=n||process.cwd(),this.rootDir=r||process.cwd()}async runHook(e,...t){let n=this.getSortedPlugins(),r=new tt;for(let i of n)i.hooks?.[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){if(!t.hooks?.[e])continue;let n=this.createContext(t);try{let i=t.hooks[e],a=await i(n,r);a!==void 0&&(r=a)}catch(r){let i=new k(t.name,e,r instanceof Error?r:Error(String(r)));n.logger.error(i)}}return r}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=e.hooks[t];await i(r,...n)}catch(n){let i=new k(e.name,t,n instanceof Error?n:Error(String(n)));r.logger.error(i)}},rollback:async()=>{let t=e.hooks?.buildEnd;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,meta:{name:e.name,version:e.version,boltdocsVersion:e.boltdocsVersion},store:{get:(e,t)=>this.store.get(e,t),set:(e,t,n)=>this.store.set(e,t,n),has:(e,t)=>this.store.has(e,t)},logger:this.createLogger(e.name)}}createLogger(e){let t=`[plugin:${e}]`;return{info:e=>x.info(`${t} ${e}`),warn:e=>x.warn(`${t} ${e}`),error:e=>{x.error(`${t} ${e instanceof Error?e.message:e}`)},debug:e=>x.debug(`${t} ${e}`)}}};const M={ROOT:`root`,ELEMENT:`element`,TEXT:`text`,COMMENT:`comment`,CODE:`code`,INLINE_CODE:`inlineCode`,HEADING:`heading`,PARAGRAPH:`paragraph`,LINK:`link`,IMAGE:`image`,LIST:`list`,LIST_ITEM:`listItem`,JSX_FLOW_ELEMENT:`mdxJsxFlowElement`,JSX_TEXT_ELEMENT:`mdxJsxTextElement`,JSX_ATTRIBUTE:`mdxJsxAttribute`,FLOW_EXPRESSION:`mdxFlowExpression`,TEXT_EXPRESSION:`mdxTextExpression`,ESM:`mdxjsEsm`},N={TITLE:`data-title`,LANG:`data-lang`,HIGHLIGHTED:`data-highlighted`,HIGHLIGHTED_HTML:`data-highlighted-html`},P={LINE_NUMBERS:`shiki-line-numbers`,WORD_WRAP:`shiki-word-wrap`,FALLBACK:`shiki-fallback`},F={LIGHT:`github-light`,DARK:`github-dark`},I={LANG:`plaintext`,MDX_DEFAULT_LANG:`text`},rt=[fe.default||fe,pe.default||pe,me.default||me,he.default||he,ge.default||ge,_e.default||_e,ve.default||ve],it=[ye,be,xe,Se,Ce,we,Te,Ee,De,Oe,ke,Ae,je];let L=null,R=null;const at=()=>(L??=ue(),L),ot=async e=>R||(R=de({themes:rt,langs:it,engine:at()}),R),st=(e={})=>{let{activateByDefault:t=!1}=e;return{name:`boltdocs:line-numbers`,pre(e){let n=this.options.meta?.lineNumbers===!0;(t||n)&&this.addClassToHast(e,P.LINE_NUMBERS)}}},ct=(e={})=>{let{activateByDefault:t=!1}=e;return{name:`boltdocs:word-wrap`,pre(e){let n=this.options.meta?.wordWrap===!0;(t||n)&&this.addClassToHast(e,P.WORD_WRAP)}}},lt=()=>({name:`AddTitleProperty`,pre(e){let t=this.options.meta?.title;t&&(e.properties[N.TITLE]=t)}}),ut=()=>({name:`AddLanguageProperty`,pre(e){e.properties[N.LANG]=this.options.lang||I.LANG}});function z(e){let t={};if(!e)return t;/lineNumbers|showLineNumbers/.test(e)&&(t.lineNumbers=!0),/wordWrap|word-wrap/.test(e)&&(t.wordWrap=!0);let n=e.match(/title=(["'])(.*?)\1/);return n&&(t.title=n[2]),t}var dt=class{config;constructor(e){this.config=e}getTheme(){return this.config?.theme?.codeTheme||{light:F.LIGHT,dark:F.DARK}}async getHighlighter(){return await ot(this.getTheme())}getOptions(e,t){let n=this.getTheme(),r={},i=``;typeof t==`string`?(i=t,r=z(t)):t&&(r=t,i=t.__raw||``);let a={lang:e||I.LANG,meta:{__raw:i,...r},transformers:[st(),ct(),lt(),ut()]};return typeof n==`object`?a.themes={light:n.light,dark:n.dark}:a.theme=n,a}async render(e,t,r){try{let n=await this.getHighlighter(),i=this.getOptions(t,r);return n.codeToHtml(e,i)}catch(t){return C(`[ShikiAdapter] Failed to render code:`,t),`<pre class="${P.FALLBACK}"><code>${n(e)}</code></pre>`}}};let B=null,ft;function pt(e){let t=JSON.stringify(e?.theme?.codeTheme||null);return(B===null||ft!==t)&&(B=new dt(e),ft=t),B}function V(e,t,n){e&&T(e,typeof t==`function`?t:e=>Array.isArray(t)?t.includes(e.type):e.type===t,(e,t,r)=>{if(t!==void 0&&r!==void 0)return n(e,t,r)})}function mt(e,t,n){V(e,M.ELEMENT,(e,r,i)=>{if(e.tagName===t)return n(e,r,i)})}function ht(e,t,n){let r=Array.isArray(t)?t:[t],i=[M.JSX_FLOW_ELEMENT,M.JSX_TEXT_ELEMENT];V(e,e=>i.includes(e.type),(e,t,i)=>{if(e.name&&r.includes(e.name))return n(e,t,i)})}function H(e,t,n){e&&(e.data=e.data||{},e.data.hProperties=e.data.hProperties||{},e.data.hProperties[t]=n)}function gt(e,t){return e?.data?.hProperties?.[t]}function _t(e,t){return typeof t==`object`&&t?{type:M.JSX_ATTRIBUTE,name:e,value:t}:{type:M.JSX_ATTRIBUTE,name:e,value:String(t)}}function vt(e,t={},n=[]){return{type:M.ELEMENT,tagName:e,properties:t,children:n}}function yt(e,t={},n=[],r=!0){let i=Object.entries(t).map(([e,t])=>_t(e,t));return{type:r?M.JSX_FLOW_ELEMENT:M.JSX_TEXT_ELEMENT,name:e,attributes:i,children:n}}function bt(e,t){e&&T(e,M.HEADING,(e,n,r)=>{if(n!==void 0&&r!==void 0)return t(e,n,r)})}function xt(e,t){e&&T(e,M.LINK,(e,n,r)=>{if(n!==void 0&&r!==void 0)return t(e,n,r)})}function St(e,t){if(!e)return;e.properties=e.properties||{};let n=e.properties.className;Array.isArray(n)?n.includes(t)||n.push(t):typeof n==`string`?n!==t&&(e.properties.className=[n,t]):e.properties.className=[t]}function Ct(e,t){if(!e||!e.properties||!e.properties.className)return;let n=e.properties.className;Array.isArray(n)?e.properties.className=n.filter(e=>e!==t):typeof n==`string`&&n===t&&delete e.properties.className}function wt(e,t){if(!e||!e.properties||!e.properties.className)return!1;let n=e.properties.className;return Array.isArray(n)?n.includes(t):typeof n==`string`?n===t:!1}function Tt(e){return e}const U=v.dirname(Me(import.meta.url));function W(e){return typeof e==`string`?[e]:Array.isArray(e)?e.flatMap(W):e&&typeof e==`object`?Object.values(e).flatMap(W):[]}const Et=new Set([`title`,`description`,`permalink`,`sidebarPosition`,`sidebarLabel`,`sidebarHidden`,`hidden`,`category`,`order`,`badge`,`icon`,`date`,`lastUpdated`,`groupTitle`,`groupPosition`,`seo`]);function Dt(e){let t=[];for(let n of e){let e=``;n.frontmatter&&(e=W(Object.entries(n.frontmatter).filter(([e])=>!Et.has(e)).map(([e,t])=>t)).join(` `));let r=e?`${n._content||``} ${e}`:n._content||``;if(t.push({id:n.path,title:n.title,content:r,url:n.path,display:n.groupTitle?`${n.groupTitle} > ${n.title}`:n.title,locale:n.locale,version:n.version}),n.headings)for(let e of n.headings)t.push({id:`${n.path}#${e.id}`,title:e.text,content:`${e.text} in ${n.title}`,url:`${n.path}#${e.id}`,display:`${n.title} > ${e.text}`,locale:n.locale,version:n.version})}return t}function G(e,t){let n=v.resolve(process.cwd(),`index.css`),r=y.existsSync(n)?`import './index.css';`:``,a=t?.plugins?.flatMap(e=>Object.entries(e.components||{}))||[],o=a.map(([e,t])=>`import * as _comp_${e} from '${i(t)}';
|
|
74
|
+
const ${e} = _comp_${e}.default || _comp_${e}['${e}'] || _comp_${e};`).join(`
|
|
75
|
+
`),s=a.map(([e])=>e).join(`, `),c=v.basename(e.docsDir||`docs`),l=v.resolve(process.cwd(),e.docsDir||`docs`),u=[`tsx`,`ts`,`jsx`,`js`].map(e=>v.resolve(l,`pages-external/index.${e}`)).find(e=>y.existsSync(e)),d=u?`import * as _external_module from '${i(u)}';`:``,f=u?`externalPages: _external_module.pages, externalLayout: _external_module.layout,`:``,p=process.env.VITE_SSG===`true`,m=p?`{ eager: true }`:`{}`,h=p?``:`
|
|
76
|
+
if (typeof window !== 'undefined') {
|
|
77
|
+
const prefetchAll = () => {
|
|
78
|
+
const getters = Object.values(mdxModules)
|
|
79
|
+
if (getters.length === 0) return
|
|
80
|
+
let i = 0
|
|
81
|
+
const nextBatch = () => {
|
|
82
|
+
if (i >= getters.length) return
|
|
83
|
+
const batch = getters.slice(i, i + 6)
|
|
84
|
+
i += batch.length
|
|
85
|
+
Promise.allSettled(batch.map(fn => fn())).then(() => {
|
|
86
|
+
setTimeout(nextBatch, 0)
|
|
87
|
+
})
|
|
88
|
+
}
|
|
89
|
+
;(typeof requestIdleCallback === 'function' ? requestIdleCallback : function(cb) { setTimeout(cb, 500) })(nextBatch)
|
|
90
|
+
}
|
|
91
|
+
prefetchAll()
|
|
92
|
+
}
|
|
93
|
+
`;return`
|
|
94
|
+
import { ViteReactSSG, createRoutes } from 'boltdocs/client'
|
|
95
|
+
import _routes from 'virtual:boltdocs-routes.ts'
|
|
96
|
+
import _collections from 'virtual:boltdocs-collections.ts'
|
|
97
|
+
import _config from 'virtual:boltdocs-config.ts'
|
|
98
|
+
import _user_mdx_components from 'virtual:boltdocs-mdx-components.tsx'
|
|
99
|
+
${r}
|
|
100
|
+
${o}
|
|
101
|
+
${d}
|
|
102
|
+
|
|
103
|
+
const mdxModules = import.meta.glob('/${c}/**/*.{md,mdx}', ${m});
|
|
104
|
+
|
|
105
|
+
const _collLayoutMods = import.meta.glob('${`/${c}/**/layout.tsx`}', { eager: true });
|
|
106
|
+
const _collListMods = import.meta.glob('${`/${c}/**/list.tsx`}', { eager: true });
|
|
107
|
+
const _collPostMods = import.meta.glob('${`/${c}/**/post.tsx`}', { eager: true });
|
|
108
|
+
|
|
109
|
+
const _collectionLayouts = {};
|
|
110
|
+
for (const [p, mod] of Object.entries(_collLayoutMods)) {
|
|
111
|
+
const dir = p.split('/').slice(-2, -1)[0];
|
|
112
|
+
if (dir.startsWith('[') && dir.endsWith(']')) {
|
|
113
|
+
_collectionLayouts[dir.slice(1, -1)] = mod.default || mod;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
const _collectionLists = {};
|
|
118
|
+
for (const [p, mod] of Object.entries(_collListMods)) {
|
|
119
|
+
const dir = p.split('/').slice(-2, -1)[0];
|
|
120
|
+
if (dir.startsWith('[') && dir.endsWith(']')) {
|
|
121
|
+
_collectionLists[dir.slice(1, -1)] = mod.default || mod;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
const _collectionPosts = {};
|
|
126
|
+
for (const [p, mod] of Object.entries(_collPostMods)) {
|
|
127
|
+
const dir = p.split('/').slice(-2, -1)[0];
|
|
128
|
+
if (dir.startsWith('[') && dir.endsWith(']')) {
|
|
129
|
+
_collectionPosts[dir.slice(1, -1)] = mod.default || mod;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
export const createRoot = ViteReactSSG(
|
|
134
|
+
{
|
|
135
|
+
routes: createRoutes({
|
|
136
|
+
routesData: _routes,
|
|
137
|
+
collectionsData: _collections,
|
|
138
|
+
collectionLayouts: _collectionLayouts,
|
|
139
|
+
collectionLists: _collectionLists,
|
|
140
|
+
collectionPosts: _collectionPosts,
|
|
141
|
+
config: _config,
|
|
142
|
+
mdxModules,
|
|
143
|
+
${f}
|
|
144
|
+
components: { ${s}${s?`, `:``} ...(_user_mdx_components || {}) },
|
|
145
|
+
}),
|
|
146
|
+
},
|
|
147
|
+
({ isClient }) => {
|
|
148
|
+
// Boltdocs initialization hook
|
|
149
|
+
if (isClient) {
|
|
150
|
+
// Client-side initialization
|
|
151
|
+
}
|
|
152
|
+
},
|
|
153
|
+
);
|
|
154
|
+
${h}
|
|
155
|
+
`}let K=null,q=null;function Ot(){K=null,q=null}function kt(e,t,n,r){return{name:`vite-plugin-boltdocs-virtual-modules`,resolveId(e){let t=n()?.root||process.cwd();return e.includes(`boltdocs-entry.tsx`)||e===`virtual:boltdocs-entry`||e===`boltdocs-entry`||e===`\0virtual:boltdocs-entry`?i(v.resolve(t,`boltdocs-entry.tsx`)):e.includes(`boltdocs-client.mjs`)||e===`virtual:boltdocs-client`||e===`boltdocs-client`||e===`\0virtual:boltdocs-client.ts`?i(v.resolve(t,`boltdocs-client.mjs`)):e.startsWith(`virtual:boltdocs-`)?`\0`+e:e.startsWith(`\0virtual:boltdocs-`)?e:null},async load(n){let a=t();if(n.includes(`boltdocs-entry.tsx`)||n===`\0virtual:boltdocs-entry`)return G(e,a);if(n.includes(`boltdocs-client.mjs`)||n===`\0virtual:boltdocs-client.ts`||n===`virtual:boltdocs-client`){let e=U,t=e;for(;e!==v.parse(e).root;){if(y.existsSync(v.join(e,`package.json`))&&JSON.parse(y.readFileSync(v.join(e,`package.json`),`utf-8`)).name===`boltdocs`){t=e;break}e=v.dirname(e)}let n=v.join(t,`src/client/index.ts`),r=v.join(t,`dist/client/index.js`);return`export * from '${i(y.existsSync(n)?n:r)}';`}if(!n.startsWith(`\0virtual:boltdocs-`))return;let o=n.replace(`\0virtual:boltdocs-`,``).replace(/\.tsx?$/,``);if(o===`routes`){let e=j(await l(r,a));return`export default ${JSON.stringify(e,null,2)};`}if(o===`collections`){let e=j(await l(r,a)),t={};for(let n of e)n.collection&&(t[n.collection]||(t[n.collection]=[]),t[n.collection].push({path:n.path,title:n.title,date:n.date,excerpt:n.excerpt,tags:n.tags,author:n.author,coverImage:n.coverImage,filePath:n.filePath,frontmatter:n.frontmatter}));return`export default ${JSON.stringify(t,null,2)};`}if(o===`config`){if(K===null){let{loadDirectoryMeta:e}=await import(`./meta-loader-DzwDFtdT.mjs`);K=await e(r)}let e=K,t={base:a?.base,theme:a?.theme,i18n:a?.i18n,versions:a?.versions,siteUrl:a?.siteUrl,integrations:a?.integrations,plugins:a?.plugins?.map(e=>({name:e.name})),directoryMeta:e};return`export default ${JSON.stringify(t,null,2)};`}if(o===`entry`)return G(e,a);if(o===`mdx-components`){let e=[`tsx`,`ts`,`jsx`,`js`],t=null;for(let n of e){let e=v.resolve(r,`mdx-components.${n}`);if(y.existsSync(e)){t=e;break}}if(t){let e=i(t);return`import * as components from '${e}';
|
|
156
|
+
const mdxComponents = components.default || components;
|
|
157
|
+
export default mdxComponents;
|
|
158
|
+
export * from '${e}';`}return`export default {};`}if(o===`layout`){let e=[`tsx`,`jsx`],t=null;for(let n of e){let e=v.resolve(r,`layout.${n}`);if(y.existsSync(e)){t=e;break}}if(t)return`import UserLayout from '${i(t)}';
|
|
159
|
+
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(o===`icons`){let e=[`tsx`,`jsx`,`ts`,`js`],t=null;for(let n of e){let e=v.resolve(r,`icons.${n}`);if(y.existsSync(e)){t=e;break}}return t?`import * as icons from '${i(t)}';\nexport default icons;`:`export default {};`}if(o===`search`){if(!q){let e=Dt(await l(r,a));q=`export default ${JSON.stringify(e,null,2)};`}return q}if(o===`client`){let e=U,t=``;for(;e&&e!==v.parse(e).root;){let n=v.join(e,`src/client/index.ts`),r=v.join(e,`dist/client/index.mjs`),a=v.join(e,`client/index.ts`);if(y.existsSync(n)){t=i(n);break}if(y.existsSync(r)){t=i(r);break}if(y.existsSync(a)){t=i(a);break}e=v.dirname(e)}if(!t)throw Error(`[boltdocs] Could not resolve boltdocs/client entry point starting from ${U}`);return`export * from '${t}';`}}}}const At={"X-Content-Type-Options":`nosniff`,"X-Frame-Options":`DENY`,"X-XSS-Protection":`1; mode=block`,"Referrer-Policy":`strict-origin-when-cross-origin`,"Permissions-Policy":`camera=(), microphone=(), geolocation=()`,"Strict-Transport-Security":`max-age=31536000; includeSubDomains`};function jt(e){let t=process.env.NODE_ENV===`development`,n={"default-src":[`'self'`],"script-src":[`'self'`,`'unsafe-inline'`],"style-src":[`'self'`,`'unsafe-inline'`],"img-src":[`'self'`,`data:`,`https:`],"font-src":[`'self'`],"connect-src":[`'self'`]};return t&&(n[`script-src`]=[`'self'`,`'unsafe-eval'`,`'unsafe-inline'`],n[`style-src`]=[`'self'`,`'unsafe-inline'`]),Object.entries(n).map(([e,t])=>`${e} ${t.join(` `)}`).join(`; `)}const Mt=/\.(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 Nt(e,t){let n=process.env.NODE_ENV===`production`;e.middlewares.use((e,r,i)=>{n&&Object.entries(At).forEach(([e,t])=>{r.setHeader(e,t)});let a=t();a.security?.enableCSP&&r.setHeader(`Content-Security-Policy`,jt(a)),i()}),e.middlewares.use((e,t,n)=>{if(e.url===`/robots.txt`){n();return}n()}),e.middlewares.use(async(n,r,i)=>{let a=n.url?.split(`?`)[0]||`/`,o=n.headers.accept||``,s=t();if(o.includes(`text/html`)&&!Mt.test(a)){let t=Be(s);t=Ve(t,s),t=await e.transformIndexHtml(n.url||`/`,t),r.statusCode=200,r.setHeader(`Content-Type`,`text/html`),r.end(t);return}i()})}function Pt(e,t,n){setTimeout(async()=>{try{let{generateRoutes:r}=await import(`./routes-_Bb2f4eI.mjs`),i=(await r(t,n())).filter(e=>e.filePath).map(e=>e.filePath);for(let t=0;t<i.length;t+=8){let n=i.slice(t,t+8);await Promise.allSettled(n.map(t=>{let n=v.relative(process.cwd(),t).replace(/\\/g,`/`),r=n.startsWith(`/`)?n:`/${n}`;return e.transformRequest(r)}))}}catch{}},1e3)}const Ft=[`tsx`,`jsx`],J=[`tsx`,`ts`,`jsx`,`js`];function It(e,t){let n=f.map(e=>v.resolve(process.cwd(),e)),r=Ft.map(e=>v.resolve(t,`layout.${e}`)),i=J.map(e=>v.resolve(t,`mdx-components.${e}`)),a=J.map(e=>v.resolve(t,`pages-external/index.${e}`)),o=J.map(e=>v.resolve(t,`icons.${e}`));e.watcher.add([...n,...i,...r,...a,...o])}const Y=new Map;function Lt(e){let{lastUpdated:t,...n}=e;return ie.createHash(`md5`).update(JSON.stringify(n)).digest(`hex`)}async function Rt(e){try{let{data:n}=await t(e);return Lt(n)}catch{return``}}function zt(e){let t=Y.get(e);if(t===void 0){let n=c.get(e);n?.route?.frontmatter&&(t=Lt(n.route.frontmatter),Y.set(e,t))}return t}function Bt(e,t){Y.set(e,t)}function Vt(e){Y.delete(e)}const Ht=[`tsx`,`ts`,`jsx`,`js`];function X(e,t){let n=e.moduleGraph.getModuleById(`\0virtual:boltdocs-${t}.ts`);n&&e.moduleGraph.invalidateModule(n)}function Ut(t,n,r,a){let c=new Map,l=r.toLowerCase(),u=async(r,u)=>{try{let p=i(r);if(f.some(e=>p.endsWith(e))){t.restart();return}if(Ht.some(e=>p.endsWith(`mdx-components.${e}`))){m(a(),n),X(t,`mdx-components.tsx`),t.ws.send({type:`full-reload`});return}if(Ht.some(e=>p.endsWith(`icons.${e}`))){X(t,`icons.tsx`),t.ws.send({type:`full-reload`});return}if(p.endsWith(`layout.tsx`)||p.endsWith(`layout.jsx`)){X(t,`layout.tsx`),t.ws.send({type:`full-reload`});return}if(p.includes(`/pages-external/`)||p.includes(`\\pages-external\\`)){X(t,`entry`),t.ws.send({type:`full-reload`});return}if(!p.toLowerCase().startsWith(l)||!e(p))return;if(u===`add`||u===`unlink`){u===`unlink`&&Vt(r),s(),Ot();let e=a();m(e,n),X(t,`config`),X(t,`routes`),X(t,`search`),X(t,`collections`),d(n,process.cwd(),e).catch(e=>{C(`Failed to update link tree:`,e)}),t.ws.send({type:`custom`,event:`boltdocs:config-update`,data:{theme:e?.theme,i18n:e?.i18n,versions:e?.versions,siteUrl:e?.siteUrl}}),t.ws.send({type:`full-reload`});return}c.has(p)&&clearTimeout(c.get(p)),c.set(p,setTimeout(async()=>{c.delete(p);try{let e=zt(r),a=await Rt(r);if(Bt(r,a),o(r),e!==void 0&&e!==a){X(t,`routes`),X(t,`search`),X(t,`collections`),t.ws.send({type:`full-reload`});return}let s=i(v.relative(n,r)),c=t.moduleGraph.getModulesByFile(p);if(c&&c.size>0)for(let e of c)t.moduleGraph.invalidateModule(e);else{t.ws.send({type:`full-reload`});return}t.ws.send({type:`custom`,event:`boltdocs:mdx-update`,data:{file:p,relPath:s}})}catch(e){C(`HMR error processing content change:`,e)}},150))}catch(e){C(`HMR error during ${u} event:`,e)}};t.watcher.on(`add`,e=>u(e,`add`)),t.watcher.on(`unlink`,e=>u(e,`unlink`)),t.watcher.on(`change`,e=>u(e,`change`))}function Wt(t){let n=t.toLowerCase();return({file:t})=>{if(t.toLowerCase().startsWith(n)&&e(t))return[]}}function Gt(e,t,n,r,i){return{name:`vite-plugin-boltdocs-dev-server`,apply:`serve`,async configureServer(r){let a=i();await a?.runHook(`beforeDev`),d(e,process.cwd(),n()).catch(e=>{C(`Failed to generate initial link tree:`,e)}),Pt(r,e,n),Nt(r,n),It(r,e),Ut(r,e,t,n),await a?.runHook(`afterDev`)},hotUpdate:Wt(t)}}const Z=new a(`mdx`);function Kt(e){let t=pt(e);return async e=>{let n=await t.getHighlighter();V(e,M.ELEMENT,e=>{if(e.tagName!==`pre`)return;let r=e.children?.[0];if(!r||r.type!==M.ELEMENT||r.tagName!==`code`)return;let i=(r.properties?.className||[]).find(e=>e.startsWith(`language-`)),a=i?i.slice(9):I.MDX_DEFAULT_LANG;if(a===`mermaid`)return;let o=z(r.properties?.metastring||r.data?.meta||``),s=t.getOptions(a,o),c=r.children?.[0]?.value||``;try{let t=n.codeToHast(c,s),r=t.type===`root`?t.children[0]:t;e.children=r.children,e.properties={...e.properties,...r.properties,[N.HIGHLIGHTED]:`true`,[N.LANG]:a}}catch(t){C(`[rehypeShiki] Failed to highlight code block:`,t),e.properties=e.properties||{},e.properties.className=[...e.properties.className||[],P.FALLBACK],e.properties[N.HIGHLIGHTED]=`false`,e.properties[N.LANG]=a}return o.title&&(e.properties[N.TITLE]=o.title),le})}}function qt(){return e=>{V(e,M.CODE,e=>{e.meta&&H(e,`metastring`,e.meta)})}}let Jt=!1;function Yt(e,t,n=Ne){let r=e?.plugins?.flatMap(e=>e.remarkPlugins||[])||[],i=e?.plugins?.flatMap(e=>e.rehypePlugins||[])||[],a=n({remarkPlugins:[Pe,Fe,qt,...r],rehypePlugins:[Ie,[Kt,e],...i],jsxRuntime:`automatic`});return{...a,name:`vite-plugin-boltdocs-mdx`,async buildStart(){Jt||=(await Z.load(),!0),a.buildStart&&await a.buildStart.call(this)},async transform(e,n,r){let[i]=n.split(`?`);if(!i.endsWith(`.md`)&&!i.endsWith(`.mdx`))return a.transform?.call(this,e,n,r);let o=`${i}:${ie.createHash(`md5`).update(e).digest(`hex`)}:${process.env.NODE_ENV===`production`?`prod`:`dev`}:v3`,s=await Z.getAsync(o);if(s)return{code:s,map:null};let c=await a.transform.call(this,e,i,r);if(c&&typeof c==`object`&&c.code){let e=c.code,n=t?.();return n&&(e=(await n.runChain(`transformMdx`,{code:e,filePath:i})).code),Z.set(o,e),{code:e,map:null}}return c},async buildEnd(){Z.save(),await Z.flush(),a.buildEnd&&await a.buildEnd.call(this)}}}const Q=g.createRequire(import.meta.url);function Xt(e){try{let e=v.join(process.cwd(),`node_modules/boltdocs/package.json`);if(y.existsSync(e)){let t=y.realpathSync(e);return g.createRequire(t)}else return g.createRequire(v.join(process.cwd(),`package.json`))}catch{return e}}function Zt(e){let t=v.dirname(e);for(;t&&t!==v.dirname(t);){let e=v.join(t,`package.json`);if(y.existsSync(e))return e;t=v.dirname(t)}return null}function Qt(e){let t=e.split(`/`);return e.startsWith(`@`)?{packageName:t.slice(0,2).join(`/`),subpath:t.slice(2).join(`/`)}:{packageName:t[0],subpath:t.slice(1).join(`/`)}}function $(e,t=Q){try{let{packageName:n,subpath:r}=Qt(e),i;try{i=t.resolve(n+`/package.json`)}catch{i=Zt(t.resolve(n))||``}if(!i)throw Error(`Could not find package.json for ${n}`);let a=v.dirname(i),o=JSON.parse(y.readFileSync(i,`utf-8`)),s=``,c=r?`./`+r:`.`;if(o.exports){let e=o.exports[c]||o.exports[r];e&&(s=typeof e==`string`?e:e.import||e.default||e.require||e)}if(!s&&!r&&(s=o.module||o.main||`index.js`),typeof s==`object`&&s){let e=s;s=e.import||e.default||e.require||``}if(s){let e=v.resolve(a,s);if(y.existsSync(e))return e}}catch{}return t.resolve(e)}function $t(){let e=[`react`,`react-dom`,`react-router-dom`,`react-helmet-async`,`@bdocs/ssg`,`react-fast-compare`,`invariant`],t=[],n=Xt(Q);for(let r of e)try{let e=``;e=r===`@bdocs/ssg`||r===`react-router-dom`||r===`react-helmet-async`?$(r,n):n.resolve(r),e&&t.push(y.realpathSync(e))}catch{}if(n!==Q)for(let n of e)try{let e=``;e=n===`@bdocs/ssg`||n===`react-router-dom`||n===`react-helmet-async`?$(n,Q):Q.resolve(n),e&&t.push(y.realpathSync(e))}catch{}for(let e of[`react/jsx-runtime`,`react/jsx-dev-runtime`,`react-dom/client`]){try{t.push(y.realpathSync(n.resolve(e)))}catch{}if(n!==Q)try{t.push(y.realpathSync(Q.resolve(e)))}catch{}}return Array.from(new Set(t)).map(e=>i(e))}function en(e={},t){let n=v.resolve(process.cwd(),e.docsDir||`docs`),r=i(n),a=t,o,s=!1,c,u=[],d=()=>a,f=e=>{a=e},g=()=>o,_=()=>c;return[{name:`vite-plugin-boltdocs`,enforce:`pre`,async config(e,t){s=t.command===`build`;let r=!!(t.isSsrBuild||e.build?.ssr),i=e.envDir||process.cwd(),o=ne(t.mode,i,``);if(Object.assign(process.env,o),!a){a=await h(n);let e=(await l(n,a)).map(e=>e.path),t=(a.base||`/docs`).replace(/\/$/,``);e.includes(t)||e.push(t),m(a,n,void 0,e),p(e)}let d=(await import(`./package-DAbtltXX.mjs`)).version,f=A(a.plugins||[],d);return a.plugins=f,c=new nt(f,a),u=f.flatMap(e=>e.vitePlugins||[]),s&&await c.runHook(`beforeBuild`),{ssgOptions:{entry:`boltdocs/entry`,htmlEntry:`index.html`,dirStyle:`flat`,includeAllRoutes:!0,mock:!0,script:`async`,beastiesOptions:{preload:`media`}},build:{ssrManifest:s},optimizeDeps:{include:[`react`,`react-dom`,`react-dom/client`,`react-router-dom`,`react-helmet-async`,`react-fast-compare`,`invariant`],exclude:[`boltdocs`,`boltdocs/client`]},resolve:{alias:[{find:`react-router-dom`,replacement:$(`react-router-dom`)},{find:`react-helmet-async`,replacement:$(`react-helmet-async`)},{find:`@bdocs/ssg`,replacement:$(`@bdocs/ssg`)}],dedupe:[`react`,`react-dom`,...r?[]:[`react-router-dom`,`react-helmet-async`,`@bdocs/ssg`]]},ssr:{external:[`react`,`react-dom`,`react-helmet-async`,`@bdocs/ssg`,`react-fast-compare`,`invariant`,...$t()],optimizeDeps:{include:[`react-fast-compare`,`invariant`]},noExternal:[`react-router-dom`]}}},configResolved(e){o=e},resolveId(e,t,n){let r=[`react`,`react-dom`,`react-router-dom`,`react-helmet-async`,`@bdocs/ssg`].find(t=>e===t||e.startsWith(t+`/`)||e.includes(`/node_modules/${t}/`)||t.startsWith(`@`)&&e.includes(`/node_modules/${t.replace(`/`,v.sep)}/`));if(r&&n?.ssr){let t=e;if(!v.isAbsolute(e)){let n=Xt(Q);try{t=r===`@bdocs/ssg`||r===`react-router-dom`||r===`react-helmet-async`?$(e,n):n.resolve(e)}catch{try{t=r===`@bdocs/ssg`||r===`react-router-dom`||r===`react-helmet-async`?$(e,Q):Q.resolve(e)}catch{}}}try{t=y.realpathSync(t)}catch{}return{id:t,external:!0}}return null},transformIndexHtml:{order:`pre`,handler(e){return Ve(e,a)}},async buildEnd(){let{pool:e}=await import(`./worker-pool-k0DY6k8T.mjs`);await e.terminate()},async closeBundle(){!s||o?.build?.ssr||(await c?.runHook(`afterBuild`),await c?.runHook(`buildEnd`))},configurePreviewServer(e){let t=o?.build?.outDir?v.resolve(o.root||process.cwd(),o.build.outDir):v.resolve(process.cwd(),`dist`);e.middlewares.use((e,n,r)=>{let i=e.url||`/`,a=i.split(`?`)[0].split(`#`)[0];if(v.extname(a))return r();let o=a.replace(/\/$/,``)||`/`,s=v.join(t,o,`index.html`);o!==`/`&&y.existsSync(s)&&(e.url=`${o}/index.html${i.includes(`?`)?`?${i.split(`?`)[1]}`:``}`),r()})}},kt(e,d,g,n),Gt(n,r,d,f,_),Yt(a,_),{...ae({includePublic:!0,png:{quality:80},jpeg:{quality:80},jpg:{quality:80},webp:{quality:80},avif:{quality:80},svg:{multipass:!0,plugins:[{name:`preset-default`}]}}),apply:`build`},...u]}_(import.meta.url);async function tn(e){let t=e?.docsDir||`docs`,n=await h(t),r=(await l(t,n)).map(e=>e.path),i=(n.base||`/docs`).replace(/\/$/,``);return r.includes(i)||r.push(i),m(n,t,void 0,r),p(r),en({...e},n)}async function nn(e,t=`development`){let n=await h(`docs`,e),r=(await l(`docs`,n)).map(e=>e.path),i=(n.base||`/docs`).replace(/\/$/,``);r.includes(i)||r.push(i),m(n,`docs`,e,r),p(r);let a=t===`production`,o=a?{...At}:{};return n.security?.enableCSP&&(o[`Content-Security-Policy`]=jt(n)),{root:e,mode:t,oxc:{jsx:{development:!a,runtime:`automatic`,importSource:`react`}},optimizeDeps:{include:[`react`,`react-dom`,`react-dom/client`,`react-helmet-async`,`react-router-dom`,`react-fast-compare`,`invariant`,`use-sync-external-store/shim`]},build:{},plugins:[ee(),te(),...en({docsDir:`docs`,root:e},n)],resolve:{alias:[{find:`boltdocs/entry`,replacement:re(v.resolve(e,`boltdocs-entry.tsx`))},{find:`boltdocs/client`,replacement:re(v.resolve(e,`boltdocs-client.mjs`))},{find:`use-sync-external-store/shim/index.js`,replacement:`react`},{find:`use-sync-external-store/shim`,replacement:`react`},{find:`use-sync-external-store`,replacement:`react`}],dedupe:[`react`,`react-dom`]},ssr:{external:[`react`,`react-dom`,`react-helmet-async`,`@bdocs/ssg`,`react-fast-compare`,`invariant`,...$t()],optimizeDeps:{include:[`react`,`react-dom`,`react-fast-compare`,`invariant`,...n.vite?.ssr?.optimizeDeps?.include||[]]},noExternal:[`boltdocs`,/@bdocs\/(?!ssg).*/,`react-aria-components`,`@react-aria/collections`,`@react-aria/utils`,`react-router-dom`]},server:{headers:{...o,...n.vite?.server?.headers},...n.vite?.server},preview:{headers:{...o,...n.vite?.preview?.headers},...n.vite?.preview},...n.vite}}export{D as A,et as C,O as D,He as E,E as O,nt as S,A as T,mt as _,ce as a,z as b,_t as c,gt as d,wt as f,V as g,ht as h,Tt as i,Re as j,k,yt as l,H as m,nn as n,le as o,Ct as p,G as r,St as s,tn as t,vt as u,bt as v,We as w,M as x,xt as y};
|
|
@@ -0,0 +1,6 @@
|
|
|
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-CU-zTemE.cjs`),t=require(`./utils-Cjmx1hhk.cjs`),n=require(`./cache-CKm45d2w.cjs`);let r=require(`node:path`);r=e.t(r);let i=require(`github-slugger`);i=e.t(i);function a(e,n,i,a,o){let s=r.default.relative(n,e).replace(/\\/g,`/`),c=s.split(`/`),l,u,d,f;if(a?.versions&&c.length>0){let e=c[0],t=a.versions.prefix||``,n=a.versions.versions.find(n=>e===t+n.path||e===n.path);n&&(u=n.path,c=c.slice(1))}if(a?.i18n&&c.length>0){let e=c[0];(Array.isArray(a.i18n.locales)?a.i18n.locales.includes(e):a.i18n.locales[e])&&(l=e,c=c.slice(1))}if(c.length>0){let e=c[0].match(/^\((.+)\)$/);e&&(d=e[1].toLowerCase(),c=c.slice(1))}if(c.length>0){let e=c[0].match(/^\[(.+)\]$/);e&&(f=e[1].toLowerCase(),c=c.slice(1))}let p=[...c],m=c.map(e=>t.h(e)).join(`/`),h=o?o.startsWith(`/`)?o:`/${o}`:t.a(m||`index.md`),g=[f?`/${f}`:i,u,l,!o&&!f?d:void 0,h].filter(Boolean).join(`/`).replace(/\/+/g,`/`).replace(/\/$/,``)||`/`;return{relativePath:s,finalPath:g.startsWith(`/`)?g:`/${g}`,remainingParts:p,locale:l,version:u,inferredTab:d,subRouteGroup:void 0,collection:f}}const o=/^(#{2,4})\s+(.+)$/gm,s=/\[([^\]]+)\]\([^)]+\)/g,c=/[_*`]/g,l=/\s+/g,u=/[[\]_*`]|#+.*$|\{[^}]+\}/gm,d=/\((?:[^)]+)\)/g;function f(e,n){let r=new i.default,a=[];for(let n of e.matchAll(o)){let e=n[1].length,i=t.p(n[2].replace(s,`$1`).replace(c,``).trim()).trim(),o=r.slug(i);a.push({level:e,text:i,id:o})}let f=t.m(e.replace(u,``).replace(d,``).replace(l,` `)).trim(),p=n?t.p(n).trim():``;return!p&&e&&(p=f.substring(0,160)),{headings:a,description:p,plainText:f}}const p=[`og:`,`twitter:`,`article:`,`music:`,`video:`,`profile:`,`book:`],m=[`noindex`,`robots`,`canonical`,`keywords`,`author`];function h(e){let t={};e.seo&&typeof e.seo==`object`&&Object.assign(t,e.seo);for(let n of Object.keys(e))(m.includes(n)||p.some(e=>n.startsWith(e)))&&(t[n]=e[n]);return e.hidden===!0&&t.noindex===void 0&&(t.noindex=!0),Object.keys(t).length>0?t:void 0}function g(e){return{title:e.title?t.p(String(e.title)):void 0,badge:e.badge?t.p(String(e.badge)):void 0,description:e.description?t.p(String(e.description)):void 0}}async function _(e,i,o,s){let c=await n.t.get(e);if(c)return c;let l=e.replace(/\\/g,`/`),u=i.replace(/\\/g,`/`),d=v(l),p=r.default.resolve(d),m=r.default.resolve(u);if(r.default.sep===`/`){let e=e=>{let t=e.replace(/\\/g,`/`);return/^[a-zA-Z]:/.test(t)&&(t=t.replace(/^[a-zA-Z]:/,``)),r.default.resolve(t)};p=e(d),m=e(u)}let _=r.default.relative(m,p).replace(/\\/g,`/`);if(_.startsWith(`../`)||_!==`.`&&!t.b.test(_))throw new t._(`Security breach: File is outside of docs directory, contains null bytes, or invalid path characters: ${r.default.basename(d)}`);let{data:y,content:b}=await t.d(e),x=a(p,m,o,s,y.permalink),S=f(b,y.description),C=g(y),w=h(y),T=r.default.basename(x.relativePath),E=t.h(T),D=x.remainingParts.map(e=>t.h(e)).slice(0,-1),O=/^index\.mdx?$/.test(E),k=y.sidebarPosition??t.i(T),A=D.join(`/`),j={route:{path:x.finalPath,componentPath:e,filePath:x.relativePath,title:C.title||t.h(r.default.basename(l,r.default.extname(l))),description:S.description,sidebarPosition:k,headings:S.headings,locale:x.locale,version:x.version,badge:C.badge,icon:y.icon?String(y.icon):void 0,tab:x.inferredTab,subRouteGroup:x.subRouteGroup,slugParts:D,_content:S.plainText,_rawContent:b,date:y.date,lastUpdated:y.lastUpdated,category:y.category,order:y.order,sidebarLabel:y.sidebarLabel,sidebarHidden:y.sidebarHidden||y.hidden,seo:w,frontmatter:y,collection:x.collection,tags:y.tags,author:y.author,draft:y.draft,excerpt:y.excerpt,coverImage:y.coverImage},relativeDir:x.collection?void 0:A||void 0,isGroupIndex:O,inferredTab:x.inferredTab,inferredCollection:x.collection,groupMeta:O?{title:y.groupTitle||C.title||(D.length>0?t.t(D[D.length-1]):``),position:y.groupPosition??y.sidebarPosition??(x.remainingParts.length>1?t.i(x.remainingParts[x.remainingParts.length-2]):void 0),icon:y.icon?String(y.icon):void 0}:void 0,inferredGroupPosition:x.remainingParts.length>1?t.i(x.remainingParts[x.remainingParts.length-2]):void 0};return await n.t.set(e,j),j}function v(e){let n;try{n=decodeURIComponent(e)}catch{throw t.l(`SECURITY_ERROR`,`Invalid encoding in path`,{file:e}),new t.g(`Security breach: Invalid characters or encoding in path`)}if(n.length>260)throw new t._(`Path length exceeds limit`);return n}Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return _}});
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Boltdocs - https://boltdocs.vercel.app
|
|
3
|
+
* Copyright (c) 2026 Jesus Alcala
|
|
4
|
+
* Licensed under the MIT License.
|
|
5
|
+
*/
|
|
6
|
+
import{j as e}from"./node-Y8_4ayje.mjs";import{_ as t,a as n,b as r,d as i,g as a,h as o,i as s,l as c,m as l,p as u,t as d}from"./utils-BYITg7T5.mjs";import{t as f}from"./cache-BMUyNiiA.mjs";import p from"node:path";import m from"github-slugger";function h(e,t,r,i,a){let s=p.relative(t,e).replace(/\\/g,`/`),c=s.split(`/`),l,u,d,f;if(i?.versions&&c.length>0){let e=c[0],t=i.versions.prefix||``,n=i.versions.versions.find(n=>e===t+n.path||e===n.path);n&&(u=n.path,c=c.slice(1))}if(i?.i18n&&c.length>0){let e=c[0];(Array.isArray(i.i18n.locales)?i.i18n.locales.includes(e):i.i18n.locales[e])&&(l=e,c=c.slice(1))}if(c.length>0){let e=c[0].match(/^\((.+)\)$/);e&&(d=e[1].toLowerCase(),c=c.slice(1))}if(c.length>0){let e=c[0].match(/^\[(.+)\]$/);e&&(f=e[1].toLowerCase(),c=c.slice(1))}let m=[...c],h=c.map(e=>o(e)).join(`/`),g=a?a.startsWith(`/`)?a:`/${a}`:n(h||`index.md`),_=[f?`/${f}`:r,u,l,!a&&!f?d:void 0,g].filter(Boolean).join(`/`).replace(/\/+/g,`/`).replace(/\/$/,``)||`/`;return{relativePath:s,finalPath:_.startsWith(`/`)?_:`/${_}`,remainingParts:m,locale:l,version:u,inferredTab:d,subRouteGroup:void 0,collection:f}}const g=/^(#{2,4})\s+(.+)$/gm,_=/\[([^\]]+)\]\([^)]+\)/g,v=/[_*`]/g,y=/\s+/g,b=/[[\]_*`]|#+.*$|\{[^}]+\}/gm,x=/\((?:[^)]+)\)/g;function S(e,t){let n=new m,r=[];for(let t of e.matchAll(g)){let e=t[1].length,i=u(t[2].replace(_,`$1`).replace(v,``).trim()).trim(),a=n.slug(i);r.push({level:e,text:i,id:a})}let i=l(e.replace(b,``).replace(x,``).replace(y,` `)).trim(),a=t?u(t).trim():``;return!a&&e&&(a=i.substring(0,160)),{headings:r,description:a,plainText:i}}const C=[`og:`,`twitter:`,`article:`,`music:`,`video:`,`profile:`,`book:`],w=[`noindex`,`robots`,`canonical`,`keywords`,`author`];function T(e){let t={};e.seo&&typeof e.seo==`object`&&Object.assign(t,e.seo);for(let n of Object.keys(e))(w.includes(n)||C.some(e=>n.startsWith(e)))&&(t[n]=e[n]);return e.hidden===!0&&t.noindex===void 0&&(t.noindex=!0),Object.keys(t).length>0?t:void 0}function E(e){return{title:e.title?u(String(e.title)):void 0,badge:e.badge?u(String(e.badge)):void 0,description:e.description?u(String(e.description)):void 0}}async function D(e,n,a,c){let l=await f.get(e);if(l)return l;let u=e.replace(/\\/g,`/`),m=n.replace(/\\/g,`/`),g=O(u),_=p.resolve(g),v=p.resolve(m);if(p.sep===`/`){let e=e=>{let t=e.replace(/\\/g,`/`);return/^[a-zA-Z]:/.test(t)&&(t=t.replace(/^[a-zA-Z]:/,``)),p.resolve(t)};_=e(g),v=e(m)}let y=p.relative(v,_).replace(/\\/g,`/`);if(y.startsWith(`../`)||y!==`.`&&!r.test(y))throw new t(`Security breach: File is outside of docs directory, contains null bytes, or invalid path characters: ${p.basename(g)}`);let{data:b,content:x}=await i(e),C=h(_,v,a,c,b.permalink),w=S(x,b.description),D=E(b),k=T(b),A=p.basename(C.relativePath),j=o(A),M=C.remainingParts.map(e=>o(e)).slice(0,-1),N=/^index\.mdx?$/.test(j),P=b.sidebarPosition??s(A),F=M.join(`/`),I={route:{path:C.finalPath,componentPath:e,filePath:C.relativePath,title:D.title||o(p.basename(u,p.extname(u))),description:w.description,sidebarPosition:P,headings:w.headings,locale:C.locale,version:C.version,badge:D.badge,icon:b.icon?String(b.icon):void 0,tab:C.inferredTab,subRouteGroup:C.subRouteGroup,slugParts:M,_content:w.plainText,_rawContent:x,date:b.date,lastUpdated:b.lastUpdated,category:b.category,order:b.order,sidebarLabel:b.sidebarLabel,sidebarHidden:b.sidebarHidden||b.hidden,seo:k,frontmatter:b,collection:C.collection,tags:b.tags,author:b.author,draft:b.draft,excerpt:b.excerpt,coverImage:b.coverImage},relativeDir:C.collection?void 0:F||void 0,isGroupIndex:N,inferredTab:C.inferredTab,inferredCollection:C.collection,groupMeta:N?{title:b.groupTitle||D.title||(M.length>0?d(M[M.length-1]):``),position:b.groupPosition??b.sidebarPosition??(C.remainingParts.length>1?s(C.remainingParts[C.remainingParts.length-2]):void 0),icon:b.icon?String(b.icon):void 0}:void 0,inferredGroupPosition:C.remainingParts.length>1?s(C.remainingParts[C.remainingParts.length-2]):void 0};return await f.set(e,I),I}function O(e){let n;try{n=decodeURIComponent(e)}catch{throw c(`SECURITY_ERROR`,`Invalid encoding in path`,{file:e}),new a(`Security breach: Invalid characters or encoding in path`)}if(n.length>260)throw new t(`Path length exceeds limit`);return n}var k=e({parseDocFile:()=>D});export{D as n,k as t};
|
|
@@ -0,0 +1,6 @@
|
|
|
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"./utils-BYITg7T5.mjs";import{n as t,t as n}from"./cache-BMUyNiiA.mjs";import r from"node:path";import{fdir as i}from"fdir";const a=new t({name:`routes`});function o(){a.invalidateAll(),n.clear()}function s(e){a.invalidate(e),n.invalidate(e)}function c(e){return e.sort((e,t)=>!e.group&&!t.group?l(e,t):e.group?t.group?e.group===t.group?l(e,t):u(e,t):1:-1)}function l(e,t){return e.sidebarPosition!==void 0&&t.sidebarPosition!==void 0?e.sidebarPosition-t.sidebarPosition:e.sidebarPosition===void 0?t.sidebarPosition===void 0?e.title.localeCompare(t.title):1:-1}function u(e,t){return e.groupPosition!==void 0&&t.groupPosition!==void 0?e.groupPosition-t.groupPosition:e.groupPosition===void 0?t.groupPosition===void 0?(e.groupTitle||e.group).localeCompare(t.groupTitle||t.group):1:-1}let d=null;const f=new Map;let p=null;function m(){d=null,f.clear(),o()}async function h(t,n,o,s=!1){if(p)return p;let l=(async()=>{let l=o||n?.base||`/docs`;await a.load(),f.clear();let u;if(!s&&d)u=d;else{let e=await new i().withFullPaths().filter(e=>e.endsWith(`.md`)||e.endsWith(`.mdx`)?!r.relative(t,e).replace(/\\/g,`/`).split(`/`).some(e=>e.startsWith(`_`)&&e!==`_index.md`&&e!==`_index.mdx`):!1).crawl(t).withPromise(),n=[/index\./i,/intro/i,/getting-started/i,/readme/i],a=e.map(e=>{let t=r.basename(e),i=n.findIndex(e=>e.test(t));return{f:e,score:i===-1?2**53-1:i}});a.sort((e,t)=>e.score-t.score),u=a.map(e=>e.f),d=u}a.pruneStale(new Set(u));let p=process.env.NODE_ENV===`test`||process.env.VITEST===`true`,m;if(p){let{parseDocFile:e}=await import(`./parser-WGZdWs0X.mjs`).then(e=>e.t);m=await Promise.all(u.map(async r=>{let i=a.get(r);if(i)return i;let o=await e(r,t,l,n);return a.set(r,o),o}))}else{let{pool:e}=await import(`./worker-pool-k0DY6k8T.mjs`),r=n?{i18n:n.i18n,versions:n.versions}:void 0;m=await Promise.all(u.map(async n=>{let i=a.get(n);if(i)return i;let o=await e.parseFile(n,t,l,r);return a.set(n,o),o}))}a.save();let h=[],_=new Map;for(let e of m)if(!(process.env.NODE_ENV===`production`&&e.route.draft))if(e.inferredCollection){let t=e.inferredCollection;_.has(t)||_.set(t,[]),_.get(t).push(e)}else h.push(e);let v=new Map,y=[],b=n?.i18n?.defaultLocale||``;for(let t of h)if(t.isGroupIndex&&t.relativeDir&&y.push(t),t.relativeDir){let n=`${t.route.locale||b}:${t.relativeDir}`,r=v.get(n);r?r.position===void 0&&t.inferredGroupPosition!==void 0&&(r.position=t.inferredGroupPosition):(r={title:e(t.relativeDir),position:t.inferredGroupPosition},v.set(n,r))}for(let e of y){let t=`${e.route.locale||b}:${e.relativeDir}`,n=v.get(t);e.groupMeta&&(n.title=e.groupMeta.title,e.groupMeta.position!==void 0&&(n.position=e.groupMeta.position),e.groupMeta.icon&&(n.icon=e.groupMeta.icon))}if(n?.theme?.sidebarGroups){let t=n.i18n?Object.keys(n.i18n.locales):[b];for(let[r,i]of Object.entries(n.theme.sidebarGroups))for(let n of t){let t=`${n}:${r}`,a=v.get(t),o;typeof i.title==`string`?o=i.title:i.title&&(o=i.title[n]||i.title[b]),a?(o&&(a.title=o),i.icon&&(a.icon=i.icon)):v.set(t,{title:o||e(r),icon:i.icon})}}let x=Array(h.length);for(let t=0;t<h.length;t++){let n=h[t],r=n.relativeDir,i=n.route.locale||b,a=r?`${i}:${r}`:void 0,o=a?v.get(a):void 0,s;o&&(s=typeof o.title==`string`?o.title:o.title[i]||o.title[b]),x[t]={...n.route,group:r,groupTitle:s||(r?e(r):void 0),groupPosition:o?.position,groupIcon:o?.icon}}let S=[];for(let[,e]of _)for(let t of e)S.push({...t.route,collection:t.inferredCollection});S.sort((e,t)=>{let n=e.date?new Date(e.date).getTime():0;return(t.date?new Date(t.date).getTime():0)-n});let C=x;if(n?.i18n){let e=g(x,n,l);C=[...x,...e]}return[...c(C),...S]})();p=l;try{return await l}finally{p=null}}function g(e,t,n){let r=t.i18n.defaultLocale,i=Object.keys(t.i18n.locales),a=[],o=new Map,s=[];for(let t of e){let e=t.locale||r;o.has(e)||o.set(e,new Set),o.get(e).add(t.path),e===r&&s.push(t)}for(let e of i){let i=o.get(e)||new Set;for(let o of s){let s=_(o.path,r,e,n,t);s!==o.path&&(i.has(s)||a.push({...o,path:s,locale:e}))}}return a}function _(e,t,n,r,i){let a=`${e}:${n}`,o=f.get(a);if(o)return o;let s=r.startsWith(`/`)?r:`/`+r,c=s;if(i?.versions){let t=i.versions.prefix||``;for(let n of i.versions.versions){let r=`${s}/${t+n.path}`;if(e.startsWith(r)){c=r;break}let i=`${s}/${n.path}`;if(e.startsWith(i)){c=i;break}}}let l=e.substring(c.length),u=`/${t}`;if(l.startsWith(u+`/`))l=`/`+n+`/`+l.substring(u.length+1);else if(l===u)l=`/`+n;else if(l===`/`||l===``)l=`/`+n;else{let e=l.startsWith(`/`)?``:`/`;l=`/`+n+e+l}let d=c+l;return f.size>2e3&&f.clear(),f.set(a,d),d}export{s as i,m as n,a as r,h as t};
|
|
@@ -0,0 +1,6 @@
|
|
|
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-CU-zTemE.cjs`),t=require(`./utils-Cjmx1hhk.cjs`),n=require(`./cache-CKm45d2w.cjs`);let r=require(`node:path`);r=e.t(r);let i=require(`fdir`);const a=new n.n({name:`routes`});function o(){a.invalidateAll(),n.t.clear()}function s(e){a.invalidate(e),n.t.invalidate(e)}function c(e){return e.sort((e,t)=>!e.group&&!t.group?l(e,t):e.group?t.group?e.group===t.group?l(e,t):u(e,t):1:-1)}function l(e,t){return e.sidebarPosition!==void 0&&t.sidebarPosition!==void 0?e.sidebarPosition-t.sidebarPosition:e.sidebarPosition===void 0?t.sidebarPosition===void 0?e.title.localeCompare(t.title):1:-1}function u(e,t){return e.groupPosition!==void 0&&t.groupPosition!==void 0?e.groupPosition-t.groupPosition:e.groupPosition===void 0?t.groupPosition===void 0?(e.groupTitle||e.group).localeCompare(t.groupTitle||t.group):1:-1}let d=null;const f=new Map;let p=null;function m(){d=null,f.clear(),o()}async function h(e,n,o,s=!1){if(p)return p;let l=(async()=>{let l=o||n?.base||`/docs`;await a.load(),f.clear();let u;if(!s&&d)u=d;else{let t=await new i.fdir().withFullPaths().filter(t=>t.endsWith(`.md`)||t.endsWith(`.mdx`)?!r.default.relative(e,t).replace(/\\/g,`/`).split(`/`).some(e=>e.startsWith(`_`)&&e!==`_index.md`&&e!==`_index.mdx`):!1).crawl(e).withPromise(),n=[/index\./i,/intro/i,/getting-started/i,/readme/i],a=t.map(e=>{let t=r.default.basename(e),i=n.findIndex(e=>e.test(t));return{f:e,score:i===-1?2**53-1:i}});a.sort((e,t)=>e.score-t.score),u=a.map(e=>e.f),d=u}a.pruneStale(new Set(u));let p=process.env.NODE_ENV===`test`||process.env.VITEST===`true`,m;if(p){let{parseDocFile:t}=await Promise.resolve().then(()=>require(`./parser-BzB-zCkF.cjs`));m=await Promise.all(u.map(async r=>{let i=a.get(r);if(i)return i;let o=await t(r,e,l,n);return a.set(r,o),o}))}else{let{pool:t}=await Promise.resolve().then(()=>require(`./worker-pool-CtqklOXq.cjs`)),r=n?{i18n:n.i18n,versions:n.versions}:void 0;m=await Promise.all(u.map(async n=>{let i=a.get(n);if(i)return i;let o=await t.parseFile(n,e,l,r);return a.set(n,o),o}))}a.save();let h=[],_=new Map;for(let e of m)if(!(process.env.NODE_ENV===`production`&&e.route.draft))if(e.inferredCollection){let t=e.inferredCollection;_.has(t)||_.set(t,[]),_.get(t).push(e)}else h.push(e);let v=new Map,y=[],b=n?.i18n?.defaultLocale||``;for(let e of h)if(e.isGroupIndex&&e.relativeDir&&y.push(e),e.relativeDir){let n=`${e.route.locale||b}:${e.relativeDir}`,r=v.get(n);r?r.position===void 0&&e.inferredGroupPosition!==void 0&&(r.position=e.inferredGroupPosition):(r={title:t.t(e.relativeDir),position:e.inferredGroupPosition},v.set(n,r))}for(let e of y){let t=`${e.route.locale||b}:${e.relativeDir}`,n=v.get(t);e.groupMeta&&(n.title=e.groupMeta.title,e.groupMeta.position!==void 0&&(n.position=e.groupMeta.position),e.groupMeta.icon&&(n.icon=e.groupMeta.icon))}if(n?.theme?.sidebarGroups){let e=n.i18n?Object.keys(n.i18n.locales):[b];for(let[r,i]of Object.entries(n.theme.sidebarGroups))for(let n of e){let e=`${n}:${r}`,a=v.get(e),o;typeof i.title==`string`?o=i.title:i.title&&(o=i.title[n]||i.title[b]),a?(o&&(a.title=o),i.icon&&(a.icon=i.icon)):v.set(e,{title:o||t.t(r),icon:i.icon})}}let x=Array(h.length);for(let e=0;e<h.length;e++){let n=h[e],r=n.relativeDir,i=n.route.locale||b,a=r?`${i}:${r}`:void 0,o=a?v.get(a):void 0,s;o&&(s=typeof o.title==`string`?o.title:o.title[i]||o.title[b]),x[e]={...n.route,group:r,groupTitle:s||(r?t.t(r):void 0),groupPosition:o?.position,groupIcon:o?.icon}}let S=[];for(let[,e]of _)for(let t of e)S.push({...t.route,collection:t.inferredCollection});S.sort((e,t)=>{let n=e.date?new Date(e.date).getTime():0;return(t.date?new Date(t.date).getTime():0)-n});let C=x;if(n?.i18n){let e=g(x,n,l);C=[...x,...e]}return[...c(C),...S]})();p=l;try{return await l}finally{p=null}}function g(e,t,n){let r=t.i18n.defaultLocale,i=Object.keys(t.i18n.locales),a=[],o=new Map,s=[];for(let t of e){let e=t.locale||r;o.has(e)||o.set(e,new Set),o.get(e).add(t.path),e===r&&s.push(t)}for(let e of i){let i=o.get(e)||new Set;for(let o of s){let s=_(o.path,r,e,n,t);s!==o.path&&(i.has(s)||a.push({...o,path:s,locale:e}))}}return a}function _(e,t,n,r,i){let a=`${e}:${n}`,o=f.get(a);if(o)return o;let s=r.startsWith(`/`)?r:`/`+r,c=s;if(i?.versions){let t=i.versions.prefix||``;for(let n of i.versions.versions){let r=`${s}/${t+n.path}`;if(e.startsWith(r)){c=r;break}let i=`${s}/${n.path}`;if(e.startsWith(i)){c=i;break}}}let l=e.substring(c.length),u=`/${t}`;if(l.startsWith(u+`/`))l=`/`+n+`/`+l.substring(u.length+1);else if(l===u)l=`/`+n;else if(l===`/`||l===``)l=`/`+n;else{let e=l.startsWith(`/`)?``:`/`;l=`/`+n+e+l}let d=c+l;return f.size>2e3&&f.clear(),f.set(a,d),d}Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return h}});
|