boltdocs 2.8.1 → 2.8.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.
- package/dist/client/index.cjs +2 -2
- package/dist/client/index.js +2 -2
- package/dist/node/cli-entry.cjs +1 -1
- package/dist/node/cli-entry.mjs +1 -1
- package/dist/node/index.cjs +1 -1
- package/dist/node/index.mjs +1 -1
- package/dist/node/routes/worker.mjs +1 -1
- package/dist/{node-CefnjllX.cjs → node-BfGSXyUz.cjs} +1 -1
- package/dist/{node-DruKROCt.mjs → node-NZrBn5jg.mjs} +2 -2
- package/dist/{package-DpbnBMR1.mjs → package-C1qrHXzn.mjs} +1 -1
- package/dist/{package-CmP_9rJ8.cjs → package-DBz4CSnw.cjs} +1 -1
- package/dist/{parser-B0YtJPDz.mjs → parser-BrkFi6YE.mjs} +1 -1
- package/dist/{routes-rKlxFkqq.mjs → routes-CtQzxiZg.mjs} +1 -1
- package/dist/{routes-ChS-zgzh.mjs → routes-f9J1MQRr.mjs} +1 -1
- package/package.json +2 -2
package/dist/client/index.cjs
CHANGED
|
@@ -1596,7 +1596,7 @@ function buildDocRoutes(options) {
|
|
|
1596
1596
|
const fullP = baseDocsPath === "/" ? sp : `${baseDocsPath}${sp}`;
|
|
1597
1597
|
targetBasePaths.push({
|
|
1598
1598
|
path: fullP,
|
|
1599
|
-
filter: (rp) => rp.startsWith(fullP.replace(/\/$/, "") + "/")
|
|
1599
|
+
filter: (rp) => !!rp && rp.startsWith(fullP.replace(/\/$/, "") + "/")
|
|
1600
1600
|
});
|
|
1601
1601
|
});
|
|
1602
1602
|
const docPathRegistry = new Set(docRoutes.map((r) => (r.path || "").replace(/\/$/, "")));
|
|
@@ -1614,7 +1614,7 @@ function buildDocRoutes(options) {
|
|
|
1614
1614
|
if (!(docPathRegistry.has(normalizedPath) || externalPaths.has(normalizedPath))) {
|
|
1615
1615
|
const defaultTab = config.theme?.tabs?.[0]?.id;
|
|
1616
1616
|
const defaultTabPath = defaultTab ? `${normalizedPath}/${defaultTab}`.replace(/\/+/g, "/") : null;
|
|
1617
|
-
let matchedRouteObj = defaultTabPath && docPathRegistry.has(defaultTabPath.replace(/\/$/, "")) ? docRoutes.find((r) => r.path.replace(/\/$/, "") === defaultTabPath.replace(/\/$/, "")) : docRoutes.find((r) => filter(r.path) && r.path !== normalizedPath);
|
|
1617
|
+
let matchedRouteObj = defaultTabPath && docPathRegistry.has(defaultTabPath.replace(/\/$/, "")) ? docRoutes.find((r) => r.path && r.path.replace(/\/$/, "") === defaultTabPath.replace(/\/$/, "")) : docRoutes.find((r) => r.path && filter(r.path) && r.path !== normalizedPath);
|
|
1618
1618
|
if (!matchedRouteObj && docRoutes.length > 0) matchedRouteObj = docRoutes[0];
|
|
1619
1619
|
if (matchedRouteObj) {
|
|
1620
1620
|
const redirectPath = bPath === baseDocsPath ? "." : bPath.startsWith(baseDocsPath + "/") ? bPath.slice(baseDocsPath.length + 1) : bPath;
|
package/dist/client/index.js
CHANGED
|
@@ -1591,7 +1591,7 @@ function buildDocRoutes(options) {
|
|
|
1591
1591
|
const fullP = baseDocsPath === "/" ? sp : `${baseDocsPath}${sp}`;
|
|
1592
1592
|
targetBasePaths.push({
|
|
1593
1593
|
path: fullP,
|
|
1594
|
-
filter: (rp) => rp.startsWith(fullP.replace(/\/$/, "") + "/")
|
|
1594
|
+
filter: (rp) => !!rp && rp.startsWith(fullP.replace(/\/$/, "") + "/")
|
|
1595
1595
|
});
|
|
1596
1596
|
});
|
|
1597
1597
|
const docPathRegistry = new Set(docRoutes.map((r) => (r.path || "").replace(/\/$/, "")));
|
|
@@ -1609,7 +1609,7 @@ function buildDocRoutes(options) {
|
|
|
1609
1609
|
if (!(docPathRegistry.has(normalizedPath) || externalPaths.has(normalizedPath))) {
|
|
1610
1610
|
const defaultTab = config.theme?.tabs?.[0]?.id;
|
|
1611
1611
|
const defaultTabPath = defaultTab ? `${normalizedPath}/${defaultTab}`.replace(/\/+/g, "/") : null;
|
|
1612
|
-
let matchedRouteObj = defaultTabPath && docPathRegistry.has(defaultTabPath.replace(/\/$/, "")) ? docRoutes.find((r) => r.path.replace(/\/$/, "") === defaultTabPath.replace(/\/$/, "")) : docRoutes.find((r) => filter(r.path) && r.path !== normalizedPath);
|
|
1612
|
+
let matchedRouteObj = defaultTabPath && docPathRegistry.has(defaultTabPath.replace(/\/$/, "")) ? docRoutes.find((r) => r.path && r.path.replace(/\/$/, "") === defaultTabPath.replace(/\/$/, "")) : docRoutes.find((r) => r.path && filter(r.path) && r.path !== normalizedPath);
|
|
1613
1613
|
if (!matchedRouteObj && docRoutes.length > 0) matchedRouteObj = docRoutes[0];
|
|
1614
1614
|
if (matchedRouteObj) {
|
|
1615
1615
|
const redirectPath = bPath === baseDocsPath ? "." : bPath.startsWith(baseDocsPath + "/") ? bPath.slice(baseDocsPath.length + 1) : bPath;
|
package/dist/node/cli-entry.cjs
CHANGED
|
@@ -4,6 +4,6 @@
|
|
|
4
4
|
* Copyright (c) 2026 Jesus Alcala
|
|
5
5
|
* Licensed under the MIT License.
|
|
6
6
|
*/
|
|
7
|
-
const e=require(`../chunk-CU-zTemE.cjs`),t=require(`../doctor-BArviV8X.cjs`),n=require(`../node-
|
|
7
|
+
const e=require(`../chunk-CU-zTemE.cjs`),t=require(`../doctor-BArviV8X.cjs`),n=require(`../node-BfGSXyUz.cjs`);let r=require(`vite`),i=require(`node:path`);i=e.t(i);let a=require(`node:fs`);a=e.t(a);let o=require(`@bdocs/dui`),s=require(`node:fs/promises`);s=e.t(s);let c=require(`@bdocs/ssg/node`),l=require(`cac`);l=e.t(l);function u(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 d=u(process.cwd());function f(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(d,t),r=i.default.relative(d,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 p(e){return e==null?!1:typeof e==`number`?e!==0:typeof e==`string`?e.includes(`w`)||e.includes(`a`)||e.includes(`+`):!0}function m(){let e=a.default.writeFile;a.default.writeFile=function(t,...n){try{f(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=function(e,...n){return f(e),t.call(a.default,e,...n)};let n=a.default.rm;a.default.rm=function(e,...t){try{f(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=function(e,...t){return f(e),r.call(a.default,e,...t)};let i=a.default.unlink;a.default.unlink=function(e,...t){try{f(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=function(e,...t){return f(e),o.call(a.default,e,...t)};let c=a.default.mkdir;a.default.mkdir=function(e,...t){try{f(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=function(e,...t){return f(e),l.call(a.default,e,...t)};let u=a.default.rmdir;a.default.rmdir=function(e,...t){try{f(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=function(e,...t){return f(e),d.call(a.default,e,...t)};let m=a.default.appendFile;a.default.appendFile=function(e,...t){try{f(e)}catch(e){let n=t[t.length-1];if(typeof n==`function`){process.nextTick(()=>n(e));return}throw e}return m.call(a.default,e,...t)};let h=a.default.appendFileSync;a.default.appendFileSync=function(e,...t){return f(e),h.call(a.default,e,...t)};let g=a.default.copyFile;a.default.copyFile=function(e,t,...n){try{f(e),f(t)}catch(e){let t=n[n.length-1];if(typeof t==`function`){process.nextTick(()=>t(e));return}throw e}return g.call(a.default,e,t,...n)};let _=a.default.copyFileSync;a.default.copyFileSync=function(e,t,...n){return f(e),f(t),_.call(a.default,e,t,...n)};let v=a.default.rename;a.default.rename=function(e,t,...n){try{f(e),f(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=function(e,t,...n){return f(e),f(t),y.call(a.default,e,t,...n)};let b=a.default.createWriteStream;a.default.createWriteStream=function(e,...t){return f(e),b.call(a.default,e,...t)};let x=a.default.open;a.default.open=function(e,t,...n){if(p(typeof t==`function`?void 0:t))try{f(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=function(e,t,...n){return p(t)&&f(e),S.call(a.default,e,t,...n)};let C=e=>{if(!e)return;let t=e.writeFile;t&&(e.writeFile=async function(n,...r){return f(n),t.call(e,n,...r)});let n=e.rm;n&&(e.rm=async function(t,...r){return f(t),n.call(e,t,...r)});let r=e.mkdir;r&&(e.mkdir=async function(t,...n){return f(t),r.call(e,t,...n)});let i=e.rmdir;i&&(e.rmdir=async function(t,...n){return f(t),i.call(e,t,...n)});let a=e.unlink;a&&(e.unlink=async function(t,...n){return f(t),a.call(e,t,...n)});let o=e.appendFile;o&&(e.appendFile=async function(t,...n){return f(t),o.call(e,t,...n)});let s=e.copyFile;s&&(e.copyFile=async function(t,n,...r){return f(t),f(n),s.call(e,t,n,...r)});let c=e.rename;c&&(e.rename=async function(t,n,...r){return f(t),f(n),c.call(e,t,n,...r)});let l=e.open;l&&(e.open=async function(t,n,...r){return p(n)&&f(t),l.call(e,t,n,...r)})};C(a.default.promises),C(s.default)}let h=!1;async function g(e=process.cwd()){if(!h){h=!0,t.d();try{n.S(await t.p(i.default.resolve(e,`docs`),e),e)}catch{}try{let t=await n.n(e,`development`);t.logLevel=`warn`,t.clearScreen=!1;let r=await(0,c.createServer)(t);await r.listen();let i=r.resolvedUrls;console.log((0,o.devServer)(i?.local?.[0]??`http://localhost:5173`,i?.network?.[0]??null)),r.bindCLIShortcuts({print:!1})}catch(e){(0,o.error)(`Failed to start dev server:`,e),process.exit(1)}}}async function _(e=process.cwd()){t.d();try{let t=await n.x().run({root:e,timing:{}});t.success||((0,o.error)(`Build failed at step "${t.failedStep}":`,t.error),process.exit(1)),(0,o.success)(`SSG build completed successfully in ${Math.round(t.timing.total)}ms!`),process.exit(0)}catch(e){(0,o.error)(`Build failed:`,e),process.exit(1)}}async function v(e=process.cwd()){try{let t=await createViteConfig(e,`production`);t.logLevel=`warn`,t.clearScreen=!1;let n=await(0,r.preview)(t),i=n.resolvedUrls;console.log(n(i?.local?.[0]??`http://localhost:4173`,i?.network?.[0]??null))}catch(e){(0,o.error)(`Failed to start preview server:`,e),process.exit(1)}}function y(e){let t=[];if(!a.default.existsSync(e))return t;try{let n=a.default.readdirSync(e);for(let r of n){let n=i.default.join(e,r);a.default.statSync(n).isDirectory()?r!==`node_modules`&&r!==`.git`&&r!==`dist`&&r!==`coverage`&&t.push(...y(n)):/\.(js|mjs|cjs|ts|tsx|jsx)$/.test(r)&&t.push(n)}}catch{}return t}async function b(e=process.cwd()){(0,o.info)(`Starting static security audit of Boltdocs plugins...`);let n;try{n=await t.p(i.default.resolve(e,`docs`),e)}catch(e){(0,o.error)(`Failed to load Boltdocs configuration for audit:`,e),process.exit(1)}let r=n.plugins||[];if(r.length===0){(0,o.success)(`No plugins configured. Nothing to audit.`);return}let s=[];for(let t of r){if(!t.name)continue;let n=null;try{let{createRequire:r}=await import(`node:module`),a=r(i.default.resolve(e,`package.json`)).resolve(`${t.name}/package.json`);n=i.default.dirname(a)}catch{let r=i.default.resolve(e,`node_modules`,t.name);a.default.existsSync(r)&&(n=r)}if(!n){s.push({name:o.colors.cyan(t.name),status:o.colors.red(`❓ Unresolved`),details:`Could not locate plugin files in node_modules.`});continue}let r=y(n),c=[];for(let e of r)try{let t=a.default.readFileSync(e,`utf-8`);t.includes(`fetch(`)&&c.push(`fetch`),t.includes(`axios`)&&c.push(`axios`),t.includes(`http.request`)&&c.push(`http.request`),t.includes(`https.request`)&&c.push(`https.request`),t.includes(`process.env`)&&c.push(`process.env`)}catch{}let l=Array.from(new Set(c));l.length>0?s.push({name:o.colors.cyan(t.name),status:o.colors.yellow(`⚠️ Warning`),details:`Contains network/env accesses: ${o.colors.bold(l.join(`, `))}. Ensure you trust the author.`}):s.push({name:o.colors.cyan(t.name),status:o.colors.green(`✅ Clean`),details:`No external network calls or env accesses detected.`})}let c=[`Plugin`,`Status`,`Audit Notes`],l=s.map(e=>[e.name,e.status,e.details]);console.log(`
|
|
8
8
|
`+(0,o.table)(c,l)+`
|
|
9
9
|
`),s.some(e=>e.status.includes(`Warning`))?(0,o.warn)(`⚠️ One or more plugins have security warnings. Review the flags above.`):(0,o.success)(`✓ All plugins passed the static security check!`)}process.noDeprecation=!0,m(),(0,o.configure)({prefix:`boltdocs`,devServerTitle:`boltdocs dev server`,previewServerTitle:`boltdocs preview server`,updateCommand:`pnpm add boltdocs@latest`});const x=(0,l.default)(`boltdocs`);x.command(`dev [root]`,`Start development server`).action(g),x.command(`[root]`,`Start development server`).action(g),x.command(`build [root]`,`Build for production`).action(_),x.command(`preview [root]`,`Preview production build`).action(v),x.command(`audit [root]`,`Audit configured plugins for security warnings`).action(b),x.command(`doctor [root]`,`Check the health of your documentation`).option(`--fix`,`Automatically fix broken internal links and sync translations`).option(`--check-external`,`Verify external links (slower)`).option(`--init`,`Initialize doctor.json with default configuration`).option(`--budget`,`Check build performance against configured budgets`).action(async(e,t)=>{let{doctorAction:n}=await Promise.resolve().then(()=>require(`../doctor-DyNUVe96.cjs`));await n(e,t)}),x.command(`generate-changelog <file>`,`Generate changelog documentation from CHANGELOG.md`).option(`-o, --output <path>`,`Output folder (default: docs/changelog)`,{default:`docs/changelog`}).option(`-t, --title <text>`,`Title for changelog pages`,{default:`Changelog`}).option(`--infer-tab`,`Infer tab from folder name (default: true)`,{default:!0}).option(`-l, --limit <number>`,`Limit number of versions to generate`).action(async(e,t)=>{let{generateChangelog:n}=await Promise.resolve().then(()=>require(`../generator-CC2yHzhZ.cjs`));await n(e,{output:t.output,title:t.title,inferTab:t.inferTab,limit:t.limit?parseInt(String(t.limit),10):void 0})}),x.help(),x.version(`2.0.0`),x.parse();
|
package/dist/node/cli-entry.mjs
CHANGED
|
@@ -4,6 +4,6 @@
|
|
|
4
4
|
* Copyright (c) 2026 Jesus Alcala
|
|
5
5
|
* Licensed under the MIT License.
|
|
6
6
|
*/
|
|
7
|
-
import{C as e,n as t,w as n}from"../node-
|
|
7
|
+
import{C as e,n as t,w as n}from"../node-NZrBn5jg.mjs";import{d as r,p as i}from"../doctor-CgLA7_Uv.mjs";import{preview as a}from"vite";import o from"node:path";import s from"node:fs";import{colors as c,configure as l,devServer as u,error as d,info as f,success as p,table as m,warn as h}from"@bdocs/dui";import g from"node:fs/promises";import{createServer as _}from"@bdocs/ssg/node";import v from"cac";function y(e){let t=e;for(;t&&t!==o.dirname(t);){if(s.existsSync(o.join(t,`.git`))||s.existsSync(o.join(t,`pnpm-workspace.yaml`)))return t;t=o.dirname(t)}t=e;let n=e;for(;t&&t!==o.dirname(t);)s.existsSync(o.join(t,`package.json`))&&(n=t),t=o.dirname(t);return n}let b=y(process.cwd());function x(e){if(!e)return;let t;if(typeof e==`string`)t=e;else if(e instanceof URL){if(e.protocol!==`file:`)return;t=e.pathname}else if(Buffer.isBuffer(e))t=e.toString();else return;let n=o.resolve(b,t),r=o.relative(b,n),i=r.startsWith(`..`)||o.isAbsolute(r),a=n.split(o.sep),s=a.some(e=>e.startsWith(`.env`)),c=a.some((e,t)=>{if(e===`node_modules`){let e=a[t+1];return!e||!e.startsWith(`.`)}return!1});if(i||s||c)throw Error(`[Boltdocs Security] Write/delete operation blocked on path: "${n}". Modifications are restricted to the project root, and cannot access .env or non-cache node_modules folders.`)}function S(e){return e==null?!1:typeof e==`number`?e!==0:typeof e==`string`?e.includes(`w`)||e.includes(`a`)||e.includes(`+`):!0}function C(){let e=s.writeFile;s.writeFile=function(t,...n){try{x(t)}catch(e){let t=n[n.length-1];if(typeof t==`function`){process.nextTick(()=>t(e));return}throw e}return e.call(s,t,...n)};let t=s.writeFileSync;s.writeFileSync=function(e,...n){return x(e),t.call(s,e,...n)};let n=s.rm;s.rm=function(e,...t){try{x(e)}catch(e){let n=t[t.length-1];if(typeof n==`function`){process.nextTick(()=>n(e));return}throw e}return n.call(s,e,...t)};let r=s.rmSync;s.rmSync=function(e,...t){return x(e),r.call(s,e,...t)};let i=s.unlink;s.unlink=function(e,...t){try{x(e)}catch(e){let n=t[t.length-1];if(typeof n==`function`){process.nextTick(()=>n(e));return}throw e}return i.call(s,e,...t)};let a=s.unlinkSync;s.unlinkSync=function(e,...t){return x(e),a.call(s,e,...t)};let o=s.mkdir;s.mkdir=function(e,...t){try{x(e)}catch(e){let n=t[t.length-1];if(typeof n==`function`){process.nextTick(()=>n(e));return}throw e}return o.call(s,e,...t)};let c=s.mkdirSync;s.mkdirSync=function(e,...t){return x(e),c.call(s,e,...t)};let l=s.rmdir;s.rmdir=function(e,...t){try{x(e)}catch(e){let n=t[t.length-1];if(typeof n==`function`){process.nextTick(()=>n(e));return}throw e}return l.call(s,e,...t)};let u=s.rmdirSync;s.rmdirSync=function(e,...t){return x(e),u.call(s,e,...t)};let d=s.appendFile;s.appendFile=function(e,...t){try{x(e)}catch(e){let n=t[t.length-1];if(typeof n==`function`){process.nextTick(()=>n(e));return}throw e}return d.call(s,e,...t)};let f=s.appendFileSync;s.appendFileSync=function(e,...t){return x(e),f.call(s,e,...t)};let p=s.copyFile;s.copyFile=function(e,t,...n){try{x(e),x(t)}catch(e){let t=n[n.length-1];if(typeof t==`function`){process.nextTick(()=>t(e));return}throw e}return p.call(s,e,t,...n)};let m=s.copyFileSync;s.copyFileSync=function(e,t,...n){return x(e),x(t),m.call(s,e,t,...n)};let h=s.rename;s.rename=function(e,t,...n){try{x(e),x(t)}catch(e){let t=n[n.length-1];if(typeof t==`function`){process.nextTick(()=>t(e));return}throw e}return h.call(s,e,t,...n)};let _=s.renameSync;s.renameSync=function(e,t,...n){return x(e),x(t),_.call(s,e,t,...n)};let v=s.createWriteStream;s.createWriteStream=function(e,...t){return x(e),v.call(s,e,...t)};let y=s.open;s.open=function(e,t,...n){if(S(typeof t==`function`?void 0:t))try{x(e)}catch(e){let r=n[n.length-1],i=typeof t==`function`?t:typeof r==`function`?r:void 0;if(i){process.nextTick(()=>i(e));return}throw e}return y.call(s,e,t,...n)};let b=s.openSync;s.openSync=function(e,t,...n){return S(t)&&x(e),b.call(s,e,t,...n)};let C=e=>{if(!e)return;let t=e.writeFile;t&&(e.writeFile=async function(n,...r){return x(n),t.call(e,n,...r)});let n=e.rm;n&&(e.rm=async function(t,...r){return x(t),n.call(e,t,...r)});let r=e.mkdir;r&&(e.mkdir=async function(t,...n){return x(t),r.call(e,t,...n)});let i=e.rmdir;i&&(e.rmdir=async function(t,...n){return x(t),i.call(e,t,...n)});let a=e.unlink;a&&(e.unlink=async function(t,...n){return x(t),a.call(e,t,...n)});let o=e.appendFile;o&&(e.appendFile=async function(t,...n){return x(t),o.call(e,t,...n)});let s=e.copyFile;s&&(e.copyFile=async function(t,n,...r){return x(t),x(n),s.call(e,t,n,...r)});let c=e.rename;c&&(e.rename=async function(t,n,...r){return x(t),x(n),c.call(e,t,n,...r)});let l=e.open;l&&(e.open=async function(t,n,...r){return S(n)&&x(t),l.call(e,t,n,...r)})};C(s.promises),C(g)}let w=!1;async function T(e=process.cwd()){if(!w){w=!0,r();try{n(await i(o.resolve(e,`docs`),e),e)}catch{}try{let n=await t(e,`development`);n.logLevel=`warn`,n.clearScreen=!1;let r=await _(n);await r.listen();let i=r.resolvedUrls;console.log(u(i?.local?.[0]??`http://localhost:5173`,i?.network?.[0]??null)),r.bindCLIShortcuts({print:!1})}catch(e){d(`Failed to start dev server:`,e),process.exit(1)}}}async function E(t=process.cwd()){r();try{let n=await e().run({root:t,timing:{}});n.success||(d(`Build failed at step "${n.failedStep}":`,n.error),process.exit(1)),p(`SSG build completed successfully in ${Math.round(n.timing.total)}ms!`),process.exit(0)}catch(e){d(`Build failed:`,e),process.exit(1)}}async function D(e=process.cwd()){try{let t=await createViteConfig(e,`production`);t.logLevel=`warn`,t.clearScreen=!1;let n=await a(t),r=n.resolvedUrls;console.log(n(r?.local?.[0]??`http://localhost:4173`,r?.network?.[0]??null))}catch(e){d(`Failed to start preview server:`,e),process.exit(1)}}function O(e){let t=[];if(!s.existsSync(e))return t;try{let n=s.readdirSync(e);for(let r of n){let n=o.join(e,r);s.statSync(n).isDirectory()?r!==`node_modules`&&r!==`.git`&&r!==`dist`&&r!==`coverage`&&t.push(...O(n)):/\.(js|mjs|cjs|ts|tsx|jsx)$/.test(r)&&t.push(n)}}catch{}return t}async function k(e=process.cwd()){f(`Starting static security audit of Boltdocs plugins...`);let t;try{t=await i(o.resolve(e,`docs`),e)}catch(e){d(`Failed to load Boltdocs configuration for audit:`,e),process.exit(1)}let n=t.plugins||[];if(n.length===0){p(`No plugins configured. Nothing to audit.`);return}let r=[];for(let t of n){if(!t.name)continue;let n=null;try{let{createRequire:r}=await import(`node:module`),i=r(o.resolve(e,`package.json`)).resolve(`${t.name}/package.json`);n=o.dirname(i)}catch{let r=o.resolve(e,`node_modules`,t.name);s.existsSync(r)&&(n=r)}if(!n){r.push({name:c.cyan(t.name),status:c.red(`❓ Unresolved`),details:`Could not locate plugin files in node_modules.`});continue}let i=O(n),a=[];for(let e of i)try{let t=s.readFileSync(e,`utf-8`);t.includes(`fetch(`)&&a.push(`fetch`),t.includes(`axios`)&&a.push(`axios`),t.includes(`http.request`)&&a.push(`http.request`),t.includes(`https.request`)&&a.push(`https.request`),t.includes(`process.env`)&&a.push(`process.env`)}catch{}let l=Array.from(new Set(a));l.length>0?r.push({name:c.cyan(t.name),status:c.yellow(`⚠️ Warning`),details:`Contains network/env accesses: ${c.bold(l.join(`, `))}. Ensure you trust the author.`}):r.push({name:c.cyan(t.name),status:c.green(`✅ Clean`),details:`No external network calls or env accesses detected.`})}let a=[`Plugin`,`Status`,`Audit Notes`],l=r.map(e=>[e.name,e.status,e.details]);console.log(`
|
|
8
8
|
`+m(a,l)+`
|
|
9
9
|
`),r.some(e=>e.status.includes(`Warning`))?h(`⚠️ One or more plugins have security warnings. Review the flags above.`):p(`✓ All plugins passed the static security check!`)}process.noDeprecation=!0,C(),l({prefix:`boltdocs`,devServerTitle:`boltdocs dev server`,previewServerTitle:`boltdocs preview server`,updateCommand:`pnpm add boltdocs@latest`});const A=v(`boltdocs`);A.command(`dev [root]`,`Start development server`).action(T),A.command(`[root]`,`Start development server`).action(T),A.command(`build [root]`,`Build for production`).action(E),A.command(`preview [root]`,`Preview production build`).action(D),A.command(`audit [root]`,`Audit configured plugins for security warnings`).action(k),A.command(`doctor [root]`,`Check the health of your documentation`).option(`--fix`,`Automatically fix broken internal links and sync translations`).option(`--check-external`,`Verify external links (slower)`).option(`--init`,`Initialize doctor.json with default configuration`).option(`--budget`,`Check build performance against configured budgets`).action(async(e,t)=>{let{doctorAction:n}=await import(`../doctor-aN_leTbh.mjs`);await n(e,t)}),A.command(`generate-changelog <file>`,`Generate changelog documentation from CHANGELOG.md`).option(`-o, --output <path>`,`Output folder (default: docs/changelog)`,{default:`docs/changelog`}).option(`-t, --title <text>`,`Title for changelog pages`,{default:`Changelog`}).option(`--infer-tab`,`Infer tab from folder name (default: true)`,{default:!0}).option(`-l, --limit <number>`,`Limit number of versions to generate`).action(async(e,t)=>{let{generateChangelog:n}=await import(`../generator-BHCrLU6h.mjs`);await n(e,{output:t.output,title:t.title,inferTab:t.inferTab,limit:t.limit?parseInt(String(t.limit),10):void 0})}),A.help(),A.version(`2.0.0`),A.parse();export{};
|
package/dist/node/index.cjs
CHANGED
|
@@ -3,4 +3,4 @@
|
|
|
3
3
|
* Copyright (c) 2026 Jesus Alcala
|
|
4
4
|
* Licensed under the MIT License.
|
|
5
5
|
*/
|
|
6
|
-
Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}}),require(`../chunk-CU-zTemE.cjs`);const e=require(`../utils-Cjmx1hhk.cjs`),t=require(`../doctor-BArviV8X.cjs`),n=require(`../node-
|
|
6
|
+
Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}}),require(`../chunk-CU-zTemE.cjs`);const e=require(`../utils-Cjmx1hhk.cjs`),t=require(`../doctor-BArviV8X.cjs`),n=require(`../node-BfGSXyUz.cjs`);let r=require(`unist-util-visit`);exports.BoltdocsPluginStore=n.w,exports.EXIT=r.EXIT,exports.MDX_NODES=n.y,exports.PluginCompatibilityError=n.T,exports.PluginError=n.E,exports.PluginHookError=n.D,exports.PluginLifecycleManager=n.b,exports.PluginValidationError=n.O,exports.SKIP=r.SKIP,exports.addNodeClass=n.a,exports.createMdxAttribute=n.o,exports.createMdxElement=n.s,exports.createPlugin=n.i,exports.createRehypeElement=n.c,exports.createViteConfig=n.n,exports.default=n.t,exports.defineConfig=t.m,exports.generateEntryCode=n.r,exports.getNodeProperty=n.l,exports.hasNodeClass=n.u,exports.normalizePath=e.u,exports.parseMetaString=n.v,exports.removeNodeClass=n.d,exports.resolveConfig=t.p,exports.sanitizeFilename=e.f,exports.setNodeProperty=n.f,exports.validatePlugins=n.C,exports.visitMdxElements=n.p,exports.visitNodes=n.m,exports.visitRehypeElements=n.h,exports.visitRemarkHeadings=n.g,exports.visitRemarkLinks=n._;
|
package/dist/node/index.mjs
CHANGED
|
@@ -3,4 +3,4 @@
|
|
|
3
3
|
* Copyright (c) 2026 Jesus Alcala
|
|
4
4
|
* Licensed under the MIT License.
|
|
5
5
|
*/
|
|
6
|
-
import{A as e,D as t,E as n,O as r,S as i,T as a,_ as o,a as s,b as c,c as l,d as u,f as d,g as f,h as p,i as m,k as h,l as g,m as _,n as v,o as y,p as b,r as x,s as S,t as C,u as w,v as T,x as E,y as D}from"../node-
|
|
6
|
+
import{A as e,D as t,E as n,O as r,S as i,T as a,_ as o,a as s,b as c,c as l,d as u,f as d,g as f,h as p,i as m,k as h,l as g,m as _,n as v,o as y,p as b,r as x,s as S,t as C,u as w,v as T,x as E,y as D}from"../node-NZrBn5jg.mjs";import{f as O,u as k}from"../utils-BYITg7T5.mjs";import{m as A,p as j}from"../doctor-CgLA7_Uv.mjs";export{n as BoltdocsPluginStore,s as EXIT,E as MDX_NODES,t as PluginCompatibilityError,r as PluginError,h as PluginHookError,i as PluginLifecycleManager,e as PluginValidationError,y as SKIP,S as addNodeClass,l as createMdxAttribute,g as createMdxElement,m as createPlugin,w as createRehypeElement,v as createViteConfig,C as default,A as defineConfig,x as generateEntryCode,u as getNodeProperty,d as hasNodeClass,k as normalizePath,c as parseMetaString,b as removeNodeClass,j as resolveConfig,O as sanitizeFilename,_ as setNodeProperty,a as validatePlugins,p as visitMdxElements,f as visitNodes,o as visitRehypeElements,T as visitRemarkHeadings,D as visitRemarkLinks};
|
|
@@ -3,4 +3,4 @@
|
|
|
3
3
|
* Copyright (c) 2026 Jesus Alcala
|
|
4
4
|
* Licensed under the MIT License.
|
|
5
5
|
*/
|
|
6
|
-
import{n as e}from"../../parser-
|
|
6
|
+
import{n as e}from"../../parser-BrkFi6YE.mjs";import{parentPort as t}from"node:worker_threads";if(!t)throw Error(`This file must be run as a worker thread.`);t.on(`message`,async n=>{if(n.type===`PARSE_FILE`)try{let r=await e(n.file,n.docsDir,n.basePath,n.config);t?.postMessage({type:`SUCCESS`,file:n.file,result:r})}catch(e){t?.postMessage({type:`ERROR`,file:n.file,error:e.message||`Unknown parsing error`})}});export{};
|
|
@@ -156,4 +156,4 @@ ${g}
|
|
|
156
156
|
const mdxComponents = components.default || components;
|
|
157
157
|
export default mdxComponents;
|
|
158
158
|
export * from '${e}';`}return`export default {};`}if(s===`layout`){let e=[`tsx`,`jsx`],n=null;for(let t of e){let e=c.default.resolve(a,`layout.${t}`);if(l.default.existsSync(e)){n=e;break}}if(n)return`import UserLayout from '${t.u(n)}';
|
|
159
|
-
export default UserLayout;`;throw Error(`[Boltdocs] Layout file not found. A 'layout.tsx' or 'layout.jsx' file is mandatory in your docs directory. Please create one to define your site structure.`)}if(s===`icons`){let e=[`tsx`,`jsx`,`ts`,`js`],n=null;for(let t of e){let e=c.default.resolve(a,`icons.${t}`);if(l.default.existsSync(e)){n=e;break}}return n?`import * as icons from '${t.u(n)}';\nexport default icons;`:`export default {};`}if(s===`search`){if(!J){let e=rt(await r.t(a,o));J=`export default ${JSON.stringify(e,null,2)};`}return J}if(s===`client`){let e=__dirname,n=``;for(;e&&e!==c.default.parse(e).root;){let r=c.default.join(e,`src/client/index.ts`),i=c.default.join(e,`dist/client/index.mjs`),a=c.default.join(e,`client/index.ts`);if(l.default.existsSync(r)){n=t.u(r);break}if(l.default.existsSync(i)){n=t.u(i);break}if(l.default.existsSync(a)){n=t.u(a);break}e=c.default.dirname(e)}if(!n)throw Error(`[boltdocs] Could not resolve boltdocs/client entry point starting from ${__dirname}`);return`export * from '${n}';`}}}}const ot={"X-Content-Type-Options":`nosniff`,"X-Frame-Options":`DENY`,"X-XSS-Protection":`1; mode=block`,"Referrer-Policy":`strict-origin-when-cross-origin`,"Permissions-Policy":`camera=(), microphone=(), geolocation=()`,"Strict-Transport-Security":`max-age=31536000; includeSubDomains`};function st(e){let t=process.env.NODE_ENV===`development`,n={"default-src":[`'self'`],"script-src":[`'self'`,`'unsafe-inline'`],"style-src":[`'self'`,`'unsafe-inline'`],"img-src":[`'self'`,`data:`,`https:`],"font-src":[`'self'`],"connect-src":[`'self'`]};return t&&(n[`script-src`]=[`'self'`,`'unsafe-eval'`,`'unsafe-inline'`],n[`style-src`]=[`'self'`,`'unsafe-inline'`]),Object.entries(n).map(([e,t])=>`${e} ${t.join(` `)}`).join(`; `)}const ct=/\.(js|css|png|jpe?g|gif|svg|ico|webp|woff2?|ttf|otf|mp4|webm|ogg|mp3|wav|flac|aac|pdf|zip|gz|map|json)$/i;function lt(e,t){let n=process.env.NODE_ENV===`production`;e.middlewares.use((e,r,i)=>{n&&Object.entries(ot).forEach(([e,t])=>{r.setHeader(e,t)});let a=t();a.security?.enableCSP&&r.setHeader(`Content-Security-Policy`,st(a)),i()}),e.middlewares.use((e,t,n)=>{if(e.url===`/robots.txt`){n();return}n()}),e.middlewares.use(async(n,r,i)=>{let a=n.url?.split(`?`)[0]||`/`,o=n.headers.accept||``,s=t();if(o.includes(`text/html`)&&!ct.test(a)){let t=ue(s);t=de(t,s),t=await e.transformIndexHtml(n.url||`/`,t),r.statusCode=200,r.setHeader(`Content-Type`,`text/html`),r.end(t);return}i()})}function ut(e,t,n){setTimeout(async()=>{try{let{generateRoutes:r}=await Promise.resolve().then(()=>require(`./routes-DJNJ-rTt.cjs`)),i=(await r(t,n())).filter(e=>e.filePath).map(e=>e.filePath);for(let t=0;t<i.length;t+=8){let n=i.slice(t,t+8);await Promise.allSettled(n.map(t=>{let n=c.default.relative(process.cwd(),t).replace(/\\/g,`/`),r=n.startsWith(`/`)?n:`/${n}`;return e.transformRequest(r)}))}}catch{}},1e3)}const dt=[`tsx`,`jsx`],ft=[`tsx`,`ts`,`jsx`,`js`];function pt(e,t){let n=i.f.map(e=>c.default.resolve(process.cwd(),e)),r=dt.map(e=>c.default.resolve(t,`layout.${e}`)),a=ft.map(e=>c.default.resolve(t,`mdx-components.${e}`)),o=ft.map(e=>c.default.resolve(t,`pages-external/index.${e}`)),s=ft.map(e=>c.default.resolve(t,`icons.${e}`));e.watcher.add([...n,...a,...r,...o,...s])}const Y=new Map;function mt(e){let{lastUpdated:t,...n}=e;return f.default.createHash(`md5`).update(JSON.stringify(n)).digest(`hex`)}async function ht(e){try{let{data:n}=await t.d(e);return mt(n)}catch{return``}}function gt(e){let t=Y.get(e);if(t===void 0){let n=r.r.get(e);n?.route?.frontmatter&&(t=mt(n.route.frontmatter),Y.set(e,t))}return t}function _t(e,t){Y.set(e,t)}function vt(e){Y.delete(e)}const yt=[`tsx`,`ts`,`jsx`,`js`];function X(e,t){let n=e.moduleGraph.getModuleById(`\0virtual:boltdocs-${t}.ts`);n&&e.moduleGraph.invalidateModule(n)}function bt(e,n,a,o){let s=new Map,l=a.toLowerCase(),u=async(a,u)=>{try{let f=t.u(a);if(i.f.some(e=>f.endsWith(e))){e.restart();return}if(yt.some(e=>f.endsWith(`mdx-components.${e}`))){i.h(o(),n),X(e,`mdx-components.tsx`),e.ws.send({type:`full-reload`});return}if(yt.some(e=>f.endsWith(`icons.${e}`))){X(e,`icons.tsx`),e.ws.send({type:`full-reload`});return}if(f.endsWith(`layout.tsx`)||f.endsWith(`layout.jsx`)){X(e,`layout.tsx`),e.ws.send({type:`full-reload`});return}if(f.includes(`/pages-external/`)||f.includes(`\\pages-external\\`)){X(e,`entry`),e.ws.send({type:`full-reload`});return}if(!f.toLowerCase().startsWith(l)||!t.c(f))return;if(u===`add`||u===`unlink`){u===`unlink`&&vt(a),r.n(),it();let t=o();i.h(t,n),X(e,`config`),X(e,`routes`),X(e,`search`),X(e,`collections`),i.c(n,process.cwd(),t).catch(e=>{(0,d.error)(`Failed to update link tree:`,e)}),e.ws.send({type:`custom`,event:`boltdocs:config-update`,data:{theme:t?.theme,i18n:t?.i18n,versions:t?.versions,siteUrl:t?.siteUrl}}),e.ws.send({type:`full-reload`});return}s.has(f)&&clearTimeout(s.get(f)),s.set(f,setTimeout(async()=>{s.delete(f);try{let i=gt(a),o=await ht(a);if(_t(a,o),r.i(a),i!==void 0&&i!==o){X(e,`routes`),X(e,`search`),X(e,`collections`),e.ws.send({type:`full-reload`});return}let s=t.u(c.default.relative(n,a)),l=e.moduleGraph.getModulesByFile(f);if(l&&l.size>0)for(let t of l)e.moduleGraph.invalidateModule(t);else{e.ws.send({type:`full-reload`});return}e.ws.send({type:`custom`,event:`boltdocs:mdx-update`,data:{file:f,relPath:s}})}catch(e){(0,d.error)(`HMR error processing content change:`,e)}},150))}catch(e){(0,d.error)(`HMR error during ${u} event:`,e)}};e.watcher.on(`add`,e=>u(e,`add`)),e.watcher.on(`unlink`,e=>u(e,`unlink`)),e.watcher.on(`change`,e=>u(e,`change`))}function xt(e){let n=e.toLowerCase();return({file:e})=>{if(e.toLowerCase().startsWith(n)&&t.c(e))return[]}}function St(e,t,n,r,a){return{name:`vite-plugin-boltdocs-dev-server`,apply:`serve`,async configureServer(r){let o=a();await o?.runHook(`beforeDev`),i.c(e,process.cwd(),n()).catch(e=>{(0,d.error)(`Failed to generate initial link tree:`,e)}),ut(r,e,n),lt(r,n),pt(r,e),bt(r,e,t,n),await o?.runHook(`afterDev`)},hotUpdate:xt(t)}}const Z=new n.r(`mdx`);function Ct(e){let t=He(e);return async e=>{let n=await t.getHighlighter();W(e,R.ELEMENT,e=>{if(e.tagName!==`pre`)return;let r=e.children?.[0];if(!r||r.type!==R.ELEMENT||r.tagName!==`code`)return;let i=(r.properties?.className||[]).find(e=>e.startsWith(`language-`)),a=i?i.slice(9):V.MDX_DEFAULT_LANG;if(a===`mermaid`)return;let o=U(r.properties?.metastring||r.data?.meta||``),s=t.getOptions(a,o),c=r.children?.[0]?.value||``;try{let t=n.codeToHast(c,s),r=t.type===`root`?t.children[0]:t;e.children=r.children,e.properties={...e.properties,...r.properties,[z.HIGHLIGHTED]:`true`,[z.LANG]:a}}catch(t){(0,d.error)(`[rehypeShiki] Failed to highlight code block:`,t),e.properties=e.properties||{},e.properties.className=[...e.properties.className||[],B.FALLBACK],e.properties[z.HIGHLIGHTED]=`false`,e.properties[z.LANG]=a}return o.title&&(e.properties[z.TITLE]=o.title),g.SKIP})}}function wt(){return e=>{W(e,R.CODE,e=>{e.meta&&Ge(e,`metastring`,e.meta)})}}let Tt=!1;function Et(e,t,n=A.default){let r=e?.plugins?.flatMap(e=>e.remarkPlugins||[])||[],i=e?.plugins?.flatMap(e=>e.rehypePlugins||[])||[],a=n({remarkPlugins:[j.default,M.default,wt,...r],rehypePlugins:[N.default,[Ct,e],...i],jsxRuntime:`automatic`});return{...a,name:`vite-plugin-boltdocs-mdx`,async buildStart(){Tt||=(await Z.load(),!0),a.buildStart&&await a.buildStart.call(this)},async transform(e,n,r){let[i]=n.split(`?`);if(!i.endsWith(`.md`)&&!i.endsWith(`.mdx`))return a.transform?.call(this,e,n,r);let o=`${i}:${f.default.createHash(`md5`).update(e).digest(`hex`)}:${process.env.NODE_ENV===`production`?`prod`:`dev`}:v3`,s=await Z.getAsync(o);if(s)return{code:s,map:null};let c=await a.transform.call(this,e,i,r);if(c&&typeof c==`object`&&c.code){let e=c.code,n=t?.();return n&&(e=(await n.runChain(`transformMdx`,{code:e,filePath:i})).code),Z.set(o,e),{code:e,map:null}}return c},async buildEnd(){Z.save(),await Z.flush(),a.buildEnd&&await a.buildEnd.call(this)}}}const Q=m.createRequire(require(`url`).pathToFileURL(__filename).href);function Dt(e){try{let e=c.default.join(process.cwd(),`node_modules/boltdocs/package.json`);if(l.default.existsSync(e)){let t=l.default.realpathSync(e);return m.createRequire(t)}else return m.createRequire(c.default.join(process.cwd(),`package.json`))}catch{return e}}function Ot(e){let t=c.default.dirname(e);for(;t&&t!==c.default.dirname(t);){let e=c.default.join(t,`package.json`);if(l.default.existsSync(e))return e;t=c.default.dirname(t)}return null}function kt(e){let t=e.split(`/`);return e.startsWith(`@`)?{packageName:t.slice(0,2).join(`/`),subpath:t.slice(2).join(`/`)}:{packageName:t[0],subpath:t.slice(1).join(`/`)}}function $(e,t=Q){try{let{packageName:n,subpath:r}=kt(e),i;try{i=t.resolve(n+`/package.json`)}catch{i=Ot(t.resolve(n))||``}if(!i)throw Error(`Could not find package.json for ${n}`);let a=c.default.dirname(i),o=JSON.parse(l.default.readFileSync(i,`utf-8`)),s=``,u=r?`./`+r:`.`;if(o.exports){let e=o.exports[u]||o.exports[r];e&&(s=typeof e==`string`?e:e.import||e.default||e.require||e)}if(!s&&!r&&(s=o.module||o.main||`index.js`),typeof s==`object`&&s){let e=s;s=e.import||e.default||e.require||``}if(s){let e=c.default.resolve(a,s);if(l.default.existsSync(e))return e}}catch{}return t.resolve(e)}function At(){let e=[`react`,`react-dom`,`react-router-dom`,`react-helmet-async`,`@bdocs/ssg`,`react-fast-compare`,`invariant`],n=[],r=Dt(Q);for(let t of e)try{let e=``;e=t===`@bdocs/ssg`||t===`react-router-dom`||t===`react-helmet-async`?$(t,r):r.resolve(t),e&&n.push(l.default.realpathSync(e))}catch{}if(r!==Q)for(let t of e)try{let e=``;e=t===`@bdocs/ssg`||t===`react-router-dom`||t===`react-helmet-async`?$(t,Q):Q.resolve(t),e&&n.push(l.default.realpathSync(e))}catch{}for(let e of[`react/jsx-runtime`,`react/jsx-dev-runtime`,`react-dom/client`]){try{n.push(l.default.realpathSync(r.resolve(e)))}catch{}if(r!==Q)try{n.push(l.default.realpathSync(Q.resolve(e)))}catch{}}return Array.from(new Set(n)).map(e=>t.u(e))}function jt(e={},n){let a=c.default.resolve(process.cwd(),e.docsDir||`docs`),o=t.u(a),u=n,d,f=!1,p,m=[],h=()=>u,g=e=>{u=e},te=()=>d,_=()=>p;return[{name:`vite-plugin-boltdocs`,enforce:`pre`,async config(e,t){f=t.command===`build`;let n=!!(t.isSsrBuild||e.build?.ssr),o=e.envDir||process.cwd(),c=(0,s.loadEnv)(t.mode,o,``);if(Object.assign(process.env,c),!u){u=await i.p(a);let e=(await r.t(a,u)).map(e=>e.path),t=(u.base||`/docs`).replace(/\/$/,``);e.includes(t)||e.push(t),i.h(u,a,void 0,e),i.g(e)}let l=(await Promise.resolve().then(()=>require(`./package-CmP_9rJ8.cjs`))).version,d=he(u.plugins||[],l);return u.plugins=d,p=new Oe(d,u),m=d.flatMap(e=>e.vitePlugins||[]),f&&await p.runHook(`beforeBuild`),{ssgOptions:{entry:`boltdocs/entry`,htmlEntry:`index.html`,dirStyle:`flat`,includeAllRoutes:!0,mock:!0,script:`async`,beastiesOptions:{preload:`media`}},build:{ssrManifest:f},optimizeDeps:{include:[`react`,`react-dom`,`react-dom/client`,`react-router-dom`,`react-helmet-async`,`react-fast-compare`,`invariant`],exclude:[`boltdocs`,`boltdocs/client`]},resolve:{alias:[{find:`react-router-dom`,replacement:$(`react-router-dom`)},{find:`react-helmet-async`,replacement:$(`react-helmet-async`)},{find:`@bdocs/ssg`,replacement:$(`@bdocs/ssg`)}],dedupe:[`react`,`react-dom`,...n?[]:[`react-router-dom`,`react-helmet-async`,`@bdocs/ssg`]]},ssr:{external:[`react`,`react-dom`,`react-helmet-async`,`@bdocs/ssg`,`react-fast-compare`,`invariant`,...At()],optimizeDeps:{include:[`react-fast-compare`,`invariant`]},noExternal:[`react-router-dom`]}}},configResolved(e){d=e},resolveId(e,t,n){let r=[`react`,`react-dom`,`react-router-dom`,`react-helmet-async`,`@bdocs/ssg`].find(t=>e===t||e.startsWith(t+`/`)||e.includes(`/node_modules/${t}/`)||t.startsWith(`@`)&&e.includes(`/node_modules/${t.replace(`/`,c.default.sep)}/`));if(r&&n?.ssr){let t=e;if(!c.default.isAbsolute(e)){let n=Dt(Q);try{t=r===`@bdocs/ssg`||r===`react-router-dom`||r===`react-helmet-async`?$(e,n):n.resolve(e)}catch{try{t=r===`@bdocs/ssg`||r===`react-router-dom`||r===`react-helmet-async`?$(e,Q):Q.resolve(e)}catch{}}}try{t=l.default.realpathSync(t)}catch{}return{id:t,external:!0}}return null},transformIndexHtml:{order:`pre`,handler(e){return de(e,u)}},async buildEnd(){let{pool:e}=await Promise.resolve().then(()=>require(`./worker-pool-CtqklOXq.cjs`));await e.terminate()},async closeBundle(){!f||d?.build?.ssr||(await p?.runHook(`afterBuild`),await p?.runHook(`buildEnd`))},configurePreviewServer(e){let t=d?.build?.outDir?c.default.resolve(d.root||process.cwd(),d.build.outDir):c.default.resolve(process.cwd(),`dist`);e.middlewares.use((e,n,r)=>{let i=e.url||`/`,a=i.split(`?`)[0].split(`#`)[0];if(c.default.extname(a))return r();let o=a.replace(/\/$/,``)||`/`,s=c.default.join(t,o,`index.html`);o!==`/`&&l.default.existsSync(s)&&(e.url=`${o}/index.html${i.includes(`?`)?`?${i.split(`?`)[1]}`:``}`),r()})}},at(e,h,te,a),St(a,o,h,g,_),Et(u,_),{...(0,ee.ViteImageOptimizer)({includePublic:!0,png:{quality:80},jpeg:{quality:80},jpg:{quality:80},webp:{quality:80},avif:{quality:80},svg:{multipass:!0,plugins:[{name:`preset-default`}]}}),apply:`build`},...m]}(0,m.createRequire)(require(`url`).pathToFileURL(__filename).href);async function Mt(e){let t=e?.docsDir||`docs`,n=await i.p(t),a=(await r.t(t,n)).map(e=>e.path),o=(n.base||`/docs`).replace(/\/$/,``);return a.includes(o)||a.push(o),i.h(n,t,void 0,a),i.g(a),jt({...e},n)}async function Nt(e,t=`development`){let n=await i.p(`docs`,e),l=(await r.t(`docs`,n)).map(e=>e.path),u=(n.base||`/docs`).replace(/\/$/,``);l.includes(u)||l.push(u),i.h(n,`docs`,e,l),i.g(l);let d=t===`production`,f=d?{...ot}:{};return n.security?.enableCSP&&(f[`Content-Security-Policy`]=st(n)),{root:e,mode:t,oxc:{jsx:{development:!d,runtime:`automatic`,importSource:`react`}},optimizeDeps:{include:[`react`,`react-dom`,`react-dom/client`,`react-helmet-async`,`react-router-dom`,`react-fast-compare`,`invariant`,`use-sync-external-store/shim`]},build:{},plugins:[(0,a.default)(),(0,o.default)(),...jt({docsDir:`docs`,root:e},n)],resolve:{alias:[{find:`boltdocs/entry`,replacement:(0,s.normalizePath)(c.default.resolve(e,`boltdocs-entry.tsx`))},{find:`boltdocs/client`,replacement:(0,s.normalizePath)(c.default.resolve(e,`boltdocs-client.mjs`))},{find:`use-sync-external-store/shim/index.js`,replacement:`react`},{find:`use-sync-external-store/shim`,replacement:`react`},{find:`use-sync-external-store`,replacement:`react`}],dedupe:[`react`,`react-dom`]},ssr:{external:[`react`,`react-dom`,`react-helmet-async`,`@bdocs/ssg`,`react-fast-compare`,`invariant`,...At()],optimizeDeps:{include:[`react`,`react-dom`,`react-fast-compare`,`invariant`,...n.vite?.ssr?.optimizeDeps?.include||[]]},noExternal:[`boltdocs`,/@bdocs\/(?!ssg).*/,`react-aria-components`,`@react-aria/collections`,`@react-aria/utils`,`react-router-dom`]},server:{headers:{...f,...n.vite?.server?.headers},...n.vite?.server},preview:{headers:{...f,...n.vite?.preview?.headers},...n.vite?.preview},...n.vite}}Object.defineProperty(exports,`C`,{enumerable:!0,get:function(){return he}}),Object.defineProperty(exports,`D`,{enumerable:!0,get:function(){return I}}),Object.defineProperty(exports,`E`,{enumerable:!0,get:function(){return P}}),Object.defineProperty(exports,`O`,{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,`S`,{enumerable:!0,get:function(){return ge}}),Object.defineProperty(exports,`T`,{enumerable:!0,get:function(){return fe}}),Object.defineProperty(exports,`_`,{enumerable:!0,get:function(){return Ze}}),Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return Qe}}),Object.defineProperty(exports,`b`,{enumerable:!0,get:function(){return Oe}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return Je}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return $e}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return Ge}}),Object.defineProperty(exports,`g`,{enumerable:!0,get:function(){return Xe}}),Object.defineProperty(exports,`h`,{enumerable:!0,get:function(){return Ue}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return tt}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return Ke}}),Object.defineProperty(exports,`m`,{enumerable:!0,get:function(){return W}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return Nt}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return qe}}),Object.defineProperty(exports,`p`,{enumerable:!0,get:function(){return We}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return K}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return Ye}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return Mt}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return et}}),Object.defineProperty(exports,`v`,{enumerable:!0,get:function(){return U}}),Object.defineProperty(exports,`w`,{enumerable:!0,get:function(){return pe}}),Object.defineProperty(exports,`x`,{enumerable:!0,get:function(){return Ee}}),Object.defineProperty(exports,`y`,{enumerable:!0,get:function(){return R}});
|
|
159
|
+
export default UserLayout;`;throw Error(`[Boltdocs] Layout file not found. A 'layout.tsx' or 'layout.jsx' file is mandatory in your docs directory. Please create one to define your site structure.`)}if(s===`icons`){let e=[`tsx`,`jsx`,`ts`,`js`],n=null;for(let t of e){let e=c.default.resolve(a,`icons.${t}`);if(l.default.existsSync(e)){n=e;break}}return n?`import * as icons from '${t.u(n)}';\nexport default icons;`:`export default {};`}if(s===`search`){if(!J){let e=rt(await r.t(a,o));J=`export default ${JSON.stringify(e,null,2)};`}return J}if(s===`client`){let e=__dirname,n=``;for(;e&&e!==c.default.parse(e).root;){let r=c.default.join(e,`src/client/index.ts`),i=c.default.join(e,`dist/client/index.mjs`),a=c.default.join(e,`client/index.ts`);if(l.default.existsSync(r)){n=t.u(r);break}if(l.default.existsSync(i)){n=t.u(i);break}if(l.default.existsSync(a)){n=t.u(a);break}e=c.default.dirname(e)}if(!n)throw Error(`[boltdocs] Could not resolve boltdocs/client entry point starting from ${__dirname}`);return`export * from '${n}';`}}}}const ot={"X-Content-Type-Options":`nosniff`,"X-Frame-Options":`DENY`,"X-XSS-Protection":`1; mode=block`,"Referrer-Policy":`strict-origin-when-cross-origin`,"Permissions-Policy":`camera=(), microphone=(), geolocation=()`,"Strict-Transport-Security":`max-age=31536000; includeSubDomains`};function st(e){let t=process.env.NODE_ENV===`development`,n={"default-src":[`'self'`],"script-src":[`'self'`,`'unsafe-inline'`],"style-src":[`'self'`,`'unsafe-inline'`],"img-src":[`'self'`,`data:`,`https:`],"font-src":[`'self'`],"connect-src":[`'self'`]};return t&&(n[`script-src`]=[`'self'`,`'unsafe-eval'`,`'unsafe-inline'`],n[`style-src`]=[`'self'`,`'unsafe-inline'`]),Object.entries(n).map(([e,t])=>`${e} ${t.join(` `)}`).join(`; `)}const ct=/\.(js|css|png|jpe?g|gif|svg|ico|webp|woff2?|ttf|otf|mp4|webm|ogg|mp3|wav|flac|aac|pdf|zip|gz|map|json)$/i;function lt(e,t){let n=process.env.NODE_ENV===`production`;e.middlewares.use((e,r,i)=>{n&&Object.entries(ot).forEach(([e,t])=>{r.setHeader(e,t)});let a=t();a.security?.enableCSP&&r.setHeader(`Content-Security-Policy`,st(a)),i()}),e.middlewares.use((e,t,n)=>{if(e.url===`/robots.txt`){n();return}n()}),e.middlewares.use(async(n,r,i)=>{let a=n.url?.split(`?`)[0]||`/`,o=n.headers.accept||``,s=t();if(o.includes(`text/html`)&&!ct.test(a)){let t=ue(s);t=de(t,s),t=await e.transformIndexHtml(n.url||`/`,t),r.statusCode=200,r.setHeader(`Content-Type`,`text/html`),r.end(t);return}i()})}function ut(e,t,n){setTimeout(async()=>{try{let{generateRoutes:r}=await Promise.resolve().then(()=>require(`./routes-DJNJ-rTt.cjs`)),i=(await r(t,n())).filter(e=>e.filePath).map(e=>e.filePath);for(let t=0;t<i.length;t+=8){let n=i.slice(t,t+8);await Promise.allSettled(n.map(t=>{let n=c.default.relative(process.cwd(),t).replace(/\\/g,`/`),r=n.startsWith(`/`)?n:`/${n}`;return e.transformRequest(r)}))}}catch{}},1e3)}const dt=[`tsx`,`jsx`],ft=[`tsx`,`ts`,`jsx`,`js`];function pt(e,t){let n=i.f.map(e=>c.default.resolve(process.cwd(),e)),r=dt.map(e=>c.default.resolve(t,`layout.${e}`)),a=ft.map(e=>c.default.resolve(t,`mdx-components.${e}`)),o=ft.map(e=>c.default.resolve(t,`pages-external/index.${e}`)),s=ft.map(e=>c.default.resolve(t,`icons.${e}`));e.watcher.add([...n,...a,...r,...o,...s])}const Y=new Map;function mt(e){let{lastUpdated:t,...n}=e;return f.default.createHash(`md5`).update(JSON.stringify(n)).digest(`hex`)}async function ht(e){try{let{data:n}=await t.d(e);return mt(n)}catch{return``}}function gt(e){let t=Y.get(e);if(t===void 0){let n=r.r.get(e);n?.route?.frontmatter&&(t=mt(n.route.frontmatter),Y.set(e,t))}return t}function _t(e,t){Y.set(e,t)}function vt(e){Y.delete(e)}const yt=[`tsx`,`ts`,`jsx`,`js`];function X(e,t){let n=e.moduleGraph.getModuleById(`\0virtual:boltdocs-${t}.ts`);n&&e.moduleGraph.invalidateModule(n)}function bt(e,n,a,o){let s=new Map,l=a.toLowerCase(),u=async(a,u)=>{try{let f=t.u(a);if(i.f.some(e=>f.endsWith(e))){e.restart();return}if(yt.some(e=>f.endsWith(`mdx-components.${e}`))){i.h(o(),n),X(e,`mdx-components.tsx`),e.ws.send({type:`full-reload`});return}if(yt.some(e=>f.endsWith(`icons.${e}`))){X(e,`icons.tsx`),e.ws.send({type:`full-reload`});return}if(f.endsWith(`layout.tsx`)||f.endsWith(`layout.jsx`)){X(e,`layout.tsx`),e.ws.send({type:`full-reload`});return}if(f.includes(`/pages-external/`)||f.includes(`\\pages-external\\`)){X(e,`entry`),e.ws.send({type:`full-reload`});return}if(!f.toLowerCase().startsWith(l)||!t.c(f))return;if(u===`add`||u===`unlink`){u===`unlink`&&vt(a),r.n(),it();let t=o();i.h(t,n),X(e,`config`),X(e,`routes`),X(e,`search`),X(e,`collections`),i.c(n,process.cwd(),t).catch(e=>{(0,d.error)(`Failed to update link tree:`,e)}),e.ws.send({type:`custom`,event:`boltdocs:config-update`,data:{theme:t?.theme,i18n:t?.i18n,versions:t?.versions,siteUrl:t?.siteUrl}}),e.ws.send({type:`full-reload`});return}s.has(f)&&clearTimeout(s.get(f)),s.set(f,setTimeout(async()=>{s.delete(f);try{let i=gt(a),o=await ht(a);if(_t(a,o),r.i(a),i!==void 0&&i!==o){X(e,`routes`),X(e,`search`),X(e,`collections`),e.ws.send({type:`full-reload`});return}let s=t.u(c.default.relative(n,a)),l=e.moduleGraph.getModulesByFile(f);if(l&&l.size>0)for(let t of l)e.moduleGraph.invalidateModule(t);else{e.ws.send({type:`full-reload`});return}e.ws.send({type:`custom`,event:`boltdocs:mdx-update`,data:{file:f,relPath:s}})}catch(e){(0,d.error)(`HMR error processing content change:`,e)}},150))}catch(e){(0,d.error)(`HMR error during ${u} event:`,e)}};e.watcher.on(`add`,e=>u(e,`add`)),e.watcher.on(`unlink`,e=>u(e,`unlink`)),e.watcher.on(`change`,e=>u(e,`change`))}function xt(e){let n=e.toLowerCase();return({file:e})=>{if(e.toLowerCase().startsWith(n)&&t.c(e))return[]}}function St(e,t,n,r,a){return{name:`vite-plugin-boltdocs-dev-server`,apply:`serve`,async configureServer(r){let o=a();await o?.runHook(`beforeDev`),i.c(e,process.cwd(),n()).catch(e=>{(0,d.error)(`Failed to generate initial link tree:`,e)}),ut(r,e,n),lt(r,n),pt(r,e),bt(r,e,t,n),await o?.runHook(`afterDev`)},hotUpdate:xt(t)}}const Z=new n.r(`mdx`);function Ct(e){let t=He(e);return async e=>{let n=await t.getHighlighter();W(e,R.ELEMENT,e=>{if(e.tagName!==`pre`)return;let r=e.children?.[0];if(!r||r.type!==R.ELEMENT||r.tagName!==`code`)return;let i=(r.properties?.className||[]).find(e=>e.startsWith(`language-`)),a=i?i.slice(9):V.MDX_DEFAULT_LANG;if(a===`mermaid`)return;let o=U(r.properties?.metastring||r.data?.meta||``),s=t.getOptions(a,o),c=r.children?.[0]?.value||``;try{let t=n.codeToHast(c,s),r=t.type===`root`?t.children[0]:t;e.children=r.children,e.properties={...e.properties,...r.properties,[z.HIGHLIGHTED]:`true`,[z.LANG]:a}}catch(t){(0,d.error)(`[rehypeShiki] Failed to highlight code block:`,t),e.properties=e.properties||{},e.properties.className=[...e.properties.className||[],B.FALLBACK],e.properties[z.HIGHLIGHTED]=`false`,e.properties[z.LANG]=a}return o.title&&(e.properties[z.TITLE]=o.title),g.SKIP})}}function wt(){return e=>{W(e,R.CODE,e=>{e.meta&&Ge(e,`metastring`,e.meta)})}}let Tt=!1;function Et(e,t,n=A.default){let r=e?.plugins?.flatMap(e=>e.remarkPlugins||[])||[],i=e?.plugins?.flatMap(e=>e.rehypePlugins||[])||[],a=n({remarkPlugins:[j.default,M.default,wt,...r],rehypePlugins:[N.default,[Ct,e],...i],jsxRuntime:`automatic`});return{...a,name:`vite-plugin-boltdocs-mdx`,async buildStart(){Tt||=(await Z.load(),!0),a.buildStart&&await a.buildStart.call(this)},async transform(e,n,r){let[i]=n.split(`?`);if(!i.endsWith(`.md`)&&!i.endsWith(`.mdx`))return a.transform?.call(this,e,n,r);let o=`${i}:${f.default.createHash(`md5`).update(e).digest(`hex`)}:${process.env.NODE_ENV===`production`?`prod`:`dev`}:v3`,s=await Z.getAsync(o);if(s)return{code:s,map:null};let c=await a.transform.call(this,e,i,r);if(c&&typeof c==`object`&&c.code){let e=c.code,n=t?.();return n&&(e=(await n.runChain(`transformMdx`,{code:e,filePath:i})).code),Z.set(o,e),{code:e,map:null}}return c},async buildEnd(){Z.save(),await Z.flush(),a.buildEnd&&await a.buildEnd.call(this)}}}const Q=m.createRequire(require(`url`).pathToFileURL(__filename).href);function Dt(e){try{let e=c.default.join(process.cwd(),`node_modules/boltdocs/package.json`);if(l.default.existsSync(e)){let t=l.default.realpathSync(e);return m.createRequire(t)}else return m.createRequire(c.default.join(process.cwd(),`package.json`))}catch{return e}}function Ot(e){let t=c.default.dirname(e);for(;t&&t!==c.default.dirname(t);){let e=c.default.join(t,`package.json`);if(l.default.existsSync(e))return e;t=c.default.dirname(t)}return null}function kt(e){let t=e.split(`/`);return e.startsWith(`@`)?{packageName:t.slice(0,2).join(`/`),subpath:t.slice(2).join(`/`)}:{packageName:t[0],subpath:t.slice(1).join(`/`)}}function $(e,t=Q){try{let{packageName:n,subpath:r}=kt(e),i;try{i=t.resolve(n+`/package.json`)}catch{i=Ot(t.resolve(n))||``}if(!i)throw Error(`Could not find package.json for ${n}`);let a=c.default.dirname(i),o=JSON.parse(l.default.readFileSync(i,`utf-8`)),s=``,u=r?`./`+r:`.`;if(o.exports){let e=o.exports[u]||o.exports[r];e&&(s=typeof e==`string`?e:e.import||e.default||e.require||e)}if(!s&&!r&&(s=o.module||o.main||`index.js`),typeof s==`object`&&s){let e=s;s=e.import||e.default||e.require||``}if(s){let e=c.default.resolve(a,s);if(l.default.existsSync(e))return e}}catch{}return t.resolve(e)}function At(){let e=[`react`,`react-dom`,`react-router-dom`,`react-helmet-async`,`@bdocs/ssg`,`react-fast-compare`,`invariant`],n=[],r=Dt(Q);for(let t of e)try{let e=``;e=t===`@bdocs/ssg`||t===`react-router-dom`||t===`react-helmet-async`?$(t,r):r.resolve(t),e&&n.push(l.default.realpathSync(e))}catch{}if(r!==Q)for(let t of e)try{let e=``;e=t===`@bdocs/ssg`||t===`react-router-dom`||t===`react-helmet-async`?$(t,Q):Q.resolve(t),e&&n.push(l.default.realpathSync(e))}catch{}for(let e of[`react/jsx-runtime`,`react/jsx-dev-runtime`,`react-dom/client`]){try{n.push(l.default.realpathSync(r.resolve(e)))}catch{}if(r!==Q)try{n.push(l.default.realpathSync(Q.resolve(e)))}catch{}}return Array.from(new Set(n)).map(e=>t.u(e))}function jt(e={},n){let a=c.default.resolve(process.cwd(),e.docsDir||`docs`),o=t.u(a),u=n,d,f=!1,p,m=[],h=()=>u,g=e=>{u=e},te=()=>d,_=()=>p;return[{name:`vite-plugin-boltdocs`,enforce:`pre`,async config(e,t){f=t.command===`build`;let n=!!(t.isSsrBuild||e.build?.ssr),o=e.envDir||process.cwd(),c=(0,s.loadEnv)(t.mode,o,``);if(Object.assign(process.env,c),!u){u=await i.p(a);let e=(await r.t(a,u)).map(e=>e.path),t=(u.base||`/docs`).replace(/\/$/,``);e.includes(t)||e.push(t),i.h(u,a,void 0,e),i.g(e)}let l=(await Promise.resolve().then(()=>require(`./package-DBz4CSnw.cjs`))).version,d=he(u.plugins||[],l);return u.plugins=d,p=new Oe(d,u),m=d.flatMap(e=>e.vitePlugins||[]),f&&await p.runHook(`beforeBuild`),{base:u.base||`/docs`,ssgOptions:{entry:`boltdocs/entry`,htmlEntry:`index.html`,dirStyle:`flat`,includeAllRoutes:!0,mock:!0,script:`async`,beastiesOptions:{preload:`media`}},build:{ssrManifest:f},optimizeDeps:{include:[`react`,`react-dom`,`react-dom/client`,`react-router-dom`,`react-helmet-async`,`react-fast-compare`,`invariant`],exclude:[`boltdocs`,`boltdocs/client`]},resolve:{alias:[{find:`react-router-dom`,replacement:$(`react-router-dom`)},{find:`react-helmet-async`,replacement:$(`react-helmet-async`)},{find:`@bdocs/ssg`,replacement:$(`@bdocs/ssg`)}],dedupe:[`react`,`react-dom`,...n?[]:[`react-router-dom`,`react-helmet-async`,`@bdocs/ssg`]]},ssr:{external:[`react`,`react-dom`,`react-helmet-async`,`@bdocs/ssg`,`react-fast-compare`,`invariant`,...At()],optimizeDeps:{include:[`react-fast-compare`,`invariant`]},noExternal:[`react-router-dom`]}}},configResolved(e){d=e},resolveId(e,t,n){let r=[`react`,`react-dom`,`react-router-dom`,`react-helmet-async`,`@bdocs/ssg`].find(t=>e===t||e.startsWith(t+`/`)||e.includes(`/node_modules/${t}/`)||t.startsWith(`@`)&&e.includes(`/node_modules/${t.replace(`/`,c.default.sep)}/`));if(r&&n?.ssr){let t=e;if(!c.default.isAbsolute(e)){let n=Dt(Q);try{t=r===`@bdocs/ssg`||r===`react-router-dom`||r===`react-helmet-async`?$(e,n):n.resolve(e)}catch{try{t=r===`@bdocs/ssg`||r===`react-router-dom`||r===`react-helmet-async`?$(e,Q):Q.resolve(e)}catch{}}}try{t=l.default.realpathSync(t)}catch{}return{id:t,external:!0}}return null},transformIndexHtml:{order:`pre`,handler(e){return de(e,u)}},async buildEnd(){let{pool:e}=await Promise.resolve().then(()=>require(`./worker-pool-CtqklOXq.cjs`));await e.terminate()},async closeBundle(){!f||d?.build?.ssr||(await p?.runHook(`afterBuild`),await p?.runHook(`buildEnd`))},configurePreviewServer(e){let t=d?.build?.outDir?c.default.resolve(d.root||process.cwd(),d.build.outDir):c.default.resolve(process.cwd(),`dist`);e.middlewares.use((e,n,r)=>{let i=e.url||`/`,a=i.split(`?`)[0].split(`#`)[0];if(c.default.extname(a))return r();let o=a.replace(/\/$/,``)||`/`,s=c.default.join(t,o,`index.html`);o!==`/`&&l.default.existsSync(s)&&(e.url=`${o}/index.html${i.includes(`?`)?`?${i.split(`?`)[1]}`:``}`),r()})}},at(e,h,te,a),St(a,o,h,g,_),Et(u,_),{...(0,ee.ViteImageOptimizer)({includePublic:!0,png:{quality:80},jpeg:{quality:80},jpg:{quality:80},webp:{quality:80},avif:{quality:80},svg:{multipass:!0,plugins:[{name:`preset-default`}]}}),apply:`build`},...m]}(0,m.createRequire)(require(`url`).pathToFileURL(__filename).href);async function Mt(e){let t=e?.docsDir||`docs`,n=await i.p(t),a=(await r.t(t,n)).map(e=>e.path),o=(n.base||`/docs`).replace(/\/$/,``);return a.includes(o)||a.push(o),i.h(n,t,void 0,a),i.g(a),jt({...e},n)}async function Nt(e,t=`development`){let n=await i.p(`docs`,e),l=(await r.t(`docs`,n)).map(e=>e.path),u=(n.base||`/docs`).replace(/\/$/,``);l.includes(u)||l.push(u),i.h(n,`docs`,e,l),i.g(l);let d=t===`production`,f=d?{...ot}:{};return n.security?.enableCSP&&(f[`Content-Security-Policy`]=st(n)),{root:e,mode:t,oxc:{jsx:{development:!d,runtime:`automatic`,importSource:`react`}},optimizeDeps:{include:[`react`,`react-dom`,`react-dom/client`,`react-helmet-async`,`react-router-dom`,`react-fast-compare`,`invariant`,`use-sync-external-store/shim`]},build:{},plugins:[(0,a.default)(),(0,o.default)(),...jt({docsDir:`docs`,root:e},n)],resolve:{alias:[{find:`boltdocs/entry`,replacement:(0,s.normalizePath)(c.default.resolve(e,`boltdocs-entry.tsx`))},{find:`boltdocs/client`,replacement:(0,s.normalizePath)(c.default.resolve(e,`boltdocs-client.mjs`))},{find:`use-sync-external-store/shim/index.js`,replacement:`react`},{find:`use-sync-external-store/shim`,replacement:`react`},{find:`use-sync-external-store`,replacement:`react`}],dedupe:[`react`,`react-dom`]},ssr:{external:[`react`,`react-dom`,`react-helmet-async`,`@bdocs/ssg`,`react-fast-compare`,`invariant`,...At()],optimizeDeps:{include:[`react`,`react-dom`,`react-fast-compare`,`invariant`,...n.vite?.ssr?.optimizeDeps?.include||[]]},noExternal:[`boltdocs`,/@bdocs\/(?!ssg).*/,`react-aria-components`,`@react-aria/collections`,`@react-aria/utils`,`react-router-dom`]},server:{headers:{...f,...n.vite?.server?.headers},...n.vite?.server},preview:{headers:{...f,...n.vite?.preview?.headers},...n.vite?.preview},...n.vite}}Object.defineProperty(exports,`C`,{enumerable:!0,get:function(){return he}}),Object.defineProperty(exports,`D`,{enumerable:!0,get:function(){return I}}),Object.defineProperty(exports,`E`,{enumerable:!0,get:function(){return P}}),Object.defineProperty(exports,`O`,{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,`S`,{enumerable:!0,get:function(){return ge}}),Object.defineProperty(exports,`T`,{enumerable:!0,get:function(){return fe}}),Object.defineProperty(exports,`_`,{enumerable:!0,get:function(){return Ze}}),Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return Qe}}),Object.defineProperty(exports,`b`,{enumerable:!0,get:function(){return Oe}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return Je}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return $e}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return Ge}}),Object.defineProperty(exports,`g`,{enumerable:!0,get:function(){return Xe}}),Object.defineProperty(exports,`h`,{enumerable:!0,get:function(){return Ue}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return tt}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return Ke}}),Object.defineProperty(exports,`m`,{enumerable:!0,get:function(){return W}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return Nt}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return qe}}),Object.defineProperty(exports,`p`,{enumerable:!0,get:function(){return We}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return K}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return Ye}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return Mt}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return et}}),Object.defineProperty(exports,`v`,{enumerable:!0,get:function(){return U}}),Object.defineProperty(exports,`w`,{enumerable:!0,get:function(){return pe}}),Object.defineProperty(exports,`x`,{enumerable:!0,get:function(){return Ee}}),Object.defineProperty(exports,`y`,{enumerable:!0,get:function(){return R}});
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Copyright (c) 2026 Jesus Alcala
|
|
4
4
|
* Licensed under the MIT License.
|
|
5
5
|
*/
|
|
6
|
-
import{c as e,d as t,n,r,u as i}from"./utils-BYITg7T5.mjs";import{r as a}from"./cache-BMUyNiiA.mjs";import{i as o,n as s,r as c,t as l}from"./routes-
|
|
6
|
+
import{c as e,d as t,n,r,u as i}from"./utils-BYITg7T5.mjs";import{r as a}from"./cache-BMUyNiiA.mjs";import{i as o,n as s,r as c,t as l}from"./routes-f9J1MQRr.mjs";import{_ as u,c as d,f,g as p,h as m,p as h}from"./doctor-CgLA7_Uv.mjs";import*as g from"node:module";import{createRequire as _}from"node:module";import ee from"@vitejs/plugin-react";import te from"@tailwindcss/vite";import{loadEnv as ne,normalizePath as re}from"vite";import v from"node:path";import y from"node:fs";import{z as b}from"zod";import*as x from"@bdocs/dui";import{colors as S,error as C,warn as w}from"@bdocs/dui";import ie from"node:crypto";import{ViteImageOptimizer as ae}from"vite-plugin-image-optimizer";import oe from"semver";import{build as se}from"@bdocs/ssg/node";import{EXIT as ce,SKIP as le,visit as T}from"unist-util-visit";import{createJavaScriptRegexEngine as ue}from"shiki/engine/javascript";import{createHighlighterCore as de}from"shiki/core";import fe from"@shikijs/themes/github-light";import pe from"@shikijs/themes/github-dark";import me from"@shikijs/themes/tokyo-night";import he from"@shikijs/themes/dracula";import ge from"@shikijs/themes/nord";import _e from"@shikijs/themes/one-dark-pro";import ve from"@shikijs/themes/one-light";import ye from"@shikijs/langs/html";import be from"@shikijs/langs/js";import xe from"@shikijs/langs/ts";import Se from"@shikijs/langs/tsx";import Ce from"@shikijs/langs/css";import we from"@shikijs/langs/json";import Te from"@shikijs/langs/bash";import Ee from"@shikijs/langs/markdown";import De from"@shikijs/langs/mdx";import Oe from"@shikijs/langs/yaml";import ke from"@shikijs/langs/rust";import Ae from"@shikijs/langs/toml";import je from"@shikijs/langs/csv";import{fileURLToPath as Me}from"node:url";import Ne from"@mdx-js/rollup";import Pe from"remark-gfm";import Fe from"remark-frontmatter";import Ie from"rehype-slug";var Le=Object.defineProperty,Re=(e,t)=>{let n={};for(var r in e)Le(n,r,{get:e[r],enumerable:!0});return t||Le(n,Symbol.toStringTag,{value:`Module`}),n},ze=_(import.meta.url);function Be(e){return`<!doctype html>
|
|
7
7
|
<html lang="en">
|
|
8
8
|
<head>
|
|
9
9
|
<meta charset="UTF-8" />
|
|
@@ -156,4 +156,4 @@ ${h}
|
|
|
156
156
|
const mdxComponents = components.default || components;
|
|
157
157
|
export default mdxComponents;
|
|
158
158
|
export * from '${e}';`}return`export default {};`}if(o===`layout`){let e=[`tsx`,`jsx`],t=null;for(let n of e){let e=v.resolve(r,`layout.${n}`);if(y.existsSync(e)){t=e;break}}if(t)return`import UserLayout from '${i(t)}';
|
|
159
|
-
export default UserLayout;`;throw Error(`[Boltdocs] Layout file not found. A 'layout.tsx' or 'layout.jsx' file is mandatory in your docs directory. Please create one to define your site structure.`)}if(o===`icons`){let e=[`tsx`,`jsx`,`ts`,`js`],t=null;for(let n of e){let e=v.resolve(r,`icons.${n}`);if(y.existsSync(e)){t=e;break}}return t?`import * as icons from '${i(t)}';\nexport default icons;`:`export default {};`}if(o===`search`){if(!q){let e=Dt(await l(r,a));q=`export default ${JSON.stringify(e,null,2)};`}return q}if(o===`client`){let e=U,t=``;for(;e&&e!==v.parse(e).root;){let n=v.join(e,`src/client/index.ts`),r=v.join(e,`dist/client/index.mjs`),a=v.join(e,`client/index.ts`);if(y.existsSync(n)){t=i(n);break}if(y.existsSync(r)){t=i(r);break}if(y.existsSync(a)){t=i(a);break}e=v.dirname(e)}if(!t)throw Error(`[boltdocs] Could not resolve boltdocs/client entry point starting from ${U}`);return`export * from '${t}';`}}}}const At={"X-Content-Type-Options":`nosniff`,"X-Frame-Options":`DENY`,"X-XSS-Protection":`1; mode=block`,"Referrer-Policy":`strict-origin-when-cross-origin`,"Permissions-Policy":`camera=(), microphone=(), geolocation=()`,"Strict-Transport-Security":`max-age=31536000; includeSubDomains`};function jt(e){let t=process.env.NODE_ENV===`development`,n={"default-src":[`'self'`],"script-src":[`'self'`,`'unsafe-inline'`],"style-src":[`'self'`,`'unsafe-inline'`],"img-src":[`'self'`,`data:`,`https:`],"font-src":[`'self'`],"connect-src":[`'self'`]};return t&&(n[`script-src`]=[`'self'`,`'unsafe-eval'`,`'unsafe-inline'`],n[`style-src`]=[`'self'`,`'unsafe-inline'`]),Object.entries(n).map(([e,t])=>`${e} ${t.join(` `)}`).join(`; `)}const Mt=/\.(js|css|png|jpe?g|gif|svg|ico|webp|woff2?|ttf|otf|mp4|webm|ogg|mp3|wav|flac|aac|pdf|zip|gz|map|json)$/i;function Nt(e,t){let n=process.env.NODE_ENV===`production`;e.middlewares.use((e,r,i)=>{n&&Object.entries(At).forEach(([e,t])=>{r.setHeader(e,t)});let a=t();a.security?.enableCSP&&r.setHeader(`Content-Security-Policy`,jt(a)),i()}),e.middlewares.use((e,t,n)=>{if(e.url===`/robots.txt`){n();return}n()}),e.middlewares.use(async(n,r,i)=>{let a=n.url?.split(`?`)[0]||`/`,o=n.headers.accept||``,s=t();if(o.includes(`text/html`)&&!Mt.test(a)){let t=Be(s);t=Ve(t,s),t=await e.transformIndexHtml(n.url||`/`,t),r.statusCode=200,r.setHeader(`Content-Type`,`text/html`),r.end(t);return}i()})}function Pt(e,t,n){setTimeout(async()=>{try{let{generateRoutes:r}=await import(`./routes-rKlxFkqq.mjs`),i=(await r(t,n())).filter(e=>e.filePath).map(e=>e.filePath);for(let t=0;t<i.length;t+=8){let n=i.slice(t,t+8);await Promise.allSettled(n.map(t=>{let n=v.relative(process.cwd(),t).replace(/\\/g,`/`),r=n.startsWith(`/`)?n:`/${n}`;return e.transformRequest(r)}))}}catch{}},1e3)}const Ft=[`tsx`,`jsx`],J=[`tsx`,`ts`,`jsx`,`js`];function It(e,t){let n=f.map(e=>v.resolve(process.cwd(),e)),r=Ft.map(e=>v.resolve(t,`layout.${e}`)),i=J.map(e=>v.resolve(t,`mdx-components.${e}`)),a=J.map(e=>v.resolve(t,`pages-external/index.${e}`)),o=J.map(e=>v.resolve(t,`icons.${e}`));e.watcher.add([...n,...i,...r,...a,...o])}const Y=new Map;function Lt(e){let{lastUpdated:t,...n}=e;return ie.createHash(`md5`).update(JSON.stringify(n)).digest(`hex`)}async function Rt(e){try{let{data:n}=await t(e);return Lt(n)}catch{return``}}function zt(e){let t=Y.get(e);if(t===void 0){let n=c.get(e);n?.route?.frontmatter&&(t=Lt(n.route.frontmatter),Y.set(e,t))}return t}function Bt(e,t){Y.set(e,t)}function Vt(e){Y.delete(e)}const Ht=[`tsx`,`ts`,`jsx`,`js`];function X(e,t){let n=e.moduleGraph.getModuleById(`\0virtual:boltdocs-${t}.ts`);n&&e.moduleGraph.invalidateModule(n)}function Ut(t,n,r,a){let c=new Map,l=r.toLowerCase(),u=async(r,u)=>{try{let p=i(r);if(f.some(e=>p.endsWith(e))){t.restart();return}if(Ht.some(e=>p.endsWith(`mdx-components.${e}`))){m(a(),n),X(t,`mdx-components.tsx`),t.ws.send({type:`full-reload`});return}if(Ht.some(e=>p.endsWith(`icons.${e}`))){X(t,`icons.tsx`),t.ws.send({type:`full-reload`});return}if(p.endsWith(`layout.tsx`)||p.endsWith(`layout.jsx`)){X(t,`layout.tsx`),t.ws.send({type:`full-reload`});return}if(p.includes(`/pages-external/`)||p.includes(`\\pages-external\\`)){X(t,`entry`),t.ws.send({type:`full-reload`});return}if(!p.toLowerCase().startsWith(l)||!e(p))return;if(u===`add`||u===`unlink`){u===`unlink`&&Vt(r),s(),Ot();let e=a();m(e,n),X(t,`config`),X(t,`routes`),X(t,`search`),X(t,`collections`),d(n,process.cwd(),e).catch(e=>{C(`Failed to update link tree:`,e)}),t.ws.send({type:`custom`,event:`boltdocs:config-update`,data:{theme:e?.theme,i18n:e?.i18n,versions:e?.versions,siteUrl:e?.siteUrl}}),t.ws.send({type:`full-reload`});return}c.has(p)&&clearTimeout(c.get(p)),c.set(p,setTimeout(async()=>{c.delete(p);try{let e=zt(r),a=await Rt(r);if(Bt(r,a),o(r),e!==void 0&&e!==a){X(t,`routes`),X(t,`search`),X(t,`collections`),t.ws.send({type:`full-reload`});return}let s=i(v.relative(n,r)),c=t.moduleGraph.getModulesByFile(p);if(c&&c.size>0)for(let e of c)t.moduleGraph.invalidateModule(e);else{t.ws.send({type:`full-reload`});return}t.ws.send({type:`custom`,event:`boltdocs:mdx-update`,data:{file:p,relPath:s}})}catch(e){C(`HMR error processing content change:`,e)}},150))}catch(e){C(`HMR error during ${u} event:`,e)}};t.watcher.on(`add`,e=>u(e,`add`)),t.watcher.on(`unlink`,e=>u(e,`unlink`)),t.watcher.on(`change`,e=>u(e,`change`))}function Wt(t){let n=t.toLowerCase();return({file:t})=>{if(t.toLowerCase().startsWith(n)&&e(t))return[]}}function Gt(e,t,n,r,i){return{name:`vite-plugin-boltdocs-dev-server`,apply:`serve`,async configureServer(r){let a=i();await a?.runHook(`beforeDev`),d(e,process.cwd(),n()).catch(e=>{C(`Failed to generate initial link tree:`,e)}),Pt(r,e,n),Nt(r,n),It(r,e),Ut(r,e,t,n),await a?.runHook(`afterDev`)},hotUpdate:Wt(t)}}const Z=new a(`mdx`);function Kt(e){let t=pt(e);return async e=>{let n=await t.getHighlighter();V(e,M.ELEMENT,e=>{if(e.tagName!==`pre`)return;let r=e.children?.[0];if(!r||r.type!==M.ELEMENT||r.tagName!==`code`)return;let i=(r.properties?.className||[]).find(e=>e.startsWith(`language-`)),a=i?i.slice(9):I.MDX_DEFAULT_LANG;if(a===`mermaid`)return;let o=z(r.properties?.metastring||r.data?.meta||``),s=t.getOptions(a,o),c=r.children?.[0]?.value||``;try{let t=n.codeToHast(c,s),r=t.type===`root`?t.children[0]:t;e.children=r.children,e.properties={...e.properties,...r.properties,[N.HIGHLIGHTED]:`true`,[N.LANG]:a}}catch(t){C(`[rehypeShiki] Failed to highlight code block:`,t),e.properties=e.properties||{},e.properties.className=[...e.properties.className||[],P.FALLBACK],e.properties[N.HIGHLIGHTED]=`false`,e.properties[N.LANG]=a}return o.title&&(e.properties[N.TITLE]=o.title),le})}}function qt(){return e=>{V(e,M.CODE,e=>{e.meta&&H(e,`metastring`,e.meta)})}}let Jt=!1;function Yt(e,t,n=Ne){let r=e?.plugins?.flatMap(e=>e.remarkPlugins||[])||[],i=e?.plugins?.flatMap(e=>e.rehypePlugins||[])||[],a=n({remarkPlugins:[Pe,Fe,qt,...r],rehypePlugins:[Ie,[Kt,e],...i],jsxRuntime:`automatic`});return{...a,name:`vite-plugin-boltdocs-mdx`,async buildStart(){Jt||=(await Z.load(),!0),a.buildStart&&await a.buildStart.call(this)},async transform(e,n,r){let[i]=n.split(`?`);if(!i.endsWith(`.md`)&&!i.endsWith(`.mdx`))return a.transform?.call(this,e,n,r);let o=`${i}:${ie.createHash(`md5`).update(e).digest(`hex`)}:${process.env.NODE_ENV===`production`?`prod`:`dev`}:v3`,s=await Z.getAsync(o);if(s)return{code:s,map:null};let c=await a.transform.call(this,e,i,r);if(c&&typeof c==`object`&&c.code){let e=c.code,n=t?.();return n&&(e=(await n.runChain(`transformMdx`,{code:e,filePath:i})).code),Z.set(o,e),{code:e,map:null}}return c},async buildEnd(){Z.save(),await Z.flush(),a.buildEnd&&await a.buildEnd.call(this)}}}const Q=g.createRequire(import.meta.url);function Xt(e){try{let e=v.join(process.cwd(),`node_modules/boltdocs/package.json`);if(y.existsSync(e)){let t=y.realpathSync(e);return g.createRequire(t)}else return g.createRequire(v.join(process.cwd(),`package.json`))}catch{return e}}function Zt(e){let t=v.dirname(e);for(;t&&t!==v.dirname(t);){let e=v.join(t,`package.json`);if(y.existsSync(e))return e;t=v.dirname(t)}return null}function Qt(e){let t=e.split(`/`);return e.startsWith(`@`)?{packageName:t.slice(0,2).join(`/`),subpath:t.slice(2).join(`/`)}:{packageName:t[0],subpath:t.slice(1).join(`/`)}}function $(e,t=Q){try{let{packageName:n,subpath:r}=Qt(e),i;try{i=t.resolve(n+`/package.json`)}catch{i=Zt(t.resolve(n))||``}if(!i)throw Error(`Could not find package.json for ${n}`);let a=v.dirname(i),o=JSON.parse(y.readFileSync(i,`utf-8`)),s=``,c=r?`./`+r:`.`;if(o.exports){let e=o.exports[c]||o.exports[r];e&&(s=typeof e==`string`?e:e.import||e.default||e.require||e)}if(!s&&!r&&(s=o.module||o.main||`index.js`),typeof s==`object`&&s){let e=s;s=e.import||e.default||e.require||``}if(s){let e=v.resolve(a,s);if(y.existsSync(e))return e}}catch{}return t.resolve(e)}function $t(){let e=[`react`,`react-dom`,`react-router-dom`,`react-helmet-async`,`@bdocs/ssg`,`react-fast-compare`,`invariant`],t=[],n=Xt(Q);for(let r of e)try{let e=``;e=r===`@bdocs/ssg`||r===`react-router-dom`||r===`react-helmet-async`?$(r,n):n.resolve(r),e&&t.push(y.realpathSync(e))}catch{}if(n!==Q)for(let n of e)try{let e=``;e=n===`@bdocs/ssg`||n===`react-router-dom`||n===`react-helmet-async`?$(n,Q):Q.resolve(n),e&&t.push(y.realpathSync(e))}catch{}for(let e of[`react/jsx-runtime`,`react/jsx-dev-runtime`,`react-dom/client`]){try{t.push(y.realpathSync(n.resolve(e)))}catch{}if(n!==Q)try{t.push(y.realpathSync(Q.resolve(e)))}catch{}}return Array.from(new Set(t)).map(e=>i(e))}function en(e={},t){let n=v.resolve(process.cwd(),e.docsDir||`docs`),r=i(n),a=t,o,s=!1,c,u=[],d=()=>a,f=e=>{a=e},g=()=>o,_=()=>c;return[{name:`vite-plugin-boltdocs`,enforce:`pre`,async config(e,t){s=t.command===`build`;let r=!!(t.isSsrBuild||e.build?.ssr),i=e.envDir||process.cwd(),o=ne(t.mode,i,``);if(Object.assign(process.env,o),!a){a=await h(n);let e=(await l(n,a)).map(e=>e.path),t=(a.base||`/docs`).replace(/\/$/,``);e.includes(t)||e.push(t),m(a,n,void 0,e),p(e)}let d=(await import(`./package-DpbnBMR1.mjs`)).version,f=A(a.plugins||[],d);return a.plugins=f,c=new nt(f,a),u=f.flatMap(e=>e.vitePlugins||[]),s&&await c.runHook(`beforeBuild`),{ssgOptions:{entry:`boltdocs/entry`,htmlEntry:`index.html`,dirStyle:`flat`,includeAllRoutes:!0,mock:!0,script:`async`,beastiesOptions:{preload:`media`}},build:{ssrManifest:s},optimizeDeps:{include:[`react`,`react-dom`,`react-dom/client`,`react-router-dom`,`react-helmet-async`,`react-fast-compare`,`invariant`],exclude:[`boltdocs`,`boltdocs/client`]},resolve:{alias:[{find:`react-router-dom`,replacement:$(`react-router-dom`)},{find:`react-helmet-async`,replacement:$(`react-helmet-async`)},{find:`@bdocs/ssg`,replacement:$(`@bdocs/ssg`)}],dedupe:[`react`,`react-dom`,...r?[]:[`react-router-dom`,`react-helmet-async`,`@bdocs/ssg`]]},ssr:{external:[`react`,`react-dom`,`react-helmet-async`,`@bdocs/ssg`,`react-fast-compare`,`invariant`,...$t()],optimizeDeps:{include:[`react-fast-compare`,`invariant`]},noExternal:[`react-router-dom`]}}},configResolved(e){o=e},resolveId(e,t,n){let r=[`react`,`react-dom`,`react-router-dom`,`react-helmet-async`,`@bdocs/ssg`].find(t=>e===t||e.startsWith(t+`/`)||e.includes(`/node_modules/${t}/`)||t.startsWith(`@`)&&e.includes(`/node_modules/${t.replace(`/`,v.sep)}/`));if(r&&n?.ssr){let t=e;if(!v.isAbsolute(e)){let n=Xt(Q);try{t=r===`@bdocs/ssg`||r===`react-router-dom`||r===`react-helmet-async`?$(e,n):n.resolve(e)}catch{try{t=r===`@bdocs/ssg`||r===`react-router-dom`||r===`react-helmet-async`?$(e,Q):Q.resolve(e)}catch{}}}try{t=y.realpathSync(t)}catch{}return{id:t,external:!0}}return null},transformIndexHtml:{order:`pre`,handler(e){return Ve(e,a)}},async buildEnd(){let{pool:e}=await import(`./worker-pool-k0DY6k8T.mjs`);await e.terminate()},async closeBundle(){!s||o?.build?.ssr||(await c?.runHook(`afterBuild`),await c?.runHook(`buildEnd`))},configurePreviewServer(e){let t=o?.build?.outDir?v.resolve(o.root||process.cwd(),o.build.outDir):v.resolve(process.cwd(),`dist`);e.middlewares.use((e,n,r)=>{let i=e.url||`/`,a=i.split(`?`)[0].split(`#`)[0];if(v.extname(a))return r();let o=a.replace(/\/$/,``)||`/`,s=v.join(t,o,`index.html`);o!==`/`&&y.existsSync(s)&&(e.url=`${o}/index.html${i.includes(`?`)?`?${i.split(`?`)[1]}`:``}`),r()})}},kt(e,d,g,n),Gt(n,r,d,f,_),Yt(a,_),{...ae({includePublic:!0,png:{quality:80},jpeg:{quality:80},jpg:{quality:80},webp:{quality:80},avif:{quality:80},svg:{multipass:!0,plugins:[{name:`preset-default`}]}}),apply:`build`},...u]}_(import.meta.url);async function tn(e){let t=e?.docsDir||`docs`,n=await h(t),r=(await l(t,n)).map(e=>e.path),i=(n.base||`/docs`).replace(/\/$/,``);return r.includes(i)||r.push(i),m(n,t,void 0,r),p(r),en({...e},n)}async function nn(e,t=`development`){let n=await h(`docs`,e),r=(await l(`docs`,n)).map(e=>e.path),i=(n.base||`/docs`).replace(/\/$/,``);r.includes(i)||r.push(i),m(n,`docs`,e,r),p(r);let a=t===`production`,o=a?{...At}:{};return n.security?.enableCSP&&(o[`Content-Security-Policy`]=jt(n)),{root:e,mode:t,oxc:{jsx:{development:!a,runtime:`automatic`,importSource:`react`}},optimizeDeps:{include:[`react`,`react-dom`,`react-dom/client`,`react-helmet-async`,`react-router-dom`,`react-fast-compare`,`invariant`,`use-sync-external-store/shim`]},build:{},plugins:[ee(),te(),...en({docsDir:`docs`,root:e},n)],resolve:{alias:[{find:`boltdocs/entry`,replacement:re(v.resolve(e,`boltdocs-entry.tsx`))},{find:`boltdocs/client`,replacement:re(v.resolve(e,`boltdocs-client.mjs`))},{find:`use-sync-external-store/shim/index.js`,replacement:`react`},{find:`use-sync-external-store/shim`,replacement:`react`},{find:`use-sync-external-store`,replacement:`react`}],dedupe:[`react`,`react-dom`]},ssr:{external:[`react`,`react-dom`,`react-helmet-async`,`@bdocs/ssg`,`react-fast-compare`,`invariant`,...$t()],optimizeDeps:{include:[`react`,`react-dom`,`react-fast-compare`,`invariant`,...n.vite?.ssr?.optimizeDeps?.include||[]]},noExternal:[`boltdocs`,/@bdocs\/(?!ssg).*/,`react-aria-components`,`@react-aria/collections`,`@react-aria/utils`,`react-router-dom`]},server:{headers:{...o,...n.vite?.server?.headers},...n.vite?.server},preview:{headers:{...o,...n.vite?.preview?.headers},...n.vite?.preview},...n.vite}}export{D as A,et as C,O as D,He as E,E as O,nt as S,A as T,mt as _,ce as a,z as b,_t as c,gt as d,wt as f,V as g,ht as h,Tt as i,Re as j,k,yt as l,H as m,nn as n,le as o,Ct as p,G as r,St as s,tn as t,vt as u,bt as v,We as w,M as x,xt as y};
|
|
159
|
+
export default UserLayout;`;throw Error(`[Boltdocs] Layout file not found. A 'layout.tsx' or 'layout.jsx' file is mandatory in your docs directory. Please create one to define your site structure.`)}if(o===`icons`){let e=[`tsx`,`jsx`,`ts`,`js`],t=null;for(let n of e){let e=v.resolve(r,`icons.${n}`);if(y.existsSync(e)){t=e;break}}return t?`import * as icons from '${i(t)}';\nexport default icons;`:`export default {};`}if(o===`search`){if(!q){let e=Dt(await l(r,a));q=`export default ${JSON.stringify(e,null,2)};`}return q}if(o===`client`){let e=U,t=``;for(;e&&e!==v.parse(e).root;){let n=v.join(e,`src/client/index.ts`),r=v.join(e,`dist/client/index.mjs`),a=v.join(e,`client/index.ts`);if(y.existsSync(n)){t=i(n);break}if(y.existsSync(r)){t=i(r);break}if(y.existsSync(a)){t=i(a);break}e=v.dirname(e)}if(!t)throw Error(`[boltdocs] Could not resolve boltdocs/client entry point starting from ${U}`);return`export * from '${t}';`}}}}const At={"X-Content-Type-Options":`nosniff`,"X-Frame-Options":`DENY`,"X-XSS-Protection":`1; mode=block`,"Referrer-Policy":`strict-origin-when-cross-origin`,"Permissions-Policy":`camera=(), microphone=(), geolocation=()`,"Strict-Transport-Security":`max-age=31536000; includeSubDomains`};function jt(e){let t=process.env.NODE_ENV===`development`,n={"default-src":[`'self'`],"script-src":[`'self'`,`'unsafe-inline'`],"style-src":[`'self'`,`'unsafe-inline'`],"img-src":[`'self'`,`data:`,`https:`],"font-src":[`'self'`],"connect-src":[`'self'`]};return t&&(n[`script-src`]=[`'self'`,`'unsafe-eval'`,`'unsafe-inline'`],n[`style-src`]=[`'self'`,`'unsafe-inline'`]),Object.entries(n).map(([e,t])=>`${e} ${t.join(` `)}`).join(`; `)}const Mt=/\.(js|css|png|jpe?g|gif|svg|ico|webp|woff2?|ttf|otf|mp4|webm|ogg|mp3|wav|flac|aac|pdf|zip|gz|map|json)$/i;function Nt(e,t){let n=process.env.NODE_ENV===`production`;e.middlewares.use((e,r,i)=>{n&&Object.entries(At).forEach(([e,t])=>{r.setHeader(e,t)});let a=t();a.security?.enableCSP&&r.setHeader(`Content-Security-Policy`,jt(a)),i()}),e.middlewares.use((e,t,n)=>{if(e.url===`/robots.txt`){n();return}n()}),e.middlewares.use(async(n,r,i)=>{let a=n.url?.split(`?`)[0]||`/`,o=n.headers.accept||``,s=t();if(o.includes(`text/html`)&&!Mt.test(a)){let t=Be(s);t=Ve(t,s),t=await e.transformIndexHtml(n.url||`/`,t),r.statusCode=200,r.setHeader(`Content-Type`,`text/html`),r.end(t);return}i()})}function Pt(e,t,n){setTimeout(async()=>{try{let{generateRoutes:r}=await import(`./routes-CtQzxiZg.mjs`),i=(await r(t,n())).filter(e=>e.filePath).map(e=>e.filePath);for(let t=0;t<i.length;t+=8){let n=i.slice(t,t+8);await Promise.allSettled(n.map(t=>{let n=v.relative(process.cwd(),t).replace(/\\/g,`/`),r=n.startsWith(`/`)?n:`/${n}`;return e.transformRequest(r)}))}}catch{}},1e3)}const Ft=[`tsx`,`jsx`],J=[`tsx`,`ts`,`jsx`,`js`];function It(e,t){let n=f.map(e=>v.resolve(process.cwd(),e)),r=Ft.map(e=>v.resolve(t,`layout.${e}`)),i=J.map(e=>v.resolve(t,`mdx-components.${e}`)),a=J.map(e=>v.resolve(t,`pages-external/index.${e}`)),o=J.map(e=>v.resolve(t,`icons.${e}`));e.watcher.add([...n,...i,...r,...a,...o])}const Y=new Map;function Lt(e){let{lastUpdated:t,...n}=e;return ie.createHash(`md5`).update(JSON.stringify(n)).digest(`hex`)}async function Rt(e){try{let{data:n}=await t(e);return Lt(n)}catch{return``}}function zt(e){let t=Y.get(e);if(t===void 0){let n=c.get(e);n?.route?.frontmatter&&(t=Lt(n.route.frontmatter),Y.set(e,t))}return t}function Bt(e,t){Y.set(e,t)}function Vt(e){Y.delete(e)}const Ht=[`tsx`,`ts`,`jsx`,`js`];function X(e,t){let n=e.moduleGraph.getModuleById(`\0virtual:boltdocs-${t}.ts`);n&&e.moduleGraph.invalidateModule(n)}function Ut(t,n,r,a){let c=new Map,l=r.toLowerCase(),u=async(r,u)=>{try{let p=i(r);if(f.some(e=>p.endsWith(e))){t.restart();return}if(Ht.some(e=>p.endsWith(`mdx-components.${e}`))){m(a(),n),X(t,`mdx-components.tsx`),t.ws.send({type:`full-reload`});return}if(Ht.some(e=>p.endsWith(`icons.${e}`))){X(t,`icons.tsx`),t.ws.send({type:`full-reload`});return}if(p.endsWith(`layout.tsx`)||p.endsWith(`layout.jsx`)){X(t,`layout.tsx`),t.ws.send({type:`full-reload`});return}if(p.includes(`/pages-external/`)||p.includes(`\\pages-external\\`)){X(t,`entry`),t.ws.send({type:`full-reload`});return}if(!p.toLowerCase().startsWith(l)||!e(p))return;if(u===`add`||u===`unlink`){u===`unlink`&&Vt(r),s(),Ot();let e=a();m(e,n),X(t,`config`),X(t,`routes`),X(t,`search`),X(t,`collections`),d(n,process.cwd(),e).catch(e=>{C(`Failed to update link tree:`,e)}),t.ws.send({type:`custom`,event:`boltdocs:config-update`,data:{theme:e?.theme,i18n:e?.i18n,versions:e?.versions,siteUrl:e?.siteUrl}}),t.ws.send({type:`full-reload`});return}c.has(p)&&clearTimeout(c.get(p)),c.set(p,setTimeout(async()=>{c.delete(p);try{let e=zt(r),a=await Rt(r);if(Bt(r,a),o(r),e!==void 0&&e!==a){X(t,`routes`),X(t,`search`),X(t,`collections`),t.ws.send({type:`full-reload`});return}let s=i(v.relative(n,r)),c=t.moduleGraph.getModulesByFile(p);if(c&&c.size>0)for(let e of c)t.moduleGraph.invalidateModule(e);else{t.ws.send({type:`full-reload`});return}t.ws.send({type:`custom`,event:`boltdocs:mdx-update`,data:{file:p,relPath:s}})}catch(e){C(`HMR error processing content change:`,e)}},150))}catch(e){C(`HMR error during ${u} event:`,e)}};t.watcher.on(`add`,e=>u(e,`add`)),t.watcher.on(`unlink`,e=>u(e,`unlink`)),t.watcher.on(`change`,e=>u(e,`change`))}function Wt(t){let n=t.toLowerCase();return({file:t})=>{if(t.toLowerCase().startsWith(n)&&e(t))return[]}}function Gt(e,t,n,r,i){return{name:`vite-plugin-boltdocs-dev-server`,apply:`serve`,async configureServer(r){let a=i();await a?.runHook(`beforeDev`),d(e,process.cwd(),n()).catch(e=>{C(`Failed to generate initial link tree:`,e)}),Pt(r,e,n),Nt(r,n),It(r,e),Ut(r,e,t,n),await a?.runHook(`afterDev`)},hotUpdate:Wt(t)}}const Z=new a(`mdx`);function Kt(e){let t=pt(e);return async e=>{let n=await t.getHighlighter();V(e,M.ELEMENT,e=>{if(e.tagName!==`pre`)return;let r=e.children?.[0];if(!r||r.type!==M.ELEMENT||r.tagName!==`code`)return;let i=(r.properties?.className||[]).find(e=>e.startsWith(`language-`)),a=i?i.slice(9):I.MDX_DEFAULT_LANG;if(a===`mermaid`)return;let o=z(r.properties?.metastring||r.data?.meta||``),s=t.getOptions(a,o),c=r.children?.[0]?.value||``;try{let t=n.codeToHast(c,s),r=t.type===`root`?t.children[0]:t;e.children=r.children,e.properties={...e.properties,...r.properties,[N.HIGHLIGHTED]:`true`,[N.LANG]:a}}catch(t){C(`[rehypeShiki] Failed to highlight code block:`,t),e.properties=e.properties||{},e.properties.className=[...e.properties.className||[],P.FALLBACK],e.properties[N.HIGHLIGHTED]=`false`,e.properties[N.LANG]=a}return o.title&&(e.properties[N.TITLE]=o.title),le})}}function qt(){return e=>{V(e,M.CODE,e=>{e.meta&&H(e,`metastring`,e.meta)})}}let Jt=!1;function Yt(e,t,n=Ne){let r=e?.plugins?.flatMap(e=>e.remarkPlugins||[])||[],i=e?.plugins?.flatMap(e=>e.rehypePlugins||[])||[],a=n({remarkPlugins:[Pe,Fe,qt,...r],rehypePlugins:[Ie,[Kt,e],...i],jsxRuntime:`automatic`});return{...a,name:`vite-plugin-boltdocs-mdx`,async buildStart(){Jt||=(await Z.load(),!0),a.buildStart&&await a.buildStart.call(this)},async transform(e,n,r){let[i]=n.split(`?`);if(!i.endsWith(`.md`)&&!i.endsWith(`.mdx`))return a.transform?.call(this,e,n,r);let o=`${i}:${ie.createHash(`md5`).update(e).digest(`hex`)}:${process.env.NODE_ENV===`production`?`prod`:`dev`}:v3`,s=await Z.getAsync(o);if(s)return{code:s,map:null};let c=await a.transform.call(this,e,i,r);if(c&&typeof c==`object`&&c.code){let e=c.code,n=t?.();return n&&(e=(await n.runChain(`transformMdx`,{code:e,filePath:i})).code),Z.set(o,e),{code:e,map:null}}return c},async buildEnd(){Z.save(),await Z.flush(),a.buildEnd&&await a.buildEnd.call(this)}}}const Q=g.createRequire(import.meta.url);function Xt(e){try{let e=v.join(process.cwd(),`node_modules/boltdocs/package.json`);if(y.existsSync(e)){let t=y.realpathSync(e);return g.createRequire(t)}else return g.createRequire(v.join(process.cwd(),`package.json`))}catch{return e}}function Zt(e){let t=v.dirname(e);for(;t&&t!==v.dirname(t);){let e=v.join(t,`package.json`);if(y.existsSync(e))return e;t=v.dirname(t)}return null}function Qt(e){let t=e.split(`/`);return e.startsWith(`@`)?{packageName:t.slice(0,2).join(`/`),subpath:t.slice(2).join(`/`)}:{packageName:t[0],subpath:t.slice(1).join(`/`)}}function $(e,t=Q){try{let{packageName:n,subpath:r}=Qt(e),i;try{i=t.resolve(n+`/package.json`)}catch{i=Zt(t.resolve(n))||``}if(!i)throw Error(`Could not find package.json for ${n}`);let a=v.dirname(i),o=JSON.parse(y.readFileSync(i,`utf-8`)),s=``,c=r?`./`+r:`.`;if(o.exports){let e=o.exports[c]||o.exports[r];e&&(s=typeof e==`string`?e:e.import||e.default||e.require||e)}if(!s&&!r&&(s=o.module||o.main||`index.js`),typeof s==`object`&&s){let e=s;s=e.import||e.default||e.require||``}if(s){let e=v.resolve(a,s);if(y.existsSync(e))return e}}catch{}return t.resolve(e)}function $t(){let e=[`react`,`react-dom`,`react-router-dom`,`react-helmet-async`,`@bdocs/ssg`,`react-fast-compare`,`invariant`],t=[],n=Xt(Q);for(let r of e)try{let e=``;e=r===`@bdocs/ssg`||r===`react-router-dom`||r===`react-helmet-async`?$(r,n):n.resolve(r),e&&t.push(y.realpathSync(e))}catch{}if(n!==Q)for(let n of e)try{let e=``;e=n===`@bdocs/ssg`||n===`react-router-dom`||n===`react-helmet-async`?$(n,Q):Q.resolve(n),e&&t.push(y.realpathSync(e))}catch{}for(let e of[`react/jsx-runtime`,`react/jsx-dev-runtime`,`react-dom/client`]){try{t.push(y.realpathSync(n.resolve(e)))}catch{}if(n!==Q)try{t.push(y.realpathSync(Q.resolve(e)))}catch{}}return Array.from(new Set(t)).map(e=>i(e))}function en(e={},t){let n=v.resolve(process.cwd(),e.docsDir||`docs`),r=i(n),a=t,o,s=!1,c,u=[],d=()=>a,f=e=>{a=e},g=()=>o,_=()=>c;return[{name:`vite-plugin-boltdocs`,enforce:`pre`,async config(e,t){s=t.command===`build`;let r=!!(t.isSsrBuild||e.build?.ssr),i=e.envDir||process.cwd(),o=ne(t.mode,i,``);if(Object.assign(process.env,o),!a){a=await h(n);let e=(await l(n,a)).map(e=>e.path),t=(a.base||`/docs`).replace(/\/$/,``);e.includes(t)||e.push(t),m(a,n,void 0,e),p(e)}let d=(await import(`./package-C1qrHXzn.mjs`)).version,f=A(a.plugins||[],d);return a.plugins=f,c=new nt(f,a),u=f.flatMap(e=>e.vitePlugins||[]),s&&await c.runHook(`beforeBuild`),{base:a.base||`/docs`,ssgOptions:{entry:`boltdocs/entry`,htmlEntry:`index.html`,dirStyle:`flat`,includeAllRoutes:!0,mock:!0,script:`async`,beastiesOptions:{preload:`media`}},build:{ssrManifest:s},optimizeDeps:{include:[`react`,`react-dom`,`react-dom/client`,`react-router-dom`,`react-helmet-async`,`react-fast-compare`,`invariant`],exclude:[`boltdocs`,`boltdocs/client`]},resolve:{alias:[{find:`react-router-dom`,replacement:$(`react-router-dom`)},{find:`react-helmet-async`,replacement:$(`react-helmet-async`)},{find:`@bdocs/ssg`,replacement:$(`@bdocs/ssg`)}],dedupe:[`react`,`react-dom`,...r?[]:[`react-router-dom`,`react-helmet-async`,`@bdocs/ssg`]]},ssr:{external:[`react`,`react-dom`,`react-helmet-async`,`@bdocs/ssg`,`react-fast-compare`,`invariant`,...$t()],optimizeDeps:{include:[`react-fast-compare`,`invariant`]},noExternal:[`react-router-dom`]}}},configResolved(e){o=e},resolveId(e,t,n){let r=[`react`,`react-dom`,`react-router-dom`,`react-helmet-async`,`@bdocs/ssg`].find(t=>e===t||e.startsWith(t+`/`)||e.includes(`/node_modules/${t}/`)||t.startsWith(`@`)&&e.includes(`/node_modules/${t.replace(`/`,v.sep)}/`));if(r&&n?.ssr){let t=e;if(!v.isAbsolute(e)){let n=Xt(Q);try{t=r===`@bdocs/ssg`||r===`react-router-dom`||r===`react-helmet-async`?$(e,n):n.resolve(e)}catch{try{t=r===`@bdocs/ssg`||r===`react-router-dom`||r===`react-helmet-async`?$(e,Q):Q.resolve(e)}catch{}}}try{t=y.realpathSync(t)}catch{}return{id:t,external:!0}}return null},transformIndexHtml:{order:`pre`,handler(e){return Ve(e,a)}},async buildEnd(){let{pool:e}=await import(`./worker-pool-k0DY6k8T.mjs`);await e.terminate()},async closeBundle(){!s||o?.build?.ssr||(await c?.runHook(`afterBuild`),await c?.runHook(`buildEnd`))},configurePreviewServer(e){let t=o?.build?.outDir?v.resolve(o.root||process.cwd(),o.build.outDir):v.resolve(process.cwd(),`dist`);e.middlewares.use((e,n,r)=>{let i=e.url||`/`,a=i.split(`?`)[0].split(`#`)[0];if(v.extname(a))return r();let o=a.replace(/\/$/,``)||`/`,s=v.join(t,o,`index.html`);o!==`/`&&y.existsSync(s)&&(e.url=`${o}/index.html${i.includes(`?`)?`?${i.split(`?`)[1]}`:``}`),r()})}},kt(e,d,g,n),Gt(n,r,d,f,_),Yt(a,_),{...ae({includePublic:!0,png:{quality:80},jpeg:{quality:80},jpg:{quality:80},webp:{quality:80},avif:{quality:80},svg:{multipass:!0,plugins:[{name:`preset-default`}]}}),apply:`build`},...u]}_(import.meta.url);async function tn(e){let t=e?.docsDir||`docs`,n=await h(t),r=(await l(t,n)).map(e=>e.path),i=(n.base||`/docs`).replace(/\/$/,``);return r.includes(i)||r.push(i),m(n,t,void 0,r),p(r),en({...e},n)}async function nn(e,t=`development`){let n=await h(`docs`,e),r=(await l(`docs`,n)).map(e=>e.path),i=(n.base||`/docs`).replace(/\/$/,``);r.includes(i)||r.push(i),m(n,`docs`,e,r),p(r);let a=t===`production`,o=a?{...At}:{};return n.security?.enableCSP&&(o[`Content-Security-Policy`]=jt(n)),{root:e,mode:t,oxc:{jsx:{development:!a,runtime:`automatic`,importSource:`react`}},optimizeDeps:{include:[`react`,`react-dom`,`react-dom/client`,`react-helmet-async`,`react-router-dom`,`react-fast-compare`,`invariant`,`use-sync-external-store/shim`]},build:{},plugins:[ee(),te(),...en({docsDir:`docs`,root:e},n)],resolve:{alias:[{find:`boltdocs/entry`,replacement:re(v.resolve(e,`boltdocs-entry.tsx`))},{find:`boltdocs/client`,replacement:re(v.resolve(e,`boltdocs-client.mjs`))},{find:`use-sync-external-store/shim/index.js`,replacement:`react`},{find:`use-sync-external-store/shim`,replacement:`react`},{find:`use-sync-external-store`,replacement:`react`}],dedupe:[`react`,`react-dom`]},ssr:{external:[`react`,`react-dom`,`react-helmet-async`,`@bdocs/ssg`,`react-fast-compare`,`invariant`,...$t()],optimizeDeps:{include:[`react`,`react-dom`,`react-fast-compare`,`invariant`,...n.vite?.ssr?.optimizeDeps?.include||[]]},noExternal:[`boltdocs`,/@bdocs\/(?!ssg).*/,`react-aria-components`,`@react-aria/collections`,`@react-aria/utils`,`react-router-dom`]},server:{headers:{...o,...n.vite?.server?.headers},...n.vite?.server},preview:{headers:{...o,...n.vite?.preview?.headers},...n.vite?.preview},...n.vite}}export{D as A,et as C,O as D,He as E,E as O,nt as S,A as T,mt as _,ce as a,z as b,_t as c,gt as d,wt as f,V as g,ht as h,Tt as i,Re as j,k,yt as l,H as m,nn as n,le as o,Ct as p,G as r,St as s,tn as t,vt as u,bt as v,We as w,M as x,xt as y};
|
|
@@ -3,4 +3,4 @@
|
|
|
3
3
|
* Copyright (c) 2026 Jesus Alcala
|
|
4
4
|
* Licensed under the MIT License.
|
|
5
5
|
*/
|
|
6
|
-
var e=`2.8.
|
|
6
|
+
var e=`2.8.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
|
-
import{j as e}from"./node-
|
|
6
|
+
import{j as e}from"./node-NZrBn5jg.mjs";import{_ as t,a as n,b as r,d as i,g as a,h as o,i as s,l as c,m as l,p as u,t as d}from"./utils-BYITg7T5.mjs";import{t as f}from"./cache-BMUyNiiA.mjs";import p from"node:path";import m from"github-slugger";function h(e,t,r,i,a){let s=p.relative(t,e).replace(/\\/g,`/`),c=s.split(`/`),l,u,d,f;if(i?.versions&&c.length>0){let e=c[0],t=i.versions.prefix||``,n=i.versions.versions.find(n=>e===t+n.path||e===n.path);n&&(u=n.path,c=c.slice(1))}if(i?.i18n&&c.length>0){let e=c[0];(Array.isArray(i.i18n.locales)?i.i18n.locales.includes(e):i.i18n.locales[e])&&(l=e,c=c.slice(1))}if(c.length>0){let e=c[0].match(/^\((.+)\)$/);e&&(d=e[1].toLowerCase(),c=c.slice(1))}if(c.length>0){let e=c[0].match(/^\[(.+)\]$/);e&&(f=e[1].toLowerCase(),c=c.slice(1))}let m=[...c],h=c.map(e=>o(e)).join(`/`),g=a?a.startsWith(`/`)?a:`/${a}`:n(h||`index.md`),_=[f?`/${f}`:r,u,l,!a&&!f?d:void 0,g].filter(Boolean).join(`/`).replace(/\/+/g,`/`).replace(/\/$/,``)||`/`;return{relativePath:s,finalPath:_.startsWith(`/`)?_:`/${_}`,remainingParts:m,locale:l,version:u,inferredTab:d,subRouteGroup:void 0,collection:f}}const g=/^(#{2,4})\s+(.+)$/gm,_=/\[([^\]]+)\]\([^)]+\)/g,v=/[_*`]/g,y=/\s+/g,b=/[[\]_*`]|#+.*$|\{[^}]+\}/gm,x=/\((?:[^)]+)\)/g;function S(e,t){let n=new m,r=[];for(let t of e.matchAll(g)){let e=t[1].length,i=u(t[2].replace(_,`$1`).replace(v,``).trim()).trim(),a=n.slug(i);r.push({level:e,text:i,id:a})}let i=l(e.replace(b,``).replace(x,``).replace(y,` `)).trim(),a=t?u(t).trim():``;return!a&&e&&(a=i.substring(0,160)),{headings:r,description:a,plainText:i}}const C=[`og:`,`twitter:`,`article:`,`music:`,`video:`,`profile:`,`book:`],w=[`noindex`,`robots`,`canonical`,`keywords`,`author`];function T(e){let t={};e.seo&&typeof e.seo==`object`&&Object.assign(t,e.seo);for(let n of Object.keys(e))(w.includes(n)||C.some(e=>n.startsWith(e)))&&(t[n]=e[n]);return e.hidden===!0&&t.noindex===void 0&&(t.noindex=!0),Object.keys(t).length>0?t:void 0}function E(e){return{title:e.title?u(String(e.title)):void 0,badge:e.badge?u(String(e.badge)):void 0,description:e.description?u(String(e.description)):void 0}}async function D(e,n,a,c){let l=await f.get(e);if(l)return l;let u=e.replace(/\\/g,`/`),m=n.replace(/\\/g,`/`),g=O(u),_=p.resolve(g),v=p.resolve(m);if(p.sep===`/`){let e=e=>{let t=e.replace(/\\/g,`/`);return/^[a-zA-Z]:/.test(t)&&(t=t.replace(/^[a-zA-Z]:/,``)),p.resolve(t)};_=e(g),v=e(m)}let y=p.relative(v,_).replace(/\\/g,`/`);if(y.startsWith(`../`)||y!==`.`&&!r.test(y))throw new t(`Security breach: File is outside of docs directory, contains null bytes, or invalid path characters: ${p.basename(g)}`);let{data:b,content:x}=await i(e),C=h(_,v,a,c,b.permalink),w=S(x,b.description),D=E(b),k=T(b),A=p.basename(C.relativePath),j=o(A),M=C.remainingParts.map(e=>o(e)).slice(0,-1),N=/^index\.mdx?$/.test(j),P=b.sidebarPosition??s(A),F=M.join(`/`),I={route:{path:C.finalPath,componentPath:e,filePath:C.relativePath,title:D.title||o(p.basename(u,p.extname(u))),description:w.description,sidebarPosition:P,headings:w.headings,locale:C.locale,version:C.version,badge:D.badge,icon:b.icon?String(b.icon):void 0,tab:C.inferredTab,subRouteGroup:C.subRouteGroup,slugParts:M,_content:w.plainText,_rawContent:x,date:b.date,lastUpdated:b.lastUpdated,category:b.category,order:b.order,sidebarLabel:b.sidebarLabel,sidebarHidden:b.sidebarHidden||b.hidden,seo:k,frontmatter:b,collection:C.collection,tags:b.tags,author:b.author,draft:b.draft,excerpt:b.excerpt,coverImage:b.coverImage},relativeDir:C.collection?void 0:F||void 0,isGroupIndex:N,inferredTab:C.inferredTab,inferredCollection:C.collection,groupMeta:N?{title:b.groupTitle||D.title||(M.length>0?d(M[M.length-1]):``),position:b.groupPosition??b.sidebarPosition??(C.remainingParts.length>1?s(C.remainingParts[C.remainingParts.length-2]):void 0),icon:b.icon?String(b.icon):void 0}:void 0,inferredGroupPosition:C.remainingParts.length>1?s(C.remainingParts[C.remainingParts.length-2]):void 0};return await f.set(e,I),I}function O(e){let n;try{n=decodeURIComponent(e)}catch{throw c(`SECURITY_ERROR`,`Invalid encoding in path`,{file:e}),new a(`Security breach: Invalid characters or encoding in path`)}if(n.length>260)throw new t(`Path length exceeds limit`);return n}var k=e({parseDocFile:()=>D});export{D as n,k as t};
|
|
@@ -3,4 +3,4 @@
|
|
|
3
3
|
* Copyright (c) 2026 Jesus Alcala
|
|
4
4
|
* Licensed under the MIT License.
|
|
5
5
|
*/
|
|
6
|
-
import{t as e}from"./utils-BYITg7T5.mjs";import{n as t,t as n}from"./cache-BMUyNiiA.mjs";import r from"node:path";import{fdir as i}from"fdir";const a=new t({name:`routes`});function o(){a.invalidateAll(),n.clear()}function s(e){a.invalidate(e),n.invalidate(e)}function c(e){return e.sort((e,t)=>!e.group&&!t.group?l(e,t):e.group?t.group?e.group===t.group?l(e,t):u(e,t):1:-1)}function l(e,t){return e.sidebarPosition!==void 0&&t.sidebarPosition!==void 0?e.sidebarPosition-t.sidebarPosition:e.sidebarPosition===void 0?t.sidebarPosition===void 0?e.title.localeCompare(t.title):1:-1}function u(e,t){return e.groupPosition!==void 0&&t.groupPosition!==void 0?e.groupPosition-t.groupPosition:e.groupPosition===void 0?t.groupPosition===void 0?(e.groupTitle||e.group).localeCompare(t.groupTitle||t.group):1:-1}let d=null;const f=new Map;let p=null;function m(){d=null,f.clear(),o()}async function h(t,n,o,s=!1){if(p)return p;let l=(async()=>{let l=o||n?.base||`/docs`;await a.load(),f.clear();let u;if(!s&&d)u=d;else{let e=await new i().withFullPaths().filter(e=>e.endsWith(`.md`)||e.endsWith(`.mdx`)?!r.relative(t,e).replace(/\\/g,`/`).split(`/`).some(e=>e.startsWith(`_`)&&e!==`_index.md`&&e!==`_index.mdx`):!1).crawl(t).withPromise(),n=[/index\./i,/intro/i,/getting-started/i,/readme/i],a=e.map(e=>{let t=r.basename(e),i=n.findIndex(e=>e.test(t));return{f:e,score:i===-1?2**53-1:i}});a.sort((e,t)=>e.score-t.score),u=a.map(e=>e.f),d=u}a.pruneStale(new Set(u));let p=process.env.NODE_ENV===`test`||process.env.VITEST===`true`,m;if(p){let{parseDocFile:e}=await import(`./parser-
|
|
6
|
+
import{t as e}from"./utils-BYITg7T5.mjs";import{n as t,t as n}from"./cache-BMUyNiiA.mjs";import r from"node:path";import{fdir as i}from"fdir";const a=new t({name:`routes`});function o(){a.invalidateAll(),n.clear()}function s(e){a.invalidate(e),n.invalidate(e)}function c(e){return e.sort((e,t)=>!e.group&&!t.group?l(e,t):e.group?t.group?e.group===t.group?l(e,t):u(e,t):1:-1)}function l(e,t){return e.sidebarPosition!==void 0&&t.sidebarPosition!==void 0?e.sidebarPosition-t.sidebarPosition:e.sidebarPosition===void 0?t.sidebarPosition===void 0?e.title.localeCompare(t.title):1:-1}function u(e,t){return e.groupPosition!==void 0&&t.groupPosition!==void 0?e.groupPosition-t.groupPosition:e.groupPosition===void 0?t.groupPosition===void 0?(e.groupTitle||e.group).localeCompare(t.groupTitle||t.group):1:-1}let d=null;const f=new Map;let p=null;function m(){d=null,f.clear(),o()}async function h(t,n,o,s=!1){if(p)return p;let l=(async()=>{let l=o||n?.base||`/docs`;await a.load(),f.clear();let u;if(!s&&d)u=d;else{let e=await new i().withFullPaths().filter(e=>e.endsWith(`.md`)||e.endsWith(`.mdx`)?!r.relative(t,e).replace(/\\/g,`/`).split(`/`).some(e=>e.startsWith(`_`)&&e!==`_index.md`&&e!==`_index.mdx`):!1).crawl(t).withPromise(),n=[/index\./i,/intro/i,/getting-started/i,/readme/i],a=e.map(e=>{let t=r.basename(e),i=n.findIndex(e=>e.test(t));return{f:e,score:i===-1?2**53-1:i}});a.sort((e,t)=>e.score-t.score),u=a.map(e=>e.f),d=u}a.pruneStale(new Set(u));let p=process.env.NODE_ENV===`test`||process.env.VITEST===`true`,m;if(p){let{parseDocFile:e}=await import(`./parser-BrkFi6YE.mjs`).then(e=>e.t);m=await Promise.all(u.map(async r=>{let i=a.get(r);if(i)return i;let o=await e(r,t,l,n);return a.set(r,o),o}))}else{let{pool:e}=await import(`./worker-pool-k0DY6k8T.mjs`),r=n?{i18n:n.i18n,versions:n.versions}:void 0;m=await Promise.all(u.map(async n=>{let i=a.get(n);if(i)return i;let o=await e.parseFile(n,t,l,r);return a.set(n,o),o}))}a.save();let h=[],_=new Map;for(let e of m)if(!(process.env.NODE_ENV===`production`&&e.route.draft))if(e.inferredCollection){let t=e.inferredCollection;_.has(t)||_.set(t,[]),_.get(t).push(e)}else h.push(e);let v=new Map,y=[],b=n?.i18n?.defaultLocale||``;for(let t of h)if(t.isGroupIndex&&t.relativeDir&&y.push(t),t.relativeDir){let n=`${t.route.locale||b}:${t.relativeDir}`,r=v.get(n);r?r.position===void 0&&t.inferredGroupPosition!==void 0&&(r.position=t.inferredGroupPosition):(r={title:e(t.relativeDir),position:t.inferredGroupPosition},v.set(n,r))}for(let e of y){let t=`${e.route.locale||b}:${e.relativeDir}`,n=v.get(t);e.groupMeta&&(n.title=e.groupMeta.title,e.groupMeta.position!==void 0&&(n.position=e.groupMeta.position),e.groupMeta.icon&&(n.icon=e.groupMeta.icon))}if(n?.theme?.sidebarGroups){let t=n.i18n?Object.keys(n.i18n.locales):[b];for(let[r,i]of Object.entries(n.theme.sidebarGroups))for(let n of t){let t=`${n}:${r}`,a=v.get(t),o;typeof i.title==`string`?o=i.title:i.title&&(o=i.title[n]||i.title[b]),a?(o&&(a.title=o),i.icon&&(a.icon=i.icon)):v.set(t,{title:o||e(r),icon:i.icon})}}let x=Array(h.length);for(let t=0;t<h.length;t++){let n=h[t],r=n.relativeDir,i=n.route.locale||b,a=r?`${i}:${r}`:void 0,o=a?v.get(a):void 0,s;o&&(s=typeof o.title==`string`?o.title:o.title[i]||o.title[b]),x[t]={...n.route,group:r,groupTitle:s||(r?e(r):void 0),groupPosition:o?.position,groupIcon:o?.icon}}let S=[];for(let[,e]of _)for(let t of e)S.push({...t.route,collection:t.inferredCollection});S.sort((e,t)=>{let n=e.date?new Date(e.date).getTime():0;return(t.date?new Date(t.date).getTime():0)-n});let C=x;if(n?.i18n){let e=g(x,n,l);C=[...x,...e]}return[...c(C),...S]})();p=l;try{return await l}finally{p=null}}function g(e,t,n){let r=t.i18n.defaultLocale,i=Object.keys(t.i18n.locales),a=[],o=new Map,s=[];for(let t of e){let e=t.locale||r;o.has(e)||o.set(e,new Set),o.get(e).add(t.path),e===r&&s.push(t)}for(let e of i){let i=o.get(e)||new Set;for(let o of s){let s=_(o.path,r,e,n,t);s!==o.path&&(i.has(s)||a.push({...o,path:s,locale:e}))}}return a}function _(e,t,n,r,i){let a=`${e}:${n}`,o=f.get(a);if(o)return o;let s=r.startsWith(`/`)?r:`/`+r,c=s;if(i?.versions){let t=i.versions.prefix||``;for(let n of i.versions.versions){let r=`${s}/${t+n.path}`;if(e.startsWith(r)){c=r;break}let i=`${s}/${n.path}`;if(e.startsWith(i)){c=i;break}}}let l=e.substring(c.length),u=`/${t}`;if(l.startsWith(u+`/`))l=`/`+n+`/`+l.substring(u.length+1);else if(l===u)l=`/`+n;else if(l===`/`||l===``)l=`/`+n;else{let e=l.startsWith(`/`)?``:`/`;l=`/`+n+e+l}let d=c+l;return f.size>2e3&&f.clear(),f.set(a,d),d}export{s as i,m as n,a as r,h as t};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "boltdocs",
|
|
3
|
-
"version": "2.8.
|
|
3
|
+
"version": "2.8.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",
|
|
@@ -87,7 +87,7 @@
|
|
|
87
87
|
"vite-plugin-image-optimizer": "2.0.3",
|
|
88
88
|
"zod": "4.3.6",
|
|
89
89
|
"@bdocs/dui": "0.1.2",
|
|
90
|
-
"@bdocs/ssg": "0.1.
|
|
90
|
+
"@bdocs/ssg": "0.1.1"
|
|
91
91
|
},
|
|
92
92
|
"peerDependencies": {
|
|
93
93
|
"react": "19.0.0",
|