boltdocs 3.0.2 → 3.1.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 -18
- package/dist/{adapters-C5AWWGfb.cjs → adapters-uGz-UKQa.cjs} +1 -1
- package/dist/{banner-DNSkgUsO.d.cts → banner-DdSgCs4G.d.cts} +1 -1
- package/dist/{banner-CfdalYLL.d.ts → banner-DjujkctF.d.ts} +1 -1
- package/dist/cache-B0C2i0yP.mjs +6 -0
- package/dist/cache-CfRTUzWC.cjs +6 -0
- package/dist/chunk-hT5z_Zn9-DsJawvsz.mjs +6 -0
- package/dist/chunk-hT5z_Zn9-SKz6VFXu.cjs +6 -0
- package/dist/client/index.cjs +227 -113
- package/dist/client/index.d.cts +57 -12
- package/dist/client/index.d.ts +57 -12
- package/dist/client/index.js +227 -114
- package/dist/client/mdx.cjs +1 -1
- package/dist/client/mdx.js +1 -1
- package/dist/client/primitives.cjs +4 -4
- package/dist/client/primitives.d.cts +1 -1
- package/dist/client/primitives.d.ts +1 -1
- package/dist/client/primitives.js +4 -4
- package/dist/client/theme/neutral.css +1 -3
- package/dist/{config-JGkMJoJQ.cjs → config-BxsogK5A.cjs} +1 -1
- package/dist/config-DAgpZyh6.mjs +7 -0
- package/dist/config-DrRQYDCI.cjs +7 -0
- package/dist/{docs-layout-3TpAt6MB.cjs → docs-layout-D1buSdua.cjs} +1 -1
- package/dist/{docs-layout-6FQ8__ok.js → docs-layout-DyLDBwS6.js} +1 -1
- package/dist/{doctor-DQxLM202.cjs → doctor-BadGEhXv.cjs} +1 -1
- package/dist/{doctor-BR1B2Mkz.cjs → doctor-DPDcRKM1.cjs} +1 -1
- package/dist/{doctor-3MheVMwd.mjs → doctor-vDsUDgqp.mjs} +1 -1
- package/dist/escape-string-regexp-AG8q1e25-9Un9V90q.mjs +6 -0
- package/dist/escape-string-regexp-AG8q1e25-bJ9Ixe7c.cjs +6 -0
- package/dist/esm-shims-DSep1HcR.mjs +6 -0
- package/dist/{icons-dev-kJyGWNeg.js → icons-dev-CHZOwhQA.js} +8 -3
- package/dist/{icons-dev-BryEFkJu.cjs → icons-dev-YtDoLUsb.cjs} +8 -3
- package/dist/{image-C9md50h2.js → image-5WsgWYTh.js} +2 -2
- package/dist/{image-CR6UlaI5.cjs → image-Hb105Gu6.cjs} +2 -2
- package/dist/lib-BR0SoanK-CLswltLI.cjs +6 -0
- package/dist/lib-BR0SoanK-DcYeDrE6.mjs +6 -0
- package/dist/lib-DPoCz1YB-CLYXwKST.cjs +6 -0
- package/dist/lib-DPoCz1YB-CyGOqgSO.mjs +6 -0
- package/dist/{mdx-DhyMkc35.js → mdx-Bv-pS6-O.js} +6 -2
- package/dist/{mdx-DJBg5DuL.cjs → mdx-CDUcJmye.cjs} +6 -2
- package/dist/micromark-util-character-5KqJafVT-C6gnc770.cjs +6 -0
- package/dist/micromark-util-character-5KqJafVT-DkPKsbgn.mjs +6 -0
- package/dist/node/cache.cjs +6 -0
- package/dist/node/cache.d.cts +83 -0
- package/dist/node/cache.d.mts +83 -0
- package/dist/node/cache.mjs +6 -0
- package/dist/node/cli-entry.cjs +3 -3
- package/dist/node/cli-entry.mjs +3 -3
- package/dist/node/index.cjs +1 -1
- package/dist/node/index.d.cts +10 -467
- package/dist/node/index.d.mts +12 -468
- package/dist/node/index.mjs +1 -1
- package/dist/node/mdx/shiki-adapter.cjs +6 -0
- package/dist/node/mdx/shiki-adapter.d.cts +3 -0
- package/dist/node/mdx/shiki-adapter.d.mts +3 -0
- package/dist/node/mdx/shiki-adapter.mjs +6 -0
- package/dist/node-BDBv8CT6.mjs +104 -0
- package/dist/node-DFV_FV0y.mjs +6 -0
- package/dist/node-DqsP7kXz.cjs +6 -0
- package/dist/node-yFmAavND.cjs +104 -0
- package/dist/{package-_dCCKVvG.mjs → package-CoHWTf0N.mjs} +1 -1
- package/dist/{package-CEDhVAfO.cjs → package-_-Oa8-qN.cjs} +1 -1
- package/dist/{parser-D0QHIQsi.mjs → parser-BZJgAa9E.mjs} +1 -1
- package/dist/{parser-CNIPHx4s.cjs → parser-DlanzESE.cjs} +1 -1
- package/dist/plugin-BVuwx5D9.cjs +73 -0
- package/dist/plugin-BoxD91Yh.mjs +73 -0
- package/dist/rehype-slug--ZOxZ-_K-BNeYC4aT.cjs +6 -0
- package/dist/rehype-slug--ZOxZ-_K-CjIQEJCs.mjs +6 -0
- package/dist/remark-frontmatter-wFYRLcCt-CutW0gA3.mjs +8 -0
- package/dist/remark-frontmatter-wFYRLcCt-ENB5qG3y.cjs +8 -0
- package/dist/remark-gfm-B8TMkQbX-CjUJo8Rd.cjs +21 -0
- package/dist/remark-gfm-B8TMkQbX-Ctu0VV1_.mjs +21 -0
- package/dist/rollup-DMqoG11U-CKcJ37u_.mjs +59 -0
- package/dist/rollup-DMqoG11U-DKdxvZIj.cjs +59 -0
- package/dist/routes-BN2XbGcT.mjs +6 -0
- package/dist/routes-Cnq8xTCv.cjs +6 -0
- package/dist/{routes-BajCwrvX.cjs → routes-D_S9kjkS.cjs} +1 -1
- package/dist/{search-dialog-CW1f6dn6.cjs → search-dialog-BIuxGQsg.cjs} +1 -1
- package/dist/{search-dialog-Cx7aGW3U.cjs → search-dialog-BbtxA1uT.cjs} +2 -2
- package/dist/{search-dialog-D4rplZMv.cjs → search-dialog-BpNULmrl.cjs} +1 -1
- package/dist/{search-dialog-DDopgbKM.js → search-dialog-DC7oXU-5.js} +2 -2
- package/dist/{search-dialog-DaeSPvEo.js → search-dialog-PJrFRU5G.js} +1 -1
- package/dist/{search-dialog-BNdRV60O.js → search-dialog-gp9lrJXm.js} +1 -1
- package/dist/server/index.cjs +1 -1
- package/dist/server/index.d.mts +1 -1
- package/dist/shiki-adapter-CK3llqw2.mjs +6 -0
- package/dist/shiki-adapter-fS94vy-z.d.mts +534 -0
- package/dist/shiki-adapter-l2kEP5rn.d.cts +534 -0
- package/dist/{sidebar-BAKgJ-Er.d.ts → sidebar-DH2iPKXM.d.cts} +187 -10
- package/dist/{sidebar-7gIifpBX.d.cts → sidebar-DknLUI1R.d.ts} +187 -10
- package/package.json +16 -5
- package/src/shared/types.ts +177 -10
- package/dist/cache-DETwlACe.cjs +0 -6
- package/dist/cache-SF59enb3.mjs +0 -6
- package/dist/config-B5uVv5q4.cjs +0 -7
- package/dist/config-D3_zDkHh.mjs +0 -7
- package/dist/node-B9JSyEIU.mjs +0 -105
- package/dist/node-Cedquois.cjs +0 -105
- package/dist/plugin-WYNORxp1.cjs +0 -68
- package/dist/plugin-YWNVRpws.mjs +0 -68
- package/dist/routes-CyrnmVuG.mjs +0 -6
- package/dist/routes-D6Tuu7Fs.cjs +0 -6
- package/dist/shiki-adapter-CXEGRnjr.mjs +0 -6
- package/dist/shiki-adapter-Mr8_oT_9.cjs +0 -6
- /package/dist/{csp-CBysWlAf.cjs → csp-BX06rvdg.cjs} +0 -0
- /package/dist/{csp-gaZ51xzq.mjs → csp-z2D0FuRW.mjs} +0 -0
- /package/dist/{generator-DtUU3Cfk.cjs → generator-BN75lJOv.cjs} +0 -0
- /package/dist/{handler-Dzf4dSnV.cjs → handler-1LRMYeI4.cjs} +0 -0
- /package/dist/{headers-CXyf0auY.mjs → headers-CL0pMcwm.mjs} +0 -0
- /package/dist/{headers-BXKxiPUv.cjs → headers-YpD10rDb.cjs} +0 -0
- /package/dist/{index-CdJv4ocW.d.mts → index-DJYJzs-Z.d.mts} +0 -0
- /package/dist/{meta-loader-C4Hu9RN9.mjs → meta-loader-Bq-MjTXB.mjs} +0 -0
- /package/dist/{meta-loader-C9MKjAs0.cjs → meta-loader-CTB62-Mo.cjs} +0 -0
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Boltdocs - https://boltdocs.vercel.app
|
|
3
|
+
* Copyright (c) 2026 Jesus Alcala
|
|
4
|
+
* Licensed under the MIT License.
|
|
5
|
+
*/
|
|
6
|
+
import{r as e,u as t}from"./utils-B3xYMrpK.mjs";import{t as n}from"./routes-BN2XbGcT.mjs";import{t as r}from"./pages-external-BYa4JSda.mjs";import{i,r as a}from"./config-DAgpZyh6.mjs";import{r as o,t as s}from"./types-generator-DVOnRVKU.mjs";import{o as c}from"./shiki-adapter-CK3llqw2.mjs";import{createRequire as l}from"node:module";import u from"node:path";import d from"node:fs";import{z as f}from"zod";import*as p from"@bdocs/dui";import{colors as m,warn as h}from"@bdocs/dui";import g from"semver";import{build as _}from"@bdocs/ssg/node";import{EXIT as v,SKIP as y,visit as b}from"unist-util-visit";function x(e,n){let r=u.resolve(process.cwd(),`index.css`),i=d.existsSync(r)?`import './index.css';`:``,a=n?.plugins?.flatMap(e=>Object.entries(e.components||{}))||[],o=a.map(([e,n])=>`import { ${e} as _comp_${e} } from '${t(n)}';`).join(`
|
|
7
|
+
`),s=a.map(([e])=>`${e}: _comp_${e}`).join(`, `),c=u.basename(e.docsDir||`docs`),l=u.resolve(process.cwd(),e.docsDir||`docs`),f=[`tsx`,`ts`,`jsx`,`js`].map(e=>u.resolve(l,`pages-external/index.${e}`)).find(e=>d.existsSync(e)),p=f?`import * as _external_module from '${t(f)}';`:``,m=f?`externalPages: _external_module.pages, externalLayout: _external_module.layout,`:``,h=process.env.VITE_SSG===`true`,g=h?`{ eager: true }`:`{}`,_=h?``:`
|
|
8
|
+
if (typeof window !== 'undefined') {
|
|
9
|
+
const prefetchAll = () => {
|
|
10
|
+
const getters = Object.values(mdxModules)
|
|
11
|
+
if (getters.length === 0) return
|
|
12
|
+
let i = 0
|
|
13
|
+
const nextBatch = () => {
|
|
14
|
+
if (i >= getters.length) return
|
|
15
|
+
const batch = getters.slice(i, i + 6)
|
|
16
|
+
i += batch.length
|
|
17
|
+
Promise.allSettled(batch.map(fn => fn())).then(() => {
|
|
18
|
+
setTimeout(nextBatch, 0)
|
|
19
|
+
})
|
|
20
|
+
}
|
|
21
|
+
;(typeof requestIdleCallback === 'function' ? requestIdleCallback : function(cb) { setTimeout(cb, 500) })(nextBatch)
|
|
22
|
+
}
|
|
23
|
+
prefetchAll()
|
|
24
|
+
}
|
|
25
|
+
`;return`
|
|
26
|
+
import { ViteReactSSG, createRoutes } from 'boltdocs/client'
|
|
27
|
+
import _routes from 'virtual:boltdocs-routes.ts'
|
|
28
|
+
import _collections from 'virtual:boltdocs-collections.ts'
|
|
29
|
+
import _config from 'virtual:boltdocs-config.ts'
|
|
30
|
+
import _user_mdx_components from 'virtual:boltdocs-mdx-components.tsx'
|
|
31
|
+
${i}
|
|
32
|
+
${o}
|
|
33
|
+
${p}
|
|
34
|
+
|
|
35
|
+
const mdxModules = import.meta.glob('/${c}/**/*.{md,mdx}', ${g});
|
|
36
|
+
|
|
37
|
+
const _collLayoutMods = import.meta.glob('${`/${c}/**/layout.tsx`}', { eager: true });
|
|
38
|
+
const _collListMods = import.meta.glob('${`/${c}/**/list.tsx`}', { eager: true });
|
|
39
|
+
const _collPostMods = import.meta.glob('${`/${c}/**/post.tsx`}', { eager: true });
|
|
40
|
+
|
|
41
|
+
const _collectionLayouts = {};
|
|
42
|
+
for (const [p, mod] of Object.entries(_collLayoutMods)) {
|
|
43
|
+
const dir = p.split('/').slice(-2, -1)[0];
|
|
44
|
+
if (dir.startsWith('[') && dir.endsWith(']')) {
|
|
45
|
+
_collectionLayouts[dir.slice(1, -1)] = mod.default || mod;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
const _collectionLists = {};
|
|
50
|
+
for (const [p, mod] of Object.entries(_collListMods)) {
|
|
51
|
+
const dir = p.split('/').slice(-2, -1)[0];
|
|
52
|
+
if (dir.startsWith('[') && dir.endsWith(']')) {
|
|
53
|
+
_collectionLists[dir.slice(1, -1)] = mod.default || mod;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
const _collectionPosts = {};
|
|
58
|
+
for (const [p, mod] of Object.entries(_collPostMods)) {
|
|
59
|
+
const dir = p.split('/').slice(-2, -1)[0];
|
|
60
|
+
if (dir.startsWith('[') && dir.endsWith(']')) {
|
|
61
|
+
_collectionPosts[dir.slice(1, -1)] = mod.default || mod;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
export const createRoot = ViteReactSSG(
|
|
66
|
+
{
|
|
67
|
+
routes: createRoutes({
|
|
68
|
+
routesData: _routes,
|
|
69
|
+
collectionsData: _collections,
|
|
70
|
+
collectionLayouts: _collectionLayouts,
|
|
71
|
+
collectionLists: _collectionLists,
|
|
72
|
+
collectionPosts: _collectionPosts,
|
|
73
|
+
config: _config,
|
|
74
|
+
mdxModules,
|
|
75
|
+
${m}
|
|
76
|
+
components: { ${s}${s?`, `:``} ...(_user_mdx_components || {}) },
|
|
77
|
+
}),
|
|
78
|
+
},
|
|
79
|
+
({ isClient }) => {
|
|
80
|
+
// Boltdocs initialization hook
|
|
81
|
+
if (isClient) {
|
|
82
|
+
// Client-side initialization
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
);
|
|
86
|
+
${_}
|
|
87
|
+
`}var S=class extends Error{name=this.constructor.name;constructor(e,t,n){super(`[plugin:${e}] ${t}`,n),this.pluginName=e}},C=class extends S{constructor(e,t){super(e,`Validation failed: ${t}`)}},w=class extends S{constructor(e,t){super(e,`Compatibility error: ${t}`)}},T=class extends S{constructor(e,t,n){super(e,`Error in hook '${t}': ${n.message}`,{cause:n}),this.hookName=t}},E=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 D=i.extend({version:f.string().optional(),boltdocsVersion:f.string().optional(),hooks:f.object({beforeBuild:f.function().optional(),afterBuild:f.function().optional(),beforeDev:f.function().optional(),afterDev:f.function().optional(),buildEnd:f.function().optional(),transformSource:f.function().optional(),transformMdx:f.function().optional(),transformHtml:f.function().optional()}).optional()});function O(e,t){let n=[],r=new Set;for(let i of e){let e=D.safeParse(i);if(!e.success)throw new C(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 C(a.name,`Duplicate plugin name detected`);if(r.add(a.name),a.boltdocsVersion&&!g.satisfies(t,a.boltdocsVersion))throw new w(a.name,`Plugin expects Boltdocs version ${a.boltdocsVersion}, but current is ${t}`);if(a.components)for(let[e,t]of Object.entries(a.components)){if(t.includes(`..`))throw new C(a.name,`Component '${e}' has an invalid path: traversal sequences are not allowed.`);if(u.isAbsolute(t))throw new C(a.name,`Component '${e}' has an invalid path: absolute paths are not allowed.`)}n.push(a)}return n}function k(e,t=process.cwd()){let n=e.plugins||[];for(let e of n)if(e.name)try{let n=null;try{n=l(u.resolve(t,`package.json`)).resolve(`${e.name}/package.json`)}catch{let r=u.resolve(t,`node_modules`,e.name,`package.json`);d.existsSync(r)&&(n=r)}if(n&&d.existsSync(n)){let t=JSON.parse(d.readFileSync(n,`utf-8`)).scripts||{};(t.preinstall||t.postinstall||t.install)&&h(`💡 ${m.yellow(m.bold(`Nota de seguridad:`))} El plugin ${m.cyan(e.name)} ejecuta scripts nativos al instalarse. Corre ${m.bold(`boltdocs audit`)} para un análisis detallado.`)}}catch{}}var A=class{name=`ConfigResolve`;async execute(e){e.config=await a(`docs`,e.root),k(e.config,e.root),e.viteConfig=await $(e.root,`production`,e.config,e.turbo)}};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 M=class{name=`RouteGenerate`;async execute(e){if(!e.config)throw Error(`Config not resolved. Run ConfigResolve first.`);let t=u.resolve(e.root,`docs`),r=e.viteConfig?.base||e.config.base||`/docs`;e.routes=[...await n(t,e.config,r,!1,e.turbo)],e.ssgRoutes=j(e.routes)}};const ee=f.object({title:f.string().optional(),description:f.string().optional(),canonical:f.string().url().optional(),robots:f.string().optional(),noindex:f.boolean().optional(),"og:title":f.string().optional(),"og:description":f.string().optional(),"og:image":f.string().optional(),"og:type":f.string().optional(),"og:url":f.string().url().optional()});var N=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(n=>{let r=n.seo||{},i=r.canonical||(t?`${t.replace(/\/$/,``)}${n.path}`:void 0),a=r[`og:url`]||i||void 0,o=e.config.seo?.thumbnails?.background,s=r[`og:image`]||n.coverImage||o;s&&t&&!/^https?:\/\/|^\/\//.test(s)&&(s=`${t.endsWith(`/`)?t.slice(0,-1):t}${s.startsWith(`/`)?s:`/${s}`}`);let c={...r};i&&(c.canonical=i),a&&(c[`og:url`]=a),s&&(c[`og:image`]=s),!c[`og:title`]&&n.title&&(c[`og:title`]=n.title),!c[`og:description`]&&n.description&&(c[`og:description`]=n.description);let l=ee.safeParse(c);return l.success||h(`[SEOValidate] Validation issues on route "${n.path}":`,l.error.message),n.title||h(`[SEOValidate] Route "${n.path}" is missing a title.`),{...n,seo:c}}),e.ssgRoutes=j(e.routes)}},P=class{name=`TypeGenerate`;async execute(e){if(!e.config||!e.routes)throw Error(`Config or Routes not initialized.`);let t=u.resolve(e.root,`docs`),n=e.routes.map(e=>e.path),i=(e.config.base||`/docs`).replace(/\/$/,``);n.includes(i)||n.push(i);let a=r(t,e.config);for(let e of a)n.includes(e)||n.push(e);s(e.config,t,e.root,n),o(n)}},F=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 _({entry:`boltdocs/entry`,routeToSourceFileMap:t,cacheDir:u.resolve(e.root,`.boltdocs/build`),turbo:e.turbo},e.viteConfig),e.outDir=e.viteConfig.build?.outDir||`dist`}};function I(t,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"?>
|
|
88
|
+
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
|
89
|
+
${t.filter(e=>e.seo?.noindex||typeof e.seo?.robots==`string`&&e.seo.robots.includes(`noindex`)?!1:(i&&e.seo?.index,!0)).map(t=>` <url>
|
|
90
|
+
<loc>${e(`${r}${t.path.startsWith(`/`)?t.path:`/${t.path}`}`)}</loc>
|
|
91
|
+
<changefreq>weekly</changefreq>
|
|
92
|
+
<priority>0.7</priority>
|
|
93
|
+
</url>`).join(`
|
|
94
|
+
`)}
|
|
95
|
+
</urlset>`}function L(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(`
|
|
96
|
+
`);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(`
|
|
97
|
+
`)+`
|
|
98
|
+
`:t+=`Allow: ${e.allow}\n`),e.disallow&&(Array.isArray(e.disallow)?t+=e.disallow.map(e=>`Disallow: ${e}`).join(`
|
|
99
|
+
`)+`
|
|
100
|
+
`:t+=`Disallow: ${e.disallow}\n`),t.trim()}).join(`
|
|
101
|
+
|
|
102
|
+
`),a=[...n?[n]:[],...r].map(e=>`Sitemap: ${e}`).join(`
|
|
103
|
+
`);return`${i}${a?`\n\n${a}`:``}`}return[`User-agent: *`,`Allow: /`,``,n?`Sitemap: ${n}`:``].filter(Boolean).join(`
|
|
104
|
+
`)}var R=class{name=`SEOWrite`;async execute(e){if(!e.ssgRoutes||!e.config||!e.outDir)throw Error(`SSG Routes, Config, or OutDir not initialized.`);let t=I(e.ssgRoutes,e.config),n=u.resolve(e.root,e.outDir);t&&d.writeFileSync(u.join(n,`sitemap.xml`),t,`utf-8`);let r=L(e.config);d.writeFileSync(u.join(n,`robots.txt`),r,`utf-8`)}};function z(){return new B().addStep(new A).addStep(new M).addStep(new N).addStep(new P).addStep(new F).addStep(new R)}var B=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}}},V=class{plugins;config;store;docsDir;rootDir;routes;outDir;constructor(e,t,n,r,i,a){this.plugins=e,this.config=t,this.store=new E,this.docsDir=n||process.cwd(),this.rootDir=r||process.cwd(),this.routes=i||[],this.outDir=a||`dist`}async runHook(e,...t){let n=this.getSortedPlugins(),r=new B;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 T(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 T(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,outDir:this.outDir,routes:this.routes,meta:{name:e.name,version:e.version,boltdocsVersion:e.boltdocsVersion},store:{get:(e,t)=>this.store.get(e,t),set:(e,t,n)=>this.store.set(e,t,n),has:(e,t)=>this.store.has(e,t)},logger:this.createLogger(e.name)}}createLogger(e){let t=`[plugin:${e}]`;return{info:e=>p.info(`${t} ${e}`),warn:e=>p.warn(`${t} ${e}`),error:e=>{p.error(`${t} ${e instanceof Error?e.message:e}`)},debug:e=>p.debug(`${t} ${e}`)}}};function H(e,t,n){e&&b(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 U(e,t,n){H(e,c.ELEMENT,(e,r,i)=>{if(e.tagName===t)return n(e,r,i)})}function W(e,t,n){let r=Array.isArray(t)?t:[t],i=[c.JSX_FLOW_ELEMENT,c.JSX_TEXT_ELEMENT];H(e,e=>i.includes(e.type),(e,t,i)=>{if(e.name&&r.includes(e.name))return n(e,t,i)})}function G(e,t,n){e&&(e.data=e.data||{},e.data.hProperties=e.data.hProperties||{},e.data.hProperties[t]=n)}function K(e,t){return e?.data?.hProperties?.[t]}function q(e,t){return typeof t==`object`&&t?{type:c.JSX_ATTRIBUTE,name:e,value:t}:{type:c.JSX_ATTRIBUTE,name:e,value:String(t)}}function J(e,t={},n=[]){return{type:c.ELEMENT,tagName:e,properties:t,children:n}}function Y(e,t={},n=[],r=!0){let i=Object.entries(t).map(([e,t])=>q(e,t));return{type:r?c.JSX_FLOW_ELEMENT:c.JSX_TEXT_ELEMENT,name:e,attributes:i,children:n}}function X(e,t){e&&b(e,c.HEADING,(e,n,r)=>{if(n!==void 0&&r!==void 0)return t(e,n,r)})}function Z(e,t){e&&b(e,c.LINK,(e,n,r)=>{if(n!==void 0&&r!==void 0)return t(e,n,r)})}function Q(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 te(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 ne(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 re(e){return e}async function ie(e){let{resolveConfig:t}=await import(`./config-DAgpZyh6.mjs`).then(e=>e.n),{generateRoutes:n,getExternalRoutePaths:r}=await import(`./routes-BN2XbGcT.mjs`).then(e=>e.i),{generateProjectTypes:i,writeLinkTree:a}=await import(`./types-generator-DVOnRVKU.mjs`).then(e=>e.n),{boltdocsPlugin:o}=await import(`./plugin-BoxD91Yh.mjs`),s=e?.docsDir||`docs`,c=await t(s),l=(await n(s,c)).map(e=>e.path),u=(c.base||`/docs`).replace(/\/$/,``);l.includes(u)||l.push(u);let d=r(s,c);for(let e of d)l.includes(e)||l.push(e);return i(c,s,void 0,l),a(l),o({...e},c)}async function $(e,t=`development`,n,r){let i=r||process.env.BOLTDOCS_TURBO===`true`,[a,o,{boltdocsPlugin:s,getExternalAbsolutePaths:c},{SECURITY_HEADERS:l},{getCSPHeader:d},{resolveConfig:f},{generateRoutes:p,getExternalRoutePaths:m},{generateProjectTypes:h,writeLinkTree:g},{normalizePath:_}]=await Promise.all([import(`@vitejs/plugin-react`),import(`@tailwindcss/vite`),import(`./plugin-BoxD91Yh.mjs`),import(`./headers-CL0pMcwm.mjs`).then(e=>e.n),import(`./csp-z2D0FuRW.mjs`).then(e=>e.t),import(`./config-DAgpZyh6.mjs`).then(e=>e.n),import(`./routes-BN2XbGcT.mjs`).then(e=>e.i),import(`./types-generator-DVOnRVKU.mjs`).then(e=>e.n),import(`vite`).then(e=>({normalizePath:e.normalizePath}))]),v=a.default,y=o.default,b=n||await f(`docs`,e),x=(await p(`docs`,b,void 0,!1,i)).map(e=>e.path),S=(b.base||`/docs`).replace(/\/$/,``);x.includes(S)||x.push(S);let C=m(`docs`,b);for(let e of C)x.includes(e)||x.push(e);h(b,`docs`,e,x),g(x);let w=t===`production`,T=w?{...l}:{};return b.security?.enableCSP&&(T[`Content-Security-Policy`]=d(b)),{root:e,mode:t,oxc:{jsx:{development:!w,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:[v(),y(),...s({docsDir:`docs`,root:e,turbo:i},b)],resolve:{alias:[{find:`boltdocs/entry`,replacement:_(u.resolve(e,`boltdocs-entry.tsx`))},{find:`boltdocs/client`,replacement:_(u.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`},{find:`@`,replacement:_(u.resolve(e,`../packages/core/src`))}],dedupe:[`react`,`react-dom`]},ssr:{external:[`react`,`react-dom`,`react-helmet-async`,`@bdocs/ssg`,`invariant`,...c()],optimizeDeps:{include:[`react`,`react-dom`,`react-fast-compare`,`invariant`,...b.vite?.ssr?.optimizeDeps?.include||[]]},noExternal:[`boltdocs`,/@bdocs\/(?!ssg).*/,`react-aria-components`,`@react-aria/collections`,`@react-aria/utils`,`react-router-dom`]},server:{watch:{ignored:[`**/.boltdocs/**`,...Array.isArray(b.vite?.server?.watch?.ignored)?b.vite.server.watch.ignored:b.vite?.server?.watch?.ignored?[b.vite.server.watch.ignored]:[]]},headers:{...T,...b.vite?.server?.headers},...b.vite?.server},preview:{headers:{...T,...b.vite?.preview?.headers},...b.vite?.preview},...b.vite}}export{O as C,T as D,S as E,C as O,k as S,w as T,X as _,y as a,z as b,Y as c,ne as d,te as f,U as g,H as h,v as i,x as k,J as l,W as m,$ as n,Q as o,G as p,re as r,q as s,ie as t,K as u,Z as v,E as w,j as x,V 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
|
+
import e from"node:fs";import t from"node:crypto";import{defineHastPlugin as n,defineMdastPlugin as r,mdxToJs as i}from"satteri";import{transformSync as a}from"esbuild";function o(){return r({name:`boltdocs-remark-meta`,code(e,t){e.meta&&t.setProperty(e,`data`,{...e.data||{},hProperties:{...e.data?.hProperties||{},metastring:e.meta}})}})}function s(e){return e.toLowerCase().replace(/<[^>]+>/g,``).replace(/[^\w\s-]/g,``).replace(/\s+/g,`-`).trim()}function c(){return n({name:`boltdocs-rehype-slug`,element:{filter:[`h1`,`h2`,`h3`,`h4`,`h5`,`h6`],visit(e,t){let n=t.textContent(e);n&&t.setProperty(e,`id`,s(n))}}})}function l(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}function u(e,t){let n=e?.className||e?.class||[],r=t?.className||t?.class||[];return[...Array.isArray(r)?r:[r],...Array.isArray(n)?n:[n]].filter(Boolean)}function d(){let e=null,t=null;return n({name:`boltdocs-rehype-shiki`,element:{filter:[`pre`],async visit(n,r){e||=(await import(`boltdocs/node/mdx/shiki-adapter`)).getShikiAdapter(),t||=e.getHighlighter();let i=await t,a=n.children?.[0];if(!a||a.type!==`element`||a.tagName!==`code`)return;let o=(a.properties?.className||a.properties?.class||[]).find(e=>e.startsWith(`language-`)),s=o?o.slice(9):`text`;if(s===`mermaid`)return;let c=l(a.properties?.metastring||a.data?.meta||``),d=e.getOptions(s,c),f=a.children?.[0]?.value||``;try{let e=i.codeToHast(f,d),t=e.type===`root`?e.children[0]:e,r=u(n.properties,t.properties),a={},o=n.properties||{};for(let e of Object.keys(o))e===`class`||e===`className`||(a[e]=o[e]);for(let[e,n]of Object.entries(t.properties||{}))e===`class`||e===`className`||(a[e]=n);return a.className=r,a[`data-highlighted`]=`true`,a[`data-lang`]=s,c.title&&(a[`data-title`]=c.title),{type:`element`,tagName:`pre`,properties:a,children:t.children}}catch{let e={},t=n.properties||{};for(let n of Object.keys(t))n===`class`||n===`className`||(e[n]=t[n]);return e.className=[...t?.className||t?.class||[],`shiki-fallback`],e[`data-highlighted`]=`false`,e[`data-lang`]=s,c.title&&(e[`data-title`]=c.title),{type:`element`,tagName:`pre`,properties:e,children:n.children}}}}})}function f(e){if(!e)return null;if(e.name&&typeof e==`object`){let t=[`paragraph`,`heading`,`thematicBreak`,`blockquote`,`list`,`listItem`,`html`,`code`,`definition`,`text`,`emphasis`,`strong`,`inlineCode`,`break`,`link`,`image`];if(Object.keys(e).some(n=>t.includes(n)&&typeof e[n]==`function`))return e}let t;try{t=typeof e==`function`?e():e}catch{return null}return typeof t==`function`?p(t):(console.warn(`[satteri] Cannot convert remark plugin "${t?.name||`unknown`}" to Sätteri MDAST.`),null)}function p(e){return r({name:`satteri-remark-adapter`,code(t,n){try{if(!n.parent(t)||n.indexOf(t)===void 0)return;let r={type:`root`,children:[t]},i=e(r);if(i&&typeof i.then==`function`)return;if(r.children[0]!==t){let e=r.children[0];if(e)return e}}catch{}}})}function m(e,t,n,i){if(!e)return null;let a;try{a=typeof e==`function`?e(t):e}catch{return null}return typeof a==`function`?r({name:`satteri-${i}-adapter`,code(e,r){if((e.lang||``)===i)return{type:`mdxJsxFlowElement`,name:n,attributes:[{type:`mdxJsxAttribute`,name:`chart`,value:e.value||``},{type:`mdxJsxAttribute`,name:`config`,value:JSON.stringify(t)}],children:[]}}}):null}function h(e){if(!e)return null;if(typeof e==`object`&&`name`in e){let t=[`root`,`element`,`text`,`comment`,`doctype`,`script`,`style`,`template`],n=e;if(t.some(e=>e in n&&typeof n[e]==`function`))return e}let t;try{t=typeof e==`function`?e():e}catch{return null}return typeof t==`function`?g(t):(console.warn(`[satteri] Cannot convert rehype plugin "${t?.name??`unknown`}" to Sätteri HAST.`),null)}function g(e){return n({name:`satteri-rehype-adapter`,element:{filter:[],async visit(t,n){try{let n={type:`root`,children:[t]},r=e(n);if(r instanceof Promise&&await r,n.children[0]!==t){let e=n.children[0];if(e)return e}}catch{}}}})}function _(e){let t=[],n=[];for(let r of e?.plugins||[]){if(r.remarkPlugins)for(let e of r.remarkPlugins)if(Array.isArray(e)){let[n,i]=e;r.name===`boltdocs-plugin-mermaid`?t.push(m(n,i,`Mermaid`,`mermaid`)):t.push(f(n))}else t.push(f(e));if(r.rehypePlugins)for(let e of r.rehypePlugins)Array.isArray(e)?n.push(h(e[0])):n.push(h(e))}return{remarkPlugins:t,rehypePlugins:n}}function v(n,r){let o=y(),s=o.mdastPlugins||[],c=o.hastPlugins||[],{remarkPlugins:l,rehypePlugins:u}=_(n),d=null,f=!1,p=null;async function m(){return f||=(d=new(await(import(`boltdocs/node/cache`))).TransformCache(`mdx`),!0),d}async function h(){if(!p)try{let e=await import(`./rollup-DMqoG11U-CKcJ37u_.mjs`),[t,n,r]=await Promise.all([import(`./remark-gfm-B8TMkQbX-Ctu0VV1_.mjs`).then(e=>e.default),import(`./remark-frontmatter-wFYRLcCt-CutW0gA3.mjs`).then(e=>e.default),import(`./rehype-slug--ZOxZ-_K-CjIQEJCs.mjs`).then(e=>e.default)]);p=e.default({jsxRuntime:`automatic`,jsxImportSource:`react`,remarkPlugins:[t,n],rehypePlugins:[r]})}catch{return null}return p}function g(e){let[t]=e.split(`?`);return t.endsWith(`.md`)||t.endsWith(`.mdx`)}function v(e){return e.includes(`function _createMdxContent`)||e.includes(`react/jsx-runtime`)||e.includes(`export default function MDXContent`)}async function b(){return await m()}async function x(e,n){let r=`${n}:${t.createHash(`md5`).update(e).digest(`hex`)}:${process.env.NODE_ENV===`production`?`prod`:`dev`}:v6-fallback`;try{let e=await(await b()).getAsync(r);if(e)return e}catch{}try{if(typeof i!=`function`)return null;let t=await i(e,{jsxRuntime:`automatic`,jsxImportSource:`react`,outputFormat:`program`,mdastPlugins:[...s,...l],hastPlugins:[...c,...u],features:{gfm:!0,frontmatter:!0}});if(!t?.code)return null;let n=t.code;if(/<\w+/.test(n))try{let e=a(n,{loader:`jsx`,jsx:`automatic`,jsxImportSource:`react`});e?.code&&(n=e.code)}catch(e){console.error(`[boltdocs-satteri-mdx] esbuild error:`,e)}try{(await b()).set(r,n)}catch{}return n}catch{return null}}async function S(e,t){let n=await h();if(!n)return null;try{let r=await n.transform(e,t);if(r?.code)return r.code}catch{}return null}async function C(e,t){return await x(e,t)||S(e,t)}return{name:`vite-plugin-boltdocs-satteri-mdx`,enforce:`pre`,async load(t){if(!g(t))return null;let[n]=t.split(`?`),i;try{i=e.readFileSync(n,`utf-8`)}catch{return null}let a=r?.(),o=i;if(a)try{let e=await a.runChain(`transformSource`,{code:i,filePath:n});e?.code&&(o=e.code)}catch{}return await C(o,n)||o},async transform(e,t){if(!g(t))return null;let n=e;if(!v(n)){let e=await C(n,t.split(`?`)[0]);e&&(n=e)}let i=n,a=r?.();if(a)try{let e=await a.runChain(`transformMdx`,{code:n,filePath:t.split(`?`)[0]});e?.code&&(i=e.code)}catch{}return{code:i,map:null}},async buildEnd(){d&&(d.save(),await d.flush())}}}function y(){return{name:`boltdocs-processor-satteri`,version:`0.1.0`,boltdocsVersion:`>=3.0.0`,mdastPlugins:[o()],hastPlugins:[c(),d()]}}export{v as createSatteriMdxPlugin};
|
|
@@ -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-Ds5LZdWN.cjs`);let t=require(`node:fs`);t=e.n(t);let n=require(`node:crypto`);n=e.n(n);let r=require(`satteri`),i=require(`esbuild`);function a(){return(0,r.defineMdastPlugin)({name:`boltdocs-remark-meta`,code(e,t){e.meta&&t.setProperty(e,`data`,{...e.data||{},hProperties:{...e.data?.hProperties||{},metastring:e.meta}})}})}function o(e){return e.toLowerCase().replace(/<[^>]+>/g,``).replace(/[^\w\s-]/g,``).replace(/\s+/g,`-`).trim()}function s(){return(0,r.defineHastPlugin)({name:`boltdocs-rehype-slug`,element:{filter:[`h1`,`h2`,`h3`,`h4`,`h5`,`h6`],visit(e,t){let n=t.textContent(e);n&&t.setProperty(e,`id`,o(n))}}})}function c(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}function l(e,t){let n=e?.className||e?.class||[],r=t?.className||t?.class||[];return[...Array.isArray(r)?r:[r],...Array.isArray(n)?n:[n]].filter(Boolean)}function u(){let e=null,t=null;return(0,r.defineHastPlugin)({name:`boltdocs-rehype-shiki`,element:{filter:[`pre`],async visit(n,r){e||=(await import(`boltdocs/node/mdx/shiki-adapter`)).getShikiAdapter(),t||=e.getHighlighter();let i=await t,a=n.children?.[0];if(!a||a.type!==`element`||a.tagName!==`code`)return;let o=(a.properties?.className||a.properties?.class||[]).find(e=>e.startsWith(`language-`)),s=o?o.slice(9):`text`;if(s===`mermaid`)return;let u=c(a.properties?.metastring||a.data?.meta||``),d=e.getOptions(s,u),f=a.children?.[0]?.value||``;try{let e=i.codeToHast(f,d),t=e.type===`root`?e.children[0]:e,r=l(n.properties,t.properties),a={},o=n.properties||{};for(let e of Object.keys(o))e===`class`||e===`className`||(a[e]=o[e]);for(let[e,n]of Object.entries(t.properties||{}))e===`class`||e===`className`||(a[e]=n);return a.className=r,a[`data-highlighted`]=`true`,a[`data-lang`]=s,u.title&&(a[`data-title`]=u.title),{type:`element`,tagName:`pre`,properties:a,children:t.children}}catch{let e={},t=n.properties||{};for(let n of Object.keys(t))n===`class`||n===`className`||(e[n]=t[n]);return e.className=[...t?.className||t?.class||[],`shiki-fallback`],e[`data-highlighted`]=`false`,e[`data-lang`]=s,u.title&&(e[`data-title`]=u.title),{type:`element`,tagName:`pre`,properties:e,children:n.children}}}}})}function d(e){if(!e)return null;if(e.name&&typeof e==`object`){let t=[`paragraph`,`heading`,`thematicBreak`,`blockquote`,`list`,`listItem`,`html`,`code`,`definition`,`text`,`emphasis`,`strong`,`inlineCode`,`break`,`link`,`image`];if(Object.keys(e).some(n=>t.includes(n)&&typeof e[n]==`function`))return e}let t;try{t=typeof e==`function`?e():e}catch{return null}return typeof t==`function`?f(t):(console.warn(`[satteri] Cannot convert remark plugin "${t?.name||`unknown`}" to Sätteri MDAST.`),null)}function f(e){return(0,r.defineMdastPlugin)({name:`satteri-remark-adapter`,code(t,n){try{if(!n.parent(t)||n.indexOf(t)===void 0)return;let r={type:`root`,children:[t]},i=e(r);if(i&&typeof i.then==`function`)return;if(r.children[0]!==t){let e=r.children[0];if(e)return e}}catch{}}})}function p(e,t,n,i){if(!e)return null;let a;try{a=typeof e==`function`?e(t):e}catch{return null}return typeof a==`function`?(0,r.defineMdastPlugin)({name:`satteri-${i}-adapter`,code(e,r){if((e.lang||``)===i)return{type:`mdxJsxFlowElement`,name:n,attributes:[{type:`mdxJsxAttribute`,name:`chart`,value:e.value||``},{type:`mdxJsxAttribute`,name:`config`,value:JSON.stringify(t)}],children:[]}}}):null}function m(e){if(!e)return null;if(typeof e==`object`&&`name`in e){let t=[`root`,`element`,`text`,`comment`,`doctype`,`script`,`style`,`template`],n=e;if(t.some(e=>e in n&&typeof n[e]==`function`))return e}let t;try{t=typeof e==`function`?e():e}catch{return null}return typeof t==`function`?h(t):(console.warn(`[satteri] Cannot convert rehype plugin "${t?.name??`unknown`}" to Sätteri HAST.`),null)}function h(e){return(0,r.defineHastPlugin)({name:`satteri-rehype-adapter`,element:{filter:[],async visit(t,n){try{let n={type:`root`,children:[t]},r=e(n);if(r instanceof Promise&&await r,n.children[0]!==t){let e=n.children[0];if(e)return e}}catch{}}}})}function g(e){let t=[],n=[];for(let r of e?.plugins||[]){if(r.remarkPlugins)for(let e of r.remarkPlugins)if(Array.isArray(e)){let[n,i]=e;r.name===`boltdocs-plugin-mermaid`?t.push(p(n,i,`Mermaid`,`mermaid`)):t.push(d(n))}else t.push(d(e));if(r.rehypePlugins)for(let e of r.rehypePlugins)Array.isArray(e)?n.push(m(e[0])):n.push(m(e))}return{remarkPlugins:t,rehypePlugins:n}}function _(e,a){let o=v(),s=o.mdastPlugins||[],c=o.hastPlugins||[],{remarkPlugins:l,rehypePlugins:u}=g(e),d=null,f=!1,p=null;async function m(){return f||=(d=new(await(import(`boltdocs/node/cache`))).TransformCache(`mdx`),!0),d}async function h(){if(!p)try{let e=await Promise.resolve().then(()=>require(`./rollup-DMqoG11U-DKdxvZIj.cjs`)),[t,n,r]=await Promise.all([Promise.resolve().then(()=>require(`./remark-gfm-B8TMkQbX-CjUJo8Rd.cjs`)).then(e=>e.default),Promise.resolve().then(()=>require(`./remark-frontmatter-wFYRLcCt-ENB5qG3y.cjs`)).then(e=>e.default),Promise.resolve().then(()=>require(`./rehype-slug--ZOxZ-_K-BNeYC4aT.cjs`)).then(e=>e.default)]);p=e.default({jsxRuntime:`automatic`,jsxImportSource:`react`,remarkPlugins:[t,n],rehypePlugins:[r]})}catch{return null}return p}function _(e){let[t]=e.split(`?`);return t.endsWith(`.md`)||t.endsWith(`.mdx`)}function y(e){return e.includes(`function _createMdxContent`)||e.includes(`react/jsx-runtime`)||e.includes(`export default function MDXContent`)}async function b(){return await m()}async function x(e,t){let a=`${t}:${n.default.createHash(`md5`).update(e).digest(`hex`)}:${process.env.NODE_ENV===`production`?`prod`:`dev`}:v6-fallback`;try{let e=await(await b()).getAsync(a);if(e)return e}catch{}try{if(typeof r.mdxToJs!=`function`)return null;let t=await(0,r.mdxToJs)(e,{jsxRuntime:`automatic`,jsxImportSource:`react`,outputFormat:`program`,mdastPlugins:[...s,...l],hastPlugins:[...c,...u],features:{gfm:!0,frontmatter:!0}});if(!t?.code)return null;let n=t.code;if(/<\w+/.test(n))try{let e=(0,i.transformSync)(n,{loader:`jsx`,jsx:`automatic`,jsxImportSource:`react`});e?.code&&(n=e.code)}catch(e){console.error(`[boltdocs-satteri-mdx] esbuild error:`,e)}try{(await b()).set(a,n)}catch{}return n}catch{return null}}async function S(e,t){let n=await h();if(!n)return null;try{let r=await n.transform(e,t);if(r?.code)return r.code}catch{}return null}async function C(e,t){return await x(e,t)||S(e,t)}return{name:`vite-plugin-boltdocs-satteri-mdx`,enforce:`pre`,async load(e){if(!_(e))return null;let[n]=e.split(`?`),r;try{r=t.default.readFileSync(n,`utf-8`)}catch{return null}let i=a?.(),o=r;if(i)try{let e=await i.runChain(`transformSource`,{code:r,filePath:n});e?.code&&(o=e.code)}catch{}return await C(o,n)||o},async transform(e,t){if(!_(t))return null;let n=e;if(!y(n)){let e=await C(n,t.split(`?`)[0]);e&&(n=e)}let r=n,i=a?.();if(i)try{let e=await i.runChain(`transformMdx`,{code:n,filePath:t.split(`?`)[0]});e?.code&&(r=e.code)}catch{}return{code:r,map:null}},async buildEnd(){d&&(d.save(),await d.flush())}}}function v(){return{name:`boltdocs-processor-satteri`,version:`0.1.0`,boltdocsVersion:`>=3.0.0`,mdastPlugins:[a()],hastPlugins:[s(),u()]}}exports.createSatteriMdxPlugin=_;
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Boltdocs - https://boltdocs.vercel.app
|
|
3
|
+
* Copyright (c) 2026 Jesus Alcala
|
|
4
|
+
* Licensed under the MIT License.
|
|
5
|
+
*/
|
|
6
|
+
const e=require(`./chunk-Ds5LZdWN.cjs`),t=require(`./utils-Bz1tG9Dg.cjs`),n=require(`./routes-Cnq8xTCv.cjs`),r=require(`./pages-external-CX2uyW95.cjs`),i=require(`./config-DrRQYDCI.cjs`),a=require(`./types-generator-CYcHkDzZ.cjs`),o=require(`./shiki-adapter-CGTmrR6S.cjs`);let s=require(`node:path`);s=e.n(s);let c=require(`node:fs`);c=e.n(c);let l=require(`zod`),u=require(`@bdocs/dui`);u=e.n(u);let d=require(`semver`);d=e.n(d);let f=require(`node:module`),p=require(`@bdocs/ssg/node`),m=require(`unist-util-visit`);function h(e,n){let r=s.default.resolve(process.cwd(),`index.css`),i=c.default.existsSync(r)?`import './index.css';`:``,a=n?.plugins?.flatMap(e=>Object.entries(e.components||{}))||[],o=a.map(([e,n])=>`import { ${e} as _comp_${e} } from '${t.u(n)}';`).join(`
|
|
7
|
+
`),l=a.map(([e])=>`${e}: _comp_${e}`).join(`, `),u=s.default.basename(e.docsDir||`docs`),d=s.default.resolve(process.cwd(),e.docsDir||`docs`),f=[`tsx`,`ts`,`jsx`,`js`].map(e=>s.default.resolve(d,`pages-external/index.${e}`)).find(e=>c.default.existsSync(e)),p=f?`import * as _external_module from '${t.u(f)}';`:``,m=f?`externalPages: _external_module.pages, externalLayout: _external_module.layout,`:``,h=process.env.VITE_SSG===`true`,g=h?`{ eager: true }`:`{}`,_=h?``:`
|
|
8
|
+
if (typeof window !== 'undefined') {
|
|
9
|
+
const prefetchAll = () => {
|
|
10
|
+
const getters = Object.values(mdxModules)
|
|
11
|
+
if (getters.length === 0) return
|
|
12
|
+
let i = 0
|
|
13
|
+
const nextBatch = () => {
|
|
14
|
+
if (i >= getters.length) return
|
|
15
|
+
const batch = getters.slice(i, i + 6)
|
|
16
|
+
i += batch.length
|
|
17
|
+
Promise.allSettled(batch.map(fn => fn())).then(() => {
|
|
18
|
+
setTimeout(nextBatch, 0)
|
|
19
|
+
})
|
|
20
|
+
}
|
|
21
|
+
;(typeof requestIdleCallback === 'function' ? requestIdleCallback : function(cb) { setTimeout(cb, 500) })(nextBatch)
|
|
22
|
+
}
|
|
23
|
+
prefetchAll()
|
|
24
|
+
}
|
|
25
|
+
`;return`
|
|
26
|
+
import { ViteReactSSG, createRoutes } from 'boltdocs/client'
|
|
27
|
+
import _routes from 'virtual:boltdocs-routes.ts'
|
|
28
|
+
import _collections from 'virtual:boltdocs-collections.ts'
|
|
29
|
+
import _config from 'virtual:boltdocs-config.ts'
|
|
30
|
+
import _user_mdx_components from 'virtual:boltdocs-mdx-components.tsx'
|
|
31
|
+
${i}
|
|
32
|
+
${o}
|
|
33
|
+
${p}
|
|
34
|
+
|
|
35
|
+
const mdxModules = import.meta.glob('/${u}/**/*.{md,mdx}', ${g});
|
|
36
|
+
|
|
37
|
+
const _collLayoutMods = import.meta.glob('${`/${u}/**/layout.tsx`}', { eager: true });
|
|
38
|
+
const _collListMods = import.meta.glob('${`/${u}/**/list.tsx`}', { eager: true });
|
|
39
|
+
const _collPostMods = import.meta.glob('${`/${u}/**/post.tsx`}', { eager: true });
|
|
40
|
+
|
|
41
|
+
const _collectionLayouts = {};
|
|
42
|
+
for (const [p, mod] of Object.entries(_collLayoutMods)) {
|
|
43
|
+
const dir = p.split('/').slice(-2, -1)[0];
|
|
44
|
+
if (dir.startsWith('[') && dir.endsWith(']')) {
|
|
45
|
+
_collectionLayouts[dir.slice(1, -1)] = mod.default || mod;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
const _collectionLists = {};
|
|
50
|
+
for (const [p, mod] of Object.entries(_collListMods)) {
|
|
51
|
+
const dir = p.split('/').slice(-2, -1)[0];
|
|
52
|
+
if (dir.startsWith('[') && dir.endsWith(']')) {
|
|
53
|
+
_collectionLists[dir.slice(1, -1)] = mod.default || mod;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
const _collectionPosts = {};
|
|
58
|
+
for (const [p, mod] of Object.entries(_collPostMods)) {
|
|
59
|
+
const dir = p.split('/').slice(-2, -1)[0];
|
|
60
|
+
if (dir.startsWith('[') && dir.endsWith(']')) {
|
|
61
|
+
_collectionPosts[dir.slice(1, -1)] = mod.default || mod;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
export const createRoot = ViteReactSSG(
|
|
66
|
+
{
|
|
67
|
+
routes: createRoutes({
|
|
68
|
+
routesData: _routes,
|
|
69
|
+
collectionsData: _collections,
|
|
70
|
+
collectionLayouts: _collectionLayouts,
|
|
71
|
+
collectionLists: _collectionLists,
|
|
72
|
+
collectionPosts: _collectionPosts,
|
|
73
|
+
config: _config,
|
|
74
|
+
mdxModules,
|
|
75
|
+
${m}
|
|
76
|
+
components: { ${l}${l?`, `:``} ...(_user_mdx_components || {}) },
|
|
77
|
+
}),
|
|
78
|
+
},
|
|
79
|
+
({ isClient }) => {
|
|
80
|
+
// Boltdocs initialization hook
|
|
81
|
+
if (isClient) {
|
|
82
|
+
// Client-side initialization
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
);
|
|
86
|
+
${_}
|
|
87
|
+
`}var g=class extends Error{name=this.constructor.name;constructor(e,t,n){super(`[plugin:${e}] ${t}`,n),this.pluginName=e}},_=class extends g{constructor(e,t){super(e,`Validation failed: ${t}`)}},v=class extends g{constructor(e,t){super(e,`Compatibility error: ${t}`)}},y=class extends g{constructor(e,t,n){super(e,`Error in hook '${t}': ${n.message}`,{cause:n}),this.hookName=t}},b=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 x=i.i.extend({version:l.z.string().optional(),boltdocsVersion:l.z.string().optional(),hooks:l.z.object({beforeBuild:l.z.function().optional(),afterBuild:l.z.function().optional(),beforeDev:l.z.function().optional(),afterDev:l.z.function().optional(),buildEnd:l.z.function().optional(),transformSource:l.z.function().optional(),transformMdx:l.z.function().optional(),transformHtml:l.z.function().optional()}).optional()});function S(e,t){let n=[],r=new Set;for(let i of e){let e=x.safeParse(i);if(!e.success)throw new _(i.name||`unknown`,e.error.issues.map(e=>`${e.path.join(`.`)}: ${e.message}`).join(`, `));let a=e.data;if(r.has(a.name))throw new _(a.name,`Duplicate plugin name detected`);if(r.add(a.name),a.boltdocsVersion&&!d.default.satisfies(t,a.boltdocsVersion))throw new v(a.name,`Plugin expects Boltdocs version ${a.boltdocsVersion}, but current is ${t}`);if(a.components)for(let[e,t]of Object.entries(a.components)){if(t.includes(`..`))throw new _(a.name,`Component '${e}' has an invalid path: traversal sequences are not allowed.`);if(s.default.isAbsolute(t))throw new _(a.name,`Component '${e}' has an invalid path: absolute paths are not allowed.`)}n.push(a)}return n}function C(e,t=process.cwd()){let n=e.plugins||[];for(let e of n)if(e.name)try{let n=null;try{n=(0,f.createRequire)(s.default.resolve(t,`package.json`)).resolve(`${e.name}/package.json`)}catch{let r=s.default.resolve(t,`node_modules`,e.name,`package.json`);c.default.existsSync(r)&&(n=r)}if(n&&c.default.existsSync(n)){let t=JSON.parse(c.default.readFileSync(n,`utf-8`)).scripts||{};(t.preinstall||t.postinstall||t.install)&&(0,u.warn)(`💡 ${u.colors.yellow(u.colors.bold(`Nota de seguridad:`))} El plugin ${u.colors.cyan(e.name)} ejecuta scripts nativos al instalarse. Corre ${u.colors.bold(`boltdocs audit`)} para un análisis detallado.`)}}catch{}}var w=class{name=`ConfigResolve`;async execute(e){e.config=await i.n(`docs`,e.root),C(e.config,e.root),e.viteConfig=await Q(e.root,`production`,e.config,e.turbo)}};function T(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 E=class{name=`RouteGenerate`;async execute(e){if(!e.config)throw Error(`Config not resolved. Run ConfigResolve first.`);let t=s.default.resolve(e.root,`docs`),r=e.viteConfig?.base||e.config.base||`/docs`;e.routes=[...await n.t(t,e.config,r,!1,e.turbo)],e.ssgRoutes=T(e.routes)}};const D=l.z.object({title:l.z.string().optional(),description:l.z.string().optional(),canonical:l.z.string().url().optional(),robots:l.z.string().optional(),noindex:l.z.boolean().optional(),"og:title":l.z.string().optional(),"og:description":l.z.string().optional(),"og:image":l.z.string().optional(),"og:type":l.z.string().optional(),"og:url":l.z.string().url().optional()});var O=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(n=>{let r=n.seo||{},i=r.canonical||(t?`${t.replace(/\/$/,``)}${n.path}`:void 0),a=r[`og:url`]||i||void 0,o=e.config.seo?.thumbnails?.background,s=r[`og:image`]||n.coverImage||o;s&&t&&!/^https?:\/\/|^\/\//.test(s)&&(s=`${t.endsWith(`/`)?t.slice(0,-1):t}${s.startsWith(`/`)?s:`/${s}`}`);let c={...r};i&&(c.canonical=i),a&&(c[`og:url`]=a),s&&(c[`og:image`]=s),!c[`og:title`]&&n.title&&(c[`og:title`]=n.title),!c[`og:description`]&&n.description&&(c[`og:description`]=n.description);let l=D.safeParse(c);return l.success||(0,u.warn)(`[SEOValidate] Validation issues on route "${n.path}":`,l.error.message),n.title||(0,u.warn)(`[SEOValidate] Route "${n.path}" is missing a title.`),{...n,seo:c}}),e.ssgRoutes=T(e.routes)}},k=class{name=`TypeGenerate`;async execute(e){if(!e.config||!e.routes)throw Error(`Config or Routes not initialized.`);let t=s.default.resolve(e.root,`docs`),n=e.routes.map(e=>e.path),i=(e.config.base||`/docs`).replace(/\/$/,``);n.includes(i)||n.push(i);let o=r.t(t,e.config);for(let e of o)n.includes(e)||n.push(e);a.t(e.config,t,e.root,n),a.r(n)}},A=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,p.build)({entry:`boltdocs/entry`,routeToSourceFileMap:t,cacheDir:s.default.resolve(e.root,`.boltdocs/build`),turbo:e.turbo},e.viteConfig),e.outDir=e.viteConfig.build?.outDir||`dist`}};function j(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"?>
|
|
88
|
+
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
|
89
|
+
${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>
|
|
90
|
+
<loc>${t.r(`${r}${e.path.startsWith(`/`)?e.path:`/${e.path}`}`)}</loc>
|
|
91
|
+
<changefreq>weekly</changefreq>
|
|
92
|
+
<priority>0.7</priority>
|
|
93
|
+
</url>`).join(`
|
|
94
|
+
`)}
|
|
95
|
+
</urlset>`}function M(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(`
|
|
96
|
+
`);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(`
|
|
97
|
+
`)+`
|
|
98
|
+
`:t+=`Allow: ${e.allow}\n`),e.disallow&&(Array.isArray(e.disallow)?t+=e.disallow.map(e=>`Disallow: ${e}`).join(`
|
|
99
|
+
`)+`
|
|
100
|
+
`:t+=`Disallow: ${e.disallow}\n`),t.trim()}).join(`
|
|
101
|
+
|
|
102
|
+
`),a=[...n?[n]:[],...r].map(e=>`Sitemap: ${e}`).join(`
|
|
103
|
+
`);return`${i}${a?`\n\n${a}`:``}`}return[`User-agent: *`,`Allow: /`,``,n?`Sitemap: ${n}`:``].filter(Boolean).join(`
|
|
104
|
+
`)}var N=class{name=`SEOWrite`;async execute(e){if(!e.ssgRoutes||!e.config||!e.outDir)throw Error(`SSG Routes, Config, or OutDir not initialized.`);let t=j(e.ssgRoutes,e.config),n=s.default.resolve(e.root,e.outDir);t&&c.default.writeFileSync(s.default.join(n,`sitemap.xml`),t,`utf-8`);let r=M(e.config);c.default.writeFileSync(s.default.join(n,`robots.txt`),r,`utf-8`)}};function P(){return new F().addStep(new w).addStep(new E).addStep(new O).addStep(new k).addStep(new A).addStep(new N)}var F=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}}},I=class{plugins;config;store;docsDir;rootDir;routes;outDir;constructor(e,t,n,r,i,a){this.plugins=e,this.config=t,this.store=new b,this.docsDir=n||process.cwd(),this.rootDir=r||process.cwd(),this.routes=i||[],this.outDir=a||`dist`}async runHook(e,...t){let n=this.getSortedPlugins(),r=new F;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 y(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 y(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,outDir:this.outDir,routes:this.routes,meta:{name:e.name,version:e.version,boltdocsVersion:e.boltdocsVersion},store:{get:(e,t)=>this.store.get(e,t),set:(e,t,n)=>this.store.set(e,t,n),has:(e,t)=>this.store.has(e,t)},logger:this.createLogger(e.name)}}createLogger(e){let t=`[plugin:${e}]`;return{info:e=>u.info(`${t} ${e}`),warn:e=>u.warn(`${t} ${e}`),error:e=>{u.error(`${t} ${e instanceof Error?e.message:e}`)},debug:e=>u.debug(`${t} ${e}`)}}};function L(e,t,n){e&&(0,m.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 R(e,t,n){L(e,o.o.ELEMENT,(e,r,i)=>{if(e.tagName===t)return n(e,r,i)})}function z(e,t,n){let r=Array.isArray(t)?t:[t],i=[o.o.JSX_FLOW_ELEMENT,o.o.JSX_TEXT_ELEMENT];L(e,e=>i.includes(e.type),(e,t,i)=>{if(e.name&&r.includes(e.name))return n(e,t,i)})}function B(e,t,n){e&&(e.data=e.data||{},e.data.hProperties=e.data.hProperties||{},e.data.hProperties[t]=n)}function V(e,t){return e?.data?.hProperties?.[t]}function H(e,t){return typeof t==`object`&&t?{type:o.o.JSX_ATTRIBUTE,name:e,value:t}:{type:o.o.JSX_ATTRIBUTE,name:e,value:String(t)}}function U(e,t={},n=[]){return{type:o.o.ELEMENT,tagName:e,properties:t,children:n}}function W(e,t={},n=[],r=!0){let i=Object.entries(t).map(([e,t])=>H(e,t));return{type:r?o.o.JSX_FLOW_ELEMENT:o.o.JSX_TEXT_ELEMENT,name:e,attributes:i,children:n}}function G(e,t){e&&(0,m.visit)(e,o.o.HEADING,(e,n,r)=>{if(n!==void 0&&r!==void 0)return t(e,n,r)})}function K(e,t){e&&(0,m.visit)(e,o.o.LINK,(e,n,r)=>{if(n!==void 0&&r!==void 0)return t(e,n,r)})}function q(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 J(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 Y(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 X(e){return e}async function Z(e){let{resolveConfig:t}=await Promise.resolve().then(()=>require(`./config-BxsogK5A.cjs`)),{generateRoutes:n,getExternalRoutePaths:r}=await Promise.resolve().then(()=>require(`./routes-D_S9kjkS.cjs`)),{generateProjectTypes:i,writeLinkTree:a}=await Promise.resolve().then(()=>require(`./types-generator-CYcHkDzZ.cjs`)).then(e=>e.n),{boltdocsPlugin:o}=await Promise.resolve().then(()=>require(`./plugin-BVuwx5D9.cjs`)),s=e?.docsDir||`docs`,c=await t(s),l=(await n(s,c)).map(e=>e.path),u=(c.base||`/docs`).replace(/\/$/,``);l.includes(u)||l.push(u);let d=r(s,c);for(let e of d)l.includes(e)||l.push(e);return i(c,s,void 0,l),a(l),o({...e},c)}async function Q(e,t=`development`,n,r){let i=r||process.env.BOLTDOCS_TURBO===`true`,[a,o,{boltdocsPlugin:c,getExternalAbsolutePaths:l},{SECURITY_HEADERS:u},{getCSPHeader:d},{resolveConfig:f},{generateRoutes:p,getExternalRoutePaths:m},{generateProjectTypes:h,writeLinkTree:g},{normalizePath:_}]=await Promise.all([import(`@vitejs/plugin-react`),import(`@tailwindcss/vite`),Promise.resolve().then(()=>require(`./plugin-BVuwx5D9.cjs`)),Promise.resolve().then(()=>require(`./headers-YpD10rDb.cjs`)).then(e=>e.n),Promise.resolve().then(()=>require(`./csp-BX06rvdg.cjs`)).then(e=>e.t),Promise.resolve().then(()=>require(`./config-BxsogK5A.cjs`)),Promise.resolve().then(()=>require(`./routes-D_S9kjkS.cjs`)),Promise.resolve().then(()=>require(`./types-generator-CYcHkDzZ.cjs`)).then(e=>e.n),import(`vite`).then(e=>({normalizePath:e.normalizePath}))]),v=a.default,y=o.default,b=n||await f(`docs`,e),x=(await p(`docs`,b,void 0,!1,i)).map(e=>e.path),S=(b.base||`/docs`).replace(/\/$/,``);x.includes(S)||x.push(S);let C=m(`docs`,b);for(let e of C)x.includes(e)||x.push(e);h(b,`docs`,e,x),g(x);let w=t===`production`,T=w?{...u}:{};return b.security?.enableCSP&&(T[`Content-Security-Policy`]=d(b)),{root:e,mode:t,oxc:{jsx:{development:!w,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:[v(),y(),...c({docsDir:`docs`,root:e,turbo:i},b)],resolve:{alias:[{find:`boltdocs/entry`,replacement:_(s.default.resolve(e,`boltdocs-entry.tsx`))},{find:`boltdocs/client`,replacement:_(s.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`},{find:`@`,replacement:_(s.default.resolve(e,`../packages/core/src`))}],dedupe:[`react`,`react-dom`]},ssr:{external:[`react`,`react-dom`,`react-helmet-async`,`@bdocs/ssg`,`invariant`,...l()],optimizeDeps:{include:[`react`,`react-dom`,`react-fast-compare`,`invariant`,...b.vite?.ssr?.optimizeDeps?.include||[]]},noExternal:[`boltdocs`,/@bdocs\/(?!ssg).*/,`react-aria-components`,`@react-aria/collections`,`@react-aria/utils`,`react-router-dom`]},server:{watch:{ignored:[`**/.boltdocs/**`,...Array.isArray(b.vite?.server?.watch?.ignored)?b.vite.server.watch.ignored:b.vite?.server?.watch?.ignored?[b.vite.server.watch.ignored]:[]]},headers:{...T,...b.vite?.server?.headers},...b.vite?.server},preview:{headers:{...T,...b.vite?.preview?.headers},...b.vite?.preview},...b.vite}}Object.defineProperty(exports,`C`,{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,`D`,{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,`E`,{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,`S`,{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,`T`,{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,`_`,{enumerable:!0,get:function(){return I}}),Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return H}}),Object.defineProperty(exports,`b`,{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return V}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return B}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return z}}),Object.defineProperty(exports,`g`,{enumerable:!0,get:function(){return K}}),Object.defineProperty(exports,`h`,{enumerable:!0,get:function(){return G}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return q}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return Y}}),Object.defineProperty(exports,`m`,{enumerable:!0,get:function(){return R}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return Q}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return W}}),Object.defineProperty(exports,`p`,{enumerable:!0,get:function(){return L}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return X}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return U}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return Z}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return J}}),Object.defineProperty(exports,`v`,{enumerable:!0,get:function(){return P}}),Object.defineProperty(exports,`w`,{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,`x`,{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,`y`,{enumerable:!0,get:function(){return T}});
|
|
@@ -3,4 +3,4 @@
|
|
|
3
3
|
* Copyright (c) 2026 Jesus Alcala
|
|
4
4
|
* Licensed under the MIT License.
|
|
5
5
|
*/
|
|
6
|
-
var e=`3.0
|
|
6
|
+
var e=`3.1.0`;Object.defineProperty(exports,`version`,{enumerable:!0,get:function(){return e}});
|
|
@@ -3,6 +3,6 @@
|
|
|
3
3
|
* Copyright (c) 2026 Jesus Alcala
|
|
4
4
|
* Licensed under the MIT License.
|
|
5
5
|
*/
|
|
6
|
-
import{a as e,d as t,g as n,h as r,i,l as a,m as o,p as s,t as c,v as l}from"./utils-B3xYMrpK.mjs";import{n as u,t as d}from"./errors-C0Hx15Ag.mjs";import{t as f}from"./cache-
|
|
6
|
+
import{a as e,d as t,g as n,h as r,i,l as a,m as o,p as s,t as c,v as l}from"./utils-B3xYMrpK.mjs";import{n as u,t as d}from"./errors-C0Hx15Ag.mjs";import{t as f}from"./cache-B0C2i0yP.mjs";import p from"node:path";import m from"github-slugger";function h(t,n,i,a,o){let s=p.relative(n,t).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 m=[...c],h=c.map(e=>r(e)).join(`/`),g=o?o.startsWith(`/`)?o:`/${o}`:e(h||`index.md`),_=[f?`/${f}`:i,u,l,!o&&!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=s(t[2].replace(_,`$1`).replace(v,``).trim()).trim(),a=n.slug(i);r.push({level:e,text:i,id:a})}let i=o(e.replace(b,``).replace(x,``).replace(y,` `)).trim(),a=t?s(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?s(String(e.title)):void 0,badge:e.badge?s(String(e.badge)):void 0,description:e.description?s(String(e.description)):void 0}}async function D(e,n,a,o){let s=await f.get(e);if(s)return s;let d=e.replace(/\\/g,`/`),m=n.replace(/\\/g,`/`),g=O(d),_=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!==`.`&&!l.test(y))throw new u(`Security breach: File is outside of docs directory, contains null bytes, or invalid path characters: ${p.basename(g)}`);let{data:b,content:x}=await t(e),C=h(_,v,a,o,b.permalink),w=null,D=()=>(w||=S(x,b.description),w),k=E(b),A=T(b),j=p.basename(C.relativePath),M=r(j),N=C.remainingParts.map(e=>r(e)).slice(0,-1),P=/^index\.mdx?$/.test(M),F=b.sidebarPosition??i(j),I=N.join(`/`),L={route:{path:C.finalPath,componentPath:e,filePath:C.relativePath,title:k.title||r(p.basename(d,p.extname(d))),get description(){return D().description},sidebarPosition:F,get headings(){return D().headings},locale:C.locale,version:C.version,badge:k.badge,icon:b.icon?String(b.icon):void 0,tab:C.inferredTab,subRouteGroup:C.subRouteGroup,slugParts:N,get _content(){return D().plainText},_rawContent:x,date:b.date,lastUpdated:b.lastUpdated,category:b.category,order:b.order,sidebarLabel:b.sidebarLabel,sidebarHidden:b.sidebarHidden||b.hidden,seo:A,frontmatter:b,collection:C.collection,tags:b.tags,author:b.author,draft:b.draft,excerpt:b.excerpt,coverImage:b.coverImage||b.cover},relativeDir:C.collection?void 0:I||void 0,isGroupIndex:P,inferredTab:C.inferredTab,inferredCollection:C.collection,groupMeta:P?{title:b.groupTitle||k.title||(N.length>0?c(N[N.length-1]):``),position:b.groupPosition??b.sidebarPosition??(C.remainingParts.length>1?i(C.remainingParts[C.remainingParts.length-2]):void 0),icon:b.icon?String(b.icon):void 0}:void 0,inferredGroupPosition:C.remainingParts.length>1?i(C.remainingParts[C.remainingParts.length-2]):void 0};return await f.set(e,L),L}function O(e){let t;try{t=decodeURIComponent(e)}catch{throw a(`SECURITY_ERROR`,`Invalid encoding in path`,{file:e}),new d(`Security breach: Invalid characters or encoding in path`)}if(t.length>260)throw new u(`Path length exceeds limit`);return t}async function k(e,t,a,o,d){let m=e.replace(/\\/g,`/`),g=a.replace(/\\/g,`/`),_=O(m),v=p.resolve(_),y=p.resolve(g);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)};v=e(_),y=e(g)}let b=p.relative(y,v).replace(/\\/g,`/`);if(b.startsWith(`../`)||b!==`.`&&!l.test(b))throw new u(`Security breach: File is outside of docs directory, contains null bytes, or invalid path characters: ${p.basename(_)}`);let{data:x}=n(`---
|
|
7
7
|
`+t.rawMatter+`
|
|
8
8
|
---`),S=h(v,y,o,d,x.permalink),C=E(x),w=T(x),D=p.basename(S.relativePath),k=r(D),A=S.remainingParts.map(e=>r(e)).slice(0,-1),j=/^index\.mdx?$/.test(k),M=x.sidebarPosition??i(D),N=A.join(`/`),P=x.description?s(String(x.description)).trim():t.description,F={route:{path:S.finalPath,componentPath:e,filePath:S.relativePath,title:C.title||r(p.basename(m,p.extname(m))),description:P,sidebarPosition:M,headings:t.headings,locale:S.locale,version:S.version,badge:C.badge,icon:x.icon?String(x.icon):void 0,tab:S.inferredTab,subRouteGroup:S.subRouteGroup,slugParts:A,_content:t.plainText,_rawContent:t.content,date:x.date,lastUpdated:x.lastUpdated,category:x.category,order:x.order,sidebarLabel:x.sidebarLabel,sidebarHidden:x.sidebarHidden||x.hidden,seo:w,frontmatter:x,collection:S.collection,tags:x.tags,author:x.author,draft:x.draft,excerpt:x.excerpt,coverImage:x.coverImage||x.cover},relativeDir:S.collection?void 0:N||void 0,isGroupIndex:j,inferredTab:S.inferredTab,inferredCollection:S.collection,groupMeta:j?{title:x.groupTitle||C.title||(A.length>0?c(A[A.length-1]):``),position:x.groupPosition??x.sidebarPosition??(S.remainingParts.length>1?i(S.remainingParts[S.remainingParts.length-2]):void 0),icon:x.icon?String(x.icon):void 0}:void 0,inferredGroupPosition:S.remainingParts.length>1?i(S.remainingParts[S.remainingParts.length-2]):void 0};return await f.set(e,F),F}export{D as parseDocFile,k as parseDocFileWithNative};
|
|
@@ -3,6 +3,6 @@
|
|
|
3
3
|
* Copyright (c) 2026 Jesus Alcala
|
|
4
4
|
* Licensed under the MIT License.
|
|
5
5
|
*/
|
|
6
|
-
const e=require(`./chunk-Ds5LZdWN.cjs`),t=require(`./utils-Bz1tG9Dg.cjs`),n=require(`./errors-Dx6JHoKE.cjs`),r=require(`./cache-
|
|
6
|
+
const e=require(`./chunk-Ds5LZdWN.cjs`),t=require(`./utils-Bz1tG9Dg.cjs`),n=require(`./errors-Dx6JHoKE.cjs`),r=require(`./cache-CfRTUzWC.cjs`);let i=require(`node:path`);i=e.n(i);let a=require(`github-slugger`);a=e.n(a);function o(e,n,r,a,o){let s=i.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}`:r,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 s=/^(#{2,4})\s+(.+)$/gm,c=/\[([^\]]+)\]\([^)]+\)/g,l=/[_*`]/g,u=/\s+/g,d=/[[\]_*`]|#+.*$|\{[^}]+\}/gm,f=/\((?:[^)]+)\)/g;function p(e,n){let r=new a.default,i=[];for(let n of e.matchAll(s)){let e=n[1].length,a=t.p(n[2].replace(c,`$1`).replace(l,``).trim()).trim(),o=r.slug(a);i.push({level:e,text:a,id:o})}let o=t.m(e.replace(d,``).replace(f,``).replace(u,` `)).trim(),p=n?t.p(n).trim():``;return!p&&e&&(p=o.substring(0,160)),{headings:i,description:p,plainText:o}}const m=[`og:`,`twitter:`,`article:`,`music:`,`video:`,`profile:`,`book:`],h=[`noindex`,`robots`,`canonical`,`keywords`,`author`];function g(e){let t={};e.seo&&typeof e.seo==`object`&&Object.assign(t,e.seo);for(let n of Object.keys(e))(h.includes(n)||m.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){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 v(e,a,s,c){let l=await r.t.get(e);if(l)return l;let u=e.replace(/\\/g,`/`),d=a.replace(/\\/g,`/`),f=y(u),m=i.default.resolve(f),h=i.default.resolve(d);if(i.default.sep===`/`){let e=e=>{let t=e.replace(/\\/g,`/`);return/^[a-zA-Z]:/.test(t)&&(t=t.replace(/^[a-zA-Z]:/,``)),i.default.resolve(t)};m=e(f),h=e(d)}let v=i.default.relative(h,m).replace(/\\/g,`/`);if(v.startsWith(`../`)||v!==`.`&&!t.v.test(v))throw new n.n(`Security breach: File is outside of docs directory, contains null bytes, or invalid path characters: ${i.default.basename(f)}`);let{data:b,content:x}=await t.d(e),S=o(m,h,s,c,b.permalink),C=null,w=()=>(C||=p(x,b.description),C),T=_(b),E=g(b),D=i.default.basename(S.relativePath),O=t.h(D),k=S.remainingParts.map(e=>t.h(e)).slice(0,-1),A=/^index\.mdx?$/.test(O),j=b.sidebarPosition??t.i(D),M=k.join(`/`),N={route:{path:S.finalPath,componentPath:e,filePath:S.relativePath,title:T.title||t.h(i.default.basename(u,i.default.extname(u))),get description(){return w().description},sidebarPosition:j,get headings(){return w().headings},locale:S.locale,version:S.version,badge:T.badge,icon:b.icon?String(b.icon):void 0,tab:S.inferredTab,subRouteGroup:S.subRouteGroup,slugParts:k,get _content(){return 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:E,frontmatter:b,collection:S.collection,tags:b.tags,author:b.author,draft:b.draft,excerpt:b.excerpt,coverImage:b.coverImage||b.cover},relativeDir:S.collection?void 0:M||void 0,isGroupIndex:A,inferredTab:S.inferredTab,inferredCollection:S.collection,groupMeta:A?{title:b.groupTitle||T.title||(k.length>0?t.t(k[k.length-1]):``),position:b.groupPosition??b.sidebarPosition??(S.remainingParts.length>1?t.i(S.remainingParts[S.remainingParts.length-2]):void 0),icon:b.icon?String(b.icon):void 0}:void 0,inferredGroupPosition:S.remainingParts.length>1?t.i(S.remainingParts[S.remainingParts.length-2]):void 0};return await r.t.set(e,N),N}function y(e){let r;try{r=decodeURIComponent(e)}catch{throw t.l(`SECURITY_ERROR`,`Invalid encoding in path`,{file:e}),new n.t(`Security breach: Invalid characters or encoding in path`)}if(r.length>260)throw new n.n(`Path length exceeds limit`);return r}async function b(e,a,s,c,l){let u=e.replace(/\\/g,`/`),d=s.replace(/\\/g,`/`),f=y(u),p=i.default.resolve(f),m=i.default.resolve(d);if(i.default.sep===`/`){let e=e=>{let t=e.replace(/\\/g,`/`);return/^[a-zA-Z]:/.test(t)&&(t=t.replace(/^[a-zA-Z]:/,``)),i.default.resolve(t)};p=e(f),m=e(d)}let h=i.default.relative(m,p).replace(/\\/g,`/`);if(h.startsWith(`../`)||h!==`.`&&!t.v.test(h))throw new n.n(`Security breach: File is outside of docs directory, contains null bytes, or invalid path characters: ${i.default.basename(f)}`);let{data:v}=t.g(`---
|
|
7
7
|
`+a.rawMatter+`
|
|
8
8
|
---`),b=o(p,m,c,l,v.permalink),x=_(v),S=g(v),C=i.default.basename(b.relativePath),w=t.h(C),T=b.remainingParts.map(e=>t.h(e)).slice(0,-1),E=/^index\.mdx?$/.test(w),D=v.sidebarPosition??t.i(C),O=T.join(`/`),k=v.description?t.p(String(v.description)).trim():a.description,A={route:{path:b.finalPath,componentPath:e,filePath:b.relativePath,title:x.title||t.h(i.default.basename(u,i.default.extname(u))),description:k,sidebarPosition:D,headings:a.headings,locale:b.locale,version:b.version,badge:x.badge,icon:v.icon?String(v.icon):void 0,tab:b.inferredTab,subRouteGroup:b.subRouteGroup,slugParts:T,_content:a.plainText,_rawContent:a.content,date:v.date,lastUpdated:v.lastUpdated,category:v.category,order:v.order,sidebarLabel:v.sidebarLabel,sidebarHidden:v.sidebarHidden||v.hidden,seo:S,frontmatter:v,collection:b.collection,tags:v.tags,author:v.author,draft:v.draft,excerpt:v.excerpt,coverImage:v.coverImage||v.cover},relativeDir:b.collection?void 0:O||void 0,isGroupIndex:E,inferredTab:b.inferredTab,inferredCollection:b.collection,groupMeta:E?{title:v.groupTitle||x.title||(T.length>0?t.t(T[T.length-1]):``),position:v.groupPosition??v.sidebarPosition??(b.remainingParts.length>1?t.i(b.remainingParts[b.remainingParts.length-2]):void 0),icon:v.icon?String(v.icon):void 0}:void 0,inferredGroupPosition:b.remainingParts.length>1?t.i(b.remainingParts[b.remainingParts.length-2]):void 0};return await r.t.set(e,A),A}exports.parseDocFile=v,exports.parseDocFileWithNative=b;
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Boltdocs - https://boltdocs.vercel.app
|
|
3
|
+
* Copyright (c) 2026 Jesus Alcala
|
|
4
|
+
* Licensed under the MIT License.
|
|
5
|
+
*/
|
|
6
|
+
const e=require(`./chunk-Ds5LZdWN.cjs`),t=require(`./utils-Bz1tG9Dg.cjs`),n=require(`./node-yFmAavND.cjs`),r=require(`./node/cache.cjs`),i=require(`./routes-Cnq8xTCv.cjs`),a=require(`./pages-external-CX2uyW95.cjs`),o=require(`./config-DrRQYDCI.cjs`),s=require(`./types-generator-CYcHkDzZ.cjs`),c=require(`./shiki-adapter-CGTmrR6S.cjs`),l=require(`./doctor-BadGEhXv.cjs`),u=require(`./headers-YpD10rDb.cjs`),d=require(`./csp-BX06rvdg.cjs`);let f=require(`node:path`);f=e.n(f);let p=require(`node:fs`);p=e.n(p);let m=require(`@bdocs/dui`),h=require(`node:crypto`);h=e.n(h);let g=require(`node:module`);g=e.n(g);let ee=require(`vite`),te=require(`@bdocs/plugin-image-optimizer`),_=require(`@mdx-js/rollup`);_=e.n(_);let v=require(`remark-gfm`);v=e.n(v);let y=require(`remark-frontmatter`);y=e.n(y);let b=require(`rehype-slug`);b=e.n(b);let x=require(`unist-util-visit`);function S(e){return`<!doctype html>
|
|
7
|
+
<html lang="en">
|
|
8
|
+
<head>
|
|
9
|
+
<meta charset="UTF-8" />
|
|
10
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
11
|
+
</head>
|
|
12
|
+
<body>
|
|
13
|
+
<div id="root"></div>
|
|
14
|
+
</body>
|
|
15
|
+
</html>`}function C(e,t,n){return e?typeof e==`string`?e:e[n||``]||Object.values(e)[0]||t:t}function w(e){let n=e.i18n?.defaultLocale,r=C(e.theme?.title,`Boltdocs`,n),i=e.theme?.favicon;!i&&e.theme?.logo&&(i=typeof e.theme.logo==`string`?e.theme.logo:e.theme.logo.light||e.theme.logo.dark);let a=e.seo?.indexing===`none`?`noindex, nofollow`:e.seo?.indexing===`all`?void 0:e.seo?.indexing,o=e.seo?.metatags||{},s=Object.entries(o).map(([e,n])=>{let r=t.n(e),i=t.n(n);return e.startsWith(`og:`)||e.startsWith(`music:`)||e.startsWith(`video:`)||e.startsWith(`article:`)||e.startsWith(`book:`)||e.startsWith(`profile:`)?`<meta property="${r}" content="${i}">`:`<meta name="${r}" content="${i}">`});return{title:r,favicon:i,robotsContent:a,customMetaTags:s}}function ne(e){return[e.favicon?`<link rel="icon" href="${t.n(e.favicon)}">`:``,e.robotsContent?`<meta name="robots" content="${t.n(e.robotsContent)}">`:``,`<meta name="generator" content="Boltdocs">`,...e.customMetaTags].filter(Boolean).join(`
|
|
16
|
+
`)}function re(e){if(!e)return``;let n=[];return e.google&&n.push(`<meta name="google-site-verification" content="${t.n(e.google)}">`),e.bing&&n.push(`<meta name="msvalidate.01" content="${t.n(e.bing)}">`),e.yandex&&n.push(`<meta name="yandex-verification" content="${t.n(e.yandex)}">`),e.pinterest&&n.push(`<meta name="p:domain_verify" content="${t.n(e.pinterest)}">`),e.facebook&&n.push(`<meta name="facebook-domain-verification" content="${t.n(e.facebook)}">`),n.join(`
|
|
17
|
+
`)}function ie(e){let t=[],n=e.theme?.logo,r;if(typeof n==`string`?r=n:n&&typeof n==`object`&&(r=n.light||n.dark),r){let e={webp:`image/webp`,png:`image/png`,jpg:`image/jpeg`,jpeg:`image/jpeg`,svg:`image/svg+xml`,avif:`image/avif`}[r.split(`.`).pop()?.toLowerCase()||``]||`image/png`;t.push(`<link rel="preload" as="image" href="${r}" type="${e}" fetchpriority="high">`)}return t.join(`
|
|
18
|
+
`)}function ae(){return`
|
|
19
|
+
<script>
|
|
20
|
+
(function() {
|
|
21
|
+
try {
|
|
22
|
+
var stored = localStorage.getItem("boltdocs-theme");
|
|
23
|
+
var isDark =
|
|
24
|
+
stored === "dark" ||
|
|
25
|
+
(stored !== "light" && window.matchMedia("(prefers-color-scheme: dark)").matches);
|
|
26
|
+
document.documentElement.classList.toggle("dark", isDark);
|
|
27
|
+
document.documentElement.dataset.theme = isDark ? "dark" : "light";
|
|
28
|
+
} catch (e) {
|
|
29
|
+
}
|
|
30
|
+
})();
|
|
31
|
+
<\/script>
|
|
32
|
+
`}function oe(e,n){if(!e||!n&&!e.debug)return``;let r=e.anonymizeIp?`gtag('set', 'ip', true);`:``,i=e.sendPageView===!1?`{send_page_view: false}`:`{}`,a=e.cookieFlags?`, {'cookie_flags': '${e.cookieFlags}'}`:``,o=t.n(e.measurementId);return`
|
|
33
|
+
<!-- Google tag (gtag.js) -->
|
|
34
|
+
<script async src="https://www.googletagmanager.com/gtag/js?id=${o}"><\/script>
|
|
35
|
+
<script>
|
|
36
|
+
window.dataLayer = window.dataLayer || [];
|
|
37
|
+
function gtag(){dataLayer.push(arguments);}
|
|
38
|
+
gtag('js', new Date());
|
|
39
|
+
${r}
|
|
40
|
+
gtag('config', '${o}', ${i}${a});
|
|
41
|
+
<\/script>
|
|
42
|
+
`}function se(e,n){if(!e||!n)return{script:``,noScript:``};let r=t.n(e.dataLayerName||`dataLayer`),i=e.preview?`>m_preview=${t.n(e.preview)}`:``,a=t.n(e.tagId);return{script:`
|
|
43
|
+
<!-- Google Tag Manager -->
|
|
44
|
+
<script defer>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
|
|
45
|
+
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
|
|
46
|
+
j=d.createElement(s),dl=l!='${r}'?'&l='+l:'';j.src=
|
|
47
|
+
'https://www.googletagmanager.com/gtm.js?id='+i+dl+'${i}';f.parentNode.insertBefore(j,f);
|
|
48
|
+
})(window,document,'script','${r}','${a}');<\/script>
|
|
49
|
+
<!-- End Google Tag Manager -->
|
|
50
|
+
`,noScript:`
|
|
51
|
+
<!-- Google Tag Manager (noscript) -->
|
|
52
|
+
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=${a}"
|
|
53
|
+
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
|
|
54
|
+
<!-- End Google Tag Manager (noscript) -->
|
|
55
|
+
`}}function ce(e,t){if(!e||!t)return``;let{analytics:n,speedInsights:r}=e,i=``;return n&&(i+=`
|
|
56
|
+
<script>window.va=window.va||function(){(window.vaq=window.vaq||[]).push(arguments)};<\/script>
|
|
57
|
+
<script defer src="/_vercel/insights/script.js"><\/script>
|
|
58
|
+
`),r&&(i+=`
|
|
59
|
+
<script>window.si=window.si||function(){(window.siq=window.siq||[]).push(arguments)};<\/script>
|
|
60
|
+
<script defer src="/_vercel/speed-insights/script.js"><\/script>
|
|
61
|
+
`),i}function le(e,n){if(!e||!n)return``;let r=t.n(e.apiKey),i=[`api_host: "${t.n(e.host||`https://us.i.posthog.com`)}"`];return e.capturePageview===!1&&i.push(`capture_pageview: false`),e.capturePageleave===!1&&i.push(`capture_pageleave: false`),e.sessionRecording===!0&&i.push(`session_recording: { recordCrossOriginPages: true }`),e.autocapture===!0&&i.push(`autocapture: true`),`
|
|
62
|
+
<!-- PostHog -->
|
|
63
|
+
<script>
|
|
64
|
+
!function(t,e){var o,n,p,r;e.__SV||(window.posthog=e,e._i=[],e.init=function(i,s,a){function g(t,e){var o=e.split(".");2==o.length&&(t=t[o[0]],e=o[1]),t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}}(p=t.createElement("script")).type="text/javascript",p.crossOrigin="anonymous",p.async=!0,p.src=s.api_host.replace(".i.posthog.com","-assets.i.posthog.com")+"/static/array.js",(r=t.getElementsByTagName("script")[0]).parentNode.insertBefore(p,r);var u=e;for(void 0!==a?(u=e[a]=[]):(a="posthog"),u.people=u.people||[],u.toString=function(t){var e="posthog";return"posthog"!==a&&(e+="."+a),t||(e+=" (stub)"),e},u.people.toString=function(){return u.toString(1)+".people (stub)"},o="init capture register register_once register_for_session unregister unregister_for_session getFeatureFlag getFeatureFlagResult isFeatureEnabled reloadFeatureFlags updateEarlyAccessFeatureEnrollment getEarlyAccessFeatures on onFeatureFlags onSessionId getSurveys getActiveMatchingSurveys renderSurvey canRenderSurvey getNextSurveyStep identify setPersonProperties group resetGroups setPersonPropertiesForFlags resetPersonPropertiesForFlags setGroupPropertiesForFlags resetGroupPropertiesForFlags reset get_distinct_id getGroups get_session_id get_session_replay_url alias set_config startSessionRecording stopSessionRecording sessionRecordingStarted captureException loadToolbar get_property getSessionProperty createPersonProfile opt_in_capturing opt_out_capturing has_opted_in_capturing has_opted_out_capturing clear_opt_in_out_capturing debug".split(" "),n=0;n<o.length;n++)g(u,o[n]);e._i.push([i,s,a])},e.__SV=1)}(document,window.posthog||[]);
|
|
65
|
+
posthog.init("${r}", { ${i.join(`, `)} });
|
|
66
|
+
<\/script>
|
|
67
|
+
`}function T(e,t){return e.replace(`<head>`,`<head>\n${t}`)}function E(e,t){return e.replace(`</head>`,` ${t}</head>`)}function D(e,t){return t?e.replace(/<body([^>]*)>/,`<body$1>\n${t}`):e}function ue(e){return e.includes(`src/main`)||e.includes(`virtual:boltdocs-entry`)?e:e.replace(`</body>`,` <script type="module">import "virtual:boltdocs-entry";<\/script>
|
|
68
|
+
</body>`)}function O(e,t){(!e||!e.includes(`<body`)||!e.includes(`<head`))&&(e=S(t));let n=process.env.NODE_ENV===`production`,r=ne(w(t)),i=re(t.seo?.verification),a=ie(t),o=ae(),s=oe(t.integrations?.analytics?.ga4,n),c=se(t.integrations?.analytics?.gtm,n),l=[i,a,r,s,ce(t.integrations?.analytics?.vercel,n),le(t.integrations?.analytics?.posthog,n),c.script].filter(Boolean).join(`
|
|
69
|
+
`);return e=T(e,o),e=E(e,l),e=D(e,c.noScript),e=ue(e),e}function k(e){return typeof e==`string`?[e]:Array.isArray(e)?e.flatMap(k):e&&typeof e==`object`?Object.values(e).flatMap(k):[]}const de=new Set([`title`,`description`,`permalink`,`sidebarPosition`,`sidebarLabel`,`sidebarHidden`,`hidden`,`category`,`order`,`badge`,`icon`,`date`,`lastUpdated`,`groupTitle`,`groupPosition`,`seo`]);function fe(e){let t=[];for(let n of e){let e=``;n.frontmatter&&(e=k(Object.entries(n.frontmatter).filter(([e])=>!de.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}let A=null,j=null,M=null,N=null;function P(){A=null,j=null,M=null,N=null}function F(e,r,a,o){return{name:`vite-plugin-boltdocs-virtual-modules`,resolveId(e){let n=a()?.root||process.cwd();return e.includes(`boltdocs-entry.tsx`)||e===`virtual:boltdocs-entry`||e===`boltdocs-entry`||e===`\0virtual:boltdocs-entry`?t.u(f.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(f.default.resolve(n,`boltdocs-client.mjs`)):e.startsWith(`virtual:boltdocs-`)?`\0`+e:e.startsWith(`\0virtual:boltdocs-`)?e:null},async load(a){let s=r();if(a.includes(`boltdocs-entry.tsx`)||a===`\0virtual:boltdocs-entry`)return n.D(e,s);if(a.includes(`boltdocs-client.mjs`)||a===`\0virtual:boltdocs-client.ts`||a===`virtual:boltdocs-client`){let e=__dirname,n=e;for(;e!==f.default.parse(e).root;){if(p.default.existsSync(f.default.join(e,`package.json`))&&JSON.parse(p.default.readFileSync(f.default.join(e,`package.json`),`utf-8`)).name===`boltdocs`){n=e;break}e=f.default.dirname(e)}let r=f.default.join(n,`src/client/index.ts`),i=f.default.join(n,`dist/client/index.js`);return`export * from '${t.u(p.default.existsSync(r)?r:i)}';`}if(!a.startsWith(`\0virtual:boltdocs-`))return;let c=a.replace(`\0virtual:boltdocs-`,``).replace(/\.tsx?$/,``);if(c===`routes`){if(!M){let e=n.y(await i.t(o,s));M=`export default ${JSON.stringify(e,null,2)};`}return M}if(c===`collections`){if(!N){let e=n.y(await i.t(o,s)),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,locale:n.locale,version:n.version,frontmatter:n.frontmatter,draft:n.frontmatter?.draft}));N=`export default ${JSON.stringify(t,null,2)};`}return N}if(c===`config`){if(A===null){let{loadDirectoryMeta:e}=await Promise.resolve().then(()=>require(`./meta-loader-CTB62-Mo.cjs`));A=await e(o)}let e=A,t={base:s?.base,theme:s?.theme,i18n:s?.i18n,versions:s?.versions,siteUrl:s?.siteUrl,integrations:s?.integrations,plugins:s?.plugins?.map(e=>({name:e.name})),directoryMeta:e};return`export default ${JSON.stringify(t,null,2)};`}if(c===`entry`)return n.D(e,s);if(c===`mdx-components`){let e=[`tsx`,`ts`,`jsx`,`js`],n=null;for(let t of e){let e=f.default.resolve(o,`mdx-components.${t}`);if(p.default.existsSync(e)){n=e;break}}if(n){let e=t.u(n);return`import * as components from '${e}';
|
|
70
|
+
const mdxComponents = components.default || components;
|
|
71
|
+
export default mdxComponents;
|
|
72
|
+
export * from '${e}';`}return`export default {};`}if(c===`layout`){let e=[`tsx`,`jsx`],n=null;for(let t of e){let e=f.default.resolve(o,`layout.${t}`);if(p.default.existsSync(e)){n=e;break}}if(n)return`import UserLayout from '${t.u(n)}';
|
|
73
|
+
export default UserLayout;`;throw Error(`[Boltdocs] Layout file not found. A 'layout.tsx' or 'layout.jsx' file is mandatory in your docs directory. Please create one to define your site structure.`)}if(c===`icons`){let e=[`tsx`,`jsx`,`ts`,`js`],n=null;for(let t of e){let e=f.default.resolve(o,`icons.${t}`);if(p.default.existsSync(e)){n=e;break}}return n?`import * as icons from '${t.u(n)}';\nexport default icons;`:`export default {};`}if(c===`search`){if(!j){let e=fe(await i.t(o,s));j=`export default ${JSON.stringify(e,null,2)};`}return j}if(c===`client`){let e=__dirname,n=``;for(;e&&e!==f.default.parse(e).root;){let r=f.default.join(e,`src/client/index.ts`),i=f.default.join(e,`dist/client/index.mjs`),a=f.default.join(e,`client/index.ts`);if(p.default.existsSync(r)){n=t.u(r);break}if(p.default.existsSync(i)){n=t.u(i);break}if(p.default.existsSync(a)){n=t.u(a);break}e=f.default.dirname(e)}if(!n)throw Error(`[boltdocs] Could not resolve boltdocs/client entry point starting from ${__dirname}`);return`export * from '${n}';`}}}}function I(e){return(t,n,r)=>{let i=e().integrations?.feedback?.custom,a=i?.endpoint||`/api/feedback`;if(!i?.enabled||t.method!==`POST`||t.url?.split(`?`)[0]!==a)return r();let o=``,s=0;t.on(`data`,e=>{if(s+=e.length,s>10240){n.statusCode=413,n.end(JSON.stringify({error:`Request body too large`})),t.destroy();return}o+=e}),t.on(`end`,async()=>{n.setHeader(`Content-Type`,`application/json`);try{let{handleFeedback:e}=await Promise.resolve().then(()=>require(`./handler-1LRMYeI4.cjs`)).then(e=>e.n),t=await e(JSON.parse(o),process.env,{owner:i.owner,repo:i.repo,categorySlug:i.categorySlug});n.statusCode=200,n.end(JSON.stringify(t))}catch(e){n.statusCode=500;let t=e instanceof Error?e.message:`Failed to submit feedback`;n.end(JSON.stringify({error:t}))}})}}function L(e){return(t,n,r)=>{let i=t.url||`/`,a=i.split(`?`)[0].split(`#`)[0];if(f.default.extname(a))return r();let o=e(),s=f.default.resolve(o?.root||process.cwd(),o?.build?.outDir||`dist`),c=a.replace(/\/$/,``)||`/`,l=f.default.join(s,c,`index.html`);c!==`/`&&p.default.existsSync(l)&&(t.url=`${c}/index.html${i.includes(`?`)?`?${i.split(`?`)[1]}`:``}`),r()}}const R=/\.(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 z(e,t,n){let r=process.env.NODE_ENV===`production`;e.middlewares.use(I(n)),e.middlewares.use((e,t,i)=>{r&&Object.entries(u.t).forEach(([e,n])=>{t.setHeader(e,n)});let a=n();a.security?.enableCSP&&t.setHeader(`Content-Security-Policy`,d.n(a)),i()}),e.middlewares.use((e,t,n)=>{if(e.url===`/robots.txt`){n();return}n()}),e.middlewares.use(async(t,r,i)=>{let a=t.url?.split(`?`)[0]||`/`,o=t.headers.accept||``,s=n();if(o.includes(`text/html`)&&!R.test(a)){let n=S(s);n=O(n,s),n=await e.transformIndexHtml(t.url||`/`,n),r.statusCode=200,r.setHeader(`Content-Type`,`text/html`),r.end(n);return}i()})}function B(e,t,n){setTimeout(async()=>{try{let{generateRoutes:r}=await Promise.resolve().then(()=>require(`./routes-D_S9kjkS.cjs`)),i=(await r(t,n())).filter(e=>e.filePath).map(e=>e.filePath);for(let t=0;t<i.length;t+=32){let n=i.slice(t,t+32);await Promise.allSettled(n.map(t=>{let n=f.default.relative(process.cwd(),t).replace(/\\/g,`/`),r=n.startsWith(`/`)?n:`/${n}`;return e.transformRequest(r)}))}}catch{}},0)}const V=[`tsx`,`jsx`],H=[`tsx`,`ts`,`jsx`,`js`];function U(e,t){let n=o.t.map(e=>f.default.resolve(process.cwd(),e)),r=V.map(e=>f.default.resolve(t,`layout.${e}`)),i=H.map(e=>f.default.resolve(t,`mdx-components.${e}`)),a=H.map(e=>f.default.resolve(t,`pages-external/index.${e}`)),s=H.map(e=>f.default.resolve(t,`icons.${e}`));e.watcher.add([...n,...i,...r,...a,...s])}const W=new Map;function G(e){let{lastUpdated:t,...n}=e;return h.default.createHash(`md5`).update(JSON.stringify(n)).digest(`hex`)}async function pe(e){try{let{data:n}=await t.d(e);return G(n)}catch{return``}}function me(e){let t=W.get(e);if(t===void 0){let n=i.i.getStale(e);n?.route?.frontmatter&&(t=G(n.route.frontmatter),W.set(e,t))}return t}function he(e,t){W.set(e,t)}function ge(e){W.delete(e)}const K=[`tsx`,`ts`,`jsx`,`js`];function q(e,t){let n=e.moduleGraph.getModuleById(`\0virtual:boltdocs-${t}.ts`);n&&e.moduleGraph.invalidateModule(n)}function _e(e,n,r,a){let c=new Map,u=r.toLowerCase(),d=async(r,d)=>{try{let p=t.u(r);if(o.t.some(e=>p.endsWith(e))){e.restart();return}if(K.some(e=>p.endsWith(`mdx-components.${e}`))){s.t(a(),n),q(e,`mdx-components.tsx`),e.ws.send({type:`full-reload`});return}if(K.some(e=>p.endsWith(`icons.${e}`))){q(e,`icons.tsx`),e.ws.send({type:`full-reload`});return}if(p.endsWith(`layout.tsx`)||p.endsWith(`layout.jsx`)){q(e,`layout.tsx`),e.ws.send({type:`full-reload`});return}if(p.endsWith(`/post.tsx`)||p.endsWith(`/post.jsx`)||p.endsWith(`/list.tsx`)||p.endsWith(`/list.jsx`)){q(e,`entry`),e.ws.send({type:`full-reload`});return}if(p.includes(`/pages-external/`)||p.includes(`\\pages-external\\`)){q(e,`entry`),e.ws.send({type:`full-reload`});return}if(!p.toLowerCase().startsWith(u))return;let h=p.endsWith(`meta.json`)||p.endsWith(`_meta.json`);if(!h&&!t.c(p))return;if(d===`add`||d===`unlink`||h){d===`unlink`&&ge(r),i.r(),P();let t=a();s.t(t,n),q(e,`config`),q(e,`routes`),q(e,`search`),q(e,`collections`),l.c(n,process.cwd(),t).catch(e=>{(0,m.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}c.has(p)&&clearTimeout(c.get(p)),c.set(p,setTimeout(async()=>{c.delete(p);try{let a=me(r),o=await pe(r);if(he(r,o),i.n(r),a!==void 0&&a!==o){P(),q(e,`routes`),q(e,`search`),q(e,`collections`),e.ws.send({type:`full-reload`});return}let s=t.u(f.default.relative(n,r)),c=e.moduleGraph.getModulesByFile(p);if(!c||c.size===0){let t=p.toLowerCase();for(let[n,r]of e.moduleGraph.fileToModulesMap.entries())try{if(decodeURIComponent(n).toLowerCase()===t){c=r;break}}catch{}}if(c&&c.size>0)for(let t of c)e.moduleGraph.invalidateModule(t);else{e.ws.send({type:`full-reload`});return}e.ws.send({type:`custom`,event:`boltdocs:mdx-update`,data:{file:p,relPath:s}})}catch(e){(0,m.error)(`HMR error processing content change:`,e)}},150))}catch(e){(0,m.error)(`HMR error during ${d} event:`,e)}};e.watcher.on(`add`,e=>d(e,`add`)),e.watcher.on(`unlink`,e=>d(e,`unlink`)),e.watcher.on(`change`,e=>d(e,`change`))}function ve(e){let n=e.toLowerCase();return({file:e})=>{let r=e.toLowerCase();if(r.startsWith(n)&&(t.c(e)||r.endsWith(`meta.json`)))return[]}}function ye(e,t,n,r,i){return{name:`vite-plugin-boltdocs-dev-server`,apply:`serve`,async configureServer(r){let a=i();await a?.runHook(`beforeDev`),l.c(e,process.cwd(),n()).catch(e=>{(0,m.error)(`Failed to generate initial link tree:`,e)}),B(r,e,n),z(r,e,n),U(r,e),_e(r,e,t,n),await a?.runHook(`afterDev`)},hotUpdate:ve(t)}}const J=new r.TransformCache(`mdx`);function be(e){let t=c.n(e);return async e=>{let r=await t.getHighlighter();n.p(e,c.o.ELEMENT,e=>{if(e.tagName!==`pre`)return;let n=e.children?.[0];if(!n||n.type!==c.o.ELEMENT||n.tagName!==`code`)return;let i=(n.properties?.className||[]).find(e=>e.startsWith(`language-`)),a=i?i.slice(9):c.a.MDX_DEFAULT_LANG;if(a===`mermaid`)return;let o=c.r(n.properties?.metastring||n.data?.meta||``),s=t.getOptions(a,o),l=n.children?.[0]?.value||``;try{let t=r.codeToHast(l,s),n=t.type===`root`?t.children[0]:t;e.children=n.children,e.properties={...e.properties,...n.properties,[c.i.HIGHLIGHTED]:`true`,[c.i.LANG]:a}}catch(t){(0,m.error)(`[rehypeShiki] Failed to highlight code block:`,t),e.properties=e.properties||{},e.properties.className=[...e.properties.className||[],c.s.FALLBACK],e.properties[c.i.HIGHLIGHTED]=`false`,e.properties[c.i.LANG]=a}return o.title&&(e.properties[c.i.TITLE]=o.title),x.SKIP})}}function xe(){return e=>{n.p(e,c.o.CODE,e=>{e.meta&&n.d(e,`metastring`,e.meta)})}}let Se=!1;function Ce(e,t,n=_.default){let r=e?.plugins?.flatMap(e=>e.remarkPlugins||[])||[],i=e?.plugins?.flatMap(e=>e.rehypePlugins||[])||[],a=n({remarkPlugins:[v.default,y.default,xe,...r],rehypePlugins:[b.default,[be,e],...i],jsxRuntime:`automatic`});return{...a,name:`vite-plugin-boltdocs-mdx`,async buildStart(){Se||=(await J.load(),!0),a.buildStart&&await a.buildStart.call(this)},async load(e,n){if(e.endsWith(`.md`)||e.endsWith(`.mdx`))try{let n=p.default.readFileSync(e,`utf-8`),r=t?.();return r&&(n=(await r.runChain(`transformSource`,{code:n,filePath:e})).code),n}catch{return null}return a.load?a.load.call(this,e,n):null},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}:${h.default.createHash(`md5`).update(e).digest(`hex`)}:${process.env.NODE_ENV===`production`?`prod`:`dev`}:v3`,s=await J.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),J.set(o,e),{code:e,map:null}}return c},async buildEnd(){J.save(),await J.flush(),a.buildEnd&&await a.buildEnd.call(this)}}}const Y=g.createRequire(require(`url`).pathToFileURL(__filename).href),we=[`react`,`react-dom`,`react-router-dom`,`react-helmet-async`,`@bdocs/ssg`,`invariant`],Te=[`react/jsx-runtime`,`react/jsx-dev-runtime`,`react-dom/client`];function X(e=Y){try{let e=f.default.join(process.cwd(),`node_modules/boltdocs/package.json`);return p.default.existsSync(e)?g.createRequire(p.default.realpathSync(e)):g.createRequire(f.default.join(process.cwd(),`package.json`))}catch{return e}}function Z(e,t=Y){try{let n=e.split(`/`),r=e.startsWith(`@`)?n.slice(0,2).join(`/`):n[0],i=e.startsWith(`@`)?n.slice(2).join(`/`):n.slice(1).join(`/`),a=``;try{a=t.resolve(`${r}/package.json`)}catch{let e=t.resolve(r),n=f.default.dirname(e);for(;n&&n!==f.default.dirname(n);){let e=f.default.join(n,`package.json`);if(p.default.existsSync(e)){a=e;break}n=f.default.dirname(n)}}if(!a)throw Error();let o=f.default.dirname(a),s=JSON.parse(p.default.readFileSync(a,`utf-8`)),c=i?`./${i}`:`.`,l=s.exports?.[c]||s.exports?.[i]||``;typeof l==`object`&&l&&(l=l.import||l.default||l.require||``),!l&&!i&&(l=s.module||s.main||`index.js`);let u=f.default.resolve(o,l);if(p.default.existsSync(u))return u}catch{}return t.resolve(e)}function Q(e=Y){let n=[],r=X(e),i=new Set([r,e]);for(let e of i){for(let t of we)try{let r=[`@bdocs/ssg`,`react-router-dom`,`react-helmet-async`].includes(t)?Z(t,e):e.resolve(t);r&&n.push(p.default.realpathSync(r))}catch{}for(let t of Te)try{n.push(p.default.realpathSync(e.resolve(t)))}catch{}}return Array.from(new Set(n)).map(e=>t.u(e))}const $=g.createRequire(require(`url`).pathToFileURL(__filename).href),Ee=[`react`,`react-dom`,`react-router-dom`,`react-helmet-async`,`@bdocs/ssg`];function De(e={},r){let c=f.default.resolve(process.cwd(),e.docsDir||`docs`),l=t.u(c),u=r,d,m=!1,h,g=[],_=[];if(u?.plugins?.length)try{let{version:e}=JSON.parse(p.default.readFileSync(f.default.resolve(__dirname,`../../../package.json`),`utf-8`)),t=n.x(u.plugins,e);u.plugins=t,h=new n._(t,u),_=t.flatMap(e=>e.vitePlugins||[])}catch{}let v=()=>u,y=e=>{u=e},b=()=>d,x=()=>h;return[{name:`vite-plugin-boltdocs`,enforce:`pre`,async config(e,t){m=t.command===`build`;let r=!!(t.isSsrBuild||e.build?.ssr);if(Object.assign(process.env,(0,ee.loadEnv)(t.mode,e.envDir||process.cwd(),``)),u||=await o.n(c),g.length===0){g=await i.t(c,u);let e=g.map(e=>e.path),t=(u.base||`/docs`).replace(/\/$/,``);e.includes(t)||e.push(t);let n=a.t(c,u);for(let t of n)e.includes(t)||e.push(t);s.t(u,c,void 0,e),s.r(e)}Promise.resolve().then(()=>require(`./node/mdx/shiki-adapter.cjs`)).then(({getShikiAdapter:e})=>{e(u).getHighlighter().catch(()=>{})}).catch(()=>{});let{version:l}=await Promise.resolve().then(()=>require(`./package-_-Oa8-qN.cjs`)),f=n.x(u.plugins||[],l);return u.plugins=f,h=new n._(f,u,c,void 0,g,d?.build?.outDir||`dist`),_=f.flatMap(e=>e.vitePlugins||[]),m&&await h.runHook(`beforeBuild`),{ssgOptions:{entry:`boltdocs/entry`,htmlEntry:`index.html`,dirStyle:`flat`,includeAllRoutes:!0,mock:!0,script:`async`,beastiesOptions:!1},build:{ssrManifest:m},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:Z(`react-router-dom`)},{find:`react-helmet-async`,replacement:Z(`react-helmet-async`)},{find:`@bdocs/ssg`,replacement:Z(`@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`,`invariant`,...Q($)],optimizeDeps:{include:[`react-fast-compare`,`invariant`]},noExternal:[`react-router-dom`]}}},configResolved(e){d=e},resolveId(e,t,n){let r=Ee.find(t=>e===t||e.startsWith(`${t}/`)||e.includes(`/node_modules/${t}/`)||t.startsWith(`@`)&&e.includes(`/node_modules/${t.replace(`/`,f.default.sep)}/`));if(r&&n?.ssr&&!f.default.isAbsolute(e)&&r!==`react`&&r!==`react-dom`){let t=X($),n=e;try{n=[`@bdocs/ssg`,`react-router-dom`,`react-helmet-async`].includes(r)?Z(e,t):t.resolve(e)}catch{try{n=[`@bdocs/ssg`,`react-router-dom`,`react-helmet-async`].includes(r)?Z(e,$):$.resolve(e)}catch{}}try{n=p.default.realpathSync(n)}catch{}return{id:n,external:!0}}return null},transformIndexHtml:{order:`pre`,handler:e=>O(e,u)},async closeBundle(){!m||d?.build?.ssr||(await h?.runHook(`afterBuild`),await h?.runHook(`buildEnd`))},configurePreviewServer(e){e.middlewares.use(I(v)),e.middlewares.use(L(b))}},F(e,v,b,c),ye(c,l,v,y,x),...e.turbo?[]:[Ce(u,x)],...e.turbo?[(()=>{let e=null;async function t(){if(!e)try{let{createSatteriMdxPlugin:t}=await Promise.resolve().then(()=>require(`./node-DqsP7kXz.cjs`));e=t(u,x)}catch{}return e}return{name:`vite-plugin-boltdocs-satteri-mdx`,enforce:`pre`,async load(e){let n=await t();return n&&n.load?n.load(e):null},async transform(e,n){let r=await t();return r&&r.transform?r.transform(e,n):null},async buildEnd(){let e=await t();e&&e.buildEnd&&await e.buildEnd()}}})()]:[],(0,te.ViteImageOptimizer)({includePublic:!0}),..._]}exports.boltdocsPlugin=De,exports.getBaseRequire=X,exports.getExternalAbsolutePaths=Q,exports.resolveEsm=Z;
|