boltdocs 2.8.2 → 2.8.4

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 (51) hide show
  1. package/dist/{banner-3N4Jd_L9.d.ts → banner-BLTQUA2O.d.ts} +1 -1
  2. package/dist/{banner-MynZD_Ox.d.cts → banner-DFACg5Dy.d.cts} +1 -1
  3. package/dist/client/index.cjs +39 -19
  4. package/dist/client/index.d.cts +2 -2
  5. package/dist/client/index.d.ts +2 -2
  6. package/dist/client/index.js +39 -19
  7. package/dist/client/mdx.cjs +1 -1
  8. package/dist/client/mdx.js +1 -1
  9. package/dist/client/primitives.cjs +4 -4
  10. package/dist/client/primitives.d.cts +1 -1
  11. package/dist/client/primitives.d.ts +1 -1
  12. package/dist/client/primitives.js +4 -4
  13. package/dist/{docs-layout-Dn6S5g59.js → docs-layout-BBv6wILp.js} +82 -92
  14. package/dist/{docs-layout-CwCq42Zt.cjs → docs-layout-CVCf3xkZ.cjs} +82 -92
  15. package/dist/{doctor-aN_leTbh.mjs → doctor-BGPdO1Ah.mjs} +1 -1
  16. package/dist/{doctor-DyNUVe96.cjs → doctor-DT4jh07O.cjs} +1 -1
  17. package/dist/doctor-Dnv77Lfx.mjs +28 -0
  18. package/dist/doctor-VBPlQf7d.cjs +28 -0
  19. package/dist/{icons-dev-DvJ-hh9x.cjs → icons-dev-C8sFxeBk.cjs} +6 -3
  20. package/dist/{icons-dev-Oju24Wjp.js → icons-dev-CFcv5Nb8.js} +6 -3
  21. package/dist/{image-Ch4-GxdO.cjs → image-DCMxxidi.cjs} +9 -3
  22. package/dist/{image-Do8V9PCW.js → image-DufDOid8.js} +9 -3
  23. package/dist/{mdx-BGM7LjW5.cjs → mdx-BH9kHiF9.cjs} +2 -2
  24. package/dist/{mdx-5oeCOFhH.js → mdx-Bto8CvGl.js} +2 -2
  25. package/dist/node/cli-entry.cjs +2 -2
  26. package/dist/node/cli-entry.mjs +3 -3
  27. package/dist/node/index.cjs +1 -1
  28. package/dist/node/index.mjs +1 -1
  29. package/dist/node/routes/worker.mjs +1 -1
  30. package/dist/{node-BfGSXyUz.cjs → node-JM9bx0mO.cjs} +5 -4
  31. package/dist/{node-NZrBn5jg.mjs → node-q-Y2mdLX.mjs} +5 -4
  32. package/dist/{package-DBz4CSnw.cjs → package-CwNjt3Sd.cjs} +1 -1
  33. package/dist/{package-C1qrHXzn.mjs → package-DlgexgpQ.mjs} +1 -1
  34. package/dist/{parser-BrkFi6YE.mjs → parser-9LqyiEnB.mjs} +1 -1
  35. package/dist/{routes-DJNJ-rTt.cjs → routes-3sAccArX.cjs} +1 -1
  36. package/dist/{routes-f9J1MQRr.mjs → routes-DZpXqq1p.mjs} +1 -1
  37. package/dist/{routes-CtQzxiZg.mjs → routes-DjoxNeef.mjs} +1 -1
  38. package/dist/{routes-DiYC4nD2.cjs → routes-DpJnb2VS.cjs} +1 -1
  39. package/dist/{search-dialog-BYhOov4S.cjs → search-dialog-CmHYOt18.cjs} +2 -2
  40. package/dist/{search-dialog-CUeAfy-8.cjs → search-dialog-Cr7SC8Xt.cjs} +1 -1
  41. package/dist/{search-dialog-BXVoecTx.cjs → search-dialog-Cvux-qSk.cjs} +1 -1
  42. package/dist/{search-dialog-DHc_8FFX.js → search-dialog-DBNaG5At.js} +1 -1
  43. package/dist/{search-dialog-D8gLkhUV.js → search-dialog-e86WPpck.js} +1 -1
  44. package/dist/{search-dialog-C09riYmx.js → search-dialog-jHZ21G4i.js} +2 -2
  45. package/dist/{sidebar-Dlkgbxs6.d.cts → sidebar---RgTmZD.d.cts} +2 -0
  46. package/dist/{sidebar-DNq4_ZAa.d.ts → sidebar-kQBonN82.d.ts} +2 -0
  47. package/dist/{worker-pool-CtqklOXq.cjs → worker-pool-DXLyeHJg.cjs} +1 -1
  48. package/dist/{worker-pool-k0DY6k8T.mjs → worker-pool-Kn4F9gDq.mjs} +1 -1
  49. package/package.json +2 -1
  50. package/dist/doctor-BArviV8X.cjs +0 -28
  51. package/dist/doctor-CgLA7_Uv.mjs +0 -28
@@ -4,6 +4,6 @@
4
4
  * Copyright (c) 2026 Jesus Alcala
5
5
  * Licensed under the MIT License.
6
6
  */
7
- import{C as e,n as t,w as n}from"../node-NZrBn5jg.mjs";import{d as r,p as i}from"../doctor-CgLA7_Uv.mjs";import{preview as a}from"vite";import o from"node:path";import s from"node:fs";import{colors as c,configure as l,devServer as u,error as d,info as f,success as p,table as m,warn as h}from"@bdocs/dui";import g from"node:fs/promises";import{createServer as _}from"@bdocs/ssg/node";import v from"cac";function y(e){let t=e;for(;t&&t!==o.dirname(t);){if(s.existsSync(o.join(t,`.git`))||s.existsSync(o.join(t,`pnpm-workspace.yaml`)))return t;t=o.dirname(t)}t=e;let n=e;for(;t&&t!==o.dirname(t);)s.existsSync(o.join(t,`package.json`))&&(n=t),t=o.dirname(t);return n}let b=y(process.cwd());function x(e){if(!e)return;let t;if(typeof e==`string`)t=e;else if(e instanceof URL){if(e.protocol!==`file:`)return;t=e.pathname}else if(Buffer.isBuffer(e))t=e.toString();else return;let n=o.resolve(b,t),r=o.relative(b,n),i=r.startsWith(`..`)||o.isAbsolute(r),a=n.split(o.sep),s=a.some(e=>e.startsWith(`.env`)),c=a.some((e,t)=>{if(e===`node_modules`){let e=a[t+1];return!e||!e.startsWith(`.`)}return!1});if(i||s||c)throw Error(`[Boltdocs Security] Write/delete operation blocked on path: "${n}". Modifications are restricted to the project root, and cannot access .env or non-cache node_modules folders.`)}function S(e){return e==null?!1:typeof e==`number`?e!==0:typeof e==`string`?e.includes(`w`)||e.includes(`a`)||e.includes(`+`):!0}function C(){let e=s.writeFile;s.writeFile=function(t,...n){try{x(t)}catch(e){let t=n[n.length-1];if(typeof t==`function`){process.nextTick(()=>t(e));return}throw e}return e.call(s,t,...n)};let t=s.writeFileSync;s.writeFileSync=function(e,...n){return x(e),t.call(s,e,...n)};let n=s.rm;s.rm=function(e,...t){try{x(e)}catch(e){let n=t[t.length-1];if(typeof n==`function`){process.nextTick(()=>n(e));return}throw e}return n.call(s,e,...t)};let r=s.rmSync;s.rmSync=function(e,...t){return x(e),r.call(s,e,...t)};let i=s.unlink;s.unlink=function(e,...t){try{x(e)}catch(e){let n=t[t.length-1];if(typeof n==`function`){process.nextTick(()=>n(e));return}throw e}return i.call(s,e,...t)};let a=s.unlinkSync;s.unlinkSync=function(e,...t){return x(e),a.call(s,e,...t)};let o=s.mkdir;s.mkdir=function(e,...t){try{x(e)}catch(e){let n=t[t.length-1];if(typeof n==`function`){process.nextTick(()=>n(e));return}throw e}return o.call(s,e,...t)};let c=s.mkdirSync;s.mkdirSync=function(e,...t){return x(e),c.call(s,e,...t)};let l=s.rmdir;s.rmdir=function(e,...t){try{x(e)}catch(e){let n=t[t.length-1];if(typeof n==`function`){process.nextTick(()=>n(e));return}throw e}return l.call(s,e,...t)};let u=s.rmdirSync;s.rmdirSync=function(e,...t){return x(e),u.call(s,e,...t)};let d=s.appendFile;s.appendFile=function(e,...t){try{x(e)}catch(e){let n=t[t.length-1];if(typeof n==`function`){process.nextTick(()=>n(e));return}throw e}return d.call(s,e,...t)};let f=s.appendFileSync;s.appendFileSync=function(e,...t){return x(e),f.call(s,e,...t)};let p=s.copyFile;s.copyFile=function(e,t,...n){try{x(e),x(t)}catch(e){let t=n[n.length-1];if(typeof t==`function`){process.nextTick(()=>t(e));return}throw e}return p.call(s,e,t,...n)};let m=s.copyFileSync;s.copyFileSync=function(e,t,...n){return x(e),x(t),m.call(s,e,t,...n)};let h=s.rename;s.rename=function(e,t,...n){try{x(e),x(t)}catch(e){let t=n[n.length-1];if(typeof t==`function`){process.nextTick(()=>t(e));return}throw e}return h.call(s,e,t,...n)};let _=s.renameSync;s.renameSync=function(e,t,...n){return x(e),x(t),_.call(s,e,t,...n)};let v=s.createWriteStream;s.createWriteStream=function(e,...t){return x(e),v.call(s,e,...t)};let y=s.open;s.open=function(e,t,...n){if(S(typeof t==`function`?void 0:t))try{x(e)}catch(e){let r=n[n.length-1],i=typeof t==`function`?t:typeof r==`function`?r:void 0;if(i){process.nextTick(()=>i(e));return}throw e}return y.call(s,e,t,...n)};let b=s.openSync;s.openSync=function(e,t,...n){return S(t)&&x(e),b.call(s,e,t,...n)};let C=e=>{if(!e)return;let t=e.writeFile;t&&(e.writeFile=async function(n,...r){return x(n),t.call(e,n,...r)});let n=e.rm;n&&(e.rm=async function(t,...r){return x(t),n.call(e,t,...r)});let r=e.mkdir;r&&(e.mkdir=async function(t,...n){return x(t),r.call(e,t,...n)});let i=e.rmdir;i&&(e.rmdir=async function(t,...n){return x(t),i.call(e,t,...n)});let a=e.unlink;a&&(e.unlink=async function(t,...n){return x(t),a.call(e,t,...n)});let o=e.appendFile;o&&(e.appendFile=async function(t,...n){return x(t),o.call(e,t,...n)});let s=e.copyFile;s&&(e.copyFile=async function(t,n,...r){return x(t),x(n),s.call(e,t,n,...r)});let c=e.rename;c&&(e.rename=async function(t,n,...r){return x(t),x(n),c.call(e,t,n,...r)});let l=e.open;l&&(e.open=async function(t,n,...r){return S(n)&&x(t),l.call(e,t,n,...r)})};C(s.promises),C(g)}let w=!1;async function T(e=process.cwd()){if(!w){w=!0,r();try{n(await i(o.resolve(e,`docs`),e),e)}catch{}try{let n=await t(e,`development`);n.logLevel=`warn`,n.clearScreen=!1;let r=await _(n);await r.listen();let i=r.resolvedUrls;console.log(u(i?.local?.[0]??`http://localhost:5173`,i?.network?.[0]??null)),r.bindCLIShortcuts({print:!1})}catch(e){d(`Failed to start dev server:`,e),process.exit(1)}}}async function E(t=process.cwd()){r();try{let n=await e().run({root:t,timing:{}});n.success||(d(`Build failed at step "${n.failedStep}":`,n.error),process.exit(1)),p(`SSG build completed successfully in ${Math.round(n.timing.total)}ms!`),process.exit(0)}catch(e){d(`Build failed:`,e),process.exit(1)}}async function D(e=process.cwd()){try{let t=await createViteConfig(e,`production`);t.logLevel=`warn`,t.clearScreen=!1;let n=await a(t),r=n.resolvedUrls;console.log(n(r?.local?.[0]??`http://localhost:4173`,r?.network?.[0]??null))}catch(e){d(`Failed to start preview server:`,e),process.exit(1)}}function O(e){let t=[];if(!s.existsSync(e))return t;try{let n=s.readdirSync(e);for(let r of n){let n=o.join(e,r);s.statSync(n).isDirectory()?r!==`node_modules`&&r!==`.git`&&r!==`dist`&&r!==`coverage`&&t.push(...O(n)):/\.(js|mjs|cjs|ts|tsx|jsx)$/.test(r)&&t.push(n)}}catch{}return t}async function k(e=process.cwd()){f(`Starting static security audit of Boltdocs plugins...`);let t;try{t=await i(o.resolve(e,`docs`),e)}catch(e){d(`Failed to load Boltdocs configuration for audit:`,e),process.exit(1)}let n=t.plugins||[];if(n.length===0){p(`No plugins configured. Nothing to audit.`);return}let r=[];for(let t of n){if(!t.name)continue;let n=null;try{let{createRequire:r}=await import(`node:module`),i=r(o.resolve(e,`package.json`)).resolve(`${t.name}/package.json`);n=o.dirname(i)}catch{let r=o.resolve(e,`node_modules`,t.name);s.existsSync(r)&&(n=r)}if(!n){r.push({name:c.cyan(t.name),status:c.red(`❓ Unresolved`),details:`Could not locate plugin files in node_modules.`});continue}let i=O(n),a=[];for(let e of i)try{let t=s.readFileSync(e,`utf-8`);t.includes(`fetch(`)&&a.push(`fetch`),t.includes(`axios`)&&a.push(`axios`),t.includes(`http.request`)&&a.push(`http.request`),t.includes(`https.request`)&&a.push(`https.request`),t.includes(`process.env`)&&a.push(`process.env`)}catch{}let l=Array.from(new Set(a));l.length>0?r.push({name:c.cyan(t.name),status:c.yellow(`⚠️ Warning`),details:`Contains network/env accesses: ${c.bold(l.join(`, `))}. Ensure you trust the author.`}):r.push({name:c.cyan(t.name),status:c.green(`✅ Clean`),details:`No external network calls or env accesses detected.`})}let a=[`Plugin`,`Status`,`Audit Notes`],l=r.map(e=>[e.name,e.status,e.details]);console.log(`
8
- `+m(a,l)+`
9
- `),r.some(e=>e.status.includes(`Warning`))?h(`⚠️ One or more plugins have security warnings. Review the flags above.`):p(`✓ All plugins passed the static security check!`)}process.noDeprecation=!0,C(),l({prefix:`boltdocs`,devServerTitle:`boltdocs dev server`,previewServerTitle:`boltdocs preview server`,updateCommand:`pnpm add boltdocs@latest`});const A=v(`boltdocs`);A.command(`dev [root]`,`Start development server`).action(T),A.command(`[root]`,`Start development server`).action(T),A.command(`build [root]`,`Build for production`).action(E),A.command(`preview [root]`,`Preview production build`).action(D),A.command(`audit [root]`,`Audit configured plugins for security warnings`).action(k),A.command(`doctor [root]`,`Check the health of your documentation`).option(`--fix`,`Automatically fix broken internal links and sync translations`).option(`--check-external`,`Verify external links (slower)`).option(`--init`,`Initialize doctor.json with default configuration`).option(`--budget`,`Check build performance against configured budgets`).action(async(e,t)=>{let{doctorAction:n}=await import(`../doctor-aN_leTbh.mjs`);await n(e,t)}),A.command(`generate-changelog <file>`,`Generate changelog documentation from CHANGELOG.md`).option(`-o, --output <path>`,`Output folder (default: docs/changelog)`,{default:`docs/changelog`}).option(`-t, --title <text>`,`Title for changelog pages`,{default:`Changelog`}).option(`--infer-tab`,`Infer tab from folder name (default: true)`,{default:!0}).option(`-l, --limit <number>`,`Limit number of versions to generate`).action(async(e,t)=>{let{generateChangelog:n}=await import(`../generator-BHCrLU6h.mjs`);await n(e,{output:t.output,title:t.title,inferTab:t.inferTab,limit:t.limit?parseInt(String(t.limit),10):void 0})}),A.help(),A.version(`2.0.0`),A.parse();export{};
7
+ import{C as e,n as t,w as n}from"../node-q-Y2mdLX.mjs";import{d as r,p as i}from"../doctor-Dnv77Lfx.mjs";import{preview as a}from"vite";import o from"node:path";import s from"node:fs";import{colors as c,configure as l,devServer as u,error as d,info as f,previewServer as p,success as m,table as h,warn as g}from"@bdocs/dui";import _ from"node:fs/promises";import{createServer as v}from"@bdocs/ssg/node";import y from"cac";function b(e){let t=e;for(;t&&t!==o.dirname(t);){if(s.existsSync(o.join(t,`.git`))||s.existsSync(o.join(t,`pnpm-workspace.yaml`)))return t;t=o.dirname(t)}t=e;let n=e;for(;t&&t!==o.dirname(t);)s.existsSync(o.join(t,`package.json`))&&(n=t),t=o.dirname(t);return n}let x=b(process.cwd());function S(e){if(!e)return;let t;if(typeof e==`string`)t=e;else if(e instanceof URL){if(e.protocol!==`file:`)return;t=e.pathname}else if(Buffer.isBuffer(e))t=e.toString();else return;let n=o.resolve(x,t),r=o.relative(x,n),i=r.startsWith(`..`)||o.isAbsolute(r),a=n.split(o.sep),s=a.some(e=>e.startsWith(`.env`)),c=a.some((e,t)=>{if(e===`node_modules`){let e=a[t+1];return!e||!e.startsWith(`.`)}return!1});if(i||s||c)throw Error(`[Boltdocs Security] Write/delete operation blocked on path: "${n}". Modifications are restricted to the project root, and cannot access .env or non-cache node_modules folders.`)}function C(e){return e==null?!1:typeof e==`number`?e!==0:typeof e==`string`?e.includes(`w`)||e.includes(`a`)||e.includes(`+`):!0}function w(){let e=s.writeFile;s.writeFile=function(t,...n){try{S(t)}catch(e){let t=n[n.length-1];if(typeof t==`function`){process.nextTick(()=>t(e));return}throw e}return e.call(s,t,...n)};let t=s.writeFileSync;s.writeFileSync=function(e,...n){return S(e),t.call(s,e,...n)};let n=s.rm;s.rm=function(e,...t){try{S(e)}catch(e){let n=t[t.length-1];if(typeof n==`function`){process.nextTick(()=>n(e));return}throw e}return n.call(s,e,...t)};let r=s.rmSync;s.rmSync=function(e,...t){return S(e),r.call(s,e,...t)};let i=s.unlink;s.unlink=function(e,...t){try{S(e)}catch(e){let n=t[t.length-1];if(typeof n==`function`){process.nextTick(()=>n(e));return}throw e}return i.call(s,e,...t)};let a=s.unlinkSync;s.unlinkSync=function(e,...t){return S(e),a.call(s,e,...t)};let o=s.mkdir;s.mkdir=function(e,...t){try{S(e)}catch(e){let n=t[t.length-1];if(typeof n==`function`){process.nextTick(()=>n(e));return}throw e}return o.call(s,e,...t)};let c=s.mkdirSync;s.mkdirSync=function(e,...t){return S(e),c.call(s,e,...t)};let l=s.rmdir;s.rmdir=function(e,...t){try{S(e)}catch(e){let n=t[t.length-1];if(typeof n==`function`){process.nextTick(()=>n(e));return}throw e}return l.call(s,e,...t)};let u=s.rmdirSync;s.rmdirSync=function(e,...t){return S(e),u.call(s,e,...t)};let d=s.appendFile;s.appendFile=function(e,...t){try{S(e)}catch(e){let n=t[t.length-1];if(typeof n==`function`){process.nextTick(()=>n(e));return}throw e}return d.call(s,e,...t)};let f=s.appendFileSync;s.appendFileSync=function(e,...t){return S(e),f.call(s,e,...t)};let p=s.copyFile;s.copyFile=function(e,t,...n){try{S(e),S(t)}catch(e){let t=n[n.length-1];if(typeof t==`function`){process.nextTick(()=>t(e));return}throw e}return p.call(s,e,t,...n)};let m=s.copyFileSync;s.copyFileSync=function(e,t,...n){return S(e),S(t),m.call(s,e,t,...n)};let h=s.rename;s.rename=function(e,t,...n){try{S(e),S(t)}catch(e){let t=n[n.length-1];if(typeof t==`function`){process.nextTick(()=>t(e));return}throw e}return h.call(s,e,t,...n)};let g=s.renameSync;s.renameSync=function(e,t,...n){return S(e),S(t),g.call(s,e,t,...n)};let v=s.createWriteStream;s.createWriteStream=function(e,...t){return S(e),v.call(s,e,...t)};let y=s.open;s.open=function(e,t,...n){if(C(typeof t==`function`?void 0:t))try{S(e)}catch(e){let r=n[n.length-1],i=typeof t==`function`?t:typeof r==`function`?r:void 0;if(i){process.nextTick(()=>i(e));return}throw e}return y.call(s,e,t,...n)};let b=s.openSync;s.openSync=function(e,t,...n){return C(t)&&S(e),b.call(s,e,t,...n)};let x=e=>{if(!e)return;let t=e.writeFile;t&&(e.writeFile=async function(n,...r){return S(n),t.call(e,n,...r)});let n=e.rm;n&&(e.rm=async function(t,...r){return S(t),n.call(e,t,...r)});let r=e.mkdir;r&&(e.mkdir=async function(t,...n){return S(t),r.call(e,t,...n)});let i=e.rmdir;i&&(e.rmdir=async function(t,...n){return S(t),i.call(e,t,...n)});let a=e.unlink;a&&(e.unlink=async function(t,...n){return S(t),a.call(e,t,...n)});let o=e.appendFile;o&&(e.appendFile=async function(t,...n){return S(t),o.call(e,t,...n)});let s=e.copyFile;s&&(e.copyFile=async function(t,n,...r){return S(t),S(n),s.call(e,t,n,...r)});let c=e.rename;c&&(e.rename=async function(t,n,...r){return S(t),S(n),c.call(e,t,n,...r)});let l=e.open;l&&(e.open=async function(t,n,...r){return C(n)&&S(t),l.call(e,t,n,...r)})};x(s.promises),x(_)}let T=!1;async function E(e=process.cwd(),a={}){if(!T){T=!0,r();try{n(await i(o.resolve(e,`docs`),e),e)}catch{}try{let n=await t(e,`development`);n.logLevel=`warn`,n.clearScreen=!1,a.port!==void 0&&(n.server=n.server||{},n.server.port=Number(a.port)),a.host!==void 0&&(n.server=n.server||{},n.server.host=a.host);let r=await v(n);await r.listen();let i=r.resolvedUrls;console.log(u(i?.local?.[0]??`http://localhost:${a.port??5173}`,i?.network?.[0]??null)),r.bindCLIShortcuts({print:!1})}catch(e){d(`Failed to start dev server:`,e),process.exit(1)}}}async function D(t=process.cwd()){r();try{let n=await e().run({root:t,timing:{}});n.success||(d(`Build failed at step "${n.failedStep}":`,n.error),process.exit(1)),m(`SSG build completed successfully in ${Math.round(n.timing.total)}ms!`),process.exit(0)}catch(e){d(`Build failed:`,e),process.exit(1)}}async function O(e=process.cwd(),n={}){try{let r=await t(e,`production`);r.logLevel=`warn`,r.clearScreen=!1,n.port!==void 0&&(r.preview=r.preview||{},r.preview.port=Number(n.port)),n.host!==void 0&&(r.preview=r.preview||{},r.preview.host=n.host);let i=(await a(r)).resolvedUrls;console.log(p(i?.local?.[0]??`http://localhost:${n.port??4173}`,i?.network?.[0]??null))}catch(e){d(`Failed to start preview server:`,e),process.exit(1)}}function k(e){let t=[];if(!s.existsSync(e))return t;try{let n=s.readdirSync(e);for(let r of n){let n=o.join(e,r);s.statSync(n).isDirectory()?r!==`node_modules`&&r!==`.git`&&r!==`dist`&&r!==`coverage`&&t.push(...k(n)):/\.(js|mjs|cjs|ts|tsx|jsx)$/.test(r)&&t.push(n)}}catch{}return t}async function A(e=process.cwd()){f(`Starting static security audit of Boltdocs plugins...`);let t;try{t=await i(o.resolve(e,`docs`),e)}catch(e){d(`Failed to load Boltdocs configuration for audit:`,e),process.exit(1)}let n=t.plugins||[];if(n.length===0){m(`No plugins configured. Nothing to audit.`);return}let r=[];for(let t of n){if(!t.name)continue;let n=null;try{let{createRequire:r}=await import(`node:module`),i=r(o.resolve(e,`package.json`)).resolve(`${t.name}/package.json`);n=o.dirname(i)}catch{let r=o.resolve(e,`node_modules`,t.name);s.existsSync(r)&&(n=r)}if(!n){r.push({name:c.cyan(t.name),status:c.red(`❓ Unresolved`),details:`Could not locate plugin files in node_modules.`});continue}let i=k(n),a=[];for(let e of i)try{let t=s.readFileSync(e,`utf-8`);t.includes(`fetch(`)&&a.push(`fetch`),t.includes(`axios`)&&a.push(`axios`),t.includes(`http.request`)&&a.push(`http.request`),t.includes(`https.request`)&&a.push(`https.request`),t.includes(`process.env`)&&a.push(`process.env`)}catch{}let l=Array.from(new Set(a));l.length>0?r.push({name:c.cyan(t.name),status:c.yellow(`⚠️ Warning`),details:`Contains network/env accesses: ${c.bold(l.join(`, `))}. Ensure you trust the author.`}):r.push({name:c.cyan(t.name),status:c.green(`✅ Clean`),details:`No external network calls or env accesses detected.`})}let a=[`Plugin`,`Status`,`Audit Notes`],l=r.map(e=>[e.name,e.status,e.details]);console.log(`
8
+ `+h(a,l)+`
9
+ `),r.some(e=>e.status.includes(`Warning`))?g(`⚠️ One or more plugins have security warnings. Review the flags above.`):m(`✓ All plugins passed the static security check!`)}process.noDeprecation=!0,w(),l({prefix:`boltdocs`,devServerTitle:`boltdocs dev server`,previewServerTitle:`boltdocs preview server`,updateCommand:`pnpm add boltdocs@latest`});const j=y(`boltdocs`);j.command(`dev [root]`,`Start development server`).option(`--port <port>`,`Port to listen on`).option(`--host [host]`,`Host to bind to`).action(E),j.command(`[root]`,`Start development server`).option(`--port <port>`,`Port to listen on`).option(`--host [host]`,`Host to bind to`).action(E),j.command(`build [root]`,`Build for production`).action(D),j.command(`preview [root]`,`Preview production build`).option(`--port <port>`,`Port to listen on`).option(`--host [host]`,`Host to bind to`).action(O),j.command(`audit [root]`,`Audit configured plugins for security warnings`).action(A),j.command(`doctor [root]`,`Check the health of your documentation`).option(`--fix`,`Automatically fix broken internal links and sync translations`).option(`--check-external`,`Verify external links (slower)`).option(`--init`,`Initialize doctor.json with default configuration`).option(`--budget`,`Check build performance against configured budgets`).action(async(e,t)=>{let{doctorAction:n}=await import(`../doctor-BGPdO1Ah.mjs`);await n(e,t)}),j.command(`generate-changelog <file>`,`Generate changelog documentation from CHANGELOG.md`).option(`-o, --output <path>`,`Output folder (default: docs/changelog)`,{default:`docs/changelog`}).option(`-t, --title <text>`,`Title for changelog pages`,{default:`Changelog`}).option(`--infer-tab`,`Infer tab from folder name (default: true)`,{default:!0}).option(`-l, --limit <number>`,`Limit number of versions to generate`).action(async(e,t)=>{let{generateChangelog:n}=await import(`../generator-BHCrLU6h.mjs`);await n(e,{output:t.output,title:t.title,inferTab:t.inferTab,limit:t.limit?parseInt(String(t.limit),10):void 0})}),j.help(),j.version(`2.0.0`),j.parse();export{};
@@ -3,4 +3,4 @@
3
3
  * Copyright (c) 2026 Jesus Alcala
4
4
  * Licensed under the MIT License.
5
5
  */
6
- Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}}),require(`../chunk-CU-zTemE.cjs`);const e=require(`../utils-Cjmx1hhk.cjs`),t=require(`../doctor-BArviV8X.cjs`),n=require(`../node-BfGSXyUz.cjs`);let r=require(`unist-util-visit`);exports.BoltdocsPluginStore=n.w,exports.EXIT=r.EXIT,exports.MDX_NODES=n.y,exports.PluginCompatibilityError=n.T,exports.PluginError=n.E,exports.PluginHookError=n.D,exports.PluginLifecycleManager=n.b,exports.PluginValidationError=n.O,exports.SKIP=r.SKIP,exports.addNodeClass=n.a,exports.createMdxAttribute=n.o,exports.createMdxElement=n.s,exports.createPlugin=n.i,exports.createRehypeElement=n.c,exports.createViteConfig=n.n,exports.default=n.t,exports.defineConfig=t.m,exports.generateEntryCode=n.r,exports.getNodeProperty=n.l,exports.hasNodeClass=n.u,exports.normalizePath=e.u,exports.parseMetaString=n.v,exports.removeNodeClass=n.d,exports.resolveConfig=t.p,exports.sanitizeFilename=e.f,exports.setNodeProperty=n.f,exports.validatePlugins=n.C,exports.visitMdxElements=n.p,exports.visitNodes=n.m,exports.visitRehypeElements=n.h,exports.visitRemarkHeadings=n.g,exports.visitRemarkLinks=n._;
6
+ Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}}),require(`../chunk-CU-zTemE.cjs`);const e=require(`../utils-Cjmx1hhk.cjs`),t=require(`../doctor-VBPlQf7d.cjs`),n=require(`../node-JM9bx0mO.cjs`);let r=require(`unist-util-visit`);exports.BoltdocsPluginStore=n.w,exports.EXIT=r.EXIT,exports.MDX_NODES=n.y,exports.PluginCompatibilityError=n.T,exports.PluginError=n.E,exports.PluginHookError=n.D,exports.PluginLifecycleManager=n.b,exports.PluginValidationError=n.O,exports.SKIP=r.SKIP,exports.addNodeClass=n.a,exports.createMdxAttribute=n.o,exports.createMdxElement=n.s,exports.createPlugin=n.i,exports.createRehypeElement=n.c,exports.createViteConfig=n.n,exports.default=n.t,exports.defineConfig=t.m,exports.generateEntryCode=n.r,exports.getNodeProperty=n.l,exports.hasNodeClass=n.u,exports.normalizePath=e.u,exports.parseMetaString=n.v,exports.removeNodeClass=n.d,exports.resolveConfig=t.p,exports.sanitizeFilename=e.f,exports.setNodeProperty=n.f,exports.validatePlugins=n.C,exports.visitMdxElements=n.p,exports.visitNodes=n.m,exports.visitRehypeElements=n.h,exports.visitRemarkHeadings=n.g,exports.visitRemarkLinks=n._;
@@ -3,4 +3,4 @@
3
3
  * Copyright (c) 2026 Jesus Alcala
4
4
  * Licensed under the MIT License.
5
5
  */
6
- import{A as e,D as t,E as n,O as r,S as i,T as a,_ as o,a as s,b as c,c as l,d as u,f as d,g as f,h as p,i as m,k as h,l as g,m as _,n as v,o as y,p as b,r as x,s as S,t as C,u as w,v as T,x as E,y as D}from"../node-NZrBn5jg.mjs";import{f as O,u as k}from"../utils-BYITg7T5.mjs";import{m as A,p as j}from"../doctor-CgLA7_Uv.mjs";export{n as BoltdocsPluginStore,s as EXIT,E as MDX_NODES,t as PluginCompatibilityError,r as PluginError,h as PluginHookError,i as PluginLifecycleManager,e as PluginValidationError,y as SKIP,S as addNodeClass,l as createMdxAttribute,g as createMdxElement,m as createPlugin,w as createRehypeElement,v as createViteConfig,C as default,A as defineConfig,x as generateEntryCode,u as getNodeProperty,d as hasNodeClass,k as normalizePath,c as parseMetaString,b as removeNodeClass,j as resolveConfig,O as sanitizeFilename,_ as setNodeProperty,a as validatePlugins,p as visitMdxElements,f as visitNodes,o as visitRehypeElements,T as visitRemarkHeadings,D as visitRemarkLinks};
6
+ import{A as e,D as t,E as n,O as r,S as i,T as a,_ as o,a as s,b as c,c as l,d as u,f as d,g as f,h as p,i as m,k as h,l as g,m as _,n as v,o as y,p as b,r as x,s as S,t as C,u as w,v as T,x as E,y as D}from"../node-q-Y2mdLX.mjs";import{f as O,u as k}from"../utils-BYITg7T5.mjs";import{m as A,p as j}from"../doctor-Dnv77Lfx.mjs";export{n as BoltdocsPluginStore,s as EXIT,E as MDX_NODES,t as PluginCompatibilityError,r as PluginError,h as PluginHookError,i as PluginLifecycleManager,e as PluginValidationError,y as SKIP,S as addNodeClass,l as createMdxAttribute,g as createMdxElement,m as createPlugin,w as createRehypeElement,v as createViteConfig,C as default,A as defineConfig,x as generateEntryCode,u as getNodeProperty,d as hasNodeClass,k as normalizePath,c as parseMetaString,b as removeNodeClass,j as resolveConfig,O as sanitizeFilename,_ as setNodeProperty,a as validatePlugins,p as visitMdxElements,f as visitNodes,o as visitRehypeElements,T as visitRemarkHeadings,D as visitRemarkLinks};
@@ -3,4 +3,4 @@
3
3
  * Copyright (c) 2026 Jesus Alcala
4
4
  * Licensed under the MIT License.
5
5
  */
6
- import{n as e}from"../../parser-BrkFi6YE.mjs";import{parentPort as t}from"node:worker_threads";if(!t)throw Error(`This file must be run as a worker thread.`);t.on(`message`,async n=>{if(n.type===`PARSE_FILE`)try{let r=await e(n.file,n.docsDir,n.basePath,n.config);t?.postMessage({type:`SUCCESS`,file:n.file,result:r})}catch(e){t?.postMessage({type:`ERROR`,file:n.file,error:e.message||`Unknown parsing error`})}});export{};
6
+ import{n as e}from"../../parser-9LqyiEnB.mjs";import{parentPort as t}from"node:worker_threads";if(!t)throw Error(`This file must be run as a worker thread.`);t.on(`message`,async n=>{if(n.type===`PARSE_FILE`)try{let r=await e(n.file,n.docsDir,n.basePath,n.config);t?.postMessage({type:`SUCCESS`,file:n.file,result:r})}catch(e){t?.postMessage({type:`ERROR`,file:n.file,error:e.message||`Unknown parsing error`})}});export{};
@@ -3,7 +3,7 @@
3
3
  * Copyright (c) 2026 Jesus Alcala
4
4
  * Licensed under the MIT License.
5
5
  */
6
- const e=require(`./chunk-CU-zTemE.cjs`),t=require(`./utils-Cjmx1hhk.cjs`),n=require(`./cache-CKm45d2w.cjs`),r=require(`./routes-DiYC4nD2.cjs`),i=require(`./doctor-BArviV8X.cjs`);let a=require(`@vitejs/plugin-react`);a=e.t(a);let o=require(`@tailwindcss/vite`);o=e.t(o);let s=require(`vite`),c=require(`node:path`);c=e.t(c);let l=require(`node:fs`);l=e.t(l);let u=require(`zod`),d=require(`@bdocs/dui`);d=e.t(d);let f=require(`node:crypto`);f=e.t(f);let ee=require(`vite-plugin-image-optimizer`),p=require(`semver`);p=e.t(p);let m=require(`node:module`);m=e.t(m);let h=require(`@bdocs/ssg/node`),g=require(`unist-util-visit`),te=require(`shiki/engine/javascript`),_=require(`shiki/core`),v=require(`@shikijs/themes/github-light`);v=e.t(v);let y=require(`@shikijs/themes/github-dark`);y=e.t(y);let b=require(`@shikijs/themes/tokyo-night`);b=e.t(b);let x=require(`@shikijs/themes/dracula`);x=e.t(x);let S=require(`@shikijs/themes/nord`);S=e.t(S);let C=require(`@shikijs/themes/one-dark-pro`);C=e.t(C);let w=require(`@shikijs/themes/one-light`);w=e.t(w);let T=require(`@shikijs/langs/html`);T=e.t(T);let E=require(`@shikijs/langs/js`);E=e.t(E);let D=require(`@shikijs/langs/ts`);D=e.t(D);let O=require(`@shikijs/langs/tsx`);O=e.t(O);let k=require(`@shikijs/langs/css`);k=e.t(k);let ne=require(`@shikijs/langs/json`);ne=e.t(ne);let re=require(`@shikijs/langs/bash`);re=e.t(re);let ie=require(`@shikijs/langs/markdown`);ie=e.t(ie);let ae=require(`@shikijs/langs/mdx`);ae=e.t(ae);let oe=require(`@shikijs/langs/yaml`);oe=e.t(oe);let se=require(`@shikijs/langs/rust`);se=e.t(se);let ce=require(`@shikijs/langs/toml`);ce=e.t(ce);let le=require(`@shikijs/langs/csv`);le=e.t(le);let A=require(`@mdx-js/rollup`);A=e.t(A);let j=require(`remark-gfm`);j=e.t(j);let M=require(`remark-frontmatter`);M=e.t(M);let N=require(`rehype-slug`);N=e.t(N);function ue(e){return`<!doctype html>
6
+ const e=require(`./chunk-CU-zTemE.cjs`),t=require(`./utils-Cjmx1hhk.cjs`),n=require(`./cache-CKm45d2w.cjs`),r=require(`./routes-DpJnb2VS.cjs`),i=require(`./doctor-VBPlQf7d.cjs`);let a=require(`@vitejs/plugin-react`);a=e.t(a);let o=require(`@tailwindcss/vite`);o=e.t(o);let s=require(`vite`),c=require(`node:path`);c=e.t(c);let l=require(`node:fs`);l=e.t(l);let u=require(`zod`),d=require(`@bdocs/dui`);d=e.t(d);let f=require(`node:crypto`);f=e.t(f);let ee=require(`vite-plugin-image-optimizer`),p=require(`semver`);p=e.t(p);let m=require(`node:module`);m=e.t(m);let h=require(`@bdocs/ssg/node`),g=require(`unist-util-visit`),te=require(`shiki/engine/javascript`),_=require(`shiki/core`),v=require(`@shikijs/themes/github-light`);v=e.t(v);let y=require(`@shikijs/themes/github-dark`);y=e.t(y);let b=require(`@shikijs/themes/tokyo-night`);b=e.t(b);let x=require(`@shikijs/themes/dracula`);x=e.t(x);let S=require(`@shikijs/themes/nord`);S=e.t(S);let C=require(`@shikijs/themes/one-dark-pro`);C=e.t(C);let w=require(`@shikijs/themes/one-light`);w=e.t(w);let T=require(`@shikijs/langs/html`);T=e.t(T);let E=require(`@shikijs/langs/js`);E=e.t(E);let D=require(`@shikijs/langs/ts`);D=e.t(D);let O=require(`@shikijs/langs/tsx`);O=e.t(O);let k=require(`@shikijs/langs/css`);k=e.t(k);let ne=require(`@shikijs/langs/json`);ne=e.t(ne);let re=require(`@shikijs/langs/bash`);re=e.t(re);let ie=require(`@shikijs/langs/markdown`);ie=e.t(ie);let ae=require(`@shikijs/langs/mdx`);ae=e.t(ae);let oe=require(`@shikijs/langs/yaml`);oe=e.t(oe);let se=require(`@shikijs/langs/rust`);se=e.t(se);let ce=require(`@shikijs/langs/toml`);ce=e.t(ce);let le=require(`@shikijs/langs/csv`);le=e.t(le);let A=require(`@mdx-js/rollup`);A=e.t(A);let j=require(`remark-gfm`);j=e.t(j);let M=require(`remark-frontmatter`);M=e.t(M);let N=require(`rehype-slug`);N=e.t(N);function ue(e){return`<!doctype html>
7
7
  <html lang="en">
8
8
  <head>
9
9
  <meta charset="UTF-8" />
@@ -37,7 +37,8 @@ const e=require(`./chunk-CU-zTemE.cjs`),t=require(`./utils-Cjmx1hhk.cjs`),n=requ
37
37
  <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=${e.tagId}"
38
38
  height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
39
39
  <!-- End Google Tag Manager (noscript) -->
40
- `}}return e=e.replace(`</head>`,` ${o}\n
40
+ `}}return e=e.replace(`<head>`,`<head>
41
+
41
42
  <script>
42
43
  (function() {
43
44
  try {
@@ -52,7 +53,7 @@ const e=require(`./chunk-CU-zTemE.cjs`),t=require(`./utils-Cjmx1hhk.cjs`),n=requ
52
53
  }
53
54
  })();
54
55
  <\/script>
55
- \n${s}${c} </head>`),l&&(e=e.replace(/<body([^>]*)>/,`<body$1>\n${l}`)),!e.includes(`src/main`)&&!e.includes(`virtual:boltdocs-entry`)&&(e=e.replace(`</body>`,` <script type="module">import "virtual:boltdocs-entry";<\/script>
56
+ `),e=e.replace(`</head>`,` ${o}\n${s}${c} </head>`),l&&(e=e.replace(/<body([^>]*)>/,`<body$1>\n${l}`)),!e.includes(`src/main`)&&!e.includes(`virtual:boltdocs-entry`)&&(e=e.replace(`</body>`,` <script type="module">import "virtual:boltdocs-entry";<\/script>
56
57
  </body>`)),e}var P=class extends Error{name=this.constructor.name;constructor(e,t,n){super(`[plugin:${e}] ${t}`,n),this.pluginName=e}},F=class extends P{constructor(e,t){super(e,`Validation failed: ${t}`)}},fe=class extends P{constructor(e,t){super(e,`Compatibility error: ${t}`)}},I=class extends P{constructor(e,t,n){super(e,`Error in hook '${t}': ${n.message}`,{cause:n}),this.hookName=t}},pe=class{data=new Map;getNamespaceKey(e,t){return`${e}:${t}`}get(e,t){let n=this.getNamespaceKey(e,t),r=this.data.get(n);if(r!==void 0)return typeof r==`object`&&r?JSON.parse(JSON.stringify(r)):r}set(e,t,n){let r=this.getNamespaceKey(e,t),i=typeof n==`object`&&n?JSON.parse(JSON.stringify(n)):n;this.data.set(r,i)}has(e,t){let n=this.getNamespaceKey(e,t);return this.data.has(n)}};const me=i._.extend({version:u.z.string().optional(),boltdocsVersion:u.z.string().optional(),hooks:u.z.object({beforeBuild:u.z.function().optional(),afterBuild:u.z.function().optional(),beforeDev:u.z.function().optional(),afterDev:u.z.function().optional(),buildEnd:u.z.function().optional(),transformMdx:u.z.function().optional(),transformHtml:u.z.function().optional()}).optional()});function he(e,t){let n=[],r=new Set;for(let i of e){let e=me.safeParse(i);if(!e.success)throw new F(i.name||`unknown`,e.error.issues.map(e=>`${e.path.join(`.`)}: ${e.message}`).join(`, `));let a=e.data;if(r.has(a.name))throw new F(a.name,`Duplicate plugin name detected`);if(r.add(a.name),a.boltdocsVersion&&!p.default.satisfies(t,a.boltdocsVersion))throw new fe(a.name,`Plugin expects Boltdocs version ${a.boltdocsVersion}, but current is ${t}`);if(a.components){for(let[e,t]of Object.entries(a.components))if((t.includes(`..`)||c.default.isAbsolute(t))&&t.includes(`..`))throw new F(a.name,`Component '${e}' has an invalid path: traversal sequences are not allowed.`)}n.push(a)}return n}function ge(e,t=process.cwd()){let n=e.plugins||[];for(let e of n)if(e.name)try{let n=null;try{let{createRequire:r}=require(`node:module`);n=r(c.default.resolve(t,`package.json`)).resolve(`${e.name}/package.json`)}catch{let r=c.default.resolve(t,`node_modules`,e.name,`package.json`);l.default.existsSync(r)&&(n=r)}if(n&&l.default.existsSync(n)){let t=JSON.parse(l.default.readFileSync(n,`utf-8`)).scripts||{};(t.preinstall||t.postinstall||t.install)&&(0,d.warn)(`💡 ${d.colors.yellow(d.colors.bold(`Nota de seguridad:`))} El plugin ${d.colors.cyan(e.name)} ejecuta scripts nativos al instalarse. Corre ${d.colors.bold(`boltdocs audit`)} para un análisis detallado.`)}}catch{}}var _e=class{name=`ConfigResolve`;async execute(e){e.config=await i.p(`docs`,e.root),ge(e.config,e.root),e.viteConfig=await Nt(e.root,`production`)}};function L(e){return e.map(e=>({path:e.path,filePath:e.filePath,title:e.title,description:e.description||``,sidebarPosition:e.sidebarPosition,badge:e.badge,icon:e.icon,headings:e.headings||[],_content:e._content||``,_rawContent:e._rawContent||``,locale:e.locale,version:e.version,tab:e.tab,collection:e.collection,tags:e.tags,author:e.author,draft:e.draft,excerpt:e.excerpt,coverImage:e.coverImage,group:e.group,groupTitle:e.groupTitle,groupPosition:e.groupPosition,groupIcon:e.groupIcon,subRouteGroup:e.subRouteGroup,seo:e.seo,date:e.date,lastUpdated:e.lastUpdated,category:e.category,order:e.order,sidebarLabel:e.sidebarLabel,sidebarHidden:e.sidebarHidden,frontmatter:e.frontmatter,slugParts:e.slugParts}))}var ve=class{name=`RouteGenerate`;async execute(e){if(!e.config)throw Error(`Config not resolved. Run ConfigResolve first.`);let t=c.default.resolve(e.root,`docs`),n=e.viteConfig?.base||e.config.base||`/docs`;e.routes=[...await r.t(t,e.config,n)],e.ssgRoutes=L(e.routes)}};const ye=u.z.object({title:u.z.string().optional(),description:u.z.string().optional(),canonical:u.z.string().url().optional(),robots:u.z.string().optional(),noindex:u.z.boolean().optional(),"og:title":u.z.string().optional(),"og:description":u.z.string().optional(),"og:image":u.z.string().optional(),"og:type":u.z.string().optional(),"og:url":u.z.string().url().optional()});var be=class{name=`SEOValidate`;async execute(e){if(!e.routes||!e.config)throw Error(`Routes or Config not initialized.`);let t=e.config.siteUrl;e.routes=e.routes.map(e=>{let n=e.seo||{},r=n.canonical||(t?`${t.replace(/\/$/,``)}${e.path}`:void 0),i=n[`og:url`]||r||void 0,a={...n};r&&(a.canonical=r),i&&(a[`og:url`]=i),!a[`og:title`]&&e.title&&(a[`og:title`]=e.title),!a[`og:description`]&&e.description&&(a[`og:description`]=e.description);let o=ye.safeParse(a);return o.success||(0,d.warn)(`[SEOValidate] Validation issues on route "${e.path}":`,o.error.message),e.title||(0,d.warn)(`[SEOValidate] Route "${e.path}" is missing a title.`),{...e,seo:a}}),e.ssgRoutes=L(e.routes)}},xe=class{name=`TypeGenerate`;async execute(e){if(!e.config||!e.routes)throw Error(`Config or Routes not initialized.`);let t=c.default.resolve(e.root,`docs`),n=e.routes.map(e=>e.path),r=(e.config.base||`/docs`).replace(/\/$/,``);n.includes(r)||n.push(r),i.h(e.config,t,e.root,n),i.g(n)}},Se=class{name=`SSGBuild`;async execute(e){if(!e.routes||!e.viteConfig)throw Error(`Routes or ViteConfig not initialized.`);let t={};for(let n of e.routes)if(n.path&&n.componentPath){t[n.path]=n.componentPath;let e=n.path.replace(/\/$/,``);t[e]=n.componentPath}await(0,h.build)({entry:`boltdocs/entry`,routeToSourceFileMap:t,cacheDir:c.default.resolve(e.root,`.boltdocs/build`)},e.viteConfig),e.outDir=e.viteConfig.build?.outDir||`dist`}};function Ce(e,n){let r=(n.siteUrl||``).replace(/\/$/,``);if(!r)return``;let i=n.seo?.indexing!==`all`&&n.seo?.indexing!==`public`;return`<?xml version="1.0" encoding="UTF-8"?>
57
58
  <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
58
59
  ${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>
@@ -156,4 +157,4 @@ ${g}
156
157
  const mdxComponents = components.default || components;
157
158
  export default mdxComponents;
158
159
  export * from '${e}';`}return`export default {};`}if(s===`layout`){let e=[`tsx`,`jsx`],n=null;for(let t of e){let e=c.default.resolve(a,`layout.${t}`);if(l.default.existsSync(e)){n=e;break}}if(n)return`import UserLayout from '${t.u(n)}';
159
- export default UserLayout;`;throw Error(`[Boltdocs] Layout file not found. A 'layout.tsx' or 'layout.jsx' file is mandatory in your docs directory. Please create one to define your site structure.`)}if(s===`icons`){let e=[`tsx`,`jsx`,`ts`,`js`],n=null;for(let t of e){let e=c.default.resolve(a,`icons.${t}`);if(l.default.existsSync(e)){n=e;break}}return n?`import * as icons from '${t.u(n)}';\nexport default icons;`:`export default {};`}if(s===`search`){if(!J){let e=rt(await r.t(a,o));J=`export default ${JSON.stringify(e,null,2)};`}return J}if(s===`client`){let e=__dirname,n=``;for(;e&&e!==c.default.parse(e).root;){let r=c.default.join(e,`src/client/index.ts`),i=c.default.join(e,`dist/client/index.mjs`),a=c.default.join(e,`client/index.ts`);if(l.default.existsSync(r)){n=t.u(r);break}if(l.default.existsSync(i)){n=t.u(i);break}if(l.default.existsSync(a)){n=t.u(a);break}e=c.default.dirname(e)}if(!n)throw Error(`[boltdocs] Could not resolve boltdocs/client entry point starting from ${__dirname}`);return`export * from '${n}';`}}}}const ot={"X-Content-Type-Options":`nosniff`,"X-Frame-Options":`DENY`,"X-XSS-Protection":`1; mode=block`,"Referrer-Policy":`strict-origin-when-cross-origin`,"Permissions-Policy":`camera=(), microphone=(), geolocation=()`,"Strict-Transport-Security":`max-age=31536000; includeSubDomains`};function st(e){let t=process.env.NODE_ENV===`development`,n={"default-src":[`'self'`],"script-src":[`'self'`,`'unsafe-inline'`],"style-src":[`'self'`,`'unsafe-inline'`],"img-src":[`'self'`,`data:`,`https:`],"font-src":[`'self'`],"connect-src":[`'self'`]};return t&&(n[`script-src`]=[`'self'`,`'unsafe-eval'`,`'unsafe-inline'`],n[`style-src`]=[`'self'`,`'unsafe-inline'`]),Object.entries(n).map(([e,t])=>`${e} ${t.join(` `)}`).join(`; `)}const ct=/\.(js|css|png|jpe?g|gif|svg|ico|webp|woff2?|ttf|otf|mp4|webm|ogg|mp3|wav|flac|aac|pdf|zip|gz|map|json)$/i;function lt(e,t){let n=process.env.NODE_ENV===`production`;e.middlewares.use((e,r,i)=>{n&&Object.entries(ot).forEach(([e,t])=>{r.setHeader(e,t)});let a=t();a.security?.enableCSP&&r.setHeader(`Content-Security-Policy`,st(a)),i()}),e.middlewares.use((e,t,n)=>{if(e.url===`/robots.txt`){n();return}n()}),e.middlewares.use(async(n,r,i)=>{let a=n.url?.split(`?`)[0]||`/`,o=n.headers.accept||``,s=t();if(o.includes(`text/html`)&&!ct.test(a)){let t=ue(s);t=de(t,s),t=await e.transformIndexHtml(n.url||`/`,t),r.statusCode=200,r.setHeader(`Content-Type`,`text/html`),r.end(t);return}i()})}function ut(e,t,n){setTimeout(async()=>{try{let{generateRoutes:r}=await Promise.resolve().then(()=>require(`./routes-DJNJ-rTt.cjs`)),i=(await r(t,n())).filter(e=>e.filePath).map(e=>e.filePath);for(let t=0;t<i.length;t+=8){let n=i.slice(t,t+8);await Promise.allSettled(n.map(t=>{let n=c.default.relative(process.cwd(),t).replace(/\\/g,`/`),r=n.startsWith(`/`)?n:`/${n}`;return e.transformRequest(r)}))}}catch{}},1e3)}const dt=[`tsx`,`jsx`],ft=[`tsx`,`ts`,`jsx`,`js`];function pt(e,t){let n=i.f.map(e=>c.default.resolve(process.cwd(),e)),r=dt.map(e=>c.default.resolve(t,`layout.${e}`)),a=ft.map(e=>c.default.resolve(t,`mdx-components.${e}`)),o=ft.map(e=>c.default.resolve(t,`pages-external/index.${e}`)),s=ft.map(e=>c.default.resolve(t,`icons.${e}`));e.watcher.add([...n,...a,...r,...o,...s])}const Y=new Map;function mt(e){let{lastUpdated:t,...n}=e;return f.default.createHash(`md5`).update(JSON.stringify(n)).digest(`hex`)}async function ht(e){try{let{data:n}=await t.d(e);return mt(n)}catch{return``}}function gt(e){let t=Y.get(e);if(t===void 0){let n=r.r.get(e);n?.route?.frontmatter&&(t=mt(n.route.frontmatter),Y.set(e,t))}return t}function _t(e,t){Y.set(e,t)}function vt(e){Y.delete(e)}const yt=[`tsx`,`ts`,`jsx`,`js`];function X(e,t){let n=e.moduleGraph.getModuleById(`\0virtual:boltdocs-${t}.ts`);n&&e.moduleGraph.invalidateModule(n)}function bt(e,n,a,o){let s=new Map,l=a.toLowerCase(),u=async(a,u)=>{try{let f=t.u(a);if(i.f.some(e=>f.endsWith(e))){e.restart();return}if(yt.some(e=>f.endsWith(`mdx-components.${e}`))){i.h(o(),n),X(e,`mdx-components.tsx`),e.ws.send({type:`full-reload`});return}if(yt.some(e=>f.endsWith(`icons.${e}`))){X(e,`icons.tsx`),e.ws.send({type:`full-reload`});return}if(f.endsWith(`layout.tsx`)||f.endsWith(`layout.jsx`)){X(e,`layout.tsx`),e.ws.send({type:`full-reload`});return}if(f.includes(`/pages-external/`)||f.includes(`\\pages-external\\`)){X(e,`entry`),e.ws.send({type:`full-reload`});return}if(!f.toLowerCase().startsWith(l)||!t.c(f))return;if(u===`add`||u===`unlink`){u===`unlink`&&vt(a),r.n(),it();let t=o();i.h(t,n),X(e,`config`),X(e,`routes`),X(e,`search`),X(e,`collections`),i.c(n,process.cwd(),t).catch(e=>{(0,d.error)(`Failed to update link tree:`,e)}),e.ws.send({type:`custom`,event:`boltdocs:config-update`,data:{theme:t?.theme,i18n:t?.i18n,versions:t?.versions,siteUrl:t?.siteUrl}}),e.ws.send({type:`full-reload`});return}s.has(f)&&clearTimeout(s.get(f)),s.set(f,setTimeout(async()=>{s.delete(f);try{let i=gt(a),o=await ht(a);if(_t(a,o),r.i(a),i!==void 0&&i!==o){X(e,`routes`),X(e,`search`),X(e,`collections`),e.ws.send({type:`full-reload`});return}let s=t.u(c.default.relative(n,a)),l=e.moduleGraph.getModulesByFile(f);if(l&&l.size>0)for(let t of l)e.moduleGraph.invalidateModule(t);else{e.ws.send({type:`full-reload`});return}e.ws.send({type:`custom`,event:`boltdocs:mdx-update`,data:{file:f,relPath:s}})}catch(e){(0,d.error)(`HMR error processing content change:`,e)}},150))}catch(e){(0,d.error)(`HMR error during ${u} event:`,e)}};e.watcher.on(`add`,e=>u(e,`add`)),e.watcher.on(`unlink`,e=>u(e,`unlink`)),e.watcher.on(`change`,e=>u(e,`change`))}function xt(e){let n=e.toLowerCase();return({file:e})=>{if(e.toLowerCase().startsWith(n)&&t.c(e))return[]}}function St(e,t,n,r,a){return{name:`vite-plugin-boltdocs-dev-server`,apply:`serve`,async configureServer(r){let o=a();await o?.runHook(`beforeDev`),i.c(e,process.cwd(),n()).catch(e=>{(0,d.error)(`Failed to generate initial link tree:`,e)}),ut(r,e,n),lt(r,n),pt(r,e),bt(r,e,t,n),await o?.runHook(`afterDev`)},hotUpdate:xt(t)}}const Z=new n.r(`mdx`);function Ct(e){let t=He(e);return async e=>{let n=await t.getHighlighter();W(e,R.ELEMENT,e=>{if(e.tagName!==`pre`)return;let r=e.children?.[0];if(!r||r.type!==R.ELEMENT||r.tagName!==`code`)return;let i=(r.properties?.className||[]).find(e=>e.startsWith(`language-`)),a=i?i.slice(9):V.MDX_DEFAULT_LANG;if(a===`mermaid`)return;let o=U(r.properties?.metastring||r.data?.meta||``),s=t.getOptions(a,o),c=r.children?.[0]?.value||``;try{let t=n.codeToHast(c,s),r=t.type===`root`?t.children[0]:t;e.children=r.children,e.properties={...e.properties,...r.properties,[z.HIGHLIGHTED]:`true`,[z.LANG]:a}}catch(t){(0,d.error)(`[rehypeShiki] Failed to highlight code block:`,t),e.properties=e.properties||{},e.properties.className=[...e.properties.className||[],B.FALLBACK],e.properties[z.HIGHLIGHTED]=`false`,e.properties[z.LANG]=a}return o.title&&(e.properties[z.TITLE]=o.title),g.SKIP})}}function wt(){return e=>{W(e,R.CODE,e=>{e.meta&&Ge(e,`metastring`,e.meta)})}}let Tt=!1;function Et(e,t,n=A.default){let r=e?.plugins?.flatMap(e=>e.remarkPlugins||[])||[],i=e?.plugins?.flatMap(e=>e.rehypePlugins||[])||[],a=n({remarkPlugins:[j.default,M.default,wt,...r],rehypePlugins:[N.default,[Ct,e],...i],jsxRuntime:`automatic`});return{...a,name:`vite-plugin-boltdocs-mdx`,async buildStart(){Tt||=(await Z.load(),!0),a.buildStart&&await a.buildStart.call(this)},async transform(e,n,r){let[i]=n.split(`?`);if(!i.endsWith(`.md`)&&!i.endsWith(`.mdx`))return a.transform?.call(this,e,n,r);let o=`${i}:${f.default.createHash(`md5`).update(e).digest(`hex`)}:${process.env.NODE_ENV===`production`?`prod`:`dev`}:v3`,s=await Z.getAsync(o);if(s)return{code:s,map:null};let c=await a.transform.call(this,e,i,r);if(c&&typeof c==`object`&&c.code){let e=c.code,n=t?.();return n&&(e=(await n.runChain(`transformMdx`,{code:e,filePath:i})).code),Z.set(o,e),{code:e,map:null}}return c},async buildEnd(){Z.save(),await Z.flush(),a.buildEnd&&await a.buildEnd.call(this)}}}const Q=m.createRequire(require(`url`).pathToFileURL(__filename).href);function Dt(e){try{let e=c.default.join(process.cwd(),`node_modules/boltdocs/package.json`);if(l.default.existsSync(e)){let t=l.default.realpathSync(e);return m.createRequire(t)}else return m.createRequire(c.default.join(process.cwd(),`package.json`))}catch{return e}}function Ot(e){let t=c.default.dirname(e);for(;t&&t!==c.default.dirname(t);){let e=c.default.join(t,`package.json`);if(l.default.existsSync(e))return e;t=c.default.dirname(t)}return null}function kt(e){let t=e.split(`/`);return e.startsWith(`@`)?{packageName:t.slice(0,2).join(`/`),subpath:t.slice(2).join(`/`)}:{packageName:t[0],subpath:t.slice(1).join(`/`)}}function $(e,t=Q){try{let{packageName:n,subpath:r}=kt(e),i;try{i=t.resolve(n+`/package.json`)}catch{i=Ot(t.resolve(n))||``}if(!i)throw Error(`Could not find package.json for ${n}`);let a=c.default.dirname(i),o=JSON.parse(l.default.readFileSync(i,`utf-8`)),s=``,u=r?`./`+r:`.`;if(o.exports){let e=o.exports[u]||o.exports[r];e&&(s=typeof e==`string`?e:e.import||e.default||e.require||e)}if(!s&&!r&&(s=o.module||o.main||`index.js`),typeof s==`object`&&s){let e=s;s=e.import||e.default||e.require||``}if(s){let e=c.default.resolve(a,s);if(l.default.existsSync(e))return e}}catch{}return t.resolve(e)}function At(){let e=[`react`,`react-dom`,`react-router-dom`,`react-helmet-async`,`@bdocs/ssg`,`react-fast-compare`,`invariant`],n=[],r=Dt(Q);for(let t of e)try{let e=``;e=t===`@bdocs/ssg`||t===`react-router-dom`||t===`react-helmet-async`?$(t,r):r.resolve(t),e&&n.push(l.default.realpathSync(e))}catch{}if(r!==Q)for(let t of e)try{let e=``;e=t===`@bdocs/ssg`||t===`react-router-dom`||t===`react-helmet-async`?$(t,Q):Q.resolve(t),e&&n.push(l.default.realpathSync(e))}catch{}for(let e of[`react/jsx-runtime`,`react/jsx-dev-runtime`,`react-dom/client`]){try{n.push(l.default.realpathSync(r.resolve(e)))}catch{}if(r!==Q)try{n.push(l.default.realpathSync(Q.resolve(e)))}catch{}}return Array.from(new Set(n)).map(e=>t.u(e))}function jt(e={},n){let a=c.default.resolve(process.cwd(),e.docsDir||`docs`),o=t.u(a),u=n,d,f=!1,p,m=[],h=()=>u,g=e=>{u=e},te=()=>d,_=()=>p;return[{name:`vite-plugin-boltdocs`,enforce:`pre`,async config(e,t){f=t.command===`build`;let n=!!(t.isSsrBuild||e.build?.ssr),o=e.envDir||process.cwd(),c=(0,s.loadEnv)(t.mode,o,``);if(Object.assign(process.env,c),!u){u=await i.p(a);let e=(await r.t(a,u)).map(e=>e.path),t=(u.base||`/docs`).replace(/\/$/,``);e.includes(t)||e.push(t),i.h(u,a,void 0,e),i.g(e)}let l=(await Promise.resolve().then(()=>require(`./package-DBz4CSnw.cjs`))).version,d=he(u.plugins||[],l);return u.plugins=d,p=new Oe(d,u),m=d.flatMap(e=>e.vitePlugins||[]),f&&await p.runHook(`beforeBuild`),{base:u.base||`/docs`,ssgOptions:{entry:`boltdocs/entry`,htmlEntry:`index.html`,dirStyle:`flat`,includeAllRoutes:!0,mock:!0,script:`async`,beastiesOptions:{preload:`media`}},build:{ssrManifest:f},optimizeDeps:{include:[`react`,`react-dom`,`react-dom/client`,`react-router-dom`,`react-helmet-async`,`react-fast-compare`,`invariant`],exclude:[`boltdocs`,`boltdocs/client`]},resolve:{alias:[{find:`react-router-dom`,replacement:$(`react-router-dom`)},{find:`react-helmet-async`,replacement:$(`react-helmet-async`)},{find:`@bdocs/ssg`,replacement:$(`@bdocs/ssg`)}],dedupe:[`react`,`react-dom`,...n?[]:[`react-router-dom`,`react-helmet-async`,`@bdocs/ssg`]]},ssr:{external:[`react`,`react-dom`,`react-helmet-async`,`@bdocs/ssg`,`react-fast-compare`,`invariant`,...At()],optimizeDeps:{include:[`react-fast-compare`,`invariant`]},noExternal:[`react-router-dom`]}}},configResolved(e){d=e},resolveId(e,t,n){let r=[`react`,`react-dom`,`react-router-dom`,`react-helmet-async`,`@bdocs/ssg`].find(t=>e===t||e.startsWith(t+`/`)||e.includes(`/node_modules/${t}/`)||t.startsWith(`@`)&&e.includes(`/node_modules/${t.replace(`/`,c.default.sep)}/`));if(r&&n?.ssr){let t=e;if(!c.default.isAbsolute(e)){let n=Dt(Q);try{t=r===`@bdocs/ssg`||r===`react-router-dom`||r===`react-helmet-async`?$(e,n):n.resolve(e)}catch{try{t=r===`@bdocs/ssg`||r===`react-router-dom`||r===`react-helmet-async`?$(e,Q):Q.resolve(e)}catch{}}}try{t=l.default.realpathSync(t)}catch{}return{id:t,external:!0}}return null},transformIndexHtml:{order:`pre`,handler(e){return de(e,u)}},async buildEnd(){let{pool:e}=await Promise.resolve().then(()=>require(`./worker-pool-CtqklOXq.cjs`));await e.terminate()},async closeBundle(){!f||d?.build?.ssr||(await p?.runHook(`afterBuild`),await p?.runHook(`buildEnd`))},configurePreviewServer(e){let t=d?.build?.outDir?c.default.resolve(d.root||process.cwd(),d.build.outDir):c.default.resolve(process.cwd(),`dist`);e.middlewares.use((e,n,r)=>{let i=e.url||`/`,a=i.split(`?`)[0].split(`#`)[0];if(c.default.extname(a))return r();let o=a.replace(/\/$/,``)||`/`,s=c.default.join(t,o,`index.html`);o!==`/`&&l.default.existsSync(s)&&(e.url=`${o}/index.html${i.includes(`?`)?`?${i.split(`?`)[1]}`:``}`),r()})}},at(e,h,te,a),St(a,o,h,g,_),Et(u,_),{...(0,ee.ViteImageOptimizer)({includePublic:!0,png:{quality:80},jpeg:{quality:80},jpg:{quality:80},webp:{quality:80},avif:{quality:80},svg:{multipass:!0,plugins:[{name:`preset-default`}]}}),apply:`build`},...m]}(0,m.createRequire)(require(`url`).pathToFileURL(__filename).href);async function Mt(e){let t=e?.docsDir||`docs`,n=await i.p(t),a=(await r.t(t,n)).map(e=>e.path),o=(n.base||`/docs`).replace(/\/$/,``);return a.includes(o)||a.push(o),i.h(n,t,void 0,a),i.g(a),jt({...e},n)}async function Nt(e,t=`development`){let n=await i.p(`docs`,e),l=(await r.t(`docs`,n)).map(e=>e.path),u=(n.base||`/docs`).replace(/\/$/,``);l.includes(u)||l.push(u),i.h(n,`docs`,e,l),i.g(l);let d=t===`production`,f=d?{...ot}:{};return n.security?.enableCSP&&(f[`Content-Security-Policy`]=st(n)),{root:e,mode:t,oxc:{jsx:{development:!d,runtime:`automatic`,importSource:`react`}},optimizeDeps:{include:[`react`,`react-dom`,`react-dom/client`,`react-helmet-async`,`react-router-dom`,`react-fast-compare`,`invariant`,`use-sync-external-store/shim`]},build:{},plugins:[(0,a.default)(),(0,o.default)(),...jt({docsDir:`docs`,root:e},n)],resolve:{alias:[{find:`boltdocs/entry`,replacement:(0,s.normalizePath)(c.default.resolve(e,`boltdocs-entry.tsx`))},{find:`boltdocs/client`,replacement:(0,s.normalizePath)(c.default.resolve(e,`boltdocs-client.mjs`))},{find:`use-sync-external-store/shim/index.js`,replacement:`react`},{find:`use-sync-external-store/shim`,replacement:`react`},{find:`use-sync-external-store`,replacement:`react`}],dedupe:[`react`,`react-dom`]},ssr:{external:[`react`,`react-dom`,`react-helmet-async`,`@bdocs/ssg`,`react-fast-compare`,`invariant`,...At()],optimizeDeps:{include:[`react`,`react-dom`,`react-fast-compare`,`invariant`,...n.vite?.ssr?.optimizeDeps?.include||[]]},noExternal:[`boltdocs`,/@bdocs\/(?!ssg).*/,`react-aria-components`,`@react-aria/collections`,`@react-aria/utils`,`react-router-dom`]},server:{headers:{...f,...n.vite?.server?.headers},...n.vite?.server},preview:{headers:{...f,...n.vite?.preview?.headers},...n.vite?.preview},...n.vite}}Object.defineProperty(exports,`C`,{enumerable:!0,get:function(){return he}}),Object.defineProperty(exports,`D`,{enumerable:!0,get:function(){return I}}),Object.defineProperty(exports,`E`,{enumerable:!0,get:function(){return P}}),Object.defineProperty(exports,`O`,{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,`S`,{enumerable:!0,get:function(){return ge}}),Object.defineProperty(exports,`T`,{enumerable:!0,get:function(){return fe}}),Object.defineProperty(exports,`_`,{enumerable:!0,get:function(){return Ze}}),Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return Qe}}),Object.defineProperty(exports,`b`,{enumerable:!0,get:function(){return Oe}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return Je}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return $e}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return Ge}}),Object.defineProperty(exports,`g`,{enumerable:!0,get:function(){return Xe}}),Object.defineProperty(exports,`h`,{enumerable:!0,get:function(){return Ue}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return tt}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return Ke}}),Object.defineProperty(exports,`m`,{enumerable:!0,get:function(){return W}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return Nt}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return qe}}),Object.defineProperty(exports,`p`,{enumerable:!0,get:function(){return We}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return K}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return Ye}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return Mt}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return et}}),Object.defineProperty(exports,`v`,{enumerable:!0,get:function(){return U}}),Object.defineProperty(exports,`w`,{enumerable:!0,get:function(){return pe}}),Object.defineProperty(exports,`x`,{enumerable:!0,get:function(){return Ee}}),Object.defineProperty(exports,`y`,{enumerable:!0,get:function(){return R}});
160
+ export default UserLayout;`;throw Error(`[Boltdocs] Layout file not found. A 'layout.tsx' or 'layout.jsx' file is mandatory in your docs directory. Please create one to define your site structure.`)}if(s===`icons`){let e=[`tsx`,`jsx`,`ts`,`js`],n=null;for(let t of e){let e=c.default.resolve(a,`icons.${t}`);if(l.default.existsSync(e)){n=e;break}}return n?`import * as icons from '${t.u(n)}';\nexport default icons;`:`export default {};`}if(s===`search`){if(!J){let e=rt(await r.t(a,o));J=`export default ${JSON.stringify(e,null,2)};`}return J}if(s===`client`){let e=__dirname,n=``;for(;e&&e!==c.default.parse(e).root;){let r=c.default.join(e,`src/client/index.ts`),i=c.default.join(e,`dist/client/index.mjs`),a=c.default.join(e,`client/index.ts`);if(l.default.existsSync(r)){n=t.u(r);break}if(l.default.existsSync(i)){n=t.u(i);break}if(l.default.existsSync(a)){n=t.u(a);break}e=c.default.dirname(e)}if(!n)throw Error(`[boltdocs] Could not resolve boltdocs/client entry point starting from ${__dirname}`);return`export * from '${n}';`}}}}const ot={"X-Content-Type-Options":`nosniff`,"X-Frame-Options":`DENY`,"X-XSS-Protection":`1; mode=block`,"Referrer-Policy":`strict-origin-when-cross-origin`,"Permissions-Policy":`camera=(), microphone=(), geolocation=()`,"Strict-Transport-Security":`max-age=31536000; includeSubDomains`};function st(e){let t=process.env.NODE_ENV===`development`,n={"default-src":[`'self'`],"script-src":[`'self'`,`'unsafe-inline'`],"style-src":[`'self'`,`'unsafe-inline'`],"img-src":[`'self'`,`data:`,`https:`],"font-src":[`'self'`],"connect-src":[`'self'`]};return t&&(n[`script-src`]=[`'self'`,`'unsafe-eval'`,`'unsafe-inline'`],n[`style-src`]=[`'self'`,`'unsafe-inline'`]),Object.entries(n).map(([e,t])=>`${e} ${t.join(` `)}`).join(`; `)}const ct=/\.(js|css|png|jpe?g|gif|svg|ico|webp|woff2?|ttf|otf|mp4|webm|ogg|mp3|wav|flac|aac|pdf|zip|gz|map|json)$/i;function lt(e,t){let n=process.env.NODE_ENV===`production`;e.middlewares.use((e,r,i)=>{n&&Object.entries(ot).forEach(([e,t])=>{r.setHeader(e,t)});let a=t();a.security?.enableCSP&&r.setHeader(`Content-Security-Policy`,st(a)),i()}),e.middlewares.use((e,t,n)=>{if(e.url===`/robots.txt`){n();return}n()}),e.middlewares.use(async(n,r,i)=>{let a=n.url?.split(`?`)[0]||`/`,o=n.headers.accept||``,s=t();if(o.includes(`text/html`)&&!ct.test(a)){let t=ue(s);t=de(t,s),t=await e.transformIndexHtml(n.url||`/`,t),r.statusCode=200,r.setHeader(`Content-Type`,`text/html`),r.end(t);return}i()})}function ut(e,t,n){setTimeout(async()=>{try{let{generateRoutes:r}=await Promise.resolve().then(()=>require(`./routes-3sAccArX.cjs`)),i=(await r(t,n())).filter(e=>e.filePath).map(e=>e.filePath);for(let t=0;t<i.length;t+=8){let n=i.slice(t,t+8);await Promise.allSettled(n.map(t=>{let n=c.default.relative(process.cwd(),t).replace(/\\/g,`/`),r=n.startsWith(`/`)?n:`/${n}`;return e.transformRequest(r)}))}}catch{}},1e3)}const dt=[`tsx`,`jsx`],ft=[`tsx`,`ts`,`jsx`,`js`];function pt(e,t){let n=i.f.map(e=>c.default.resolve(process.cwd(),e)),r=dt.map(e=>c.default.resolve(t,`layout.${e}`)),a=ft.map(e=>c.default.resolve(t,`mdx-components.${e}`)),o=ft.map(e=>c.default.resolve(t,`pages-external/index.${e}`)),s=ft.map(e=>c.default.resolve(t,`icons.${e}`));e.watcher.add([...n,...a,...r,...o,...s])}const Y=new Map;function mt(e){let{lastUpdated:t,...n}=e;return f.default.createHash(`md5`).update(JSON.stringify(n)).digest(`hex`)}async function ht(e){try{let{data:n}=await t.d(e);return mt(n)}catch{return``}}function gt(e){let t=Y.get(e);if(t===void 0){let n=r.r.get(e);n?.route?.frontmatter&&(t=mt(n.route.frontmatter),Y.set(e,t))}return t}function _t(e,t){Y.set(e,t)}function vt(e){Y.delete(e)}const yt=[`tsx`,`ts`,`jsx`,`js`];function X(e,t){let n=e.moduleGraph.getModuleById(`\0virtual:boltdocs-${t}.ts`);n&&e.moduleGraph.invalidateModule(n)}function bt(e,n,a,o){let s=new Map,l=a.toLowerCase(),u=async(a,u)=>{try{let f=t.u(a);if(i.f.some(e=>f.endsWith(e))){e.restart();return}if(yt.some(e=>f.endsWith(`mdx-components.${e}`))){i.h(o(),n),X(e,`mdx-components.tsx`),e.ws.send({type:`full-reload`});return}if(yt.some(e=>f.endsWith(`icons.${e}`))){X(e,`icons.tsx`),e.ws.send({type:`full-reload`});return}if(f.endsWith(`layout.tsx`)||f.endsWith(`layout.jsx`)){X(e,`layout.tsx`),e.ws.send({type:`full-reload`});return}if(f.includes(`/pages-external/`)||f.includes(`\\pages-external\\`)){X(e,`entry`),e.ws.send({type:`full-reload`});return}if(!f.toLowerCase().startsWith(l)||!t.c(f))return;if(u===`add`||u===`unlink`){u===`unlink`&&vt(a),r.n(),it();let t=o();i.h(t,n),X(e,`config`),X(e,`routes`),X(e,`search`),X(e,`collections`),i.c(n,process.cwd(),t).catch(e=>{(0,d.error)(`Failed to update link tree:`,e)}),e.ws.send({type:`custom`,event:`boltdocs:config-update`,data:{theme:t?.theme,i18n:t?.i18n,versions:t?.versions,siteUrl:t?.siteUrl}}),e.ws.send({type:`full-reload`});return}s.has(f)&&clearTimeout(s.get(f)),s.set(f,setTimeout(async()=>{s.delete(f);try{let i=gt(a),o=await ht(a);if(_t(a,o),r.i(a),i!==void 0&&i!==o){X(e,`routes`),X(e,`search`),X(e,`collections`),e.ws.send({type:`full-reload`});return}let s=t.u(c.default.relative(n,a)),l=e.moduleGraph.getModulesByFile(f);if(l&&l.size>0)for(let t of l)e.moduleGraph.invalidateModule(t);else{e.ws.send({type:`full-reload`});return}e.ws.send({type:`custom`,event:`boltdocs:mdx-update`,data:{file:f,relPath:s}})}catch(e){(0,d.error)(`HMR error processing content change:`,e)}},150))}catch(e){(0,d.error)(`HMR error during ${u} event:`,e)}};e.watcher.on(`add`,e=>u(e,`add`)),e.watcher.on(`unlink`,e=>u(e,`unlink`)),e.watcher.on(`change`,e=>u(e,`change`))}function xt(e){let n=e.toLowerCase();return({file:e})=>{if(e.toLowerCase().startsWith(n)&&t.c(e))return[]}}function St(e,t,n,r,a){return{name:`vite-plugin-boltdocs-dev-server`,apply:`serve`,async configureServer(r){let o=a();await o?.runHook(`beforeDev`),i.c(e,process.cwd(),n()).catch(e=>{(0,d.error)(`Failed to generate initial link tree:`,e)}),ut(r,e,n),lt(r,n),pt(r,e),bt(r,e,t,n),await o?.runHook(`afterDev`)},hotUpdate:xt(t)}}const Z=new n.r(`mdx`);function Ct(e){let t=He(e);return async e=>{let n=await t.getHighlighter();W(e,R.ELEMENT,e=>{if(e.tagName!==`pre`)return;let r=e.children?.[0];if(!r||r.type!==R.ELEMENT||r.tagName!==`code`)return;let i=(r.properties?.className||[]).find(e=>e.startsWith(`language-`)),a=i?i.slice(9):V.MDX_DEFAULT_LANG;if(a===`mermaid`)return;let o=U(r.properties?.metastring||r.data?.meta||``),s=t.getOptions(a,o),c=r.children?.[0]?.value||``;try{let t=n.codeToHast(c,s),r=t.type===`root`?t.children[0]:t;e.children=r.children,e.properties={...e.properties,...r.properties,[z.HIGHLIGHTED]:`true`,[z.LANG]:a}}catch(t){(0,d.error)(`[rehypeShiki] Failed to highlight code block:`,t),e.properties=e.properties||{},e.properties.className=[...e.properties.className||[],B.FALLBACK],e.properties[z.HIGHLIGHTED]=`false`,e.properties[z.LANG]=a}return o.title&&(e.properties[z.TITLE]=o.title),g.SKIP})}}function wt(){return e=>{W(e,R.CODE,e=>{e.meta&&Ge(e,`metastring`,e.meta)})}}let Tt=!1;function Et(e,t,n=A.default){let r=e?.plugins?.flatMap(e=>e.remarkPlugins||[])||[],i=e?.plugins?.flatMap(e=>e.rehypePlugins||[])||[],a=n({remarkPlugins:[j.default,M.default,wt,...r],rehypePlugins:[N.default,[Ct,e],...i],jsxRuntime:`automatic`});return{...a,name:`vite-plugin-boltdocs-mdx`,async buildStart(){Tt||=(await Z.load(),!0),a.buildStart&&await a.buildStart.call(this)},async transform(e,n,r){let[i]=n.split(`?`);if(!i.endsWith(`.md`)&&!i.endsWith(`.mdx`))return a.transform?.call(this,e,n,r);let o=`${i}:${f.default.createHash(`md5`).update(e).digest(`hex`)}:${process.env.NODE_ENV===`production`?`prod`:`dev`}:v3`,s=await Z.getAsync(o);if(s)return{code:s,map:null};let c=await a.transform.call(this,e,i,r);if(c&&typeof c==`object`&&c.code){let e=c.code,n=t?.();return n&&(e=(await n.runChain(`transformMdx`,{code:e,filePath:i})).code),Z.set(o,e),{code:e,map:null}}return c},async buildEnd(){Z.save(),await Z.flush(),a.buildEnd&&await a.buildEnd.call(this)}}}const Q=m.createRequire(require(`url`).pathToFileURL(__filename).href);function Dt(e){try{let e=c.default.join(process.cwd(),`node_modules/boltdocs/package.json`);if(l.default.existsSync(e)){let t=l.default.realpathSync(e);return m.createRequire(t)}else return m.createRequire(c.default.join(process.cwd(),`package.json`))}catch{return e}}function Ot(e){let t=c.default.dirname(e);for(;t&&t!==c.default.dirname(t);){let e=c.default.join(t,`package.json`);if(l.default.existsSync(e))return e;t=c.default.dirname(t)}return null}function kt(e){let t=e.split(`/`);return e.startsWith(`@`)?{packageName:t.slice(0,2).join(`/`),subpath:t.slice(2).join(`/`)}:{packageName:t[0],subpath:t.slice(1).join(`/`)}}function $(e,t=Q){try{let{packageName:n,subpath:r}=kt(e),i;try{i=t.resolve(n+`/package.json`)}catch{i=Ot(t.resolve(n))||``}if(!i)throw Error(`Could not find package.json for ${n}`);let a=c.default.dirname(i),o=JSON.parse(l.default.readFileSync(i,`utf-8`)),s=``,u=r?`./`+r:`.`;if(o.exports){let e=o.exports[u]||o.exports[r];e&&(s=typeof e==`string`?e:e.import||e.default||e.require||e)}if(!s&&!r&&(s=o.module||o.main||`index.js`),typeof s==`object`&&s){let e=s;s=e.import||e.default||e.require||``}if(s){let e=c.default.resolve(a,s);if(l.default.existsSync(e))return e}}catch{}return t.resolve(e)}function At(){let e=[`react`,`react-dom`,`react-router-dom`,`react-helmet-async`,`@bdocs/ssg`,`react-fast-compare`,`invariant`],n=[],r=Dt(Q);for(let t of e)try{let e=``;e=t===`@bdocs/ssg`||t===`react-router-dom`||t===`react-helmet-async`?$(t,r):r.resolve(t),e&&n.push(l.default.realpathSync(e))}catch{}if(r!==Q)for(let t of e)try{let e=``;e=t===`@bdocs/ssg`||t===`react-router-dom`||t===`react-helmet-async`?$(t,Q):Q.resolve(t),e&&n.push(l.default.realpathSync(e))}catch{}for(let e of[`react/jsx-runtime`,`react/jsx-dev-runtime`,`react-dom/client`]){try{n.push(l.default.realpathSync(r.resolve(e)))}catch{}if(r!==Q)try{n.push(l.default.realpathSync(Q.resolve(e)))}catch{}}return Array.from(new Set(n)).map(e=>t.u(e))}function jt(e={},n){let a=c.default.resolve(process.cwd(),e.docsDir||`docs`),o=t.u(a),u=n,d,f=!1,p,m=[],h=()=>u,g=e=>{u=e},te=()=>d,_=()=>p;return[{name:`vite-plugin-boltdocs`,enforce:`pre`,async config(e,t){f=t.command===`build`;let n=!!(t.isSsrBuild||e.build?.ssr),o=e.envDir||process.cwd(),c=(0,s.loadEnv)(t.mode,o,``);if(Object.assign(process.env,c),!u){u=await i.p(a);let e=(await r.t(a,u)).map(e=>e.path),t=(u.base||`/docs`).replace(/\/$/,``);e.includes(t)||e.push(t),i.h(u,a,void 0,e),i.g(e)}let l=(await Promise.resolve().then(()=>require(`./package-CwNjt3Sd.cjs`))).version,d=he(u.plugins||[],l);return u.plugins=d,p=new Oe(d,u),m=d.flatMap(e=>e.vitePlugins||[]),f&&await p.runHook(`beforeBuild`),{ssgOptions:{entry:`boltdocs/entry`,htmlEntry:`index.html`,dirStyle:`flat`,includeAllRoutes:!0,mock:!0,script:`async`,beastiesOptions:{preload:`media`}},build:{ssrManifest:f},optimizeDeps:{include:[`react`,`react-dom`,`react-dom/client`,`react-router-dom`,`react-helmet-async`,`react-fast-compare`,`invariant`],exclude:[`boltdocs`,`boltdocs/client`]},resolve:{alias:[{find:`react-router-dom`,replacement:$(`react-router-dom`)},{find:`react-helmet-async`,replacement:$(`react-helmet-async`)},{find:`@bdocs/ssg`,replacement:$(`@bdocs/ssg`)}],dedupe:[`react`,`react-dom`,...n?[]:[`react-router-dom`,`react-helmet-async`,`@bdocs/ssg`]]},ssr:{external:[`react`,`react-dom`,`react-helmet-async`,`@bdocs/ssg`,`react-fast-compare`,`invariant`,...At()],optimizeDeps:{include:[`react-fast-compare`,`invariant`]},noExternal:[`react-router-dom`]}}},configResolved(e){d=e},resolveId(e,t,n){let r=[`react`,`react-dom`,`react-router-dom`,`react-helmet-async`,`@bdocs/ssg`].find(t=>e===t||e.startsWith(t+`/`)||e.includes(`/node_modules/${t}/`)||t.startsWith(`@`)&&e.includes(`/node_modules/${t.replace(`/`,c.default.sep)}/`));if(r&&n?.ssr){let t=e;if(!c.default.isAbsolute(e)){let n=Dt(Q);try{t=r===`@bdocs/ssg`||r===`react-router-dom`||r===`react-helmet-async`?$(e,n):n.resolve(e)}catch{try{t=r===`@bdocs/ssg`||r===`react-router-dom`||r===`react-helmet-async`?$(e,Q):Q.resolve(e)}catch{}}}try{t=l.default.realpathSync(t)}catch{}return{id:t,external:!0}}return null},transformIndexHtml:{order:`pre`,handler(e){return de(e,u)}},async buildEnd(){let{pool:e}=await Promise.resolve().then(()=>require(`./worker-pool-DXLyeHJg.cjs`));await e.terminate()},async closeBundle(){!f||d?.build?.ssr||(await p?.runHook(`afterBuild`),await p?.runHook(`buildEnd`))},configurePreviewServer(e){let t=d?.build?.outDir?c.default.resolve(d.root||process.cwd(),d.build.outDir):c.default.resolve(process.cwd(),`dist`);e.middlewares.use((e,n,r)=>{let i=e.url||`/`,a=i.split(`?`)[0].split(`#`)[0];if(c.default.extname(a))return r();let o=a.replace(/\/$/,``)||`/`,s=c.default.join(t,o,`index.html`);o!==`/`&&l.default.existsSync(s)&&(e.url=`${o}/index.html${i.includes(`?`)?`?${i.split(`?`)[1]}`:``}`),r()})}},at(e,h,te,a),St(a,o,h,g,_),Et(u,_),{...(0,ee.ViteImageOptimizer)({includePublic:!0,png:{quality:80},jpeg:{quality:80},jpg:{quality:80},webp:{quality:80},avif:{quality:80},svg:{multipass:!0,plugins:[{name:`preset-default`}]}}),apply:`build`},...m]}(0,m.createRequire)(require(`url`).pathToFileURL(__filename).href);async function Mt(e){let t=e?.docsDir||`docs`,n=await i.p(t),a=(await r.t(t,n)).map(e=>e.path),o=(n.base||`/docs`).replace(/\/$/,``);return a.includes(o)||a.push(o),i.h(n,t,void 0,a),i.g(a),jt({...e},n)}async function Nt(e,t=`development`){let n=await i.p(`docs`,e),l=(await r.t(`docs`,n)).map(e=>e.path),u=(n.base||`/docs`).replace(/\/$/,``);l.includes(u)||l.push(u),i.h(n,`docs`,e,l),i.g(l);let d=t===`production`,f=d?{...ot}:{};return n.security?.enableCSP&&(f[`Content-Security-Policy`]=st(n)),{root:e,mode:t,oxc:{jsx:{development:!d,runtime:`automatic`,importSource:`react`}},optimizeDeps:{include:[`react`,`react-dom`,`react-dom/client`,`react-helmet-async`,`react-router-dom`,`react-fast-compare`,`invariant`,`use-sync-external-store/shim`]},build:{},plugins:[(0,a.default)(),(0,o.default)(),...jt({docsDir:`docs`,root:e},n)],resolve:{alias:[{find:`boltdocs/entry`,replacement:(0,s.normalizePath)(c.default.resolve(e,`boltdocs-entry.tsx`))},{find:`boltdocs/client`,replacement:(0,s.normalizePath)(c.default.resolve(e,`boltdocs-client.mjs`))},{find:`use-sync-external-store/shim/index.js`,replacement:`react`},{find:`use-sync-external-store/shim`,replacement:`react`},{find:`use-sync-external-store`,replacement:`react`}],dedupe:[`react`,`react-dom`]},ssr:{external:[`react`,`react-dom`,`react-helmet-async`,`@bdocs/ssg`,`react-fast-compare`,`invariant`,...At()],optimizeDeps:{include:[`react`,`react-dom`,`react-fast-compare`,`invariant`,...n.vite?.ssr?.optimizeDeps?.include||[]]},noExternal:[`boltdocs`,/@bdocs\/(?!ssg).*/,`react-aria-components`,`@react-aria/collections`,`@react-aria/utils`,`react-router-dom`]},server:{headers:{...f,...n.vite?.server?.headers},...n.vite?.server},preview:{headers:{...f,...n.vite?.preview?.headers},...n.vite?.preview},...n.vite}}Object.defineProperty(exports,`C`,{enumerable:!0,get:function(){return he}}),Object.defineProperty(exports,`D`,{enumerable:!0,get:function(){return I}}),Object.defineProperty(exports,`E`,{enumerable:!0,get:function(){return P}}),Object.defineProperty(exports,`O`,{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,`S`,{enumerable:!0,get:function(){return ge}}),Object.defineProperty(exports,`T`,{enumerable:!0,get:function(){return fe}}),Object.defineProperty(exports,`_`,{enumerable:!0,get:function(){return Ze}}),Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return Qe}}),Object.defineProperty(exports,`b`,{enumerable:!0,get:function(){return Oe}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return Je}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return $e}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return Ge}}),Object.defineProperty(exports,`g`,{enumerable:!0,get:function(){return Xe}}),Object.defineProperty(exports,`h`,{enumerable:!0,get:function(){return Ue}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return tt}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return Ke}}),Object.defineProperty(exports,`m`,{enumerable:!0,get:function(){return W}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return Nt}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return qe}}),Object.defineProperty(exports,`p`,{enumerable:!0,get:function(){return We}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return K}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return Ye}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return Mt}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return et}}),Object.defineProperty(exports,`v`,{enumerable:!0,get:function(){return U}}),Object.defineProperty(exports,`w`,{enumerable:!0,get:function(){return pe}}),Object.defineProperty(exports,`x`,{enumerable:!0,get:function(){return Ee}}),Object.defineProperty(exports,`y`,{enumerable:!0,get:function(){return R}});
@@ -3,7 +3,7 @@
3
3
  * Copyright (c) 2026 Jesus Alcala
4
4
  * Licensed under the MIT License.
5
5
  */
6
- import{c as e,d as t,n,r,u as i}from"./utils-BYITg7T5.mjs";import{r as a}from"./cache-BMUyNiiA.mjs";import{i as o,n as s,r as c,t as l}from"./routes-f9J1MQRr.mjs";import{_ as u,c as d,f,g as p,h as m,p as h}from"./doctor-CgLA7_Uv.mjs";import*as g from"node:module";import{createRequire as _}from"node:module";import ee from"@vitejs/plugin-react";import te from"@tailwindcss/vite";import{loadEnv as ne,normalizePath as re}from"vite";import v from"node:path";import y from"node:fs";import{z as b}from"zod";import*as x from"@bdocs/dui";import{colors as S,error as C,warn as w}from"@bdocs/dui";import ie from"node:crypto";import{ViteImageOptimizer as ae}from"vite-plugin-image-optimizer";import oe from"semver";import{build as se}from"@bdocs/ssg/node";import{EXIT as ce,SKIP as le,visit as T}from"unist-util-visit";import{createJavaScriptRegexEngine as ue}from"shiki/engine/javascript";import{createHighlighterCore as de}from"shiki/core";import fe from"@shikijs/themes/github-light";import pe from"@shikijs/themes/github-dark";import me from"@shikijs/themes/tokyo-night";import he from"@shikijs/themes/dracula";import ge from"@shikijs/themes/nord";import _e from"@shikijs/themes/one-dark-pro";import ve from"@shikijs/themes/one-light";import ye from"@shikijs/langs/html";import be from"@shikijs/langs/js";import xe from"@shikijs/langs/ts";import Se from"@shikijs/langs/tsx";import Ce from"@shikijs/langs/css";import we from"@shikijs/langs/json";import Te from"@shikijs/langs/bash";import Ee from"@shikijs/langs/markdown";import De from"@shikijs/langs/mdx";import Oe from"@shikijs/langs/yaml";import ke from"@shikijs/langs/rust";import Ae from"@shikijs/langs/toml";import je from"@shikijs/langs/csv";import{fileURLToPath as Me}from"node:url";import Ne from"@mdx-js/rollup";import Pe from"remark-gfm";import Fe from"remark-frontmatter";import Ie from"rehype-slug";var Le=Object.defineProperty,Re=(e,t)=>{let n={};for(var r in e)Le(n,r,{get:e[r],enumerable:!0});return t||Le(n,Symbol.toStringTag,{value:`Module`}),n},ze=_(import.meta.url);function Be(e){return`<!doctype html>
6
+ import{c as e,d as t,n,r,u as i}from"./utils-BYITg7T5.mjs";import{r as a}from"./cache-BMUyNiiA.mjs";import{i as o,n as s,r as c,t as l}from"./routes-DZpXqq1p.mjs";import{_ as u,c as d,f,g as p,h as m,p as h}from"./doctor-Dnv77Lfx.mjs";import*as g from"node:module";import{createRequire as _}from"node:module";import ee from"@vitejs/plugin-react";import te from"@tailwindcss/vite";import{loadEnv as ne,normalizePath as re}from"vite";import v from"node:path";import y from"node:fs";import{z as b}from"zod";import*as x from"@bdocs/dui";import{colors as S,error as C,warn as w}from"@bdocs/dui";import ie from"node:crypto";import{ViteImageOptimizer as ae}from"vite-plugin-image-optimizer";import oe from"semver";import{build as se}from"@bdocs/ssg/node";import{EXIT as ce,SKIP as le,visit as T}from"unist-util-visit";import{createJavaScriptRegexEngine as ue}from"shiki/engine/javascript";import{createHighlighterCore as de}from"shiki/core";import fe from"@shikijs/themes/github-light";import pe from"@shikijs/themes/github-dark";import me from"@shikijs/themes/tokyo-night";import he from"@shikijs/themes/dracula";import ge from"@shikijs/themes/nord";import _e from"@shikijs/themes/one-dark-pro";import ve from"@shikijs/themes/one-light";import ye from"@shikijs/langs/html";import be from"@shikijs/langs/js";import xe from"@shikijs/langs/ts";import Se from"@shikijs/langs/tsx";import Ce from"@shikijs/langs/css";import we from"@shikijs/langs/json";import Te from"@shikijs/langs/bash";import Ee from"@shikijs/langs/markdown";import De from"@shikijs/langs/mdx";import Oe from"@shikijs/langs/yaml";import ke from"@shikijs/langs/rust";import Ae from"@shikijs/langs/toml";import je from"@shikijs/langs/csv";import{fileURLToPath as Me}from"node:url";import Ne from"@mdx-js/rollup";import Pe from"remark-gfm";import Fe from"remark-frontmatter";import Ie from"rehype-slug";var Le=Object.defineProperty,Re=(e,t)=>{let n={};for(var r in e)Le(n,r,{get:e[r],enumerable:!0});return t||Le(n,Symbol.toStringTag,{value:`Module`}),n},ze=_(import.meta.url);function Be(e){return`<!doctype html>
7
7
  <html lang="en">
8
8
  <head>
9
9
  <meta charset="UTF-8" />
@@ -37,7 +37,8 @@ import{c as e,d as t,n,r,u as i}from"./utils-BYITg7T5.mjs";import{r as a}from"./
37
37
  <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=${e.tagId}"
38
38
  height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
39
39
  <!-- End Google Tag Manager (noscript) -->
40
- `}}return e=e.replace(`</head>`,` ${o}\n
40
+ `}}return e=e.replace(`<head>`,`<head>
41
+
41
42
  <script>
42
43
  (function() {
43
44
  try {
@@ -52,7 +53,7 @@ import{c as e,d as t,n,r,u as i}from"./utils-BYITg7T5.mjs";import{r as a}from"./
52
53
  }
53
54
  })();
54
55
  <\/script>
55
- \n${s}${c} </head>`),l&&(e=e.replace(/<body([^>]*)>/,`<body$1>\n${l}`)),!e.includes(`src/main`)&&!e.includes(`virtual:boltdocs-entry`)&&(e=e.replace(`</body>`,` <script type="module">import "virtual:boltdocs-entry";<\/script>
56
+ `),e=e.replace(`</head>`,` ${o}\n${s}${c} </head>`),l&&(e=e.replace(/<body([^>]*)>/,`<body$1>\n${l}`)),!e.includes(`src/main`)&&!e.includes(`virtual:boltdocs-entry`)&&(e=e.replace(`</body>`,` <script type="module">import "virtual:boltdocs-entry";<\/script>
56
57
  </body>`)),e}var E=class extends Error{name=this.constructor.name;constructor(e,t,n){super(`[plugin:${e}] ${t}`,n),this.pluginName=e}},D=class extends E{constructor(e,t){super(e,`Validation failed: ${t}`)}},O=class extends E{constructor(e,t){super(e,`Compatibility error: ${t}`)}},k=class extends E{constructor(e,t,n){super(e,`Error in hook '${t}': ${n.message}`,{cause:n}),this.hookName=t}},He=class{data=new Map;getNamespaceKey(e,t){return`${e}:${t}`}get(e,t){let n=this.getNamespaceKey(e,t),r=this.data.get(n);if(r!==void 0)return typeof r==`object`&&r?JSON.parse(JSON.stringify(r)):r}set(e,t,n){let r=this.getNamespaceKey(e,t),i=typeof n==`object`&&n?JSON.parse(JSON.stringify(n)):n;this.data.set(r,i)}has(e,t){let n=this.getNamespaceKey(e,t);return this.data.has(n)}};const Ue=u.extend({version:b.string().optional(),boltdocsVersion:b.string().optional(),hooks:b.object({beforeBuild:b.function().optional(),afterBuild:b.function().optional(),beforeDev:b.function().optional(),afterDev:b.function().optional(),buildEnd:b.function().optional(),transformMdx:b.function().optional(),transformHtml:b.function().optional()}).optional()});function A(e,t){let n=[],r=new Set;for(let i of e){let e=Ue.safeParse(i);if(!e.success)throw new D(i.name||`unknown`,e.error.issues.map(e=>`${e.path.join(`.`)}: ${e.message}`).join(`, `));let a=e.data;if(r.has(a.name))throw new D(a.name,`Duplicate plugin name detected`);if(r.add(a.name),a.boltdocsVersion&&!oe.satisfies(t,a.boltdocsVersion))throw new O(a.name,`Plugin expects Boltdocs version ${a.boltdocsVersion}, but current is ${t}`);if(a.components){for(let[e,t]of Object.entries(a.components))if((t.includes(`..`)||v.isAbsolute(t))&&t.includes(`..`))throw new D(a.name,`Component '${e}' has an invalid path: traversal sequences are not allowed.`)}n.push(a)}return n}function We(e,t=process.cwd()){let n=e.plugins||[];for(let e of n)if(e.name)try{let n=null;try{let{createRequire:r}=ze(`node:module`);n=r(v.resolve(t,`package.json`)).resolve(`${e.name}/package.json`)}catch{let r=v.resolve(t,`node_modules`,e.name,`package.json`);y.existsSync(r)&&(n=r)}if(n&&y.existsSync(n)){let t=JSON.parse(y.readFileSync(n,`utf-8`)).scripts||{};(t.preinstall||t.postinstall||t.install)&&w(`💡 ${S.yellow(S.bold(`Nota de seguridad:`))} El plugin ${S.cyan(e.name)} ejecuta scripts nativos al instalarse. Corre ${S.bold(`boltdocs audit`)} para un análisis detallado.`)}}catch{}}var Ge=class{name=`ConfigResolve`;async execute(e){e.config=await h(`docs`,e.root),We(e.config,e.root),e.viteConfig=await nn(e.root,`production`)}};function j(e){return e.map(e=>({path:e.path,filePath:e.filePath,title:e.title,description:e.description||``,sidebarPosition:e.sidebarPosition,badge:e.badge,icon:e.icon,headings:e.headings||[],_content:e._content||``,_rawContent:e._rawContent||``,locale:e.locale,version:e.version,tab:e.tab,collection:e.collection,tags:e.tags,author:e.author,draft:e.draft,excerpt:e.excerpt,coverImage:e.coverImage,group:e.group,groupTitle:e.groupTitle,groupPosition:e.groupPosition,groupIcon:e.groupIcon,subRouteGroup:e.subRouteGroup,seo:e.seo,date:e.date,lastUpdated:e.lastUpdated,category:e.category,order:e.order,sidebarLabel:e.sidebarLabel,sidebarHidden:e.sidebarHidden,frontmatter:e.frontmatter,slugParts:e.slugParts}))}var Ke=class{name=`RouteGenerate`;async execute(e){if(!e.config)throw Error(`Config not resolved. Run ConfigResolve first.`);let t=v.resolve(e.root,`docs`),n=e.viteConfig?.base||e.config.base||`/docs`;e.routes=[...await l(t,e.config,n)],e.ssgRoutes=j(e.routes)}};const qe=b.object({title:b.string().optional(),description:b.string().optional(),canonical:b.string().url().optional(),robots:b.string().optional(),noindex:b.boolean().optional(),"og:title":b.string().optional(),"og:description":b.string().optional(),"og:image":b.string().optional(),"og:type":b.string().optional(),"og:url":b.string().url().optional()});var Je=class{name=`SEOValidate`;async execute(e){if(!e.routes||!e.config)throw Error(`Routes or Config not initialized.`);let t=e.config.siteUrl;e.routes=e.routes.map(e=>{let n=e.seo||{},r=n.canonical||(t?`${t.replace(/\/$/,``)}${e.path}`:void 0),i=n[`og:url`]||r||void 0,a={...n};r&&(a.canonical=r),i&&(a[`og:url`]=i),!a[`og:title`]&&e.title&&(a[`og:title`]=e.title),!a[`og:description`]&&e.description&&(a[`og:description`]=e.description);let o=qe.safeParse(a);return o.success||w(`[SEOValidate] Validation issues on route "${e.path}":`,o.error.message),e.title||w(`[SEOValidate] Route "${e.path}" is missing a title.`),{...e,seo:a}}),e.ssgRoutes=j(e.routes)}},Ye=class{name=`TypeGenerate`;async execute(e){if(!e.config||!e.routes)throw Error(`Config or Routes not initialized.`);let t=v.resolve(e.root,`docs`),n=e.routes.map(e=>e.path),r=(e.config.base||`/docs`).replace(/\/$/,``);n.includes(r)||n.push(r),m(e.config,t,e.root,n),p(n)}},Xe=class{name=`SSGBuild`;async execute(e){if(!e.routes||!e.viteConfig)throw Error(`Routes or ViteConfig not initialized.`);let t={};for(let n of e.routes)if(n.path&&n.componentPath){t[n.path]=n.componentPath;let e=n.path.replace(/\/$/,``);t[e]=n.componentPath}await se({entry:`boltdocs/entry`,routeToSourceFileMap:t,cacheDir:v.resolve(e.root,`.boltdocs/build`)},e.viteConfig),e.outDir=e.viteConfig.build?.outDir||`dist`}};function Ze(e,t){let n=(t.siteUrl||``).replace(/\/$/,``);if(!n)return``;let i=t.seo?.indexing!==`all`&&t.seo?.indexing!==`public`;return`<?xml version="1.0" encoding="UTF-8"?>
57
58
  <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
58
59
  ${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>
@@ -156,4 +157,4 @@ ${h}
156
157
  const mdxComponents = components.default || components;
157
158
  export default mdxComponents;
158
159
  export * from '${e}';`}return`export default {};`}if(o===`layout`){let e=[`tsx`,`jsx`],t=null;for(let n of e){let e=v.resolve(r,`layout.${n}`);if(y.existsSync(e)){t=e;break}}if(t)return`import UserLayout from '${i(t)}';
159
- export default UserLayout;`;throw Error(`[Boltdocs] Layout file not found. A 'layout.tsx' or 'layout.jsx' file is mandatory in your docs directory. Please create one to define your site structure.`)}if(o===`icons`){let e=[`tsx`,`jsx`,`ts`,`js`],t=null;for(let n of e){let e=v.resolve(r,`icons.${n}`);if(y.existsSync(e)){t=e;break}}return t?`import * as icons from '${i(t)}';\nexport default icons;`:`export default {};`}if(o===`search`){if(!q){let e=Dt(await l(r,a));q=`export default ${JSON.stringify(e,null,2)};`}return q}if(o===`client`){let e=U,t=``;for(;e&&e!==v.parse(e).root;){let n=v.join(e,`src/client/index.ts`),r=v.join(e,`dist/client/index.mjs`),a=v.join(e,`client/index.ts`);if(y.existsSync(n)){t=i(n);break}if(y.existsSync(r)){t=i(r);break}if(y.existsSync(a)){t=i(a);break}e=v.dirname(e)}if(!t)throw Error(`[boltdocs] Could not resolve boltdocs/client entry point starting from ${U}`);return`export * from '${t}';`}}}}const At={"X-Content-Type-Options":`nosniff`,"X-Frame-Options":`DENY`,"X-XSS-Protection":`1; mode=block`,"Referrer-Policy":`strict-origin-when-cross-origin`,"Permissions-Policy":`camera=(), microphone=(), geolocation=()`,"Strict-Transport-Security":`max-age=31536000; includeSubDomains`};function jt(e){let t=process.env.NODE_ENV===`development`,n={"default-src":[`'self'`],"script-src":[`'self'`,`'unsafe-inline'`],"style-src":[`'self'`,`'unsafe-inline'`],"img-src":[`'self'`,`data:`,`https:`],"font-src":[`'self'`],"connect-src":[`'self'`]};return t&&(n[`script-src`]=[`'self'`,`'unsafe-eval'`,`'unsafe-inline'`],n[`style-src`]=[`'self'`,`'unsafe-inline'`]),Object.entries(n).map(([e,t])=>`${e} ${t.join(` `)}`).join(`; `)}const Mt=/\.(js|css|png|jpe?g|gif|svg|ico|webp|woff2?|ttf|otf|mp4|webm|ogg|mp3|wav|flac|aac|pdf|zip|gz|map|json)$/i;function Nt(e,t){let n=process.env.NODE_ENV===`production`;e.middlewares.use((e,r,i)=>{n&&Object.entries(At).forEach(([e,t])=>{r.setHeader(e,t)});let a=t();a.security?.enableCSP&&r.setHeader(`Content-Security-Policy`,jt(a)),i()}),e.middlewares.use((e,t,n)=>{if(e.url===`/robots.txt`){n();return}n()}),e.middlewares.use(async(n,r,i)=>{let a=n.url?.split(`?`)[0]||`/`,o=n.headers.accept||``,s=t();if(o.includes(`text/html`)&&!Mt.test(a)){let t=Be(s);t=Ve(t,s),t=await e.transformIndexHtml(n.url||`/`,t),r.statusCode=200,r.setHeader(`Content-Type`,`text/html`),r.end(t);return}i()})}function Pt(e,t,n){setTimeout(async()=>{try{let{generateRoutes:r}=await import(`./routes-CtQzxiZg.mjs`),i=(await r(t,n())).filter(e=>e.filePath).map(e=>e.filePath);for(let t=0;t<i.length;t+=8){let n=i.slice(t,t+8);await Promise.allSettled(n.map(t=>{let n=v.relative(process.cwd(),t).replace(/\\/g,`/`),r=n.startsWith(`/`)?n:`/${n}`;return e.transformRequest(r)}))}}catch{}},1e3)}const Ft=[`tsx`,`jsx`],J=[`tsx`,`ts`,`jsx`,`js`];function It(e,t){let n=f.map(e=>v.resolve(process.cwd(),e)),r=Ft.map(e=>v.resolve(t,`layout.${e}`)),i=J.map(e=>v.resolve(t,`mdx-components.${e}`)),a=J.map(e=>v.resolve(t,`pages-external/index.${e}`)),o=J.map(e=>v.resolve(t,`icons.${e}`));e.watcher.add([...n,...i,...r,...a,...o])}const Y=new Map;function Lt(e){let{lastUpdated:t,...n}=e;return ie.createHash(`md5`).update(JSON.stringify(n)).digest(`hex`)}async function Rt(e){try{let{data:n}=await t(e);return Lt(n)}catch{return``}}function zt(e){let t=Y.get(e);if(t===void 0){let n=c.get(e);n?.route?.frontmatter&&(t=Lt(n.route.frontmatter),Y.set(e,t))}return t}function Bt(e,t){Y.set(e,t)}function Vt(e){Y.delete(e)}const Ht=[`tsx`,`ts`,`jsx`,`js`];function X(e,t){let n=e.moduleGraph.getModuleById(`\0virtual:boltdocs-${t}.ts`);n&&e.moduleGraph.invalidateModule(n)}function Ut(t,n,r,a){let c=new Map,l=r.toLowerCase(),u=async(r,u)=>{try{let p=i(r);if(f.some(e=>p.endsWith(e))){t.restart();return}if(Ht.some(e=>p.endsWith(`mdx-components.${e}`))){m(a(),n),X(t,`mdx-components.tsx`),t.ws.send({type:`full-reload`});return}if(Ht.some(e=>p.endsWith(`icons.${e}`))){X(t,`icons.tsx`),t.ws.send({type:`full-reload`});return}if(p.endsWith(`layout.tsx`)||p.endsWith(`layout.jsx`)){X(t,`layout.tsx`),t.ws.send({type:`full-reload`});return}if(p.includes(`/pages-external/`)||p.includes(`\\pages-external\\`)){X(t,`entry`),t.ws.send({type:`full-reload`});return}if(!p.toLowerCase().startsWith(l)||!e(p))return;if(u===`add`||u===`unlink`){u===`unlink`&&Vt(r),s(),Ot();let e=a();m(e,n),X(t,`config`),X(t,`routes`),X(t,`search`),X(t,`collections`),d(n,process.cwd(),e).catch(e=>{C(`Failed to update link tree:`,e)}),t.ws.send({type:`custom`,event:`boltdocs:config-update`,data:{theme:e?.theme,i18n:e?.i18n,versions:e?.versions,siteUrl:e?.siteUrl}}),t.ws.send({type:`full-reload`});return}c.has(p)&&clearTimeout(c.get(p)),c.set(p,setTimeout(async()=>{c.delete(p);try{let e=zt(r),a=await Rt(r);if(Bt(r,a),o(r),e!==void 0&&e!==a){X(t,`routes`),X(t,`search`),X(t,`collections`),t.ws.send({type:`full-reload`});return}let s=i(v.relative(n,r)),c=t.moduleGraph.getModulesByFile(p);if(c&&c.size>0)for(let e of c)t.moduleGraph.invalidateModule(e);else{t.ws.send({type:`full-reload`});return}t.ws.send({type:`custom`,event:`boltdocs:mdx-update`,data:{file:p,relPath:s}})}catch(e){C(`HMR error processing content change:`,e)}},150))}catch(e){C(`HMR error during ${u} event:`,e)}};t.watcher.on(`add`,e=>u(e,`add`)),t.watcher.on(`unlink`,e=>u(e,`unlink`)),t.watcher.on(`change`,e=>u(e,`change`))}function Wt(t){let n=t.toLowerCase();return({file:t})=>{if(t.toLowerCase().startsWith(n)&&e(t))return[]}}function Gt(e,t,n,r,i){return{name:`vite-plugin-boltdocs-dev-server`,apply:`serve`,async configureServer(r){let a=i();await a?.runHook(`beforeDev`),d(e,process.cwd(),n()).catch(e=>{C(`Failed to generate initial link tree:`,e)}),Pt(r,e,n),Nt(r,n),It(r,e),Ut(r,e,t,n),await a?.runHook(`afterDev`)},hotUpdate:Wt(t)}}const Z=new a(`mdx`);function Kt(e){let t=pt(e);return async e=>{let n=await t.getHighlighter();V(e,M.ELEMENT,e=>{if(e.tagName!==`pre`)return;let r=e.children?.[0];if(!r||r.type!==M.ELEMENT||r.tagName!==`code`)return;let i=(r.properties?.className||[]).find(e=>e.startsWith(`language-`)),a=i?i.slice(9):I.MDX_DEFAULT_LANG;if(a===`mermaid`)return;let o=z(r.properties?.metastring||r.data?.meta||``),s=t.getOptions(a,o),c=r.children?.[0]?.value||``;try{let t=n.codeToHast(c,s),r=t.type===`root`?t.children[0]:t;e.children=r.children,e.properties={...e.properties,...r.properties,[N.HIGHLIGHTED]:`true`,[N.LANG]:a}}catch(t){C(`[rehypeShiki] Failed to highlight code block:`,t),e.properties=e.properties||{},e.properties.className=[...e.properties.className||[],P.FALLBACK],e.properties[N.HIGHLIGHTED]=`false`,e.properties[N.LANG]=a}return o.title&&(e.properties[N.TITLE]=o.title),le})}}function qt(){return e=>{V(e,M.CODE,e=>{e.meta&&H(e,`metastring`,e.meta)})}}let Jt=!1;function Yt(e,t,n=Ne){let r=e?.plugins?.flatMap(e=>e.remarkPlugins||[])||[],i=e?.plugins?.flatMap(e=>e.rehypePlugins||[])||[],a=n({remarkPlugins:[Pe,Fe,qt,...r],rehypePlugins:[Ie,[Kt,e],...i],jsxRuntime:`automatic`});return{...a,name:`vite-plugin-boltdocs-mdx`,async buildStart(){Jt||=(await Z.load(),!0),a.buildStart&&await a.buildStart.call(this)},async transform(e,n,r){let[i]=n.split(`?`);if(!i.endsWith(`.md`)&&!i.endsWith(`.mdx`))return a.transform?.call(this,e,n,r);let o=`${i}:${ie.createHash(`md5`).update(e).digest(`hex`)}:${process.env.NODE_ENV===`production`?`prod`:`dev`}:v3`,s=await Z.getAsync(o);if(s)return{code:s,map:null};let c=await a.transform.call(this,e,i,r);if(c&&typeof c==`object`&&c.code){let e=c.code,n=t?.();return n&&(e=(await n.runChain(`transformMdx`,{code:e,filePath:i})).code),Z.set(o,e),{code:e,map:null}}return c},async buildEnd(){Z.save(),await Z.flush(),a.buildEnd&&await a.buildEnd.call(this)}}}const Q=g.createRequire(import.meta.url);function Xt(e){try{let e=v.join(process.cwd(),`node_modules/boltdocs/package.json`);if(y.existsSync(e)){let t=y.realpathSync(e);return g.createRequire(t)}else return g.createRequire(v.join(process.cwd(),`package.json`))}catch{return e}}function Zt(e){let t=v.dirname(e);for(;t&&t!==v.dirname(t);){let e=v.join(t,`package.json`);if(y.existsSync(e))return e;t=v.dirname(t)}return null}function Qt(e){let t=e.split(`/`);return e.startsWith(`@`)?{packageName:t.slice(0,2).join(`/`),subpath:t.slice(2).join(`/`)}:{packageName:t[0],subpath:t.slice(1).join(`/`)}}function $(e,t=Q){try{let{packageName:n,subpath:r}=Qt(e),i;try{i=t.resolve(n+`/package.json`)}catch{i=Zt(t.resolve(n))||``}if(!i)throw Error(`Could not find package.json for ${n}`);let a=v.dirname(i),o=JSON.parse(y.readFileSync(i,`utf-8`)),s=``,c=r?`./`+r:`.`;if(o.exports){let e=o.exports[c]||o.exports[r];e&&(s=typeof e==`string`?e:e.import||e.default||e.require||e)}if(!s&&!r&&(s=o.module||o.main||`index.js`),typeof s==`object`&&s){let e=s;s=e.import||e.default||e.require||``}if(s){let e=v.resolve(a,s);if(y.existsSync(e))return e}}catch{}return t.resolve(e)}function $t(){let e=[`react`,`react-dom`,`react-router-dom`,`react-helmet-async`,`@bdocs/ssg`,`react-fast-compare`,`invariant`],t=[],n=Xt(Q);for(let r of e)try{let e=``;e=r===`@bdocs/ssg`||r===`react-router-dom`||r===`react-helmet-async`?$(r,n):n.resolve(r),e&&t.push(y.realpathSync(e))}catch{}if(n!==Q)for(let n of e)try{let e=``;e=n===`@bdocs/ssg`||n===`react-router-dom`||n===`react-helmet-async`?$(n,Q):Q.resolve(n),e&&t.push(y.realpathSync(e))}catch{}for(let e of[`react/jsx-runtime`,`react/jsx-dev-runtime`,`react-dom/client`]){try{t.push(y.realpathSync(n.resolve(e)))}catch{}if(n!==Q)try{t.push(y.realpathSync(Q.resolve(e)))}catch{}}return Array.from(new Set(t)).map(e=>i(e))}function en(e={},t){let n=v.resolve(process.cwd(),e.docsDir||`docs`),r=i(n),a=t,o,s=!1,c,u=[],d=()=>a,f=e=>{a=e},g=()=>o,_=()=>c;return[{name:`vite-plugin-boltdocs`,enforce:`pre`,async config(e,t){s=t.command===`build`;let r=!!(t.isSsrBuild||e.build?.ssr),i=e.envDir||process.cwd(),o=ne(t.mode,i,``);if(Object.assign(process.env,o),!a){a=await h(n);let e=(await l(n,a)).map(e=>e.path),t=(a.base||`/docs`).replace(/\/$/,``);e.includes(t)||e.push(t),m(a,n,void 0,e),p(e)}let d=(await import(`./package-C1qrHXzn.mjs`)).version,f=A(a.plugins||[],d);return a.plugins=f,c=new nt(f,a),u=f.flatMap(e=>e.vitePlugins||[]),s&&await c.runHook(`beforeBuild`),{base:a.base||`/docs`,ssgOptions:{entry:`boltdocs/entry`,htmlEntry:`index.html`,dirStyle:`flat`,includeAllRoutes:!0,mock:!0,script:`async`,beastiesOptions:{preload:`media`}},build:{ssrManifest:s},optimizeDeps:{include:[`react`,`react-dom`,`react-dom/client`,`react-router-dom`,`react-helmet-async`,`react-fast-compare`,`invariant`],exclude:[`boltdocs`,`boltdocs/client`]},resolve:{alias:[{find:`react-router-dom`,replacement:$(`react-router-dom`)},{find:`react-helmet-async`,replacement:$(`react-helmet-async`)},{find:`@bdocs/ssg`,replacement:$(`@bdocs/ssg`)}],dedupe:[`react`,`react-dom`,...r?[]:[`react-router-dom`,`react-helmet-async`,`@bdocs/ssg`]]},ssr:{external:[`react`,`react-dom`,`react-helmet-async`,`@bdocs/ssg`,`react-fast-compare`,`invariant`,...$t()],optimizeDeps:{include:[`react-fast-compare`,`invariant`]},noExternal:[`react-router-dom`]}}},configResolved(e){o=e},resolveId(e,t,n){let r=[`react`,`react-dom`,`react-router-dom`,`react-helmet-async`,`@bdocs/ssg`].find(t=>e===t||e.startsWith(t+`/`)||e.includes(`/node_modules/${t}/`)||t.startsWith(`@`)&&e.includes(`/node_modules/${t.replace(`/`,v.sep)}/`));if(r&&n?.ssr){let t=e;if(!v.isAbsolute(e)){let n=Xt(Q);try{t=r===`@bdocs/ssg`||r===`react-router-dom`||r===`react-helmet-async`?$(e,n):n.resolve(e)}catch{try{t=r===`@bdocs/ssg`||r===`react-router-dom`||r===`react-helmet-async`?$(e,Q):Q.resolve(e)}catch{}}}try{t=y.realpathSync(t)}catch{}return{id:t,external:!0}}return null},transformIndexHtml:{order:`pre`,handler(e){return Ve(e,a)}},async buildEnd(){let{pool:e}=await import(`./worker-pool-k0DY6k8T.mjs`);await e.terminate()},async closeBundle(){!s||o?.build?.ssr||(await c?.runHook(`afterBuild`),await c?.runHook(`buildEnd`))},configurePreviewServer(e){let t=o?.build?.outDir?v.resolve(o.root||process.cwd(),o.build.outDir):v.resolve(process.cwd(),`dist`);e.middlewares.use((e,n,r)=>{let i=e.url||`/`,a=i.split(`?`)[0].split(`#`)[0];if(v.extname(a))return r();let o=a.replace(/\/$/,``)||`/`,s=v.join(t,o,`index.html`);o!==`/`&&y.existsSync(s)&&(e.url=`${o}/index.html${i.includes(`?`)?`?${i.split(`?`)[1]}`:``}`),r()})}},kt(e,d,g,n),Gt(n,r,d,f,_),Yt(a,_),{...ae({includePublic:!0,png:{quality:80},jpeg:{quality:80},jpg:{quality:80},webp:{quality:80},avif:{quality:80},svg:{multipass:!0,plugins:[{name:`preset-default`}]}}),apply:`build`},...u]}_(import.meta.url);async function tn(e){let t=e?.docsDir||`docs`,n=await h(t),r=(await l(t,n)).map(e=>e.path),i=(n.base||`/docs`).replace(/\/$/,``);return r.includes(i)||r.push(i),m(n,t,void 0,r),p(r),en({...e},n)}async function nn(e,t=`development`){let n=await h(`docs`,e),r=(await l(`docs`,n)).map(e=>e.path),i=(n.base||`/docs`).replace(/\/$/,``);r.includes(i)||r.push(i),m(n,`docs`,e,r),p(r);let a=t===`production`,o=a?{...At}:{};return n.security?.enableCSP&&(o[`Content-Security-Policy`]=jt(n)),{root:e,mode:t,oxc:{jsx:{development:!a,runtime:`automatic`,importSource:`react`}},optimizeDeps:{include:[`react`,`react-dom`,`react-dom/client`,`react-helmet-async`,`react-router-dom`,`react-fast-compare`,`invariant`,`use-sync-external-store/shim`]},build:{},plugins:[ee(),te(),...en({docsDir:`docs`,root:e},n)],resolve:{alias:[{find:`boltdocs/entry`,replacement:re(v.resolve(e,`boltdocs-entry.tsx`))},{find:`boltdocs/client`,replacement:re(v.resolve(e,`boltdocs-client.mjs`))},{find:`use-sync-external-store/shim/index.js`,replacement:`react`},{find:`use-sync-external-store/shim`,replacement:`react`},{find:`use-sync-external-store`,replacement:`react`}],dedupe:[`react`,`react-dom`]},ssr:{external:[`react`,`react-dom`,`react-helmet-async`,`@bdocs/ssg`,`react-fast-compare`,`invariant`,...$t()],optimizeDeps:{include:[`react`,`react-dom`,`react-fast-compare`,`invariant`,...n.vite?.ssr?.optimizeDeps?.include||[]]},noExternal:[`boltdocs`,/@bdocs\/(?!ssg).*/,`react-aria-components`,`@react-aria/collections`,`@react-aria/utils`,`react-router-dom`]},server:{headers:{...o,...n.vite?.server?.headers},...n.vite?.server},preview:{headers:{...o,...n.vite?.preview?.headers},...n.vite?.preview},...n.vite}}export{D as A,et as C,O as D,He as E,E as O,nt as S,A as T,mt as _,ce as a,z as b,_t as c,gt as d,wt as f,V as g,ht as h,Tt as i,Re as j,k,yt as l,H as m,nn as n,le as o,Ct as p,G as r,St as s,tn as t,vt as u,bt as v,We as w,M as x,xt as y};
160
+ export default UserLayout;`;throw Error(`[Boltdocs] Layout file not found. A 'layout.tsx' or 'layout.jsx' file is mandatory in your docs directory. Please create one to define your site structure.`)}if(o===`icons`){let e=[`tsx`,`jsx`,`ts`,`js`],t=null;for(let n of e){let e=v.resolve(r,`icons.${n}`);if(y.existsSync(e)){t=e;break}}return t?`import * as icons from '${i(t)}';\nexport default icons;`:`export default {};`}if(o===`search`){if(!q){let e=Dt(await l(r,a));q=`export default ${JSON.stringify(e,null,2)};`}return q}if(o===`client`){let e=U,t=``;for(;e&&e!==v.parse(e).root;){let n=v.join(e,`src/client/index.ts`),r=v.join(e,`dist/client/index.mjs`),a=v.join(e,`client/index.ts`);if(y.existsSync(n)){t=i(n);break}if(y.existsSync(r)){t=i(r);break}if(y.existsSync(a)){t=i(a);break}e=v.dirname(e)}if(!t)throw Error(`[boltdocs] Could not resolve boltdocs/client entry point starting from ${U}`);return`export * from '${t}';`}}}}const At={"X-Content-Type-Options":`nosniff`,"X-Frame-Options":`DENY`,"X-XSS-Protection":`1; mode=block`,"Referrer-Policy":`strict-origin-when-cross-origin`,"Permissions-Policy":`camera=(), microphone=(), geolocation=()`,"Strict-Transport-Security":`max-age=31536000; includeSubDomains`};function jt(e){let t=process.env.NODE_ENV===`development`,n={"default-src":[`'self'`],"script-src":[`'self'`,`'unsafe-inline'`],"style-src":[`'self'`,`'unsafe-inline'`],"img-src":[`'self'`,`data:`,`https:`],"font-src":[`'self'`],"connect-src":[`'self'`]};return t&&(n[`script-src`]=[`'self'`,`'unsafe-eval'`,`'unsafe-inline'`],n[`style-src`]=[`'self'`,`'unsafe-inline'`]),Object.entries(n).map(([e,t])=>`${e} ${t.join(` `)}`).join(`; `)}const Mt=/\.(js|css|png|jpe?g|gif|svg|ico|webp|woff2?|ttf|otf|mp4|webm|ogg|mp3|wav|flac|aac|pdf|zip|gz|map|json)$/i;function Nt(e,t){let n=process.env.NODE_ENV===`production`;e.middlewares.use((e,r,i)=>{n&&Object.entries(At).forEach(([e,t])=>{r.setHeader(e,t)});let a=t();a.security?.enableCSP&&r.setHeader(`Content-Security-Policy`,jt(a)),i()}),e.middlewares.use((e,t,n)=>{if(e.url===`/robots.txt`){n();return}n()}),e.middlewares.use(async(n,r,i)=>{let a=n.url?.split(`?`)[0]||`/`,o=n.headers.accept||``,s=t();if(o.includes(`text/html`)&&!Mt.test(a)){let t=Be(s);t=Ve(t,s),t=await e.transformIndexHtml(n.url||`/`,t),r.statusCode=200,r.setHeader(`Content-Type`,`text/html`),r.end(t);return}i()})}function Pt(e,t,n){setTimeout(async()=>{try{let{generateRoutes:r}=await import(`./routes-DjoxNeef.mjs`),i=(await r(t,n())).filter(e=>e.filePath).map(e=>e.filePath);for(let t=0;t<i.length;t+=8){let n=i.slice(t,t+8);await Promise.allSettled(n.map(t=>{let n=v.relative(process.cwd(),t).replace(/\\/g,`/`),r=n.startsWith(`/`)?n:`/${n}`;return e.transformRequest(r)}))}}catch{}},1e3)}const Ft=[`tsx`,`jsx`],J=[`tsx`,`ts`,`jsx`,`js`];function It(e,t){let n=f.map(e=>v.resolve(process.cwd(),e)),r=Ft.map(e=>v.resolve(t,`layout.${e}`)),i=J.map(e=>v.resolve(t,`mdx-components.${e}`)),a=J.map(e=>v.resolve(t,`pages-external/index.${e}`)),o=J.map(e=>v.resolve(t,`icons.${e}`));e.watcher.add([...n,...i,...r,...a,...o])}const Y=new Map;function Lt(e){let{lastUpdated:t,...n}=e;return ie.createHash(`md5`).update(JSON.stringify(n)).digest(`hex`)}async function Rt(e){try{let{data:n}=await t(e);return Lt(n)}catch{return``}}function zt(e){let t=Y.get(e);if(t===void 0){let n=c.get(e);n?.route?.frontmatter&&(t=Lt(n.route.frontmatter),Y.set(e,t))}return t}function Bt(e,t){Y.set(e,t)}function Vt(e){Y.delete(e)}const Ht=[`tsx`,`ts`,`jsx`,`js`];function X(e,t){let n=e.moduleGraph.getModuleById(`\0virtual:boltdocs-${t}.ts`);n&&e.moduleGraph.invalidateModule(n)}function Ut(t,n,r,a){let c=new Map,l=r.toLowerCase(),u=async(r,u)=>{try{let p=i(r);if(f.some(e=>p.endsWith(e))){t.restart();return}if(Ht.some(e=>p.endsWith(`mdx-components.${e}`))){m(a(),n),X(t,`mdx-components.tsx`),t.ws.send({type:`full-reload`});return}if(Ht.some(e=>p.endsWith(`icons.${e}`))){X(t,`icons.tsx`),t.ws.send({type:`full-reload`});return}if(p.endsWith(`layout.tsx`)||p.endsWith(`layout.jsx`)){X(t,`layout.tsx`),t.ws.send({type:`full-reload`});return}if(p.includes(`/pages-external/`)||p.includes(`\\pages-external\\`)){X(t,`entry`),t.ws.send({type:`full-reload`});return}if(!p.toLowerCase().startsWith(l)||!e(p))return;if(u===`add`||u===`unlink`){u===`unlink`&&Vt(r),s(),Ot();let e=a();m(e,n),X(t,`config`),X(t,`routes`),X(t,`search`),X(t,`collections`),d(n,process.cwd(),e).catch(e=>{C(`Failed to update link tree:`,e)}),t.ws.send({type:`custom`,event:`boltdocs:config-update`,data:{theme:e?.theme,i18n:e?.i18n,versions:e?.versions,siteUrl:e?.siteUrl}}),t.ws.send({type:`full-reload`});return}c.has(p)&&clearTimeout(c.get(p)),c.set(p,setTimeout(async()=>{c.delete(p);try{let e=zt(r),a=await Rt(r);if(Bt(r,a),o(r),e!==void 0&&e!==a){X(t,`routes`),X(t,`search`),X(t,`collections`),t.ws.send({type:`full-reload`});return}let s=i(v.relative(n,r)),c=t.moduleGraph.getModulesByFile(p);if(c&&c.size>0)for(let e of c)t.moduleGraph.invalidateModule(e);else{t.ws.send({type:`full-reload`});return}t.ws.send({type:`custom`,event:`boltdocs:mdx-update`,data:{file:p,relPath:s}})}catch(e){C(`HMR error processing content change:`,e)}},150))}catch(e){C(`HMR error during ${u} event:`,e)}};t.watcher.on(`add`,e=>u(e,`add`)),t.watcher.on(`unlink`,e=>u(e,`unlink`)),t.watcher.on(`change`,e=>u(e,`change`))}function Wt(t){let n=t.toLowerCase();return({file:t})=>{if(t.toLowerCase().startsWith(n)&&e(t))return[]}}function Gt(e,t,n,r,i){return{name:`vite-plugin-boltdocs-dev-server`,apply:`serve`,async configureServer(r){let a=i();await a?.runHook(`beforeDev`),d(e,process.cwd(),n()).catch(e=>{C(`Failed to generate initial link tree:`,e)}),Pt(r,e,n),Nt(r,n),It(r,e),Ut(r,e,t,n),await a?.runHook(`afterDev`)},hotUpdate:Wt(t)}}const Z=new a(`mdx`);function Kt(e){let t=pt(e);return async e=>{let n=await t.getHighlighter();V(e,M.ELEMENT,e=>{if(e.tagName!==`pre`)return;let r=e.children?.[0];if(!r||r.type!==M.ELEMENT||r.tagName!==`code`)return;let i=(r.properties?.className||[]).find(e=>e.startsWith(`language-`)),a=i?i.slice(9):I.MDX_DEFAULT_LANG;if(a===`mermaid`)return;let o=z(r.properties?.metastring||r.data?.meta||``),s=t.getOptions(a,o),c=r.children?.[0]?.value||``;try{let t=n.codeToHast(c,s),r=t.type===`root`?t.children[0]:t;e.children=r.children,e.properties={...e.properties,...r.properties,[N.HIGHLIGHTED]:`true`,[N.LANG]:a}}catch(t){C(`[rehypeShiki] Failed to highlight code block:`,t),e.properties=e.properties||{},e.properties.className=[...e.properties.className||[],P.FALLBACK],e.properties[N.HIGHLIGHTED]=`false`,e.properties[N.LANG]=a}return o.title&&(e.properties[N.TITLE]=o.title),le})}}function qt(){return e=>{V(e,M.CODE,e=>{e.meta&&H(e,`metastring`,e.meta)})}}let Jt=!1;function Yt(e,t,n=Ne){let r=e?.plugins?.flatMap(e=>e.remarkPlugins||[])||[],i=e?.plugins?.flatMap(e=>e.rehypePlugins||[])||[],a=n({remarkPlugins:[Pe,Fe,qt,...r],rehypePlugins:[Ie,[Kt,e],...i],jsxRuntime:`automatic`});return{...a,name:`vite-plugin-boltdocs-mdx`,async buildStart(){Jt||=(await Z.load(),!0),a.buildStart&&await a.buildStart.call(this)},async transform(e,n,r){let[i]=n.split(`?`);if(!i.endsWith(`.md`)&&!i.endsWith(`.mdx`))return a.transform?.call(this,e,n,r);let o=`${i}:${ie.createHash(`md5`).update(e).digest(`hex`)}:${process.env.NODE_ENV===`production`?`prod`:`dev`}:v3`,s=await Z.getAsync(o);if(s)return{code:s,map:null};let c=await a.transform.call(this,e,i,r);if(c&&typeof c==`object`&&c.code){let e=c.code,n=t?.();return n&&(e=(await n.runChain(`transformMdx`,{code:e,filePath:i})).code),Z.set(o,e),{code:e,map:null}}return c},async buildEnd(){Z.save(),await Z.flush(),a.buildEnd&&await a.buildEnd.call(this)}}}const Q=g.createRequire(import.meta.url);function Xt(e){try{let e=v.join(process.cwd(),`node_modules/boltdocs/package.json`);if(y.existsSync(e)){let t=y.realpathSync(e);return g.createRequire(t)}else return g.createRequire(v.join(process.cwd(),`package.json`))}catch{return e}}function Zt(e){let t=v.dirname(e);for(;t&&t!==v.dirname(t);){let e=v.join(t,`package.json`);if(y.existsSync(e))return e;t=v.dirname(t)}return null}function Qt(e){let t=e.split(`/`);return e.startsWith(`@`)?{packageName:t.slice(0,2).join(`/`),subpath:t.slice(2).join(`/`)}:{packageName:t[0],subpath:t.slice(1).join(`/`)}}function $(e,t=Q){try{let{packageName:n,subpath:r}=Qt(e),i;try{i=t.resolve(n+`/package.json`)}catch{i=Zt(t.resolve(n))||``}if(!i)throw Error(`Could not find package.json for ${n}`);let a=v.dirname(i),o=JSON.parse(y.readFileSync(i,`utf-8`)),s=``,c=r?`./`+r:`.`;if(o.exports){let e=o.exports[c]||o.exports[r];e&&(s=typeof e==`string`?e:e.import||e.default||e.require||e)}if(!s&&!r&&(s=o.module||o.main||`index.js`),typeof s==`object`&&s){let e=s;s=e.import||e.default||e.require||``}if(s){let e=v.resolve(a,s);if(y.existsSync(e))return e}}catch{}return t.resolve(e)}function $t(){let e=[`react`,`react-dom`,`react-router-dom`,`react-helmet-async`,`@bdocs/ssg`,`react-fast-compare`,`invariant`],t=[],n=Xt(Q);for(let r of e)try{let e=``;e=r===`@bdocs/ssg`||r===`react-router-dom`||r===`react-helmet-async`?$(r,n):n.resolve(r),e&&t.push(y.realpathSync(e))}catch{}if(n!==Q)for(let n of e)try{let e=``;e=n===`@bdocs/ssg`||n===`react-router-dom`||n===`react-helmet-async`?$(n,Q):Q.resolve(n),e&&t.push(y.realpathSync(e))}catch{}for(let e of[`react/jsx-runtime`,`react/jsx-dev-runtime`,`react-dom/client`]){try{t.push(y.realpathSync(n.resolve(e)))}catch{}if(n!==Q)try{t.push(y.realpathSync(Q.resolve(e)))}catch{}}return Array.from(new Set(t)).map(e=>i(e))}function en(e={},t){let n=v.resolve(process.cwd(),e.docsDir||`docs`),r=i(n),a=t,o,s=!1,c,u=[],d=()=>a,f=e=>{a=e},g=()=>o,_=()=>c;return[{name:`vite-plugin-boltdocs`,enforce:`pre`,async config(e,t){s=t.command===`build`;let r=!!(t.isSsrBuild||e.build?.ssr),i=e.envDir||process.cwd(),o=ne(t.mode,i,``);if(Object.assign(process.env,o),!a){a=await h(n);let e=(await l(n,a)).map(e=>e.path),t=(a.base||`/docs`).replace(/\/$/,``);e.includes(t)||e.push(t),m(a,n,void 0,e),p(e)}let d=(await import(`./package-DlgexgpQ.mjs`)).version,f=A(a.plugins||[],d);return a.plugins=f,c=new nt(f,a),u=f.flatMap(e=>e.vitePlugins||[]),s&&await c.runHook(`beforeBuild`),{ssgOptions:{entry:`boltdocs/entry`,htmlEntry:`index.html`,dirStyle:`flat`,includeAllRoutes:!0,mock:!0,script:`async`,beastiesOptions:{preload:`media`}},build:{ssrManifest:s},optimizeDeps:{include:[`react`,`react-dom`,`react-dom/client`,`react-router-dom`,`react-helmet-async`,`react-fast-compare`,`invariant`],exclude:[`boltdocs`,`boltdocs/client`]},resolve:{alias:[{find:`react-router-dom`,replacement:$(`react-router-dom`)},{find:`react-helmet-async`,replacement:$(`react-helmet-async`)},{find:`@bdocs/ssg`,replacement:$(`@bdocs/ssg`)}],dedupe:[`react`,`react-dom`,...r?[]:[`react-router-dom`,`react-helmet-async`,`@bdocs/ssg`]]},ssr:{external:[`react`,`react-dom`,`react-helmet-async`,`@bdocs/ssg`,`react-fast-compare`,`invariant`,...$t()],optimizeDeps:{include:[`react-fast-compare`,`invariant`]},noExternal:[`react-router-dom`]}}},configResolved(e){o=e},resolveId(e,t,n){let r=[`react`,`react-dom`,`react-router-dom`,`react-helmet-async`,`@bdocs/ssg`].find(t=>e===t||e.startsWith(t+`/`)||e.includes(`/node_modules/${t}/`)||t.startsWith(`@`)&&e.includes(`/node_modules/${t.replace(`/`,v.sep)}/`));if(r&&n?.ssr){let t=e;if(!v.isAbsolute(e)){let n=Xt(Q);try{t=r===`@bdocs/ssg`||r===`react-router-dom`||r===`react-helmet-async`?$(e,n):n.resolve(e)}catch{try{t=r===`@bdocs/ssg`||r===`react-router-dom`||r===`react-helmet-async`?$(e,Q):Q.resolve(e)}catch{}}}try{t=y.realpathSync(t)}catch{}return{id:t,external:!0}}return null},transformIndexHtml:{order:`pre`,handler(e){return Ve(e,a)}},async buildEnd(){let{pool:e}=await import(`./worker-pool-Kn4F9gDq.mjs`);await e.terminate()},async closeBundle(){!s||o?.build?.ssr||(await c?.runHook(`afterBuild`),await c?.runHook(`buildEnd`))},configurePreviewServer(e){let t=o?.build?.outDir?v.resolve(o.root||process.cwd(),o.build.outDir):v.resolve(process.cwd(),`dist`);e.middlewares.use((e,n,r)=>{let i=e.url||`/`,a=i.split(`?`)[0].split(`#`)[0];if(v.extname(a))return r();let o=a.replace(/\/$/,``)||`/`,s=v.join(t,o,`index.html`);o!==`/`&&y.existsSync(s)&&(e.url=`${o}/index.html${i.includes(`?`)?`?${i.split(`?`)[1]}`:``}`),r()})}},kt(e,d,g,n),Gt(n,r,d,f,_),Yt(a,_),{...ae({includePublic:!0,png:{quality:80},jpeg:{quality:80},jpg:{quality:80},webp:{quality:80},avif:{quality:80},svg:{multipass:!0,plugins:[{name:`preset-default`}]}}),apply:`build`},...u]}_(import.meta.url);async function tn(e){let t=e?.docsDir||`docs`,n=await h(t),r=(await l(t,n)).map(e=>e.path),i=(n.base||`/docs`).replace(/\/$/,``);return r.includes(i)||r.push(i),m(n,t,void 0,r),p(r),en({...e},n)}async function nn(e,t=`development`){let n=await h(`docs`,e),r=(await l(`docs`,n)).map(e=>e.path),i=(n.base||`/docs`).replace(/\/$/,``);r.includes(i)||r.push(i),m(n,`docs`,e,r),p(r);let a=t===`production`,o=a?{...At}:{};return n.security?.enableCSP&&(o[`Content-Security-Policy`]=jt(n)),{root:e,mode:t,oxc:{jsx:{development:!a,runtime:`automatic`,importSource:`react`}},optimizeDeps:{include:[`react`,`react-dom`,`react-dom/client`,`react-helmet-async`,`react-router-dom`,`react-fast-compare`,`invariant`,`use-sync-external-store/shim`]},build:{},plugins:[ee(),te(),...en({docsDir:`docs`,root:e},n)],resolve:{alias:[{find:`boltdocs/entry`,replacement:re(v.resolve(e,`boltdocs-entry.tsx`))},{find:`boltdocs/client`,replacement:re(v.resolve(e,`boltdocs-client.mjs`))},{find:`use-sync-external-store/shim/index.js`,replacement:`react`},{find:`use-sync-external-store/shim`,replacement:`react`},{find:`use-sync-external-store`,replacement:`react`}],dedupe:[`react`,`react-dom`]},ssr:{external:[`react`,`react-dom`,`react-helmet-async`,`@bdocs/ssg`,`react-fast-compare`,`invariant`,...$t()],optimizeDeps:{include:[`react`,`react-dom`,`react-fast-compare`,`invariant`,...n.vite?.ssr?.optimizeDeps?.include||[]]},noExternal:[`boltdocs`,/@bdocs\/(?!ssg).*/,`react-aria-components`,`@react-aria/collections`,`@react-aria/utils`,`react-router-dom`]},server:{headers:{...o,...n.vite?.server?.headers},...n.vite?.server},preview:{headers:{...o,...n.vite?.preview?.headers},...n.vite?.preview},...n.vite}}export{D as A,et as C,O as D,He as E,E as O,nt as S,A as T,mt as _,ce as a,z as b,_t as c,gt as d,wt as f,V as g,ht as h,Tt as i,Re as j,k,yt as l,H as m,nn as n,le as o,Ct as p,G as r,St as s,tn as t,vt as u,bt as v,We as w,M as x,xt as y};
@@ -3,4 +3,4 @@
3
3
  * Copyright (c) 2026 Jesus Alcala
4
4
  * Licensed under the MIT License.
5
5
  */
6
- var e=`2.8.2`;Object.defineProperty(exports,`version`,{enumerable:!0,get:function(){return e}});
6
+ var e=`2.8.4`;Object.defineProperty(exports,`version`,{enumerable:!0,get:function(){return e}});
@@ -3,4 +3,4 @@
3
3
  * Copyright (c) 2026 Jesus Alcala
4
4
  * Licensed under the MIT License.
5
5
  */
6
- var e=`2.8.2`;export{e as version};
6
+ var e=`2.8.4`;export{e as version};
@@ -3,4 +3,4 @@
3
3
  * Copyright (c) 2026 Jesus Alcala
4
4
  * Licensed under the MIT License.
5
5
  */
6
- import{j as e}from"./node-NZrBn5jg.mjs";import{_ as t,a as n,b as r,d as i,g as a,h as o,i as s,l as c,m as l,p as u,t as d}from"./utils-BYITg7T5.mjs";import{t as f}from"./cache-BMUyNiiA.mjs";import p from"node:path";import m from"github-slugger";function h(e,t,r,i,a){let s=p.relative(t,e).replace(/\\/g,`/`),c=s.split(`/`),l,u,d,f;if(i?.versions&&c.length>0){let e=c[0],t=i.versions.prefix||``,n=i.versions.versions.find(n=>e===t+n.path||e===n.path);n&&(u=n.path,c=c.slice(1))}if(i?.i18n&&c.length>0){let e=c[0];(Array.isArray(i.i18n.locales)?i.i18n.locales.includes(e):i.i18n.locales[e])&&(l=e,c=c.slice(1))}if(c.length>0){let e=c[0].match(/^\((.+)\)$/);e&&(d=e[1].toLowerCase(),c=c.slice(1))}if(c.length>0){let e=c[0].match(/^\[(.+)\]$/);e&&(f=e[1].toLowerCase(),c=c.slice(1))}let m=[...c],h=c.map(e=>o(e)).join(`/`),g=a?a.startsWith(`/`)?a:`/${a}`:n(h||`index.md`),_=[f?`/${f}`:r,u,l,!a&&!f?d:void 0,g].filter(Boolean).join(`/`).replace(/\/+/g,`/`).replace(/\/$/,``)||`/`;return{relativePath:s,finalPath:_.startsWith(`/`)?_:`/${_}`,remainingParts:m,locale:l,version:u,inferredTab:d,subRouteGroup:void 0,collection:f}}const g=/^(#{2,4})\s+(.+)$/gm,_=/\[([^\]]+)\]\([^)]+\)/g,v=/[_*`]/g,y=/\s+/g,b=/[[\]_*`]|#+.*$|\{[^}]+\}/gm,x=/\((?:[^)]+)\)/g;function S(e,t){let n=new m,r=[];for(let t of e.matchAll(g)){let e=t[1].length,i=u(t[2].replace(_,`$1`).replace(v,``).trim()).trim(),a=n.slug(i);r.push({level:e,text:i,id:a})}let i=l(e.replace(b,``).replace(x,``).replace(y,` `)).trim(),a=t?u(t).trim():``;return!a&&e&&(a=i.substring(0,160)),{headings:r,description:a,plainText:i}}const C=[`og:`,`twitter:`,`article:`,`music:`,`video:`,`profile:`,`book:`],w=[`noindex`,`robots`,`canonical`,`keywords`,`author`];function T(e){let t={};e.seo&&typeof e.seo==`object`&&Object.assign(t,e.seo);for(let n of Object.keys(e))(w.includes(n)||C.some(e=>n.startsWith(e)))&&(t[n]=e[n]);return e.hidden===!0&&t.noindex===void 0&&(t.noindex=!0),Object.keys(t).length>0?t:void 0}function E(e){return{title:e.title?u(String(e.title)):void 0,badge:e.badge?u(String(e.badge)):void 0,description:e.description?u(String(e.description)):void 0}}async function D(e,n,a,c){let l=await f.get(e);if(l)return l;let u=e.replace(/\\/g,`/`),m=n.replace(/\\/g,`/`),g=O(u),_=p.resolve(g),v=p.resolve(m);if(p.sep===`/`){let e=e=>{let t=e.replace(/\\/g,`/`);return/^[a-zA-Z]:/.test(t)&&(t=t.replace(/^[a-zA-Z]:/,``)),p.resolve(t)};_=e(g),v=e(m)}let y=p.relative(v,_).replace(/\\/g,`/`);if(y.startsWith(`../`)||y!==`.`&&!r.test(y))throw new t(`Security breach: File is outside of docs directory, contains null bytes, or invalid path characters: ${p.basename(g)}`);let{data:b,content:x}=await i(e),C=h(_,v,a,c,b.permalink),w=S(x,b.description),D=E(b),k=T(b),A=p.basename(C.relativePath),j=o(A),M=C.remainingParts.map(e=>o(e)).slice(0,-1),N=/^index\.mdx?$/.test(j),P=b.sidebarPosition??s(A),F=M.join(`/`),I={route:{path:C.finalPath,componentPath:e,filePath:C.relativePath,title:D.title||o(p.basename(u,p.extname(u))),description:w.description,sidebarPosition:P,headings:w.headings,locale:C.locale,version:C.version,badge:D.badge,icon:b.icon?String(b.icon):void 0,tab:C.inferredTab,subRouteGroup:C.subRouteGroup,slugParts:M,_content:w.plainText,_rawContent:x,date:b.date,lastUpdated:b.lastUpdated,category:b.category,order:b.order,sidebarLabel:b.sidebarLabel,sidebarHidden:b.sidebarHidden||b.hidden,seo:k,frontmatter:b,collection:C.collection,tags:b.tags,author:b.author,draft:b.draft,excerpt:b.excerpt,coverImage:b.coverImage},relativeDir:C.collection?void 0:F||void 0,isGroupIndex:N,inferredTab:C.inferredTab,inferredCollection:C.collection,groupMeta:N?{title:b.groupTitle||D.title||(M.length>0?d(M[M.length-1]):``),position:b.groupPosition??b.sidebarPosition??(C.remainingParts.length>1?s(C.remainingParts[C.remainingParts.length-2]):void 0),icon:b.icon?String(b.icon):void 0}:void 0,inferredGroupPosition:C.remainingParts.length>1?s(C.remainingParts[C.remainingParts.length-2]):void 0};return await f.set(e,I),I}function O(e){let n;try{n=decodeURIComponent(e)}catch{throw c(`SECURITY_ERROR`,`Invalid encoding in path`,{file:e}),new a(`Security breach: Invalid characters or encoding in path`)}if(n.length>260)throw new t(`Path length exceeds limit`);return n}var k=e({parseDocFile:()=>D});export{D as n,k as t};
6
+ import{j as e}from"./node-q-Y2mdLX.mjs";import{_ as t,a as n,b as r,d as i,g as a,h as o,i as s,l as c,m as l,p as u,t as d}from"./utils-BYITg7T5.mjs";import{t as f}from"./cache-BMUyNiiA.mjs";import p from"node:path";import m from"github-slugger";function h(e,t,r,i,a){let s=p.relative(t,e).replace(/\\/g,`/`),c=s.split(`/`),l,u,d,f;if(i?.versions&&c.length>0){let e=c[0],t=i.versions.prefix||``,n=i.versions.versions.find(n=>e===t+n.path||e===n.path);n&&(u=n.path,c=c.slice(1))}if(i?.i18n&&c.length>0){let e=c[0];(Array.isArray(i.i18n.locales)?i.i18n.locales.includes(e):i.i18n.locales[e])&&(l=e,c=c.slice(1))}if(c.length>0){let e=c[0].match(/^\((.+)\)$/);e&&(d=e[1].toLowerCase(),c=c.slice(1))}if(c.length>0){let e=c[0].match(/^\[(.+)\]$/);e&&(f=e[1].toLowerCase(),c=c.slice(1))}let m=[...c],h=c.map(e=>o(e)).join(`/`),g=a?a.startsWith(`/`)?a:`/${a}`:n(h||`index.md`),_=[f?`/${f}`:r,u,l,!a&&!f?d:void 0,g].filter(Boolean).join(`/`).replace(/\/+/g,`/`).replace(/\/$/,``)||`/`;return{relativePath:s,finalPath:_.startsWith(`/`)?_:`/${_}`,remainingParts:m,locale:l,version:u,inferredTab:d,subRouteGroup:void 0,collection:f}}const g=/^(#{2,4})\s+(.+)$/gm,_=/\[([^\]]+)\]\([^)]+\)/g,v=/[_*`]/g,y=/\s+/g,b=/[[\]_*`]|#+.*$|\{[^}]+\}/gm,x=/\((?:[^)]+)\)/g;function S(e,t){let n=new m,r=[];for(let t of e.matchAll(g)){let e=t[1].length,i=u(t[2].replace(_,`$1`).replace(v,``).trim()).trim(),a=n.slug(i);r.push({level:e,text:i,id:a})}let i=l(e.replace(b,``).replace(x,``).replace(y,` `)).trim(),a=t?u(t).trim():``;return!a&&e&&(a=i.substring(0,160)),{headings:r,description:a,plainText:i}}const C=[`og:`,`twitter:`,`article:`,`music:`,`video:`,`profile:`,`book:`],w=[`noindex`,`robots`,`canonical`,`keywords`,`author`];function T(e){let t={};e.seo&&typeof e.seo==`object`&&Object.assign(t,e.seo);for(let n of Object.keys(e))(w.includes(n)||C.some(e=>n.startsWith(e)))&&(t[n]=e[n]);return e.hidden===!0&&t.noindex===void 0&&(t.noindex=!0),Object.keys(t).length>0?t:void 0}function E(e){return{title:e.title?u(String(e.title)):void 0,badge:e.badge?u(String(e.badge)):void 0,description:e.description?u(String(e.description)):void 0}}async function D(e,n,a,c){let l=await f.get(e);if(l)return l;let u=e.replace(/\\/g,`/`),m=n.replace(/\\/g,`/`),g=O(u),_=p.resolve(g),v=p.resolve(m);if(p.sep===`/`){let e=e=>{let t=e.replace(/\\/g,`/`);return/^[a-zA-Z]:/.test(t)&&(t=t.replace(/^[a-zA-Z]:/,``)),p.resolve(t)};_=e(g),v=e(m)}let y=p.relative(v,_).replace(/\\/g,`/`);if(y.startsWith(`../`)||y!==`.`&&!r.test(y))throw new t(`Security breach: File is outside of docs directory, contains null bytes, or invalid path characters: ${p.basename(g)}`);let{data:b,content:x}=await i(e),C=h(_,v,a,c,b.permalink),w=S(x,b.description),D=E(b),k=T(b),A=p.basename(C.relativePath),j=o(A),M=C.remainingParts.map(e=>o(e)).slice(0,-1),N=/^index\.mdx?$/.test(j),P=b.sidebarPosition??s(A),F=M.join(`/`),I={route:{path:C.finalPath,componentPath:e,filePath:C.relativePath,title:D.title||o(p.basename(u,p.extname(u))),description:w.description,sidebarPosition:P,headings:w.headings,locale:C.locale,version:C.version,badge:D.badge,icon:b.icon?String(b.icon):void 0,tab:C.inferredTab,subRouteGroup:C.subRouteGroup,slugParts:M,_content:w.plainText,_rawContent:x,date:b.date,lastUpdated:b.lastUpdated,category:b.category,order:b.order,sidebarLabel:b.sidebarLabel,sidebarHidden:b.sidebarHidden||b.hidden,seo:k,frontmatter:b,collection:C.collection,tags:b.tags,author:b.author,draft:b.draft,excerpt:b.excerpt,coverImage:b.coverImage},relativeDir:C.collection?void 0:F||void 0,isGroupIndex:N,inferredTab:C.inferredTab,inferredCollection:C.collection,groupMeta:N?{title:b.groupTitle||D.title||(M.length>0?d(M[M.length-1]):``),position:b.groupPosition??b.sidebarPosition??(C.remainingParts.length>1?s(C.remainingParts[C.remainingParts.length-2]):void 0),icon:b.icon?String(b.icon):void 0}:void 0,inferredGroupPosition:C.remainingParts.length>1?s(C.remainingParts[C.remainingParts.length-2]):void 0};return await f.set(e,I),I}function O(e){let n;try{n=decodeURIComponent(e)}catch{throw c(`SECURITY_ERROR`,`Invalid encoding in path`,{file:e}),new a(`Security breach: Invalid characters or encoding in path`)}if(n.length>260)throw new t(`Path length exceeds limit`);return n}var k=e({parseDocFile:()=>D});export{D as n,k as t};
@@ -3,4 +3,4 @@
3
3
  * Copyright (c) 2026 Jesus Alcala
4
4
  * Licensed under the MIT License.
5
5
  */
6
- const e=require(`./routes-DiYC4nD2.cjs`);exports.generateRoutes=e.t;
6
+ const e=require(`./routes-DpJnb2VS.cjs`);exports.generateRoutes=e.t;
@@ -3,4 +3,4 @@
3
3
  * Copyright (c) 2026 Jesus Alcala
4
4
  * Licensed under the MIT License.
5
5
  */
6
- import{t as e}from"./utils-BYITg7T5.mjs";import{n as t,t as n}from"./cache-BMUyNiiA.mjs";import r from"node:path";import{fdir as i}from"fdir";const a=new t({name:`routes`});function o(){a.invalidateAll(),n.clear()}function s(e){a.invalidate(e),n.invalidate(e)}function c(e){return e.sort((e,t)=>!e.group&&!t.group?l(e,t):e.group?t.group?e.group===t.group?l(e,t):u(e,t):1:-1)}function l(e,t){return e.sidebarPosition!==void 0&&t.sidebarPosition!==void 0?e.sidebarPosition-t.sidebarPosition:e.sidebarPosition===void 0?t.sidebarPosition===void 0?e.title.localeCompare(t.title):1:-1}function u(e,t){return e.groupPosition!==void 0&&t.groupPosition!==void 0?e.groupPosition-t.groupPosition:e.groupPosition===void 0?t.groupPosition===void 0?(e.groupTitle||e.group).localeCompare(t.groupTitle||t.group):1:-1}let d=null;const f=new Map;let p=null;function m(){d=null,f.clear(),o()}async function h(t,n,o,s=!1){if(p)return p;let l=(async()=>{let l=o||n?.base||`/docs`;await a.load(),f.clear();let u;if(!s&&d)u=d;else{let e=await new i().withFullPaths().filter(e=>e.endsWith(`.md`)||e.endsWith(`.mdx`)?!r.relative(t,e).replace(/\\/g,`/`).split(`/`).some(e=>e.startsWith(`_`)&&e!==`_index.md`&&e!==`_index.mdx`):!1).crawl(t).withPromise(),n=[/index\./i,/intro/i,/getting-started/i,/readme/i],a=e.map(e=>{let t=r.basename(e),i=n.findIndex(e=>e.test(t));return{f:e,score:i===-1?2**53-1:i}});a.sort((e,t)=>e.score-t.score),u=a.map(e=>e.f),d=u}a.pruneStale(new Set(u));let p=process.env.NODE_ENV===`test`||process.env.VITEST===`true`,m;if(p){let{parseDocFile:e}=await import(`./parser-BrkFi6YE.mjs`).then(e=>e.t);m=await Promise.all(u.map(async r=>{let i=a.get(r);if(i)return i;let o=await e(r,t,l,n);return a.set(r,o),o}))}else{let{pool:e}=await import(`./worker-pool-k0DY6k8T.mjs`),r=n?{i18n:n.i18n,versions:n.versions}:void 0;m=await Promise.all(u.map(async n=>{let i=a.get(n);if(i)return i;let o=await e.parseFile(n,t,l,r);return a.set(n,o),o}))}a.save();let h=[],_=new Map;for(let e of m)if(!(process.env.NODE_ENV===`production`&&e.route.draft))if(e.inferredCollection){let t=e.inferredCollection;_.has(t)||_.set(t,[]),_.get(t).push(e)}else h.push(e);let v=new Map,y=[],b=n?.i18n?.defaultLocale||``;for(let t of h)if(t.isGroupIndex&&t.relativeDir&&y.push(t),t.relativeDir){let n=`${t.route.locale||b}:${t.relativeDir}`,r=v.get(n);r?r.position===void 0&&t.inferredGroupPosition!==void 0&&(r.position=t.inferredGroupPosition):(r={title:e(t.relativeDir),position:t.inferredGroupPosition},v.set(n,r))}for(let e of y){let t=`${e.route.locale||b}:${e.relativeDir}`,n=v.get(t);e.groupMeta&&(n.title=e.groupMeta.title,e.groupMeta.position!==void 0&&(n.position=e.groupMeta.position),e.groupMeta.icon&&(n.icon=e.groupMeta.icon))}if(n?.theme?.sidebarGroups){let t=n.i18n?Object.keys(n.i18n.locales):[b];for(let[r,i]of Object.entries(n.theme.sidebarGroups))for(let n of t){let t=`${n}:${r}`,a=v.get(t),o;typeof i.title==`string`?o=i.title:i.title&&(o=i.title[n]||i.title[b]),a?(o&&(a.title=o),i.icon&&(a.icon=i.icon)):v.set(t,{title:o||e(r),icon:i.icon})}}let x=Array(h.length);for(let t=0;t<h.length;t++){let n=h[t],r=n.relativeDir,i=n.route.locale||b,a=r?`${i}:${r}`:void 0,o=a?v.get(a):void 0,s;o&&(s=typeof o.title==`string`?o.title:o.title[i]||o.title[b]),x[t]={...n.route,group:r,groupTitle:s||(r?e(r):void 0),groupPosition:o?.position,groupIcon:o?.icon}}let S=[];for(let[,e]of _)for(let t of e)S.push({...t.route,collection:t.inferredCollection});S.sort((e,t)=>{let n=e.date?new Date(e.date).getTime():0;return(t.date?new Date(t.date).getTime():0)-n});let C=x;if(n?.i18n){let e=g(x,n,l);C=[...x,...e]}return[...c(C),...S]})();p=l;try{return await l}finally{p=null}}function g(e,t,n){let r=t.i18n.defaultLocale,i=Object.keys(t.i18n.locales),a=[],o=new Map,s=[];for(let t of e){let e=t.locale||r;o.has(e)||o.set(e,new Set),o.get(e).add(t.path),e===r&&s.push(t)}for(let e of i){let i=o.get(e)||new Set;for(let o of s){let s=_(o.path,r,e,n,t);s!==o.path&&(i.has(s)||a.push({...o,path:s,locale:e}))}}return a}function _(e,t,n,r,i){let a=`${e}:${n}`,o=f.get(a);if(o)return o;let s=r.startsWith(`/`)?r:`/`+r,c=s;if(i?.versions){let t=i.versions.prefix||``;for(let n of i.versions.versions){let r=`${s}/${t+n.path}`;if(e.startsWith(r)){c=r;break}let i=`${s}/${n.path}`;if(e.startsWith(i)){c=i;break}}}let l=e.substring(c.length),u=`/${t}`;if(l.startsWith(u+`/`))l=`/`+n+`/`+l.substring(u.length+1);else if(l===u)l=`/`+n;else if(l===`/`||l===``)l=`/`+n;else{let e=l.startsWith(`/`)?``:`/`;l=`/`+n+e+l}let d=c+l;return f.size>2e3&&f.clear(),f.set(a,d),d}export{s as i,m as n,a as r,h as t};
6
+ import{t as e}from"./utils-BYITg7T5.mjs";import{n as t,t as n}from"./cache-BMUyNiiA.mjs";import r from"node:path";import{fdir as i}from"fdir";const a=new t({name:`routes`});function o(){a.invalidateAll(),n.clear()}function s(e){a.invalidate(e),n.invalidate(e)}function c(e){return e.sort((e,t)=>!e.group&&!t.group?l(e,t):e.group?t.group?e.group===t.group?l(e,t):u(e,t):1:-1)}function l(e,t){return e.sidebarPosition!==void 0&&t.sidebarPosition!==void 0?e.sidebarPosition-t.sidebarPosition:e.sidebarPosition===void 0?t.sidebarPosition===void 0?e.title.localeCompare(t.title):1:-1}function u(e,t){return e.groupPosition!==void 0&&t.groupPosition!==void 0?e.groupPosition-t.groupPosition:e.groupPosition===void 0?t.groupPosition===void 0?(e.groupTitle||e.group).localeCompare(t.groupTitle||t.group):1:-1}let d=null;const f=new Map;let p=null;function m(){d=null,f.clear(),o()}async function h(t,n,o,s=!1){if(p)return p;let l=(async()=>{let l=o||n?.base||`/docs`;await a.load(),f.clear();let u;if(!s&&d)u=d;else{let e=await new i().withFullPaths().filter(e=>e.endsWith(`.md`)||e.endsWith(`.mdx`)?!r.relative(t,e).replace(/\\/g,`/`).split(`/`).some(e=>e.startsWith(`_`)&&e!==`_index.md`&&e!==`_index.mdx`):!1).crawl(t).withPromise(),n=[/index\./i,/intro/i,/getting-started/i,/readme/i],a=e.map(e=>{let t=r.basename(e),i=n.findIndex(e=>e.test(t));return{f:e,score:i===-1?2**53-1:i}});a.sort((e,t)=>e.score-t.score),u=a.map(e=>e.f),d=u}a.pruneStale(new Set(u));let p=process.env.NODE_ENV===`test`||process.env.VITEST===`true`,m;if(p){let{parseDocFile:e}=await import(`./parser-9LqyiEnB.mjs`).then(e=>e.t);m=await Promise.all(u.map(async r=>{let i=a.get(r);if(i)return i;let o=await e(r,t,l,n);return a.set(r,o),o}))}else{let{pool:e}=await import(`./worker-pool-Kn4F9gDq.mjs`),r=n?{i18n:n.i18n,versions:n.versions}:void 0;m=await Promise.all(u.map(async n=>{let i=a.get(n);if(i)return i;let o=await e.parseFile(n,t,l,r);return a.set(n,o),o}))}a.save();let h=[],_=new Map;for(let e of m)if(!(process.env.NODE_ENV===`production`&&e.route.draft))if(e.inferredCollection){let t=e.inferredCollection;_.has(t)||_.set(t,[]),_.get(t).push(e)}else h.push(e);let v=new Map,y=[],b=n?.i18n?.defaultLocale||``;for(let t of h)if(t.isGroupIndex&&t.relativeDir&&y.push(t),t.relativeDir){let n=`${t.route.locale||b}:${t.relativeDir}`,r=v.get(n);r?r.position===void 0&&t.inferredGroupPosition!==void 0&&(r.position=t.inferredGroupPosition):(r={title:e(t.relativeDir),position:t.inferredGroupPosition},v.set(n,r))}for(let e of y){let t=`${e.route.locale||b}:${e.relativeDir}`,n=v.get(t);e.groupMeta&&(n.title=e.groupMeta.title,e.groupMeta.position!==void 0&&(n.position=e.groupMeta.position),e.groupMeta.icon&&(n.icon=e.groupMeta.icon))}if(n?.theme?.sidebarGroups){let t=n.i18n?Object.keys(n.i18n.locales):[b];for(let[r,i]of Object.entries(n.theme.sidebarGroups))for(let n of t){let t=`${n}:${r}`,a=v.get(t),o;typeof i.title==`string`?o=i.title:i.title&&(o=i.title[n]||i.title[b]),a?(o&&(a.title=o),i.icon&&(a.icon=i.icon)):v.set(t,{title:o||e(r),icon:i.icon})}}let x=Array(h.length);for(let t=0;t<h.length;t++){let n=h[t],r=n.relativeDir,i=n.route.locale||b,a=r?`${i}:${r}`:void 0,o=a?v.get(a):void 0,s;o&&(s=typeof o.title==`string`?o.title:o.title[i]||o.title[b]),x[t]={...n.route,group:r,groupTitle:s||(r?e(r):void 0),groupPosition:o?.position,groupIcon:o?.icon}}let S=[];for(let[,e]of _)for(let t of e)S.push({...t.route,collection:t.inferredCollection});S.sort((e,t)=>{let n=e.date?new Date(e.date).getTime():0;return(t.date?new Date(t.date).getTime():0)-n});let C=x;if(n?.i18n){let e=g(x,n,l);C=[...x,...e]}return[...c(C),...S]})();p=l;try{return await l}finally{p=null}}function g(e,t,n){let r=t.i18n.defaultLocale,i=Object.keys(t.i18n.locales),a=[],o=new Map,s=[];for(let t of e){let e=t.locale||r;o.has(e)||o.set(e,new Set),o.get(e).add(t.path),e===r&&s.push(t)}for(let e of i){let i=o.get(e)||new Set;for(let o of s){let s=_(o.path,r,e,n,t);s!==o.path&&(i.has(s)||a.push({...o,path:s,locale:e}))}}return a}function _(e,t,n,r,i){let a=`${e}:${n}`,o=f.get(a);if(o)return o;let s=r.startsWith(`/`)?r:`/`+r,c=s;if(i?.versions){let t=i.versions.prefix||``;for(let n of i.versions.versions){let r=`${s}/${t+n.path}`;if(e.startsWith(r)){c=r;break}let i=`${s}/${n.path}`;if(e.startsWith(i)){c=i;break}}}let l=e.substring(c.length),u=`/${t}`;if(l.startsWith(u+`/`))l=`/`+n+`/`+l.substring(u.length+1);else if(l===u)l=`/`+n;else if(l===`/`||l===``)l=`/`+n;else{let e=l.startsWith(`/`)?``:`/`;l=`/`+n+e+l}let d=c+l;return f.size>2e3&&f.clear(),f.set(a,d),d}export{s as i,m as n,a as r,h as t};
@@ -3,4 +3,4 @@
3
3
  * Copyright (c) 2026 Jesus Alcala
4
4
  * Licensed under the MIT License.
5
5
  */
6
- import{t as e}from"./routes-f9J1MQRr.mjs";export{e as generateRoutes};
6
+ import{t as e}from"./routes-DZpXqq1p.mjs";export{e as generateRoutes};
@@ -3,4 +3,4 @@
3
3
  * Copyright (c) 2026 Jesus Alcala
4
4
  * Licensed under the MIT License.
5
5
  */
6
- const e=require(`./chunk-CU-zTemE.cjs`),t=require(`./utils-Cjmx1hhk.cjs`),n=require(`./cache-CKm45d2w.cjs`);let r=require(`node:path`);r=e.t(r);let i=require(`fdir`);const a=new n.n({name:`routes`});function o(){a.invalidateAll(),n.t.clear()}function s(e){a.invalidate(e),n.t.invalidate(e)}function c(e){return e.sort((e,t)=>!e.group&&!t.group?l(e,t):e.group?t.group?e.group===t.group?l(e,t):u(e,t):1:-1)}function l(e,t){return e.sidebarPosition!==void 0&&t.sidebarPosition!==void 0?e.sidebarPosition-t.sidebarPosition:e.sidebarPosition===void 0?t.sidebarPosition===void 0?e.title.localeCompare(t.title):1:-1}function u(e,t){return e.groupPosition!==void 0&&t.groupPosition!==void 0?e.groupPosition-t.groupPosition:e.groupPosition===void 0?t.groupPosition===void 0?(e.groupTitle||e.group).localeCompare(t.groupTitle||t.group):1:-1}let d=null;const f=new Map;let p=null;function m(){d=null,f.clear(),o()}async function h(e,n,o,s=!1){if(p)return p;let l=(async()=>{let l=o||n?.base||`/docs`;await a.load(),f.clear();let u;if(!s&&d)u=d;else{let t=await new i.fdir().withFullPaths().filter(t=>t.endsWith(`.md`)||t.endsWith(`.mdx`)?!r.default.relative(e,t).replace(/\\/g,`/`).split(`/`).some(e=>e.startsWith(`_`)&&e!==`_index.md`&&e!==`_index.mdx`):!1).crawl(e).withPromise(),n=[/index\./i,/intro/i,/getting-started/i,/readme/i],a=t.map(e=>{let t=r.default.basename(e),i=n.findIndex(e=>e.test(t));return{f:e,score:i===-1?2**53-1:i}});a.sort((e,t)=>e.score-t.score),u=a.map(e=>e.f),d=u}a.pruneStale(new Set(u));let p=process.env.NODE_ENV===`test`||process.env.VITEST===`true`,m;if(p){let{parseDocFile:t}=await Promise.resolve().then(()=>require(`./parser-BzB-zCkF.cjs`));m=await Promise.all(u.map(async r=>{let i=a.get(r);if(i)return i;let o=await t(r,e,l,n);return a.set(r,o),o}))}else{let{pool:t}=await Promise.resolve().then(()=>require(`./worker-pool-CtqklOXq.cjs`)),r=n?{i18n:n.i18n,versions:n.versions}:void 0;m=await Promise.all(u.map(async n=>{let i=a.get(n);if(i)return i;let o=await t.parseFile(n,e,l,r);return a.set(n,o),o}))}a.save();let h=[],_=new Map;for(let e of m)if(!(process.env.NODE_ENV===`production`&&e.route.draft))if(e.inferredCollection){let t=e.inferredCollection;_.has(t)||_.set(t,[]),_.get(t).push(e)}else h.push(e);let v=new Map,y=[],b=n?.i18n?.defaultLocale||``;for(let e of h)if(e.isGroupIndex&&e.relativeDir&&y.push(e),e.relativeDir){let n=`${e.route.locale||b}:${e.relativeDir}`,r=v.get(n);r?r.position===void 0&&e.inferredGroupPosition!==void 0&&(r.position=e.inferredGroupPosition):(r={title:t.t(e.relativeDir),position:e.inferredGroupPosition},v.set(n,r))}for(let e of y){let t=`${e.route.locale||b}:${e.relativeDir}`,n=v.get(t);e.groupMeta&&(n.title=e.groupMeta.title,e.groupMeta.position!==void 0&&(n.position=e.groupMeta.position),e.groupMeta.icon&&(n.icon=e.groupMeta.icon))}if(n?.theme?.sidebarGroups){let e=n.i18n?Object.keys(n.i18n.locales):[b];for(let[r,i]of Object.entries(n.theme.sidebarGroups))for(let n of e){let e=`${n}:${r}`,a=v.get(e),o;typeof i.title==`string`?o=i.title:i.title&&(o=i.title[n]||i.title[b]),a?(o&&(a.title=o),i.icon&&(a.icon=i.icon)):v.set(e,{title:o||t.t(r),icon:i.icon})}}let x=Array(h.length);for(let e=0;e<h.length;e++){let n=h[e],r=n.relativeDir,i=n.route.locale||b,a=r?`${i}:${r}`:void 0,o=a?v.get(a):void 0,s;o&&(s=typeof o.title==`string`?o.title:o.title[i]||o.title[b]),x[e]={...n.route,group:r,groupTitle:s||(r?t.t(r):void 0),groupPosition:o?.position,groupIcon:o?.icon}}let S=[];for(let[,e]of _)for(let t of e)S.push({...t.route,collection:t.inferredCollection});S.sort((e,t)=>{let n=e.date?new Date(e.date).getTime():0;return(t.date?new Date(t.date).getTime():0)-n});let C=x;if(n?.i18n){let e=g(x,n,l);C=[...x,...e]}return[...c(C),...S]})();p=l;try{return await l}finally{p=null}}function g(e,t,n){let r=t.i18n.defaultLocale,i=Object.keys(t.i18n.locales),a=[],o=new Map,s=[];for(let t of e){let e=t.locale||r;o.has(e)||o.set(e,new Set),o.get(e).add(t.path),e===r&&s.push(t)}for(let e of i){let i=o.get(e)||new Set;for(let o of s){let s=_(o.path,r,e,n,t);s!==o.path&&(i.has(s)||a.push({...o,path:s,locale:e}))}}return a}function _(e,t,n,r,i){let a=`${e}:${n}`,o=f.get(a);if(o)return o;let s=r.startsWith(`/`)?r:`/`+r,c=s;if(i?.versions){let t=i.versions.prefix||``;for(let n of i.versions.versions){let r=`${s}/${t+n.path}`;if(e.startsWith(r)){c=r;break}let i=`${s}/${n.path}`;if(e.startsWith(i)){c=i;break}}}let l=e.substring(c.length),u=`/${t}`;if(l.startsWith(u+`/`))l=`/`+n+`/`+l.substring(u.length+1);else if(l===u)l=`/`+n;else if(l===`/`||l===``)l=`/`+n;else{let e=l.startsWith(`/`)?``:`/`;l=`/`+n+e+l}let d=c+l;return f.size>2e3&&f.clear(),f.set(a,d),d}Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return h}});
6
+ const e=require(`./chunk-CU-zTemE.cjs`),t=require(`./utils-Cjmx1hhk.cjs`),n=require(`./cache-CKm45d2w.cjs`);let r=require(`node:path`);r=e.t(r);let i=require(`fdir`);const a=new n.n({name:`routes`});function o(){a.invalidateAll(),n.t.clear()}function s(e){a.invalidate(e),n.t.invalidate(e)}function c(e){return e.sort((e,t)=>!e.group&&!t.group?l(e,t):e.group?t.group?e.group===t.group?l(e,t):u(e,t):1:-1)}function l(e,t){return e.sidebarPosition!==void 0&&t.sidebarPosition!==void 0?e.sidebarPosition-t.sidebarPosition:e.sidebarPosition===void 0?t.sidebarPosition===void 0?e.title.localeCompare(t.title):1:-1}function u(e,t){return e.groupPosition!==void 0&&t.groupPosition!==void 0?e.groupPosition-t.groupPosition:e.groupPosition===void 0?t.groupPosition===void 0?(e.groupTitle||e.group).localeCompare(t.groupTitle||t.group):1:-1}let d=null;const f=new Map;let p=null;function m(){d=null,f.clear(),o()}async function h(e,n,o,s=!1){if(p)return p;let l=(async()=>{let l=o||n?.base||`/docs`;await a.load(),f.clear();let u;if(!s&&d)u=d;else{let t=await new i.fdir().withFullPaths().filter(t=>t.endsWith(`.md`)||t.endsWith(`.mdx`)?!r.default.relative(e,t).replace(/\\/g,`/`).split(`/`).some(e=>e.startsWith(`_`)&&e!==`_index.md`&&e!==`_index.mdx`):!1).crawl(e).withPromise(),n=[/index\./i,/intro/i,/getting-started/i,/readme/i],a=t.map(e=>{let t=r.default.basename(e),i=n.findIndex(e=>e.test(t));return{f:e,score:i===-1?2**53-1:i}});a.sort((e,t)=>e.score-t.score),u=a.map(e=>e.f),d=u}a.pruneStale(new Set(u));let p=process.env.NODE_ENV===`test`||process.env.VITEST===`true`,m;if(p){let{parseDocFile:t}=await Promise.resolve().then(()=>require(`./parser-BzB-zCkF.cjs`));m=await Promise.all(u.map(async r=>{let i=a.get(r);if(i)return i;let o=await t(r,e,l,n);return a.set(r,o),o}))}else{let{pool:t}=await Promise.resolve().then(()=>require(`./worker-pool-DXLyeHJg.cjs`)),r=n?{i18n:n.i18n,versions:n.versions}:void 0;m=await Promise.all(u.map(async n=>{let i=a.get(n);if(i)return i;let o=await t.parseFile(n,e,l,r);return a.set(n,o),o}))}a.save();let h=[],_=new Map;for(let e of m)if(!(process.env.NODE_ENV===`production`&&e.route.draft))if(e.inferredCollection){let t=e.inferredCollection;_.has(t)||_.set(t,[]),_.get(t).push(e)}else h.push(e);let v=new Map,y=[],b=n?.i18n?.defaultLocale||``;for(let e of h)if(e.isGroupIndex&&e.relativeDir&&y.push(e),e.relativeDir){let n=`${e.route.locale||b}:${e.relativeDir}`,r=v.get(n);r?r.position===void 0&&e.inferredGroupPosition!==void 0&&(r.position=e.inferredGroupPosition):(r={title:t.t(e.relativeDir),position:e.inferredGroupPosition},v.set(n,r))}for(let e of y){let t=`${e.route.locale||b}:${e.relativeDir}`,n=v.get(t);e.groupMeta&&(n.title=e.groupMeta.title,e.groupMeta.position!==void 0&&(n.position=e.groupMeta.position),e.groupMeta.icon&&(n.icon=e.groupMeta.icon))}if(n?.theme?.sidebarGroups){let e=n.i18n?Object.keys(n.i18n.locales):[b];for(let[r,i]of Object.entries(n.theme.sidebarGroups))for(let n of e){let e=`${n}:${r}`,a=v.get(e),o;typeof i.title==`string`?o=i.title:i.title&&(o=i.title[n]||i.title[b]),a?(o&&(a.title=o),i.icon&&(a.icon=i.icon)):v.set(e,{title:o||t.t(r),icon:i.icon})}}let x=Array(h.length);for(let e=0;e<h.length;e++){let n=h[e],r=n.relativeDir,i=n.route.locale||b,a=r?`${i}:${r}`:void 0,o=a?v.get(a):void 0,s;o&&(s=typeof o.title==`string`?o.title:o.title[i]||o.title[b]),x[e]={...n.route,group:r,groupTitle:s||(r?t.t(r):void 0),groupPosition:o?.position,groupIcon:o?.icon}}let S=[];for(let[,e]of _)for(let t of e)S.push({...t.route,collection:t.inferredCollection});S.sort((e,t)=>{let n=e.date?new Date(e.date).getTime():0;return(t.date?new Date(t.date).getTime():0)-n});let C=x;if(n?.i18n){let e=g(x,n,l);C=[...x,...e]}return[...c(C),...S]})();p=l;try{return await l}finally{p=null}}function g(e,t,n){let r=t.i18n.defaultLocale,i=Object.keys(t.i18n.locales),a=[],o=new Map,s=[];for(let t of e){let e=t.locale||r;o.has(e)||o.set(e,new Set),o.get(e).add(t.path),e===r&&s.push(t)}for(let e of i){let i=o.get(e)||new Set;for(let o of s){let s=_(o.path,r,e,n,t);s!==o.path&&(i.has(s)||a.push({...o,path:s,locale:e}))}}return a}function _(e,t,n,r,i){let a=`${e}:${n}`,o=f.get(a);if(o)return o;let s=r.startsWith(`/`)?r:`/`+r,c=s;if(i?.versions){let t=i.versions.prefix||``;for(let n of i.versions.versions){let r=`${s}/${t+n.path}`;if(e.startsWith(r)){c=r;break}let i=`${s}/${n.path}`;if(e.startsWith(i)){c=i;break}}}let l=e.substring(c.length),u=`/${t}`;if(l.startsWith(u+`/`))l=`/`+n+`/`+l.substring(u.length+1);else if(l===u)l=`/`+n;else if(l===`/`||l===``)l=`/`+n;else{let e=l.startsWith(`/`)?``:`/`;l=`/`+n+e+l}let d=c+l;return f.size>2e3&&f.clear(),f.set(a,d),d}Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return h}});
@@ -3,8 +3,8 @@
3
3
  * Copyright (c) 2026 Jesus Alcala
4
4
  * Licensed under the MIT License.
5
5
  */
6
- const require_icons_dev = require('./icons-dev-DvJ-hh9x.cjs');
7
- const require_search_dialog = require('./search-dialog-BXVoecTx.cjs');
6
+ const require_icons_dev = require('./icons-dev-C8sFxeBk.cjs');
7
+ const require_search_dialog = require('./search-dialog-Cvux-qSk.cjs');
8
8
  let react = require("react");
9
9
  let react_router_dom = require("react-router-dom");
10
10
  let react_jsx_runtime = require("react/jsx-runtime");
@@ -3,6 +3,6 @@
3
3
  * Copyright (c) 2026 Jesus Alcala
4
4
  * Licensed under the MIT License.
5
5
  */
6
- const require_search_dialog = require('./search-dialog-BYhOov4S.cjs');
6
+ const require_search_dialog = require('./search-dialog-CmHYOt18.cjs');
7
7
 
8
8
  exports.SearchDialog = require_search_dialog.SearchDialog;
@@ -3,7 +3,7 @@
3
3
  * Copyright (c) 2026 Jesus Alcala
4
4
  * Licensed under the MIT License.
5
5
  */
6
- const require_icons_dev = require('./icons-dev-DvJ-hh9x.cjs');
6
+ const require_icons_dev = require('./icons-dev-C8sFxeBk.cjs');
7
7
  let react = require("react");
8
8
  react = require_icons_dev.__toESM(react);
9
9
  let react_jsx_runtime = require("react/jsx-runtime");
@@ -3,6 +3,6 @@
3
3
  * Copyright (c) 2026 Jesus Alcala
4
4
  * Licensed under the MIT License.
5
5
  */
6
- import { t as SearchDialog } from "./search-dialog-C09riYmx.js";
6
+ import { t as SearchDialog } from "./search-dialog-jHZ21G4i.js";
7
7
 
8
8
  export { SearchDialog };
@@ -3,7 +3,7 @@
3
3
  * Copyright (c) 2026 Jesus Alcala
4
4
  * Licensed under the MIT License.
5
5
  */
6
- import { G as Moon, I as FileText, K as MoreVertical, L as Hash, N as CornerDownLeft, P as ExternalLink, Y as Sun, Z as X, _ as Link, h as XSocial, o as Discord, s as Github, t as Bluesky, y as cn } from "./icons-dev-Oju24Wjp.js";
6
+ import { G as Moon, I as FileText, K as MoreVertical, L as Hash, N as CornerDownLeft, P as ExternalLink, Y as Sun, Z as X, _ as Link, h as XSocial, o as Discord, s as Github, t as Bluesky, y as cn } from "./icons-dev-CFcv5Nb8.js";
7
7
  import { Component, useEffect, useState } from "react";
8
8
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
9
9
  import * as RAC from "react-aria-components";
@@ -3,8 +3,8 @@
3
3
  * Copyright (c) 2026 Jesus Alcala
4
4
  * Licensed under the MIT License.
5
5
  */
6
- import { J as Search, et as useConfig, x as useRoutes } from "./icons-dev-Oju24Wjp.js";
7
- import { n as Navbar, r as ErrorBoundary, t as SearchDialog$1 } from "./search-dialog-D8gLkhUV.js";
6
+ import { J as Search, et as useConfig, x as useRoutes } from "./icons-dev-CFcv5Nb8.js";
7
+ import { n as Navbar, r as ErrorBoundary, t as SearchDialog$1 } from "./search-dialog-e86WPpck.js";
8
8
  import { useCallback, useEffect, useMemo, useState } from "react";
9
9
  import { useNavigate } from "react-router-dom";
10
10
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
@@ -337,6 +337,8 @@ interface ComponentRoute {
337
337
  slugParts?: string[];
338
338
  /** SEO metadata for page headers */
339
339
  seo?: Record<string, any>;
340
+ /** Flag to indicate if this is a fallback redirect route */
341
+ fallback?: boolean;
340
342
  }
341
343
  /**
342
344
  * Site configuration provided by the server.
@@ -337,6 +337,8 @@ interface ComponentRoute {
337
337
  slugParts?: string[];
338
338
  /** SEO metadata for page headers */
339
339
  seo?: Record<string, any>;
340
+ /** Flag to indicate if this is a fallback redirect route */
341
+ fallback?: boolean;
340
342
  }
341
343
  /**
342
344
  * Site configuration provided by the server.
@@ -3,4 +3,4 @@
3
3
  * Copyright (c) 2026 Jesus Alcala
4
4
  * Licensed under the MIT License.
5
5
  */
6
- const e=require(`./chunk-CU-zTemE.cjs`);let t=require(`node:path`);t=e.t(t);let n=require(`node:fs`);n=e.t(n);let r=require(`node:worker_threads`),i=require(`node:os`);i=e.t(i);let a=require(`node:url`);const o=t.default.dirname((0,a.fileURLToPath)(require(`url`).pathToFileURL(__filename).href)),s=new class{workers=[];workerTasks=new WeakMap;queue=[];activeWorkers=0;maxWorkers;maxQueueSize;constructor(e,t=2e3){this.maxWorkers=e||Math.max(1,i.default.cpus().length-1),this.maxQueueSize=t}idleWorkers=[];async parseFile(e,t,n,r){return this.queue.length>=this.maxQueueSize?Promise.reject(Error(`[boltdocs] WorkerPool queue is full (limit: ${this.maxQueueSize}). Too many files enqueued simultaneously. Consider increasing maxQueueSize.`)):new Promise((i,a)=>{this.queue.push({task:{type:`PARSE_FILE`,file:e,docsDir:t,basePath:n,config:r},resolve:i,reject:a}),this.processNext()})}processNext(){if(this.queue.length===0)return;let e=this.idleWorkers.pop();if(!e){if(this.activeWorkers>=this.maxWorkers)return;this.activeWorkers++;let t=this.getWorkerPath(),n=new r.Worker(t,{execArgv:t.endsWith(`.ts`)?[`--loader`,`tsx`]:[]});e=n,this.workers.push(n);let i=(e,t)=>{let n=this.workers.indexOf(e);if(n===-1)return;let r=this.workerTasks.get(e);r&&(this.workerTasks.delete(e),r.reject(t||Error(`Worker terminated unexpectedly`))),this.activeWorkers--;let i=this.idleWorkers.indexOf(e);i>-1&&this.idleWorkers.splice(i,1),this.workers.splice(n,1),e.terminate(),this.processNext()};n.on(`message`,e=>{let t=this.workerTasks.get(n);t&&(this.workerTasks.delete(n),e.type===`SUCCESS`?t.resolve(e.result):t.reject(Error(e.error))),this.idleWorkers.push(n),this.processNext()}),n.on(`error`,e=>{i(n,e)}),n.on(`exit`,e=>{e!==0&&i(n,Error(`Worker exited with code ${e}`))})}let{task:t,resolve:n,reject:i}=this.queue.shift();this.workerTasks.set(e,{resolve:n,reject:i}),e.postMessage(t)}getWorkerPath(){if(require(`url`).pathToFileURL(__filename).href.includes(`/dist/`)||t.default.extname(require(`url`).pathToFileURL(__filename).href)===`.mjs`){let e=[t.default.resolve(o,`node/routes/worker.mjs`),t.default.resolve(o,`worker.mjs`),t.default.resolve(o,`./node/routes/worker.mjs`)];for(let t of e)if(n.default.existsSync(t))return t;return t.default.resolve(o,`node/routes/worker.mjs`)}return t.default.resolve(o,`worker.ts`)}async terminate(){let e=[...this.workers];await Promise.all(e.map(e=>e.terminate())),this.idleWorkers=[],this.workers=[],this.activeWorkers=0}};exports.pool=s;
6
+ const e=require(`./chunk-CU-zTemE.cjs`);let t=require(`node:path`);t=e.t(t);let n=require(`node:fs`);n=e.t(n);let r=require(`node:os`);r=e.t(r);let i=require(`node:url`),a=require(`node:worker_threads`);const o=t.default.dirname((0,i.fileURLToPath)(require(`url`).pathToFileURL(__filename).href)),s=new class{workers=[];workerTasks=new WeakMap;queue=[];activeWorkers=0;maxWorkers;maxQueueSize;constructor(e,t=2e3){this.maxWorkers=e||Math.max(1,r.default.cpus().length-1),this.maxQueueSize=t}idleWorkers=[];async parseFile(e,t,n,r){return this.queue.length>=this.maxQueueSize?Promise.reject(Error(`[boltdocs] WorkerPool queue is full (limit: ${this.maxQueueSize}). Too many files enqueued simultaneously. Consider increasing maxQueueSize.`)):new Promise((i,a)=>{this.queue.push({task:{type:`PARSE_FILE`,file:e,docsDir:t,basePath:n,config:r},resolve:i,reject:a}),this.processNext()})}processNext(){if(this.queue.length===0)return;let e=this.idleWorkers.pop();if(!e){if(this.activeWorkers>=this.maxWorkers)return;this.activeWorkers++;let t=this.getWorkerPath(),n=new a.Worker(t,{execArgv:t.endsWith(`.ts`)?[`--loader`,`tsx`]:[]});e=n,this.workers.push(n);let r=(e,t)=>{let n=this.workers.indexOf(e);if(n===-1)return;let r=this.workerTasks.get(e);r&&(this.workerTasks.delete(e),r.reject(t||Error(`Worker terminated unexpectedly`))),this.activeWorkers--;let i=this.idleWorkers.indexOf(e);i>-1&&this.idleWorkers.splice(i,1),this.workers.splice(n,1),e.terminate(),this.processNext()};n.on(`message`,e=>{let t=this.workerTasks.get(n);t&&(this.workerTasks.delete(n),e.type===`SUCCESS`?t.resolve(e.result):t.reject(Error(e.error))),this.idleWorkers.push(n),this.processNext()}),n.on(`error`,e=>{r(n,e)}),n.on(`exit`,e=>{e!==0&&r(n,Error(`Worker exited with code ${e}`))})}let{task:t,resolve:n,reject:r}=this.queue.shift();this.workerTasks.set(e,{resolve:n,reject:r}),e.postMessage(t)}getWorkerPath(){if(require(`url`).pathToFileURL(__filename).href.includes(`/dist/`)||t.default.extname(require(`url`).pathToFileURL(__filename).href)===`.mjs`){let e=[t.default.resolve(o,`node/routes/worker.mjs`),t.default.resolve(o,`worker.mjs`),t.default.resolve(o,`./node/routes/worker.mjs`)];for(let t of e)if(n.default.existsSync(t))return t;return t.default.resolve(o,`node/routes/worker.mjs`)}return t.default.resolve(o,`worker.ts`)}async terminate(){let e=[...this.workers];await Promise.all(e.map(e=>e.terminate())),this.idleWorkers=[],this.workers=[],this.activeWorkers=0}};exports.pool=s;
@@ -3,4 +3,4 @@
3
3
  * Copyright (c) 2026 Jesus Alcala
4
4
  * Licensed under the MIT License.
5
5
  */
6
- import e from"node:path";import t from"node:fs";import{fileURLToPath as n}from"node:url";import{Worker as r}from"node:worker_threads";import i from"node:os";const a=e.dirname(n(import.meta.url)),o=new class{workers=[];workerTasks=new WeakMap;queue=[];activeWorkers=0;maxWorkers;maxQueueSize;constructor(e,t=2e3){this.maxWorkers=e||Math.max(1,i.cpus().length-1),this.maxQueueSize=t}idleWorkers=[];async parseFile(e,t,n,r){return this.queue.length>=this.maxQueueSize?Promise.reject(Error(`[boltdocs] WorkerPool queue is full (limit: ${this.maxQueueSize}). Too many files enqueued simultaneously. Consider increasing maxQueueSize.`)):new Promise((i,a)=>{this.queue.push({task:{type:`PARSE_FILE`,file:e,docsDir:t,basePath:n,config:r},resolve:i,reject:a}),this.processNext()})}processNext(){if(this.queue.length===0)return;let e=this.idleWorkers.pop();if(!e){if(this.activeWorkers>=this.maxWorkers)return;this.activeWorkers++;let t=this.getWorkerPath(),n=new r(t,{execArgv:t.endsWith(`.ts`)?[`--loader`,`tsx`]:[]});e=n,this.workers.push(n);let i=(e,t)=>{let n=this.workers.indexOf(e);if(n===-1)return;let r=this.workerTasks.get(e);r&&(this.workerTasks.delete(e),r.reject(t||Error(`Worker terminated unexpectedly`))),this.activeWorkers--;let i=this.idleWorkers.indexOf(e);i>-1&&this.idleWorkers.splice(i,1),this.workers.splice(n,1),e.terminate(),this.processNext()};n.on(`message`,e=>{let t=this.workerTasks.get(n);t&&(this.workerTasks.delete(n),e.type===`SUCCESS`?t.resolve(e.result):t.reject(Error(e.error))),this.idleWorkers.push(n),this.processNext()}),n.on(`error`,e=>{i(n,e)}),n.on(`exit`,e=>{e!==0&&i(n,Error(`Worker exited with code ${e}`))})}let{task:t,resolve:n,reject:i}=this.queue.shift();this.workerTasks.set(e,{resolve:n,reject:i}),e.postMessage(t)}getWorkerPath(){if(import.meta.url.includes(`/dist/`)||e.extname(import.meta.url)===`.mjs`){let n=[e.resolve(a,`node/routes/worker.mjs`),e.resolve(a,`worker.mjs`),e.resolve(a,`./node/routes/worker.mjs`)];for(let e of n)if(t.existsSync(e))return e;return e.resolve(a,`node/routes/worker.mjs`)}return e.resolve(a,`worker.ts`)}async terminate(){let e=[...this.workers];await Promise.all(e.map(e=>e.terminate())),this.idleWorkers=[],this.workers=[],this.activeWorkers=0}};export{o as pool};
6
+ import e from"node:path";import t from"node:fs";import{fileURLToPath as n}from"node:url";import r from"node:os";import{Worker as i}from"node:worker_threads";const a=e.dirname(n(import.meta.url)),o=new class{workers=[];workerTasks=new WeakMap;queue=[];activeWorkers=0;maxWorkers;maxQueueSize;constructor(e,t=2e3){this.maxWorkers=e||Math.max(1,r.cpus().length-1),this.maxQueueSize=t}idleWorkers=[];async parseFile(e,t,n,r){return this.queue.length>=this.maxQueueSize?Promise.reject(Error(`[boltdocs] WorkerPool queue is full (limit: ${this.maxQueueSize}). Too many files enqueued simultaneously. Consider increasing maxQueueSize.`)):new Promise((i,a)=>{this.queue.push({task:{type:`PARSE_FILE`,file:e,docsDir:t,basePath:n,config:r},resolve:i,reject:a}),this.processNext()})}processNext(){if(this.queue.length===0)return;let e=this.idleWorkers.pop();if(!e){if(this.activeWorkers>=this.maxWorkers)return;this.activeWorkers++;let t=this.getWorkerPath(),n=new i(t,{execArgv:t.endsWith(`.ts`)?[`--loader`,`tsx`]:[]});e=n,this.workers.push(n);let r=(e,t)=>{let n=this.workers.indexOf(e);if(n===-1)return;let r=this.workerTasks.get(e);r&&(this.workerTasks.delete(e),r.reject(t||Error(`Worker terminated unexpectedly`))),this.activeWorkers--;let i=this.idleWorkers.indexOf(e);i>-1&&this.idleWorkers.splice(i,1),this.workers.splice(n,1),e.terminate(),this.processNext()};n.on(`message`,e=>{let t=this.workerTasks.get(n);t&&(this.workerTasks.delete(n),e.type===`SUCCESS`?t.resolve(e.result):t.reject(Error(e.error))),this.idleWorkers.push(n),this.processNext()}),n.on(`error`,e=>{r(n,e)}),n.on(`exit`,e=>{e!==0&&r(n,Error(`Worker exited with code ${e}`))})}let{task:t,resolve:n,reject:r}=this.queue.shift();this.workerTasks.set(e,{resolve:n,reject:r}),e.postMessage(t)}getWorkerPath(){if(import.meta.url.includes(`/dist/`)||e.extname(import.meta.url)===`.mjs`){let n=[e.resolve(a,`node/routes/worker.mjs`),e.resolve(a,`worker.mjs`),e.resolve(a,`./node/routes/worker.mjs`)];for(let e of n)if(t.existsSync(e))return e;return e.resolve(a,`node/routes/worker.mjs`)}return e.resolve(a,`worker.ts`)}async terminate(){let e=[...this.workers];await Promise.all(e.map(e=>e.terminate())),this.idleWorkers=[],this.workers=[],this.activeWorkers=0}};export{o as pool};