boltdocs 3.2.1 → 3.3.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.
Files changed (155) hide show
  1. package/bin/boltdocs.js +20 -1
  2. package/bin/preloader.mjs +28 -0
  3. package/dist/{adapters-ByYY44Zy.mjs → adapters-BmB4TKCc.mjs} +1 -1
  4. package/dist/{adapters-DvmtpdSF.cjs → adapters-Cp1Maurn.cjs} +1 -1
  5. package/dist/audit-CLXjMzwQ.mjs +11 -0
  6. package/dist/audit-COgjnQ5n.cjs +11 -0
  7. package/dist/build-BS2hefiL.cjs +6 -0
  8. package/dist/build-C5mNh9D-.mjs +6 -0
  9. package/dist/cache-CJE9nWLE.cjs +6 -0
  10. package/dist/cache-OY4HzIXl.mjs +6 -0
  11. package/dist/callout-oI_LCbxS.d.ts +71 -0
  12. package/dist/callout-plqx9Dw-.d.cts +71 -0
  13. package/dist/client/index.cjs +1265 -569
  14. package/dist/client/index.d.cts +3 -542
  15. package/dist/client/index.d.ts +3 -542
  16. package/dist/client/index.js +1167 -521
  17. package/dist/client/mdx.cjs +1 -1
  18. package/dist/client/mdx.d.cts +24 -2
  19. package/dist/client/mdx.d.ts +24 -2
  20. package/dist/client/mdx.js +1 -1
  21. package/dist/client/primitives.cjs +14 -4
  22. package/dist/client/primitives.d.cts +281 -38
  23. package/dist/client/primitives.d.ts +281 -38
  24. package/dist/client/primitives.js +5 -5
  25. package/dist/client/router.cjs +49 -0
  26. package/dist/client/router.d.cts +3 -0
  27. package/dist/client/router.d.ts +3 -0
  28. package/dist/client/router.js +8 -0
  29. package/dist/client/theme/reset.css +40 -4
  30. package/dist/{config-BpzaPsJj.d.cts → config-BoRlz0Ca.d.mts} +157 -14
  31. package/dist/{config-xtS0ZkMm.d.mts → config-CTsX_tGM.d.cts} +157 -14
  32. package/dist/config-Ceib-AOH.cjs +7 -0
  33. package/dist/config-DGLQsy7y.mjs +7 -0
  34. package/dist/{package-BcISI5-P.cjs → config-files-BYHDOrKn.mjs} +1 -1
  35. package/dist/config-files-D9cdBMl2.cjs +6 -0
  36. package/dist/config-jJh8WYJI.cjs +6 -0
  37. package/dist/csp-C4LmN1ko.cjs +6 -0
  38. package/dist/csp-D6JEOqKh.mjs +6 -0
  39. package/dist/dev-Ch3hEe5Y.cjs +6 -0
  40. package/dist/dev-QPNxysrd.mjs +6 -0
  41. package/dist/{docs-layout-BdtZ9z6s.js → docs-layout-CbZ7LDRe.js} +504 -249
  42. package/dist/{docs-layout-CFWI15Id.cjs → docs-layout-vzfXed1Q.cjs} +516 -254
  43. package/dist/{doctor-BBtmNJE0.cjs → doctor-B1_YL0Wt.cjs} +1 -1
  44. package/dist/doctor-C7whl4ED.cjs +6 -0
  45. package/dist/doctor-DmQnml2k.mjs +6 -0
  46. package/dist/{generator-COepVWGi.cjs → generator-BlW45ST7.cjs} +5 -3
  47. package/dist/{generator-CcOBN5vI.mjs → generator-BwknNejd.mjs} +5 -3
  48. package/dist/{handler-XX7cLTqe.cjs → handler-CDEoKARD.cjs} +2 -2
  49. package/dist/{handler-DzQae4eA.mjs → handler-D7UyZlPm.mjs} +2 -2
  50. package/dist/{image-Bz87fCla.js → image-B-NDSDuY.js} +129 -11
  51. package/dist/{image-C4TlpMHn.cjs → image-Hnaa2bJd.cjs} +175 -9
  52. package/dist/index-C56bL-A-.d.cts +1344 -0
  53. package/dist/{sidebar-COTaMHR-.d.ts → index-CPUUKzxD.d.cts} +344 -327
  54. package/dist/{sidebar-CrEdJuHX.d.cts → index-Ci4kfOHF.d.ts} +344 -327
  55. package/dist/index-Cu9H6CRa.d.ts +1344 -0
  56. package/dist/link-CgdI6O2o.js +872 -0
  57. package/dist/{link-D1Gjkb-2.cjs → link-vZjmD-es.cjs} +406 -223
  58. package/dist/{mdx-BuO6a1f7.js → mdx-BRT71V5Q.js} +211 -168
  59. package/dist/{mdx-CD-tSjRG.cjs → mdx-D0Absdq5.cjs} +225 -169
  60. package/dist/native-BNCY7PRF.cjs +6 -0
  61. package/dist/native-Di9Fnfrv.mjs +6 -0
  62. package/dist/native-Kre2T5eS.cjs +6 -0
  63. package/dist/node/cache.cjs +1 -1
  64. package/dist/node/cache.d.cts +19 -3
  65. package/dist/node/cache.d.mts +19 -3
  66. package/dist/node/cache.mjs +1 -1
  67. package/dist/node/cli-entry.cjs +1 -9
  68. package/dist/node/cli-entry.mjs +1 -9
  69. package/dist/node/index.cjs +1 -1
  70. package/dist/node/index.d.cts +245 -17
  71. package/dist/node/index.d.mts +246 -18
  72. package/dist/node/index.mjs +1 -1
  73. package/dist/node/mdx/shiki-adapter.cjs +1 -1
  74. package/dist/node/mdx/shiki-adapter.d.cts +24 -3
  75. package/dist/node/mdx/shiki-adapter.d.mts +24 -2
  76. package/dist/node/mdx/shiki-adapter.mjs +1 -1
  77. package/dist/node-Du5UL5wo.mjs +23 -0
  78. package/dist/node-DunuGqyp.cjs +23 -0
  79. package/dist/{package-CCYEAYeA.mjs → package-DA848keM.mjs} +1 -1
  80. package/dist/package-wplzySjz.cjs +6 -0
  81. package/dist/pages-external-BBw8ObVK.mjs +6 -0
  82. package/dist/pages-external-DPiPFxxP.cjs +6 -0
  83. package/dist/parser-BqTOsEUa.cjs +6 -0
  84. package/dist/parser-CGMY2lJ7.mjs +6 -0
  85. package/dist/plugin-BcTzvHAJ.mjs +69 -0
  86. package/dist/plugin-TulVMt1z.cjs +69 -0
  87. package/dist/plugin-context-C-l90hFt.cjs +15 -0
  88. package/dist/plugin-context-wqHNSZum.mjs +15 -0
  89. package/dist/plugin-lifecycle-B1BzSHdn.cjs +6 -0
  90. package/dist/resolve-B7vWOd8R.cjs +6 -0
  91. package/dist/resolve-C2kKnk_5.mjs +6 -0
  92. package/dist/resolve-It1Iug83.cjs +6 -0
  93. package/dist/resolve-YdTrt_FG.mjs +6 -0
  94. package/dist/router-C3kygdRK.cjs +1285 -0
  95. package/dist/router-CZBxMRAH.js +987 -0
  96. package/dist/routes-BL4y79tb.mjs +6 -0
  97. package/dist/routes-C2nPecwu.cjs +6 -0
  98. package/dist/routes-U9L8psZ9.cjs +6 -0
  99. package/dist/{search-dialog-DHqwjJuG.cjs → search-dialog-BCOHQGSt.cjs} +1 -1
  100. package/dist/search-dialog-Bp_P1MPP.js +481 -0
  101. package/dist/{search-dialog-DFnlx8LO.js → search-dialog-BqkzDTq2.js} +107 -57
  102. package/dist/{search-dialog-BRFno7HD.cjs → search-dialog-CIeIUhAn.cjs} +218 -43
  103. package/dist/{search-dialog-D6TvjcuV.js → search-dialog-DtmxmfEu.js} +1 -1
  104. package/dist/{search-dialog-B1NERUNx.cjs → search-dialog-x_qHU8ty.cjs} +107 -58
  105. package/dist/server/index.cjs +1 -1
  106. package/dist/server/index.d.mts +1 -1
  107. package/dist/server/index.mjs +1 -1
  108. package/dist/update-check-BKqmYfwT.cjs +11 -0
  109. package/dist/update-check-QnrVR3q1.mjs +11 -0
  110. package/dist/utils-8lzafE49.mjs +7 -0
  111. package/dist/utils-ej6_SjIZ.cjs +7 -0
  112. package/dist/virtual-modules-Ca5tHk1X.cjs +30 -0
  113. package/dist/virtual-modules-Dlgt1fP0.mjs +30 -0
  114. package/package.json +18 -16
  115. package/src/shared/mdx-path.ts +12 -0
  116. package/src/shared/structured-data.ts +145 -0
  117. package/src/shared/types.ts +220 -16
  118. package/dist/banner-BMop1KLF.d.ts +0 -100
  119. package/dist/banner-CVD0GugR.d.cts +0 -100
  120. package/dist/cache-CO4Dy2uQ.cjs +0 -6
  121. package/dist/cache-Dk53iOo6.mjs +0 -6
  122. package/dist/config-CCXp3aXO.mjs +0 -7
  123. package/dist/config-CMd4XoFq.cjs +0 -6
  124. package/dist/config-DlGoEM9D.cjs +0 -7
  125. package/dist/csp-CRp_3U7a.cjs +0 -6
  126. package/dist/csp-oTC2ygvF.mjs +0 -6
  127. package/dist/doctor-Bv16QSrI.cjs +0 -7
  128. package/dist/doctor-DOAbSaiL.mjs +0 -7
  129. package/dist/headers-Ddwek8K7.mjs +0 -6
  130. package/dist/headers-dg4SDrjY.cjs +0 -6
  131. package/dist/link-2PzgTnaP.js +0 -673
  132. package/dist/meta-loader-C4Hu9RN9.mjs +0 -6
  133. package/dist/meta-loader-Dq1zcFnh.cjs +0 -6
  134. package/dist/node-BXtqM1uH.mjs +0 -6
  135. package/dist/node-BlVk4EVg.cjs +0 -104
  136. package/dist/node-DOf4zhWc.mjs +0 -104
  137. package/dist/node-aD1eisrR.cjs +0 -6
  138. package/dist/pages-external-BYa4JSda.mjs +0 -6
  139. package/dist/pages-external-XkYIs-d5.cjs +0 -6
  140. package/dist/parser-DCiEWkSk.cjs +0 -8
  141. package/dist/parser-qk9FIHJ7.mjs +0 -8
  142. package/dist/plugin-C95kvu6h.mjs +0 -73
  143. package/dist/plugin-DM3u2bVj.cjs +0 -73
  144. package/dist/routes-BW6zsk7Z.mjs +0 -6
  145. package/dist/routes-BgoIB5wb.cjs +0 -6
  146. package/dist/routes-CORVxc02.cjs +0 -6
  147. package/dist/search-dialog-BmxHiKwt.js +0 -312
  148. package/dist/shiki-adapter-CoQ6jyJ4.cjs +0 -6
  149. package/dist/shiki-adapter-D-aKw7PP.mjs +0 -6
  150. package/dist/utils-Crm9oPcV.mjs +0 -7
  151. package/dist/utils-D6Xtj0FZ.cjs +0 -7
  152. /package/dist/{errors-0zGHRLue.mjs → errors-N-b6Sn2G.mjs} +0 -0
  153. /package/dist/{index-1KsTDq4o.d.mts → index-lFoyzCXy.d.mts} +0 -0
  154. /package/dist/{types-generator-BXhv7Ill.cjs → types-generator-DDSA93P3.cjs} +0 -0
  155. /package/dist/{types-generator-bDPvUztF.mjs → types-generator-DG1GX1EZ.mjs} +0 -0
@@ -1,6 +0,0 @@
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||(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]);let l=t.properties??{};for(let[e,t]of Object.entries(l))e===`class`||e===`className`||(a[e]=t);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(typeof e==`object`&&`name`in e&&[`paragraph`,`heading`,`thematicBreak`,`blockquote`,`list`,`listItem`,`html`,`code`,`definition`,`text`,`emphasis`,`strong`,`inlineCode`,`break`,`link`,`image`].some(t=>t in e&&typeof e[t]==`function`))return e;let t;try{t=typeof e==`function`?e():null}catch{t=null}return typeof t==`function`?p(t):typeof e==`function`?p(e):(console.warn(`[satteri] Cannot convert remark plugin "${e?.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):null}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&&[`root`,`element`,`text`,`comment`,`doctype`,`script`,`style`,`template`].some(t=>{let n=e[t];return typeof n==`function`||typeof n==`object`&&!!n&&`visit`in n}))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 "${(typeof t==`object`&&t?t:null)?.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??[]){let e=r;if(e.remarkPlugins)for(let n of e.remarkPlugins)if(Array.isArray(n)){let[r,i]=n;if(e.name===`boltdocs-plugin-mermaid`){let e=m(r,i,`Mermaid`,`mermaid`);e&&t.push(e)}else{let e=f(r);e&&t.push(e)}}else{let e=f(n);e&&t.push(e)}if(e.rehypePlugins)for(let t of e.rehypePlugins)if(Array.isArray(t)){let e=h(t[0]);e&&n.push(e)}else{let e=h(t);e&&n.push(e)}}return{remarkPlugins:t,rehypePlugins:n}}var v=class{mdastPlugins;hastPlugins;cache;cacheReady=!1;fallbackCompiler=null;fallbackPromise=null;constructor(e,t){this.mdastPlugins=e,this.hastPlugins=t}async ensureCache(){return this.cacheReady||=(this.cache=new(await(import(`boltdocs/node/cache`))).TransformCache(`mdx`),!0),this.cache}async getCache(){return this.ensureCache()}async ensureFallback(){return this.fallbackCompiler?this.fallbackCompiler:this.fallbackPromise?this.fallbackPromise:(this.fallbackPromise=this.loadFallback(),this.fallbackCompiler=await this.fallbackPromise,this.fallbackCompiler)}async loadFallback(){try{let e=await import(`@mdx-js/rollup`),[t,n,r]=await Promise.all([import(`remark-gfm`).then(e=>e.default),import(`remark-frontmatter`).then(e=>e.default),import(`rehype-slug`).then(e=>e.default)]);return e.default({jsxRuntime:`automatic`,jsxImportSource:`react`,remarkPlugins:[t,n],rehypePlugins:[r]})}catch{return null}}async satteriCompile(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 this.getCache()).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:[...this.mdastPlugins],hastPlugins:[...this.hastPlugins],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 this.getCache()).set(r,n)}catch{}return n}catch{return null}}async fallbackCompile(e,t){let n=await this.ensureFallback();if(!n)return null;try{let r=await n.transform(e,t);if(r?.code)return r.code}catch{}return null}async compile(e,t){return await this.satteriCompile(e,t)||this.fallbackCompile(e,t)}async flushCache(){this.cache&&(this.cache.save(),await this.cache.flush())}};function y(e){let[t]=e.split(`?`);return t.endsWith(`.md`)||t.endsWith(`.mdx`)}function b(e){return e.includes(`function _createMdxContent`)||e.includes(`react/jsx-runtime`)||e.includes(`export default function MDXContent`)}function x(t,n){let r=S(),i=r.mdastPlugins??[],a=r.hastPlugins??[],{remarkPlugins:o,rehypePlugins:s}=_(t),c=new v([...i,...o],[...a,...s]);return{name:`vite-plugin-boltdocs-satteri-mdx`,enforce:`pre`,async load(t){if(!y(t))return null;let[r]=t.split(`?`),i;try{i=e.readFileSync(r,`utf-8`)}catch{return null}let a=n?.(),o=i;if(a)try{let e=await a.runChain(`transformSource`,{code:i,filePath:r});e?.code&&(o=e.code)}catch{}return await c.compile(o,r)??o},async transform(e,t){if(!y(t))return null;let r=e;if(!b(r)){let e=await c.compile(r,t.split(`?`)[0]);e&&(r=e)}let i=r,a=n?.();if(a)try{let e=await a.runChain(`transformMdx`,{code:r,filePath:t.split(`?`)[0]});e?.code&&(i=e.code)}catch{}return{code:i,map:null}},async buildEnd(){await c.flushCache()}}}function S(){return{name:`boltdocs-processor-satteri`,version:`0.1.0`,boltdocsVersion:`>=3.0.0`,mdastPlugins:[o()],hastPlugins:[c(),d()]}}export{x as createSatteriMdxPlugin};
@@ -1,104 +0,0 @@
1
- /**
2
- * Boltdocs - https://boltdocs.vercel.app
3
- * Copyright (c) 2026 Jesus Alcala
4
- * Licensed under the MIT License.
5
- */
6
- const e=require(`./chunk-D1Md3oWO.cjs`),t=require(`./utils-D6Xtj0FZ.cjs`),n=require(`./node/cache.cjs`),r=require(`./routes-BgoIB5wb.cjs`),i=require(`./pages-external-XkYIs-d5.cjs`),a=require(`./config-DlGoEM9D.cjs`),o=require(`./types-generator-BXhv7Ill.cjs`),s=require(`./handler-XX7cLTqe.cjs`),c=require(`./adapters-DvmtpdSF.cjs`);let l=require(`node:path`);l=e.r(l);let u=require(`node:fs`);u=e.r(u);let d=require(`zod`),f=require(`@bdocs/dui`);f=e.r(f);let p=require(`semver`);p=e.r(p);let m=require(`node:module`),h=require(`@bdocs/ssg/node`);function g(){return{name:`boltdocs-ssr-dirname-polyfill`,config:(e,{isSsrBuild:t})=>t?{define:{__dirname:`import.meta.dirname`}}:{}}}function _(e,n){let r=l.default.resolve(process.cwd(),`index.css`),i=u.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
- `),s=a.map(([e])=>`${e}: _comp_${e}`).join(`, `),c=l.default.basename(e.docsDir||`docs`),d=l.default.resolve(process.cwd(),e.docsDir||`docs`),f=[`tsx`,`ts`,`jsx`,`js`].map(e=>l.default.resolve(d,`pages-external/index.${e}`)).find(e=>u.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('/${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 v=class extends Error{name=this.constructor.name;constructor(e,t,n){super(`[plugin:${e}] ${t}`,n),this.pluginName=e}},y=class extends v{constructor(e,t){super(e,`Validation failed: ${t}`)}},b=class extends v{constructor(e,t){super(e,`Compatibility error: ${t}`)}},x=class extends v{constructor(e,t,n){super(e,`Error in hook '${t}': ${n.message}`,{cause:n}),this.hookName=t}},S=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 C=a.i.extend({version:d.z.string().optional(),boltdocsVersion:d.z.string().optional(),hooks:d.z.object({beforeBuild:d.z.function().optional(),afterBuild:d.z.function().optional(),beforeDev:d.z.function().optional(),afterDev:d.z.function().optional(),buildEnd:d.z.function().optional(),transformSource:d.z.function().optional(),transformMdx:d.z.function().optional(),transformHtml:d.z.function().optional()}).optional()});function w(e,t){let n=[],r=new Set;for(let i of e){let e=C.safeParse(i);if(!e.success)throw new y(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 y(a.name,`Duplicate plugin name detected`);if(r.add(a.name),a.boltdocsVersion&&!p.default.satisfies(t,a.boltdocsVersion))throw new b(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 y(a.name,`Component '${e}' has an invalid path: traversal sequences are not allowed.`);if(l.default.isAbsolute(t))throw new y(a.name,`Component '${e}' has an invalid path: absolute paths are not allowed.`)}n.push(a)}return n}function T(e,t=process.cwd()){let n=e.plugins||[];for(let e of n)if(e.name)try{let n=null;try{n=(0,m.createRequire)(l.default.resolve(t,`package.json`)).resolve(`${e.name}/package.json`)}catch{let r=l.default.resolve(t,`node_modules`,e.name,`package.json`);u.default.existsSync(r)&&(n=r)}if(n&&u.default.existsSync(n)){let t=JSON.parse(u.default.readFileSync(n,`utf-8`)).scripts||{};(t.preinstall||t.postinstall||t.install)&&(0,f.warn)(`💡 ${f.colors.yellow(f.colors.bold(`Nota de seguridad:`))} El plugin ${f.colors.cyan(e.name)} ejecuta scripts nativos al instalarse. Corre ${f.colors.bold(`boltdocs audit`)} para un análisis detallado.`)}}catch{}}var E=class{name=`ConfigResolve`;async execute(e){e.config=await a.n(`docs`,e.root),T(e.config,e.root),e.viteConfig=await $(e.root,`production`,e.config,e.turbo)}};function D(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 ee=class{name=`RouteGenerate`;async execute(e){if(!e.config)throw Error(`Config not resolved. Run ConfigResolve first.`);let t=l.default.resolve(e.root,`docs`),n=e.viteConfig?.base||e.config.base||`/docs`;e.routes=[...await r.t(t,e.config,n,!1,e.turbo)],e.ssgRoutes=D(e.routes)}};const te=d.z.object({title:d.z.string().optional(),description:d.z.string().optional(),canonical:d.z.string().url().optional(),robots:d.z.string().optional(),noindex:d.z.boolean().optional(),"og:title":d.z.string().optional(),"og:description":d.z.string().optional(),"og:image":d.z.string().optional(),"og:type":d.z.string().optional(),"og:url":d.z.string().url().optional()});var ne=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??void 0,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`]=String(n.title)),!c[`og:description`]&&n.description&&(c[`og:description`]=String(n.description));let l=te.safeParse(c);return l.success||(0,f.warn)(`[SEOValidate] Validation issues on route "${n.path}": ${l.error.message}`),n.title||(0,f.warn)(`[SEOValidate] Route "${n.path}" is missing a title.`),{...n,seo:c}}),e.ssgRoutes=D(e.routes)}},re=class{name=`TypeGenerate`;async execute(e){if(!e.config||!e.routes)throw Error(`Config or Routes not initialized.`);let t=l.default.resolve(e.root,`docs`),n=e.routes.map(e=>e.path),r=(e.config.base||`/docs`).replace(/\/$/,``);n.includes(r)||n.push(r);let a=i.t(t,e.config);for(let e of a)n.includes(e)||n.push(e);o.t(e.config,t,e.root,n),o.r(n)}},ie=class{name=`SSGBuild`;async execute(e){if(!e.routes||!e.viteConfig)throw Error(`Routes or ViteConfig not initialized.`);let t={};for(let n of e.routes)if(n.path&&n.componentPath){t[n.path]=n.componentPath;let e=n.path.replace(/\/$/,``);t[e]=n.componentPath}let n=[];await(0,h.build)({entry:`boltdocs/entry`,routeToSourceFileMap:t,cacheDir:l.default.resolve(e.root,`.boltdocs/build`),turbo:e.turbo,onStep:e=>{n.push(e)}},e.viteConfig),e.ssgSubSteps=n,e.outDir=e.viteConfig.build?.outDir||`dist`}};function ae(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 oe(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 se=class{name=`SEOWrite`;async execute(e){if(!e.ssgRoutes||!e.config||!e.outDir)throw Error(`SSG Routes, Config, or OutDir not initialized.`);let t=ae(e.ssgRoutes,e.config),n=l.default.resolve(e.root,e.outDir);t&&u.default.writeFileSync(l.default.join(n,`sitemap.xml`),t,`utf-8`);let r=oe(e.config);u.default.writeFileSync(l.default.join(n,`robots.txt`),r,`utf-8`)}};function ce(){return new O().addStep(new E).addStep(new ee).addParallelSteps([new ne,new re]).addStep(new ie).addStep(new se)}var O=class{steps=[];addStep(e){return this.steps.push(e),this}addParallelSteps(e){return this.steps.push(e),this}async run(e){let t=[],n=performance.now(),r={...e,timing:{}};for(let e of this.steps){let i=Array.isArray(e),a=i?e:[e],o=performance.now();try{i?await Promise.all(a.map(e=>e.execute(r))):await a[0].execute(r);let e=performance.now()-o;for(let n of a){let i=r.stepDetails?.[n.name];t.push({name:n.name,duration:e,success:!0,details:i}),r.timing[n.name]=e}if(r.ssgSubSteps){for(let e of r.ssgSubSteps)t.push(e);delete r.ssgSubSteps}}catch(e){let i=performance.now()-o,s=a.find(e=>!t.some(t=>t.name===e.name&&t.success))?.name||a.map(e=>e.name).join(` | `);t.push({name:s,duration:i,success:!1,error:e instanceof Error?e:Error(String(e))});for(let e of t.filter(e=>e.success).reverse()){let t=this.steps.flat().find(t=>t.name===e.name);if(t?.rollback)try{await t.rollback(r)}catch(t){console.error(`[pipeline] rollback failed for step "${e.name}":`,t)}}let c=performance.now()-n;return{success:!1,failedStep:s,error:e instanceof Error?e:Error(String(e)),timing:{total:c,steps:r.timing},stepResults:t}}}return{success:!0,timing:{total:performance.now()-n,steps:r.timing},stepResults:t}}};let k=0;const A=`virtual:boltdocs-`,j=new Map,M=new Map,N=[];function le(){return new Date}function P(){return{transform(e){let t=new n.TransformCache(`plugin:${e}`);return{async get(e){return t.getAsync(e)},set(e,n){t.set(e,n)},async flush(){await t.flush()}}},routes:ue(),memory(e,t){let n=`${e}:`,r=t?.ttl,i=t?.max??100,a=new Map;function o(e){return e.expiresAt!==null&&e.expiresAt<=Date.now()}return{get(e){let t=a.get(n+e);if(t){if(o(t)){a.delete(n+e);return}return t.value}},set(e,t){let o=n+e;if(!a.has(o)&&a.size>=i){let e=a.keys().next().value;e!==void 0&&a.delete(e)}a.set(o,{value:t,expiresAt:r===void 0?null:Date.now()+r})},has(e){let t=a.get(n+e);return t?o(t)?(a.delete(n+e),!1):!0:!1}}}}}function ue(){return{get(e){return r.i.get(e)?.route??null},set(e,t){r.i.set(e,{route:t})},invalidate(e){r.i.invalidate(e)},invalidateAll(){r.i.invalidateAll()}}}function F(e){return{report(t,n,r,i){let a={id:++k,severity:t,code:n,message:r,pluginName:e,filePath:i?.filePath,routePath:i?.routePath,time:le()};if(N.push(a),N.length>256){let e=N.length-256;N.splice(0,e)}},list(){return Object.freeze([...N])},clear(){N.length=0}}}function I(e,t){return{resolveDocs(...t){return L(e,...t)},resolveAsset(...e){return L(t,...e)},safeFileURL(e){return`file://${l.default.resolve(e).replace(/\\/g,`/`)}`}}}function L(e,...n){let r=l.default.resolve(e),i=l.default.resolve(r,...n),a=l.default.relative(r,i);if(a.startsWith(`..`)||l.default.isAbsolute(a))throw Error(`[boltdocs/plugin-context] Path '${n.join(`/`)}' resolves to '${i}' which is outside the workspace boundary '${r}'.`);return t.u(i)}function R(){return{add(e,t,n){if(j.has(e))throw Error(`[boltdocs] Virtual module '${e}' is already registered. Pick a unique id (e.g. prefix it with your plugin name) so two plugins do not collide.`);if(e.startsWith(A))throw Error(`[boltdocs] Virtual module id '${e}' starts with the reserved prefix '${A}'. Use your own plugin namespace (e.g. 'virtual:my-plugin/...').`);j.set(e,{id:e,eager:n?.eager??!1,loader:t})},has(e){return j.has(e)},list(){return Object.freeze([...j.values()])}}}function z(){j.clear()}function B(){function e(e){return U.has(e)||U.set(e,new Set),U.get(e)}return{onFileEvent(t,n){e(t).add(n)},onFileAdd(t){e(`add`).add(t)},onFileChange(t){e(`change`).add(t)},onFileUnlink(t){e(`unlink`).add(t)},send(e,t){W?.(`boltdocs:plugin:${e}`,t)}}}async function V(e,t){let n=U.get(e);if(n)for(let e of n)await e(t)}let H=0;const U=new Map;let W=null;function de(e){W=e}const G=[],K=[],fe=[];function q(e){for(let t of G)e.middlewares.use(t)}async function pe(){for(let e of K)await e()}function J(){return{use(e){G.push(e)},useAt(e,t){G.push((n,r,i)=>{if(n.url?.startsWith(e))return t(n,r,i);i()})},onStart(e){K.push(e)},onEnd(e){fe.push(e)}}}function Y(){return{add(e){let t=e.name??`_unnamed_${H++}`;if(M.has(t))throw Error(`[boltdocs] Middleware '${e.name??`<unnamed>`}' is already registered.`);M.set(t,e)},remove(e){M.delete(e)},has(e){return M.has(e)},list(){return Object.freeze([...M.values()])}}}var X=class{plugins;config;store;docsDir;rootDir;routes;outDir;constructor(e,t,n,r,i,a){this.plugins=e,this.config=t,this.store=new S,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 O;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);if(a!==void 0){let e=a.__signal;if(e===`break`)break;if(e===`skip`){r=a;break}r=a}}catch(r){let i=new x(t.name,e,r instanceof Error?r:Error(String(r)));n.logger.error(i),n.diagnostics.report(`error`,`PLUGIN_HOOK_ERROR`,i.message)}}return r}async runMiddlewareChain(e,t){let n=this.plugins.flatMap(e=>e.middleware??[]),r=[...M.values()],i=[...n,...r],a=[...i.filter(e=>e.enforce===`pre`),...i.filter(e=>!e.enforce),...i.filter(e=>e.enforce===`post`)],o=t;for(let t of a){let n=t[e];if(!n)continue;let r=this.createGenericContext();try{let e=await n(r,o);if(e!==void 0){let t=e.__signal;if(t===`break`)break;if(t===`skip`){o=e;break}o=e}}catch(e){let n=t.name??`<unnamed>`;r.diagnostics.report(`error`,`MIDDLEWARE_ERROR`,`Middleware '${n}' threw: ${e instanceof Error?e.message:String(e)}`)}}return o}getSortedPlugins(){let e=this.plugins.filter(e=>e.enforce===`pre`),t=this.plugins.filter(e=>!e.enforce),n=this.plugins.filter(e=>e.enforce===`post`);return[...e,...t,...n]}createStep(e,t,n){return{name:`${e.name}:${String(t)}`,execute:async()=>{let r=this.createContext(e);try{let i=e.hooks[t];await i(r,...n)}catch(n){let i=new x(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),caches:P(),diagnostics:F(e.name),paths:I(this.docsDir,this.rootDir),virtualModules:R(),middleware:Y(),hmr:B(),server:J()}}createGenericContext(){let e=`<middleware>`;return{config:Object.freeze({...this.config}),docsDir:this.docsDir,rootDir:this.rootDir,outDir:this.outDir,routes:this.routes,meta:{name:e},store:{get:(e,t)=>this.store.get(e,t),set:(e,t,n)=>this.store.set(e,t,n),has:(e,t)=>this.store.has(e,t)},logger:this.createLogger(e),caches:P(),diagnostics:F(e),paths:I(this.docsDir,this.rootDir),virtualModules:R(),middleware:Y(),hmr:B(),server:J()}}createLogger(e){let t=`[plugin:${e}]`;return{info:e=>f.info(`${t} ${e}`),warn:e=>f.warn(`${t} ${e}`),error:e=>{f.error(`${t} ${e instanceof Error?e.message:e}`)},debug:e=>f.debug(`${t} ${e}`)}}};function Z(e){return e}var me=e.t({BoltdocsPluginStore:()=>S,PluginCompatibilityError:()=>b,PluginError:()=>v,PluginHookError:()=>x,PluginLifecycleManager:()=>X,PluginValidationError:()=>y,createPlugin:()=>Z,createViteConfig:()=>$,default:()=>Q,defineConfig:()=>a.a,flushCache:()=>n.flushCache,generateEntryCode:()=>_,generateRoutes:()=>r.t,handleAwsFeedback:()=>c.t,handleFeedback:()=>s.t,handleNetlifyFeedback:()=>c.r,handleVercelFeedback:()=>c.i,handleWebFeedback:()=>c.n,invalidateRouteCache:()=>r.r,normalizePath:()=>t.u,resolveConfig:()=>a.n,sanitizeFilename:()=>t.f,validatePlugins:()=>w});async function Q(e){let{resolveConfig:t}=await Promise.resolve().then(()=>require(`./config-CMd4XoFq.cjs`)),{generateRoutes:n,getExternalRoutePaths:r}=await Promise.resolve().then(()=>require(`./routes-CORVxc02.cjs`)),{generateProjectTypes:i,writeLinkTree:a}=await Promise.resolve().then(()=>require(`./types-generator-BXhv7Ill.cjs`)).then(e=>e.n),{boltdocsPlugin:o}=await Promise.resolve().then(()=>require(`./plugin-DM3u2bVj.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 $(e,t=`development`,n,r){let i=r||process.env.BOLTDOCS_TURBO===`true`,[a,o,{boltdocsPlugin:s,getExternalAbsolutePaths:c},{SECURITY_HEADERS:u},{getCSPHeader:d},{resolveConfig:f},{generateRoutes:p,getExternalRoutePaths:m},{generateProjectTypes:h,writeLinkTree:_},{normalizePath:v}]=await Promise.all([import(`@vitejs/plugin-react`),import(`@tailwindcss/vite`),Promise.resolve().then(()=>require(`./plugin-DM3u2bVj.cjs`)),Promise.resolve().then(()=>require(`./headers-dg4SDrjY.cjs`)).then(e=>e.n),Promise.resolve().then(()=>require(`./csp-CRp_3U7a.cjs`)).then(e=>e.t),Promise.resolve().then(()=>require(`./config-CMd4XoFq.cjs`)),Promise.resolve().then(()=>require(`./routes-CORVxc02.cjs`)),Promise.resolve().then(()=>require(`./types-generator-BXhv7Ill.cjs`)).then(e=>e.n),import(`vite`).then(e=>({normalizePath:e.normalizePath}))]),y=a.default,b=o.default,x=n||await f(`docs`,e),S=(await p(`docs`,x,void 0,!1,i)).map(e=>e.path),C=(x.base||`/docs`).replace(/\/$/,``);S.includes(C)||S.push(C);let w=m(`docs`,x);for(let e of w)S.includes(e)||S.push(e);h(x,`docs`,e,S),_(S);let T=t===`production`,E=T?{...u}:{};return x.security?.enableCSP&&(E[`Content-Security-Policy`]=d(x)),{root:e,mode:t,oxc:{jsx:{development:!T,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:[g(),y(),b(),...s({docsDir:`docs`,root:e,turbo:i},x)],resolve:{alias:[{find:`boltdocs/entry`,replacement:v(l.default.resolve(e,`boltdocs-entry.tsx`))},{find:`boltdocs/client`,replacement:v(l.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:v(l.default.resolve(e,`../packages/core/src`))}],dedupe:[`react`,`react-dom`,`react-router-dom`]},ssr:{external:[`react`,`react-dom`,`react-helmet-async`,`react-router-dom`,`@bdocs/ssg`,`jsdom`,...c()],optimizeDeps:{include:[`react`,`react-dom`,`react-fast-compare`,...x.vite?.ssr?.optimizeDeps?.include??[]]},noExternal:[]},server:{watch:{ignored:[`**/.boltdocs/**`,...x.vite?.server?.watch?.ignored??[]]},headers:{...E,...x.vite?.server?.headers},...x.vite?.server},preview:{headers:{...E,...x.vite?.preview?.headers},...x.vite?.preview},...x.vite??{}}}Object.defineProperty(exports,`_`,{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return X}}),Object.defineProperty(exports,`b`,{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return V}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return ce}}),Object.defineProperty(exports,`g`,{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,`h`,{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return Z}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return pe}}),Object.defineProperty(exports,`m`,{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return $}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return q}}),Object.defineProperty(exports,`p`,{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return me}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return z}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return Q}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return de}}),Object.defineProperty(exports,`v`,{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,`x`,{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,`y`,{enumerable:!0,get:function(){return x}});
@@ -1,104 +0,0 @@
1
- /**
2
- * Boltdocs - https://boltdocs.vercel.app
3
- * Copyright (c) 2026 Jesus Alcala
4
- * Licensed under the MIT License.
5
- */
6
- import"./chunk-BFSpntXv.mjs";import{r as e,u as t}from"./utils-Crm9oPcV.mjs";import{TransformCache as n}from"./node/cache.mjs";import{a as r,t as i}from"./routes-BW6zsk7Z.mjs";import{t as a}from"./pages-external-BYa4JSda.mjs";import{i as o,r as s}from"./config-CCXp3aXO.mjs";import{r as c,t as l}from"./types-generator-bDPvUztF.mjs";import"./handler-DzQae4eA.mjs";import"./adapters-ByYY44Zy.mjs";import{createRequire as u}from"node:module";import d from"node:path";import f from"node:fs";import{z as p}from"zod";import*as m from"@bdocs/dui";import{colors as h,warn as g}from"@bdocs/dui";import _ from"semver";import{build as v}from"@bdocs/ssg/node";function ee(){return{name:`boltdocs-ssr-dirname-polyfill`,config:(e,{isSsrBuild:t})=>t?{define:{__dirname:`import.meta.dirname`}}:{}}}function y(e,n){let r=d.resolve(process.cwd(),`index.css`),i=f.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=d.basename(e.docsDir||`docs`),l=d.resolve(process.cwd(),e.docsDir||`docs`),u=[`tsx`,`ts`,`jsx`,`js`].map(e=>d.resolve(l,`pages-external/index.${e}`)).find(e=>f.existsSync(e)),p=u?`import * as _external_module from '${t(u)}';`:``,m=u?`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 b=class extends Error{name=this.constructor.name;constructor(e,t,n){super(`[plugin:${e}] ${t}`,n),this.pluginName=e}},x=class extends b{constructor(e,t){super(e,`Validation failed: ${t}`)}},S=class extends b{constructor(e,t){super(e,`Compatibility error: ${t}`)}},C=class extends b{constructor(e,t,n){super(e,`Error in hook '${t}': ${n.message}`,{cause:n}),this.hookName=t}},w=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 T=o.extend({version:p.string().optional(),boltdocsVersion:p.string().optional(),hooks:p.object({beforeBuild:p.function().optional(),afterBuild:p.function().optional(),beforeDev:p.function().optional(),afterDev:p.function().optional(),buildEnd:p.function().optional(),transformSource:p.function().optional(),transformMdx:p.function().optional(),transformHtml:p.function().optional()}).optional()});function te(e,t){let n=[],r=new Set;for(let i of e){let e=T.safeParse(i);if(!e.success)throw new x(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 x(a.name,`Duplicate plugin name detected`);if(r.add(a.name),a.boltdocsVersion&&!_.satisfies(t,a.boltdocsVersion))throw new S(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 x(a.name,`Component '${e}' has an invalid path: traversal sequences are not allowed.`);if(d.isAbsolute(t))throw new x(a.name,`Component '${e}' has an invalid path: absolute paths are not allowed.`)}n.push(a)}return n}function E(e,t=process.cwd()){let n=e.plugins||[];for(let e of n)if(e.name)try{let n=null;try{n=u(d.resolve(t,`package.json`)).resolve(`${e.name}/package.json`)}catch{let r=d.resolve(t,`node_modules`,e.name,`package.json`);f.existsSync(r)&&(n=r)}if(n&&f.existsSync(n)){let t=JSON.parse(f.readFileSync(n,`utf-8`)).scripts||{};(t.preinstall||t.postinstall||t.install)&&g(`💡 ${h.yellow(h.bold(`Nota de seguridad:`))} El plugin ${h.cyan(e.name)} ejecuta scripts nativos al instalarse. Corre ${h.bold(`boltdocs audit`)} para un análisis detallado.`)}}catch{}}var ne=class{name=`ConfigResolve`;async execute(e){e.config=await s(`docs`,e.root),E(e.config,e.root),e.viteConfig=await $(e.root,`production`,e.config,e.turbo)}};function D(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 re=class{name=`RouteGenerate`;async execute(e){if(!e.config)throw Error(`Config not resolved. Run ConfigResolve first.`);let t=d.resolve(e.root,`docs`),n=e.viteConfig?.base||e.config.base||`/docs`;e.routes=[...await i(t,e.config,n,!1,e.turbo)],e.ssgRoutes=D(e.routes)}};const ie=p.object({title:p.string().optional(),description:p.string().optional(),canonical:p.string().url().optional(),robots:p.string().optional(),noindex:p.boolean().optional(),"og:title":p.string().optional(),"og:description":p.string().optional(),"og:image":p.string().optional(),"og:type":p.string().optional(),"og:url":p.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??void 0,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`]=String(n.title)),!c[`og:description`]&&n.description&&(c[`og:description`]=String(n.description));let l=ie.safeParse(c);return l.success||g(`[SEOValidate] Validation issues on route "${n.path}": ${l.error.message}`),n.title||g(`[SEOValidate] Route "${n.path}" is missing a title.`),{...n,seo:c}}),e.ssgRoutes=D(e.routes)}},k=class{name=`TypeGenerate`;async execute(e){if(!e.config||!e.routes)throw Error(`Config or Routes not initialized.`);let t=d.resolve(e.root,`docs`),n=e.routes.map(e=>e.path),r=(e.config.base||`/docs`).replace(/\/$/,``);n.includes(r)||n.push(r);let i=a(t,e.config);for(let e of i)n.includes(e)||n.push(e);l(e.config,t,e.root,n),c(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}let n=[];await v({entry:`boltdocs/entry`,routeToSourceFileMap:t,cacheDir:d.resolve(e.root,`.boltdocs/build`),turbo:e.turbo,onStep:e=>{n.push(e)}},e.viteConfig),e.ssgSubSteps=n,e.outDir=e.viteConfig.build?.outDir||`dist`}};function j(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 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 ae=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=d.resolve(e.root,e.outDir);t&&f.writeFileSync(d.join(n,`sitemap.xml`),t,`utf-8`);let r=M(e.config);f.writeFileSync(d.join(n,`robots.txt`),r,`utf-8`)}};function oe(){return new N().addStep(new ne).addStep(new re).addParallelSteps([new O,new k]).addStep(new A).addStep(new ae)}var N=class{steps=[];addStep(e){return this.steps.push(e),this}addParallelSteps(e){return this.steps.push(e),this}async run(e){let t=[],n=performance.now(),r={...e,timing:{}};for(let e of this.steps){let i=Array.isArray(e),a=i?e:[e],o=performance.now();try{i?await Promise.all(a.map(e=>e.execute(r))):await a[0].execute(r);let e=performance.now()-o;for(let n of a){let i=r.stepDetails?.[n.name];t.push({name:n.name,duration:e,success:!0,details:i}),r.timing[n.name]=e}if(r.ssgSubSteps){for(let e of r.ssgSubSteps)t.push(e);delete r.ssgSubSteps}}catch(e){let i=performance.now()-o,s=a.find(e=>!t.some(t=>t.name===e.name&&t.success))?.name||a.map(e=>e.name).join(` | `);t.push({name:s,duration:i,success:!1,error:e instanceof Error?e:Error(String(e))});for(let e of t.filter(e=>e.success).reverse()){let t=this.steps.flat().find(t=>t.name===e.name);if(t?.rollback)try{await t.rollback(r)}catch(t){console.error(`[pipeline] rollback failed for step "${e.name}":`,t)}}let c=performance.now()-n;return{success:!1,failedStep:s,error:e instanceof Error?e:Error(String(e)),timing:{total:c,steps:r.timing},stepResults:t}}}return{success:!0,timing:{total:performance.now()-n,steps:r.timing},stepResults:t}}};let se=0;const P=`virtual:boltdocs-`,F=new Map,I=new Map,L=[];function ce(){return new Date}function R(){return{transform(e){let t=new n(`plugin:${e}`);return{async get(e){return t.getAsync(e)},set(e,n){t.set(e,n)},async flush(){await t.flush()}}},routes:z(),memory(e,t){let n=`${e}:`,r=t?.ttl,i=t?.max??100,a=new Map;function o(e){return e.expiresAt!==null&&e.expiresAt<=Date.now()}return{get(e){let t=a.get(n+e);if(t){if(o(t)){a.delete(n+e);return}return t.value}},set(e,t){let o=n+e;if(!a.has(o)&&a.size>=i){let e=a.keys().next().value;e!==void 0&&a.delete(e)}a.set(o,{value:t,expiresAt:r===void 0?null:Date.now()+r})},has(e){let t=a.get(n+e);return t?o(t)?(a.delete(n+e),!1):!0:!1}}}}}function z(){return{get(e){return r.get(e)?.route??null},set(e,t){r.set(e,{route:t})},invalidate(e){r.invalidate(e)},invalidateAll(){r.invalidateAll()}}}function B(e){return{report(t,n,r,i){let a={id:++se,severity:t,code:n,message:r,pluginName:e,filePath:i?.filePath,routePath:i?.routePath,time:ce()};if(L.push(a),L.length>256){let e=L.length-256;L.splice(0,e)}},list(){return Object.freeze([...L])},clear(){L.length=0}}}function V(e,t){return{resolveDocs(...t){return H(e,...t)},resolveAsset(...e){return H(t,...e)},safeFileURL(e){return`file://${d.resolve(e).replace(/\\/g,`/`)}`}}}function H(e,...n){let r=d.resolve(e),i=d.resolve(r,...n),a=d.relative(r,i);if(a.startsWith(`..`)||d.isAbsolute(a))throw Error(`[boltdocs/plugin-context] Path '${n.join(`/`)}' resolves to '${i}' which is outside the workspace boundary '${r}'.`);return t(i)}function U(){return{add(e,t,n){if(F.has(e))throw Error(`[boltdocs] Virtual module '${e}' is already registered. Pick a unique id (e.g. prefix it with your plugin name) so two plugins do not collide.`);if(e.startsWith(P))throw Error(`[boltdocs] Virtual module id '${e}' starts with the reserved prefix '${P}'. Use your own plugin namespace (e.g. 'virtual:my-plugin/...').`);F.set(e,{id:e,eager:n?.eager??!1,loader:t})},has(e){return F.has(e)},list(){return Object.freeze([...F.values()])}}}function W(){F.clear()}function G(){function e(e){return K.has(e)||K.set(e,new Set),K.get(e)}return{onFileEvent(t,n){e(t).add(n)},onFileAdd(t){e(`add`).add(t)},onFileChange(t){e(`change`).add(t)},onFileUnlink(t){e(`unlink`).add(t)},send(e,t){q?.(`boltdocs:plugin:${e}`,t)}}}async function le(e,t){let n=K.get(e);if(n)for(let e of n)await e(t)}let ue=0;const K=new Map;let q=null;function de(e){q=e}const J=[],Y=[],fe=[];function X(e){for(let t of J)e.middlewares.use(t)}async function pe(){for(let e of Y)await e()}function Z(){return{use(e){J.push(e)},useAt(e,t){J.push((n,r,i)=>{if(n.url?.startsWith(e))return t(n,r,i);i()})},onStart(e){Y.push(e)},onEnd(e){fe.push(e)}}}function Q(){return{add(e){let t=e.name??`_unnamed_${ue++}`;if(I.has(t))throw Error(`[boltdocs] Middleware '${e.name??`<unnamed>`}' is already registered.`);I.set(t,e)},remove(e){I.delete(e)},has(e){return I.has(e)},list(){return Object.freeze([...I.values()])}}}var me=class{plugins;config;store;docsDir;rootDir;routes;outDir;constructor(e,t,n,r,i,a){this.plugins=e,this.config=t,this.store=new w,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 N;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);if(a!==void 0){let e=a.__signal;if(e===`break`)break;if(e===`skip`){r=a;break}r=a}}catch(r){let i=new C(t.name,e,r instanceof Error?r:Error(String(r)));n.logger.error(i),n.diagnostics.report(`error`,`PLUGIN_HOOK_ERROR`,i.message)}}return r}async runMiddlewareChain(e,t){let n=this.plugins.flatMap(e=>e.middleware??[]),r=[...I.values()],i=[...n,...r],a=[...i.filter(e=>e.enforce===`pre`),...i.filter(e=>!e.enforce),...i.filter(e=>e.enforce===`post`)],o=t;for(let t of a){let n=t[e];if(!n)continue;let r=this.createGenericContext();try{let e=await n(r,o);if(e!==void 0){let t=e.__signal;if(t===`break`)break;if(t===`skip`){o=e;break}o=e}}catch(e){let n=t.name??`<unnamed>`;r.diagnostics.report(`error`,`MIDDLEWARE_ERROR`,`Middleware '${n}' threw: ${e instanceof Error?e.message:String(e)}`)}}return o}getSortedPlugins(){let e=this.plugins.filter(e=>e.enforce===`pre`),t=this.plugins.filter(e=>!e.enforce),n=this.plugins.filter(e=>e.enforce===`post`);return[...e,...t,...n]}createStep(e,t,n){return{name:`${e.name}:${String(t)}`,execute:async()=>{let r=this.createContext(e);try{let i=e.hooks[t];await i(r,...n)}catch(n){let i=new C(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),caches:R(),diagnostics:B(e.name),paths:V(this.docsDir,this.rootDir),virtualModules:U(),middleware:Q(),hmr:G(),server:Z()}}createGenericContext(){let e=`<middleware>`;return{config:Object.freeze({...this.config}),docsDir:this.docsDir,rootDir:this.rootDir,outDir:this.outDir,routes:this.routes,meta:{name:e},store:{get:(e,t)=>this.store.get(e,t),set:(e,t,n)=>this.store.set(e,t,n),has:(e,t)=>this.store.has(e,t)},logger:this.createLogger(e),caches:R(),diagnostics:B(e),paths:V(this.docsDir,this.rootDir),virtualModules:U(),middleware:Q(),hmr:G(),server:Z()}}createLogger(e){let t=`[plugin:${e}]`;return{info:e=>m.info(`${t} ${e}`),warn:e=>m.warn(`${t} ${e}`),error:e=>{m.error(`${t} ${e instanceof Error?e.message:e}`)},debug:e=>m.debug(`${t} ${e}`)}}};function he(e){return e}async function ge(e){let{resolveConfig:t}=await import(`./config-CCXp3aXO.mjs`).then(e=>e.n),{generateRoutes:n,getExternalRoutePaths:r}=await import(`./routes-BW6zsk7Z.mjs`).then(e=>e.i),{generateProjectTypes:i,writeLinkTree:a}=await import(`./types-generator-bDPvUztF.mjs`).then(e=>e.n),{boltdocsPlugin:o}=await import(`./plugin-C95kvu6h.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:u},{resolveConfig:f},{generateRoutes:p,getExternalRoutePaths:m},{generateProjectTypes:h,writeLinkTree:g},{normalizePath:_}]=await Promise.all([import(`@vitejs/plugin-react`),import(`@tailwindcss/vite`),import(`./plugin-C95kvu6h.mjs`),import(`./headers-Ddwek8K7.mjs`).then(e=>e.n),import(`./csp-oTC2ygvF.mjs`).then(e=>e.t),import(`./config-CCXp3aXO.mjs`).then(e=>e.n),import(`./routes-BW6zsk7Z.mjs`).then(e=>e.i),import(`./types-generator-bDPvUztF.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`]=u(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:[ee(),v(),y(),...s({docsDir:`docs`,root:e,turbo:i},b)],resolve:{alias:[{find:`boltdocs/entry`,replacement:_(d.resolve(e,`boltdocs-entry.tsx`))},{find:`boltdocs/client`,replacement:_(d.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:_(d.resolve(e,`../packages/core/src`))}],dedupe:[`react`,`react-dom`,`react-router-dom`]},ssr:{external:[`react`,`react-dom`,`react-helmet-async`,`react-router-dom`,`@bdocs/ssg`,`jsdom`,...c()],optimizeDeps:{include:[`react`,`react-dom`,`react-fast-compare`,...b.vite?.ssr?.optimizeDeps?.include??[]]},noExternal:[]},server:{watch:{ignored:[`**/.boltdocs/**`,...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{b as _,X as a,y as b,pe as c,oe as d,D as f,S as g,w as h,me as i,de as l,te as m,$ as n,W as o,E as p,he as r,le as s,ge as t,F as u,C as v,x as y};
@@ -1,6 +0,0 @@
1
- /**
2
- * Boltdocs - https://boltdocs.vercel.app
3
- * Copyright (c) 2026 Jesus Alcala
4
- * Licensed under the MIT License.
5
- */
6
- const e=require(`./chunk-D1Md3oWO.cjs`);let t=require(`node:fs`);t=e.r(t);let n=require(`node:crypto`);n=e.r(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||(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]);let c=t.properties??{};for(let[e,t]of Object.entries(c))e===`class`||e===`className`||(a[e]=t);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(typeof e==`object`&&`name`in e&&[`paragraph`,`heading`,`thematicBreak`,`blockquote`,`list`,`listItem`,`html`,`code`,`definition`,`text`,`emphasis`,`strong`,`inlineCode`,`break`,`link`,`image`].some(t=>t in e&&typeof e[t]==`function`))return e;let t;try{t=typeof e==`function`?e():null}catch{t=null}return typeof t==`function`?f(t):typeof e==`function`?f(e):(console.warn(`[satteri] Cannot convert remark plugin "${e?.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):null}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&&[`root`,`element`,`text`,`comment`,`doctype`,`script`,`style`,`template`].some(t=>{let n=e[t];return typeof n==`function`||typeof n==`object`&&!!n&&`visit`in n}))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 "${(typeof t==`object`&&t?t:null)?.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??[]){let e=r;if(e.remarkPlugins)for(let n of e.remarkPlugins)if(Array.isArray(n)){let[r,i]=n;if(e.name===`boltdocs-plugin-mermaid`){let e=p(r,i,`Mermaid`,`mermaid`);e&&t.push(e)}else{let e=d(r);e&&t.push(e)}}else{let e=d(n);e&&t.push(e)}if(e.rehypePlugins)for(let t of e.rehypePlugins)if(Array.isArray(t)){let e=m(t[0]);e&&n.push(e)}else{let e=m(t);e&&n.push(e)}}return{remarkPlugins:t,rehypePlugins:n}}var _=class{mdastPlugins;hastPlugins;cache;cacheReady=!1;fallbackCompiler=null;fallbackPromise=null;constructor(e,t){this.mdastPlugins=e,this.hastPlugins=t}async ensureCache(){return this.cacheReady||=(this.cache=new(await(import(`boltdocs/node/cache`))).TransformCache(`mdx`),!0),this.cache}async getCache(){return this.ensureCache()}async ensureFallback(){return this.fallbackCompiler?this.fallbackCompiler:this.fallbackPromise?this.fallbackPromise:(this.fallbackPromise=this.loadFallback(),this.fallbackCompiler=await this.fallbackPromise,this.fallbackCompiler)}async loadFallback(){try{let e=await import(`@mdx-js/rollup`),[t,n,r]=await Promise.all([import(`remark-gfm`).then(e=>e.default),import(`remark-frontmatter`).then(e=>e.default),import(`rehype-slug`).then(e=>e.default)]);return e.default({jsxRuntime:`automatic`,jsxImportSource:`react`,remarkPlugins:[t,n],rehypePlugins:[r]})}catch{return null}}async satteriCompile(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 this.getCache()).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:[...this.mdastPlugins],hastPlugins:[...this.hastPlugins],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 this.getCache()).set(a,n)}catch{}return n}catch{return null}}async fallbackCompile(e,t){let n=await this.ensureFallback();if(!n)return null;try{let r=await n.transform(e,t);if(r?.code)return r.code}catch{}return null}async compile(e,t){return await this.satteriCompile(e,t)||this.fallbackCompile(e,t)}async flushCache(){this.cache&&(this.cache.save(),await this.cache.flush())}};function v(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`)}function b(e,n){let r=x(),i=r.mdastPlugins??[],a=r.hastPlugins??[],{remarkPlugins:o,rehypePlugins:s}=g(e),c=new _([...i,...o],[...a,...s]);return{name:`vite-plugin-boltdocs-satteri-mdx`,enforce:`pre`,async load(e){if(!v(e))return null;let[r]=e.split(`?`),i;try{i=t.default.readFileSync(r,`utf-8`)}catch{return null}let a=n?.(),o=i;if(a)try{let e=await a.runChain(`transformSource`,{code:i,filePath:r});e?.code&&(o=e.code)}catch{}return await c.compile(o,r)??o},async transform(e,t){if(!v(t))return null;let r=e;if(!y(r)){let e=await c.compile(r,t.split(`?`)[0]);e&&(r=e)}let i=r,a=n?.();if(a)try{let e=await a.runChain(`transformMdx`,{code:r,filePath:t.split(`?`)[0]});e?.code&&(i=e.code)}catch{}return{code:i,map:null}},async buildEnd(){await c.flushCache()}}}function x(){return{name:`boltdocs-processor-satteri`,version:`0.1.0`,boltdocsVersion:`>=3.0.0`,mdastPlugins:[a()],hastPlugins:[s(),u()]}}exports.createSatteriMdxPlugin=b;
@@ -1,6 +0,0 @@
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:path";import t from"node:fs";function n(n,r){let i=[`tsx`,`ts`,`jsx`,`js`],a=e.resolve(n,`pages-external`),o=i.map(t=>e.resolve(a,`index.${t}`)).find(e=>t.existsSync(e));if(!o)return[];let s=t.readFileSync(o,`utf-8`).match(/export\s+const\s+pages\s*=\s*\{([\s\S]*?)\}\s*(?:;|$)/);if(!s)return[];let c=[],l=/(['"])(.+?)\1\s*:/g,u;for(;(u=l.exec(s[1]))!==null;){let e=u[2],t=e.startsWith(`/`)?e:`/${e}`;if(c.push(t),r?.i18n){let e=Object.keys(r.i18n.locales);for(let n of e){let e=t===`/`?`/${n}`:`/${n}${t}`;c.includes(e)||c.push(e)}}}return c}export{n as t};
@@ -1,6 +0,0 @@
1
- /**
2
- * Boltdocs - https://boltdocs.vercel.app
3
- * Copyright (c) 2026 Jesus Alcala
4
- * Licensed under the MIT License.
5
- */
6
- const e=require(`./chunk-D1Md3oWO.cjs`);let t=require(`node:path`);t=e.r(t);let n=require(`node:fs`);n=e.r(n);function r(e,r){let i=[`tsx`,`ts`,`jsx`,`js`],a=t.default.resolve(e,`pages-external`),o=i.map(e=>t.default.resolve(a,`index.${e}`)).find(e=>n.default.existsSync(e));if(!o)return[];let s=n.default.readFileSync(o,`utf-8`).match(/export\s+const\s+pages\s*=\s*\{([\s\S]*?)\}\s*(?:;|$)/);if(!s)return[];let c=[],l=/(['"])(.+?)\1\s*:/g,u;for(;(u=l.exec(s[1]))!==null;){let e=u[2],t=e.startsWith(`/`)?e:`/${e}`;if(c.push(t),r?.i18n){let e=Object.keys(r.i18n.locales);for(let n of e){let e=t===`/`?`/${n}`:`/${n}${t}`;c.includes(e)||c.push(e)}}}return c}Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return r}});
@@ -1,8 +0,0 @@
1
- /**
2
- * Boltdocs - https://boltdocs.vercel.app
3
- * Copyright (c) 2026 Jesus Alcala
4
- * Licensed under the MIT License.
5
- */
6
- const e=require(`./chunk-D1Md3oWO.cjs`),t=require(`./utils-D6Xtj0FZ.cjs`),n=require(`./errors-vKw8CkiX.cjs`),r=require(`./cache-CO4Dy2uQ.cjs`);let i=require(`node:path`);i=e.r(i);let a=require(`github-slugger`);a=e.r(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}}function v(e,n){if(e.groupPosition!==void 0)return e.groupPosition;if(e.sidebarPosition!==void 0)return e.sidebarPosition;if(n.remainingParts.length<=1)return;let r=t.i(n.remainingParts[n.remainingParts.length-2]);return r===void 0?void 0:Number(r)}async function y(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=b(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 y=i.default.relative(h,m).replace(/\\/g,`/`);if(y.startsWith(`../`)||y!==`.`&&!t.v.test(y))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:x,content:S}=await t.d(e),C=o(m,h,s,c,x.permalink),w=null,T=()=>(w||=p(S,x.description),w),E=_(x),D=g(x),O=i.default.basename(C.relativePath),k=t.h(O),A=C.remainingParts.map(e=>t.h(e)).slice(0,-1),j=/^index\.mdx?$/.test(k),M=x.sidebarPosition??t.i(O),N=A.join(`/`),P={route:{path:C.finalPath,componentPath:e,filePath:C.relativePath,title:E.title||t.h(i.default.basename(u,i.default.extname(u))),get description(){return T().description},sidebarPosition:M,get headings(){return T().headings},locale:C.locale,version:C.version,badge:E.badge,icon:x.icon?String(x.icon):void 0,tab:C.inferredTab,subRouteGroup:C.subRouteGroup,slugParts:A,get _content(){return T().plainText},_rawContent:S,date:x.date,lastUpdated:x.lastUpdated,category:x.category,order:x.order,sidebarLabel:x.sidebarLabel,sidebarHidden:x.sidebarHidden||x.hidden,seo:D,frontmatter:x,collection:C.collection,tags:x.tags,author:typeof x.author==`string`?x.author:x.author?.name,draft:x.draft,excerpt:x.excerpt,coverImage:x.coverImage||x.cover},relativeDir:C.collection?void 0:N||void 0,isGroupIndex:j,inferredTab:C.inferredTab,inferredCollection:C.collection,groupMeta:j?{title:x.groupTitle||E.title||(A.length>0?t.t(A[A.length-1]):``),position:v(x,C),icon:x.icon?String(x.icon):void 0}:void 0,inferredGroupPosition:C.remainingParts.length>1?t.i(C.remainingParts[C.remainingParts.length-2]):void 0};return await r.t.set(e,P),P}function b(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 x(e,a,s,c,l){let u=e.replace(/\\/g,`/`),d=s.replace(/\\/g,`/`),f=b(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:y}=t.g(`---
7
- `+a.rawMatter+`
8
- ---`),x=o(p,m,c,l,y.permalink),S=_(y),C=g(y),w=i.default.basename(x.relativePath),T=t.h(w),E=x.remainingParts.map(e=>t.h(e)).slice(0,-1),D=/^index\.mdx?$/.test(T),O=y.sidebarPosition??t.i(w),k=E.join(`/`),A=y.description?t.p(String(y.description)).trim():a.description,j={route:{path:x.finalPath,componentPath:e,filePath:x.relativePath,title:S.title||t.h(i.default.basename(u,i.default.extname(u))),description:A,sidebarPosition:O,headings:a.headings,locale:x.locale,version:x.version,badge:S.badge,icon:y.icon?String(y.icon):void 0,tab:x.inferredTab,subRouteGroup:x.subRouteGroup,slugParts:E,_content:a.plainText,_rawContent:a.content,date:y.date,lastUpdated:y.lastUpdated,category:y.category,order:y.order,sidebarLabel:y.sidebarLabel,sidebarHidden:y.sidebarHidden||y.hidden,seo:C,frontmatter:y,collection:x.collection,tags:y.tags,author:typeof y.author==`string`?y.author:y.author?.name,draft:y.draft,excerpt:y.excerpt,coverImage:y.coverImage||y.cover},relativeDir:x.collection?void 0:k||void 0,isGroupIndex:D,inferredTab:x.inferredTab,inferredCollection:x.collection,groupMeta:D?{title:y.groupTitle||S.title||(E.length>0?t.t(E[E.length-1]):``),position:v(y,x),icon:y.icon?String(y.icon):void 0}:void 0,inferredGroupPosition:x.remainingParts.length>1?t.i(x.remainingParts[x.remainingParts.length-2]):void 0};return await r.t.set(e,j),j}exports.parseDocFile=y,exports.parseDocFileWithNative=x;
@@ -1,8 +0,0 @@
1
- /**
2
- * Boltdocs - https://boltdocs.vercel.app
3
- * Copyright (c) 2026 Jesus Alcala
4
- * Licensed under the MIT License.
5
- */
6
- import{a as e,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-Crm9oPcV.mjs";import{n as u,t as d}from"./errors-0zGHRLue.mjs";import{t as f}from"./cache-Dk53iOo6.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}}function D(e,t){if(e.groupPosition!==void 0)return e.groupPosition;if(e.sidebarPosition!==void 0)return e.sidebarPosition;if(t.remainingParts.length<=1)return;let n=i(t.remainingParts[t.remainingParts.length-2]);return n===void 0?void 0:Number(n)}async function O(e,n,a,o){let s=await f.get(e);if(s)return s;let d=e.replace(/\\/g,`/`),m=n.replace(/\\/g,`/`),g=k(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,O=()=>(w||=S(x,b.description),w),A=E(b),j=T(b),M=p.basename(C.relativePath),N=r(M),P=C.remainingParts.map(e=>r(e)).slice(0,-1),F=/^index\.mdx?$/.test(N),I=b.sidebarPosition??i(M),L=P.join(`/`),R={route:{path:C.finalPath,componentPath:e,filePath:C.relativePath,title:A.title||r(p.basename(d,p.extname(d))),get description(){return O().description},sidebarPosition:I,get headings(){return O().headings},locale:C.locale,version:C.version,badge:A.badge,icon:b.icon?String(b.icon):void 0,tab:C.inferredTab,subRouteGroup:C.subRouteGroup,slugParts:P,get _content(){return O().plainText},_rawContent:x,date:b.date,lastUpdated:b.lastUpdated,category:b.category,order:b.order,sidebarLabel:b.sidebarLabel,sidebarHidden:b.sidebarHidden||b.hidden,seo:j,frontmatter:b,collection:C.collection,tags:b.tags,author:typeof b.author==`string`?b.author:b.author?.name,draft:b.draft,excerpt:b.excerpt,coverImage:b.coverImage||b.cover},relativeDir:C.collection?void 0:L||void 0,isGroupIndex:F,inferredTab:C.inferredTab,inferredCollection:C.collection,groupMeta:F?{title:b.groupTitle||A.title||(P.length>0?c(P[P.length-1]):``),position:D(b,C),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,R),R}function k(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 A(e,t,a,o,d){let m=e.replace(/\\/g,`/`),g=a.replace(/\\/g,`/`),_=k(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
- `+t.rawMatter+`
8
- ---`),S=h(v,y,o,d,x.permalink),C=E(x),w=T(x),O=p.basename(S.relativePath),A=r(O),j=S.remainingParts.map(e=>r(e)).slice(0,-1),M=/^index\.mdx?$/.test(A),N=x.sidebarPosition??i(O),P=j.join(`/`),F=x.description?s(String(x.description)).trim():t.description,I={route:{path:S.finalPath,componentPath:e,filePath:S.relativePath,title:C.title||r(p.basename(m,p.extname(m))),description:F,sidebarPosition:N,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:j,_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:typeof x.author==`string`?x.author:x.author?.name,draft:x.draft,excerpt:x.excerpt,coverImage:x.coverImage||x.cover},relativeDir:S.collection?void 0:P||void 0,isGroupIndex:M,inferredTab:S.inferredTab,inferredCollection:S.collection,groupMeta:M?{title:x.groupTitle||C.title||(j.length>0?c(j[j.length-1]):``),position:D(x,S),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,I),I}export{O as parseDocFile,A as parseDocFileWithNative};
@@ -1,73 +0,0 @@
1
- /**
2
- * Boltdocs - https://boltdocs.vercel.app
3
- * Copyright (c) 2026 Jesus Alcala
4
- * Licensed under the MIT License.
5
- */
6
- import{a as e,b as t,c as n,f as r,i,l as a,m as o,o as s,s as c,u as l}from"./node-DOf4zhWc.mjs";import{c as u,d,n as f,s as p,u as m}from"./utils-Crm9oPcV.mjs";import{TransformCache as h}from"./node/cache.mjs";import{a as g,n as _,r as v,t as y}from"./routes-BW6zsk7Z.mjs";import{t as ee}from"./pages-external-BYa4JSda.mjs";import{r as te,t as b}from"./config-CCXp3aXO.mjs";import{r as ne,t as x}from"./types-generator-bDPvUztF.mjs";import{n as S}from"./doctor-DOAbSaiL.mjs";import{a as re,i as C,n as ie,o as w,s as ae}from"./shiki-adapter-D-aKw7PP.mjs";import{t as oe}from"./headers-Ddwek8K7.mjs";import{n as se}from"./csp-oTC2ygvF.mjs";import{createRequire as T}from"node:module";import E from"node:path";import D from"node:fs";import{error as O}from"@bdocs/dui";import k from"node:crypto";import{SKIP as ce,parseMetaString as le,setNodeProperty as ue,visitNodes as A}from"@bdocs/unist-utils";import{fileURLToPath as de}from"node:url";import{loadEnv as fe}from"vite";import{ViteImageOptimizer as pe}from"@bdocs/plugin-image-optimizer";import me from"@mdx-js/rollup";import he from"remark-gfm";import ge from"remark-frontmatter";import _e from"rehype-slug";const j=E.dirname(de(import.meta.url));function M(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 ve(e,t,n){return e?typeof e==`string`?e:e[n||``]||Object.values(e)[0]||t:t}function ye(e){let t=e.i18n?.defaultLocale,n=ve(e.theme?.title,`Boltdocs`,t),r=e.theme?.favicon;!r&&e.theme?.logo&&(r=typeof e.theme.logo==`string`?e.theme.logo:e.theme.logo.light||e.theme.logo.dark);let i=e.seo?.indexing,a=i===`none`?`noindex, nofollow`:i===`all`?void 0:i,o=e.seo?.metatags||{},s=Object.entries(o).map(([e,t])=>{let n=f(e),r=f(t);return e.startsWith(`og:`)||e.startsWith(`music:`)||e.startsWith(`video:`)||e.startsWith(`article:`)||e.startsWith(`book:`)||e.startsWith(`profile:`)?`<meta property="${n}" content="${r}">`:`<meta name="${n}" content="${r}">`});return{title:n,favicon:r,robotsContent:a,customMetaTags:s}}function be(e){return[e.favicon?`<link rel="icon" href="${f(e.favicon)}">`:``,e.robotsContent?`<meta name="robots" content="${f(e.robotsContent)}">`:``,`<meta name="generator" content="Boltdocs">`,...e.customMetaTags].filter(Boolean).join(`
16
- `)}function xe(e){if(!e)return``;let t=[];return e.google&&t.push(`<meta name="google-site-verification" content="${f(e.google)}">`),e.bing&&t.push(`<meta name="msvalidate.01" content="${f(e.bing)}">`),e.yandex&&t.push(`<meta name="yandex-verification" content="${f(e.yandex)}">`),e.pinterest&&t.push(`<meta name="p:domain_verify" content="${f(e.pinterest)}">`),e.facebook&&t.push(`<meta name="facebook-domain-verification" content="${f(e.facebook)}">`),t.join(`
17
- `)}function Se(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 Ce(){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 we(e,t){if(!e||!t&&!e.debug)return``;let n=e.anonymizeIp?`gtag('set', 'ip', true);`:``,r=e.sendPageView===!1?`{send_page_view: false}`:`{}`,i=e.cookieFlags?`, {'cookie_flags': '${e.cookieFlags}'}`:``,a=f(e.measurementId);return`
33
- <!-- Google tag (gtag.js) -->
34
- <script async src="https://www.googletagmanager.com/gtag/js?id=${a}"><\/script>
35
- <script>
36
- window.dataLayer = window.dataLayer || [];
37
- function gtag(){dataLayer.push(arguments);}
38
- gtag('js', new Date());
39
- ${n}
40
- gtag('config', '${a}', ${r}${i});
41
- <\/script>
42
- `}function Te(e,t){if(!e||!t)return{script:``,noScript:``};let n=f(e.dataLayerName||`dataLayer`),r=e.preview?`&gtm_preview=${f(e.preview)}`:``,i=f(e.tagId);return{script:`
43
- <!-- Google Tag Manager -->
44
- <script defer>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
45
- new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
46
- j=d.createElement(s),dl=l!='${n}'?'&l='+l:'';j.src=
47
- 'https://www.googletagmanager.com/gtm.js?id='+i+dl+'${r}';f.parentNode.insertBefore(j,f);
48
- })(window,document,'script','${n}','${i}');<\/script>
49
- <!-- End Google Tag Manager -->
50
- `,noScript:`
51
- <!-- Google Tag Manager (noscript) -->
52
- <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=${i}"
53
- height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
54
- <!-- End Google Tag Manager (noscript) -->
55
- `}}function Ee(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 De(e,t){if(!e||!t)return``;let n=f(e.apiKey),r=[`api_host: "${f(e.host||`https://us.i.posthog.com`)}"`];return e.capturePageview===!1&&r.push(`capture_pageview: false`),e.capturePageleave===!1&&r.push(`capture_pageleave: false`),e.sessionRecording===!0&&r.push(`session_recording: { recordCrossOriginPages: true }`),e.autocapture===!0&&r.push(`autocapture: true`),`
62
- <!-- PostHog -->
63
- <script>
64
- !function(t,e){var o,n,p,r;e.__SV||(window.posthog=e,e._i=[],e.init=function(i,s,a){function g(t,e){var o=e.split(".");2==o.length&&(t=t[o[0]],e=o[1]),t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}}(p=t.createElement("script")).type="text/javascript",p.crossOrigin="anonymous",p.async=!0,p.src=s.api_host.replace(".i.posthog.com","-assets.i.posthog.com")+"/static/array.js",(r=t.getElementsByTagName("script")[0]).parentNode.insertBefore(p,r);var u=e;for(void 0!==a?(u=e[a]=[]):(a="posthog"),u.people=u.people||[],u.toString=function(t){var e="posthog";return"posthog"!==a&&(e+="."+a),t||(e+=" (stub)"),e},u.people.toString=function(){return u.toString(1)+".people (stub)"},o="init capture register register_once register_for_session unregister unregister_for_session getFeatureFlag getFeatureFlagResult isFeatureEnabled reloadFeatureFlags updateEarlyAccessFeatureEnrollment getEarlyAccessFeatures on onFeatureFlags onSessionId getSurveys getActiveMatchingSurveys renderSurvey canRenderSurvey getNextSurveyStep identify setPersonProperties group resetGroups setPersonPropertiesForFlags resetPersonPropertiesForFlags setGroupPropertiesForFlags resetGroupPropertiesForFlags reset get_distinct_id getGroups get_session_id get_session_replay_url alias set_config startSessionRecording stopSessionRecording sessionRecordingStarted captureException loadToolbar get_property getSessionProperty createPersonProfile opt_in_capturing opt_out_capturing has_opted_in_capturing has_opted_out_capturing clear_opt_in_out_capturing debug".split(" "),n=0;n<o.length;n++)g(u,o[n]);e._i.push([i,s,a])},e.__SV=1)}(document,window.posthog||[]);
65
- posthog.init("${n}", { ${r.join(`, `)} });
66
- <\/script>
67
- `}function Oe(e,t){return e.replace(`<head>`,`<head>\n${t}`)}function ke(e,t){return e.replace(`</head>`,` ${t}</head>`)}function Ae(e,t){return t?e.replace(/<body([^>]*)>/,`<body$1>\n${t}`):e}function je(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 N(e,t){(!e||!e.includes(`<body`)||!e.includes(`<head`))&&(e=M(t));let n=process.env.NODE_ENV===`production`,r=be(ye(t)),i=xe(t.seo?.verification),a=Se(t),o=Ce(),s=we(t.integrations?.analytics?.ga4,n),c=Te(t.integrations?.analytics?.gtm,n),l=[i,a,r,s,Ee(t.integrations?.analytics?.vercel,n),De(t.integrations?.analytics?.posthog,n),c.script].filter(Boolean).join(`
69
- `);return e=Oe(e,o),e=ke(e,l),e=Ae(e,c.noScript),e=je(e),e}function P(e){return typeof e==`string`?[e]:Array.isArray(e)?e.flatMap(P):e&&typeof e==`object`?Object.values(e).flatMap(P):[]}const Me=new Set([`title`,`description`,`permalink`,`sidebarPosition`,`sidebarLabel`,`sidebarHidden`,`hidden`,`category`,`order`,`badge`,`icon`,`date`,`lastUpdated`,`groupTitle`,`groupPosition`,`seo`]);function Ne(e){let t=[];for(let n of e){let e=``;n.frontmatter&&(e=P(Object.entries(n.frontmatter).filter(([e])=>!Me.has(e)).map(([e,t])=>t)).join(` `));let r=e?`${n._content||``} ${e}`:n._content||``;if(t.push({id:n.path,title:n.title,content:r,url:n.path,display:n.groupTitle?`${n.groupTitle} > ${n.title}`:n.title,locale:n.locale,version:n.version}),n.headings)for(let e of n.headings)t.push({id:`${n.path}#${e.id}`,title:e.text,content:`${e.text} in ${n.title}`,url:`${n.path}#${e.id}`,display:`${n.title} > ${e.text}`,locale:n.locale,version:n.version})}return t}let F=null,I=null,L=null,R=null;function z(){F=null,I=null,L=null,R=null}function Pe(e,n,i,a){return{name:`vite-plugin-boltdocs-virtual-modules`,resolveId(e){let t=i()?.root||process.cwd();if(e.includes(`boltdocs-entry.tsx`)||e===`virtual:boltdocs-entry`||e===`boltdocs-entry`||e===`\0virtual:boltdocs-entry`)return m(E.resolve(t,`boltdocs-entry.tsx`));if(e.includes(`boltdocs-client.mjs`)||e===`virtual:boltdocs-client`||e===`boltdocs-client`||e===`\0virtual:boltdocs-client.ts`)return m(E.resolve(t,`boltdocs-client.mjs`));if(e.startsWith(`\0`)){let t=e.slice(1);if(!t.startsWith(`virtual:boltdocs-`)&&l.has(t))return e}else if(!e.startsWith(`virtual:boltdocs-`)&&l.has(e))return`\0`+e;return e.startsWith(`virtual:boltdocs-`)?`\0`+e:e.startsWith(`\0virtual:boltdocs-`)?e:null},async load(i){let o=n(),s=i.startsWith(`\0`)?i.slice(1):i;if(!s.includes(`boltdocs-entry.tsx`)&&!s.includes(`boltdocs-client.mjs`)&&!s.startsWith(`virtual:boltdocs-`)&&l.has(s)){let e=l.get(s);if(!e)return null;try{let t=await e.loader();if(typeof t!=`string`)throw Error(`[boltdocs] Plugin virtual module '${s}' loader must return a string source code, got ${typeof t}.`);return t}catch(e){throw Error(`[boltdocs] Plugin virtual module '${s}' failed to load: ${e instanceof Error?e.message:String(e)}`)}}if(i.includes(`boltdocs-entry.tsx`)||i===`\0virtual:boltdocs-entry`)return t(e,o);if(i.includes(`boltdocs-client.mjs`)||i===`\0virtual:boltdocs-client.ts`||i===`virtual:boltdocs-client`){let e=j,t=e;for(;e!==E.parse(e).root;){if(D.existsSync(E.join(e,`package.json`))&&JSON.parse(D.readFileSync(E.join(e,`package.json`),`utf-8`)).name===`boltdocs`){t=e;break}e=E.dirname(e)}let n=E.join(t,`src/client/index.ts`),r=E.join(t,`dist/client/index.js`);return`export * from '${m(D.existsSync(n)?n:r)}';`}if(!i.startsWith(`\0virtual:boltdocs-`))return;let c=i.replace(`\0virtual:boltdocs-`,``).replace(/\.tsx?$/,``);if(c===`routes`){if(!L){let e=r(await y(a,o));L=`export default ${JSON.stringify(e,null,2)};`}return L}if(c===`collections`){if(!R){let e=r(await y(a,o)),t={};for(let n of e)n.collection&&(t[n.collection]||(t[n.collection]=[]),t[n.collection].push({path:n.path,title:n.title,date:n.date,excerpt:n.excerpt,tags:n.tags,author:n.author,coverImage:n.coverImage,filePath:n.filePath,locale:n.locale,version:n.version,frontmatter:n.frontmatter,draft:n.frontmatter?.draft}));R=`export default ${JSON.stringify(t,null,2)};`}return R}if(c===`config`){if(F===null){let{loadDirectoryMeta:e}=await import(`./meta-loader-C4Hu9RN9.mjs`);F=await e(a)}let e=F,t={base:o?.base,theme:o?.theme,i18n:o?.i18n,versions:o?.versions,siteUrl:o?.siteUrl,integrations:o?.integrations,plugins:o?.plugins?.map(e=>({name:e.name})),directoryMeta:e};return`export default ${JSON.stringify(t,null,2)};`}if(c===`entry`)return t(e,o);if(c===`mdx-components`){let e=[`tsx`,`ts`,`jsx`,`js`],t=null;for(let n of e){let e=E.resolve(a,`mdx-components.${n}`);if(D.existsSync(e)){t=e;break}}if(t){let e=m(t);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`],t=null;for(let n of e){let e=E.resolve(a,`layout.${n}`);if(D.existsSync(e)){t=e;break}}if(t)return`import UserLayout from '${m(t)}';
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`],t=null;for(let n of e){let e=E.resolve(a,`icons.${n}`);if(D.existsSync(e)){t=e;break}}return t?`import * as icons from '${m(t)}';\nexport default icons;`:`export default {};`}if(c===`search`){if(!I){let e=Ne(await y(a,o));I=`export default ${JSON.stringify(e,null,2)};`}return I}if(c===`client`){let e=j,t=``;for(;e&&e!==E.parse(e).root;){let n=E.join(e,`src/client/index.ts`),r=E.join(e,`dist/client/index.mjs`),i=E.join(e,`client/index.ts`);if(D.existsSync(n)){t=m(n);break}if(D.existsSync(r)){t=m(r);break}if(D.existsSync(i)){t=m(i);break}e=E.dirname(e)}if(!t)throw Error(`[boltdocs] Could not resolve boltdocs/client entry point starting from ${j}`);return`export * from '${t}';`}}}}function B(e){return(t,n,r)=>{let i=e().integrations?.feedback?.custom,a=i?.endpoint||`/api/feedback`;if(!i?.enabled||t.method!==`POST`||t.url?.split(`?`)[0]!==a)return r();let o=``,s=0;t.on(`data`,e=>{if(s+=e.length,s>10240){n.statusCode=413,n.end(JSON.stringify({error:`Request body too large`})),t.destroy();return}o+=e}),t.on(`end`,async()=>{n.setHeader(`Content-Type`,`application/json`);try{let{handleFeedback:e}=await import(`./handler-DzQae4eA.mjs`).then(e=>e.n),t=await e(JSON.parse(o),process.env,{owner:i.owner,repo:i.repo,categorySlug:i.categorySlug});n.statusCode=200,n.end(JSON.stringify(t))}catch(e){n.statusCode=500;let t=e instanceof Error?e.message:`Failed to submit feedback`;n.end(JSON.stringify({error:t}))}})}}function Fe(e){return(t,n,r)=>{let i=t.url||`/`,a=i.split(`?`)[0].split(`#`)[0];if(E.extname(a))return r();let o=e(),s=E.resolve(o?.root||process.cwd(),o?.build?.outDir||`dist`),c=a.replace(/\/$/,``)||`/`,l=E.join(s,c,`index.html`);c!==`/`&&D.existsSync(l)&&(t.url=`${c}/index.html${i.includes(`?`)?`?${i.split(`?`)[1]}`:``}`),r()}}const Ie=/\.(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 Le(e,t,n){let r=process.env.NODE_ENV===`production`;e.middlewares.use(B(n)),e.middlewares.use((e,t,i)=>{r&&Object.entries(oe).forEach(([e,n])=>{t.setHeader(e,n)});let a=n();a.security?.enableCSP&&t.setHeader(`Content-Security-Policy`,se(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`)&&!Ie.test(a)){let n=M(s);n=N(n,s),n=await e.transformIndexHtml(t.url||`/`,n),r.statusCode=200,r.setHeader(`Content-Type`,`text/html`),r.end(n);return}i()})}const V=[/\/index\./i,/\/getting-started/i,/\/intro/i,/\/readme/i];function H(e){for(let t=0;t<V.length;t++)if(V[t].test(e))return t;return V.length}function Re(e,t,n){setTimeout(async()=>{try{let{generateRoutes:r}=await import(`./routes-BW6zsk7Z.mjs`).then(e=>e.i),i=(await r(t,n())).filter(e=>e.filePath).map(e=>e.filePath).sort((e,t)=>H(e)-H(t));for(let t=0;t<i.length;t+=32){let n=i.slice(t,t+32);await Promise.allSettled(n.map(t=>{let n=E.relative(process.cwd(),t).replace(/\\/g,`/`),r=n.startsWith(`/`)?n:`/${n}`;return e.transformRequest(r)}))}}catch{}},150)}const ze=[`tsx`,`jsx`],U=[`tsx`,`ts`,`jsx`,`js`];function Be(e,t){let n=b.map(e=>E.resolve(process.cwd(),e)),r=ze.map(e=>E.resolve(t,`layout.${e}`)),i=U.map(e=>E.resolve(t,`mdx-components.${e}`)),a=U.map(e=>E.resolve(t,`pages-external/index.${e}`)),o=U.map(e=>E.resolve(t,`icons.${e}`));e.watcher.add([...n,...i,...r,...a,...o])}const W=new Map;function G(e){let{lastUpdated:t,...n}=e;return k.createHash(`md5`).update(JSON.stringify(n)).digest(`hex`)}async function Ve(e){try{let{data:t}=await d(e);return G(t)}catch{return``}}function He(e){let t=W.get(e);if(t===void 0){let n=g.getStale(e);n?.route?.frontmatter&&(t=G(n.route.frontmatter),W.set(e,t))}return t}function Ue(e,t){W.set(e,t)}function We(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 Ge(e,t,n,r){let i=new Map,a=n.toLowerCase(),o=null;function l(){if(o)return o;o=new Map;for(let[t,n]of e.moduleGraph.fileToModulesMap.entries())try{o.set(decodeURIComponent(t).toLowerCase(),n)}catch{}return o}e.watcher.on(`all`,()=>{o=null});let d=async(n,o)=>{try{let d=m(n);if(b.some(e=>d.endsWith(e))){e.restart();return}if(K.some(e=>d.endsWith(`mdx-components.${e}`))){x(r(),t),q(e,`mdx-components.tsx`),e.ws.send({type:`full-reload`});return}if(K.some(e=>d.endsWith(`icons.${e}`))){q(e,`icons.tsx`),e.ws.send({type:`full-reload`});return}if(d.endsWith(`layout.tsx`)||d.endsWith(`layout.jsx`)){q(e,`layout.tsx`),e.ws.send({type:`full-reload`});return}if(d.endsWith(`/post.tsx`)||d.endsWith(`/post.jsx`)||d.endsWith(`/list.tsx`)||d.endsWith(`/list.jsx`)){q(e,`entry`),e.ws.send({type:`full-reload`});return}if(d.includes(`/pages-external/`)||d.includes(`\\pages-external\\`)){q(e,`entry`),e.ws.send({type:`full-reload`});return}if(!d.toLowerCase().startsWith(a))return;let f=d.endsWith(`meta.json`)||d.endsWith(`_meta.json`);if(!f&&!u(d))return;if(o===`add`||o===`unlink`||f){o===`unlink`&&We(n),v(),z(),s(),c(o,d).catch(e=>{O(`Plugin HMR handler error:`,e)});let i=r();x(i,t),q(e,`config`),q(e,`routes`),q(e,`search`),q(e,`collections`),S(t,process.cwd(),i).catch(e=>{O(`Failed to update link tree:`,e)}),e.ws.send({type:`custom`,event:`boltdocs:config-update`,data:{theme:i?.theme,i18n:i?.i18n,versions:i?.versions,siteUrl:i?.siteUrl}}),e.ws.send({type:`full-reload`});return}i.has(d)&&clearTimeout(i.get(d)),i.set(d,setTimeout(async()=>{i.delete(d);try{let r=He(n),i=await Ve(n);if(Ue(n,i),_(n),r!==void 0&&r!==i){z(),q(e,`routes`),q(e,`search`),q(e,`collections`),e.ws.send({type:`full-reload`});return}let a=m(E.relative(t,n)),o=e.moduleGraph.getModulesByFile(d);if((!o||o.size===0)&&(o=l().get(d.toLowerCase())||null),o&&o.size>0)for(let t of o)e.moduleGraph.invalidateModule(t);else{e.ws.send({type:`full-reload`});return}e.ws.send({type:`custom`,event:`boltdocs:mdx-update`,data:{file:d,relPath:a}})}catch(e){O(`HMR error processing content change:`,e)}},150))}catch(e){O(`HMR error during ${o} 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 Ke(e){let t=e.toLowerCase();return({file:e})=>{let n=e.toLowerCase();if(n.startsWith(t)&&(u(e)||n.endsWith(`meta.json`)))return[]}}function qe(t,r,i,o,s){return{name:`vite-plugin-boltdocs-dev-server`,apply:`serve`,async configureServer(o){let c=s();await c?.runHook(`beforeDev`),S(t,process.cwd(),i()).catch(e=>{O(`Failed to generate initial link tree:`,e)}),Re(o,t,i),Le(o,t,i),Be(o,t),Ge(o,t,r,i),a((e,t)=>{o.ws.send(e,t)}),e(o),await n(),await c?.runHook(`afterDev`)},hotUpdate:Ke(r)}}const J=new h(`mdx`);function Je(e){let t=ie(e);return async e=>{let n=await t.getHighlighter();A(e,w.ELEMENT,e=>{if(e.tagName!==`pre`)return;let r=e.children?.[0];if(!r||r.type!==w.ELEMENT||r.tagName!==`code`)return;let i=(r.properties?.className||[]).find(e=>e.startsWith(`language-`)),a=i?i.slice(9):re.MDX_DEFAULT_LANG;if(a===`mermaid`)return;let o=le(r.properties?.metastring||r.data?.meta||``),s=t.getOptions(a,o),c=r.children?.[0]?.value??``;try{let t=n.codeToHast(c,s),r=t.type===`root`&&t.children?t.children[0]:t;r&&r.type===`element`&&(e.children=r.children,e.properties={...e.properties||{},...r.properties||{},[C.HIGHLIGHTED]:`true`,[C.LANG]:a})}catch(t){O(`[rehypeShiki] Failed to highlight code block:`,t);let n=e.properties??={};n.className=[...Array.isArray(n.className)?n.className:[],ae.FALLBACK],n[C.HIGHLIGHTED]=`false`,n[C.LANG]=a}return o.title&&((e.properties??={})[C.TITLE]=o.title),ce})}}function Ye(){return e=>{A(e,w.CODE,e=>{e.meta&&ue(e,`metastring`,e.meta)})}}let Xe=!1;function Ze(e,t,n=me){let r=e?.plugins?.flatMap(e=>e.remarkPlugins||[])||[],i=e?.plugins?.flatMap(e=>e.rehypePlugins||[])||[],a=n({remarkPlugins:[he,ge,Ye,...r],rehypePlugins:[_e,[Je,e],...i],jsxRuntime:`automatic`});return{...a,name:`vite-plugin-boltdocs-mdx`,async buildStart(){Xe||=(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=D.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=process.env.NODE_ENV===`production`?`prod`:`dev`,s=o===`dev`?`${i}:${p(i)}:${o}:v4`:`${i}:${k.createHash(`md5`).update(e).digest(`hex`)}:${o}:v4`,c=await J.getAsync(s);if(c)return{code:c,map:null};let l=await a.transform.call(this,e,i,r);if(l&&typeof l==`object`&&l.code){let e=l.code,n=t?.();return n&&(e=(await n.runChain(`transformMdx`,{code:e,filePath:i})).code),J.set(s,e),{code:e,map:null}}return l},async buildEnd(){J.save(),await J.flush(),a.buildEnd&&await a.buildEnd.call(this)}}}const Y=T(import.meta.url),Qe=[`react`,`react-dom`,`react-router-dom`,`react-helmet-async`,`@bdocs/ssg`,`jsdom`],$e=[`react/jsx-runtime`,`react/jsx-dev-runtime`,`react-dom/client`];function X(e=Y){try{let e=E.join(process.cwd(),`node_modules/boltdocs/package.json`);return D.existsSync(e)?T(D.realpathSync(e)):T(E.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=E.dirname(e);for(;n&&n!==E.dirname(n);){let e=E.join(n,`package.json`);if(D.existsSync(e)){a=e;break}n=E.dirname(n)}}if(!a)throw Error();let o=E.dirname(a),s=JSON.parse(D.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=E.resolve(o,l);if(D.existsSync(u))return u}catch{}return t.resolve(e)}function Q(e=Y){let t=[],n=X(e),r=new Set([n,e]);for(let e of r){for(let n of Qe)try{let r=[`@bdocs/ssg`,`react-router-dom`,`react-helmet-async`].includes(n)?Z(n,e):e.resolve(n);r&&t.push(D.realpathSync(r))}catch{}for(let n of $e)try{t.push(D.realpathSync(e.resolve(n)))}catch{}}return Array.from(new Set(t)).map(e=>m(e))}const $=T(import.meta.url),et=[`react`,`react-dom`,`react-router-dom`,`react-helmet-async`,`@bdocs/ssg`];function tt(t={},r){let a=E.resolve(process.cwd(),t.docsDir||`docs`),s=m(a),c=r,l,u=!1,d,f=[],p=[];if(c?.plugins?.length)try{let{version:e}=JSON.parse(D.readFileSync(E.resolve(j,`../../../package.json`),`utf-8`)),t=o(c.plugins,e);c.plugins=t,d=new i(t,c),p=t.flatMap(e=>e.vitePlugins||[])}catch{}let h=()=>c,g=e=>{c=e},_=()=>l,v=()=>d;return[{name:`vite-plugin-boltdocs`,enforce:`pre`,async config(e,t){u=t.command===`build`;let n=!!(t.isSsrBuild||e.build?.ssr);if(Object.assign(process.env,fe(t.mode,e.envDir||process.cwd(),``)),c||=await te(a),f.length===0){f=await y(a,c);let e=f.map(e=>e.path),t=(c.base||`/docs`).replace(/\/$/,``);e.includes(t)||e.push(t);let n=ee(a,c);for(let t of n)e.includes(t)||e.push(t);x(c,a,void 0,e),ne(e)}import(`./node/mdx/shiki-adapter.mjs`).then(({getShikiAdapter:e})=>{e(c).getHighlighter().catch(()=>{})}).catch(()=>{});let{version:r}=await import(`./package-CCYEAYeA.mjs`),s=o(c.plugins||[],r);return c.plugins=s,d=new i(s,c,a,void 0,f,l?.build?.outDir||`dist`),p=s.flatMap(e=>e.vitePlugins||[]),u&&await d.runHook(`beforeBuild`),{ssgOptions:{entry:`boltdocs/entry`,htmlEntry:`index.html`,dirStyle:`flat`,includeAllRoutes:!0,mock:!0,script:`async`,beastiesOptions:!1,onPageRendered:async(e,t)=>{if(!d)return t;try{let n=(await d.runChain(`transformHtml`,{html:t,path:e})).html;return n=(await d.runMiddlewareChain(`transformHtml`,{html:n,path:e})).html,n}catch{return t}}},build:{ssrManifest:u},optimizeDeps:{include:[`react`,`react-dom`,`react-dom/client`,`react-router-dom`,`react-helmet-async`,`react-fast-compare`,`invariant`],exclude:[`boltdocs`,`boltdocs/client`]},resolve:{alias:n?[]:[{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`,...n?[]:[`react-router-dom`,`react-helmet-async`,`@bdocs/ssg`]]},ssr:{external:[`react`,`react-dom`,`react-helmet-async`,`react-router-dom`,`@bdocs/ssg`,`jsdom`,...Q($)],optimizeDeps:{include:[`react-fast-compare`]},noExternal:[]}}},configResolved(e){l=e},resolveId(e,t,n){let r=et.find(t=>e===t||e.startsWith(`${t}/`)||e.includes(`/node_modules/${t}/`)||t.startsWith(`@`)&&e.includes(`/node_modules/${t.replace(`/`,E.sep)}/`));if(r&&n?.ssr&&!E.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=D.realpathSync(n)}catch{}return{id:n,external:!0}}return null},transformIndexHtml:{order:`pre`,handler:e=>N(e,c)},async closeBundle(){!u||l?.build?.ssr||(await d?.runHook(`afterBuild`),await d?.runHook(`buildEnd`))},configurePreviewServer(t){t.middlewares.use(B(h)),t.middlewares.use(Fe(_)),e(t),n().catch(()=>{})}},Pe(t,h,_,a),qe(a,s,h,g,v),...t.turbo?[]:[Ze(c,v)],...t.turbo?[(()=>{let e=null;async function t(){if(!e)try{let{createSatteriMdxPlugin:t}=await import(`./node-BXtqM1uH.mjs`);e=t(c,v)}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()}}})()]:[],pe({includePublic:!0}),...p]}export{tt as boltdocsPlugin,X as getBaseRequire,Q as getExternalAbsolutePaths,Z as resolveEsm};