boltdocs 3.2.1 → 3.2.2

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.
@@ -4,7 +4,7 @@
4
4
  * Copyright (c) 2026 Jesus Alcala
5
5
  * Licensed under the MIT License.
6
6
  */
7
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../chunk-D1Md3oWO.cjs`),t=require(`../node-BlVk4EVg.cjs`),n=require(`./cache.cjs`),r=require(`../config-DlGoEM9D.cjs`);let i=require(`node:path`);i=e.r(i);let a=require(`node:fs`);a=e.r(a);let o=require(`@bdocs/dui`),s=require(`node:fs/promises`);s=e.r(s);let c=require(`node:module`),l=require(`@bdocs/ssg/node`),u=require(`cac`);u=e.r(u);let d=require(`node:os`);d=e.r(d);let f=require(`node:url`),p=require(`vite`);function m(e){let t=e;for(;t&&t!==i.default.dirname(t);){if(a.default.existsSync(i.default.join(t,`.git`))||a.default.existsSync(i.default.join(t,`pnpm-workspace.yaml`)))return t;t=i.default.dirname(t)}t=e;let n=e;for(;t&&t!==i.default.dirname(t);)a.default.existsSync(i.default.join(t,`package.json`))&&(n=t),t=i.default.dirname(t);return n}let h=m(process.cwd());function g(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=i.default.resolve(h,t),r=i.default.relative(h,n),a=r.startsWith(`..`)||i.default.isAbsolute(r),o=n.split(i.default.sep),s=o.some(e=>e.startsWith(`.env`)),c=o.some((e,t)=>{if(e===`node_modules`){let e=o[t+1];return!e||!e.startsWith(`.`)}return!1});if(a||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 _(e){return e==null?!1:typeof e==`number`?e!==0:typeof e==`string`?e.includes(`w`)||e.includes(`a`)||e.includes(`+`):!0}function v(){let e=a.default.writeFile;a.default.writeFile=((t,...n)=>{try{g(t)}catch(e){let t=n[n.length-1];if(typeof t==`function`){process.nextTick(()=>t(e));return}throw e}return e.call(a.default,t,...n)});let t=a.default.writeFileSync;a.default.writeFileSync=(e,...n)=>(g(e),t.call(a.default,e,...n));let n=a.default.rm;a.default.rm=((e,...t)=>{try{g(e)}catch(e){let n=t[t.length-1];if(typeof n==`function`){process.nextTick(()=>n(e));return}throw e}return n.call(a.default,e,...t)});let r=a.default.rmSync;a.default.rmSync=(e,...t)=>(g(e),r.call(a.default,e,...t));let i=a.default.unlink;a.default.unlink=((e,...t)=>{try{g(e)}catch(e){let n=t[t.length-1];if(typeof n==`function`){process.nextTick(()=>n(e));return}throw e}return i.call(a.default,e,...t)});let o=a.default.unlinkSync;a.default.unlinkSync=(e,...t)=>(g(e),o.call(a.default,e,...t));let c=a.default.mkdir;a.default.mkdir=((e,...t)=>{try{g(e)}catch(e){let n=t[t.length-1];if(typeof n==`function`){process.nextTick(()=>n(e));return}throw e}return c.call(a.default,e,...t)});let l=a.default.mkdirSync;a.default.mkdirSync=(e,...t)=>(g(e),l.call(a.default,e,...t));let u=a.default.rmdir;a.default.rmdir=((e,...t)=>{try{g(e)}catch(e){let n=t[t.length-1];if(typeof n==`function`){process.nextTick(()=>n(e));return}throw e}return u.call(a.default,e,...t)});let d=a.default.rmdirSync;a.default.rmdirSync=(e,...t)=>(g(e),d.call(a.default,e,...t));let f=a.default.appendFile;a.default.appendFile=((e,...t)=>{try{g(e)}catch(e){let n=t[t.length-1];if(typeof n==`function`){process.nextTick(()=>n(e));return}throw e}return f.call(a.default,e,...t)});let p=a.default.appendFileSync;a.default.appendFileSync=(e,...t)=>(g(e),p.call(a.default,e,...t));let m=a.default.copyFile;a.default.copyFile=((e,t,...n)=>{try{g(e),g(t)}catch(e){let t=n[n.length-1];if(typeof t==`function`){process.nextTick(()=>t(e));return}throw e}return m.call(a.default,e,t,...n)});let h=a.default.copyFileSync;a.default.copyFileSync=(e,t,...n)=>(g(e),g(t),h.call(a.default,e,t,...n));let v=a.default.rename;a.default.rename=((e,t,...n)=>{try{g(e),g(t)}catch(e){let t=n[n.length-1];if(typeof t==`function`){process.nextTick(()=>t(e));return}throw e}return v.call(a.default,e,t,...n)});let y=a.default.renameSync;a.default.renameSync=(e,t,...n)=>(g(e),g(t),y.call(a.default,e,t,...n));let b=a.default.createWriteStream;a.default.createWriteStream=(e,...t)=>(g(e),b.call(a.default,e,...t));let x=a.default.open;a.default.open=((e,t,...n)=>{if(_(typeof t==`function`?void 0:t))try{g(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 x.call(a.default,e,t,...n)});let S=a.default.openSync;a.default.openSync=(e,t,...n)=>(_(t)&&g(e),S.call(a.default,e,t,...n));let C=e=>{if(!e)return;let t=e.writeFile;t&&(e.writeFile=async(n,...r)=>(g(n),t.call(e,n,...r)));let n=e.rm;n&&(e.rm=async(t,...r)=>(g(t),n.call(e,t,...r)));let r=e.mkdir;r&&(e.mkdir=async(t,...n)=>(g(t),r.call(e,t,...n)));let i=e.rmdir;i&&(e.rmdir=async(t,...n)=>(g(t),i.call(e,t,...n)));let a=e.unlink;a&&(e.unlink=async(t,...n)=>(g(t),a.call(e,t,...n)));let o=e.appendFile;o&&(e.appendFile=async(t,...n)=>(g(t),o.call(e,t,...n)));let s=e.copyFile;s&&(e.copyFile=async(t,n,...r)=>(g(t),g(n),s.call(e,t,n,...r)));let c=e.rename;c&&(e.rename=async(t,n,...r)=>(g(t),g(n),c.call(e,t,n,...r)));let l=e.open;l&&(e.open=async(t,n,...r)=>(_(n)&&g(t),l.call(e,t,n,...r)))};C(a.default.promises),C(s.default)}function y(e,t){let n=t?` ${o.colors.green(`➜`)} ${o.colors.green(`Network:`)} ${o.colors.cyan(t)}`:` ${o.colors.green(`➜`)} ${o.colors.green(`Network:`)} ${o.colors.gray(`use --host to expose`)}`;return`
7
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../chunk-D1Md3oWO.cjs`),t=require(`../node-B5hu_6qj.cjs`),n=require(`./cache.cjs`),r=require(`../config-DlGoEM9D.cjs`);let i=require(`node:path`);i=e.r(i);let a=require(`node:fs`);a=e.r(a);let o=require(`@bdocs/dui`),s=require(`node:fs/promises`);s=e.r(s);let c=require(`node:module`),l=require(`@bdocs/ssg/node`),u=require(`cac`);u=e.r(u);let d=require(`node:os`);d=e.r(d);let f=require(`node:url`),p=require(`vite`);function m(e){let t=e;for(;t&&t!==i.default.dirname(t);){if(a.default.existsSync(i.default.join(t,`.git`))||a.default.existsSync(i.default.join(t,`pnpm-workspace.yaml`)))return t;t=i.default.dirname(t)}t=e;let n=e;for(;t&&t!==i.default.dirname(t);)a.default.existsSync(i.default.join(t,`package.json`))&&(n=t),t=i.default.dirname(t);return n}let h=m(process.cwd());function g(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=i.default.resolve(h,t),r=i.default.relative(h,n),a=r.startsWith(`..`)||i.default.isAbsolute(r),o=n.split(i.default.sep),s=o.some(e=>e.startsWith(`.env`)),c=o.some((e,t)=>{if(e===`node_modules`){let e=o[t+1];return!e||!e.startsWith(`.`)}return!1});if(a||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 _(e){return e==null?!1:typeof e==`number`?e!==0:typeof e==`string`?e.includes(`w`)||e.includes(`a`)||e.includes(`+`):!0}function v(){let e=a.default.writeFile;a.default.writeFile=((t,...n)=>{try{g(t)}catch(e){let t=n[n.length-1];if(typeof t==`function`){process.nextTick(()=>t(e));return}throw e}return e.call(a.default,t,...n)});let t=a.default.writeFileSync;a.default.writeFileSync=(e,...n)=>(g(e),t.call(a.default,e,...n));let n=a.default.rm;a.default.rm=((e,...t)=>{try{g(e)}catch(e){let n=t[t.length-1];if(typeof n==`function`){process.nextTick(()=>n(e));return}throw e}return n.call(a.default,e,...t)});let r=a.default.rmSync;a.default.rmSync=(e,...t)=>(g(e),r.call(a.default,e,...t));let i=a.default.unlink;a.default.unlink=((e,...t)=>{try{g(e)}catch(e){let n=t[t.length-1];if(typeof n==`function`){process.nextTick(()=>n(e));return}throw e}return i.call(a.default,e,...t)});let o=a.default.unlinkSync;a.default.unlinkSync=(e,...t)=>(g(e),o.call(a.default,e,...t));let c=a.default.mkdir;a.default.mkdir=((e,...t)=>{try{g(e)}catch(e){let n=t[t.length-1];if(typeof n==`function`){process.nextTick(()=>n(e));return}throw e}return c.call(a.default,e,...t)});let l=a.default.mkdirSync;a.default.mkdirSync=(e,...t)=>(g(e),l.call(a.default,e,...t));let u=a.default.rmdir;a.default.rmdir=((e,...t)=>{try{g(e)}catch(e){let n=t[t.length-1];if(typeof n==`function`){process.nextTick(()=>n(e));return}throw e}return u.call(a.default,e,...t)});let d=a.default.rmdirSync;a.default.rmdirSync=(e,...t)=>(g(e),d.call(a.default,e,...t));let f=a.default.appendFile;a.default.appendFile=((e,...t)=>{try{g(e)}catch(e){let n=t[t.length-1];if(typeof n==`function`){process.nextTick(()=>n(e));return}throw e}return f.call(a.default,e,...t)});let p=a.default.appendFileSync;a.default.appendFileSync=(e,...t)=>(g(e),p.call(a.default,e,...t));let m=a.default.copyFile;a.default.copyFile=((e,t,...n)=>{try{g(e),g(t)}catch(e){let t=n[n.length-1];if(typeof t==`function`){process.nextTick(()=>t(e));return}throw e}return m.call(a.default,e,t,...n)});let h=a.default.copyFileSync;a.default.copyFileSync=(e,t,...n)=>(g(e),g(t),h.call(a.default,e,t,...n));let v=a.default.rename;a.default.rename=((e,t,...n)=>{try{g(e),g(t)}catch(e){let t=n[n.length-1];if(typeof t==`function`){process.nextTick(()=>t(e));return}throw e}return v.call(a.default,e,t,...n)});let y=a.default.renameSync;a.default.renameSync=(e,t,...n)=>(g(e),g(t),y.call(a.default,e,t,...n));let b=a.default.createWriteStream;a.default.createWriteStream=(e,...t)=>(g(e),b.call(a.default,e,...t));let x=a.default.open;a.default.open=((e,t,...n)=>{if(_(typeof t==`function`?void 0:t))try{g(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 x.call(a.default,e,t,...n)});let S=a.default.openSync;a.default.openSync=(e,t,...n)=>(_(t)&&g(e),S.call(a.default,e,t,...n));let C=e=>{if(!e)return;let t=e.writeFile;t&&(e.writeFile=async(n,...r)=>(g(n),t.call(e,n,...r)));let n=e.rm;n&&(e.rm=async(t,...r)=>(g(t),n.call(e,t,...r)));let r=e.mkdir;r&&(e.mkdir=async(t,...n)=>(g(t),r.call(e,t,...n)));let i=e.rmdir;i&&(e.rmdir=async(t,...n)=>(g(t),i.call(e,t,...n)));let a=e.unlink;a&&(e.unlink=async(t,...n)=>(g(t),a.call(e,t,...n)));let o=e.appendFile;o&&(e.appendFile=async(t,...n)=>(g(t),o.call(e,t,...n)));let s=e.copyFile;s&&(e.copyFile=async(t,n,...r)=>(g(t),g(n),s.call(e,t,n,...r)));let c=e.rename;c&&(e.rename=async(t,n,...r)=>(g(t),g(n),c.call(e,t,n,...r)));let l=e.open;l&&(e.open=async(t,n,...r)=>(_(n)&&g(t),l.call(e,t,n,...r)))};C(a.default.promises),C(s.default)}function y(e,t){let n=t?` ${o.colors.green(`➜`)} ${o.colors.green(`Network:`)} ${o.colors.cyan(t)}`:` ${o.colors.green(`➜`)} ${o.colors.green(`Network:`)} ${o.colors.gray(`use --host to expose`)}`;return`
8
8
  `+(0,o.double)([` ${o.colors.green(`➜`)} ${o.colors.green(`Local:`)} ${o.colors.bgGreen.gray(e)}`,n,``,` ${o.colors.dim(`press h + enter for help`)}`],{title:`boltdocs dev server`})+`
9
9
  `}function b(e,t){let n=t?` ${o.colors.green(`➜`)} ${o.colors.green(`Network:`)} ${o.colors.cyan(t)}`:` ${o.colors.green(`➜`)} ${o.colors.green(`Network:`)} ${o.colors.gray(`use --host to expose`)}`;return`
10
10
  `+(0,o.double)([` ${o.colors.green(`➜`)} ${o.colors.green(`Local:`)} ${o.colors.bgGreen.gray(e)}`,n],{title:`boltdocs preview server`})+`
@@ -4,7 +4,7 @@
4
4
  * Copyright (c) 2026 Jesus Alcala
5
5
  * Licensed under the MIT License.
6
6
  */
7
- import{d as e,n as t,p as n}from"../node-DOf4zhWc.mjs";import{flushCache as r}from"./cache.mjs";import{r as i}from"../config-CCXp3aXO.mjs";import{createRequire as a}from"node:module";import o from"node:path";import s from"node:fs";import{colors as c,configure as l,divider as u,double as d,error as f,info as p,padCenter as m,steps as h,success as g,table as _,warn as v}from"@bdocs/dui";import y from"node:fs/promises";import{createServer as b}from"@bdocs/ssg/node";import x from"cac";import S from"node:os";import{fileURLToPath as C}from"node:url";import{preview as w}from"vite";function T(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 E=T(process.cwd());function D(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(E,t),r=o.relative(E,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 O(e){return e==null?!1:typeof e==`number`?e!==0:typeof e==`string`?e.includes(`w`)||e.includes(`a`)||e.includes(`+`):!0}function k(){let e=s.writeFile;s.writeFile=((t,...n)=>{try{D(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=(e,...n)=>(D(e),t.call(s,e,...n));let n=s.rm;s.rm=((e,...t)=>{try{D(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=(e,...t)=>(D(e),r.call(s,e,...t));let i=s.unlink;s.unlink=((e,...t)=>{try{D(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=(e,...t)=>(D(e),a.call(s,e,...t));let o=s.mkdir;s.mkdir=((e,...t)=>{try{D(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=(e,...t)=>(D(e),c.call(s,e,...t));let l=s.rmdir;s.rmdir=((e,...t)=>{try{D(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=(e,...t)=>(D(e),u.call(s,e,...t));let d=s.appendFile;s.appendFile=((e,...t)=>{try{D(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=(e,...t)=>(D(e),f.call(s,e,...t));let p=s.copyFile;s.copyFile=((e,t,...n)=>{try{D(e),D(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=(e,t,...n)=>(D(e),D(t),m.call(s,e,t,...n));let h=s.rename;s.rename=((e,t,...n)=>{try{D(e),D(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=(e,t,...n)=>(D(e),D(t),g.call(s,e,t,...n));let _=s.createWriteStream;s.createWriteStream=(e,...t)=>(D(e),_.call(s,e,...t));let v=s.open;s.open=((e,t,...n)=>{if(O(typeof t==`function`?void 0:t))try{D(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 v.call(s,e,t,...n)});let b=s.openSync;s.openSync=(e,t,...n)=>(O(t)&&D(e),b.call(s,e,t,...n));let x=e=>{if(!e)return;let t=e.writeFile;t&&(e.writeFile=async(n,...r)=>(D(n),t.call(e,n,...r)));let n=e.rm;n&&(e.rm=async(t,...r)=>(D(t),n.call(e,t,...r)));let r=e.mkdir;r&&(e.mkdir=async(t,...n)=>(D(t),r.call(e,t,...n)));let i=e.rmdir;i&&(e.rmdir=async(t,...n)=>(D(t),i.call(e,t,...n)));let a=e.unlink;a&&(e.unlink=async(t,...n)=>(D(t),a.call(e,t,...n)));let o=e.appendFile;o&&(e.appendFile=async(t,...n)=>(D(t),o.call(e,t,...n)));let s=e.copyFile;s&&(e.copyFile=async(t,n,...r)=>(D(t),D(n),s.call(e,t,n,...r)));let c=e.rename;c&&(e.rename=async(t,n,...r)=>(D(t),D(n),c.call(e,t,n,...r)));let l=e.open;l&&(e.open=async(t,n,...r)=>(O(n)&&D(t),l.call(e,t,n,...r)))};x(s.promises),x(y)}function A(e,t){let n=t?` ${c.green(`➜`)} ${c.green(`Network:`)} ${c.cyan(t)}`:` ${c.green(`➜`)} ${c.green(`Network:`)} ${c.gray(`use --host to expose`)}`;return`
7
+ import{d as e,n as t,p as n}from"../node-C8725aw7.mjs";import{flushCache as r}from"./cache.mjs";import{r as i}from"../config-CCXp3aXO.mjs";import{createRequire as a}from"node:module";import o from"node:path";import s from"node:fs";import{colors as c,configure as l,divider as u,double as d,error as f,info as p,padCenter as m,steps as h,success as g,table as _,warn as v}from"@bdocs/dui";import y from"node:fs/promises";import{createServer as b}from"@bdocs/ssg/node";import x from"cac";import S from"node:os";import{fileURLToPath as C}from"node:url";import{preview as w}from"vite";function T(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 E=T(process.cwd());function D(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(E,t),r=o.relative(E,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 O(e){return e==null?!1:typeof e==`number`?e!==0:typeof e==`string`?e.includes(`w`)||e.includes(`a`)||e.includes(`+`):!0}function k(){let e=s.writeFile;s.writeFile=((t,...n)=>{try{D(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=(e,...n)=>(D(e),t.call(s,e,...n));let n=s.rm;s.rm=((e,...t)=>{try{D(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=(e,...t)=>(D(e),r.call(s,e,...t));let i=s.unlink;s.unlink=((e,...t)=>{try{D(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=(e,...t)=>(D(e),a.call(s,e,...t));let o=s.mkdir;s.mkdir=((e,...t)=>{try{D(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=(e,...t)=>(D(e),c.call(s,e,...t));let l=s.rmdir;s.rmdir=((e,...t)=>{try{D(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=(e,...t)=>(D(e),u.call(s,e,...t));let d=s.appendFile;s.appendFile=((e,...t)=>{try{D(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=(e,...t)=>(D(e),f.call(s,e,...t));let p=s.copyFile;s.copyFile=((e,t,...n)=>{try{D(e),D(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=(e,t,...n)=>(D(e),D(t),m.call(s,e,t,...n));let h=s.rename;s.rename=((e,t,...n)=>{try{D(e),D(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=(e,t,...n)=>(D(e),D(t),g.call(s,e,t,...n));let _=s.createWriteStream;s.createWriteStream=(e,...t)=>(D(e),_.call(s,e,...t));let v=s.open;s.open=((e,t,...n)=>{if(O(typeof t==`function`?void 0:t))try{D(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 v.call(s,e,t,...n)});let b=s.openSync;s.openSync=(e,t,...n)=>(O(t)&&D(e),b.call(s,e,t,...n));let x=e=>{if(!e)return;let t=e.writeFile;t&&(e.writeFile=async(n,...r)=>(D(n),t.call(e,n,...r)));let n=e.rm;n&&(e.rm=async(t,...r)=>(D(t),n.call(e,t,...r)));let r=e.mkdir;r&&(e.mkdir=async(t,...n)=>(D(t),r.call(e,t,...n)));let i=e.rmdir;i&&(e.rmdir=async(t,...n)=>(D(t),i.call(e,t,...n)));let a=e.unlink;a&&(e.unlink=async(t,...n)=>(D(t),a.call(e,t,...n)));let o=e.appendFile;o&&(e.appendFile=async(t,...n)=>(D(t),o.call(e,t,...n)));let s=e.copyFile;s&&(e.copyFile=async(t,n,...r)=>(D(t),D(n),s.call(e,t,n,...r)));let c=e.rename;c&&(e.rename=async(t,n,...r)=>(D(t),D(n),c.call(e,t,n,...r)));let l=e.open;l&&(e.open=async(t,n,...r)=>(O(n)&&D(t),l.call(e,t,n,...r)))};x(s.promises),x(y)}function A(e,t){let n=t?` ${c.green(`➜`)} ${c.green(`Network:`)} ${c.cyan(t)}`:` ${c.green(`➜`)} ${c.green(`Network:`)} ${c.gray(`use --host to expose`)}`;return`
8
8
  `+d([` ${c.green(`➜`)} ${c.green(`Local:`)} ${c.bgGreen.gray(e)}`,n,``,` ${c.dim(`press h + enter for help`)}`],{title:`boltdocs dev server`})+`
9
9
  `}function j(e,t){let n=t?` ${c.green(`➜`)} ${c.green(`Network:`)} ${c.cyan(t)}`:` ${c.green(`➜`)} ${c.green(`Network:`)} ${c.gray(`use --host to expose`)}`;return`
10
10
  `+d([` ${c.green(`➜`)} ${c.green(`Local:`)} ${c.bgGreen.gray(e)}`,n],{title:`boltdocs preview server`})+`
@@ -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`}});const e=require(`../node-BlVk4EVg.cjs`),t=require(`../utils-D6Xtj0FZ.cjs`),n=require(`./cache.cjs`),r=require(`../routes-BgoIB5wb.cjs`),i=require(`../config-DlGoEM9D.cjs`),a=require(`../handler-XX7cLTqe.cjs`),o=require(`../adapters-DvmtpdSF.cjs`);exports.BoltdocsPluginStore=e.g,exports.PluginCompatibilityError=e._,exports.PluginError=e.v,exports.PluginHookError=e.y,exports.PluginLifecycleManager=e.a,exports.PluginValidationError=e.b,exports.createPlugin=e.i,exports.createViteConfig=e.n,exports.default=e.t,exports.defineConfig=i.a,exports.flushCache=n.flushCache,exports.generateEntryCode=e.x,exports.generateRoutes=r.t,exports.handleAwsFeedback=o.t,exports.handleFeedback=a.t,exports.handleNetlifyFeedback=o.r,exports.handleVercelFeedback=o.i,exports.handleWebFeedback=o.n,exports.invalidateRouteCache=r.r,exports.normalizePath=t.u,exports.resolveConfig=i.n,exports.sanitizeFilename=t.f,exports.validatePlugins=e.h;var s=require(`@bdocs/unist-utils`);Object.keys(s).forEach(function(e){e!==`default`&&!Object.prototype.hasOwnProperty.call(exports,e)&&Object.defineProperty(exports,e,{enumerable:!0,get:function(){return s[e]}})});
6
+ Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require(`../node-B5hu_6qj.cjs`),t=require(`../utils-D6Xtj0FZ.cjs`),n=require(`./cache.cjs`),r=require(`../routes-BgoIB5wb.cjs`),i=require(`../config-DlGoEM9D.cjs`),a=require(`../handler-XX7cLTqe.cjs`),o=require(`../adapters-DvmtpdSF.cjs`);exports.BoltdocsPluginStore=e.g,exports.PluginCompatibilityError=e._,exports.PluginError=e.v,exports.PluginHookError=e.y,exports.PluginLifecycleManager=e.a,exports.PluginValidationError=e.b,exports.createPlugin=e.i,exports.createViteConfig=e.n,exports.default=e.t,exports.defineConfig=i.a,exports.flushCache=n.flushCache,exports.generateEntryCode=e.x,exports.generateRoutes=r.t,exports.handleAwsFeedback=o.t,exports.handleFeedback=a.t,exports.handleNetlifyFeedback=o.r,exports.handleVercelFeedback=o.i,exports.handleWebFeedback=o.n,exports.invalidateRouteCache=r.r,exports.normalizePath=t.u,exports.resolveConfig=i.n,exports.sanitizeFilename=t.f,exports.validatePlugins=e.h;var s=require(`@bdocs/unist-utils`);Object.keys(s).forEach(function(e){e!==`default`&&!Object.prototype.hasOwnProperty.call(exports,e)&&Object.defineProperty(exports,e,{enumerable:!0,get:function(){return s[e]}})});
@@ -3,4 +3,4 @@
3
3
  * Copyright (c) 2026 Jesus Alcala
4
4
  * Licensed under the MIT License.
5
5
  */
6
- import{_ as e,b as t,g as n,h as r,i,m as a,n as o,r as s,t as c,v as l,y as u}from"../node-DOf4zhWc.mjs";import{f as d,u as f}from"../utils-Crm9oPcV.mjs";import{flushCache as p}from"./cache.mjs";import{r as m,t as h}from"../routes-BW6zsk7Z.mjs";import{a as g,r as _}from"../config-CCXp3aXO.mjs";import{t as v}from"../handler-DzQae4eA.mjs";import{i as y,n as b,r as x,t as S}from"../adapters-ByYY44Zy.mjs";export*from"@bdocs/unist-utils";export{r as BoltdocsPluginStore,n as PluginCompatibilityError,e as PluginError,l as PluginHookError,i as PluginLifecycleManager,u as PluginValidationError,s as createPlugin,o as createViteConfig,c as default,g as defineConfig,p as flushCache,t as generateEntryCode,h as generateRoutes,S as handleAwsFeedback,v as handleFeedback,x as handleNetlifyFeedback,y as handleVercelFeedback,b as handleWebFeedback,m as invalidateRouteCache,f as normalizePath,_ as resolveConfig,d as sanitizeFilename,a as validatePlugins};
6
+ import{_ as e,b as t,g as n,h as r,i,m as a,n as o,r as s,t as c,v as l,y as u}from"../node-C8725aw7.mjs";import{f as d,u as f}from"../utils-Crm9oPcV.mjs";import{flushCache as p}from"./cache.mjs";import{r as m,t as h}from"../routes-BW6zsk7Z.mjs";import{a as g,r as _}from"../config-CCXp3aXO.mjs";import{t as v}from"../handler-DzQae4eA.mjs";import{i as y,n as b,r as x,t as S}from"../adapters-ByYY44Zy.mjs";export*from"@bdocs/unist-utils";export{r as BoltdocsPluginStore,n as PluginCompatibilityError,e as PluginError,l as PluginHookError,i as PluginLifecycleManager,u as PluginValidationError,s as createPlugin,o as createViteConfig,c as default,g as defineConfig,p as flushCache,t as generateEntryCode,h as generateRoutes,S as handleAwsFeedback,v as handleFeedback,x as handleNetlifyFeedback,y as handleVercelFeedback,b as handleWebFeedback,m as invalidateRouteCache,f as normalizePath,_ as resolveConfig,d as sanitizeFilename,a as validatePlugins};
@@ -101,4 +101,4 @@ ${e.filter(e=>e.seo?.noindex||typeof e.seo?.robots==`string`&&e.seo.robots.inclu
101
101
 
102
102
  `),a=[...n?[n]:[],...r].map(e=>`Sitemap: ${e}`).join(`
103
103
  `);return`${i}${a?`\n\n${a}`:``}`}return[`User-agent: *`,`Allow: /`,``,n?`Sitemap: ${n}`:``].filter(Boolean).join(`
104
- `)}var se=class{name=`SEOWrite`;async execute(e){if(!e.ssgRoutes||!e.config||!e.outDir)throw Error(`SSG Routes, Config, or OutDir not initialized.`);let t=ae(e.ssgRoutes,e.config),n=l.default.resolve(e.root,e.outDir);t&&u.default.writeFileSync(l.default.join(n,`sitemap.xml`),t,`utf-8`);let r=oe(e.config);u.default.writeFileSync(l.default.join(n,`robots.txt`),r,`utf-8`)}};function ce(){return new O().addStep(new E).addStep(new ee).addParallelSteps([new ne,new re]).addStep(new ie).addStep(new se)}var O=class{steps=[];addStep(e){return this.steps.push(e),this}addParallelSteps(e){return this.steps.push(e),this}async run(e){let t=[],n=performance.now(),r={...e,timing:{}};for(let e of this.steps){let i=Array.isArray(e),a=i?e:[e],o=performance.now();try{i?await Promise.all(a.map(e=>e.execute(r))):await a[0].execute(r);let e=performance.now()-o;for(let n of a){let i=r.stepDetails?.[n.name];t.push({name:n.name,duration:e,success:!0,details:i}),r.timing[n.name]=e}if(r.ssgSubSteps){for(let e of r.ssgSubSteps)t.push(e);delete r.ssgSubSteps}}catch(e){let i=performance.now()-o,s=a.find(e=>!t.some(t=>t.name===e.name&&t.success))?.name||a.map(e=>e.name).join(` | `);t.push({name:s,duration:i,success:!1,error:e instanceof Error?e:Error(String(e))});for(let e of t.filter(e=>e.success).reverse()){let t=this.steps.flat().find(t=>t.name===e.name);if(t?.rollback)try{await t.rollback(r)}catch(t){console.error(`[pipeline] rollback failed for step "${e.name}":`,t)}}let c=performance.now()-n;return{success:!1,failedStep:s,error:e instanceof Error?e:Error(String(e)),timing:{total:c,steps:r.timing},stepResults:t}}}return{success:!0,timing:{total:performance.now()-n,steps:r.timing},stepResults:t}}};let k=0;const A=`virtual:boltdocs-`,j=new Map,M=new Map,N=[];function le(){return new Date}function P(){return{transform(e){let t=new n.TransformCache(`plugin:${e}`);return{async get(e){return t.getAsync(e)},set(e,n){t.set(e,n)},async flush(){await t.flush()}}},routes:ue(),memory(e,t){let n=`${e}:`,r=t?.ttl,i=t?.max??100,a=new Map;function o(e){return e.expiresAt!==null&&e.expiresAt<=Date.now()}return{get(e){let t=a.get(n+e);if(t){if(o(t)){a.delete(n+e);return}return t.value}},set(e,t){let o=n+e;if(!a.has(o)&&a.size>=i){let e=a.keys().next().value;e!==void 0&&a.delete(e)}a.set(o,{value:t,expiresAt:r===void 0?null:Date.now()+r})},has(e){let t=a.get(n+e);return t?o(t)?(a.delete(n+e),!1):!0:!1}}}}}function ue(){return{get(e){return r.i.get(e)?.route??null},set(e,t){r.i.set(e,{route:t})},invalidate(e){r.i.invalidate(e)},invalidateAll(){r.i.invalidateAll()}}}function F(e){return{report(t,n,r,i){let a={id:++k,severity:t,code:n,message:r,pluginName:e,filePath:i?.filePath,routePath:i?.routePath,time:le()};if(N.push(a),N.length>256){let e=N.length-256;N.splice(0,e)}},list(){return Object.freeze([...N])},clear(){N.length=0}}}function I(e,t){return{resolveDocs(...t){return L(e,...t)},resolveAsset(...e){return L(t,...e)},safeFileURL(e){return`file://${l.default.resolve(e).replace(/\\/g,`/`)}`}}}function L(e,...n){let r=l.default.resolve(e),i=l.default.resolve(r,...n),a=l.default.relative(r,i);if(a.startsWith(`..`)||l.default.isAbsolute(a))throw Error(`[boltdocs/plugin-context] Path '${n.join(`/`)}' resolves to '${i}' which is outside the workspace boundary '${r}'.`);return t.u(i)}function R(){return{add(e,t,n){if(j.has(e))throw Error(`[boltdocs] Virtual module '${e}' is already registered. Pick a unique id (e.g. prefix it with your plugin name) so two plugins do not collide.`);if(e.startsWith(A))throw Error(`[boltdocs] Virtual module id '${e}' starts with the reserved prefix '${A}'. Use your own plugin namespace (e.g. 'virtual:my-plugin/...').`);j.set(e,{id:e,eager:n?.eager??!1,loader:t})},has(e){return j.has(e)},list(){return Object.freeze([...j.values()])}}}function z(){j.clear()}function B(){function e(e){return U.has(e)||U.set(e,new Set),U.get(e)}return{onFileEvent(t,n){e(t).add(n)},onFileAdd(t){e(`add`).add(t)},onFileChange(t){e(`change`).add(t)},onFileUnlink(t){e(`unlink`).add(t)},send(e,t){W?.(`boltdocs:plugin:${e}`,t)}}}async function V(e,t){let n=U.get(e);if(n)for(let e of n)await e(t)}let H=0;const U=new Map;let W=null;function de(e){W=e}const G=[],K=[],fe=[];function q(e){for(let t of G)e.middlewares.use(t)}async function pe(){for(let e of K)await e()}function J(){return{use(e){G.push(e)},useAt(e,t){G.push((n,r,i)=>{if(n.url?.startsWith(e))return t(n,r,i);i()})},onStart(e){K.push(e)},onEnd(e){fe.push(e)}}}function Y(){return{add(e){let t=e.name??`_unnamed_${H++}`;if(M.has(t))throw Error(`[boltdocs] Middleware '${e.name??`<unnamed>`}' is already registered.`);M.set(t,e)},remove(e){M.delete(e)},has(e){return M.has(e)},list(){return Object.freeze([...M.values()])}}}var X=class{plugins;config;store;docsDir;rootDir;routes;outDir;constructor(e,t,n,r,i,a){this.plugins=e,this.config=t,this.store=new S,this.docsDir=n||process.cwd(),this.rootDir=r||process.cwd(),this.routes=i||[],this.outDir=a||`dist`}async runHook(e,...t){let n=this.getSortedPlugins(),r=new O;for(let i of n)i.hooks?.[e]&&r.addStep(this.createStep(i,e,t));await r.run({})}async runChain(e,t){let n=this.getSortedPlugins(),r=t;for(let t of n){if(!t.hooks?.[e])continue;let n=this.createContext(t);try{let i=t.hooks[e],a=await i(n,r);if(a!==void 0){let e=a.__signal;if(e===`break`)break;if(e===`skip`){r=a;break}r=a}}catch(r){let i=new x(t.name,e,r instanceof Error?r:Error(String(r)));n.logger.error(i),n.diagnostics.report(`error`,`PLUGIN_HOOK_ERROR`,i.message)}}return r}async runMiddlewareChain(e,t){let n=this.plugins.flatMap(e=>e.middleware??[]),r=[...M.values()],i=[...n,...r],a=[...i.filter(e=>e.enforce===`pre`),...i.filter(e=>!e.enforce),...i.filter(e=>e.enforce===`post`)],o=t;for(let t of a){let n=t[e];if(!n)continue;let r=this.createGenericContext();try{let e=await n(r,o);if(e!==void 0){let t=e.__signal;if(t===`break`)break;if(t===`skip`){o=e;break}o=e}}catch(e){let n=t.name??`<unnamed>`;r.diagnostics.report(`error`,`MIDDLEWARE_ERROR`,`Middleware '${n}' threw: ${e instanceof Error?e.message:String(e)}`)}}return o}getSortedPlugins(){let e=this.plugins.filter(e=>e.enforce===`pre`),t=this.plugins.filter(e=>!e.enforce),n=this.plugins.filter(e=>e.enforce===`post`);return[...e,...t,...n]}createStep(e,t,n){return{name:`${e.name}:${String(t)}`,execute:async()=>{let r=this.createContext(e);try{let i=e.hooks[t];await i(r,...n)}catch(n){let i=new x(e.name,t,n instanceof Error?n:Error(String(n)));r.logger.error(i)}},rollback:async()=>{let t=e.hooks?.buildEnd;if(t){let n=this.createContext(e);try{await t(n)}catch{}}}}}createContext(e){return{config:Object.freeze({...this.config}),docsDir:this.docsDir,rootDir:this.rootDir,outDir:this.outDir,routes:this.routes,meta:{name:e.name,version:e.version,boltdocsVersion:e.boltdocsVersion},store:{get:(e,t)=>this.store.get(e,t),set:(e,t,n)=>this.store.set(e,t,n),has:(e,t)=>this.store.has(e,t)},logger:this.createLogger(e.name),caches:P(),diagnostics:F(e.name),paths:I(this.docsDir,this.rootDir),virtualModules:R(),middleware:Y(),hmr:B(),server:J()}}createGenericContext(){let e=`<middleware>`;return{config:Object.freeze({...this.config}),docsDir:this.docsDir,rootDir:this.rootDir,outDir:this.outDir,routes:this.routes,meta:{name:e},store:{get:(e,t)=>this.store.get(e,t),set:(e,t,n)=>this.store.set(e,t,n),has:(e,t)=>this.store.has(e,t)},logger:this.createLogger(e),caches:P(),diagnostics:F(e),paths:I(this.docsDir,this.rootDir),virtualModules:R(),middleware:Y(),hmr:B(),server:J()}}createLogger(e){let t=`[plugin:${e}]`;return{info:e=>f.info(`${t} ${e}`),warn:e=>f.warn(`${t} ${e}`),error:e=>{f.error(`${t} ${e instanceof Error?e.message:e}`)},debug:e=>f.debug(`${t} ${e}`)}}};function Z(e){return e}var me=e.t({BoltdocsPluginStore:()=>S,PluginCompatibilityError:()=>b,PluginError:()=>v,PluginHookError:()=>x,PluginLifecycleManager:()=>X,PluginValidationError:()=>y,createPlugin:()=>Z,createViteConfig:()=>$,default:()=>Q,defineConfig:()=>a.a,flushCache:()=>n.flushCache,generateEntryCode:()=>_,generateRoutes:()=>r.t,handleAwsFeedback:()=>c.t,handleFeedback:()=>s.t,handleNetlifyFeedback:()=>c.r,handleVercelFeedback:()=>c.i,handleWebFeedback:()=>c.n,invalidateRouteCache:()=>r.r,normalizePath:()=>t.u,resolveConfig:()=>a.n,sanitizeFilename:()=>t.f,validatePlugins:()=>w});async function Q(e){let{resolveConfig:t}=await Promise.resolve().then(()=>require(`./config-CMd4XoFq.cjs`)),{generateRoutes:n,getExternalRoutePaths:r}=await Promise.resolve().then(()=>require(`./routes-CORVxc02.cjs`)),{generateProjectTypes:i,writeLinkTree:a}=await Promise.resolve().then(()=>require(`./types-generator-BXhv7Ill.cjs`)).then(e=>e.n),{boltdocsPlugin:o}=await Promise.resolve().then(()=>require(`./plugin-DM3u2bVj.cjs`)),s=e?.docsDir||`docs`,c=await t(s),l=(await n(s,c)).map(e=>e.path),u=(c.base||`/docs`).replace(/\/$/,``);l.includes(u)||l.push(u);let d=r(s,c);for(let e of d)l.includes(e)||l.push(e);return i(c,s,void 0,l),a(l),o({...e},c)}async function $(e,t=`development`,n,r){let i=r||process.env.BOLTDOCS_TURBO===`true`,[a,o,{boltdocsPlugin:s,getExternalAbsolutePaths:c},{SECURITY_HEADERS:u},{getCSPHeader:d},{resolveConfig:f},{generateRoutes:p,getExternalRoutePaths:m},{generateProjectTypes:h,writeLinkTree:_},{normalizePath:v}]=await Promise.all([import(`@vitejs/plugin-react`),import(`@tailwindcss/vite`),Promise.resolve().then(()=>require(`./plugin-DM3u2bVj.cjs`)),Promise.resolve().then(()=>require(`./headers-dg4SDrjY.cjs`)).then(e=>e.n),Promise.resolve().then(()=>require(`./csp-CRp_3U7a.cjs`)).then(e=>e.t),Promise.resolve().then(()=>require(`./config-CMd4XoFq.cjs`)),Promise.resolve().then(()=>require(`./routes-CORVxc02.cjs`)),Promise.resolve().then(()=>require(`./types-generator-BXhv7Ill.cjs`)).then(e=>e.n),import(`vite`).then(e=>({normalizePath:e.normalizePath}))]),y=a.default,b=o.default,x=n||await f(`docs`,e),S=(await p(`docs`,x,void 0,!1,i)).map(e=>e.path),C=(x.base||`/docs`).replace(/\/$/,``);S.includes(C)||S.push(C);let w=m(`docs`,x);for(let e of w)S.includes(e)||S.push(e);h(x,`docs`,e,S),_(S);let T=t===`production`,E=T?{...u}:{};return x.security?.enableCSP&&(E[`Content-Security-Policy`]=d(x)),{root:e,mode:t,oxc:{jsx:{development:!T,runtime:`automatic`,importSource:`react`}},optimizeDeps:{include:[`react`,`react-dom`,`react-dom/client`,`react-helmet-async`,`react-router-dom`,`react-fast-compare`,`invariant`,`use-sync-external-store/shim`]},build:{},plugins:[g(),y(),b(),...s({docsDir:`docs`,root:e,turbo:i},x)],resolve:{alias:[{find:`boltdocs/entry`,replacement:v(l.default.resolve(e,`boltdocs-entry.tsx`))},{find:`boltdocs/client`,replacement:v(l.default.resolve(e,`boltdocs-client.mjs`))},{find:`use-sync-external-store/shim/index.js`,replacement:`react`},{find:`use-sync-external-store/shim`,replacement:`react`},{find:`use-sync-external-store`,replacement:`react`},{find:`@`,replacement:v(l.default.resolve(e,`../packages/core/src`))}],dedupe:[`react`,`react-dom`,`react-router-dom`]},ssr:{external:[`react`,`react-dom`,`react-helmet-async`,`react-router-dom`,`@bdocs/ssg`,`jsdom`,...c()],optimizeDeps:{include:[`react`,`react-dom`,`react-fast-compare`,...x.vite?.ssr?.optimizeDeps?.include??[]]},noExternal:[]},server:{watch:{ignored:[`**/.boltdocs/**`,...x.vite?.server?.watch?.ignored??[]]},headers:{...E,...x.vite?.server?.headers},...x.vite?.server},preview:{headers:{...E,...x.vite?.preview?.headers},...x.vite?.preview},...x.vite??{}}}Object.defineProperty(exports,`_`,{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return X}}),Object.defineProperty(exports,`b`,{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return V}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return ce}}),Object.defineProperty(exports,`g`,{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,`h`,{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return Z}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return pe}}),Object.defineProperty(exports,`m`,{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return $}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return q}}),Object.defineProperty(exports,`p`,{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return me}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return z}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return Q}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return de}}),Object.defineProperty(exports,`v`,{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,`x`,{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,`y`,{enumerable:!0,get:function(){return x}});
104
+ `)}var se=class{name=`SEOWrite`;async execute(e){if(!e.ssgRoutes||!e.config||!e.outDir)throw Error(`SSG Routes, Config, or OutDir not initialized.`);let t=ae(e.ssgRoutes,e.config),n=l.default.resolve(e.root,e.outDir);t&&u.default.writeFileSync(l.default.join(n,`sitemap.xml`),t,`utf-8`);let r=oe(e.config);u.default.writeFileSync(l.default.join(n,`robots.txt`),r,`utf-8`)}};function ce(){return new O().addStep(new E).addStep(new ee).addParallelSteps([new ne,new re]).addStep(new ie).addStep(new se)}var O=class{steps=[];addStep(e){return this.steps.push(e),this}addParallelSteps(e){return this.steps.push(e),this}async run(e){let t=[],n=performance.now(),r={...e,timing:{}};for(let e of this.steps){let i=Array.isArray(e),a=i?e:[e],o=performance.now();try{i?await Promise.all(a.map(e=>e.execute(r))):await a[0].execute(r);let e=performance.now()-o;for(let n of a){let i=r.stepDetails?.[n.name];t.push({name:n.name,duration:e,success:!0,details:i}),r.timing[n.name]=e}if(r.ssgSubSteps){for(let e of r.ssgSubSteps)t.push(e);delete r.ssgSubSteps}}catch(e){let i=performance.now()-o,s=a.find(e=>!t.some(t=>t.name===e.name&&t.success))?.name||a.map(e=>e.name).join(` | `);t.push({name:s,duration:i,success:!1,error:e instanceof Error?e:Error(String(e))});for(let e of t.filter(e=>e.success).reverse()){let t=this.steps.flat().find(t=>t.name===e.name);if(t?.rollback)try{await t.rollback(r)}catch(t){console.error(`[pipeline] rollback failed for step "${e.name}":`,t)}}let c=performance.now()-n;return{success:!1,failedStep:s,error:e instanceof Error?e:Error(String(e)),timing:{total:c,steps:r.timing},stepResults:t}}}return{success:!0,timing:{total:performance.now()-n,steps:r.timing},stepResults:t}}};let k=0;const A=`virtual:boltdocs-`,j=new Map,M=new Map,N=[];function le(){return new Date}function P(){return{transform(e){let t=new n.TransformCache(`plugin:${e}`);return{async get(e){return t.getAsync(e)},set(e,n){t.set(e,n)},async flush(){await t.flush()}}},routes:ue(),memory(e,t){let n=`${e}:`,r=t?.ttl,i=t?.max??100,a=new Map;function o(e){return e.expiresAt!==null&&e.expiresAt<=Date.now()}return{get(e){let t=a.get(n+e);if(t){if(o(t)){a.delete(n+e);return}return t.value}},set(e,t){let o=n+e;if(!a.has(o)&&a.size>=i){let e=a.keys().next().value;e!==void 0&&a.delete(e)}a.set(o,{value:t,expiresAt:r===void 0?null:Date.now()+r})},has(e){let t=a.get(n+e);return t?o(t)?(a.delete(n+e),!1):!0:!1}}}}}function ue(){return{get(e){return r.i.get(e)?.route??null},set(e,t){r.i.set(e,{route:t})},invalidate(e){r.i.invalidate(e)},invalidateAll(){r.i.invalidateAll()}}}function F(e){return{report(t,n,r,i){let a={id:++k,severity:t,code:n,message:r,pluginName:e,filePath:i?.filePath,routePath:i?.routePath,time:le()};if(N.push(a),N.length>256){let e=N.length-256;N.splice(0,e)}},list(){return Object.freeze([...N])},clear(){N.length=0}}}function I(e,t){return{resolveDocs(...t){return L(e,...t)},resolveAsset(...e){return L(t,...e)},safeFileURL(e){return`file://${l.default.resolve(e).replace(/\\/g,`/`)}`}}}function L(e,...n){let r=l.default.resolve(e),i=l.default.resolve(r,...n),a=l.default.relative(r,i);if(a.startsWith(`..`)||l.default.isAbsolute(a))throw Error(`[boltdocs/plugin-context] Path '${n.join(`/`)}' resolves to '${i}' which is outside the workspace boundary '${r}'.`);return t.u(i)}function R(){return{add(e,t,n){if(j.has(e))throw Error(`[boltdocs] Virtual module '${e}' is already registered. Pick a unique id (e.g. prefix it with your plugin name) so two plugins do not collide.`);if(e.startsWith(A))throw Error(`[boltdocs] Virtual module id '${e}' starts with the reserved prefix '${A}'. Use your own plugin namespace (e.g. 'virtual:my-plugin/...').`);j.set(e,{id:e,eager:n?.eager??!1,loader:t})},has(e){return j.has(e)},list(){return Object.freeze([...j.values()])}}}function z(){j.clear()}function B(){function e(e){return U.has(e)||U.set(e,new Set),U.get(e)}return{onFileEvent(t,n){e(t).add(n)},onFileAdd(t){e(`add`).add(t)},onFileChange(t){e(`change`).add(t)},onFileUnlink(t){e(`unlink`).add(t)},send(e,t){W?.(`boltdocs:plugin:${e}`,t)}}}async function V(e,t){let n=U.get(e);if(n)for(let e of n)await e(t)}let H=0;const U=new Map;let W=null;function de(e){W=e}const G=[],K=[],fe=[];function q(e){for(let t of G)e.middlewares.use(t)}async function pe(){for(let e of K)await e()}function J(){return{use(e){G.push(e)},useAt(e,t){G.push((n,r,i)=>{if(n.url?.startsWith(e))return t(n,r,i);i()})},onStart(e){K.push(e)},onEnd(e){fe.push(e)}}}function Y(){return{add(e){let t=e.name??`_unnamed_${H++}`;if(M.has(t))throw Error(`[boltdocs] Middleware '${e.name??`<unnamed>`}' is already registered.`);M.set(t,e)},remove(e){M.delete(e)},has(e){return M.has(e)},list(){return Object.freeze([...M.values()])}}}var X=class{plugins;config;store;docsDir;rootDir;routes;outDir;constructor(e,t,n,r,i,a){this.plugins=e,this.config=t,this.store=new S,this.docsDir=n||process.cwd(),this.rootDir=r||process.cwd(),this.routes=i||[],this.outDir=a||`dist`}async runHook(e,...t){let n=this.getSortedPlugins(),r=new O;for(let i of n)i.hooks?.[e]&&r.addStep(this.createStep(i,e,t));await r.run({})}async runChain(e,t){let n=this.getSortedPlugins(),r=t;for(let t of n){if(!t.hooks?.[e])continue;let n=this.createContext(t);try{let i=t.hooks[e],a=await i(n,r);if(a!==void 0){let e=a.__signal;if(e===`break`)break;if(e===`skip`){r=a;break}r=a}}catch(r){let i=new x(t.name,e,r instanceof Error?r:Error(String(r)));n.logger.error(i),n.diagnostics.report(`error`,`PLUGIN_HOOK_ERROR`,i.message)}}return r}async runMiddlewareChain(e,t){let n=this.plugins.flatMap(e=>e.middleware??[]),r=[...M.values()],i=[...n,...r],a=[...i.filter(e=>e.enforce===`pre`),...i.filter(e=>!e.enforce),...i.filter(e=>e.enforce===`post`)],o=t;for(let t of a){let n=t[e];if(!n)continue;let r=this.createGenericContext();try{let e=await n(r,o);if(e!==void 0){let t=e.__signal;if(t===`break`)break;if(t===`skip`){o=e;break}o=e}}catch(e){let n=t.name??`<unnamed>`;r.diagnostics.report(`error`,`MIDDLEWARE_ERROR`,`Middleware '${n}' threw: ${e instanceof Error?e.message:String(e)}`)}}return o}getSortedPlugins(){let e=this.plugins.filter(e=>e.enforce===`pre`),t=this.plugins.filter(e=>!e.enforce),n=this.plugins.filter(e=>e.enforce===`post`);return[...e,...t,...n]}createStep(e,t,n){return{name:`${e.name}:${String(t)}`,execute:async()=>{let r=this.createContext(e);try{let i=e.hooks[t];await i(r,...n)}catch(n){let i=new x(e.name,t,n instanceof Error?n:Error(String(n)));r.logger.error(i)}},rollback:async()=>{let t=e.hooks?.buildEnd;if(t){let n=this.createContext(e);try{await t(n)}catch{}}}}}createContext(e){return{config:Object.freeze({...this.config}),docsDir:this.docsDir,rootDir:this.rootDir,outDir:this.outDir,routes:this.routes,meta:{name:e.name,version:e.version,boltdocsVersion:e.boltdocsVersion},store:{get:(e,t)=>this.store.get(e,t),set:(e,t,n)=>this.store.set(e,t,n),has:(e,t)=>this.store.has(e,t)},logger:this.createLogger(e.name),caches:P(),diagnostics:F(e.name),paths:I(this.docsDir,this.rootDir),virtualModules:R(),middleware:Y(),hmr:B(),server:J()}}createGenericContext(){let e=`<middleware>`;return{config:Object.freeze({...this.config}),docsDir:this.docsDir,rootDir:this.rootDir,outDir:this.outDir,routes:this.routes,meta:{name:e},store:{get:(e,t)=>this.store.get(e,t),set:(e,t,n)=>this.store.set(e,t,n),has:(e,t)=>this.store.has(e,t)},logger:this.createLogger(e),caches:P(),diagnostics:F(e),paths:I(this.docsDir,this.rootDir),virtualModules:R(),middleware:Y(),hmr:B(),server:J()}}createLogger(e){let t=`[plugin:${e}]`;return{info:e=>f.info(`${t} ${e}`),warn:e=>f.warn(`${t} ${e}`),error:e=>{f.error(`${t} ${e instanceof Error?e.message:e}`)},debug:e=>f.debug(`${t} ${e}`)}}};function Z(e){return e}var me=e.t({BoltdocsPluginStore:()=>S,PluginCompatibilityError:()=>b,PluginError:()=>v,PluginHookError:()=>x,PluginLifecycleManager:()=>X,PluginValidationError:()=>y,createPlugin:()=>Z,createViteConfig:()=>$,default:()=>Q,defineConfig:()=>a.a,flushCache:()=>n.flushCache,generateEntryCode:()=>_,generateRoutes:()=>r.t,handleAwsFeedback:()=>c.t,handleFeedback:()=>s.t,handleNetlifyFeedback:()=>c.r,handleVercelFeedback:()=>c.i,handleWebFeedback:()=>c.n,invalidateRouteCache:()=>r.r,normalizePath:()=>t.u,resolveConfig:()=>a.n,sanitizeFilename:()=>t.f,validatePlugins:()=>w});async function Q(e){let{resolveConfig:t}=await Promise.resolve().then(()=>require(`./config-CMd4XoFq.cjs`)),{generateRoutes:n,getExternalRoutePaths:r}=await Promise.resolve().then(()=>require(`./routes-CORVxc02.cjs`)),{generateProjectTypes:i,writeLinkTree:a}=await Promise.resolve().then(()=>require(`./types-generator-BXhv7Ill.cjs`)).then(e=>e.n),{boltdocsPlugin:o}=await Promise.resolve().then(()=>require(`./plugin-CX1OZ6jB.cjs`)),s=e?.docsDir||`docs`,c=await t(s),l=(await n(s,c)).map(e=>e.path),u=(c.base||`/docs`).replace(/\/$/,``);l.includes(u)||l.push(u);let d=r(s,c);for(let e of d)l.includes(e)||l.push(e);return i(c,s,void 0,l),a(l),o({...e},c)}async function $(e,t=`development`,n,r){let i=r||process.env.BOLTDOCS_TURBO===`true`,[a,o,{boltdocsPlugin:s,getExternalAbsolutePaths:c},{SECURITY_HEADERS:u},{getCSPHeader:d},{resolveConfig:f},{generateRoutes:p,getExternalRoutePaths:m},{generateProjectTypes:h,writeLinkTree:_},{normalizePath:v}]=await Promise.all([import(`@vitejs/plugin-react`),import(`@tailwindcss/vite`),Promise.resolve().then(()=>require(`./plugin-CX1OZ6jB.cjs`)),Promise.resolve().then(()=>require(`./headers-dg4SDrjY.cjs`)).then(e=>e.n),Promise.resolve().then(()=>require(`./csp-CRp_3U7a.cjs`)).then(e=>e.t),Promise.resolve().then(()=>require(`./config-CMd4XoFq.cjs`)),Promise.resolve().then(()=>require(`./routes-CORVxc02.cjs`)),Promise.resolve().then(()=>require(`./types-generator-BXhv7Ill.cjs`)).then(e=>e.n),import(`vite`).then(e=>({normalizePath:e.normalizePath}))]),y=a.default,b=o.default,x=n||await f(`docs`,e),S=(await p(`docs`,x,void 0,!1,i)).map(e=>e.path),C=(x.base||`/docs`).replace(/\/$/,``);S.includes(C)||S.push(C);let w=m(`docs`,x);for(let e of w)S.includes(e)||S.push(e);h(x,`docs`,e,S),_(S);let T=t===`production`,E=T?{...u}:{};return x.security?.enableCSP&&(E[`Content-Security-Policy`]=d(x)),{root:e,mode:t,oxc:{jsx:{development:!T,runtime:`automatic`,importSource:`react`}},optimizeDeps:{include:[`react`,`react-dom`,`react-dom/client`,`react-helmet-async`,`react-router-dom`,`react-fast-compare`,`invariant`,`use-sync-external-store/shim`]},build:{},plugins:[g(),y(),b(),...s({docsDir:`docs`,root:e,turbo:i},x)],resolve:{alias:[{find:`boltdocs/entry`,replacement:v(l.default.resolve(e,`boltdocs-entry.tsx`))},{find:`boltdocs/client`,replacement:v(l.default.resolve(e,`boltdocs-client.mjs`))},{find:`use-sync-external-store/shim/index.js`,replacement:`react`},{find:`use-sync-external-store/shim`,replacement:`react`},{find:`use-sync-external-store`,replacement:`react`},{find:`@`,replacement:v(l.default.resolve(e,`../packages/core/src`))}],dedupe:[`react`,`react-dom`,`react-router-dom`]},ssr:{external:[`react`,`react-dom`,`react-helmet-async`,`react-router-dom`,`@bdocs/ssg`,`jsdom`,...c()],optimizeDeps:{include:[`react`,`react-dom`,`react-fast-compare`,...x.vite?.ssr?.optimizeDeps?.include??[]]},noExternal:[]},server:{watch:{ignored:[`**/.boltdocs/**`,...x.vite?.server?.watch?.ignored??[]]},headers:{...E,...x.vite?.server?.headers},...x.vite?.server},preview:{headers:{...E,...x.vite?.preview?.headers},...x.vite?.preview},...x.vite??{}}}Object.defineProperty(exports,`_`,{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return X}}),Object.defineProperty(exports,`b`,{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return V}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return ce}}),Object.defineProperty(exports,`g`,{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,`h`,{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return Z}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return pe}}),Object.defineProperty(exports,`m`,{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return $}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return q}}),Object.defineProperty(exports,`p`,{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return me}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return z}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return Q}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return de}}),Object.defineProperty(exports,`v`,{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,`x`,{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,`y`,{enumerable:!0,get:function(){return x}});
@@ -101,4 +101,4 @@ ${t.filter(e=>e.seo?.noindex||typeof e.seo?.robots==`string`&&e.seo.robots.inclu
101
101
 
102
102
  `),a=[...n?[n]:[],...r].map(e=>`Sitemap: ${e}`).join(`
103
103
  `);return`${i}${a?`\n\n${a}`:``}`}return[`User-agent: *`,`Allow: /`,``,n?`Sitemap: ${n}`:``].filter(Boolean).join(`
104
- `)}var ae=class{name=`SEOWrite`;async execute(e){if(!e.ssgRoutes||!e.config||!e.outDir)throw Error(`SSG Routes, Config, or OutDir not initialized.`);let t=j(e.ssgRoutes,e.config),n=d.resolve(e.root,e.outDir);t&&f.writeFileSync(d.join(n,`sitemap.xml`),t,`utf-8`);let r=M(e.config);f.writeFileSync(d.join(n,`robots.txt`),r,`utf-8`)}};function oe(){return new N().addStep(new ne).addStep(new re).addParallelSteps([new O,new k]).addStep(new A).addStep(new ae)}var N=class{steps=[];addStep(e){return this.steps.push(e),this}addParallelSteps(e){return this.steps.push(e),this}async run(e){let t=[],n=performance.now(),r={...e,timing:{}};for(let e of this.steps){let i=Array.isArray(e),a=i?e:[e],o=performance.now();try{i?await Promise.all(a.map(e=>e.execute(r))):await a[0].execute(r);let e=performance.now()-o;for(let n of a){let i=r.stepDetails?.[n.name];t.push({name:n.name,duration:e,success:!0,details:i}),r.timing[n.name]=e}if(r.ssgSubSteps){for(let e of r.ssgSubSteps)t.push(e);delete r.ssgSubSteps}}catch(e){let i=performance.now()-o,s=a.find(e=>!t.some(t=>t.name===e.name&&t.success))?.name||a.map(e=>e.name).join(` | `);t.push({name:s,duration:i,success:!1,error:e instanceof Error?e:Error(String(e))});for(let e of t.filter(e=>e.success).reverse()){let t=this.steps.flat().find(t=>t.name===e.name);if(t?.rollback)try{await t.rollback(r)}catch(t){console.error(`[pipeline] rollback failed for step "${e.name}":`,t)}}let c=performance.now()-n;return{success:!1,failedStep:s,error:e instanceof Error?e:Error(String(e)),timing:{total:c,steps:r.timing},stepResults:t}}}return{success:!0,timing:{total:performance.now()-n,steps:r.timing},stepResults:t}}};let se=0;const P=`virtual:boltdocs-`,F=new Map,I=new Map,L=[];function ce(){return new Date}function R(){return{transform(e){let t=new n(`plugin:${e}`);return{async get(e){return t.getAsync(e)},set(e,n){t.set(e,n)},async flush(){await t.flush()}}},routes:z(),memory(e,t){let n=`${e}:`,r=t?.ttl,i=t?.max??100,a=new Map;function o(e){return e.expiresAt!==null&&e.expiresAt<=Date.now()}return{get(e){let t=a.get(n+e);if(t){if(o(t)){a.delete(n+e);return}return t.value}},set(e,t){let o=n+e;if(!a.has(o)&&a.size>=i){let e=a.keys().next().value;e!==void 0&&a.delete(e)}a.set(o,{value:t,expiresAt:r===void 0?null:Date.now()+r})},has(e){let t=a.get(n+e);return t?o(t)?(a.delete(n+e),!1):!0:!1}}}}}function z(){return{get(e){return r.get(e)?.route??null},set(e,t){r.set(e,{route:t})},invalidate(e){r.invalidate(e)},invalidateAll(){r.invalidateAll()}}}function B(e){return{report(t,n,r,i){let a={id:++se,severity:t,code:n,message:r,pluginName:e,filePath:i?.filePath,routePath:i?.routePath,time:ce()};if(L.push(a),L.length>256){let e=L.length-256;L.splice(0,e)}},list(){return Object.freeze([...L])},clear(){L.length=0}}}function V(e,t){return{resolveDocs(...t){return H(e,...t)},resolveAsset(...e){return H(t,...e)},safeFileURL(e){return`file://${d.resolve(e).replace(/\\/g,`/`)}`}}}function H(e,...n){let r=d.resolve(e),i=d.resolve(r,...n),a=d.relative(r,i);if(a.startsWith(`..`)||d.isAbsolute(a))throw Error(`[boltdocs/plugin-context] Path '${n.join(`/`)}' resolves to '${i}' which is outside the workspace boundary '${r}'.`);return t(i)}function U(){return{add(e,t,n){if(F.has(e))throw Error(`[boltdocs] Virtual module '${e}' is already registered. Pick a unique id (e.g. prefix it with your plugin name) so two plugins do not collide.`);if(e.startsWith(P))throw Error(`[boltdocs] Virtual module id '${e}' starts with the reserved prefix '${P}'. Use your own plugin namespace (e.g. 'virtual:my-plugin/...').`);F.set(e,{id:e,eager:n?.eager??!1,loader:t})},has(e){return F.has(e)},list(){return Object.freeze([...F.values()])}}}function W(){F.clear()}function G(){function e(e){return K.has(e)||K.set(e,new Set),K.get(e)}return{onFileEvent(t,n){e(t).add(n)},onFileAdd(t){e(`add`).add(t)},onFileChange(t){e(`change`).add(t)},onFileUnlink(t){e(`unlink`).add(t)},send(e,t){q?.(`boltdocs:plugin:${e}`,t)}}}async function le(e,t){let n=K.get(e);if(n)for(let e of n)await e(t)}let ue=0;const K=new Map;let q=null;function de(e){q=e}const J=[],Y=[],fe=[];function X(e){for(let t of J)e.middlewares.use(t)}async function pe(){for(let e of Y)await e()}function Z(){return{use(e){J.push(e)},useAt(e,t){J.push((n,r,i)=>{if(n.url?.startsWith(e))return t(n,r,i);i()})},onStart(e){Y.push(e)},onEnd(e){fe.push(e)}}}function Q(){return{add(e){let t=e.name??`_unnamed_${ue++}`;if(I.has(t))throw Error(`[boltdocs] Middleware '${e.name??`<unnamed>`}' is already registered.`);I.set(t,e)},remove(e){I.delete(e)},has(e){return I.has(e)},list(){return Object.freeze([...I.values()])}}}var me=class{plugins;config;store;docsDir;rootDir;routes;outDir;constructor(e,t,n,r,i,a){this.plugins=e,this.config=t,this.store=new w,this.docsDir=n||process.cwd(),this.rootDir=r||process.cwd(),this.routes=i||[],this.outDir=a||`dist`}async runHook(e,...t){let n=this.getSortedPlugins(),r=new N;for(let i of n)i.hooks?.[e]&&r.addStep(this.createStep(i,e,t));await r.run({})}async runChain(e,t){let n=this.getSortedPlugins(),r=t;for(let t of n){if(!t.hooks?.[e])continue;let n=this.createContext(t);try{let i=t.hooks[e],a=await i(n,r);if(a!==void 0){let e=a.__signal;if(e===`break`)break;if(e===`skip`){r=a;break}r=a}}catch(r){let i=new C(t.name,e,r instanceof Error?r:Error(String(r)));n.logger.error(i),n.diagnostics.report(`error`,`PLUGIN_HOOK_ERROR`,i.message)}}return r}async runMiddlewareChain(e,t){let n=this.plugins.flatMap(e=>e.middleware??[]),r=[...I.values()],i=[...n,...r],a=[...i.filter(e=>e.enforce===`pre`),...i.filter(e=>!e.enforce),...i.filter(e=>e.enforce===`post`)],o=t;for(let t of a){let n=t[e];if(!n)continue;let r=this.createGenericContext();try{let e=await n(r,o);if(e!==void 0){let t=e.__signal;if(t===`break`)break;if(t===`skip`){o=e;break}o=e}}catch(e){let n=t.name??`<unnamed>`;r.diagnostics.report(`error`,`MIDDLEWARE_ERROR`,`Middleware '${n}' threw: ${e instanceof Error?e.message:String(e)}`)}}return o}getSortedPlugins(){let e=this.plugins.filter(e=>e.enforce===`pre`),t=this.plugins.filter(e=>!e.enforce),n=this.plugins.filter(e=>e.enforce===`post`);return[...e,...t,...n]}createStep(e,t,n){return{name:`${e.name}:${String(t)}`,execute:async()=>{let r=this.createContext(e);try{let i=e.hooks[t];await i(r,...n)}catch(n){let i=new C(e.name,t,n instanceof Error?n:Error(String(n)));r.logger.error(i)}},rollback:async()=>{let t=e.hooks?.buildEnd;if(t){let n=this.createContext(e);try{await t(n)}catch{}}}}}createContext(e){return{config:Object.freeze({...this.config}),docsDir:this.docsDir,rootDir:this.rootDir,outDir:this.outDir,routes:this.routes,meta:{name:e.name,version:e.version,boltdocsVersion:e.boltdocsVersion},store:{get:(e,t)=>this.store.get(e,t),set:(e,t,n)=>this.store.set(e,t,n),has:(e,t)=>this.store.has(e,t)},logger:this.createLogger(e.name),caches:R(),diagnostics:B(e.name),paths:V(this.docsDir,this.rootDir),virtualModules:U(),middleware:Q(),hmr:G(),server:Z()}}createGenericContext(){let e=`<middleware>`;return{config:Object.freeze({...this.config}),docsDir:this.docsDir,rootDir:this.rootDir,outDir:this.outDir,routes:this.routes,meta:{name:e},store:{get:(e,t)=>this.store.get(e,t),set:(e,t,n)=>this.store.set(e,t,n),has:(e,t)=>this.store.has(e,t)},logger:this.createLogger(e),caches:R(),diagnostics:B(e),paths:V(this.docsDir,this.rootDir),virtualModules:U(),middleware:Q(),hmr:G(),server:Z()}}createLogger(e){let t=`[plugin:${e}]`;return{info:e=>m.info(`${t} ${e}`),warn:e=>m.warn(`${t} ${e}`),error:e=>{m.error(`${t} ${e instanceof Error?e.message:e}`)},debug:e=>m.debug(`${t} ${e}`)}}};function he(e){return e}async function ge(e){let{resolveConfig:t}=await import(`./config-CCXp3aXO.mjs`).then(e=>e.n),{generateRoutes:n,getExternalRoutePaths:r}=await import(`./routes-BW6zsk7Z.mjs`).then(e=>e.i),{generateProjectTypes:i,writeLinkTree:a}=await import(`./types-generator-bDPvUztF.mjs`).then(e=>e.n),{boltdocsPlugin:o}=await import(`./plugin-C95kvu6h.mjs`),s=e?.docsDir||`docs`,c=await t(s),l=(await n(s,c)).map(e=>e.path),u=(c.base||`/docs`).replace(/\/$/,``);l.includes(u)||l.push(u);let d=r(s,c);for(let e of d)l.includes(e)||l.push(e);return i(c,s,void 0,l),a(l),o({...e},c)}async function $(e,t=`development`,n,r){let i=r||process.env.BOLTDOCS_TURBO===`true`,[a,o,{boltdocsPlugin:s,getExternalAbsolutePaths:c},{SECURITY_HEADERS:l},{getCSPHeader:u},{resolveConfig:f},{generateRoutes:p,getExternalRoutePaths:m},{generateProjectTypes:h,writeLinkTree:g},{normalizePath:_}]=await Promise.all([import(`@vitejs/plugin-react`),import(`@tailwindcss/vite`),import(`./plugin-C95kvu6h.mjs`),import(`./headers-Ddwek8K7.mjs`).then(e=>e.n),import(`./csp-oTC2ygvF.mjs`).then(e=>e.t),import(`./config-CCXp3aXO.mjs`).then(e=>e.n),import(`./routes-BW6zsk7Z.mjs`).then(e=>e.i),import(`./types-generator-bDPvUztF.mjs`).then(e=>e.n),import(`vite`).then(e=>({normalizePath:e.normalizePath}))]),v=a.default,y=o.default,b=n||await f(`docs`,e),x=(await p(`docs`,b,void 0,!1,i)).map(e=>e.path),S=(b.base||`/docs`).replace(/\/$/,``);x.includes(S)||x.push(S);let C=m(`docs`,b);for(let e of C)x.includes(e)||x.push(e);h(b,`docs`,e,x),g(x);let w=t===`production`,T=w?{...l}:{};return b.security?.enableCSP&&(T[`Content-Security-Policy`]=u(b)),{root:e,mode:t,oxc:{jsx:{development:!w,runtime:`automatic`,importSource:`react`}},optimizeDeps:{include:[`react`,`react-dom`,`react-dom/client`,`react-helmet-async`,`react-router-dom`,`react-fast-compare`,`invariant`,`use-sync-external-store/shim`]},build:{},plugins:[ee(),v(),y(),...s({docsDir:`docs`,root:e,turbo:i},b)],resolve:{alias:[{find:`boltdocs/entry`,replacement:_(d.resolve(e,`boltdocs-entry.tsx`))},{find:`boltdocs/client`,replacement:_(d.resolve(e,`boltdocs-client.mjs`))},{find:`use-sync-external-store/shim/index.js`,replacement:`react`},{find:`use-sync-external-store/shim`,replacement:`react`},{find:`use-sync-external-store`,replacement:`react`},{find:`@`,replacement:_(d.resolve(e,`../packages/core/src`))}],dedupe:[`react`,`react-dom`,`react-router-dom`]},ssr:{external:[`react`,`react-dom`,`react-helmet-async`,`react-router-dom`,`@bdocs/ssg`,`jsdom`,...c()],optimizeDeps:{include:[`react`,`react-dom`,`react-fast-compare`,...b.vite?.ssr?.optimizeDeps?.include??[]]},noExternal:[]},server:{watch:{ignored:[`**/.boltdocs/**`,...b.vite?.server?.watch?.ignored??[]]},headers:{...T,...b.vite?.server?.headers},...b.vite?.server},preview:{headers:{...T,...b.vite?.preview?.headers},...b.vite?.preview},...b.vite??{}}}export{b as _,X as a,y as b,pe as c,oe as d,D as f,S as g,w as h,me as i,de as l,te as m,$ as n,W as o,E as p,he as r,le as s,ge as t,F as u,C as v,x as y};
104
+ `)}var ae=class{name=`SEOWrite`;async execute(e){if(!e.ssgRoutes||!e.config||!e.outDir)throw Error(`SSG Routes, Config, or OutDir not initialized.`);let t=j(e.ssgRoutes,e.config),n=d.resolve(e.root,e.outDir);t&&f.writeFileSync(d.join(n,`sitemap.xml`),t,`utf-8`);let r=M(e.config);f.writeFileSync(d.join(n,`robots.txt`),r,`utf-8`)}};function oe(){return new N().addStep(new ne).addStep(new re).addParallelSteps([new O,new k]).addStep(new A).addStep(new ae)}var N=class{steps=[];addStep(e){return this.steps.push(e),this}addParallelSteps(e){return this.steps.push(e),this}async run(e){let t=[],n=performance.now(),r={...e,timing:{}};for(let e of this.steps){let i=Array.isArray(e),a=i?e:[e],o=performance.now();try{i?await Promise.all(a.map(e=>e.execute(r))):await a[0].execute(r);let e=performance.now()-o;for(let n of a){let i=r.stepDetails?.[n.name];t.push({name:n.name,duration:e,success:!0,details:i}),r.timing[n.name]=e}if(r.ssgSubSteps){for(let e of r.ssgSubSteps)t.push(e);delete r.ssgSubSteps}}catch(e){let i=performance.now()-o,s=a.find(e=>!t.some(t=>t.name===e.name&&t.success))?.name||a.map(e=>e.name).join(` | `);t.push({name:s,duration:i,success:!1,error:e instanceof Error?e:Error(String(e))});for(let e of t.filter(e=>e.success).reverse()){let t=this.steps.flat().find(t=>t.name===e.name);if(t?.rollback)try{await t.rollback(r)}catch(t){console.error(`[pipeline] rollback failed for step "${e.name}":`,t)}}let c=performance.now()-n;return{success:!1,failedStep:s,error:e instanceof Error?e:Error(String(e)),timing:{total:c,steps:r.timing},stepResults:t}}}return{success:!0,timing:{total:performance.now()-n,steps:r.timing},stepResults:t}}};let se=0;const P=`virtual:boltdocs-`,F=new Map,I=new Map,L=[];function ce(){return new Date}function R(){return{transform(e){let t=new n(`plugin:${e}`);return{async get(e){return t.getAsync(e)},set(e,n){t.set(e,n)},async flush(){await t.flush()}}},routes:z(),memory(e,t){let n=`${e}:`,r=t?.ttl,i=t?.max??100,a=new Map;function o(e){return e.expiresAt!==null&&e.expiresAt<=Date.now()}return{get(e){let t=a.get(n+e);if(t){if(o(t)){a.delete(n+e);return}return t.value}},set(e,t){let o=n+e;if(!a.has(o)&&a.size>=i){let e=a.keys().next().value;e!==void 0&&a.delete(e)}a.set(o,{value:t,expiresAt:r===void 0?null:Date.now()+r})},has(e){let t=a.get(n+e);return t?o(t)?(a.delete(n+e),!1):!0:!1}}}}}function z(){return{get(e){return r.get(e)?.route??null},set(e,t){r.set(e,{route:t})},invalidate(e){r.invalidate(e)},invalidateAll(){r.invalidateAll()}}}function B(e){return{report(t,n,r,i){let a={id:++se,severity:t,code:n,message:r,pluginName:e,filePath:i?.filePath,routePath:i?.routePath,time:ce()};if(L.push(a),L.length>256){let e=L.length-256;L.splice(0,e)}},list(){return Object.freeze([...L])},clear(){L.length=0}}}function V(e,t){return{resolveDocs(...t){return H(e,...t)},resolveAsset(...e){return H(t,...e)},safeFileURL(e){return`file://${d.resolve(e).replace(/\\/g,`/`)}`}}}function H(e,...n){let r=d.resolve(e),i=d.resolve(r,...n),a=d.relative(r,i);if(a.startsWith(`..`)||d.isAbsolute(a))throw Error(`[boltdocs/plugin-context] Path '${n.join(`/`)}' resolves to '${i}' which is outside the workspace boundary '${r}'.`);return t(i)}function U(){return{add(e,t,n){if(F.has(e))throw Error(`[boltdocs] Virtual module '${e}' is already registered. Pick a unique id (e.g. prefix it with your plugin name) so two plugins do not collide.`);if(e.startsWith(P))throw Error(`[boltdocs] Virtual module id '${e}' starts with the reserved prefix '${P}'. Use your own plugin namespace (e.g. 'virtual:my-plugin/...').`);F.set(e,{id:e,eager:n?.eager??!1,loader:t})},has(e){return F.has(e)},list(){return Object.freeze([...F.values()])}}}function W(){F.clear()}function G(){function e(e){return K.has(e)||K.set(e,new Set),K.get(e)}return{onFileEvent(t,n){e(t).add(n)},onFileAdd(t){e(`add`).add(t)},onFileChange(t){e(`change`).add(t)},onFileUnlink(t){e(`unlink`).add(t)},send(e,t){q?.(`boltdocs:plugin:${e}`,t)}}}async function le(e,t){let n=K.get(e);if(n)for(let e of n)await e(t)}let ue=0;const K=new Map;let q=null;function de(e){q=e}const J=[],Y=[],fe=[];function X(e){for(let t of J)e.middlewares.use(t)}async function pe(){for(let e of Y)await e()}function Z(){return{use(e){J.push(e)},useAt(e,t){J.push((n,r,i)=>{if(n.url?.startsWith(e))return t(n,r,i);i()})},onStart(e){Y.push(e)},onEnd(e){fe.push(e)}}}function Q(){return{add(e){let t=e.name??`_unnamed_${ue++}`;if(I.has(t))throw Error(`[boltdocs] Middleware '${e.name??`<unnamed>`}' is already registered.`);I.set(t,e)},remove(e){I.delete(e)},has(e){return I.has(e)},list(){return Object.freeze([...I.values()])}}}var me=class{plugins;config;store;docsDir;rootDir;routes;outDir;constructor(e,t,n,r,i,a){this.plugins=e,this.config=t,this.store=new w,this.docsDir=n||process.cwd(),this.rootDir=r||process.cwd(),this.routes=i||[],this.outDir=a||`dist`}async runHook(e,...t){let n=this.getSortedPlugins(),r=new N;for(let i of n)i.hooks?.[e]&&r.addStep(this.createStep(i,e,t));await r.run({})}async runChain(e,t){let n=this.getSortedPlugins(),r=t;for(let t of n){if(!t.hooks?.[e])continue;let n=this.createContext(t);try{let i=t.hooks[e],a=await i(n,r);if(a!==void 0){let e=a.__signal;if(e===`break`)break;if(e===`skip`){r=a;break}r=a}}catch(r){let i=new C(t.name,e,r instanceof Error?r:Error(String(r)));n.logger.error(i),n.diagnostics.report(`error`,`PLUGIN_HOOK_ERROR`,i.message)}}return r}async runMiddlewareChain(e,t){let n=this.plugins.flatMap(e=>e.middleware??[]),r=[...I.values()],i=[...n,...r],a=[...i.filter(e=>e.enforce===`pre`),...i.filter(e=>!e.enforce),...i.filter(e=>e.enforce===`post`)],o=t;for(let t of a){let n=t[e];if(!n)continue;let r=this.createGenericContext();try{let e=await n(r,o);if(e!==void 0){let t=e.__signal;if(t===`break`)break;if(t===`skip`){o=e;break}o=e}}catch(e){let n=t.name??`<unnamed>`;r.diagnostics.report(`error`,`MIDDLEWARE_ERROR`,`Middleware '${n}' threw: ${e instanceof Error?e.message:String(e)}`)}}return o}getSortedPlugins(){let e=this.plugins.filter(e=>e.enforce===`pre`),t=this.plugins.filter(e=>!e.enforce),n=this.plugins.filter(e=>e.enforce===`post`);return[...e,...t,...n]}createStep(e,t,n){return{name:`${e.name}:${String(t)}`,execute:async()=>{let r=this.createContext(e);try{let i=e.hooks[t];await i(r,...n)}catch(n){let i=new C(e.name,t,n instanceof Error?n:Error(String(n)));r.logger.error(i)}},rollback:async()=>{let t=e.hooks?.buildEnd;if(t){let n=this.createContext(e);try{await t(n)}catch{}}}}}createContext(e){return{config:Object.freeze({...this.config}),docsDir:this.docsDir,rootDir:this.rootDir,outDir:this.outDir,routes:this.routes,meta:{name:e.name,version:e.version,boltdocsVersion:e.boltdocsVersion},store:{get:(e,t)=>this.store.get(e,t),set:(e,t,n)=>this.store.set(e,t,n),has:(e,t)=>this.store.has(e,t)},logger:this.createLogger(e.name),caches:R(),diagnostics:B(e.name),paths:V(this.docsDir,this.rootDir),virtualModules:U(),middleware:Q(),hmr:G(),server:Z()}}createGenericContext(){let e=`<middleware>`;return{config:Object.freeze({...this.config}),docsDir:this.docsDir,rootDir:this.rootDir,outDir:this.outDir,routes:this.routes,meta:{name:e},store:{get:(e,t)=>this.store.get(e,t),set:(e,t,n)=>this.store.set(e,t,n),has:(e,t)=>this.store.has(e,t)},logger:this.createLogger(e),caches:R(),diagnostics:B(e),paths:V(this.docsDir,this.rootDir),virtualModules:U(),middleware:Q(),hmr:G(),server:Z()}}createLogger(e){let t=`[plugin:${e}]`;return{info:e=>m.info(`${t} ${e}`),warn:e=>m.warn(`${t} ${e}`),error:e=>{m.error(`${t} ${e instanceof Error?e.message:e}`)},debug:e=>m.debug(`${t} ${e}`)}}};function he(e){return e}async function ge(e){let{resolveConfig:t}=await import(`./config-CCXp3aXO.mjs`).then(e=>e.n),{generateRoutes:n,getExternalRoutePaths:r}=await import(`./routes-BW6zsk7Z.mjs`).then(e=>e.i),{generateProjectTypes:i,writeLinkTree:a}=await import(`./types-generator-bDPvUztF.mjs`).then(e=>e.n),{boltdocsPlugin:o}=await import(`./plugin-CgfiWaFZ.mjs`),s=e?.docsDir||`docs`,c=await t(s),l=(await n(s,c)).map(e=>e.path),u=(c.base||`/docs`).replace(/\/$/,``);l.includes(u)||l.push(u);let d=r(s,c);for(let e of d)l.includes(e)||l.push(e);return i(c,s,void 0,l),a(l),o({...e},c)}async function $(e,t=`development`,n,r){let i=r||process.env.BOLTDOCS_TURBO===`true`,[a,o,{boltdocsPlugin:s,getExternalAbsolutePaths:c},{SECURITY_HEADERS:l},{getCSPHeader:u},{resolveConfig:f},{generateRoutes:p,getExternalRoutePaths:m},{generateProjectTypes:h,writeLinkTree:g},{normalizePath:_}]=await Promise.all([import(`@vitejs/plugin-react`),import(`@tailwindcss/vite`),import(`./plugin-CgfiWaFZ.mjs`),import(`./headers-Ddwek8K7.mjs`).then(e=>e.n),import(`./csp-oTC2ygvF.mjs`).then(e=>e.t),import(`./config-CCXp3aXO.mjs`).then(e=>e.n),import(`./routes-BW6zsk7Z.mjs`).then(e=>e.i),import(`./types-generator-bDPvUztF.mjs`).then(e=>e.n),import(`vite`).then(e=>({normalizePath:e.normalizePath}))]),v=a.default,y=o.default,b=n||await f(`docs`,e),x=(await p(`docs`,b,void 0,!1,i)).map(e=>e.path),S=(b.base||`/docs`).replace(/\/$/,``);x.includes(S)||x.push(S);let C=m(`docs`,b);for(let e of C)x.includes(e)||x.push(e);h(b,`docs`,e,x),g(x);let w=t===`production`,T=w?{...l}:{};return b.security?.enableCSP&&(T[`Content-Security-Policy`]=u(b)),{root:e,mode:t,oxc:{jsx:{development:!w,runtime:`automatic`,importSource:`react`}},optimizeDeps:{include:[`react`,`react-dom`,`react-dom/client`,`react-helmet-async`,`react-router-dom`,`react-fast-compare`,`invariant`,`use-sync-external-store/shim`]},build:{},plugins:[ee(),v(),y(),...s({docsDir:`docs`,root:e,turbo:i},b)],resolve:{alias:[{find:`boltdocs/entry`,replacement:_(d.resolve(e,`boltdocs-entry.tsx`))},{find:`boltdocs/client`,replacement:_(d.resolve(e,`boltdocs-client.mjs`))},{find:`use-sync-external-store/shim/index.js`,replacement:`react`},{find:`use-sync-external-store/shim`,replacement:`react`},{find:`use-sync-external-store`,replacement:`react`},{find:`@`,replacement:_(d.resolve(e,`../packages/core/src`))}],dedupe:[`react`,`react-dom`,`react-router-dom`]},ssr:{external:[`react`,`react-dom`,`react-helmet-async`,`react-router-dom`,`@bdocs/ssg`,`jsdom`,...c()],optimizeDeps:{include:[`react`,`react-dom`,`react-fast-compare`,...b.vite?.ssr?.optimizeDeps?.include??[]]},noExternal:[]},server:{watch:{ignored:[`**/.boltdocs/**`,...b.vite?.server?.watch?.ignored??[]]},headers:{...T,...b.vite?.server?.headers},...b.vite?.server},preview:{headers:{...T,...b.vite?.preview?.headers},...b.vite?.preview},...b.vite??{}}}export{b as _,X as a,y as b,pe as c,oe as d,D as f,S as g,w as h,me as i,de as l,te as m,$ as n,W as o,E as p,he as r,le as s,ge as t,F as u,C as v,x as y};
@@ -3,4 +3,4 @@
3
3
  * Copyright (c) 2026 Jesus Alcala
4
4
  * Licensed under the MIT License.
5
5
  */
6
- var e=`3.2.1`;Object.defineProperty(exports,`version`,{enumerable:!0,get:function(){return e}});
6
+ var e=`3.2.2`;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=`3.2.1`;export{e as version};
6
+ var e=`3.2.2`;export{e as version};
@@ -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-D1Md3oWO.cjs`),t=require(`./node-BlVk4EVg.cjs`),n=require(`./utils-D6Xtj0FZ.cjs`),r=require(`./node/cache.cjs`),i=require(`./routes-BgoIB5wb.cjs`),a=require(`./pages-external-XkYIs-d5.cjs`),o=require(`./config-DlGoEM9D.cjs`),s=require(`./types-generator-BXhv7Ill.cjs`),c=require(`./doctor-Bv16QSrI.cjs`),l=require(`./shiki-adapter-CoQ6jyJ4.cjs`),u=require(`./headers-dg4SDrjY.cjs`),d=require(`./csp-CRp_3U7a.cjs`);let f=require(`node:path`);f=e.r(f);let p=require(`node:fs`);p=e.r(p);let m=require(`@bdocs/dui`),h=require(`node:crypto`);h=e.r(h);let g=require(`node:module`),_=require(`@bdocs/unist-utils`),ee=require(`vite`),te=require(`@bdocs/plugin-image-optimizer`),v=require(`@mdx-js/rollup`);v=e.r(v);let y=require(`remark-gfm`);y=e.r(y);let b=require(`remark-frontmatter`);b=e.r(b);let x=require(`rehype-slug`);x=e.r(x);function S(e){return`<!doctype html>
6
+ const e=require(`./chunk-D1Md3oWO.cjs`),t=require(`./node-B5hu_6qj.cjs`),n=require(`./utils-D6Xtj0FZ.cjs`),r=require(`./node/cache.cjs`),i=require(`./routes-BgoIB5wb.cjs`),a=require(`./pages-external-XkYIs-d5.cjs`),o=require(`./config-DlGoEM9D.cjs`),s=require(`./types-generator-BXhv7Ill.cjs`),c=require(`./doctor-Bv16QSrI.cjs`),l=require(`./shiki-adapter-CoQ6jyJ4.cjs`),u=require(`./headers-dg4SDrjY.cjs`),d=require(`./csp-CRp_3U7a.cjs`);let f=require(`node:path`);f=e.r(f);let p=require(`node:fs`);p=e.r(p);let m=require(`@bdocs/dui`),h=require(`node:crypto`);h=e.r(h);let g=require(`node:module`),_=require(`@bdocs/unist-utils`),ee=require(`vite`),te=require(`@bdocs/plugin-image-optimizer`),v=require(`@mdx-js/rollup`);v=e.r(v);let y=require(`remark-gfm`);y=e.r(y);let b=require(`remark-frontmatter`);b=e.r(b);let x=require(`rehype-slug`);x=e.r(x);function S(e){return`<!doctype html>
7
7
  <html lang="en">
8
8
  <head>
9
9
  <meta charset="UTF-8" />
@@ -70,4 +70,4 @@ const e=require(`./chunk-D1Md3oWO.cjs`),t=require(`./node-BlVk4EVg.cjs`),n=requi
70
70
  const mdxComponents = components.default || components;
71
71
  export default mdxComponents;
72
72
  export * from '${e}';`}return`export default {};`}if(l===`layout`){let e=[`tsx`,`jsx`],t=null;for(let n of e){let e=f.default.resolve(o,`layout.${n}`);if(p.default.existsSync(e)){t=e;break}}if(t)return`import UserLayout from '${n.u(t)}';
73
- export default UserLayout;`;throw Error(`[Boltdocs] Layout file not found. A 'layout.tsx' or 'layout.jsx' file is mandatory in your docs directory. Please create one to define your site structure.`)}if(l===`icons`){let e=[`tsx`,`jsx`,`ts`,`js`],t=null;for(let n of e){let e=f.default.resolve(o,`icons.${n}`);if(p.default.existsSync(e)){t=e;break}}return t?`import * as icons from '${n.u(t)}';\nexport default icons;`:`export default {};`}if(l===`search`){if(!j){let e=fe(await i.t(o,s));j=`export default ${JSON.stringify(e,null,2)};`}return j}if(l===`client`){let e=__dirname,t=``;for(;e&&e!==f.default.parse(e).root;){let r=f.default.join(e,`src/client/index.ts`),i=f.default.join(e,`dist/client/index.mjs`),a=f.default.join(e,`client/index.ts`);if(p.default.existsSync(r)){t=n.u(r);break}if(p.default.existsSync(i)){t=n.u(i);break}if(p.default.existsSync(a)){t=n.u(a);break}e=f.default.dirname(e)}if(!t)throw Error(`[boltdocs] Could not resolve boltdocs/client entry point starting from ${__dirname}`);return`export * from '${t}';`}}}}function I(e){return(t,n,r)=>{let i=e().integrations?.feedback?.custom,a=i?.endpoint||`/api/feedback`;if(!i?.enabled||t.method!==`POST`||t.url?.split(`?`)[0]!==a)return r();let o=``,s=0;t.on(`data`,e=>{if(s+=e.length,s>10240){n.statusCode=413,n.end(JSON.stringify({error:`Request body too large`})),t.destroy();return}o+=e}),t.on(`end`,async()=>{n.setHeader(`Content-Type`,`application/json`);try{let{handleFeedback:e}=await Promise.resolve().then(()=>require(`./handler-XX7cLTqe.cjs`)).then(e=>e.n),t=await e(JSON.parse(o),process.env,{owner:i.owner,repo:i.repo,categorySlug:i.categorySlug});n.statusCode=200,n.end(JSON.stringify(t))}catch(e){n.statusCode=500;let t=e instanceof Error?e.message:`Failed to submit feedback`;n.end(JSON.stringify({error:t}))}})}}function L(e){return(t,n,r)=>{let i=t.url||`/`,a=i.split(`?`)[0].split(`#`)[0];if(f.default.extname(a))return r();let o=e(),s=f.default.resolve(o?.root||process.cwd(),o?.build?.outDir||`dist`),c=a.replace(/\/$/,``)||`/`,l=f.default.join(s,c,`index.html`);c!==`/`&&p.default.existsSync(l)&&(t.url=`${c}/index.html${i.includes(`?`)?`?${i.split(`?`)[1]}`:``}`),r()}}const R=/\.(js|css|png|jpe?g|gif|svg|ico|webp|woff2?|ttf|otf|mp4|webm|ogg|mp3|wav|flac|aac|pdf|zip|gz|map|json)$/i;function z(e,t,n){let r=process.env.NODE_ENV===`production`;e.middlewares.use(I(n)),e.middlewares.use((e,t,i)=>{r&&Object.entries(u.t).forEach(([e,n])=>{t.setHeader(e,n)});let a=n();a.security?.enableCSP&&t.setHeader(`Content-Security-Policy`,d.n(a)),i()}),e.middlewares.use((e,t,n)=>{if(e.url===`/robots.txt`){n();return}n()}),e.middlewares.use(async(t,r,i)=>{let a=t.url?.split(`?`)[0]||`/`,o=t.headers.accept||``,s=n();if(o.includes(`text/html`)&&!R.test(a)){let n=S(s);n=O(n,s),n=await e.transformIndexHtml(t.url||`/`,n),r.statusCode=200,r.setHeader(`Content-Type`,`text/html`),r.end(n);return}i()})}const B=[/\/index\./i,/\/getting-started/i,/\/intro/i,/\/readme/i];function V(e){for(let t=0;t<B.length;t++)if(B[t].test(e))return t;return B.length}function pe(e,t,n){setTimeout(async()=>{try{let{generateRoutes:r}=await Promise.resolve().then(()=>require(`./routes-CORVxc02.cjs`)),i=(await r(t,n())).filter(e=>e.filePath).map(e=>e.filePath).sort((e,t)=>V(e)-V(t));for(let t=0;t<i.length;t+=32){let n=i.slice(t,t+32);await Promise.allSettled(n.map(t=>{let n=f.default.relative(process.cwd(),t).replace(/\\/g,`/`),r=n.startsWith(`/`)?n:`/${n}`;return e.transformRequest(r)}))}}catch{}},150)}const H=[`tsx`,`jsx`],U=[`tsx`,`ts`,`jsx`,`js`];function me(e,t){let n=o.t.map(e=>f.default.resolve(process.cwd(),e)),r=H.map(e=>f.default.resolve(t,`layout.${e}`)),i=U.map(e=>f.default.resolve(t,`mdx-components.${e}`)),a=U.map(e=>f.default.resolve(t,`pages-external/index.${e}`)),s=U.map(e=>f.default.resolve(t,`icons.${e}`));e.watcher.add([...n,...i,...r,...a,...s])}const W=new Map;function G(e){let{lastUpdated:t,...n}=e;return h.default.createHash(`md5`).update(JSON.stringify(n)).digest(`hex`)}async function he(e){try{let{data:t}=await n.d(e);return G(t)}catch{return``}}function ge(e){let t=W.get(e);if(t===void 0){let n=i.i.getStale(e);n?.route?.frontmatter&&(t=G(n.route.frontmatter),W.set(e,t))}return t}function _e(e,t){W.set(e,t)}function ve(e){W.delete(e)}const K=[`tsx`,`ts`,`jsx`,`js`];function q(e,t){let n=e.moduleGraph.getModuleById(`\0virtual:boltdocs-${t}.ts`);n&&e.moduleGraph.invalidateModule(n)}function ye(e,r,a,l){let u=new Map,d=a.toLowerCase(),p=null;function h(){if(p)return p;p=new Map;for(let[t,n]of e.moduleGraph.fileToModulesMap.entries())try{p.set(decodeURIComponent(t).toLowerCase(),n)}catch{}return p}e.watcher.on(`all`,()=>{p=null});let g=async(a,p)=>{try{let g=n.u(a);if(o.t.some(e=>g.endsWith(e))){e.restart();return}if(K.some(e=>g.endsWith(`mdx-components.${e}`))){s.t(l(),r),q(e,`mdx-components.tsx`),e.ws.send({type:`full-reload`});return}if(K.some(e=>g.endsWith(`icons.${e}`))){q(e,`icons.tsx`),e.ws.send({type:`full-reload`});return}if(g.endsWith(`layout.tsx`)||g.endsWith(`layout.jsx`)){q(e,`layout.tsx`),e.ws.send({type:`full-reload`});return}if(g.endsWith(`/post.tsx`)||g.endsWith(`/post.jsx`)||g.endsWith(`/list.tsx`)||g.endsWith(`/list.jsx`)){q(e,`entry`),e.ws.send({type:`full-reload`});return}if(g.includes(`/pages-external/`)||g.includes(`\\pages-external\\`)){q(e,`entry`),e.ws.send({type:`full-reload`});return}if(!g.toLowerCase().startsWith(d))return;let _=g.endsWith(`meta.json`)||g.endsWith(`_meta.json`);if(!_&&!n.c(g))return;if(p===`add`||p===`unlink`||_){p===`unlink`&&ve(a),i.r(),P(),t.s(),t.c(p,g).catch(e=>{(0,m.error)(`Plugin HMR handler error:`,e)});let n=l();s.t(n,r),q(e,`config`),q(e,`routes`),q(e,`search`),q(e,`collections`),c.c(r,process.cwd(),n).catch(e=>{(0,m.error)(`Failed to update link tree:`,e)}),e.ws.send({type:`custom`,event:`boltdocs:config-update`,data:{theme:n?.theme,i18n:n?.i18n,versions:n?.versions,siteUrl:n?.siteUrl}}),e.ws.send({type:`full-reload`});return}u.has(g)&&clearTimeout(u.get(g)),u.set(g,setTimeout(async()=>{u.delete(g);try{let t=ge(a),o=await he(a);if(_e(a,o),i.n(a),t!==void 0&&t!==o){P(),q(e,`routes`),q(e,`search`),q(e,`collections`),e.ws.send({type:`full-reload`});return}let s=n.u(f.default.relative(r,a)),c=e.moduleGraph.getModulesByFile(g);if((!c||c.size===0)&&(c=h().get(g.toLowerCase())||null),c&&c.size>0)for(let t of c)e.moduleGraph.invalidateModule(t);else{e.ws.send({type:`full-reload`});return}e.ws.send({type:`custom`,event:`boltdocs:mdx-update`,data:{file:g,relPath:s}})}catch(e){(0,m.error)(`HMR error processing content change:`,e)}},150))}catch(e){(0,m.error)(`HMR error during ${p} event:`,e)}};e.watcher.on(`add`,e=>g(e,`add`)),e.watcher.on(`unlink`,e=>g(e,`unlink`)),e.watcher.on(`change`,e=>g(e,`change`))}function be(e){let t=e.toLowerCase();return({file:e})=>{let r=e.toLowerCase();if(r.startsWith(t)&&(n.c(e)||r.endsWith(`meta.json`)))return[]}}function xe(e,n,r,i,a){return{name:`vite-plugin-boltdocs-dev-server`,apply:`serve`,async configureServer(i){let o=a();await o?.runHook(`beforeDev`),c.c(e,process.cwd(),r()).catch(e=>{(0,m.error)(`Failed to generate initial link tree:`,e)}),pe(i,e,r),z(i,e,r),me(i,e),ye(i,e,n,r),t.u((e,t)=>{i.ws.send(e,t)}),t.o(i),await t.l(),await o?.runHook(`afterDev`)},hotUpdate:be(n)}}const J=new r.TransformCache(`mdx`);function Se(e){let t=l.n(e);return async e=>{let n=await t.getHighlighter();(0,_.visitNodes)(e,l.o.ELEMENT,e=>{if(e.tagName!==`pre`)return;let r=e.children?.[0];if(!r||r.type!==l.o.ELEMENT||r.tagName!==`code`)return;let i=(r.properties?.className||[]).find(e=>e.startsWith(`language-`)),a=i?i.slice(9):l.a.MDX_DEFAULT_LANG;if(a===`mermaid`)return;let o=(0,_.parseMetaString)(r.properties?.metastring||r.data?.meta||``),s=t.getOptions(a,o),c=r.children?.[0]?.value??``;try{let t=n.codeToHast(c,s),r=t.type===`root`&&t.children?t.children[0]:t;r&&r.type===`element`&&(e.children=r.children,e.properties={...e.properties||{},...r.properties||{},[l.i.HIGHLIGHTED]:`true`,[l.i.LANG]:a})}catch(t){(0,m.error)(`[rehypeShiki] Failed to highlight code block:`,t);let n=e.properties??={};n.className=[...Array.isArray(n.className)?n.className:[],l.s.FALLBACK],n[l.i.HIGHLIGHTED]=`false`,n[l.i.LANG]=a}return o.title&&((e.properties??={})[l.i.TITLE]=o.title),_.SKIP})}}function Ce(){return e=>{(0,_.visitNodes)(e,l.o.CODE,e=>{e.meta&&(0,_.setNodeProperty)(e,`metastring`,e.meta)})}}let we=!1;function Te(e,t,r=v.default){let i=e?.plugins?.flatMap(e=>e.remarkPlugins||[])||[],a=e?.plugins?.flatMap(e=>e.rehypePlugins||[])||[],o=r({remarkPlugins:[y.default,b.default,Ce,...i],rehypePlugins:[x.default,[Se,e],...a],jsxRuntime:`automatic`});return{...o,name:`vite-plugin-boltdocs-mdx`,async buildStart(){we||=(await J.load(),!0),o.buildStart&&await o.buildStart.call(this)},async load(e,n){if(e.endsWith(`.md`)||e.endsWith(`.mdx`))try{let n=p.default.readFileSync(e,`utf-8`),r=t?.();return r&&(n=(await r.runChain(`transformSource`,{code:n,filePath:e})).code),n}catch{return null}return o.load?o.load.call(this,e,n):null},async transform(e,r,i){let[a]=r.split(`?`);if(!a.endsWith(`.md`)&&!a.endsWith(`.mdx`))return o.transform?.call(this,e,r,i);let s=process.env.NODE_ENV===`production`?`prod`:`dev`,c=s===`dev`?`${a}:${n.s(a)}:${s}:v4`:`${a}:${h.default.createHash(`md5`).update(e).digest(`hex`)}:${s}:v4`,l=await J.getAsync(c);if(l)return{code:l,map:null};let u=await o.transform.call(this,e,a,i);if(u&&typeof u==`object`&&u.code){let e=u.code,n=t?.();return n&&(e=(await n.runChain(`transformMdx`,{code:e,filePath:a})).code),J.set(c,e),{code:e,map:null}}return u},async buildEnd(){J.save(),await J.flush(),o.buildEnd&&await o.buildEnd.call(this)}}}const Y=(0,g.createRequire)(require(`url`).pathToFileURL(__filename).href),Ee=[`react`,`react-dom`,`react-router-dom`,`react-helmet-async`,`@bdocs/ssg`,`jsdom`],De=[`react/jsx-runtime`,`react/jsx-dev-runtime`,`react-dom/client`];function X(e=Y){try{let e=f.default.join(process.cwd(),`node_modules/boltdocs/package.json`);return p.default.existsSync(e)?(0,g.createRequire)(p.default.realpathSync(e)):(0,g.createRequire)(f.default.join(process.cwd(),`package.json`))}catch{return e}}function Z(e,t=Y){try{let n=e.split(`/`),r=e.startsWith(`@`)?n.slice(0,2).join(`/`):n[0],i=e.startsWith(`@`)?n.slice(2).join(`/`):n.slice(1).join(`/`),a=``;try{a=t.resolve(`${r}/package.json`)}catch{let e=t.resolve(r),n=f.default.dirname(e);for(;n&&n!==f.default.dirname(n);){let e=f.default.join(n,`package.json`);if(p.default.existsSync(e)){a=e;break}n=f.default.dirname(n)}}if(!a)throw Error();let o=f.default.dirname(a),s=JSON.parse(p.default.readFileSync(a,`utf-8`)),c=i?`./${i}`:`.`,l=s.exports?.[c]||s.exports?.[i]||``;typeof l==`object`&&l&&(l=l.import||l.default||l.require||``),!l&&!i&&(l=s.module||s.main||`index.js`);let u=f.default.resolve(o,l);if(p.default.existsSync(u))return u}catch{}return t.resolve(e)}function Q(e=Y){let t=[],r=X(e),i=new Set([r,e]);for(let e of i){for(let n of Ee)try{let r=[`@bdocs/ssg`,`react-router-dom`,`react-helmet-async`].includes(n)?Z(n,e):e.resolve(n);r&&t.push(p.default.realpathSync(r))}catch{}for(let n of De)try{t.push(p.default.realpathSync(e.resolve(n)))}catch{}}return Array.from(new Set(t)).map(e=>n.u(e))}const $=(0,g.createRequire)(require(`url`).pathToFileURL(__filename).href),Oe=[`react`,`react-dom`,`react-router-dom`,`react-helmet-async`,`@bdocs/ssg`];function ke(e={},r){let c=f.default.resolve(process.cwd(),e.docsDir||`docs`),l=n.u(c),u=r,d,m=!1,h,g=[],_=[];if(u?.plugins?.length)try{let{version:e}=JSON.parse(p.default.readFileSync(f.default.resolve(__dirname,`../../../package.json`),`utf-8`)),n=t.h(u.plugins,e);u.plugins=n,h=new t.a(n,u),_=n.flatMap(e=>e.vitePlugins||[])}catch{}let v=()=>u,y=e=>{u=e},b=()=>d,x=()=>h;return[{name:`vite-plugin-boltdocs`,enforce:`pre`,async config(e,n){m=n.command===`build`;let r=!!(n.isSsrBuild||e.build?.ssr);if(Object.assign(process.env,(0,ee.loadEnv)(n.mode,e.envDir||process.cwd(),``)),u||=await o.n(c),g.length===0){g=await i.t(c,u);let e=g.map(e=>e.path),t=(u.base||`/docs`).replace(/\/$/,``);e.includes(t)||e.push(t);let n=a.t(c,u);for(let t of n)e.includes(t)||e.push(t);s.t(u,c,void 0,e),s.r(e)}Promise.resolve().then(()=>require(`./node/mdx/shiki-adapter.cjs`)).then(({getShikiAdapter:e})=>{e(u).getHighlighter().catch(()=>{})}).catch(()=>{});let{version:l}=await Promise.resolve().then(()=>require(`./package-BcISI5-P.cjs`)),f=t.h(u.plugins||[],l);return u.plugins=f,h=new t.a(f,u,c,void 0,g,d?.build?.outDir||`dist`),_=f.flatMap(e=>e.vitePlugins||[]),m&&await h.runHook(`beforeBuild`),{ssgOptions:{entry:`boltdocs/entry`,htmlEntry:`index.html`,dirStyle:`flat`,includeAllRoutes:!0,mock:!0,script:`async`,beastiesOptions:!1,onPageRendered:async(e,t)=>{if(!h)return t;try{let n=(await h.runChain(`transformHtml`,{html:t,path:e})).html;return n=(await h.runMiddlewareChain(`transformHtml`,{html:n,path:e})).html,n}catch{return t}}},build:{ssrManifest:m},optimizeDeps:{include:[`react`,`react-dom`,`react-dom/client`,`react-router-dom`,`react-helmet-async`,`react-fast-compare`,`invariant`],exclude:[`boltdocs`,`boltdocs/client`]},resolve:{alias:r?[]:[{find:`react-router-dom`,replacement:Z(`react-router-dom`)},{find:`react-helmet-async`,replacement:Z(`react-helmet-async`)},{find:`@bdocs/ssg`,replacement:Z(`@bdocs/ssg`)}],dedupe:[`react`,`react-dom`,...r?[]:[`react-router-dom`,`react-helmet-async`,`@bdocs/ssg`]]},ssr:{external:[`react`,`react-dom`,`react-helmet-async`,`react-router-dom`,`@bdocs/ssg`,`jsdom`,...Q($)],optimizeDeps:{include:[`react-fast-compare`]},noExternal:[]}}},configResolved(e){d=e},resolveId(e,t,n){let r=Oe.find(t=>e===t||e.startsWith(`${t}/`)||e.includes(`/node_modules/${t}/`)||t.startsWith(`@`)&&e.includes(`/node_modules/${t.replace(`/`,f.default.sep)}/`));if(r&&n?.ssr&&!f.default.isAbsolute(e)&&r!==`react`&&r!==`react-dom`){let t=X($),n=e;try{n=[`@bdocs/ssg`,`react-router-dom`,`react-helmet-async`].includes(r)?Z(e,t):t.resolve(e)}catch{try{n=[`@bdocs/ssg`,`react-router-dom`,`react-helmet-async`].includes(r)?Z(e,$):$.resolve(e)}catch{}}try{n=p.default.realpathSync(n)}catch{}return{id:n,external:!0}}return null},transformIndexHtml:{order:`pre`,handler:e=>O(e,u)},async closeBundle(){!m||d?.build?.ssr||(await h?.runHook(`afterBuild`),await h?.runHook(`buildEnd`))},configurePreviewServer(e){e.middlewares.use(I(v)),e.middlewares.use(L(b)),t.o(e),t.l().catch(()=>{})}},F(e,v,b,c),xe(c,l,v,y,x),...e.turbo?[]:[Te(u,x)],...e.turbo?[(()=>{let e=null;async function t(){if(!e)try{let{createSatteriMdxPlugin:t}=await Promise.resolve().then(()=>require(`./node-aD1eisrR.cjs`));e=t(u,x)}catch{}return e}return{name:`vite-plugin-boltdocs-satteri-mdx`,enforce:`pre`,async load(e){let n=await t();return n&&n.load?n.load(e):null},async transform(e,n){let r=await t();return r&&r.transform?r.transform(e,n):null},async buildEnd(){let e=await t();e&&e.buildEnd&&await e.buildEnd()}}})()]:[],(0,te.ViteImageOptimizer)({includePublic:!0}),..._]}exports.boltdocsPlugin=ke,exports.getBaseRequire=X,exports.getExternalAbsolutePaths=Q,exports.resolveEsm=Z;
73
+ export default UserLayout;`;throw Error(`[Boltdocs] Layout file not found. A 'layout.tsx' or 'layout.jsx' file is mandatory in your docs directory. Please create one to define your site structure.`)}if(l===`icons`){let e=[`tsx`,`jsx`,`ts`,`js`],t=null;for(let n of e){let e=f.default.resolve(o,`icons.${n}`);if(p.default.existsSync(e)){t=e;break}}return t?`import * as icons from '${n.u(t)}';\nexport default icons;`:`export default {};`}if(l===`search`){if(!j){let e=fe(await i.t(o,s));j=`export default ${JSON.stringify(e,null,2)};`}return j}if(l===`client`){let e=__dirname,t=``;for(;e&&e!==f.default.parse(e).root;){let r=f.default.join(e,`src/client/index.ts`),i=f.default.join(e,`dist/client/index.mjs`),a=f.default.join(e,`client/index.ts`);if(p.default.existsSync(r)){t=n.u(r);break}if(p.default.existsSync(i)){t=n.u(i);break}if(p.default.existsSync(a)){t=n.u(a);break}e=f.default.dirname(e)}if(!t)throw Error(`[boltdocs] Could not resolve boltdocs/client entry point starting from ${__dirname}`);return`export * from '${t}';`}}}}function I(e){return(t,n,r)=>{let i=e().integrations?.feedback?.custom,a=i?.endpoint||`/api/feedback`;if(!i?.enabled||t.method!==`POST`||t.url?.split(`?`)[0]!==a)return r();let o=``,s=0;t.on(`data`,e=>{if(s+=e.length,s>10240){n.statusCode=413,n.end(JSON.stringify({error:`Request body too large`})),t.destroy();return}o+=e}),t.on(`end`,async()=>{n.setHeader(`Content-Type`,`application/json`);try{let{handleFeedback:e}=await Promise.resolve().then(()=>require(`./handler-XX7cLTqe.cjs`)).then(e=>e.n),t=await e(JSON.parse(o),process.env,{owner:i.owner,repo:i.repo,categorySlug:i.categorySlug});n.statusCode=200,n.end(JSON.stringify(t))}catch(e){n.statusCode=500;let t=e instanceof Error?e.message:`Failed to submit feedback`;n.end(JSON.stringify({error:t}))}})}}function L(e){return(t,n,r)=>{let i=t.url||`/`,a=i.split(`?`)[0].split(`#`)[0];if(f.default.extname(a))return r();let o=e(),s=f.default.resolve(o?.root||process.cwd(),o?.build?.outDir||`dist`),c=a.replace(/\/$/,``)||`/`,l=f.default.join(s,c,`index.html`);c!==`/`&&p.default.existsSync(l)&&(t.url=`${c}/index.html${i.includes(`?`)?`?${i.split(`?`)[1]}`:``}`),r()}}const R=/\.(js|css|png|jpe?g|gif|svg|ico|webp|woff2?|ttf|otf|mp4|webm|ogg|mp3|wav|flac|aac|pdf|zip|gz|map|json)$/i;function z(e,t,n){let r=process.env.NODE_ENV===`production`;e.middlewares.use(I(n)),e.middlewares.use((e,t,i)=>{r&&Object.entries(u.t).forEach(([e,n])=>{t.setHeader(e,n)});let a=n();a.security?.enableCSP&&t.setHeader(`Content-Security-Policy`,d.n(a)),i()}),e.middlewares.use((e,t,n)=>{if(e.url===`/robots.txt`){n();return}n()}),e.middlewares.use(async(t,r,i)=>{let a=t.url?.split(`?`)[0]||`/`,o=t.headers.accept||``,s=n();if(o.includes(`text/html`)&&!R.test(a)){let n=S(s);n=O(n,s),n=await e.transformIndexHtml(t.url||`/`,n),r.statusCode=200,r.setHeader(`Content-Type`,`text/html`),r.end(n);return}i()})}const B=[/\/index\./i,/\/getting-started/i,/\/intro/i,/\/readme/i];function V(e){for(let t=0;t<B.length;t++)if(B[t].test(e))return t;return B.length}function pe(e,t,n){setTimeout(async()=>{try{let{generateRoutes:r}=await Promise.resolve().then(()=>require(`./routes-CORVxc02.cjs`)),i=(await r(t,n())).filter(e=>e.filePath).map(e=>e.filePath).sort((e,t)=>V(e)-V(t));for(let t=0;t<i.length;t+=32){let n=i.slice(t,t+32);await Promise.allSettled(n.map(t=>{let n=f.default.relative(process.cwd(),t).replace(/\\/g,`/`),r=n.startsWith(`/`)?n:`/${n}`;return e.transformRequest(r)}))}}catch{}},150)}const H=[`tsx`,`jsx`],U=[`tsx`,`ts`,`jsx`,`js`];function me(e,t){let n=o.t.map(e=>f.default.resolve(process.cwd(),e)),r=H.map(e=>f.default.resolve(t,`layout.${e}`)),i=U.map(e=>f.default.resolve(t,`mdx-components.${e}`)),a=U.map(e=>f.default.resolve(t,`pages-external/index.${e}`)),s=U.map(e=>f.default.resolve(t,`icons.${e}`));e.watcher.add([...n,...i,...r,...a,...s])}const W=new Map;function G(e){let{lastUpdated:t,...n}=e;return h.default.createHash(`md5`).update(JSON.stringify(n)).digest(`hex`)}async function he(e){try{let{data:t}=await n.d(e);return G(t)}catch{return``}}function ge(e){let t=W.get(e);if(t===void 0){let n=i.i.getStale(e);n?.route?.frontmatter&&(t=G(n.route.frontmatter),W.set(e,t))}return t}function _e(e,t){W.set(e,t)}function ve(e){W.delete(e)}const K=[`tsx`,`ts`,`jsx`,`js`];function q(e,t){let n=e.moduleGraph.getModuleById(`\0virtual:boltdocs-${t}.ts`);n&&e.moduleGraph.invalidateModule(n)}function ye(e,r,a,l){let u=new Map,d=a.toLowerCase(),p=null;function h(){if(p)return p;p=new Map;for(let[t,n]of e.moduleGraph.fileToModulesMap.entries())try{p.set(decodeURIComponent(t).toLowerCase(),n)}catch{}return p}e.watcher.on(`all`,()=>{p=null});let g=async(a,p)=>{try{let g=n.u(a);if(o.t.some(e=>g.endsWith(e))){e.restart();return}if(K.some(e=>g.endsWith(`mdx-components.${e}`))){s.t(l(),r),q(e,`mdx-components.tsx`),e.ws.send({type:`full-reload`});return}if(K.some(e=>g.endsWith(`icons.${e}`))){q(e,`icons.tsx`),e.ws.send({type:`full-reload`});return}if(g.endsWith(`layout.tsx`)||g.endsWith(`layout.jsx`)){q(e,`layout.tsx`),e.ws.send({type:`full-reload`});return}if(g.endsWith(`/post.tsx`)||g.endsWith(`/post.jsx`)||g.endsWith(`/list.tsx`)||g.endsWith(`/list.jsx`)){q(e,`entry`),e.ws.send({type:`full-reload`});return}if(g.includes(`/pages-external/`)||g.includes(`\\pages-external\\`)){q(e,`entry`),e.ws.send({type:`full-reload`});return}if(!g.toLowerCase().startsWith(d))return;let _=g.endsWith(`meta.json`)||g.endsWith(`_meta.json`);if(!_&&!n.c(g))return;if(p===`add`||p===`unlink`||_){p===`unlink`&&ve(a),i.r(),P(),t.s(),t.c(p,g).catch(e=>{(0,m.error)(`Plugin HMR handler error:`,e)});let n=l();s.t(n,r),q(e,`config`),q(e,`routes`),q(e,`search`),q(e,`collections`),c.c(r,process.cwd(),n).catch(e=>{(0,m.error)(`Failed to update link tree:`,e)}),e.ws.send({type:`custom`,event:`boltdocs:config-update`,data:{theme:n?.theme,i18n:n?.i18n,versions:n?.versions,siteUrl:n?.siteUrl}}),e.ws.send({type:`full-reload`});return}u.has(g)&&clearTimeout(u.get(g)),u.set(g,setTimeout(async()=>{u.delete(g);try{let t=ge(a),o=await he(a);if(_e(a,o),i.n(a),t!==void 0&&t!==o){P(),q(e,`routes`),q(e,`search`),q(e,`collections`),e.ws.send({type:`full-reload`});return}let s=n.u(f.default.relative(r,a)),c=e.moduleGraph.getModulesByFile(g);if((!c||c.size===0)&&(c=h().get(g.toLowerCase())||null),c&&c.size>0)for(let t of c)e.moduleGraph.invalidateModule(t);else{e.ws.send({type:`full-reload`});return}e.ws.send({type:`custom`,event:`boltdocs:mdx-update`,data:{file:g,relPath:s}})}catch(e){(0,m.error)(`HMR error processing content change:`,e)}},150))}catch(e){(0,m.error)(`HMR error during ${p} event:`,e)}};e.watcher.on(`add`,e=>g(e,`add`)),e.watcher.on(`unlink`,e=>g(e,`unlink`)),e.watcher.on(`change`,e=>g(e,`change`))}function be(e){let t=e.toLowerCase();return({file:e})=>{let r=e.toLowerCase();if(r.startsWith(t)&&(n.c(e)||r.endsWith(`meta.json`)))return[]}}function xe(e,n,r,i,a){return{name:`vite-plugin-boltdocs-dev-server`,apply:`serve`,async configureServer(i){let o=a();await o?.runHook(`beforeDev`),c.c(e,process.cwd(),r()).catch(e=>{(0,m.error)(`Failed to generate initial link tree:`,e)}),pe(i,e,r),z(i,e,r),me(i,e),ye(i,e,n,r),t.u((e,t)=>{i.ws.send(e,t)}),t.o(i),await t.l(),await o?.runHook(`afterDev`)},hotUpdate:be(n)}}const J=new r.TransformCache(`mdx`);function Se(e){let t=l.n(e);return async e=>{let n=await t.getHighlighter();(0,_.visitNodes)(e,l.o.ELEMENT,e=>{if(e.tagName!==`pre`)return;let r=e.children?.[0];if(!r||r.type!==l.o.ELEMENT||r.tagName!==`code`)return;let i=(r.properties?.className||[]).find(e=>e.startsWith(`language-`)),a=i?i.slice(9):l.a.MDX_DEFAULT_LANG;if(a===`mermaid`)return;let o=(0,_.parseMetaString)(r.properties?.metastring||r.data?.meta||``),s=t.getOptions(a,o),c=r.children?.[0]?.value??``;try{let t=n.codeToHast(c,s),r=t.type===`root`&&t.children?t.children[0]:t;r&&r.type===`element`&&(e.children=r.children,e.properties={...e.properties||{},...r.properties||{},[l.i.HIGHLIGHTED]:`true`,[l.i.LANG]:a})}catch(t){(0,m.error)(`[rehypeShiki] Failed to highlight code block:`,t);let n=e.properties??={};n.className=[...Array.isArray(n.className)?n.className:[],l.s.FALLBACK],n[l.i.HIGHLIGHTED]=`false`,n[l.i.LANG]=a}return o.title&&((e.properties??={})[l.i.TITLE]=o.title),_.SKIP})}}function Ce(){return e=>{(0,_.visitNodes)(e,l.o.CODE,e=>{e.meta&&(0,_.setNodeProperty)(e,`metastring`,e.meta)})}}let we=!1;function Te(e,t,r=v.default){let i=e?.plugins?.flatMap(e=>e.remarkPlugins||[])||[],a=e?.plugins?.flatMap(e=>e.rehypePlugins||[])||[],o=r({remarkPlugins:[y.default,b.default,Ce,...i],rehypePlugins:[x.default,[Se,e],...a],jsxRuntime:`automatic`});return{...o,name:`vite-plugin-boltdocs-mdx`,async buildStart(){we||=(await J.load(),!0),o.buildStart&&await o.buildStart.call(this)},async load(e,n){if(e.endsWith(`.md`)||e.endsWith(`.mdx`))try{let n=p.default.readFileSync(e,`utf-8`),r=t?.();return r&&(n=(await r.runChain(`transformSource`,{code:n,filePath:e})).code),n}catch{return null}return o.load?o.load.call(this,e,n):null},async transform(e,r,i){let[a]=r.split(`?`);if(!a.endsWith(`.md`)&&!a.endsWith(`.mdx`))return o.transform?.call(this,e,r,i);let s=process.env.NODE_ENV===`production`?`prod`:`dev`,c=s===`dev`?`${a}:${n.s(a)}:${s}:v4`:`${a}:${h.default.createHash(`md5`).update(e).digest(`hex`)}:${s}:v4`,l=await J.getAsync(c);if(l)return{code:l,map:null};let u=await o.transform.call(this,e,a,i);if(u&&typeof u==`object`&&u.code){let e=u.code,n=t?.();return n&&(e=(await n.runChain(`transformMdx`,{code:e,filePath:a})).code),J.set(c,e),{code:e,map:null}}return u},async buildEnd(){J.save(),await J.flush(),o.buildEnd&&await o.buildEnd.call(this)}}}const Y=(0,g.createRequire)(require(`url`).pathToFileURL(__filename).href),Ee=[`react`,`react-dom`,`react-router-dom`,`react-helmet-async`,`@bdocs/ssg`,`jsdom`],De=[`react/jsx-runtime`,`react/jsx-dev-runtime`,`react-dom/client`];function X(e=Y){try{let e=f.default.join(process.cwd(),`node_modules/boltdocs/package.json`);return p.default.existsSync(e)?(0,g.createRequire)(p.default.realpathSync(e)):(0,g.createRequire)(f.default.join(process.cwd(),`package.json`))}catch{return e}}function Z(e,t=Y){try{let n=e.split(`/`),r=e.startsWith(`@`)?n.slice(0,2).join(`/`):n[0],i=e.startsWith(`@`)?n.slice(2).join(`/`):n.slice(1).join(`/`),a=``;try{a=t.resolve(`${r}/package.json`)}catch{let e=t.resolve(r),n=f.default.dirname(e);for(;n&&n!==f.default.dirname(n);){let e=f.default.join(n,`package.json`);if(p.default.existsSync(e)){a=e;break}n=f.default.dirname(n)}}if(!a)throw Error();let o=f.default.dirname(a),s=JSON.parse(p.default.readFileSync(a,`utf-8`)),c=i?`./${i}`:`.`,l=s.exports?.[c]||s.exports?.[i]||``;typeof l==`object`&&l&&(l=l.import||l.default||l.require||``),!l&&!i&&(l=s.module||s.main||`index.js`);let u=f.default.resolve(o,l);if(p.default.existsSync(u))return u}catch{}return t.resolve(e)}function Q(e=Y){let t=[],r=X(e),i=new Set([r,e]);for(let e of i){for(let n of Ee)try{let r=[`@bdocs/ssg`,`react-router-dom`,`react-helmet-async`].includes(n)?Z(n,e):e.resolve(n);r&&t.push(p.default.realpathSync(r))}catch{}for(let n of De)try{t.push(p.default.realpathSync(e.resolve(n)))}catch{}}return Array.from(new Set(t)).map(e=>n.u(e))}const $=(0,g.createRequire)(require(`url`).pathToFileURL(__filename).href),Oe=[`react`,`react-dom`,`react-router-dom`,`react-helmet-async`,`@bdocs/ssg`];function ke(e={},r){let c=f.default.resolve(process.cwd(),e.docsDir||`docs`),l=n.u(c),u=r,d,m=!1,h,g=[],_=[];if(u?.plugins?.length)try{let{version:e}=JSON.parse(p.default.readFileSync(f.default.resolve(__dirname,`../../../package.json`),`utf-8`)),n=t.h(u.plugins,e);u.plugins=n,h=new t.a(n,u),_=n.flatMap(e=>e.vitePlugins||[])}catch{}let v=()=>u,y=e=>{u=e},b=()=>d,x=()=>h;return[{name:`vite-plugin-boltdocs`,enforce:`pre`,async config(e,n){m=n.command===`build`;let r=!!(n.isSsrBuild||e.build?.ssr);if(Object.assign(process.env,(0,ee.loadEnv)(n.mode,e.envDir||process.cwd(),``)),u||=await o.n(c),g.length===0){g=await i.t(c,u);let e=g.map(e=>e.path),t=(u.base||`/docs`).replace(/\/$/,``);e.includes(t)||e.push(t);let n=a.t(c,u);for(let t of n)e.includes(t)||e.push(t);s.t(u,c,void 0,e),s.r(e)}Promise.resolve().then(()=>require(`./node/mdx/shiki-adapter.cjs`)).then(({getShikiAdapter:e})=>{e(u).getHighlighter().catch(()=>{})}).catch(()=>{});let{version:l}=await Promise.resolve().then(()=>require(`./package-CH2ChQqw.cjs`)),f=t.h(u.plugins||[],l);return u.plugins=f,h=new t.a(f,u,c,void 0,g,d?.build?.outDir||`dist`),_=f.flatMap(e=>e.vitePlugins||[]),m&&await h.runHook(`beforeBuild`),{ssgOptions:{entry:`boltdocs/entry`,htmlEntry:`index.html`,dirStyle:`flat`,includeAllRoutes:!0,mock:!0,script:`async`,beastiesOptions:!1,onPageRendered:async(e,t)=>{if(!h)return t;try{let n=(await h.runChain(`transformHtml`,{html:t,path:e})).html;return n=(await h.runMiddlewareChain(`transformHtml`,{html:n,path:e})).html,n}catch{return t}}},build:{ssrManifest:m},optimizeDeps:{include:[`react`,`react-dom`,`react-dom/client`,`react-router-dom`,`react-helmet-async`,`react-fast-compare`,`invariant`],exclude:[`boltdocs`,`boltdocs/client`]},resolve:{alias:r?[]:[{find:`react-router-dom`,replacement:Z(`react-router-dom`)},{find:`react-helmet-async`,replacement:Z(`react-helmet-async`)},{find:`@bdocs/ssg`,replacement:Z(`@bdocs/ssg`)}],dedupe:[`react`,`react-dom`,...r?[]:[`react-router-dom`,`react-helmet-async`,`@bdocs/ssg`]]},ssr:{external:[`react`,`react-dom`,`react-helmet-async`,`react-router-dom`,`@bdocs/ssg`,`jsdom`,...Q($)],optimizeDeps:{include:[`react-fast-compare`]},noExternal:[]}}},configResolved(e){d=e},resolveId(e,t,n){let r=Oe.find(t=>e===t||e.startsWith(`${t}/`)||e.includes(`/node_modules/${t}/`)||t.startsWith(`@`)&&e.includes(`/node_modules/${t.replace(`/`,f.default.sep)}/`));if(r&&n?.ssr&&!f.default.isAbsolute(e)&&r!==`react`&&r!==`react-dom`){let t=X($),n=e;try{n=[`@bdocs/ssg`,`react-router-dom`,`react-helmet-async`].includes(r)?Z(e,t):t.resolve(e)}catch{try{n=[`@bdocs/ssg`,`react-router-dom`,`react-helmet-async`].includes(r)?Z(e,$):$.resolve(e)}catch{}}try{n=p.default.realpathSync(n)}catch{}return{id:n,external:!0}}return null},transformIndexHtml:{order:`pre`,handler:e=>O(e,u)},async closeBundle(){!m||d?.build?.ssr||(await h?.runHook(`afterBuild`),await h?.runHook(`buildEnd`))},configurePreviewServer(e){e.middlewares.use(I(v)),e.middlewares.use(L(b)),t.o(e),t.l().catch(()=>{})}},F(e,v,b,c),xe(c,l,v,y,x),...e.turbo?[]:[Te(u,x)],...e.turbo?[(()=>{let e=null;async function t(){if(!e)try{let{createSatteriMdxPlugin:t}=await Promise.resolve().then(()=>require(`./node-aD1eisrR.cjs`));e=t(u,x)}catch{}return e}return{name:`vite-plugin-boltdocs-satteri-mdx`,enforce:`pre`,async load(e){let n=await t();return n&&n.load?n.load(e):null},async transform(e,n){let r=await t();return r&&r.transform?r.transform(e,n):null},async buildEnd(){let e=await t();e&&e.buildEnd&&await e.buildEnd()}}})()]:[],(0,te.ViteImageOptimizer)({includePublic:!0}),..._]}exports.boltdocsPlugin=ke,exports.getBaseRequire=X,exports.getExternalAbsolutePaths=Q,exports.resolveEsm=Z;
@@ -3,7 +3,7 @@
3
3
  * Copyright (c) 2026 Jesus Alcala
4
4
  * Licensed under the MIT License.
5
5
  */
6
- import{a as e,b as t,c as n,f as r,i,l as a,m as o,o as s,s as c,u as l}from"./node-DOf4zhWc.mjs";import{c as u,d,n as f,s as p,u as m}from"./utils-Crm9oPcV.mjs";import{TransformCache as h}from"./node/cache.mjs";import{a as g,n as _,r as v,t as y}from"./routes-BW6zsk7Z.mjs";import{t as ee}from"./pages-external-BYa4JSda.mjs";import{r as te,t as b}from"./config-CCXp3aXO.mjs";import{r as ne,t as x}from"./types-generator-bDPvUztF.mjs";import{n as S}from"./doctor-DOAbSaiL.mjs";import{a as re,i as C,n as ie,o as w,s as ae}from"./shiki-adapter-D-aKw7PP.mjs";import{t as oe}from"./headers-Ddwek8K7.mjs";import{n as se}from"./csp-oTC2ygvF.mjs";import{createRequire as T}from"node:module";import E from"node:path";import D from"node:fs";import{error as O}from"@bdocs/dui";import k from"node:crypto";import{SKIP as ce,parseMetaString as le,setNodeProperty as ue,visitNodes as A}from"@bdocs/unist-utils";import{fileURLToPath as de}from"node:url";import{loadEnv as fe}from"vite";import{ViteImageOptimizer as pe}from"@bdocs/plugin-image-optimizer";import me from"@mdx-js/rollup";import he from"remark-gfm";import ge from"remark-frontmatter";import _e from"rehype-slug";const j=E.dirname(de(import.meta.url));function M(e){return`<!doctype html>
6
+ import{a as e,b as t,c as n,f as r,i,l as a,m as o,o as s,s as c,u as l}from"./node-C8725aw7.mjs";import{c as u,d,n as f,s as p,u as m}from"./utils-Crm9oPcV.mjs";import{TransformCache as h}from"./node/cache.mjs";import{a as g,n as _,r as v,t as y}from"./routes-BW6zsk7Z.mjs";import{t as ee}from"./pages-external-BYa4JSda.mjs";import{r as te,t as b}from"./config-CCXp3aXO.mjs";import{r as ne,t as x}from"./types-generator-bDPvUztF.mjs";import{n as S}from"./doctor-DOAbSaiL.mjs";import{a as re,i as C,n as ie,o as w,s as ae}from"./shiki-adapter-D-aKw7PP.mjs";import{t as oe}from"./headers-Ddwek8K7.mjs";import{n as se}from"./csp-oTC2ygvF.mjs";import{createRequire as T}from"node:module";import E from"node:path";import D from"node:fs";import{error as O}from"@bdocs/dui";import k from"node:crypto";import{SKIP as ce,parseMetaString as le,setNodeProperty as ue,visitNodes as A}from"@bdocs/unist-utils";import{fileURLToPath as de}from"node:url";import{loadEnv as fe}from"vite";import{ViteImageOptimizer as pe}from"@bdocs/plugin-image-optimizer";import me from"@mdx-js/rollup";import he from"remark-gfm";import ge from"remark-frontmatter";import _e from"rehype-slug";const j=E.dirname(de(import.meta.url));function M(e){return`<!doctype html>
7
7
  <html lang="en">
8
8
  <head>
9
9
  <meta charset="UTF-8" />
@@ -70,4 +70,4 @@ import{a as e,b as t,c as n,f as r,i,l as a,m as o,o as s,s as c,u as l}from"./n
70
70
  const mdxComponents = components.default || components;
71
71
  export default mdxComponents;
72
72
  export * from '${e}';`}return`export default {};`}if(c===`layout`){let e=[`tsx`,`jsx`],t=null;for(let n of e){let e=E.resolve(a,`layout.${n}`);if(D.existsSync(e)){t=e;break}}if(t)return`import UserLayout from '${m(t)}';
73
- export default UserLayout;`;throw Error(`[Boltdocs] Layout file not found. A 'layout.tsx' or 'layout.jsx' file is mandatory in your docs directory. Please create one to define your site structure.`)}if(c===`icons`){let e=[`tsx`,`jsx`,`ts`,`js`],t=null;for(let n of e){let e=E.resolve(a,`icons.${n}`);if(D.existsSync(e)){t=e;break}}return t?`import * as icons from '${m(t)}';\nexport default icons;`:`export default {};`}if(c===`search`){if(!I){let e=Ne(await y(a,o));I=`export default ${JSON.stringify(e,null,2)};`}return I}if(c===`client`){let e=j,t=``;for(;e&&e!==E.parse(e).root;){let n=E.join(e,`src/client/index.ts`),r=E.join(e,`dist/client/index.mjs`),i=E.join(e,`client/index.ts`);if(D.existsSync(n)){t=m(n);break}if(D.existsSync(r)){t=m(r);break}if(D.existsSync(i)){t=m(i);break}e=E.dirname(e)}if(!t)throw Error(`[boltdocs] Could not resolve boltdocs/client entry point starting from ${j}`);return`export * from '${t}';`}}}}function B(e){return(t,n,r)=>{let i=e().integrations?.feedback?.custom,a=i?.endpoint||`/api/feedback`;if(!i?.enabled||t.method!==`POST`||t.url?.split(`?`)[0]!==a)return r();let o=``,s=0;t.on(`data`,e=>{if(s+=e.length,s>10240){n.statusCode=413,n.end(JSON.stringify({error:`Request body too large`})),t.destroy();return}o+=e}),t.on(`end`,async()=>{n.setHeader(`Content-Type`,`application/json`);try{let{handleFeedback:e}=await import(`./handler-DzQae4eA.mjs`).then(e=>e.n),t=await e(JSON.parse(o),process.env,{owner:i.owner,repo:i.repo,categorySlug:i.categorySlug});n.statusCode=200,n.end(JSON.stringify(t))}catch(e){n.statusCode=500;let t=e instanceof Error?e.message:`Failed to submit feedback`;n.end(JSON.stringify({error:t}))}})}}function Fe(e){return(t,n,r)=>{let i=t.url||`/`,a=i.split(`?`)[0].split(`#`)[0];if(E.extname(a))return r();let o=e(),s=E.resolve(o?.root||process.cwd(),o?.build?.outDir||`dist`),c=a.replace(/\/$/,``)||`/`,l=E.join(s,c,`index.html`);c!==`/`&&D.existsSync(l)&&(t.url=`${c}/index.html${i.includes(`?`)?`?${i.split(`?`)[1]}`:``}`),r()}}const Ie=/\.(js|css|png|jpe?g|gif|svg|ico|webp|woff2?|ttf|otf|mp4|webm|ogg|mp3|wav|flac|aac|pdf|zip|gz|map|json)$/i;function Le(e,t,n){let r=process.env.NODE_ENV===`production`;e.middlewares.use(B(n)),e.middlewares.use((e,t,i)=>{r&&Object.entries(oe).forEach(([e,n])=>{t.setHeader(e,n)});let a=n();a.security?.enableCSP&&t.setHeader(`Content-Security-Policy`,se(a)),i()}),e.middlewares.use((e,t,n)=>{if(e.url===`/robots.txt`){n();return}n()}),e.middlewares.use(async(t,r,i)=>{let a=t.url?.split(`?`)[0]||`/`,o=t.headers.accept||``,s=n();if(o.includes(`text/html`)&&!Ie.test(a)){let n=M(s);n=N(n,s),n=await e.transformIndexHtml(t.url||`/`,n),r.statusCode=200,r.setHeader(`Content-Type`,`text/html`),r.end(n);return}i()})}const V=[/\/index\./i,/\/getting-started/i,/\/intro/i,/\/readme/i];function H(e){for(let t=0;t<V.length;t++)if(V[t].test(e))return t;return V.length}function Re(e,t,n){setTimeout(async()=>{try{let{generateRoutes:r}=await import(`./routes-BW6zsk7Z.mjs`).then(e=>e.i),i=(await r(t,n())).filter(e=>e.filePath).map(e=>e.filePath).sort((e,t)=>H(e)-H(t));for(let t=0;t<i.length;t+=32){let n=i.slice(t,t+32);await Promise.allSettled(n.map(t=>{let n=E.relative(process.cwd(),t).replace(/\\/g,`/`),r=n.startsWith(`/`)?n:`/${n}`;return e.transformRequest(r)}))}}catch{}},150)}const ze=[`tsx`,`jsx`],U=[`tsx`,`ts`,`jsx`,`js`];function Be(e,t){let n=b.map(e=>E.resolve(process.cwd(),e)),r=ze.map(e=>E.resolve(t,`layout.${e}`)),i=U.map(e=>E.resolve(t,`mdx-components.${e}`)),a=U.map(e=>E.resolve(t,`pages-external/index.${e}`)),o=U.map(e=>E.resolve(t,`icons.${e}`));e.watcher.add([...n,...i,...r,...a,...o])}const W=new Map;function G(e){let{lastUpdated:t,...n}=e;return k.createHash(`md5`).update(JSON.stringify(n)).digest(`hex`)}async function Ve(e){try{let{data:t}=await d(e);return G(t)}catch{return``}}function He(e){let t=W.get(e);if(t===void 0){let n=g.getStale(e);n?.route?.frontmatter&&(t=G(n.route.frontmatter),W.set(e,t))}return t}function Ue(e,t){W.set(e,t)}function We(e){W.delete(e)}const K=[`tsx`,`ts`,`jsx`,`js`];function q(e,t){let n=e.moduleGraph.getModuleById(`\0virtual:boltdocs-${t}.ts`);n&&e.moduleGraph.invalidateModule(n)}function Ge(e,t,n,r){let i=new Map,a=n.toLowerCase(),o=null;function l(){if(o)return o;o=new Map;for(let[t,n]of e.moduleGraph.fileToModulesMap.entries())try{o.set(decodeURIComponent(t).toLowerCase(),n)}catch{}return o}e.watcher.on(`all`,()=>{o=null});let d=async(n,o)=>{try{let d=m(n);if(b.some(e=>d.endsWith(e))){e.restart();return}if(K.some(e=>d.endsWith(`mdx-components.${e}`))){x(r(),t),q(e,`mdx-components.tsx`),e.ws.send({type:`full-reload`});return}if(K.some(e=>d.endsWith(`icons.${e}`))){q(e,`icons.tsx`),e.ws.send({type:`full-reload`});return}if(d.endsWith(`layout.tsx`)||d.endsWith(`layout.jsx`)){q(e,`layout.tsx`),e.ws.send({type:`full-reload`});return}if(d.endsWith(`/post.tsx`)||d.endsWith(`/post.jsx`)||d.endsWith(`/list.tsx`)||d.endsWith(`/list.jsx`)){q(e,`entry`),e.ws.send({type:`full-reload`});return}if(d.includes(`/pages-external/`)||d.includes(`\\pages-external\\`)){q(e,`entry`),e.ws.send({type:`full-reload`});return}if(!d.toLowerCase().startsWith(a))return;let f=d.endsWith(`meta.json`)||d.endsWith(`_meta.json`);if(!f&&!u(d))return;if(o===`add`||o===`unlink`||f){o===`unlink`&&We(n),v(),z(),s(),c(o,d).catch(e=>{O(`Plugin HMR handler error:`,e)});let i=r();x(i,t),q(e,`config`),q(e,`routes`),q(e,`search`),q(e,`collections`),S(t,process.cwd(),i).catch(e=>{O(`Failed to update link tree:`,e)}),e.ws.send({type:`custom`,event:`boltdocs:config-update`,data:{theme:i?.theme,i18n:i?.i18n,versions:i?.versions,siteUrl:i?.siteUrl}}),e.ws.send({type:`full-reload`});return}i.has(d)&&clearTimeout(i.get(d)),i.set(d,setTimeout(async()=>{i.delete(d);try{let r=He(n),i=await Ve(n);if(Ue(n,i),_(n),r!==void 0&&r!==i){z(),q(e,`routes`),q(e,`search`),q(e,`collections`),e.ws.send({type:`full-reload`});return}let a=m(E.relative(t,n)),o=e.moduleGraph.getModulesByFile(d);if((!o||o.size===0)&&(o=l().get(d.toLowerCase())||null),o&&o.size>0)for(let t of o)e.moduleGraph.invalidateModule(t);else{e.ws.send({type:`full-reload`});return}e.ws.send({type:`custom`,event:`boltdocs:mdx-update`,data:{file:d,relPath:a}})}catch(e){O(`HMR error processing content change:`,e)}},150))}catch(e){O(`HMR error during ${o} event:`,e)}};e.watcher.on(`add`,e=>d(e,`add`)),e.watcher.on(`unlink`,e=>d(e,`unlink`)),e.watcher.on(`change`,e=>d(e,`change`))}function Ke(e){let t=e.toLowerCase();return({file:e})=>{let n=e.toLowerCase();if(n.startsWith(t)&&(u(e)||n.endsWith(`meta.json`)))return[]}}function qe(t,r,i,o,s){return{name:`vite-plugin-boltdocs-dev-server`,apply:`serve`,async configureServer(o){let c=s();await c?.runHook(`beforeDev`),S(t,process.cwd(),i()).catch(e=>{O(`Failed to generate initial link tree:`,e)}),Re(o,t,i),Le(o,t,i),Be(o,t),Ge(o,t,r,i),a((e,t)=>{o.ws.send(e,t)}),e(o),await n(),await c?.runHook(`afterDev`)},hotUpdate:Ke(r)}}const J=new h(`mdx`);function Je(e){let t=ie(e);return async e=>{let n=await t.getHighlighter();A(e,w.ELEMENT,e=>{if(e.tagName!==`pre`)return;let r=e.children?.[0];if(!r||r.type!==w.ELEMENT||r.tagName!==`code`)return;let i=(r.properties?.className||[]).find(e=>e.startsWith(`language-`)),a=i?i.slice(9):re.MDX_DEFAULT_LANG;if(a===`mermaid`)return;let o=le(r.properties?.metastring||r.data?.meta||``),s=t.getOptions(a,o),c=r.children?.[0]?.value??``;try{let t=n.codeToHast(c,s),r=t.type===`root`&&t.children?t.children[0]:t;r&&r.type===`element`&&(e.children=r.children,e.properties={...e.properties||{},...r.properties||{},[C.HIGHLIGHTED]:`true`,[C.LANG]:a})}catch(t){O(`[rehypeShiki] Failed to highlight code block:`,t);let n=e.properties??={};n.className=[...Array.isArray(n.className)?n.className:[],ae.FALLBACK],n[C.HIGHLIGHTED]=`false`,n[C.LANG]=a}return o.title&&((e.properties??={})[C.TITLE]=o.title),ce})}}function Ye(){return e=>{A(e,w.CODE,e=>{e.meta&&ue(e,`metastring`,e.meta)})}}let Xe=!1;function Ze(e,t,n=me){let r=e?.plugins?.flatMap(e=>e.remarkPlugins||[])||[],i=e?.plugins?.flatMap(e=>e.rehypePlugins||[])||[],a=n({remarkPlugins:[he,ge,Ye,...r],rehypePlugins:[_e,[Je,e],...i],jsxRuntime:`automatic`});return{...a,name:`vite-plugin-boltdocs-mdx`,async buildStart(){Xe||=(await J.load(),!0),a.buildStart&&await a.buildStart.call(this)},async load(e,n){if(e.endsWith(`.md`)||e.endsWith(`.mdx`))try{let n=D.readFileSync(e,`utf-8`),r=t?.();return r&&(n=(await r.runChain(`transformSource`,{code:n,filePath:e})).code),n}catch{return null}return a.load?a.load.call(this,e,n):null},async transform(e,n,r){let[i]=n.split(`?`);if(!i.endsWith(`.md`)&&!i.endsWith(`.mdx`))return a.transform?.call(this,e,n,r);let o=process.env.NODE_ENV===`production`?`prod`:`dev`,s=o===`dev`?`${i}:${p(i)}:${o}:v4`:`${i}:${k.createHash(`md5`).update(e).digest(`hex`)}:${o}:v4`,c=await J.getAsync(s);if(c)return{code:c,map:null};let l=await a.transform.call(this,e,i,r);if(l&&typeof l==`object`&&l.code){let e=l.code,n=t?.();return n&&(e=(await n.runChain(`transformMdx`,{code:e,filePath:i})).code),J.set(s,e),{code:e,map:null}}return l},async buildEnd(){J.save(),await J.flush(),a.buildEnd&&await a.buildEnd.call(this)}}}const Y=T(import.meta.url),Qe=[`react`,`react-dom`,`react-router-dom`,`react-helmet-async`,`@bdocs/ssg`,`jsdom`],$e=[`react/jsx-runtime`,`react/jsx-dev-runtime`,`react-dom/client`];function X(e=Y){try{let e=E.join(process.cwd(),`node_modules/boltdocs/package.json`);return D.existsSync(e)?T(D.realpathSync(e)):T(E.join(process.cwd(),`package.json`))}catch{return e}}function Z(e,t=Y){try{let n=e.split(`/`),r=e.startsWith(`@`)?n.slice(0,2).join(`/`):n[0],i=e.startsWith(`@`)?n.slice(2).join(`/`):n.slice(1).join(`/`),a=``;try{a=t.resolve(`${r}/package.json`)}catch{let e=t.resolve(r),n=E.dirname(e);for(;n&&n!==E.dirname(n);){let e=E.join(n,`package.json`);if(D.existsSync(e)){a=e;break}n=E.dirname(n)}}if(!a)throw Error();let o=E.dirname(a),s=JSON.parse(D.readFileSync(a,`utf-8`)),c=i?`./${i}`:`.`,l=s.exports?.[c]||s.exports?.[i]||``;typeof l==`object`&&l&&(l=l.import||l.default||l.require||``),!l&&!i&&(l=s.module||s.main||`index.js`);let u=E.resolve(o,l);if(D.existsSync(u))return u}catch{}return t.resolve(e)}function Q(e=Y){let t=[],n=X(e),r=new Set([n,e]);for(let e of r){for(let n of Qe)try{let r=[`@bdocs/ssg`,`react-router-dom`,`react-helmet-async`].includes(n)?Z(n,e):e.resolve(n);r&&t.push(D.realpathSync(r))}catch{}for(let n of $e)try{t.push(D.realpathSync(e.resolve(n)))}catch{}}return Array.from(new Set(t)).map(e=>m(e))}const $=T(import.meta.url),et=[`react`,`react-dom`,`react-router-dom`,`react-helmet-async`,`@bdocs/ssg`];function tt(t={},r){let a=E.resolve(process.cwd(),t.docsDir||`docs`),s=m(a),c=r,l,u=!1,d,f=[],p=[];if(c?.plugins?.length)try{let{version:e}=JSON.parse(D.readFileSync(E.resolve(j,`../../../package.json`),`utf-8`)),t=o(c.plugins,e);c.plugins=t,d=new i(t,c),p=t.flatMap(e=>e.vitePlugins||[])}catch{}let h=()=>c,g=e=>{c=e},_=()=>l,v=()=>d;return[{name:`vite-plugin-boltdocs`,enforce:`pre`,async config(e,t){u=t.command===`build`;let n=!!(t.isSsrBuild||e.build?.ssr);if(Object.assign(process.env,fe(t.mode,e.envDir||process.cwd(),``)),c||=await te(a),f.length===0){f=await y(a,c);let e=f.map(e=>e.path),t=(c.base||`/docs`).replace(/\/$/,``);e.includes(t)||e.push(t);let n=ee(a,c);for(let t of n)e.includes(t)||e.push(t);x(c,a,void 0,e),ne(e)}import(`./node/mdx/shiki-adapter.mjs`).then(({getShikiAdapter:e})=>{e(c).getHighlighter().catch(()=>{})}).catch(()=>{});let{version:r}=await import(`./package-CCYEAYeA.mjs`),s=o(c.plugins||[],r);return c.plugins=s,d=new i(s,c,a,void 0,f,l?.build?.outDir||`dist`),p=s.flatMap(e=>e.vitePlugins||[]),u&&await d.runHook(`beforeBuild`),{ssgOptions:{entry:`boltdocs/entry`,htmlEntry:`index.html`,dirStyle:`flat`,includeAllRoutes:!0,mock:!0,script:`async`,beastiesOptions:!1,onPageRendered:async(e,t)=>{if(!d)return t;try{let n=(await d.runChain(`transformHtml`,{html:t,path:e})).html;return n=(await d.runMiddlewareChain(`transformHtml`,{html:n,path:e})).html,n}catch{return t}}},build:{ssrManifest:u},optimizeDeps:{include:[`react`,`react-dom`,`react-dom/client`,`react-router-dom`,`react-helmet-async`,`react-fast-compare`,`invariant`],exclude:[`boltdocs`,`boltdocs/client`]},resolve:{alias:n?[]:[{find:`react-router-dom`,replacement:Z(`react-router-dom`)},{find:`react-helmet-async`,replacement:Z(`react-helmet-async`)},{find:`@bdocs/ssg`,replacement:Z(`@bdocs/ssg`)}],dedupe:[`react`,`react-dom`,...n?[]:[`react-router-dom`,`react-helmet-async`,`@bdocs/ssg`]]},ssr:{external:[`react`,`react-dom`,`react-helmet-async`,`react-router-dom`,`@bdocs/ssg`,`jsdom`,...Q($)],optimizeDeps:{include:[`react-fast-compare`]},noExternal:[]}}},configResolved(e){l=e},resolveId(e,t,n){let r=et.find(t=>e===t||e.startsWith(`${t}/`)||e.includes(`/node_modules/${t}/`)||t.startsWith(`@`)&&e.includes(`/node_modules/${t.replace(`/`,E.sep)}/`));if(r&&n?.ssr&&!E.isAbsolute(e)&&r!==`react`&&r!==`react-dom`){let t=X($),n=e;try{n=[`@bdocs/ssg`,`react-router-dom`,`react-helmet-async`].includes(r)?Z(e,t):t.resolve(e)}catch{try{n=[`@bdocs/ssg`,`react-router-dom`,`react-helmet-async`].includes(r)?Z(e,$):$.resolve(e)}catch{}}try{n=D.realpathSync(n)}catch{}return{id:n,external:!0}}return null},transformIndexHtml:{order:`pre`,handler:e=>N(e,c)},async closeBundle(){!u||l?.build?.ssr||(await d?.runHook(`afterBuild`),await d?.runHook(`buildEnd`))},configurePreviewServer(t){t.middlewares.use(B(h)),t.middlewares.use(Fe(_)),e(t),n().catch(()=>{})}},Pe(t,h,_,a),qe(a,s,h,g,v),...t.turbo?[]:[Ze(c,v)],...t.turbo?[(()=>{let e=null;async function t(){if(!e)try{let{createSatteriMdxPlugin:t}=await import(`./node-BXtqM1uH.mjs`);e=t(c,v)}catch{}return e}return{name:`vite-plugin-boltdocs-satteri-mdx`,enforce:`pre`,async load(e){let n=await t();return n&&n.load?n.load(e):null},async transform(e,n){let r=await t();return r&&r.transform?r.transform(e,n):null},async buildEnd(){let e=await t();e&&e.buildEnd&&await e.buildEnd()}}})()]:[],pe({includePublic:!0}),...p]}export{tt as boltdocsPlugin,X as getBaseRequire,Q as getExternalAbsolutePaths,Z as resolveEsm};
73
+ export default UserLayout;`;throw Error(`[Boltdocs] Layout file not found. A 'layout.tsx' or 'layout.jsx' file is mandatory in your docs directory. Please create one to define your site structure.`)}if(c===`icons`){let e=[`tsx`,`jsx`,`ts`,`js`],t=null;for(let n of e){let e=E.resolve(a,`icons.${n}`);if(D.existsSync(e)){t=e;break}}return t?`import * as icons from '${m(t)}';\nexport default icons;`:`export default {};`}if(c===`search`){if(!I){let e=Ne(await y(a,o));I=`export default ${JSON.stringify(e,null,2)};`}return I}if(c===`client`){let e=j,t=``;for(;e&&e!==E.parse(e).root;){let n=E.join(e,`src/client/index.ts`),r=E.join(e,`dist/client/index.mjs`),i=E.join(e,`client/index.ts`);if(D.existsSync(n)){t=m(n);break}if(D.existsSync(r)){t=m(r);break}if(D.existsSync(i)){t=m(i);break}e=E.dirname(e)}if(!t)throw Error(`[boltdocs] Could not resolve boltdocs/client entry point starting from ${j}`);return`export * from '${t}';`}}}}function B(e){return(t,n,r)=>{let i=e().integrations?.feedback?.custom,a=i?.endpoint||`/api/feedback`;if(!i?.enabled||t.method!==`POST`||t.url?.split(`?`)[0]!==a)return r();let o=``,s=0;t.on(`data`,e=>{if(s+=e.length,s>10240){n.statusCode=413,n.end(JSON.stringify({error:`Request body too large`})),t.destroy();return}o+=e}),t.on(`end`,async()=>{n.setHeader(`Content-Type`,`application/json`);try{let{handleFeedback:e}=await import(`./handler-DzQae4eA.mjs`).then(e=>e.n),t=await e(JSON.parse(o),process.env,{owner:i.owner,repo:i.repo,categorySlug:i.categorySlug});n.statusCode=200,n.end(JSON.stringify(t))}catch(e){n.statusCode=500;let t=e instanceof Error?e.message:`Failed to submit feedback`;n.end(JSON.stringify({error:t}))}})}}function Fe(e){return(t,n,r)=>{let i=t.url||`/`,a=i.split(`?`)[0].split(`#`)[0];if(E.extname(a))return r();let o=e(),s=E.resolve(o?.root||process.cwd(),o?.build?.outDir||`dist`),c=a.replace(/\/$/,``)||`/`,l=E.join(s,c,`index.html`);c!==`/`&&D.existsSync(l)&&(t.url=`${c}/index.html${i.includes(`?`)?`?${i.split(`?`)[1]}`:``}`),r()}}const Ie=/\.(js|css|png|jpe?g|gif|svg|ico|webp|woff2?|ttf|otf|mp4|webm|ogg|mp3|wav|flac|aac|pdf|zip|gz|map|json)$/i;function Le(e,t,n){let r=process.env.NODE_ENV===`production`;e.middlewares.use(B(n)),e.middlewares.use((e,t,i)=>{r&&Object.entries(oe).forEach(([e,n])=>{t.setHeader(e,n)});let a=n();a.security?.enableCSP&&t.setHeader(`Content-Security-Policy`,se(a)),i()}),e.middlewares.use((e,t,n)=>{if(e.url===`/robots.txt`){n();return}n()}),e.middlewares.use(async(t,r,i)=>{let a=t.url?.split(`?`)[0]||`/`,o=t.headers.accept||``,s=n();if(o.includes(`text/html`)&&!Ie.test(a)){let n=M(s);n=N(n,s),n=await e.transformIndexHtml(t.url||`/`,n),r.statusCode=200,r.setHeader(`Content-Type`,`text/html`),r.end(n);return}i()})}const V=[/\/index\./i,/\/getting-started/i,/\/intro/i,/\/readme/i];function H(e){for(let t=0;t<V.length;t++)if(V[t].test(e))return t;return V.length}function Re(e,t,n){setTimeout(async()=>{try{let{generateRoutes:r}=await import(`./routes-BW6zsk7Z.mjs`).then(e=>e.i),i=(await r(t,n())).filter(e=>e.filePath).map(e=>e.filePath).sort((e,t)=>H(e)-H(t));for(let t=0;t<i.length;t+=32){let n=i.slice(t,t+32);await Promise.allSettled(n.map(t=>{let n=E.relative(process.cwd(),t).replace(/\\/g,`/`),r=n.startsWith(`/`)?n:`/${n}`;return e.transformRequest(r)}))}}catch{}},150)}const ze=[`tsx`,`jsx`],U=[`tsx`,`ts`,`jsx`,`js`];function Be(e,t){let n=b.map(e=>E.resolve(process.cwd(),e)),r=ze.map(e=>E.resolve(t,`layout.${e}`)),i=U.map(e=>E.resolve(t,`mdx-components.${e}`)),a=U.map(e=>E.resolve(t,`pages-external/index.${e}`)),o=U.map(e=>E.resolve(t,`icons.${e}`));e.watcher.add([...n,...i,...r,...a,...o])}const W=new Map;function G(e){let{lastUpdated:t,...n}=e;return k.createHash(`md5`).update(JSON.stringify(n)).digest(`hex`)}async function Ve(e){try{let{data:t}=await d(e);return G(t)}catch{return``}}function He(e){let t=W.get(e);if(t===void 0){let n=g.getStale(e);n?.route?.frontmatter&&(t=G(n.route.frontmatter),W.set(e,t))}return t}function Ue(e,t){W.set(e,t)}function We(e){W.delete(e)}const K=[`tsx`,`ts`,`jsx`,`js`];function q(e,t){let n=e.moduleGraph.getModuleById(`\0virtual:boltdocs-${t}.ts`);n&&e.moduleGraph.invalidateModule(n)}function Ge(e,t,n,r){let i=new Map,a=n.toLowerCase(),o=null;function l(){if(o)return o;o=new Map;for(let[t,n]of e.moduleGraph.fileToModulesMap.entries())try{o.set(decodeURIComponent(t).toLowerCase(),n)}catch{}return o}e.watcher.on(`all`,()=>{o=null});let d=async(n,o)=>{try{let d=m(n);if(b.some(e=>d.endsWith(e))){e.restart();return}if(K.some(e=>d.endsWith(`mdx-components.${e}`))){x(r(),t),q(e,`mdx-components.tsx`),e.ws.send({type:`full-reload`});return}if(K.some(e=>d.endsWith(`icons.${e}`))){q(e,`icons.tsx`),e.ws.send({type:`full-reload`});return}if(d.endsWith(`layout.tsx`)||d.endsWith(`layout.jsx`)){q(e,`layout.tsx`),e.ws.send({type:`full-reload`});return}if(d.endsWith(`/post.tsx`)||d.endsWith(`/post.jsx`)||d.endsWith(`/list.tsx`)||d.endsWith(`/list.jsx`)){q(e,`entry`),e.ws.send({type:`full-reload`});return}if(d.includes(`/pages-external/`)||d.includes(`\\pages-external\\`)){q(e,`entry`),e.ws.send({type:`full-reload`});return}if(!d.toLowerCase().startsWith(a))return;let f=d.endsWith(`meta.json`)||d.endsWith(`_meta.json`);if(!f&&!u(d))return;if(o===`add`||o===`unlink`||f){o===`unlink`&&We(n),v(),z(),s(),c(o,d).catch(e=>{O(`Plugin HMR handler error:`,e)});let i=r();x(i,t),q(e,`config`),q(e,`routes`),q(e,`search`),q(e,`collections`),S(t,process.cwd(),i).catch(e=>{O(`Failed to update link tree:`,e)}),e.ws.send({type:`custom`,event:`boltdocs:config-update`,data:{theme:i?.theme,i18n:i?.i18n,versions:i?.versions,siteUrl:i?.siteUrl}}),e.ws.send({type:`full-reload`});return}i.has(d)&&clearTimeout(i.get(d)),i.set(d,setTimeout(async()=>{i.delete(d);try{let r=He(n),i=await Ve(n);if(Ue(n,i),_(n),r!==void 0&&r!==i){z(),q(e,`routes`),q(e,`search`),q(e,`collections`),e.ws.send({type:`full-reload`});return}let a=m(E.relative(t,n)),o=e.moduleGraph.getModulesByFile(d);if((!o||o.size===0)&&(o=l().get(d.toLowerCase())||null),o&&o.size>0)for(let t of o)e.moduleGraph.invalidateModule(t);else{e.ws.send({type:`full-reload`});return}e.ws.send({type:`custom`,event:`boltdocs:mdx-update`,data:{file:d,relPath:a}})}catch(e){O(`HMR error processing content change:`,e)}},150))}catch(e){O(`HMR error during ${o} event:`,e)}};e.watcher.on(`add`,e=>d(e,`add`)),e.watcher.on(`unlink`,e=>d(e,`unlink`)),e.watcher.on(`change`,e=>d(e,`change`))}function Ke(e){let t=e.toLowerCase();return({file:e})=>{let n=e.toLowerCase();if(n.startsWith(t)&&(u(e)||n.endsWith(`meta.json`)))return[]}}function qe(t,r,i,o,s){return{name:`vite-plugin-boltdocs-dev-server`,apply:`serve`,async configureServer(o){let c=s();await c?.runHook(`beforeDev`),S(t,process.cwd(),i()).catch(e=>{O(`Failed to generate initial link tree:`,e)}),Re(o,t,i),Le(o,t,i),Be(o,t),Ge(o,t,r,i),a((e,t)=>{o.ws.send(e,t)}),e(o),await n(),await c?.runHook(`afterDev`)},hotUpdate:Ke(r)}}const J=new h(`mdx`);function Je(e){let t=ie(e);return async e=>{let n=await t.getHighlighter();A(e,w.ELEMENT,e=>{if(e.tagName!==`pre`)return;let r=e.children?.[0];if(!r||r.type!==w.ELEMENT||r.tagName!==`code`)return;let i=(r.properties?.className||[]).find(e=>e.startsWith(`language-`)),a=i?i.slice(9):re.MDX_DEFAULT_LANG;if(a===`mermaid`)return;let o=le(r.properties?.metastring||r.data?.meta||``),s=t.getOptions(a,o),c=r.children?.[0]?.value??``;try{let t=n.codeToHast(c,s),r=t.type===`root`&&t.children?t.children[0]:t;r&&r.type===`element`&&(e.children=r.children,e.properties={...e.properties||{},...r.properties||{},[C.HIGHLIGHTED]:`true`,[C.LANG]:a})}catch(t){O(`[rehypeShiki] Failed to highlight code block:`,t);let n=e.properties??={};n.className=[...Array.isArray(n.className)?n.className:[],ae.FALLBACK],n[C.HIGHLIGHTED]=`false`,n[C.LANG]=a}return o.title&&((e.properties??={})[C.TITLE]=o.title),ce})}}function Ye(){return e=>{A(e,w.CODE,e=>{e.meta&&ue(e,`metastring`,e.meta)})}}let Xe=!1;function Ze(e,t,n=me){let r=e?.plugins?.flatMap(e=>e.remarkPlugins||[])||[],i=e?.plugins?.flatMap(e=>e.rehypePlugins||[])||[],a=n({remarkPlugins:[he,ge,Ye,...r],rehypePlugins:[_e,[Je,e],...i],jsxRuntime:`automatic`});return{...a,name:`vite-plugin-boltdocs-mdx`,async buildStart(){Xe||=(await J.load(),!0),a.buildStart&&await a.buildStart.call(this)},async load(e,n){if(e.endsWith(`.md`)||e.endsWith(`.mdx`))try{let n=D.readFileSync(e,`utf-8`),r=t?.();return r&&(n=(await r.runChain(`transformSource`,{code:n,filePath:e})).code),n}catch{return null}return a.load?a.load.call(this,e,n):null},async transform(e,n,r){let[i]=n.split(`?`);if(!i.endsWith(`.md`)&&!i.endsWith(`.mdx`))return a.transform?.call(this,e,n,r);let o=process.env.NODE_ENV===`production`?`prod`:`dev`,s=o===`dev`?`${i}:${p(i)}:${o}:v4`:`${i}:${k.createHash(`md5`).update(e).digest(`hex`)}:${o}:v4`,c=await J.getAsync(s);if(c)return{code:c,map:null};let l=await a.transform.call(this,e,i,r);if(l&&typeof l==`object`&&l.code){let e=l.code,n=t?.();return n&&(e=(await n.runChain(`transformMdx`,{code:e,filePath:i})).code),J.set(s,e),{code:e,map:null}}return l},async buildEnd(){J.save(),await J.flush(),a.buildEnd&&await a.buildEnd.call(this)}}}const Y=T(import.meta.url),Qe=[`react`,`react-dom`,`react-router-dom`,`react-helmet-async`,`@bdocs/ssg`,`jsdom`],$e=[`react/jsx-runtime`,`react/jsx-dev-runtime`,`react-dom/client`];function X(e=Y){try{let e=E.join(process.cwd(),`node_modules/boltdocs/package.json`);return D.existsSync(e)?T(D.realpathSync(e)):T(E.join(process.cwd(),`package.json`))}catch{return e}}function Z(e,t=Y){try{let n=e.split(`/`),r=e.startsWith(`@`)?n.slice(0,2).join(`/`):n[0],i=e.startsWith(`@`)?n.slice(2).join(`/`):n.slice(1).join(`/`),a=``;try{a=t.resolve(`${r}/package.json`)}catch{let e=t.resolve(r),n=E.dirname(e);for(;n&&n!==E.dirname(n);){let e=E.join(n,`package.json`);if(D.existsSync(e)){a=e;break}n=E.dirname(n)}}if(!a)throw Error();let o=E.dirname(a),s=JSON.parse(D.readFileSync(a,`utf-8`)),c=i?`./${i}`:`.`,l=s.exports?.[c]||s.exports?.[i]||``;typeof l==`object`&&l&&(l=l.import||l.default||l.require||``),!l&&!i&&(l=s.module||s.main||`index.js`);let u=E.resolve(o,l);if(D.existsSync(u))return u}catch{}return t.resolve(e)}function Q(e=Y){let t=[],n=X(e),r=new Set([n,e]);for(let e of r){for(let n of Qe)try{let r=[`@bdocs/ssg`,`react-router-dom`,`react-helmet-async`].includes(n)?Z(n,e):e.resolve(n);r&&t.push(D.realpathSync(r))}catch{}for(let n of $e)try{t.push(D.realpathSync(e.resolve(n)))}catch{}}return Array.from(new Set(t)).map(e=>m(e))}const $=T(import.meta.url),et=[`react`,`react-dom`,`react-router-dom`,`react-helmet-async`,`@bdocs/ssg`];function tt(t={},r){let a=E.resolve(process.cwd(),t.docsDir||`docs`),s=m(a),c=r,l,u=!1,d,f=[],p=[];if(c?.plugins?.length)try{let{version:e}=JSON.parse(D.readFileSync(E.resolve(j,`../../../package.json`),`utf-8`)),t=o(c.plugins,e);c.plugins=t,d=new i(t,c),p=t.flatMap(e=>e.vitePlugins||[])}catch{}let h=()=>c,g=e=>{c=e},_=()=>l,v=()=>d;return[{name:`vite-plugin-boltdocs`,enforce:`pre`,async config(e,t){u=t.command===`build`;let n=!!(t.isSsrBuild||e.build?.ssr);if(Object.assign(process.env,fe(t.mode,e.envDir||process.cwd(),``)),c||=await te(a),f.length===0){f=await y(a,c);let e=f.map(e=>e.path),t=(c.base||`/docs`).replace(/\/$/,``);e.includes(t)||e.push(t);let n=ee(a,c);for(let t of n)e.includes(t)||e.push(t);x(c,a,void 0,e),ne(e)}import(`./node/mdx/shiki-adapter.mjs`).then(({getShikiAdapter:e})=>{e(c).getHighlighter().catch(()=>{})}).catch(()=>{});let{version:r}=await import(`./package-DSSB8B5L.mjs`),s=o(c.plugins||[],r);return c.plugins=s,d=new i(s,c,a,void 0,f,l?.build?.outDir||`dist`),p=s.flatMap(e=>e.vitePlugins||[]),u&&await d.runHook(`beforeBuild`),{ssgOptions:{entry:`boltdocs/entry`,htmlEntry:`index.html`,dirStyle:`flat`,includeAllRoutes:!0,mock:!0,script:`async`,beastiesOptions:!1,onPageRendered:async(e,t)=>{if(!d)return t;try{let n=(await d.runChain(`transformHtml`,{html:t,path:e})).html;return n=(await d.runMiddlewareChain(`transformHtml`,{html:n,path:e})).html,n}catch{return t}}},build:{ssrManifest:u},optimizeDeps:{include:[`react`,`react-dom`,`react-dom/client`,`react-router-dom`,`react-helmet-async`,`react-fast-compare`,`invariant`],exclude:[`boltdocs`,`boltdocs/client`]},resolve:{alias:n?[]:[{find:`react-router-dom`,replacement:Z(`react-router-dom`)},{find:`react-helmet-async`,replacement:Z(`react-helmet-async`)},{find:`@bdocs/ssg`,replacement:Z(`@bdocs/ssg`)}],dedupe:[`react`,`react-dom`,...n?[]:[`react-router-dom`,`react-helmet-async`,`@bdocs/ssg`]]},ssr:{external:[`react`,`react-dom`,`react-helmet-async`,`react-router-dom`,`@bdocs/ssg`,`jsdom`,...Q($)],optimizeDeps:{include:[`react-fast-compare`]},noExternal:[]}}},configResolved(e){l=e},resolveId(e,t,n){let r=et.find(t=>e===t||e.startsWith(`${t}/`)||e.includes(`/node_modules/${t}/`)||t.startsWith(`@`)&&e.includes(`/node_modules/${t.replace(`/`,E.sep)}/`));if(r&&n?.ssr&&!E.isAbsolute(e)&&r!==`react`&&r!==`react-dom`){let t=X($),n=e;try{n=[`@bdocs/ssg`,`react-router-dom`,`react-helmet-async`].includes(r)?Z(e,t):t.resolve(e)}catch{try{n=[`@bdocs/ssg`,`react-router-dom`,`react-helmet-async`].includes(r)?Z(e,$):$.resolve(e)}catch{}}try{n=D.realpathSync(n)}catch{}return{id:n,external:!0}}return null},transformIndexHtml:{order:`pre`,handler:e=>N(e,c)},async closeBundle(){!u||l?.build?.ssr||(await d?.runHook(`afterBuild`),await d?.runHook(`buildEnd`))},configurePreviewServer(t){t.middlewares.use(B(h)),t.middlewares.use(Fe(_)),e(t),n().catch(()=>{})}},Pe(t,h,_,a),qe(a,s,h,g,v),...t.turbo?[]:[Ze(c,v)],...t.turbo?[(()=>{let e=null;async function t(){if(!e)try{let{createSatteriMdxPlugin:t}=await import(`./node-BXtqM1uH.mjs`);e=t(c,v)}catch{}return e}return{name:`vite-plugin-boltdocs-satteri-mdx`,enforce:`pre`,async load(e){let n=await t();return n&&n.load?n.load(e):null},async transform(e,n){let r=await t();return r&&r.transform?r.transform(e,n):null},async buildEnd(){let e=await t();e&&e.buildEnd&&await e.buildEnd()}}})()]:[],pe({includePublic:!0}),...p]}export{tt as boltdocsPlugin,X as getBaseRequire,Q as getExternalAbsolutePaths,Z as resolveEsm};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "boltdocs",
3
- "version": "3.2.1",
3
+ "version": "3.2.2",
4
4
  "description": "A lightweight documentation generator for React projects.",
5
5
  "main": "dist/node/index.mjs",
6
6
  "module": "dist/node/index.mjs",
@@ -103,7 +103,7 @@
103
103
  "zod": "4.3.6",
104
104
  "@bdocs/parser": "1.1.0",
105
105
  "@bdocs/plugin-image-optimizer": "0.2.1",
106
- "@bdocs/ssg": "0.3.0",
106
+ "@bdocs/ssg": "0.3.1",
107
107
  "@bdocs/unist-utils": "0.2.0"
108
108
  },
109
109
  "peerDependencies": {