boltdocs 2.2.0 → 2.4.1
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/CHANGELOG.md +24 -0
- package/bin/boltdocs.js +2 -2
- package/dist/base-ui/index.d.mts +4 -4
- package/dist/base-ui/index.d.ts +4 -4
- package/dist/base-ui/index.js +1 -1
- package/dist/base-ui/index.mjs +1 -1
- package/dist/{cache-CRAZ55X7.mjs → cache-P6WK424C.mjs} +1 -1
- package/dist/chunk-2DI3OGHV.mjs +1 -0
- package/dist/chunk-2Z5T6EAU.mjs +1 -0
- package/dist/chunk-64AJ5QLT.mjs +1 -0
- package/dist/chunk-DDX52BX4.mjs +1 -0
- package/dist/chunk-HRZDSFR5.mjs +1 -0
- package/dist/chunk-PPVDMDEL.mjs +1 -0
- package/dist/chunk-UBE4CKOA.mjs +1 -0
- package/dist/chunk-UWT4AJTH.mjs +73 -0
- package/dist/chunk-WWJ7WKDI.mjs +1 -0
- package/dist/chunk-Y4RRHPXC.mjs +1 -0
- package/dist/client/index.d.mts +15 -21
- package/dist/client/index.d.ts +15 -21
- package/dist/client/index.js +1 -1
- package/dist/client/index.mjs +1 -1
- package/dist/client/ssr.js +1 -1
- package/dist/client/ssr.mjs +1 -1
- package/dist/client/types.d.mts +1 -1
- package/dist/client/types.d.ts +1 -1
- package/dist/client/types.js +1 -1
- package/dist/{copy-markdown-CbS8X-qe.d.mts → copy-markdown--9yjpbyy.d.mts} +1 -1
- package/dist/{copy-markdown-C-90ixSe.d.ts → copy-markdown-l2MYkcG7.d.ts} +1 -1
- package/dist/hooks/index.d.mts +8 -16
- package/dist/hooks/index.d.ts +8 -16
- package/dist/hooks/index.js +1 -1
- package/dist/hooks/index.mjs +1 -1
- package/dist/integrations/index.d.mts +1 -1
- package/dist/integrations/index.d.ts +1 -1
- package/dist/{loading-chS3pm9W.d.ts → loading-BwUos0wZ.d.mts} +5 -16
- package/dist/{loading-BqGrFWO5.d.mts → loading-nlnUD01v.d.ts} +5 -16
- package/dist/mdx/index.d.mts +4 -2
- package/dist/mdx/index.d.ts +4 -2
- package/dist/mdx/index.js +1 -1
- package/dist/mdx/index.mjs +1 -1
- package/dist/node/cli-entry.js +25 -22
- package/dist/node/cli-entry.mjs +5 -1
- package/dist/node/index.d.mts +0 -9
- package/dist/node/index.d.ts +0 -9
- package/dist/node/index.js +14 -15
- package/dist/node/index.mjs +1 -1
- package/dist/primitives/index.d.mts +13 -22
- package/dist/primitives/index.d.ts +13 -22
- package/dist/primitives/index.js +1 -1
- package/dist/primitives/index.mjs +1 -1
- package/dist/search-dialog-OONKKC5H.mjs +1 -0
- package/dist/{types-j7jvWsJj.d.ts → types-opDA2E9-.d.mts} +4 -11
- package/dist/{types-j7jvWsJj.d.mts → types-opDA2E9-.d.ts} +4 -11
- package/dist/{use-routes-Cd806kGw.d.ts → use-routes-DNwgTRpU.d.ts} +1 -1
- package/dist/{use-routes-DDL0_jkQ.d.mts → use-routes-DrT80Eom.d.mts} +1 -1
- package/package.json +2 -1
- package/src/client/app/index.tsx +20 -9
- package/src/client/app/mdx-components-context.tsx +2 -2
- package/src/client/app/mdx-page.tsx +0 -1
- package/src/client/app/scroll-handler.tsx +21 -10
- package/src/client/app/theme-context.tsx +14 -7
- package/src/client/components/default-layout.tsx +6 -4
- package/src/client/components/docs-layout.tsx +34 -4
- package/src/client/components/icons-dev.tsx +154 -0
- package/src/client/components/mdx/code-block.tsx +57 -5
- package/src/client/components/mdx/component-preview.tsx +1 -0
- package/src/client/components/mdx/file-tree.tsx +35 -0
- package/src/client/components/primitives/helpers/observer.ts +30 -39
- package/src/client/components/primitives/index.ts +1 -0
- package/src/client/components/primitives/menu.tsx +18 -12
- package/src/client/components/primitives/navbar.tsx +34 -93
- package/src/client/components/primitives/on-this-page.tsx +7 -161
- package/src/client/components/primitives/popover.tsx +1 -2
- package/src/client/components/primitives/search-dialog.tsx +4 -4
- package/src/client/components/primitives/sidebar.tsx +3 -2
- package/src/client/components/primitives/skeleton.tsx +26 -0
- package/src/client/components/ui-base/copy-markdown.tsx +4 -10
- package/src/client/components/ui-base/index.ts +0 -1
- package/src/client/components/ui-base/loading.tsx +43 -73
- package/src/client/components/ui-base/navbar.tsx +18 -15
- package/src/client/components/ui-base/page-nav.tsx +2 -1
- package/src/client/components/ui-base/powered-by.tsx +4 -1
- package/src/client/components/ui-base/search-dialog.tsx +16 -5
- package/src/client/components/ui-base/sidebar.tsx +4 -2
- package/src/client/hooks/use-i18n.ts +3 -2
- package/src/client/hooks/use-localized-to.ts +6 -5
- package/src/client/hooks/use-navbar.ts +37 -6
- package/src/client/hooks/use-page-nav.ts +27 -6
- package/src/client/hooks/use-routes.ts +2 -1
- package/src/client/hooks/use-search.ts +81 -59
- package/src/client/hooks/use-sidebar.ts +2 -1
- package/src/client/index.ts +0 -1
- package/src/client/store/use-boltdocs-store.ts +6 -5
- package/src/client/theme/neutral.css +31 -3
- package/src/client/types.ts +2 -2
- package/src/node/{cli.ts → cli/build.ts} +17 -23
- package/src/node/cli/dev.ts +22 -0
- package/src/node/cli/doctor.ts +243 -0
- package/src/node/cli/index.ts +9 -0
- package/src/node/cli/ui.ts +54 -0
- package/src/node/cli-entry.ts +16 -16
- package/src/node/config.ts +1 -15
- package/src/node/mdx/cache.ts +1 -1
- package/src/node/mdx/index.ts +2 -0
- package/src/node/mdx/rehype-shiki.ts +9 -0
- package/src/node/mdx/remark-code-meta.ts +35 -0
- package/src/node/mdx/remark-shiki.ts +1 -1
- package/src/node/plugin/entry.ts +22 -15
- package/src/node/plugin/index.ts +46 -14
- package/src/node/routes/parser.ts +12 -9
- package/src/node/search/index.ts +55 -0
- package/src/node/ssg/index.ts +83 -15
- package/src/node/ssg/robots.ts +7 -4
- package/dist/chunk-5D6XPYQ3.mjs +0 -74
- package/dist/chunk-6QXCKZAT.mjs +0 -1
- package/dist/chunk-H4M6P3DM.mjs +0 -1
- package/dist/chunk-JXHNX2WN.mjs +0 -1
- package/dist/chunk-MZBG4N4W.mjs +0 -1
- package/dist/chunk-Q3MLYTIQ.mjs +0 -1
- package/dist/chunk-RSII2UPE.mjs +0 -1
- package/dist/chunk-ZK2266IZ.mjs +0 -1
- package/dist/chunk-ZRJ55GGF.mjs +0 -1
- package/dist/search-dialog-MA5AISC7.mjs +0 -1
- package/src/client/components/ui-base/progress-bar.tsx +0 -67
package/dist/node/cli-entry.js
CHANGED
|
@@ -1,30 +1,29 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
"use strict";var Ie=Object.create;var vt=Object.defineProperty;var je=Object.getOwnPropertyDescriptor;var He=Object.getOwnPropertyNames;var Le=Object.getPrototypeOf,Ee=Object.prototype.hasOwnProperty;var bt=(o,t)=>()=>(o&&(t=o(o=0)),t);var Ae=(o,t)=>{for(var e in t)vt(o,e,{get:t[e],enumerable:!0})},ze=(o,t,e,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of He(t))!Ee.call(o,i)&&i!==e&&vt(o,i,{get:()=>t[i],enumerable:!(s=je(t,i))||s.enumerable});return o};var f=(o,t,e)=>(e=o!=null?Ie(Le(o)):{},ze(t||!o||!o.__esModule?vt(e,"default",{value:o,enumerable:!0}):e,o));var Ne,w,m=bt(()=>{"use strict";Ne=()=>typeof document>"u"?new URL(`file:${__filename}`).href:document.currentScript&&document.currentScript.tagName.toUpperCase()==="SCRIPT"?document.currentScript.src:new URL("main.js",document.baseURI).href,w=Ne()});function k(o){return o.replace(/\\/g,"/")}function q(o){return o.replace(/^\d+\./,"")}function nt(o){let t=o.match(/^(\d+)\./);return t?parseInt(t[1],10):void 0}function Nt(o){return/\.mdx?$/.test(o)}function rt(o){try{return wt.default.statSync(o).mtimeMs}catch{return 0}}function Ut(o){let t=wt.default.readFileSync(o,"utf-8");try{let{data:e,content:s}=(0,zt.default)(t);return{data:e,content:s}}catch{return{data:{},content:t}}}function H(o){return o.replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">")}function Ct(o){return H(o)}function Gt(o){let e=o.split("/").map(q).join("/").replace(/\/$/,"");return e=e.replace(/\.mdx?$/,""),(e==="index"||e.endsWith("/index"))&&(e=e.replace(/index$/,"")),e.startsWith("/")||(e="/"+e),e.length>1&&e.endsWith("/")&&(e=e.slice(0,-1)),e}function J(o){return Pt.default.sanitize(o)}function $t(o){return Pt.default.sanitize(o,{ALLOWED_TAGS:[],KEEP_CONTENT:!0})}function K(o){return o.charAt(0).toUpperCase()+o.slice(1)}function St(o,t){return o?typeof o=="string"?o:t&&o[t]?o[t]:Object.values(o)[0]||"":""}var wt,zt,Pt,T=bt(()=>{"use strict";m();wt=f(require("fs")),zt=f(require("gray-matter")),Pt=f(require("isomorphic-dompurify"))});var Tt={};Ae(Tt,{AssetCache:()=>Rt,FileCache:()=>X,TransformCache:()=>Z,flushCache:()=>Je});async function Je(){await I.flush()}var C,B,E,L,A,st,Ue,at,kt,ro,Mt,Ge,Ve,We,qe,Bt,Dt,I,X,Z,Rt,Q=bt(()=>{"use strict";m();C=f(require("fs")),B=f(require("path")),E=f(require("crypto")),L=f(require("zlib")),A=require("util");T();st=(0,A.promisify)(C.default.writeFile),Ue=(0,A.promisify)(C.default.readFile),at=(0,A.promisify)(C.default.mkdir),kt=(0,A.promisify)(C.default.rename),ro=(0,A.promisify)(C.default.unlink),Mt=process.env.BOLTDOCS_CACHE_DIR||".boltdocs",Ge="assets",Ve="shards",We=parseInt(process.env.BOLTDOCS_CACHE_LRU_LIMIT||"2000",10),qe=process.env.BOLTDOCS_CACHE_COMPRESS!=="0",Bt=class{constructor(t){this.limit=t}cache=new Map;get(t){let e=this.cache.get(t);return e!==void 0&&(this.cache.delete(t),this.cache.set(t,e)),e}set(t,e){if(this.cache.has(t))this.cache.delete(t);else if(this.cache.size>=this.limit){let s=this.cache.keys().next().value;s!==void 0&&this.cache.delete(s)}this.cache.set(t,e)}get size(){return this.cache.size}clear(){this.cache.clear()}},Dt=class{queue=Promise.resolve();pendingCount=0;add(t){this.pendingCount++,this.queue=this.queue.then(t).finally(()=>{this.pendingCount--})}async flush(){await this.queue}get pending(){return this.pendingCount}},I=new Dt,X=class{entries=new Map;cachePath=null;compress;constructor(t={}){if(this.compress=t.compress!==void 0?t.compress:qe,t.name){let e=t.root||process.cwd(),s=this.compress?"json.gz":"json";this.cachePath=B.default.resolve(e,Mt,`${t.name}.${s}`)}}load(){if(process.env.BOLTDOCS_NO_CACHE!=="1"&&!(!this.cachePath||!C.default.existsSync(this.cachePath)))try{let t=C.default.readFileSync(this.cachePath);this.cachePath.endsWith(".gz")&&(t=L.default.gunzipSync(t));let e=JSON.parse(t.toString("utf-8"));this.entries=new Map(Object.entries(e))}catch{}}save(){if(process.env.BOLTDOCS_NO_CACHE==="1"||!this.cachePath)return;let t=Object.fromEntries(this.entries),e=JSON.stringify(t),s=this.cachePath,i=this.compress;I.add(async()=>{try{await at(B.default.dirname(s),{recursive:!0});let r=Buffer.from(e);i&&(r=L.default.gzipSync(r));let c=`${s}.${E.default.randomBytes(4).toString("hex")}.tmp`;await st(c,r),await kt(c,s)}catch{}})}get(t){let e=this.entries.get(t);return!e||rt(t)!==e.mtime?null:e.data}set(t,e){this.entries.set(t,{data:e,mtime:rt(t)})}isValid(t){let e=this.entries.get(t);return e?rt(t)===e.mtime:!1}invalidate(t){this.entries.delete(t)}invalidateAll(){this.entries.clear()}pruneStale(t){for(let e of this.entries.keys())t.has(e)||this.entries.delete(e)}get size(){return this.entries.size}async flush(){await I.flush()}},Z=class{index=new Map;memoryCache=new Bt(We);baseDir;shardsDir;indexPath;constructor(t,e=process.cwd()){this.baseDir=B.default.resolve(e,Mt,`transform-${t}`),this.shardsDir=B.default.resolve(this.baseDir,Ve),this.indexPath=B.default.resolve(this.baseDir,"index.json")}load(){if(process.env.BOLTDOCS_NO_CACHE!=="1"&&C.default.existsSync(this.indexPath))try{let t=C.default.readFileSync(this.indexPath,"utf-8");this.index=new Map(Object.entries(JSON.parse(t)))}catch{}}save(){if(process.env.BOLTDOCS_NO_CACHE==="1")return;let t=JSON.stringify(Object.fromEntries(this.index)),e=this.indexPath;I.add(async()=>{await at(B.default.dirname(e),{recursive:!0}),await st(e,t)})}async getMany(t){let e=new Map,s=[];for(let i of t){let r=this.memoryCache.get(i);r?e.set(i,r):this.index.has(i)&&s.push(i)}if(s.length>0){let i=await Promise.all(s.map(async r=>{let c=this.index.get(r),p=B.default.resolve(this.shardsDir,`${c}.gz`);try{let n=await Ue(p),l=L.default.gunzipSync(n).toString("utf-8");return this.memoryCache.set(r,l),{key:r,val:l}}catch{return null}}));for(let r of i)r&&e.set(r.key,r.val)}return e}get(t){let e=this.memoryCache.get(t);if(e)return e;let s=this.index.get(t);if(!s)return null;let i=B.default.resolve(this.shardsDir,`${s}.gz`);if(!C.default.existsSync(i))return null;try{let r=C.default.readFileSync(i),c=L.default.gunzipSync(r).toString("utf-8");return this.memoryCache.set(t,c),c}catch{return null}}set(t,e){let s=E.default.createHash("md5").update(e).digest("hex");this.index.set(t,s),this.memoryCache.set(t,e);let i=B.default.resolve(this.shardsDir,`${s}.gz`);I.add(async()=>{if(C.default.existsSync(i))return;await at(this.shardsDir,{recursive:!0});let r=L.default.gzipSync(Buffer.from(e)),c=`${i}.${E.default.randomBytes(4).toString("hex")}.tmp`;await st(c,r),await kt(c,i)})}get size(){return this.index.size}async flush(){await I.flush()}},Rt=class{assetsDir;constructor(t=process.cwd()){this.assetsDir=B.default.resolve(t,Mt,Ge)}getFileHash(t){return E.default.createHash("md5").update(C.default.readFileSync(t)).digest("hex")}get(t,e){if(!C.default.existsSync(t))return null;let s=this.getFileHash(t),i=this.getCachedPath(t,`${e}-${s}`);return C.default.existsSync(i)?i:null}set(t,e,s){let i=this.getFileHash(t),r=this.getCachedPath(t,`${e}-${i}`);I.add(async()=>{await at(this.assetsDir,{recursive:!0});let c=`${r}.${E.default.randomBytes(4).toString("hex")}.tmp`;await st(c,s),await kt(c,r)})}getCachedPath(t,e){let s=B.default.extname(t),i=B.default.basename(t,s),r=e.replace(/[^a-z0-9]/gi,"-").toLowerCase();return B.default.join(this.assetsDir,`${i}.${r}${s}`)}clear(){C.default.existsSync(this.assetsDir)&&C.default.rmSync(this.assetsDir,{recursive:!0,force:!0})}async flush(){await I.flush()}}});m();var ke=f(require("cac"));m();var U=require("vite");m();var Pe=f(require("@vitejs/plugin-react")),Ce=f(require("@tailwindcss/vite"));m();var se=require("vite");m();var Kt=f(require("fast-glob"));T();m();Q();var _=new X({name:"routes"});function _t(){_.invalidateAll()}function Ot(o){_.invalidate(o)}m();var z=f(require("path")),Vt=f(require("github-slugger"));T();function Wt(o,t,e,s){let i=decodeURIComponent(o),r=z.default.resolve(i),c=z.default.resolve(t),p=k(z.default.relative(c,r));if(p.startsWith("../")||p===".."||r.includes("\0"))throw new Error(`Security breach: File is outside of docs directory or contains null bytes: ${o}`);let{data:n,content:l}=Ut(o),d=p.split("/"),u,y;if(s?.versions&&d.length>0){let R=d[0],yt=s.versions.prefix||"",it=s.versions.versions.find(W=>{let xt=yt+W.path;return R===xt||R===W.path});it&&(y=it.path,d=d.slice(1))}if(s?.i18n&&d.length>0){let R=d[0];s.i18n.locales[R]&&(u=R,d=d.slice(1))}let x;if(d.length>0){let R=d[0].match(/^\((.+)\)$/);R&&(x=R[1].toLowerCase(),d=d.slice(1))}let S=d.join("/"),a;n.permalink?a=n.permalink.startsWith("/")?n.permalink:`/${n.permalink}`:a=Gt(S||"index.md");let g=e;y&&(g+="/"+y),u&&(g+="/"+u),g+=a==="/"?"":a,(!g||g==="")&&(g="/");let b=d[d.length-1],h=q(b),D=q(z.default.basename(o,z.default.extname(o))),v=n.sidebarPosition??nt(b),$=d.length>=2?d[0]:void 0,P=$?q($):void 0,V=d.length>=2&&/^index\.mdx?$/.test(h),Me=new Vt.default,Et=[],Te=/^(#{2,4})\s+(.+)$/gm;for(let R of l.matchAll(Te)){let yt=R[1].length,it=R[2].replace(/\[([^\]]+)\]\([^\)]+\)/g,"$1").replace(/[_*`]/g,"").trim(),W=J(it).trim(),xt=Me.slug(W);Et.push({level:yt,text:W,id:xt})}let _e=n.title?J(String(n.title)):D,ht=n.description?J(String(n.description)):"";!ht&&l&&(ht=$t(l.replace(/^#+.*$/gm,"").replace(/\[([^\]]+)\]\([^\)]+\)/g,"$1").replace(/[_*`]/g,"").replace(/\s+/g," ")).trim().slice(0,160));let Oe=n.badge?J(String(n.badge)):void 0,At=n.icon?String(n.icon):void 0,Fe=Ke(l);return{route:{path:g,componentPath:o,filePath:p,title:_e,description:ht,sidebarPosition:v,headings:Et,locale:u,version:y,badge:Oe,icon:At,tab:x,_content:Fe,_rawContent:l},relativeDir:P,isGroupIndex:V,inferredTab:x,groupMeta:V?{title:n.groupTitle||n.title||(P?K(P):""),position:n.groupPosition??n.sidebarPosition??($?nt($):void 0),icon:At}:void 0,inferredGroupPosition:$?nt($):void 0}}function Ke(o){let t=o.replace(/^#+.*$/gm,"").replace(/\[([^\]]+)\]\([^\)]+\)/g,"$1").replace(/\{[^\}]+\}/g,"").replace(/[_*`]/g,"").replace(/\s+/g," ");return $t(t).trim()}m();function Jt(o){return o.sort((t,e)=>!t.group&&!e.group?qt(t,e):t.group?e.group?t.group!==e.group?Xe(t,e):qt(t,e):1:-1)}function qt(o,t){return o.sidebarPosition!==void 0&&t.sidebarPosition!==void 0?o.sidebarPosition-t.sidebarPosition:o.sidebarPosition!==void 0?-1:t.sidebarPosition!==void 0?1:o.title.localeCompare(t.title)}function Xe(o,t){return o.groupPosition!==void 0&&t.groupPosition!==void 0?o.groupPosition-t.groupPosition:o.groupPosition!==void 0?-1:t.groupPosition!==void 0?1:(o.groupTitle||o.group).localeCompare(t.groupTitle||t.group)}var Ft=null,Y=new Map;async function tt(o,t,e="/docs",s=!0){let i=performance.now();_.load(),Y.clear(),(process.env.BOLTDOCS_FORCE_REPARSE==="true"||t?.i18n)&&_.invalidateAll();let r;!s&&Ft?r=Ft:(r=await(0,Kt.default)(["**/*.md","**/*.mdx"],{cwd:o,absolute:!0,suppressErrors:!0,followSymbolicLinks:!1}),Ft=r),_.pruneStale(new Set(r));let c=50,p=[],n=0;for(let a=0;a<r.length;a+=c){let g=r.slice(a,a+c),b=await Promise.all(g.map(async h=>{let D=_.get(h);if(D)return n++,D;let v=Wt(h,o,e,t);return _.set(h,v),v}));p.push(...b),a+c<r.length&&await new Promise(h=>setImmediate(h))}_.save();let l=new Map,d=[];for(let a of p)if(a.isGroupIndex&&a.relativeDir&&d.push(a),a.relativeDir){let g=l.get(a.relativeDir);g?(g.position===void 0&&a.inferredGroupPosition!==void 0&&(g.position=a.inferredGroupPosition),!g.icon&&a.route.icon&&(g.icon=a.route.icon)):(g={title:K(a.relativeDir),position:a.inferredGroupPosition,icon:a.route.icon},l.set(a.relativeDir,g))}for(let a of d){let g=l.get(a.relativeDir);a.groupMeta&&(g.title=a.groupMeta.title,a.groupMeta.position!==void 0&&(g.position=a.groupMeta.position),a.groupMeta.icon&&(g.icon=a.groupMeta.icon))}let u=new Array(p.length);for(let a=0;a<p.length;a++){let g=p[a],b=g.relativeDir,h=b?l.get(b):void 0;u[a]={...g.route,group:b,groupTitle:h?.title||(b?K(b):void 0),groupPosition:h?.position,groupIcon:h?.icon}}let y=u;if(t?.i18n){let a=Ze(u,t,e);y=[...u,...a]}let x=Jt(y),S=performance.now()-i;return console.log(`[boltdocs] Route generation: ${S.toFixed(2)}ms (${r.length} files, ${n} cache hits)`),x}function Ze(o,t,e){let s=t.i18n.defaultLocale,i=Object.keys(t.i18n.locales),r=[],c=new Map,p=[];for(let n of o){let l=n.locale||s;c.has(l)||c.set(l,new Set),c.get(l).add(n.path),l===s&&p.push(n)}for(let n of i){let l=c.get(n)||new Set;for(let d of p){let u=Qe(d.path,s,n,e,t);u!==d.path&&(l.has(u)||r.push({...d,path:u,locale:n}))}}return r}function Qe(o,t,e,s,i){let r=`${o}:${e}`,c=Y.get(r);if(c)return c;let p=s;if(i?.versions){let u=i.versions.prefix||"";for(let y of i.versions.versions){let x=u+y.path;if(o.startsWith(`${s}/${x}`)){p+="/"+x;break}if(o.startsWith(`${s}/${y.path}`)){p+="/"+y.path;break}}}let n=o.substring(p.length),l=`/${t}`;if(n.startsWith(l+"/"))n="/"+e+"/"+n.substring(l.length+1);else if(n===l)n="/"+e;else if(n==="/"||n==="")n="/"+e;else{let u=n.startsWith("/")?"":"/";n="/"+e+u+n}let d=p+n;return Y.size>2e3&&Y.clear(),Y.set(r,d),d}var ae=require("vite-plugin-image-optimizer");m();var ct=f(require("path")),Xt=f(require("fs")),Zt=require("vite");var lt=["boltdocs.config.js","boltdocs.config.mjs","boltdocs.config.ts"];async function O(o,t=process.cwd()){let e=t,s={docsDir:ct.default.resolve(o),theme:{title:"Boltdocs",description:"A Vite documentation framework",navbar:[{label:"Home",href:"/"},{label:"Documentation",href:"/docs"}],codeTheme:{light:"github-light",dark:"github-dark"},poweredBy:!0,breadcrumbs:!0}},i={};for(let n of lt){let l=ct.default.resolve(e,n);if(Xt.default.existsSync(l))try{let d=await(0,Zt.loadConfigFromFile)({command:"serve",mode:"development"},l,e);if(d){i=d.config;break}}catch(d){console.warn(`[boltdocs] Failed to load config from ${n}:`,d)}}let c={...{title:i.title,description:i.description,logo:i.logo,favicon:i.favicon,ogImage:i.ogImage,navbar:i.navbar,sidebar:i.sidebar,socialLinks:i.socialLinks,footer:i.footer,githubRepo:i.githubRepo,tabs:i.tabs,codeTheme:i.codeTheme,copyMarkdown:i.copyMarkdown,breadcrumbs:i.breadcrumbs,poweredBy:i.poweredBy,communityHelp:i.communityHelp,version:i.version,editLink:i.editLink},...i.theme||{}},p=Object.fromEntries(Object.entries(c).filter(([n,l])=>l!==void 0));return p.navbar&&(p.navbar=p.navbar.map(n=>({label:n.label||n.text||"",href:n.href||n.link||n.to||"",items:n.items?.map(l=>({label:l.label||l.text||"",href:l.href||l.link||l.to||""}))}))),{docsDir:ct.default.resolve(o),homePage:i.homePage,theme:{...s.theme,...p},i18n:i.i18n,versions:i.versions,siteUrl:i.siteUrl,plugins:i.plugins||[],external:i.external,integrations:i.integrations,robots:i.robots,vite:i.vite}}m();var j=f(require("fs")),F=f(require("path"));T();var oe=require("url"),ie=require("module");m();T();function Qt(o,t){let e=H(t.title),s=H(t.description);return o.replace(/<title>.*?<\/title>/,`<title>${e}</title>`).replace(/(<meta name="description" content=")[^"]*(")/,`$1${s}$2`).replace(/(<meta property="og:title" content=")[^"]*(")/,`$1${e}$2`).replace(/(<meta property="og:description" content=")[^"]*(")/,`$1${s}$2`).replace(/(<meta name="twitter:title" content=")[^"]*(")/,`$1${e}$2`).replace(/(<meta name="twitter:description" content=")[^"]*(")/,`$1${s}$2`)}m();T();function Yt(o,t){let e=t?.siteUrl?.replace(/\/$/,"")||"https://example.com",s=new Date().toISOString().split("T")[0],i=[{url:"/",priority:"1.0",changefreq:"daily"}];if(t?.i18n){let c=t.i18n.defaultLocale;for(let p of Object.keys(t.i18n.locales))p!==c&&i.push({url:`/${p}/`,priority:"1.0",changefreq:"daily"})}return`<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
"use strict";var Xe=Object.create;var _t=Object.defineProperty;var Ye=Object.getOwnPropertyDescriptor;var Ze=Object.getOwnPropertyNames;var Qe=Object.getPrototypeOf,to=Object.prototype.hasOwnProperty;var Tt=(o,t)=>()=>(o&&(t=o(o=0)),t);var Zt=(o,t)=>{for(var e in t)_t(o,e,{get:t[e],enumerable:!0})},eo=(o,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Ze(t))!to.call(o,i)&&i!==e&&_t(o,i,{get:()=>t[i],enumerable:!(r=Ye(t,i))||r.enumerable});return o};var P=(o,t,e)=>(e=o!=null?Xe(Qe(o)):{},eo(t||!o||!o.__esModule?_t(e,"default",{value:o,enumerable:!0}):e,o));var oo,$,m=Tt(()=>{"use strict";oo=()=>typeof document>"u"?new URL(`file:${__filename}`).href:document.currentScript&&document.currentScript.tagName.toUpperCase()==="SCRIPT"?document.currentScript.src:new URL("main.js",document.baseURI).href,$=oo()});function R(o){return o.replace(/\\/g,"/")}function Z(o){return o.replace(/^\d+\./,"")}function gt(o){let t=o.match(/^(\d+)\./);return t?parseInt(t[1],10):void 0}function te(o){return/\.mdx?$/.test(o)}function ft(o){try{return Ft.default.statSync(o).mtimeMs}catch{return 0}}function ht(o){let t=Ft.default.readFileSync(o,"utf-8");try{let{data:e,content:r}=(0,Qt.default)(t);return{data:e,content:r}}catch{return{data:{},content:t}}}function z(o){return o.replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">")}function Ot(o){return z(o)}function ee(o){let e=o.split("/").map(Z).join("/").replace(/\/$/,"");return e=e.replace(/\.mdx?$/,""),(e==="index"||e.endsWith("/index"))&&(e=e.replace(/index$/,"")),e.startsWith("/")||(e="/"+e),e.length>1&&e.endsWith("/")&&(e=e.slice(0,-1)),e}function Q(o){return It.default.sanitize(o)}function jt(o){return It.default.sanitize(o,{ALLOWED_TAGS:[],KEEP_CONTENT:!0})}function tt(o){return o.charAt(0).toUpperCase()+o.slice(1)}function Ht(o,t){return o?typeof o=="string"?o:t&&o[t]?o[t]:Object.values(o)[0]||"":""}var Ft,Qt,It,F=Tt(()=>{"use strict";m();Ft=P(require("fs")),Qt=P(require("gray-matter")),It=P(require("isomorphic-dompurify"))});var Ut={};Zt(Ut,{AssetCache:()=>Et,FileCache:()=>et,TransformCache:()=>ot,flushCache:()=>co});async function co(){await A.flush()}var B,M,G,U,W,yt,io,xt,zt,bo,Nt,no,ro,so,ao,Lt,At,A,et,ot,Et,it=Tt(()=>{"use strict";m();B=P(require("fs")),M=P(require("path")),G=P(require("crypto")),U=P(require("zlib")),W=require("util");F();yt=(0,W.promisify)(B.default.writeFile),io=(0,W.promisify)(B.default.readFile),xt=(0,W.promisify)(B.default.mkdir),zt=(0,W.promisify)(B.default.rename),bo=(0,W.promisify)(B.default.unlink),Nt=process.env.BOLTDOCS_CACHE_DIR||".boltdocs",no="assets",ro="shards",so=parseInt(process.env.BOLTDOCS_CACHE_LRU_LIMIT||"2000",10),ao=process.env.BOLTDOCS_CACHE_COMPRESS!=="0",Lt=class{constructor(t){this.limit=t}cache=new Map;get(t){let e=this.cache.get(t);return e!==void 0&&(this.cache.delete(t),this.cache.set(t,e)),e}set(t,e){if(this.cache.has(t))this.cache.delete(t);else if(this.cache.size>=this.limit){let r=this.cache.keys().next().value;r!==void 0&&this.cache.delete(r)}this.cache.set(t,e)}get size(){return this.cache.size}clear(){this.cache.clear()}},At=class{queue=Promise.resolve();pendingCount=0;add(t){this.pendingCount++,this.queue=this.queue.then(t).finally(()=>{this.pendingCount--})}async flush(){await this.queue}get pending(){return this.pendingCount}},A=new At,et=class{entries=new Map;cachePath=null;compress;constructor(t={}){if(this.compress=t.compress!==void 0?t.compress:ao,t.name){let e=t.root||process.cwd(),r=this.compress?"json.gz":"json";this.cachePath=M.default.resolve(e,Nt,`${t.name}.${r}`)}}load(){if(process.env.BOLTDOCS_NO_CACHE!=="1"&&!(!this.cachePath||!B.default.existsSync(this.cachePath)))try{let t=B.default.readFileSync(this.cachePath);this.cachePath.endsWith(".gz")&&(t=U.default.gunzipSync(t));let e=JSON.parse(t.toString("utf-8"));this.entries=new Map(Object.entries(e))}catch{}}save(){if(process.env.BOLTDOCS_NO_CACHE==="1"||!this.cachePath)return;let t=Object.fromEntries(this.entries),e=JSON.stringify(t),r=this.cachePath,i=this.compress;A.add(async()=>{try{await xt(M.default.dirname(r),{recursive:!0});let s=Buffer.from(e);i&&(s=U.default.gzipSync(s));let c=`${r}.${G.default.randomBytes(4).toString("hex")}.tmp`;await yt(c,s),await zt(c,r)}catch{}})}get(t){let e=this.entries.get(t);return!e||ft(t)!==e.mtime?null:e.data}set(t,e){this.entries.set(t,{data:e,mtime:ft(t)})}isValid(t){let e=this.entries.get(t);return e?ft(t)===e.mtime:!1}invalidate(t){this.entries.delete(t)}invalidateAll(){this.entries.clear()}pruneStale(t){for(let e of this.entries.keys())t.has(e)||this.entries.delete(e)}get size(){return this.entries.size}async flush(){await A.flush()}},ot=class{index=new Map;memoryCache=new Lt(so);baseDir;shardsDir;indexPath;constructor(t,e=process.cwd()){this.baseDir=M.default.resolve(e,Nt,`transform-${t}`),this.shardsDir=M.default.resolve(this.baseDir,ro),this.indexPath=M.default.resolve(this.baseDir,"index.json")}load(){if(process.env.BOLTDOCS_NO_CACHE!=="1"&&B.default.existsSync(this.indexPath))try{let t=B.default.readFileSync(this.indexPath,"utf-8");this.index=new Map(Object.entries(JSON.parse(t)))}catch{}}save(){if(process.env.BOLTDOCS_NO_CACHE==="1")return;let t=JSON.stringify(Object.fromEntries(this.index)),e=this.indexPath;A.add(async()=>{await xt(M.default.dirname(e),{recursive:!0}),await yt(e,t)})}async getMany(t){let e=new Map,r=[];for(let i of t){let s=this.memoryCache.get(i);s?e.set(i,s):this.index.has(i)&&r.push(i)}if(r.length>0){let i=await Promise.all(r.map(async s=>{let c=this.index.get(s),u=M.default.resolve(this.shardsDir,`${c}.gz`);try{let n=await io(u),l=U.default.gunzipSync(n).toString("utf-8");return this.memoryCache.set(s,l),{key:s,val:l}}catch{return null}}));for(let s of i)s&&e.set(s.key,s.val)}return e}get(t){let e=this.memoryCache.get(t);if(e)return e;let r=this.index.get(t);if(!r)return null;let i=M.default.resolve(this.shardsDir,`${r}.gz`);if(!B.default.existsSync(i))return null;try{let s=B.default.readFileSync(i),c=U.default.gunzipSync(s).toString("utf-8");return this.memoryCache.set(t,c),c}catch{return null}}set(t,e){let r=G.default.createHash("md5").update(e).digest("hex");this.index.set(t,r),this.memoryCache.set(t,e);let i=M.default.resolve(this.shardsDir,`${r}.gz`);A.add(async()=>{if(B.default.existsSync(i))return;await xt(this.shardsDir,{recursive:!0});let s=U.default.gzipSync(Buffer.from(e)),c=`${i}.${G.default.randomBytes(4).toString("hex")}.tmp`;await yt(c,s),await zt(c,i)})}get size(){return this.index.size}async flush(){await A.flush()}},Et=class{assetsDir;constructor(t=process.cwd()){this.assetsDir=M.default.resolve(t,Nt,no)}getFileHash(t){return G.default.createHash("md5").update(B.default.readFileSync(t)).digest("hex")}get(t,e){if(!B.default.existsSync(t))return null;let r=this.getFileHash(t),i=this.getCachedPath(t,`${e}-${r}`);return B.default.existsSync(i)?i:null}set(t,e,r){let i=this.getFileHash(t),s=this.getCachedPath(t,`${e}-${i}`);A.add(async()=>{await xt(this.assetsDir,{recursive:!0});let c=`${s}.${G.default.randomBytes(4).toString("hex")}.tmp`;await yt(c,r),await zt(c,s)})}getCachedPath(t,e){let r=M.default.extname(t),i=M.default.basename(t,r),s=e.replace(/[^a-z0-9]/gi,"-").toLowerCase();return M.default.join(this.assetsDir,`${i}.${s}${r}`)}clear(){B.default.existsSync(this.assetsDir)&&B.default.rmSync(this.assetsDir,{recursive:!0,force:!0})}async flush(){await A.flush()}}});m();var We=P(require("cac"));m();m();var Le=require("vite");m();var Oe=P(require("@vitejs/plugin-react")),je=P(require("@tailwindcss/vite"));m();var ye=require("vite");m();var se=P(require("fast-glob"));F();m();it();var L=new et({name:"routes"});function Gt(){L.invalidateAll()}function Wt(o){L.invalidate(o)}m();var V=P(require("path")),oe=P(require("github-slugger"));F();function ie(o,t,e,r){let i=decodeURIComponent(o),s=V.default.resolve(i),c=V.default.resolve(t),u=R(V.default.relative(c,s));if(u.startsWith("../")||u===".."||s.includes("\0"))throw new Error(`Security breach: File is outside of docs directory or contains null bytes: ${o}`);let{data:n,content:l}=ht(o),d=u.split("/"),g,C;if(r?.versions&&d.length>0){let k=d[0],Rt=r.versions.prefix||"",ut=r.versions.versions.find(Y=>{let kt=Rt+Y.path;return k===kt||k===Y.path});ut&&(C=ut.path,d=d.slice(1))}if(r?.i18n&&d.length>0){let k=d[0];r.i18n.locales[k]&&(g=k,d=d.slice(1))}let w;if(d.length>0){let k=d[0].match(/^\((.+)\)$/);k&&(w=k[1].toLowerCase(),d=d.slice(1))}let x=d.join("/"),p;n.permalink?p=n.permalink.startsWith("/")?n.permalink:`/${n.permalink}`:p=ee(x||"index.md");let a=e;C&&(a+="/"+C),g&&(a+="/"+g),w&&(a+="/"+w),a+=p==="/"?"":p,(!a||a==="")&&(a="/");let h=d[d.length-1],f=Z(h),b=Z(V.default.basename(o,V.default.extname(o))),v=n.sidebarPosition??gt(h),y=d.length>=2?d[0]:void 0,S=y?Z(y):void 0,D=d.length>=2&&/^index\.mdx?$/.test(f),H=new oe.default,X=[],Ve=/^(#{2,4})\s+(.+)$/gm;for(let k of l.matchAll(Ve)){let Rt=k[1].length,ut=k[2].replace(/\[([^\]]+)\]\([^\)]+\)/g,"$1").replace(/[_*`]/g,"").trim(),Y=Q(ut).trim(),kt=H.slug(Y);X.push({level:Rt,text:Y,id:kt})}let qe=n.title?Q(String(n.title)):b,Mt=n.description?Q(String(n.description)):"";!Mt&&l&&(Mt=jt(l.replace(/^#+.*$/gm,"").replace(/\[([^\]]+)\]\([^\)]+\)/g,"$1").replace(/[_*`]/g,"").replace(/\s+/g," ")).trim().slice(0,160));let Je=n.badge?Q(String(n.badge)):void 0,Yt=n.icon?String(n.icon):void 0,Ke=lo(l);return{route:{path:a,componentPath:o,filePath:u,title:qe,description:Mt,sidebarPosition:v,headings:X,locale:g,version:C,badge:Je,icon:Yt,tab:w,_content:Ke,_rawContent:l},relativeDir:S,isGroupIndex:D,inferredTab:w,groupMeta:D?{title:n.groupTitle||n.title||(S?tt(S):""),position:n.groupPosition??n.sidebarPosition??(y?gt(y):void 0),icon:Yt}:void 0,inferredGroupPosition:y?gt(y):void 0}}function lo(o){let t=o.replace(/^#+.*$/gm,"").replace(/\[([^\]]+)\]\([^\)]+\)/g,"$1").replace(/\{[^\}]+\}/g,"").replace(/[_*`]/g,"").replace(/\s+/g," ");return jt(t).trim()}m();function re(o){return o.sort((t,e)=>!t.group&&!e.group?ne(t,e):t.group?e.group?t.group!==e.group?po(t,e):ne(t,e):1:-1)}function ne(o,t){return o.sidebarPosition!==void 0&&t.sidebarPosition!==void 0?o.sidebarPosition-t.sidebarPosition:o.sidebarPosition!==void 0?-1:t.sidebarPosition!==void 0?1:o.title.localeCompare(t.title)}function po(o,t){return o.groupPosition!==void 0&&t.groupPosition!==void 0?o.groupPosition-t.groupPosition:o.groupPosition!==void 0?-1:t.groupPosition!==void 0?1:(o.groupTitle||o.group).localeCompare(t.groupTitle||t.group)}var Vt=null,nt=new Map;async function q(o,t,e="/docs",r=!0){let i=performance.now();L.load(),nt.clear(),(process.env.BOLTDOCS_FORCE_REPARSE==="true"||t?.i18n)&&L.invalidateAll();let s;!r&&Vt?s=Vt:(s=await(0,se.default)(["**/*.md","**/*.mdx"],{cwd:o,absolute:!0,suppressErrors:!0,followSymbolicLinks:!1}),Vt=s),L.pruneStale(new Set(s));let c=50,u=[],n=0;for(let p=0;p<s.length;p+=c){let a=s.slice(p,p+c),h=await Promise.all(a.map(async f=>{let b=L.get(f);if(b)return n++,b;let v=ie(f,o,e,t);return L.set(f,v),v}));u.push(...h),p+c<s.length&&await new Promise(f=>setImmediate(f))}L.save();let l=new Map,d=[];for(let p of u)if(p.isGroupIndex&&p.relativeDir&&d.push(p),p.relativeDir){let a=l.get(p.relativeDir);a?(a.position===void 0&&p.inferredGroupPosition!==void 0&&(a.position=p.inferredGroupPosition),!a.icon&&p.route.icon&&(a.icon=p.route.icon)):(a={title:tt(p.relativeDir),position:p.inferredGroupPosition,icon:p.route.icon},l.set(p.relativeDir,a))}for(let p of d){let a=l.get(p.relativeDir);p.groupMeta&&(a.title=p.groupMeta.title,p.groupMeta.position!==void 0&&(a.position=p.groupMeta.position),p.groupMeta.icon&&(a.icon=p.groupMeta.icon))}let g=new Array(u.length);for(let p=0;p<u.length;p++){let a=u[p],h=a.relativeDir,f=h?l.get(h):void 0;g[p]={...a.route,group:h,groupTitle:f?.title||(h?tt(h):void 0),groupPosition:f?.position,groupIcon:f?.icon}}let C=g;if(t?.i18n){let p=mo(g,t,e);C=[...g,...p]}let w=re(C),x=performance.now()-i;return console.log(`[boltdocs] Route generation: ${x.toFixed(2)}ms (${s.length} files, ${n} cache hits)`),w}function mo(o,t,e){let r=t.i18n.defaultLocale,i=Object.keys(t.i18n.locales),s=[],c=new Map,u=[];for(let n of o){let l=n.locale||r;c.has(l)||c.set(l,new Set),c.get(l).add(n.path),l===r&&u.push(n)}for(let n of i){let l=c.get(n)||new Set;for(let d of u){let g=uo(d.path,r,n,e,t);g!==d.path&&(l.has(g)||s.push({...d,path:g,locale:n}))}}return s}function uo(o,t,e,r,i){let s=`${o}:${e}`,c=nt.get(s);if(c)return c;let u=r;if(i?.versions){let g=i.versions.prefix||"";for(let C of i.versions.versions){let w=g+C.path;if(o.startsWith(`${r}/${w}`)){u+="/"+w;break}if(o.startsWith(`${r}/${C.path}`)){u+="/"+C.path;break}}}let n=o.substring(u.length),l=`/${t}`;if(n.startsWith(l+"/"))n="/"+e+"/"+n.substring(l.length+1);else if(n===l)n="/"+e;else if(n==="/"||n==="")n="/"+e;else{let g=n.startsWith("/")?"":"/";n="/"+e+g+n}let d=u+n;return nt.size>2e3&&nt.clear(),nt.set(s,d),d}var xe=require("vite-plugin-image-optimizer");m();var vt=P(require("path")),ae=P(require("fs")),ce=require("vite");var bt=["boltdocs.config.js","boltdocs.config.mjs","boltdocs.config.ts"];async function _(o,t=process.cwd()){let e=t,r={docsDir:vt.default.resolve(o),theme:{title:"Boltdocs",description:"A Vite documentation framework",navbar:[{label:"Home",href:"/"},{label:"Documentation",href:"/docs"}],codeTheme:{light:"github-light",dark:"github-dark"},poweredBy:!0,breadcrumbs:!0}},i={};for(let n of bt){let l=vt.default.resolve(e,n);if(ae.default.existsSync(l))try{let d=await(0,ce.loadConfigFromFile)({command:"serve",mode:"development"},l,e);if(d){i=d.config;break}}catch(d){console.warn(`[boltdocs] Failed to load config from ${n}:`,d)}}let c={...{title:i.title,description:i.description,logo:i.logo,favicon:i.favicon,ogImage:i.ogImage,navbar:i.navbar,sidebar:i.sidebar,socialLinks:i.socialLinks,footer:i.footer,githubRepo:i.githubRepo,tabs:i.tabs,codeTheme:i.codeTheme,copyMarkdown:i.copyMarkdown,breadcrumbs:i.breadcrumbs,poweredBy:i.poweredBy,communityHelp:i.communityHelp,version:i.version,editLink:i.editLink},...i.theme||{}},u=Object.fromEntries(Object.entries(c).filter(([n,l])=>l!==void 0));return u.navbar&&(u.navbar=u.navbar.map(n=>({label:n.label||n.text||"",href:n.href||n.link||n.to||""}))),{docsDir:vt.default.resolve(o),homePage:i.homePage,theme:{...r.theme,...u},i18n:i.i18n,versions:i.versions,siteUrl:i.siteUrl,plugins:i.plugins||[],integrations:i.integrations,robots:i.robots,vite:i.vite}}m();var I=P(require("fs")),O=P(require("path"));F();var ue=require("url"),ge=require("module");m();F();function le(o,t){let e=z(t.title),r=z(t.description);return o.replace(/<title>.*?<\/title>/,`<title>${e}</title>`).replace(/(<meta name="description" content=")[^"]*(")/,`$1${r}$2`).replace(/(<meta property="og:title" content=")[^"]*(")/,`$1${e}$2`).replace(/(<meta property="og:description" content=")[^"]*(")/,`$1${r}$2`).replace(/(<meta name="twitter:title" content=")[^"]*(")/,`$1${e}$2`).replace(/(<meta name="twitter:description" content=")[^"]*(")/,`$1${r}$2`)}m();F();function de(o,t){let e=t?.siteUrl?.replace(/\/$/,"")||"https://example.com",r=new Date().toISOString().split("T")[0],i=[{url:"/",priority:"1.0",changefreq:"daily"}];if(t?.i18n){let c=t.i18n.defaultLocale;for(let u of Object.keys(t.i18n.locales))u!==c&&i.push({url:`/${u}/`,priority:"1.0",changefreq:"daily"})}return`<?xml version="1.0" encoding="UTF-8"?>
|
|
3
3
|
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
|
4
4
|
${[...i,...o.map(c=>({url:c,priority:"0.8",changefreq:"weekly"}))].map(c=>` <url>
|
|
5
|
-
<loc>${
|
|
6
|
-
<lastmod>${
|
|
5
|
+
<loc>${Ot(e)}${Ot(c.url)}</loc>
|
|
6
|
+
<lastmod>${r}</lastmod>
|
|
7
7
|
<changefreq>${c.changefreq}</changefreq>
|
|
8
8
|
<priority>${c.priority}</priority>
|
|
9
9
|
</url>`).join(`
|
|
10
10
|
`)}
|
|
11
|
-
</urlset>`}m();function
|
|
12
|
-
`,c.disallow){let
|
|
13
|
-
`}if(c.allow){let
|
|
14
|
-
`}
|
|
15
|
-
`}for(let c of i)
|
|
16
|
-
`;return
|
|
11
|
+
</urlset>`}m();function wt(o){if(typeof o.robots=="string")return o.robots;let t=o.siteUrl?.replace(/\/$/,"")||"",e=o.robots||{},r=e.rules||[{userAgent:"*",allow:"/"}],i=e.sitemaps||(t?[`${t}/sitemap.xml`]:[]),s="";for(let c of r){if(s+=`User-agent: ${c.userAgent}
|
|
12
|
+
`,c.disallow){let u=Array.isArray(c.disallow)?c.disallow:[c.disallow];for(let n of u)s+=`Disallow: ${n}
|
|
13
|
+
`}if(c.allow){let u=Array.isArray(c.allow)?c.allow:[c.allow];for(let n of u)s+=`Allow: ${n}
|
|
14
|
+
`}s+=`
|
|
15
|
+
`}for(let c of i)s+=`Sitemap: ${c}
|
|
16
|
+
`;return s.trim()}var go=(0,ue.fileURLToPath)($),pe=O.default.dirname(go),me=(0,ge.createRequire)($);async function qt(o){let{docsDir:t,docsDirName:e,outDir:r,config:i}=o,s=await q(t,i),c=["tsx","ts","jsx","js"].map(a=>O.default.resolve(t,`pages-external/index.${a}`)).find(a=>I.default.existsSync(a));if(c)try{let a=I.default.readFileSync(c,"utf-8"),h=a.match(/pages\s*:\s*{([^}]+)}/s);if(h){let f=h[1].split(",").map(b=>b.split(":")[0].trim().replace(/['"]/g,"")).filter(b=>b&&b.startsWith("/"));for(let b of f)s.some(v=>v.path===b)||s.push({path:b,title:b.slice(1).charAt(0).toUpperCase()+b.slice(2),filePath:"",componentPath:"",_content:""})}a.includes("homePage")&&!s.some(f=>f.path==="/")&&s.push({path:"/",title:"Home",filePath:"",componentPath:"",_content:""})}catch(a){console.warn("[boltdocs] Failed to parse external routes for SSG:",a)}let u=O.default.resolve(pe,"../client/ssr.js");if(!I.default.existsSync(u)){console.error("[boltdocs] SSR module not found at",u,"- Did you build the core package?");return}let n=me("module"),l=n.prototype.require;n.prototype.require=function(a,...h){return a.startsWith("virtual:boltdocs-")?a==="virtual:boltdocs-layout"?{__esModule:!0,default:function(b){try{let y=l.apply(this,[O.default.resolve(pe,"../client/index.js")]).DefaultLayout||(({children:D})=>D);return l.apply(this,["react"]).createElement(y,b)}catch{return b.children}}}:a==="virtual:boltdocs-mdx-components"?{__esModule:!0,default:{}}:a==="virtual:boltdocs-config"?{__esModule:!0,default:i}:{__esModule:!0,default:a.includes("routes")?[]:{}}:l.apply(this,[a,...h])};let{render:d}=me(u);n.prototype.require=l;let g=O.default.join(r,"index.html");if(!I.default.existsSync(g)){console.warn("[boltdocs] No index.html found in outDir, skipping SSG.");return}let C=I.default.readFileSync(g,"utf-8");await Promise.all(s.map(async a=>{let h=Ht(i?.theme?.title,a.locale)||"Boltdocs",f=Ht(i?.theme?.description,a.locale)||"",b=`${a.title} | ${h}`,v=a.description||f,y={};y[`/${e}/${a.filePath}`]={default:()=>null};try{let S=await d({path:a.path,routes:s,config:i||{},docsDirName:e,modules:y,homePage:void 0}),D=le(C,{title:z(b),description:z(v)}).replace("<!--app-html-->",S).replace('<div id="root"></div>',`<div id="root">${S}</div>`),H=O.default.join(r,a.path);await I.default.promises.mkdir(H,{recursive:!0}),await I.default.promises.writeFile(O.default.join(H,"index.html"),D,"utf-8")}catch(S){console.error(`[boltdocs] Error SSR rendering route ${a.path}:`,S&&(S.stack||S))}}));let w=de(s.map(a=>a.path),i);I.default.writeFileSync(O.default.join(r,"sitemap.xml"),w,"utf-8");let x=wt(i);I.default.writeFileSync(O.default.join(r,"robots.txt"),x,"utf-8"),console.log(`[boltdocs] Generated ${s.length} static pages + sitemap.xml + robots.txt`);let{flushCache:p}=await Promise.resolve().then(()=>(it(),Ut));await p()}F();var T=P(require("path"));m();F();var rt=P(require("path")),Jt=P(require("fs"));function fe(o,t){let e=o.homePage?`import HomePage from '${R(o.homePage)}';`:"",r=rt.default.resolve(process.cwd(),"index.css"),i=Jt.default.existsSync(r)?"import './index.css';":"",s=o.homePage?"homePage: HomePage,":"",c=t?.plugins?.flatMap(x=>Object.entries(x.components||{}))||[],u=c.map(([x,p])=>`import * as _comp_${x} from '${R(p)}';
|
|
17
17
|
const ${x} = _comp_${x}.default || _comp_${x}['${x}'] || _comp_${x};`).join(`
|
|
18
|
-
`),n=c.map(([x])=>x).join(", "),l=
|
|
19
|
-
`),y=d.length>0?`externalPages: { ${d.map(([x],S)=>`"${x}": _ext_${S}`).join(", ")} },`:"";return`
|
|
18
|
+
`),n=c.map(([x])=>x).join(", "),l=rt.default.basename(o.docsDir||"docs"),d=rt.default.resolve(process.cwd(),o.docsDir||"docs"),g=["tsx","ts","jsx","js"].map(x=>rt.default.resolve(d,`pages-external/index.${x}`)).find(x=>Jt.default.existsSync(x)),C=g?`import * as _external_module from '${R(g)}';`:"";return s=g?"homePage: _external_module.homePage || HomePage,":o.homePage?"homePage: HomePage,":"",`
|
|
20
19
|
import { createBoltdocsApp as _createApp } from 'boltdocs/client';
|
|
21
20
|
import _routes from 'virtual:boltdocs-routes';
|
|
22
21
|
import _config from 'virtual:boltdocs-config';
|
|
23
22
|
import _user_mdx_components from 'virtual:boltdocs-mdx-components';
|
|
24
23
|
${i}
|
|
25
24
|
${e}
|
|
26
|
-
${p}
|
|
27
25
|
${u}
|
|
26
|
+
${C}
|
|
28
27
|
|
|
29
28
|
_createApp({
|
|
30
29
|
target: '#root',
|
|
@@ -33,11 +32,11 @@ _createApp({
|
|
|
33
32
|
config: _config,
|
|
34
33
|
modules: import.meta.glob('/${l}/**/*.{md,mdx}'),
|
|
35
34
|
hot: import.meta.hot,
|
|
36
|
-
${
|
|
37
|
-
${
|
|
35
|
+
${s}
|
|
36
|
+
${g?"externalPages: _external_module.pages, externalLayout: _external_module.layout,":""}
|
|
38
37
|
components: { ${n}${n?", ":""} ...(_user_mdx_components || {}) },
|
|
39
38
|
});
|
|
40
|
-
`}m();function
|
|
39
|
+
`}m();function Pt(o){return`<!doctype html>
|
|
41
40
|
<html lang="en">
|
|
42
41
|
<head>
|
|
43
42
|
<meta charset="UTF-8" />
|
|
@@ -47,8 +46,8 @@ _createApp({
|
|
|
47
46
|
<body>
|
|
48
47
|
<div id="root"></div>
|
|
49
48
|
</body>
|
|
50
|
-
</html>`}function
|
|
51
|
-
`),
|
|
49
|
+
</html>`}function Kt(o,t){let e=t.theme,r=e?.title||"Boltdocs",i=e?.description||"",s=e?.favicon;!s&&e?.logo&&(typeof e.logo=="string"?s=e.logo:s=e.logo.light||e.logo.dark);let c=[s?`<link rel="icon" href="${s}">`:"",`<meta name="description" content="${i}">`,`<meta property="og:title" content="${r}">`,`<meta property="og:description" content="${i}">`,e?.ogImage?`<meta property="og:image" content="${e.ogImage}">`:"",'<meta property="og:type" content="website">','<meta name="twitter:card" content="summary_large_image">',`<meta name="twitter:title" content="${r}">`,`<meta name="twitter:description" content="${i}">`,e?.ogImage?`<meta name="twitter:image" content="${e.ogImage}">`:"",'<meta name="generator" content="Boltdocs">'].filter(Boolean).join(`
|
|
50
|
+
`),u=`
|
|
52
51
|
<script>
|
|
53
52
|
(function() {
|
|
54
53
|
try {
|
|
@@ -64,12 +63,16 @@ _createApp({
|
|
|
64
63
|
} catch (e) {}
|
|
65
64
|
})();
|
|
66
65
|
</script>
|
|
67
|
-
`;return o.includes("<title>")?o=o.replace(/<title>.*?<\/title>/,`<title>${
|
|
66
|
+
`;return o.includes("<title>")?o=o.replace(/<title>.*?<\/title>/,`<title>${r}</title>`):o=o.replace("</head>",` <title>${r}</title>
|
|
68
67
|
</head>`),o=o.replace("</head>",` ${c}
|
|
69
|
-
${
|
|
70
|
-
</body>`)),o}var
|
|
68
|
+
${u} </head>`),!o.includes("src/main")&&!o.includes("virtual:boltdocs-entry")&&(o=o.replace("</body>",` <script type="module">import "virtual:boltdocs-entry";</script>
|
|
69
|
+
</body>`)),o}m();function he(o){let t=[];for(let e of o)if(t.push({id:e.path,title:e.title,content:e._content||"",url:e.path,display:e.groupTitle?`${e.groupTitle} > ${e.title}`:e.title,locale:e.locale,version:e.version}),e.headings)for(let r of e.headings)t.push({id:`${e.path}#${r.id}`,title:r.text,content:`${r.text} in ${e.title}`,url:`${e.path}#${r.id}`,display:`${e.title} > ${r.text}`,locale:e.locale,version:e.version});return t}var Xt=P(require("fs"));m();function ve(o={},t){let e=T.default.resolve(process.cwd(),o.docsDir||"docs"),r=R(e),i=t,s,c=!1,u=i?.plugins?.flatMap(n=>n.vitePlugins||[])||[];return[{name:"vite-plugin-boltdocs",enforce:"pre",async config(n,l){c=l.command==="build";let d=n.envDir||process.cwd(),g=(0,ye.loadEnv)(l.mode,d,"");return Object.assign(process.env,g),i||(i=await _(e)),{optimizeDeps:{include:["react","react-dom"],exclude:["boltdocs","boltdocs/client","boltdocs/hooks","boltdocs/primitives","boltdocs/base-ui","boltdocs/mdx","boltdocs/integrations","boltdocs/client/hooks","boltdocs/client/primitives"]}}},configResolved(n){s=n},configureServer(n){n.middlewares.use((a,h,f)=>{if(a.url==="/robots.txt"){let b=wt(i);h.statusCode=200,h.setHeader("Content-Type","text/plain"),h.end(b);return}f()}),n.middlewares.use(async(a,h,f)=>{let b=a.url?.split("?")[0]||"/",v=a.headers.accept||"",y=b==="/"||b.startsWith("/docs")||i.i18n&&Object.keys(i.i18n.locales).some(D=>b.startsWith(`/${D}/docs`)||b===`/${D}`)||!0,S=/\.(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.test(b);if(v.includes("text/html")&&!S&&y){let D=Pt(i);D=Kt(D,i),D=await n.transformIndexHtml(a.url||"/",D),h.statusCode=200,h.setHeader("Content-Type","text/html"),h.end(D);return}f()});let l=bt.map(a=>T.default.resolve(process.cwd(),a)),d=["tsx","jsx"],g=d.map(a=>T.default.resolve(e,`layout.${a}`)),C=["tsx","ts","jsx","js"],w=C.map(a=>T.default.resolve(e,`mdx-components.${a}`)),x=C.map(a=>T.default.resolve(e,`pages-external/index.${a}`));n.watcher.add([...l,...w,...g,...x]);let p=async(a,h)=>{try{let f=R(a);if(bt.some(y=>f.endsWith(y))){n.restart();return}if(C.some(y=>f.endsWith(`mdx-components.${y}`))){let y=n.moduleGraph.getModuleById("\0virtual:boltdocs-mdx-components");y&&n.moduleGraph.invalidateModule(y),n.ws.send({type:"full-reload"});return}if(d.some(y=>f.endsWith(`layout.${y}`))){let y=n.moduleGraph.getModuleById("\0virtual:boltdocs-layout");y&&n.moduleGraph.invalidateModule(y),n.ws.send({type:"full-reload"});return}if(f.includes("/pages-external/")||f.includes("\\pages-external\\")){let y=n.moduleGraph.getModuleById("\0virtual:boltdocs-entry");y&&n.moduleGraph.invalidateModule(y),n.ws.send({type:"full-reload"});return}if(!f.startsWith(r)||!te(f))return;if(h==="add"||h==="unlink"){Gt(),i=await _(e);let y=n.moduleGraph.getModuleById("\0virtual:boltdocs-config");y&&n.moduleGraph.invalidateModule(y),n.ws.send({type:"custom",event:"boltdocs:config-update",data:{theme:i?.theme,integrations:i?.integrations,i18n:i?.i18n,versions:i?.versions,siteUrl:i?.siteUrl}})}else Wt(a);let b=await q(e,i,"/docs",h!=="change"),v=n.moduleGraph.getModuleById("\0virtual:boltdocs-routes");v&&n.moduleGraph.invalidateModule(v),n.ws.send({type:"custom",event:"boltdocs:routes-update",data:b})}catch(f){console.error(`[boltdocs] HMR error during ${h} event:`,f)}};n.watcher.on("add",a=>p(a,"add")),n.watcher.on("unlink",a=>p(a,"unlink")),n.watcher.on("change",a=>p(a,"change"))},resolveId(n){if(n==="virtual:boltdocs-routes"||n==="virtual:boltdocs-config"||n==="virtual:boltdocs-entry"||n==="virtual:boltdocs-mdx-components"||n==="virtual:boltdocs-layout"||n==="virtual:boltdocs-search")return"\0"+n},async load(n){if(n==="\0virtual:boltdocs-routes"){let l=await q(e,i);return`export default ${JSON.stringify(l,null,2)};`}if(n==="\0virtual:boltdocs-config"){let l={theme:i?.theme,integrations:i?.integrations,i18n:i?.i18n,versions:i?.versions,siteUrl:i?.siteUrl,plugins:i?.plugins?.map(d=>({name:d.name}))};return`export default ${JSON.stringify(l,null,2)};`}if(n==="\0virtual:boltdocs-entry")return fe(o,i);if(n==="\0virtual:boltdocs-mdx-components"){let l=["tsx","ts","jsx","js"],d=null;for(let g of l){let C=T.default.resolve(e,`mdx-components.${g}`);if(Xt.default.existsSync(C)){d=C;break}}if(d){let g=R(d);return`import * as components from '${g}';
|
|
71
70
|
const mdxComponents = components.default || components;
|
|
72
71
|
export default mdxComponents;
|
|
73
|
-
export * from '${
|
|
72
|
+
export * from '${g}';`}return"export default {};"}if(n==="\0virtual:boltdocs-layout"){let l=["tsx","jsx"],d=null;for(let g of l){let C=T.default.resolve(e,`layout.${g}`);if(Xt.default.existsSync(C)){d=C;break}}return d?`import UserLayout from '${R(d)}';
|
|
74
73
|
export default UserLayout;`:`import { DefaultLayout } from 'boltdocs/client';
|
|
75
|
-
export default DefaultLayout;`}},transformIndexHtml:{order:"pre",handler(n){return
|
|
74
|
+
export default DefaultLayout;`}if(n==="\0virtual:boltdocs-search"){let l=await q(e,i),d=he(l);return`export default ${JSON.stringify(d,null,2)};`}},transformIndexHtml:{order:"pre",handler(n){return Kt(n,i)}},async closeBundle(){if(!c)return;let n=s?.build?.outDir?T.default.resolve(s.root,s.build.outDir):T.default.resolve(process.cwd(),"dist"),l=T.default.basename(e||"docs");await qt({docsDir:e,docsDirName:l,outDir:n,config:i});let{flushCache:d}=await Promise.resolve().then(()=>(it(),Ut));await d()}},(0,xe.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"}]}}),...u.filter(n=>!!n)]}m();var Re=P(require("@mdx-js/rollup")),ke=P(require("remark-gfm")),_e=P(require("remark-frontmatter")),Te=P(require("rehype-slug")),Fe=P(require("crypto"));m();it();var be="v4",J=new ot("mdx");m();var Pe=require("unist-util-visit");m();var we=require("shiki"),$t=null;async function Ct(o){if($t)return $t;let t=typeof o=="object"?[o.light,o.dark]:[o??"github-dark"];return["github-light","github-dark"].forEach(e=>{t.includes(e)||t.push(e)}),$t=await(0,we.createHighlighter)({themes:t,langs:["tsx","jsx","ts","js","json","md","mdx","css","html","bash","sh","yaml","yml"]}),$t}function $e(o){return async t=>{let e=o?.theme?.codeTheme??{light:"github-light",dark:"github-dark"},r=await Ct(e);(0,Pe.visit)(t,["mdxJsxFlowElement","mdxJsxTextElement"],i=>{if(i.name!=="ComponentPreview")return;let s=i.attributes?.find(l=>l.name==="code"),c="";if(s){if(typeof s.value=="string")c=s.value;else if(s.value?.type==="mdxJsxAttributeValueExpression"){let l=s.value.value??"";c=l.match(/^[`'"]([\s\S]+)[`'"]$/)?.[1]??l}}if(!c)return;let u=typeof e=="object"?{themes:{light:e.light,dark:e.dark},lang:"tsx"}:{theme:e,lang:"tsx"},n=r.codeToHtml(c,u);i.attributes=(i.attributes??[]).filter(l=>l.name!=="highlightedHtml"),i.attributes.push({type:"mdxJsxAttribute",name:"highlightedHtml",value:n})})}}m();var Ce=require("unist-util-visit");function Se(o){return async t=>{let e=o?.theme?.codeTheme||{light:"github-light",dark:"github-dark"},r=await Ct(e);(0,Ce.visit)(t,"element",i=>{if(i.tagName==="pre"&&i.children?.[0]?.tagName==="code"){let s=i.children[0],u=(s.properties?.className||[]).find(p=>p.startsWith("language-")),n=u?u.slice(9):"text",l=s.children[0]?.value||"",g=(s.data?.meta||s.properties?.metastring||"").match(/title\s*=\s*"([^"]*)"/),C=g?g[1]:void 0,w={lang:n};typeof e=="object"?w.themes={light:e.light,dark:e.dark}:w.theme=e;let x=r.codeToHtml(l,w);i.properties.dataHighlighted="true",i.properties.highlightedHtml=x,i.properties["data-lang"]=n,C&&(i.properties.title=C),i.children=[]}})}}m();var De=require("unist-util-visit");function Be(){return o=>{(0,De.visit)(o,"code",t=>{if(t.data=t.data||{},t.data.hProperties=t.data.hProperties||{},t.lang&&(t.data.hProperties["data-lang"]=t.lang),!t.meta)return;let e=t.meta,r=e.match(/title\s*=\s*"([^"]*)"/);r&&(t.data.hProperties.title=r[1]),t.data.hProperties.metastring=e})}}var Me=!1,St=0,st=0;function Ie(o,t=Re.default){let e=o?.plugins?.flatMap(s=>s.remarkPlugins||[])||[],r=o?.plugins?.flatMap(s=>s.rehypePlugins||[])||[],i=t({remarkPlugins:[ke.default,_e.default,Be,[$e,o],...e],rehypePlugins:[Te.default,[Se,o],...r],jsxRuntime:"automatic",providerImportSource:"@mdx-js/react"});return{...i,name:"vite-plugin-boltdocs-mdx",async buildStart(){St=0,st=0,Me||(J.load(),Me=!0),i.buildStart&&await i.buildStart.call(this)},async transform(s,c,u){if(!c.endsWith(".md")&&!c.endsWith(".mdx"))return i.transform?.call(this,s,c,u);console.log(`[boltdocs] Transforming MDX: ${c}`),st++;let n=Fe.default.createHash("md5").update(s).digest("hex"),l=`${c}:${n}:${be}`,d=J.get(l);if(d)return St++,{code:d,map:null};let g=await i.transform.call(this,s,c,u);return g&&typeof g=="object"&&g.code&&J.set(l,g.code),g},async buildEnd(){st>0&&console.log(`[boltdocs] MDX Cache Performance: ${St}/${st} hits (${Math.round(St/st*100)||0}%)`),J.save(),await J.flush(),i.buildEnd&&await i.buildEnd.call(this)}}}async function He(o){let t=o?.docsDir||"docs",e=await _(t),r={...o,homePage:o?.homePage||e.homePage};return[...ve(r,e),Ie(e)]}async function at(o,t="development"){let e=await _("docs",o);return{root:o,mode:t,plugins:[(0,Oe.default)(),(0,je.default)(),await He({docsDir:e.docsDir,homePage:e.homePage})],...e.vite}}var dt={};Zt(dt,{colors:()=>K,error:()=>j,formatLog:()=>Dt,info:()=>ct,success:()=>lt});m();var K={reset:"\x1B[0m",bold:"\x1B[1m",red:"\x1B[31m",green:"\x1B[32m",yellow:"\x1B[33m",blue:"\x1B[34m",cyan:"\x1B[36m",gray:"\x1B[90m"};function Dt(o,t=""){return`${t}${K.bold}[boltdocs]${K.reset} ${o}${K.reset}`}function ct(o){console.log(Dt(o))}function j(o,t){console.error(Dt(o,K.red)),t&&console.error(t)}function lt(o){console.log(Dt(o,K.green))}async function Ae(o=process.cwd()){try{let t=await at(o,"development"),e=await(0,Le.createServer)(t);await e.listen(),e.printUrls(),e.bindCLIShortcuts({print:!0})}catch(t){j("Failed to start dev server:",t),process.exit(1)}}m();var Bt=require("vite");var Ee=P(require("path")),pt=P(require("fs"));async function ze(o=process.cwd()){let t=!1,e=Ee.default.resolve(o,"index.html");try{if(!pt.default.existsSync(e)){let i=await _("docs",o);pt.default.writeFileSync(e,Pt(i),"utf-8"),t=!0}let r=await at(o,"production");await(0,Bt.build)(r),lt("Build completed successfully.")}catch(r){j("Build failed:",r),process.exit(1)}finally{t&&pt.default.existsSync(e)&&pt.default.unlinkSync(e)}}async function Ne(o=process.cwd()){try{let t=await at(o,"production");(await(0,Bt.preview)(t)).printUrls()}catch(t){j("Failed to start preview server:",t),process.exit(1)}}m();var E=P(require("path")),mt=P(require("fs")),Ue=P(require("fast-glob"));F();async function Ge(o=process.cwd()){let{colors:t}=dt;ct(`${t.bold}Running documentation health check...${t.reset}
|
|
75
|
+
`);let e=performance.now();try{let r=await _("docs",o),i=E.default.resolve(o,"docs");mt.default.existsSync(i)||(j(`Documentation directory not found at ${i}`),process.exit(1));let s=await(0,Ue.default)(["**/*.md","**/*.mdx"],{cwd:i,absolute:!0,suppressErrors:!0}),c=0,u=0,n=0,l=new Map,d=(w,x)=>{let p=E.default.relative(i,w),a=l.get(p);a||(a=[],l.set(p,a)),a.push(x),x.level==="high"?c++:x.level==="warning"?u++:x.level==="low"&&n++},g="/docs";for(let w of s){let{data:x,content:p}=ht(w);x.title||d(w,{level:"warning",message:'Missing "title" in frontmatter.',suggestion:"Add `title: Your Title` to the YAML frontmatter at the top of the file."}),x.description||d(w,{level:"low",message:'Missing "description" in frontmatter.',suggestion:"Adding a description helps with SEO and search previews."});let a=/\[.*?\]\((.*?)\)/g,h=/<a\s+[^>]*href=["']([^"']+)["'][^>]*>/g,f=[...p.matchAll(a),...p.matchAll(h)];for(let b of f){let v=b[1];if(!v||v.startsWith("http")||v.startsWith("https")||v.startsWith("#")||v.startsWith("mailto:")||v.startsWith("tel:")||(v=v.split("#")[0],!v))continue;let y;if(v.startsWith("/")){let H=v;(v.startsWith(g+"/")||v===g)&&(H=v.substring(g.length)),y=E.default.join(i,H)}else y=E.default.resolve(E.default.dirname(w),v);let S=["",".md",".mdx","/index.md","/index.mdx"],D=!1;for(let H of S){let X=y+H;if(mt.default.existsSync(X)&&mt.default.statSync(X).isFile()){D=!0;break}}D||d(w,{level:"high",message:`Broken internal link: "${v}"`,suggestion:`Ensure the file exists at "${y}". If it's a directory, ensure it has an "index.md" or "index.mdx".`})}}if(r.i18n){let{defaultLocale:w,locales:x}=r.i18n,p=Object.keys(x).filter(a=>a!==w);for(let a of s){let f=R(E.default.relative(i,a)).split("/");if(f[0]===w){let b=f.slice(1).join("/");for(let v of p){let y=[v,...f.slice(1)],S=E.default.join(i,...y);mt.default.existsSync(S)||d(a,{level:"warning",message:`Missing translation for locale "${v}"`,suggestion:`Create a translated version of this file at "${v}/${b}".`})}}}}if(l.size===0)lt(`All documentation files are healthy!
|
|
76
|
+
`);else{for(let[w,x]of l.entries()){console.log(`\u{1F4C4} ${t.bold}${w}${t.reset}`);let p=x.sort((a,h)=>{let f={high:1,warning:2,low:3};return f[a.level]-f[h.level]});for(let a of p){let h="",f="";a.level==="high"?(h="\u274C",f=t.red):a.level==="warning"?(h="\u26A0\uFE0F",f=t.yellow):(h="\u2139\uFE0F",f=t.cyan),console.log(` ${f}${h} ${a.level.toUpperCase()}:${t.reset} ${a.message}`),a.suggestion&&console.log(` ${t.gray}\u{1F4A1} Suggestion: ${a.suggestion}${t.reset}`)}console.log("")}console.log(`${t.bold}Summary:${t.reset}`),console.log(` ${t.red}${c} high-level errors${t.reset}`),console.log(` ${t.yellow}${u} warnings${t.reset}`),console.log(` ${t.cyan}${n} minor improvements${t.reset}
|
|
77
|
+
`),c>0&&j("HIGH ERROR: Fix these to ensure your documentation builds correctly."),(u>0||n>0)&&ct("TIP: Address warnings and suggestions for premium quality docs."),console.log("")}let C=performance.now()-e;ct(`Finished in ${C.toFixed(2)}ms
|
|
78
|
+
`),c>0&&process.exit(1)}catch(r){j("Failed to run doctor check:",r),process.exit(1)}}var N=(0,We.default)("boltdocs");N.command("[root]","Start development server").alias("dev").action(Ae);N.command("build [root]","Build for production").action(ze);N.command("preview [root]","Preview production build").action(Ne);N.command("doctor [root]","Check documentation health").action(Ge);N.help();N.version("2.0.0");N.parse();
|
package/dist/node/cli-entry.mjs
CHANGED
|
@@ -1,2 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import{b as
|
|
2
|
+
import{b as L,c as ie,e as V,f as re,h as w,i as Y}from"../chunk-UWT4AJTH.mjs";import{a as v,b as te,c as oe,d as n,e as D,i as G,q as se}from"../chunk-Y4RRHPXC.mjs";var S={};oe(S,{colors:()=>x,error:()=>a,formatLog:()=>W,info:()=>b,success:()=>A});function W(s,e=""){return`${e}${x.bold}[boltdocs]${x.reset} ${s}${x.reset}`}function b(s){console.log(W(s))}function a(s,e){console.error(W(s,x.red)),e&&console.error(e)}function A(s){console.log(W(s,x.green))}var x,C=v(()=>{"use strict";n();x={reset:"\x1B[0m",bold:"\x1B[1m",red:"\x1B[31m",green:"\x1B[32m",yellow:"\x1B[33m",blue:"\x1B[34m",cyan:"\x1B[36m",gray:"\x1B[90m"}});import{createServer as ne}from"vite";async function q(s=process.cwd()){try{let e=await w(s,"development"),l=await ne(e);await l.listen(),l.printUrls(),l.bindCLIShortcuts({print:!0})}catch(e){a("Failed to start dev server:",e),process.exit(1)}}var J=v(()=>{"use strict";n();Y();C()});import{build as le,preview as ce}from"vite";import ae from"path";import M from"fs";async function K(s=process.cwd()){let e=!1,l=ae.resolve(s,"index.html");try{if(!M.existsSync(l)){let f=await L("docs",s);M.writeFileSync(l,V(f),"utf-8"),e=!0}let g=await w(s,"production");await le(g),A("Build completed successfully.")}catch(g){a("Build failed:",g),process.exit(1)}finally{e&&M.existsSync(l)&&M.unlinkSync(l)}}async function N(s=process.cwd()){try{let e=await w(s,"production");(await ce(e)).printUrls()}catch(e){a("Failed to start preview server:",e),process.exit(1)}}var Q=v(()=>{"use strict";n();Y();re();C()});import u from"path";import R from"fs";import fe from"fast-glob";async function X(s=process.cwd()){let{colors:e}=S;b(`${e.bold}Running documentation health check...${e.reset}
|
|
3
|
+
`);let l=performance.now();try{let g=await L("docs",s),f=u.resolve(s,"docs");R.existsSync(f)||(a(`Documentation directory not found at ${f}`),process.exit(1));let T=await fe(["**/*.md","**/*.mdx"],{cwd:f,absolute:!0,suppressErrors:!0}),k=0,B=0,j=0,P=new Map,F=(r,c)=>{let m=u.relative(f,r),t=P.get(m);t||(t=[],P.set(m,t)),t.push(c),c.level==="high"?k++:c.level==="warning"?B++:c.level==="low"&&j++},E="/docs";for(let r of T){let{data:c,content:m}=G(r);c.title||F(r,{level:"warning",message:'Missing "title" in frontmatter.',suggestion:"Add `title: Your Title` to the YAML frontmatter at the top of the file."}),c.description||F(r,{level:"low",message:'Missing "description" in frontmatter.',suggestion:"Adding a description helps with SEO and search previews."});let t=/\[.*?\]\((.*?)\)/g,d=/<a\s+[^>]*href=["']([^"']+)["'][^>]*>/g,i=[...m.matchAll(t),...m.matchAll(d)];for(let H of i){let o=H[1];if(!o||o.startsWith("http")||o.startsWith("https")||o.startsWith("#")||o.startsWith("mailto:")||o.startsWith("tel:")||(o=o.split("#")[0],!o))continue;let h;if(o.startsWith("/")){let I=o;(o.startsWith(E+"/")||o===E)&&(I=o.substring(E.length)),h=u.join(f,I)}else h=u.resolve(u.dirname(r),o);let O=["",".md",".mdx","/index.md","/index.mdx"],U=!1;for(let I of O){let z=h+I;if(R.existsSync(z)&&R.statSync(z).isFile()){U=!0;break}}U||F(r,{level:"high",message:`Broken internal link: "${o}"`,suggestion:`Ensure the file exists at "${h}". If it's a directory, ensure it has an "index.md" or "index.mdx".`})}}if(g.i18n){let{defaultLocale:r,locales:c}=g.i18n,m=Object.keys(c).filter(t=>t!==r);for(let t of T){let i=D(u.relative(f,t)).split("/");if(i[0]===r){let H=i.slice(1).join("/");for(let o of m){let h=[o,...i.slice(1)],O=u.join(f,...h);R.existsSync(O)||F(t,{level:"warning",message:`Missing translation for locale "${o}"`,suggestion:`Create a translated version of this file at "${o}/${H}".`})}}}}if(P.size===0)A(`All documentation files are healthy!
|
|
4
|
+
`);else{for(let[r,c]of P.entries()){console.log(`\u{1F4C4} ${e.bold}${r}${e.reset}`);let m=c.sort((t,d)=>{let i={high:1,warning:2,low:3};return i[t.level]-i[d.level]});for(let t of m){let d="",i="";t.level==="high"?(d="\u274C",i=e.red):t.level==="warning"?(d="\u26A0\uFE0F",i=e.yellow):(d="\u2139\uFE0F",i=e.cyan),console.log(` ${i}${d} ${t.level.toUpperCase()}:${e.reset} ${t.message}`),t.suggestion&&console.log(` ${e.gray}\u{1F4A1} Suggestion: ${t.suggestion}${e.reset}`)}console.log("")}console.log(`${e.bold}Summary:${e.reset}`),console.log(` ${e.red}${k} high-level errors${e.reset}`),console.log(` ${e.yellow}${B} warnings${e.reset}`),console.log(` ${e.cyan}${j} minor improvements${e.reset}
|
|
5
|
+
`),k>0&&a("HIGH ERROR: Fix these to ensure your documentation builds correctly."),(B>0||j>0)&&b("TIP: Address warnings and suggestions for premium quality docs."),console.log("")}let ee=performance.now()-l;b(`Finished in ${ee.toFixed(2)}ms
|
|
6
|
+
`),k>0&&process.exit(1)}catch(g){a("Failed to run doctor check:",g),process.exit(1)}}var Z=v(()=>{"use strict";n();ie();se();C()});var _=v(()=>{"use strict";n();J();Q();Z();C()});import me from"cac";var de=te(()=>{n();_();var p=me("boltdocs");p.command("[root]","Start development server").alias("dev").action(q);p.command("build [root]","Build for production").action(K);p.command("preview [root]","Preview production build").action(N);p.command("doctor [root]","Check documentation health").action(X);p.help();p.version("2.0.0");p.parse()});export default de();
|
package/dist/node/index.d.mts
CHANGED
|
@@ -39,13 +39,6 @@ interface BoltdocsThemeConfig {
|
|
|
39
39
|
label: string | Record<string, string>;
|
|
40
40
|
/** URL path or external link */
|
|
41
41
|
href: string;
|
|
42
|
-
/** Nested items for NavigationMenu */
|
|
43
|
-
items?: Array<{
|
|
44
|
-
/** Text to display (can be a string or a map of translations) */
|
|
45
|
-
label: string | Record<string, string>;
|
|
46
|
-
/** URL path or external link */
|
|
47
|
-
href: string;
|
|
48
|
-
}>;
|
|
49
42
|
}>;
|
|
50
43
|
/** Items to display in the sidebar, organized optionally by group URLs */
|
|
51
44
|
sidebar?: Record<string, Array<{
|
|
@@ -216,8 +209,6 @@ interface BoltdocsConfig {
|
|
|
216
209
|
versions?: BoltdocsVersionsConfig;
|
|
217
210
|
/** Custom plugins for extending functionality */
|
|
218
211
|
plugins?: BoltdocsPlugin[];
|
|
219
|
-
/** Map of custom external route paths to component file paths */
|
|
220
|
-
external?: Record<string, string>;
|
|
221
212
|
/** External integrations configuration */
|
|
222
213
|
integrations?: BoltdocsIntegrationsConfig;
|
|
223
214
|
/** Configuration for the robots.txt file */
|
package/dist/node/index.d.ts
CHANGED
|
@@ -39,13 +39,6 @@ interface BoltdocsThemeConfig {
|
|
|
39
39
|
label: string | Record<string, string>;
|
|
40
40
|
/** URL path or external link */
|
|
41
41
|
href: string;
|
|
42
|
-
/** Nested items for NavigationMenu */
|
|
43
|
-
items?: Array<{
|
|
44
|
-
/** Text to display (can be a string or a map of translations) */
|
|
45
|
-
label: string | Record<string, string>;
|
|
46
|
-
/** URL path or external link */
|
|
47
|
-
href: string;
|
|
48
|
-
}>;
|
|
49
42
|
}>;
|
|
50
43
|
/** Items to display in the sidebar, organized optionally by group URLs */
|
|
51
44
|
sidebar?: Record<string, Array<{
|
|
@@ -216,8 +209,6 @@ interface BoltdocsConfig {
|
|
|
216
209
|
versions?: BoltdocsVersionsConfig;
|
|
217
210
|
/** Custom plugins for extending functionality */
|
|
218
211
|
plugins?: BoltdocsPlugin[];
|
|
219
|
-
/** Map of custom external route paths to component file paths */
|
|
220
|
-
external?: Record<string, string>;
|
|
221
212
|
/** External integrations configuration */
|
|
222
213
|
integrations?: BoltdocsIntegrationsConfig;
|
|
223
214
|
/** Configuration for the robots.txt file */
|
package/dist/node/index.js
CHANGED
|
@@ -1,29 +1,28 @@
|
|
|
1
|
-
"use strict";var ke=Object.create;var et=Object.defineProperty;var Me=Object.getOwnPropertyDescriptor;var Te=Object.getOwnPropertyNames;var _e=Object.getPrototypeOf,Oe=Object.prototype.hasOwnProperty;var ht=(o,t)=>()=>(o&&(t=o(o=0)),t);var Ht=(o,t)=>{for(var e in t)et(o,e,{get:t[e],enumerable:!0})},Lt=(o,t,e,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Te(t))!Oe.call(o,i)&&i!==e&&et(o,i,{get:()=>t[i],enumerable:!(s=Me(t,i))||s.enumerable});return o};var v=(o,t,e)=>(e=o!=null?ke(_e(o)):{},Lt(t||!o||!o.__esModule?et(e,"default",{value:o,enumerable:!0}):e,o)),Fe=o=>Lt(et({},"__esModule",{value:!0}),o);var Ie,P,m=ht(()=>{"use strict";Ie=()=>typeof document>"u"?new URL(`file:${__filename}`).href:document.currentScript&&document.currentScript.tagName.toUpperCase()==="SCRIPT"?document.currentScript.src:new URL("main.js",document.baseURI).href,P=Ie()});function k(o){return o.replace(/\\/g,"/")}function V(o){return o.replace(/^\d+\./,"")}function ot(o){let t=o.match(/^(\d+)\./);return t?parseInt(t[1],10):void 0}function zt(o){return/\.mdx?$/.test(o)}function it(o){try{return yt.default.statSync(o).mtimeMs}catch{return 0}}function At(o){let t=yt.default.readFileSync(o,"utf-8");try{let{data:e,content:s}=(0,Et.default)(t);return{data:e,content:s}}catch{return{data:{},content:t}}}function H(o){return o.replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">")}function bt(o){return H(o)}function Nt(o){let e=o.split("/").map(V).join("/").replace(/\/$/,"");return e=e.replace(/\.mdx?$/,""),(e==="index"||e.endsWith("/index"))&&(e=e.replace(/index$/,"")),e.startsWith("/")||(e="/"+e),e.length>1&&e.endsWith("/")&&(e=e.slice(0,-1)),e}function W(o){return xt.default.sanitize(o)}function vt(o){return xt.default.sanitize(o,{ALLOWED_TAGS:[],KEEP_CONTENT:!0})}function q(o){return o.charAt(0).toUpperCase()+o.slice(1)}function Pt(o,t){return o?typeof o=="string"?o:t&&o[t]?o[t]:Object.values(o)[0]||"":""}var yt,Et,xt,T=ht(()=>{"use strict";m();yt=v(require("fs")),Et=v(require("gray-matter")),xt=v(require("isomorphic-dompurify"))});var Dt={};Ht(Dt,{AssetCache:()=>$t,FileCache:()=>J,TransformCache:()=>K,flushCache:()=>Ae});async function Ae(){await F.flush()}var C,B,E,L,z,nt,je,rt,St,to,Bt,He,Le,Ee,ze,wt,Ct,F,J,K,$t,X=ht(()=>{"use strict";m();C=v(require("fs")),B=v(require("path")),E=v(require("crypto")),L=v(require("zlib")),z=require("util");T();nt=(0,z.promisify)(C.default.writeFile),je=(0,z.promisify)(C.default.readFile),rt=(0,z.promisify)(C.default.mkdir),St=(0,z.promisify)(C.default.rename),to=(0,z.promisify)(C.default.unlink),Bt=process.env.BOLTDOCS_CACHE_DIR||".boltdocs",He="assets",Le="shards",Ee=parseInt(process.env.BOLTDOCS_CACHE_LRU_LIMIT||"2000",10),ze=process.env.BOLTDOCS_CACHE_COMPRESS!=="0",wt=class{constructor(t){this.limit=t}cache=new Map;get(t){let e=this.cache.get(t);return e!==void 0&&(this.cache.delete(t),this.cache.set(t,e)),e}set(t,e){if(this.cache.has(t))this.cache.delete(t);else if(this.cache.size>=this.limit){let s=this.cache.keys().next().value;s!==void 0&&this.cache.delete(s)}this.cache.set(t,e)}get size(){return this.cache.size}clear(){this.cache.clear()}},Ct=class{queue=Promise.resolve();pendingCount=0;add(t){this.pendingCount++,this.queue=this.queue.then(t).finally(()=>{this.pendingCount--})}async flush(){await this.queue}get pending(){return this.pendingCount}},F=new Ct,J=class{entries=new Map;cachePath=null;compress;constructor(t={}){if(this.compress=t.compress!==void 0?t.compress:ze,t.name){let e=t.root||process.cwd(),s=this.compress?"json.gz":"json";this.cachePath=B.default.resolve(e,Bt,`${t.name}.${s}`)}}load(){if(process.env.BOLTDOCS_NO_CACHE!=="1"&&!(!this.cachePath||!C.default.existsSync(this.cachePath)))try{let t=C.default.readFileSync(this.cachePath);this.cachePath.endsWith(".gz")&&(t=L.default.gunzipSync(t));let e=JSON.parse(t.toString("utf-8"));this.entries=new Map(Object.entries(e))}catch{}}save(){if(process.env.BOLTDOCS_NO_CACHE==="1"||!this.cachePath)return;let t=Object.fromEntries(this.entries),e=JSON.stringify(t),s=this.cachePath,i=this.compress;F.add(async()=>{try{await rt(B.default.dirname(s),{recursive:!0});let r=Buffer.from(e);i&&(r=L.default.gzipSync(r));let c=`${s}.${E.default.randomBytes(4).toString("hex")}.tmp`;await nt(c,r),await St(c,s)}catch{}})}get(t){let e=this.entries.get(t);return!e||it(t)!==e.mtime?null:e.data}set(t,e){this.entries.set(t,{data:e,mtime:it(t)})}isValid(t){let e=this.entries.get(t);return e?it(t)===e.mtime:!1}invalidate(t){this.entries.delete(t)}invalidateAll(){this.entries.clear()}pruneStale(t){for(let e of this.entries.keys())t.has(e)||this.entries.delete(e)}get size(){return this.entries.size}async flush(){await F.flush()}},K=class{index=new Map;memoryCache=new wt(Ee);baseDir;shardsDir;indexPath;constructor(t,e=process.cwd()){this.baseDir=B.default.resolve(e,Bt,`transform-${t}`),this.shardsDir=B.default.resolve(this.baseDir,Le),this.indexPath=B.default.resolve(this.baseDir,"index.json")}load(){if(process.env.BOLTDOCS_NO_CACHE!=="1"&&C.default.existsSync(this.indexPath))try{let t=C.default.readFileSync(this.indexPath,"utf-8");this.index=new Map(Object.entries(JSON.parse(t)))}catch{}}save(){if(process.env.BOLTDOCS_NO_CACHE==="1")return;let t=JSON.stringify(Object.fromEntries(this.index)),e=this.indexPath;F.add(async()=>{await rt(B.default.dirname(e),{recursive:!0}),await nt(e,t)})}async getMany(t){let e=new Map,s=[];for(let i of t){let r=this.memoryCache.get(i);r?e.set(i,r):this.index.has(i)&&s.push(i)}if(s.length>0){let i=await Promise.all(s.map(async r=>{let c=this.index.get(r),p=B.default.resolve(this.shardsDir,`${c}.gz`);try{let n=await je(p),l=L.default.gunzipSync(n).toString("utf-8");return this.memoryCache.set(r,l),{key:r,val:l}}catch{return null}}));for(let r of i)r&&e.set(r.key,r.val)}return e}get(t){let e=this.memoryCache.get(t);if(e)return e;let s=this.index.get(t);if(!s)return null;let i=B.default.resolve(this.shardsDir,`${s}.gz`);if(!C.default.existsSync(i))return null;try{let r=C.default.readFileSync(i),c=L.default.gunzipSync(r).toString("utf-8");return this.memoryCache.set(t,c),c}catch{return null}}set(t,e){let s=E.default.createHash("md5").update(e).digest("hex");this.index.set(t,s),this.memoryCache.set(t,e);let i=B.default.resolve(this.shardsDir,`${s}.gz`);F.add(async()=>{if(C.default.existsSync(i))return;await rt(this.shardsDir,{recursive:!0});let r=L.default.gzipSync(Buffer.from(e)),c=`${i}.${E.default.randomBytes(4).toString("hex")}.tmp`;await nt(c,r),await St(c,i)})}get size(){return this.index.size}async flush(){await F.flush()}},$t=class{assetsDir;constructor(t=process.cwd()){this.assetsDir=B.default.resolve(t,Bt,He)}getFileHash(t){return E.default.createHash("md5").update(C.default.readFileSync(t)).digest("hex")}get(t,e){if(!C.default.existsSync(t))return null;let s=this.getFileHash(t),i=this.getCachedPath(t,`${e}-${s}`);return C.default.existsSync(i)?i:null}set(t,e,s){let i=this.getFileHash(t),r=this.getCachedPath(t,`${e}-${i}`);F.add(async()=>{await rt(this.assetsDir,{recursive:!0});let c=`${r}.${E.default.randomBytes(4).toString("hex")}.tmp`;await nt(c,s),await St(c,r)})}getCachedPath(t,e){let s=B.default.extname(t),i=B.default.basename(t,s),r=e.replace(/[^a-z0-9]/gi,"-").toLowerCase();return B.default.join(this.assetsDir,`${i}.${r}${s}`)}clear(){C.default.existsSync(this.assetsDir)&&C.default.rmSync(this.assetsDir,{recursive:!0,force:!0})}async flush(){await F.flush()}}});var Je={};Ht(Je,{createViteConfig:()=>qe,default:()=>Ft,defineConfig:()=>Xt,generateStaticPages:()=>lt,resolveConfig:()=>I});module.exports=Fe(Je);m();var we=v(require("@vitejs/plugin-react")),Ce=v(require("@tailwindcss/vite"));m();var se=require("vite");m();var qt=v(require("fast-glob"));T();m();X();var _=new J({name:"routes"});function Rt(){_.invalidateAll()}function kt(o){_.invalidate(o)}m();var A=v(require("path")),Ut=v(require("github-slugger"));T();function Gt(o,t,e,s){let i=decodeURIComponent(o),r=A.default.resolve(i),c=A.default.resolve(t),p=k(A.default.relative(c,r));if(p.startsWith("../")||p===".."||r.includes("\0"))throw new Error(`Security breach: File is outside of docs directory or contains null bytes: ${o}`);let{data:n,content:l}=At(o),d=p.split("/"),u,h;if(s?.versions&&d.length>0){let R=d[0],gt=s.versions.prefix||"",tt=s.versions.versions.find(G=>{let ft=gt+G.path;return R===ft||R===G.path});tt&&(h=tt.path,d=d.slice(1))}if(s?.i18n&&d.length>0){let R=d[0];s.i18n.locales[R]&&(u=R,d=d.slice(1))}let y;if(d.length>0){let R=d[0].match(/^\((.+)\)$/);R&&(y=R[1].toLowerCase(),d=d.slice(1))}let S=d.join("/"),a;n.permalink?a=n.permalink.startsWith("/")?n.permalink:`/${n.permalink}`:a=Nt(S||"index.md");let g=e;h&&(g+="/"+h),u&&(g+="/"+u),g+=a==="/"?"":a,(!g||g==="")&&(g="/");let b=d[d.length-1],f=V(b),D=V(A.default.basename(o,A.default.extname(o))),x=n.sidebarPosition??ot(b),$=d.length>=2?d[0]:void 0,w=$?V($):void 0,U=d.length>=2&&/^index\.mdx?$/.test(f),$e=new Ut.default,It=[],Se=/^(#{2,4})\s+(.+)$/gm;for(let R of l.matchAll(Se)){let gt=R[1].length,tt=R[2].replace(/\[([^\]]+)\]\([^\)]+\)/g,"$1").replace(/[_*`]/g,"").trim(),G=W(tt).trim(),ft=$e.slug(G);It.push({level:gt,text:G,id:ft})}let Be=n.title?W(String(n.title)):D,ut=n.description?W(String(n.description)):"";!ut&&l&&(ut=vt(l.replace(/^#+.*$/gm,"").replace(/\[([^\]]+)\]\([^\)]+\)/g,"$1").replace(/[_*`]/g,"").replace(/\s+/g," ")).trim().slice(0,160));let De=n.badge?W(String(n.badge)):void 0,jt=n.icon?String(n.icon):void 0,Re=Ne(l);return{route:{path:g,componentPath:o,filePath:p,title:Be,description:ut,sidebarPosition:x,headings:It,locale:u,version:h,badge:De,icon:jt,tab:y,_content:Re,_rawContent:l},relativeDir:w,isGroupIndex:U,inferredTab:y,groupMeta:U?{title:n.groupTitle||n.title||(w?q(w):""),position:n.groupPosition??n.sidebarPosition??($?ot($):void 0),icon:jt}:void 0,inferredGroupPosition:$?ot($):void 0}}function Ne(o){let t=o.replace(/^#+.*$/gm,"").replace(/\[([^\]]+)\]\([^\)]+\)/g,"$1").replace(/\{[^\}]+\}/g,"").replace(/[_*`]/g,"").replace(/\s+/g," ");return vt(t).trim()}m();function Wt(o){return o.sort((t,e)=>!t.group&&!e.group?Vt(t,e):t.group?e.group?t.group!==e.group?Ue(t,e):Vt(t,e):1:-1)}function Vt(o,t){return o.sidebarPosition!==void 0&&t.sidebarPosition!==void 0?o.sidebarPosition-t.sidebarPosition:o.sidebarPosition!==void 0?-1:t.sidebarPosition!==void 0?1:o.title.localeCompare(t.title)}function Ue(o,t){return o.groupPosition!==void 0&&t.groupPosition!==void 0?o.groupPosition-t.groupPosition:o.groupPosition!==void 0?-1:t.groupPosition!==void 0?1:(o.groupTitle||o.group).localeCompare(t.groupTitle||t.group)}var Mt=null,Z=new Map;async function Q(o,t,e="/docs",s=!0){let i=performance.now();_.load(),Z.clear(),(process.env.BOLTDOCS_FORCE_REPARSE==="true"||t?.i18n)&&_.invalidateAll();let r;!s&&Mt?r=Mt:(r=await(0,qt.default)(["**/*.md","**/*.mdx"],{cwd:o,absolute:!0,suppressErrors:!0,followSymbolicLinks:!1}),Mt=r),_.pruneStale(new Set(r));let c=50,p=[],n=0;for(let a=0;a<r.length;a+=c){let g=r.slice(a,a+c),b=await Promise.all(g.map(async f=>{let D=_.get(f);if(D)return n++,D;let x=Gt(f,o,e,t);return _.set(f,x),x}));p.push(...b),a+c<r.length&&await new Promise(f=>setImmediate(f))}_.save();let l=new Map,d=[];for(let a of p)if(a.isGroupIndex&&a.relativeDir&&d.push(a),a.relativeDir){let g=l.get(a.relativeDir);g?(g.position===void 0&&a.inferredGroupPosition!==void 0&&(g.position=a.inferredGroupPosition),!g.icon&&a.route.icon&&(g.icon=a.route.icon)):(g={title:q(a.relativeDir),position:a.inferredGroupPosition,icon:a.route.icon},l.set(a.relativeDir,g))}for(let a of d){let g=l.get(a.relativeDir);a.groupMeta&&(g.title=a.groupMeta.title,a.groupMeta.position!==void 0&&(g.position=a.groupMeta.position),a.groupMeta.icon&&(g.icon=a.groupMeta.icon))}let u=new Array(p.length);for(let a=0;a<p.length;a++){let g=p[a],b=g.relativeDir,f=b?l.get(b):void 0;u[a]={...g.route,group:b,groupTitle:f?.title||(b?q(b):void 0),groupPosition:f?.position,groupIcon:f?.icon}}let h=u;if(t?.i18n){let a=Ge(u,t,e);h=[...u,...a]}let y=Wt(h),S=performance.now()-i;return console.log(`[boltdocs] Route generation: ${S.toFixed(2)}ms (${r.length} files, ${n} cache hits)`),y}function Ge(o,t,e){let s=t.i18n.defaultLocale,i=Object.keys(t.i18n.locales),r=[],c=new Map,p=[];for(let n of o){let l=n.locale||s;c.has(l)||c.set(l,new Set),c.get(l).add(n.path),l===s&&p.push(n)}for(let n of i){let l=c.get(n)||new Set;for(let d of p){let u=Ve(d.path,s,n,e,t);u!==d.path&&(l.has(u)||r.push({...d,path:u,locale:n}))}}return r}function Ve(o,t,e,s,i){let r=`${o}:${e}`,c=Z.get(r);if(c)return c;let p=s;if(i?.versions){let u=i.versions.prefix||"";for(let h of i.versions.versions){let y=u+h.path;if(o.startsWith(`${s}/${y}`)){p+="/"+y;break}if(o.startsWith(`${s}/${h.path}`)){p+="/"+h.path;break}}}let n=o.substring(p.length),l=`/${t}`;if(n.startsWith(l+"/"))n="/"+e+"/"+n.substring(l.length+1);else if(n===l)n="/"+e;else if(n==="/"||n==="")n="/"+e;else{let u=n.startsWith("/")?"":"/";n="/"+e+u+n}let d=p+n;return Z.size>2e3&&Z.clear(),Z.set(r,d),d}var ae=require("vite-plugin-image-optimizer");m();var st=v(require("path")),Jt=v(require("fs")),Kt=require("vite");function Xt(o){return o}var at=["boltdocs.config.js","boltdocs.config.mjs","boltdocs.config.ts"];async function I(o,t=process.cwd()){let e=t,s={docsDir:st.default.resolve(o),theme:{title:"Boltdocs",description:"A Vite documentation framework",navbar:[{label:"Home",href:"/"},{label:"Documentation",href:"/docs"}],codeTheme:{light:"github-light",dark:"github-dark"},poweredBy:!0,breadcrumbs:!0}},i={};for(let n of at){let l=st.default.resolve(e,n);if(Jt.default.existsSync(l))try{let d=await(0,Kt.loadConfigFromFile)({command:"serve",mode:"development"},l,e);if(d){i=d.config;break}}catch(d){console.warn(`[boltdocs] Failed to load config from ${n}:`,d)}}let c={...{title:i.title,description:i.description,logo:i.logo,favicon:i.favicon,ogImage:i.ogImage,navbar:i.navbar,sidebar:i.sidebar,socialLinks:i.socialLinks,footer:i.footer,githubRepo:i.githubRepo,tabs:i.tabs,codeTheme:i.codeTheme,copyMarkdown:i.copyMarkdown,breadcrumbs:i.breadcrumbs,poweredBy:i.poweredBy,communityHelp:i.communityHelp,version:i.version,editLink:i.editLink},...i.theme||{}},p=Object.fromEntries(Object.entries(c).filter(([n,l])=>l!==void 0));return p.navbar&&(p.navbar=p.navbar.map(n=>({label:n.label||n.text||"",href:n.href||n.link||n.to||"",items:n.items?.map(l=>({label:l.label||l.text||"",href:l.href||l.link||l.to||""}))}))),{docsDir:st.default.resolve(o),homePage:i.homePage,theme:{...s.theme,...p},i18n:i.i18n,versions:i.versions,siteUrl:i.siteUrl,plugins:i.plugins||[],external:i.external,integrations:i.integrations,robots:i.robots,vite:i.vite}}m();var j=v(require("fs")),O=v(require("path"));T();var ee=require("url"),oe=require("module");m();T();function Zt(o,t){let e=H(t.title),s=H(t.description);return o.replace(/<title>.*?<\/title>/,`<title>${e}</title>`).replace(/(<meta name="description" content=")[^"]*(")/,`$1${s}$2`).replace(/(<meta property="og:title" content=")[^"]*(")/,`$1${e}$2`).replace(/(<meta property="og:description" content=")[^"]*(")/,`$1${s}$2`).replace(/(<meta name="twitter:title" content=")[^"]*(")/,`$1${e}$2`).replace(/(<meta name="twitter:description" content=")[^"]*(")/,`$1${s}$2`)}m();T();function Qt(o,t){let e=t?.siteUrl?.replace(/\/$/,"")||"https://example.com",s=new Date().toISOString().split("T")[0],i=[{url:"/",priority:"1.0",changefreq:"daily"}];if(t?.i18n){let c=t.i18n.defaultLocale;for(let p of Object.keys(t.i18n.locales))p!==c&&i.push({url:`/${p}/`,priority:"1.0",changefreq:"daily"})}return`<?xml version="1.0" encoding="UTF-8"?>
|
|
1
|
+
"use strict";var Te=Object.create;var it=Object.defineProperty;var Oe=Object.getOwnPropertyDescriptor;var Fe=Object.getOwnPropertyNames;var Ie=Object.getPrototypeOf,je=Object.prototype.hasOwnProperty;var xt=(o,e)=>()=>(o&&(e=o(o=0)),e);var Et=(o,e)=>{for(var t in e)it(o,t,{get:e[t],enumerable:!0})},zt=(o,e,t,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Fe(e))!je.call(o,i)&&i!==t&&it(o,i,{get:()=>e[i],enumerable:!(s=Oe(e,i))||s.enumerable});return o};var v=(o,e,t)=>(t=o!=null?Te(Ie(o)):{},zt(e||!o||!o.__esModule?it(t,"default",{value:o,enumerable:!0}):t,o)),He=o=>zt(it({},"__esModule",{value:!0}),o);var Le,P,u=xt(()=>{"use strict";Le=()=>typeof document>"u"?new URL(`file:${__filename}`).href:document.currentScript&&document.currentScript.tagName.toUpperCase()==="SCRIPT"?document.currentScript.src:new URL("main.js",document.baseURI).href,P=Le()});function k(o){return o.replace(/\\/g,"/")}function W(o){return o.replace(/^\d+\./,"")}function nt(o){let e=o.match(/^(\d+)\./);return e?parseInt(e[1],10):void 0}function Nt(o){return/\.mdx?$/.test(o)}function rt(o){try{return bt.default.statSync(o).mtimeMs}catch{return 0}}function Gt(o){let e=bt.default.readFileSync(o,"utf-8");try{let{data:t,content:s}=(0,At.default)(e);return{data:t,content:s}}catch{return{data:{},content:e}}}function L(o){return o.replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">")}function Pt(o){return L(o)}function Ut(o){let t=o.split("/").map(W).join("/").replace(/\/$/,"");return t=t.replace(/\.mdx?$/,""),(t==="index"||t.endsWith("/index"))&&(t=t.replace(/index$/,"")),t.startsWith("/")||(t="/"+t),t.length>1&&t.endsWith("/")&&(t=t.slice(0,-1)),t}function q(o){return vt.default.sanitize(o)}function wt(o){return vt.default.sanitize(o,{ALLOWED_TAGS:[],KEEP_CONTENT:!0})}function J(o){return o.charAt(0).toUpperCase()+o.slice(1)}function Ct(o,e){return o?typeof o=="string"?o:e&&o[e]?o[e]:Object.values(o)[0]||"":""}var bt,At,vt,F=xt(()=>{"use strict";u();bt=v(require("fs")),At=v(require("gray-matter")),vt=v(require("isomorphic-dompurify"))});var Rt={};Et(Rt,{AssetCache:()=>Dt,FileCache:()=>K,TransformCache:()=>X,flushCache:()=>Ue});async function Ue(){await j.flush()}var $,M,z,E,A,st,Ee,at,Bt,io,Mt,ze,Ae,Ne,Ge,$t,St,j,K,X,Dt,Z=xt(()=>{"use strict";u();$=v(require("fs")),M=v(require("path")),z=v(require("crypto")),E=v(require("zlib")),A=require("util");F();st=(0,A.promisify)($.default.writeFile),Ee=(0,A.promisify)($.default.readFile),at=(0,A.promisify)($.default.mkdir),Bt=(0,A.promisify)($.default.rename),io=(0,A.promisify)($.default.unlink),Mt=process.env.BOLTDOCS_CACHE_DIR||".boltdocs",ze="assets",Ae="shards",Ne=parseInt(process.env.BOLTDOCS_CACHE_LRU_LIMIT||"2000",10),Ge=process.env.BOLTDOCS_CACHE_COMPRESS!=="0",$t=class{constructor(e){this.limit=e}cache=new Map;get(e){let t=this.cache.get(e);return t!==void 0&&(this.cache.delete(e),this.cache.set(e,t)),t}set(e,t){if(this.cache.has(e))this.cache.delete(e);else if(this.cache.size>=this.limit){let s=this.cache.keys().next().value;s!==void 0&&this.cache.delete(s)}this.cache.set(e,t)}get size(){return this.cache.size}clear(){this.cache.clear()}},St=class{queue=Promise.resolve();pendingCount=0;add(e){this.pendingCount++,this.queue=this.queue.then(e).finally(()=>{this.pendingCount--})}async flush(){await this.queue}get pending(){return this.pendingCount}},j=new St,K=class{entries=new Map;cachePath=null;compress;constructor(e={}){if(this.compress=e.compress!==void 0?e.compress:Ge,e.name){let t=e.root||process.cwd(),s=this.compress?"json.gz":"json";this.cachePath=M.default.resolve(t,Mt,`${e.name}.${s}`)}}load(){if(process.env.BOLTDOCS_NO_CACHE!=="1"&&!(!this.cachePath||!$.default.existsSync(this.cachePath)))try{let e=$.default.readFileSync(this.cachePath);this.cachePath.endsWith(".gz")&&(e=E.default.gunzipSync(e));let t=JSON.parse(e.toString("utf-8"));this.entries=new Map(Object.entries(t))}catch{}}save(){if(process.env.BOLTDOCS_NO_CACHE==="1"||!this.cachePath)return;let e=Object.fromEntries(this.entries),t=JSON.stringify(e),s=this.cachePath,i=this.compress;j.add(async()=>{try{await at(M.default.dirname(s),{recursive:!0});let r=Buffer.from(t);i&&(r=E.default.gzipSync(r));let c=`${s}.${z.default.randomBytes(4).toString("hex")}.tmp`;await st(c,r),await Bt(c,s)}catch{}})}get(e){let t=this.entries.get(e);return!t||rt(e)!==t.mtime?null:t.data}set(e,t){this.entries.set(e,{data:t,mtime:rt(e)})}isValid(e){let t=this.entries.get(e);return t?rt(e)===t.mtime:!1}invalidate(e){this.entries.delete(e)}invalidateAll(){this.entries.clear()}pruneStale(e){for(let t of this.entries.keys())e.has(t)||this.entries.delete(t)}get size(){return this.entries.size}async flush(){await j.flush()}},X=class{index=new Map;memoryCache=new $t(Ne);baseDir;shardsDir;indexPath;constructor(e,t=process.cwd()){this.baseDir=M.default.resolve(t,Mt,`transform-${e}`),this.shardsDir=M.default.resolve(this.baseDir,Ae),this.indexPath=M.default.resolve(this.baseDir,"index.json")}load(){if(process.env.BOLTDOCS_NO_CACHE!=="1"&&$.default.existsSync(this.indexPath))try{let e=$.default.readFileSync(this.indexPath,"utf-8");this.index=new Map(Object.entries(JSON.parse(e)))}catch{}}save(){if(process.env.BOLTDOCS_NO_CACHE==="1")return;let e=JSON.stringify(Object.fromEntries(this.index)),t=this.indexPath;j.add(async()=>{await at(M.default.dirname(t),{recursive:!0}),await st(t,e)})}async getMany(e){let t=new Map,s=[];for(let i of e){let r=this.memoryCache.get(i);r?t.set(i,r):this.index.has(i)&&s.push(i)}if(s.length>0){let i=await Promise.all(s.map(async r=>{let c=this.index.get(r),p=M.default.resolve(this.shardsDir,`${c}.gz`);try{let n=await Ee(p),l=E.default.gunzipSync(n).toString("utf-8");return this.memoryCache.set(r,l),{key:r,val:l}}catch{return null}}));for(let r of i)r&&t.set(r.key,r.val)}return t}get(e){let t=this.memoryCache.get(e);if(t)return t;let s=this.index.get(e);if(!s)return null;let i=M.default.resolve(this.shardsDir,`${s}.gz`);if(!$.default.existsSync(i))return null;try{let r=$.default.readFileSync(i),c=E.default.gunzipSync(r).toString("utf-8");return this.memoryCache.set(e,c),c}catch{return null}}set(e,t){let s=z.default.createHash("md5").update(t).digest("hex");this.index.set(e,s),this.memoryCache.set(e,t);let i=M.default.resolve(this.shardsDir,`${s}.gz`);j.add(async()=>{if($.default.existsSync(i))return;await at(this.shardsDir,{recursive:!0});let r=E.default.gzipSync(Buffer.from(t)),c=`${i}.${z.default.randomBytes(4).toString("hex")}.tmp`;await st(c,r),await Bt(c,i)})}get size(){return this.index.size}async flush(){await j.flush()}},Dt=class{assetsDir;constructor(e=process.cwd()){this.assetsDir=M.default.resolve(e,Mt,ze)}getFileHash(e){return z.default.createHash("md5").update($.default.readFileSync(e)).digest("hex")}get(e,t){if(!$.default.existsSync(e))return null;let s=this.getFileHash(e),i=this.getCachedPath(e,`${t}-${s}`);return $.default.existsSync(i)?i:null}set(e,t,s){let i=this.getFileHash(e),r=this.getCachedPath(e,`${t}-${i}`);j.add(async()=>{await at(this.assetsDir,{recursive:!0});let c=`${r}.${z.default.randomBytes(4).toString("hex")}.tmp`;await st(c,s),await Bt(c,r)})}getCachedPath(e,t){let s=M.default.extname(e),i=M.default.basename(e,s),r=t.replace(/[^a-z0-9]/gi,"-").toLowerCase();return M.default.join(this.assetsDir,`${i}.${r}${s}`)}clear(){$.default.existsSync(this.assetsDir)&&$.default.rmSync(this.assetsDir,{recursive:!0,force:!0})}async flush(){await j.flush()}}});var Ze={};Et(Ze,{createViteConfig:()=>Xe,default:()=>jt,defineConfig:()=>Qt,generateStaticPages:()=>pt,resolveConfig:()=>H});module.exports=He(Ze);u();var De=v(require("@vitejs/plugin-react")),Be=v(require("@tailwindcss/vite"));u();var ce=require("vite");u();var Kt=v(require("fast-glob"));F();u();Z();var I=new K({name:"routes"});function kt(){I.invalidateAll()}function _t(o){I.invalidate(o)}u();var N=v(require("path")),Vt=v(require("github-slugger"));F();function Wt(o,e,t,s){let i=decodeURIComponent(o),r=N.default.resolve(i),c=N.default.resolve(e),p=k(N.default.relative(c,r));if(p.startsWith("../")||p===".."||r.includes("\0"))throw new Error(`Security breach: File is outside of docs directory or contains null bytes: ${o}`);let{data:n,content:l}=Gt(o),d=p.split("/"),g,b;if(s?.versions&&d.length>0){let R=d[0],ht=s.versions.prefix||"",ot=s.versions.versions.find(V=>{let yt=ht+V.path;return R===yt||R===V.path});ot&&(b=ot.path,d=d.slice(1))}if(s?.i18n&&d.length>0){let R=d[0];s.i18n.locales[R]&&(g=R,d=d.slice(1))}let C;if(d.length>0){let R=d[0].match(/^\((.+)\)$/);R&&(C=R[1].toLowerCase(),d=d.slice(1))}let w=d.join("/"),m;n.permalink?m=n.permalink.startsWith("/")?n.permalink:`/${n.permalink}`:m=Ut(w||"index.md");let a=t;b&&(a+="/"+b),g&&(a+="/"+g),C&&(a+="/"+C),a+=m==="/"?"":m,(!a||a==="")&&(a="/");let y=d[d.length-1],f=W(y),x=W(N.default.basename(o,N.default.extname(o))),S=n.sidebarPosition??nt(y),h=d.length>=2?d[0]:void 0,B=h?W(h):void 0,D=d.length>=2&&/^index\.mdx?$/.test(f),et=new Vt.default,Ht=[],Me=/^(#{2,4})\s+(.+)$/gm;for(let R of l.matchAll(Me)){let ht=R[1].length,ot=R[2].replace(/\[([^\]]+)\]\([^\)]+\)/g,"$1").replace(/[_*`]/g,"").trim(),V=q(ot).trim(),yt=et.slug(V);Ht.push({level:ht,text:V,id:yt})}let Re=n.title?q(String(n.title)):x,ft=n.description?q(String(n.description)):"";!ft&&l&&(ft=wt(l.replace(/^#+.*$/gm,"").replace(/\[([^\]]+)\]\([^\)]+\)/g,"$1").replace(/[_*`]/g,"").replace(/\s+/g," ")).trim().slice(0,160));let ke=n.badge?q(String(n.badge)):void 0,Lt=n.icon?String(n.icon):void 0,_e=Ve(l);return{route:{path:a,componentPath:o,filePath:p,title:Re,description:ft,sidebarPosition:S,headings:Ht,locale:g,version:b,badge:ke,icon:Lt,tab:C,_content:_e,_rawContent:l},relativeDir:B,isGroupIndex:D,inferredTab:C,groupMeta:D?{title:n.groupTitle||n.title||(B?J(B):""),position:n.groupPosition??n.sidebarPosition??(h?nt(h):void 0),icon:Lt}:void 0,inferredGroupPosition:h?nt(h):void 0}}function Ve(o){let e=o.replace(/^#+.*$/gm,"").replace(/\[([^\]]+)\]\([^\)]+\)/g,"$1").replace(/\{[^\}]+\}/g,"").replace(/[_*`]/g,"").replace(/\s+/g," ");return wt(e).trim()}u();function Jt(o){return o.sort((e,t)=>!e.group&&!t.group?qt(e,t):e.group?t.group?e.group!==t.group?We(e,t):qt(e,t):1:-1)}function qt(o,e){return o.sidebarPosition!==void 0&&e.sidebarPosition!==void 0?o.sidebarPosition-e.sidebarPosition:o.sidebarPosition!==void 0?-1:e.sidebarPosition!==void 0?1:o.title.localeCompare(e.title)}function We(o,e){return o.groupPosition!==void 0&&e.groupPosition!==void 0?o.groupPosition-e.groupPosition:o.groupPosition!==void 0?-1:e.groupPosition!==void 0?1:(o.groupTitle||o.group).localeCompare(e.groupTitle||e.group)}var Tt=null,Q=new Map;async function G(o,e,t="/docs",s=!0){let i=performance.now();I.load(),Q.clear(),(process.env.BOLTDOCS_FORCE_REPARSE==="true"||e?.i18n)&&I.invalidateAll();let r;!s&&Tt?r=Tt:(r=await(0,Kt.default)(["**/*.md","**/*.mdx"],{cwd:o,absolute:!0,suppressErrors:!0,followSymbolicLinks:!1}),Tt=r),I.pruneStale(new Set(r));let c=50,p=[],n=0;for(let m=0;m<r.length;m+=c){let a=r.slice(m,m+c),y=await Promise.all(a.map(async f=>{let x=I.get(f);if(x)return n++,x;let S=Wt(f,o,t,e);return I.set(f,S),S}));p.push(...y),m+c<r.length&&await new Promise(f=>setImmediate(f))}I.save();let l=new Map,d=[];for(let m of p)if(m.isGroupIndex&&m.relativeDir&&d.push(m),m.relativeDir){let a=l.get(m.relativeDir);a?(a.position===void 0&&m.inferredGroupPosition!==void 0&&(a.position=m.inferredGroupPosition),!a.icon&&m.route.icon&&(a.icon=m.route.icon)):(a={title:J(m.relativeDir),position:m.inferredGroupPosition,icon:m.route.icon},l.set(m.relativeDir,a))}for(let m of d){let a=l.get(m.relativeDir);m.groupMeta&&(a.title=m.groupMeta.title,m.groupMeta.position!==void 0&&(a.position=m.groupMeta.position),m.groupMeta.icon&&(a.icon=m.groupMeta.icon))}let g=new Array(p.length);for(let m=0;m<p.length;m++){let a=p[m],y=a.relativeDir,f=y?l.get(y):void 0;g[m]={...a.route,group:y,groupTitle:f?.title||(y?J(y):void 0),groupPosition:f?.position,groupIcon:f?.icon}}let b=g;if(e?.i18n){let m=qe(g,e,t);b=[...g,...m]}let C=Jt(b),w=performance.now()-i;return console.log(`[boltdocs] Route generation: ${w.toFixed(2)}ms (${r.length} files, ${n} cache hits)`),C}function qe(o,e,t){let s=e.i18n.defaultLocale,i=Object.keys(e.i18n.locales),r=[],c=new Map,p=[];for(let n of o){let l=n.locale||s;c.has(l)||c.set(l,new Set),c.get(l).add(n.path),l===s&&p.push(n)}for(let n of i){let l=c.get(n)||new Set;for(let d of p){let g=Je(d.path,s,n,t,e);g!==d.path&&(l.has(g)||r.push({...d,path:g,locale:n}))}}return r}function Je(o,e,t,s,i){let r=`${o}:${t}`,c=Q.get(r);if(c)return c;let p=s;if(i?.versions){let g=i.versions.prefix||"";for(let b of i.versions.versions){let C=g+b.path;if(o.startsWith(`${s}/${C}`)){p+="/"+C;break}if(o.startsWith(`${s}/${b.path}`)){p+="/"+b.path;break}}}let n=o.substring(p.length),l=`/${e}`;if(n.startsWith(l+"/"))n="/"+t+"/"+n.substring(l.length+1);else if(n===l)n="/"+t;else if(n==="/"||n==="")n="/"+t;else{let g=n.startsWith("/")?"":"/";n="/"+t+g+n}let d=p+n;return Q.size>2e3&&Q.clear(),Q.set(r,d),d}var le=require("vite-plugin-image-optimizer");u();var ct=v(require("path")),Xt=v(require("fs")),Zt=require("vite");function Qt(o){return o}var lt=["boltdocs.config.js","boltdocs.config.mjs","boltdocs.config.ts"];async function H(o,e=process.cwd()){let t=e,s={docsDir:ct.default.resolve(o),theme:{title:"Boltdocs",description:"A Vite documentation framework",navbar:[{label:"Home",href:"/"},{label:"Documentation",href:"/docs"}],codeTheme:{light:"github-light",dark:"github-dark"},poweredBy:!0,breadcrumbs:!0}},i={};for(let n of lt){let l=ct.default.resolve(t,n);if(Xt.default.existsSync(l))try{let d=await(0,Zt.loadConfigFromFile)({command:"serve",mode:"development"},l,t);if(d){i=d.config;break}}catch(d){console.warn(`[boltdocs] Failed to load config from ${n}:`,d)}}let c={...{title:i.title,description:i.description,logo:i.logo,favicon:i.favicon,ogImage:i.ogImage,navbar:i.navbar,sidebar:i.sidebar,socialLinks:i.socialLinks,footer:i.footer,githubRepo:i.githubRepo,tabs:i.tabs,codeTheme:i.codeTheme,copyMarkdown:i.copyMarkdown,breadcrumbs:i.breadcrumbs,poweredBy:i.poweredBy,communityHelp:i.communityHelp,version:i.version,editLink:i.editLink},...i.theme||{}},p=Object.fromEntries(Object.entries(c).filter(([n,l])=>l!==void 0));return p.navbar&&(p.navbar=p.navbar.map(n=>({label:n.label||n.text||"",href:n.href||n.link||n.to||""}))),{docsDir:ct.default.resolve(o),homePage:i.homePage,theme:{...s.theme,...p},i18n:i.i18n,versions:i.versions,siteUrl:i.siteUrl,plugins:i.plugins||[],integrations:i.integrations,robots:i.robots,vite:i.vite}}u();var T=v(require("fs")),O=v(require("path"));F();var ie=require("url"),ne=require("module");u();F();function Yt(o,e){let t=L(e.title),s=L(e.description);return o.replace(/<title>.*?<\/title>/,`<title>${t}</title>`).replace(/(<meta name="description" content=")[^"]*(")/,`$1${s}$2`).replace(/(<meta property="og:title" content=")[^"]*(")/,`$1${t}$2`).replace(/(<meta property="og:description" content=")[^"]*(")/,`$1${s}$2`).replace(/(<meta name="twitter:title" content=")[^"]*(")/,`$1${t}$2`).replace(/(<meta name="twitter:description" content=")[^"]*(")/,`$1${s}$2`)}u();F();function te(o,e){let t=e?.siteUrl?.replace(/\/$/,"")||"https://example.com",s=new Date().toISOString().split("T")[0],i=[{url:"/",priority:"1.0",changefreq:"daily"}];if(e?.i18n){let c=e.i18n.defaultLocale;for(let p of Object.keys(e.i18n.locales))p!==c&&i.push({url:`/${p}/`,priority:"1.0",changefreq:"daily"})}return`<?xml version="1.0" encoding="UTF-8"?>
|
|
2
2
|
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
|
3
3
|
${[...i,...o.map(c=>({url:c,priority:"0.8",changefreq:"weekly"}))].map(c=>` <url>
|
|
4
|
-
<loc>${
|
|
4
|
+
<loc>${Pt(t)}${Pt(c.url)}</loc>
|
|
5
5
|
<lastmod>${s}</lastmod>
|
|
6
6
|
<changefreq>${c.changefreq}</changefreq>
|
|
7
7
|
<priority>${c.priority}</priority>
|
|
8
8
|
</url>`).join(`
|
|
9
9
|
`)}
|
|
10
|
-
</urlset>`}
|
|
10
|
+
</urlset>`}u();function dt(o){if(typeof o.robots=="string")return o.robots;let e=o.siteUrl?.replace(/\/$/,"")||"",t=o.robots||{},s=t.rules||[{userAgent:"*",allow:"/"}],i=t.sitemaps||(e?[`${e}/sitemap.xml`]:[]),r="";for(let c of s){if(r+=`User-agent: ${c.userAgent}
|
|
11
11
|
`,c.disallow){let p=Array.isArray(c.disallow)?c.disallow:[c.disallow];for(let n of p)r+=`Disallow: ${n}
|
|
12
12
|
`}if(c.allow){let p=Array.isArray(c.allow)?c.allow:[c.allow];for(let n of p)r+=`Allow: ${n}
|
|
13
13
|
`}r+=`
|
|
14
14
|
`}for(let c of i)r+=`Sitemap: ${c}
|
|
15
|
-
`;return r.trim()}var
|
|
16
|
-
const ${
|
|
17
|
-
`),n=c.map(([
|
|
18
|
-
`),h=d.length>0?`externalPages: { ${d.map(([y],S)=>`"${y}": _ext_${S}`).join(", ")} },`:"";return`
|
|
15
|
+
`;return r.trim()}var Ke=(0,ie.fileURLToPath)(P),ee=O.default.dirname(Ke),oe=(0,ne.createRequire)(P);async function pt(o){let{docsDir:e,docsDirName:t,outDir:s,config:i}=o,r=await G(e,i),c=["tsx","ts","jsx","js"].map(a=>O.default.resolve(e,`pages-external/index.${a}`)).find(a=>T.default.existsSync(a));if(c)try{let a=T.default.readFileSync(c,"utf-8"),y=a.match(/pages\s*:\s*{([^}]+)}/s);if(y){let f=y[1].split(",").map(x=>x.split(":")[0].trim().replace(/['"]/g,"")).filter(x=>x&&x.startsWith("/"));for(let x of f)r.some(S=>S.path===x)||r.push({path:x,title:x.slice(1).charAt(0).toUpperCase()+x.slice(2),filePath:"",componentPath:"",_content:""})}a.includes("homePage")&&!r.some(f=>f.path==="/")&&r.push({path:"/",title:"Home",filePath:"",componentPath:"",_content:""})}catch(a){console.warn("[boltdocs] Failed to parse external routes for SSG:",a)}let p=O.default.resolve(ee,"../client/ssr.js");if(!T.default.existsSync(p)){console.error("[boltdocs] SSR module not found at",p,"- Did you build the core package?");return}let n=oe("module"),l=n.prototype.require;n.prototype.require=function(a,...y){return a.startsWith("virtual:boltdocs-")?a==="virtual:boltdocs-layout"?{__esModule:!0,default:function(x){try{let h=l.apply(this,[O.default.resolve(ee,"../client/index.js")]).DefaultLayout||(({children:D})=>D);return l.apply(this,["react"]).createElement(h,x)}catch{return x.children}}}:a==="virtual:boltdocs-mdx-components"?{__esModule:!0,default:{}}:a==="virtual:boltdocs-config"?{__esModule:!0,default:i}:{__esModule:!0,default:a.includes("routes")?[]:{}}:l.apply(this,[a,...y])};let{render:d}=oe(p);n.prototype.require=l;let g=O.default.join(s,"index.html");if(!T.default.existsSync(g)){console.warn("[boltdocs] No index.html found in outDir, skipping SSG.");return}let b=T.default.readFileSync(g,"utf-8");await Promise.all(r.map(async a=>{let y=Ct(i?.theme?.title,a.locale)||"Boltdocs",f=Ct(i?.theme?.description,a.locale)||"",x=`${a.title} | ${y}`,S=a.description||f,h={};h[`/${t}/${a.filePath}`]={default:()=>null};try{let B=await d({path:a.path,routes:r,config:i||{},docsDirName:t,modules:h,homePage:void 0}),D=Yt(b,{title:L(x),description:L(S)}).replace("<!--app-html-->",B).replace('<div id="root"></div>',`<div id="root">${B}</div>`),et=O.default.join(s,a.path);await T.default.promises.mkdir(et,{recursive:!0}),await T.default.promises.writeFile(O.default.join(et,"index.html"),D,"utf-8")}catch(B){console.error(`[boltdocs] Error SSR rendering route ${a.path}:`,B&&(B.stack||B))}}));let C=te(r.map(a=>a.path),i);T.default.writeFileSync(O.default.join(s,"sitemap.xml"),C,"utf-8");let w=dt(i);T.default.writeFileSync(O.default.join(s,"robots.txt"),w,"utf-8"),console.log(`[boltdocs] Generated ${r.length} static pages + sitemap.xml + robots.txt`);let{flushCache:m}=await Promise.resolve().then(()=>(Z(),Rt));await m()}F();var _=v(require("path"));u();F();var Y=v(require("path")),Ot=v(require("fs"));function re(o,e){let t=o.homePage?`import HomePage from '${k(o.homePage)}';`:"",s=Y.default.resolve(process.cwd(),"index.css"),i=Ot.default.existsSync(s)?"import './index.css';":"",r=o.homePage?"homePage: HomePage,":"",c=e?.plugins?.flatMap(w=>Object.entries(w.components||{}))||[],p=c.map(([w,m])=>`import * as _comp_${w} from '${k(m)}';
|
|
16
|
+
const ${w} = _comp_${w}.default || _comp_${w}['${w}'] || _comp_${w};`).join(`
|
|
17
|
+
`),n=c.map(([w])=>w).join(", "),l=Y.default.basename(o.docsDir||"docs"),d=Y.default.resolve(process.cwd(),o.docsDir||"docs"),g=["tsx","ts","jsx","js"].map(w=>Y.default.resolve(d,`pages-external/index.${w}`)).find(w=>Ot.default.existsSync(w)),b=g?`import * as _external_module from '${k(g)}';`:"";return r=g?"homePage: _external_module.homePage || HomePage,":o.homePage?"homePage: HomePage,":"",`
|
|
19
18
|
import { createBoltdocsApp as _createApp } from 'boltdocs/client';
|
|
20
19
|
import _routes from 'virtual:boltdocs-routes';
|
|
21
20
|
import _config from 'virtual:boltdocs-config';
|
|
22
21
|
import _user_mdx_components from 'virtual:boltdocs-mdx-components';
|
|
23
22
|
${i}
|
|
24
|
-
${
|
|
23
|
+
${t}
|
|
25
24
|
${p}
|
|
26
|
-
${
|
|
25
|
+
${b}
|
|
27
26
|
|
|
28
27
|
_createApp({
|
|
29
28
|
target: '#root',
|
|
@@ -33,10 +32,10 @@ _createApp({
|
|
|
33
32
|
modules: import.meta.glob('/${l}/**/*.{md,mdx}'),
|
|
34
33
|
hot: import.meta.hot,
|
|
35
34
|
${r}
|
|
36
|
-
${
|
|
35
|
+
${g?"externalPages: _external_module.pages, externalLayout: _external_module.layout,":""}
|
|
37
36
|
components: { ${n}${n?", ":""} ...(_user_mdx_components || {}) },
|
|
38
37
|
});
|
|
39
|
-
`}
|
|
38
|
+
`}u();function se(o){return`<!doctype html>
|
|
40
39
|
<html lang="en">
|
|
41
40
|
<head>
|
|
42
41
|
<meta charset="UTF-8" />
|
|
@@ -46,7 +45,7 @@ _createApp({
|
|
|
46
45
|
<body>
|
|
47
46
|
<div id="root"></div>
|
|
48
47
|
</body>
|
|
49
|
-
</html>`}function
|
|
48
|
+
</html>`}function Ft(o,e){let t=e.theme,s=t?.title||"Boltdocs",i=t?.description||"",r=t?.favicon;!r&&t?.logo&&(typeof t.logo=="string"?r=t.logo:r=t.logo.light||t.logo.dark);let c=[r?`<link rel="icon" href="${r}">`:"",`<meta name="description" content="${i}">`,`<meta property="og:title" content="${s}">`,`<meta property="og:description" content="${i}">`,t?.ogImage?`<meta property="og:image" content="${t.ogImage}">`:"",'<meta property="og:type" content="website">','<meta name="twitter:card" content="summary_large_image">',`<meta name="twitter:title" content="${s}">`,`<meta name="twitter:description" content="${i}">`,t?.ogImage?`<meta name="twitter:image" content="${t.ogImage}">`:"",'<meta name="generator" content="Boltdocs">'].filter(Boolean).join(`
|
|
50
49
|
`),p=`
|
|
51
50
|
<script>
|
|
52
51
|
(function() {
|
|
@@ -66,9 +65,9 @@ _createApp({
|
|
|
66
65
|
`;return o.includes("<title>")?o=o.replace(/<title>.*?<\/title>/,`<title>${s}</title>`):o=o.replace("</head>",` <title>${s}</title>
|
|
67
66
|
</head>`),o=o.replace("</head>",` ${c}
|
|
68
67
|
${p} </head>`),!o.includes("src/main")&&!o.includes("virtual:boltdocs-entry")&&(o=o.replace("</body>",` <script type="module">import "virtual:boltdocs-entry";</script>
|
|
69
|
-
</body>`)),o}var
|
|
68
|
+
</body>`)),o}u();function ae(o){let e=[];for(let t of o)if(e.push({id:t.path,title:t.title,content:t._content||"",url:t.path,display:t.groupTitle?`${t.groupTitle} > ${t.title}`:t.title,locale:t.locale,version:t.version}),t.headings)for(let s of t.headings)e.push({id:`${t.path}#${s.id}`,title:s.text,content:`${s.text} in ${t.title}`,url:`${t.path}#${s.id}`,display:`${t.title} > ${s.text}`,locale:t.locale,version:t.version});return e}var It=v(require("fs"));u();function de(o={},e){let t=_.default.resolve(process.cwd(),o.docsDir||"docs"),s=k(t),i=e,r,c=!1,p=i?.plugins?.flatMap(n=>n.vitePlugins||[])||[];return[{name:"vite-plugin-boltdocs",enforce:"pre",async config(n,l){c=l.command==="build";let d=n.envDir||process.cwd(),g=(0,ce.loadEnv)(l.mode,d,"");return Object.assign(process.env,g),i||(i=await H(t)),{optimizeDeps:{include:["react","react-dom"],exclude:["boltdocs","boltdocs/client","boltdocs/hooks","boltdocs/primitives","boltdocs/base-ui","boltdocs/mdx","boltdocs/integrations","boltdocs/client/hooks","boltdocs/client/primitives"]}}},configResolved(n){r=n},configureServer(n){n.middlewares.use((a,y,f)=>{if(a.url==="/robots.txt"){let x=dt(i);y.statusCode=200,y.setHeader("Content-Type","text/plain"),y.end(x);return}f()}),n.middlewares.use(async(a,y,f)=>{let x=a.url?.split("?")[0]||"/",S=a.headers.accept||"",h=x==="/"||x.startsWith("/docs")||i.i18n&&Object.keys(i.i18n.locales).some(D=>x.startsWith(`/${D}/docs`)||x===`/${D}`)||!0,B=/\.(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.test(x);if(S.includes("text/html")&&!B&&h){let D=se(i);D=Ft(D,i),D=await n.transformIndexHtml(a.url||"/",D),y.statusCode=200,y.setHeader("Content-Type","text/html"),y.end(D);return}f()});let l=lt.map(a=>_.default.resolve(process.cwd(),a)),d=["tsx","jsx"],g=d.map(a=>_.default.resolve(t,`layout.${a}`)),b=["tsx","ts","jsx","js"],C=b.map(a=>_.default.resolve(t,`mdx-components.${a}`)),w=b.map(a=>_.default.resolve(t,`pages-external/index.${a}`));n.watcher.add([...l,...C,...g,...w]);let m=async(a,y)=>{try{let f=k(a);if(lt.some(h=>f.endsWith(h))){n.restart();return}if(b.some(h=>f.endsWith(`mdx-components.${h}`))){let h=n.moduleGraph.getModuleById("\0virtual:boltdocs-mdx-components");h&&n.moduleGraph.invalidateModule(h),n.ws.send({type:"full-reload"});return}if(d.some(h=>f.endsWith(`layout.${h}`))){let h=n.moduleGraph.getModuleById("\0virtual:boltdocs-layout");h&&n.moduleGraph.invalidateModule(h),n.ws.send({type:"full-reload"});return}if(f.includes("/pages-external/")||f.includes("\\pages-external\\")){let h=n.moduleGraph.getModuleById("\0virtual:boltdocs-entry");h&&n.moduleGraph.invalidateModule(h),n.ws.send({type:"full-reload"});return}if(!f.startsWith(s)||!Nt(f))return;if(y==="add"||y==="unlink"){kt(),i=await H(t);let h=n.moduleGraph.getModuleById("\0virtual:boltdocs-config");h&&n.moduleGraph.invalidateModule(h),n.ws.send({type:"custom",event:"boltdocs:config-update",data:{theme:i?.theme,integrations:i?.integrations,i18n:i?.i18n,versions:i?.versions,siteUrl:i?.siteUrl}})}else _t(a);let x=await G(t,i,"/docs",y!=="change"),S=n.moduleGraph.getModuleById("\0virtual:boltdocs-routes");S&&n.moduleGraph.invalidateModule(S),n.ws.send({type:"custom",event:"boltdocs:routes-update",data:x})}catch(f){console.error(`[boltdocs] HMR error during ${y} event:`,f)}};n.watcher.on("add",a=>m(a,"add")),n.watcher.on("unlink",a=>m(a,"unlink")),n.watcher.on("change",a=>m(a,"change"))},resolveId(n){if(n==="virtual:boltdocs-routes"||n==="virtual:boltdocs-config"||n==="virtual:boltdocs-entry"||n==="virtual:boltdocs-mdx-components"||n==="virtual:boltdocs-layout"||n==="virtual:boltdocs-search")return"\0"+n},async load(n){if(n==="\0virtual:boltdocs-routes"){let l=await G(t,i);return`export default ${JSON.stringify(l,null,2)};`}if(n==="\0virtual:boltdocs-config"){let l={theme:i?.theme,integrations:i?.integrations,i18n:i?.i18n,versions:i?.versions,siteUrl:i?.siteUrl,plugins:i?.plugins?.map(d=>({name:d.name}))};return`export default ${JSON.stringify(l,null,2)};`}if(n==="\0virtual:boltdocs-entry")return re(o,i);if(n==="\0virtual:boltdocs-mdx-components"){let l=["tsx","ts","jsx","js"],d=null;for(let g of l){let b=_.default.resolve(t,`mdx-components.${g}`);if(It.default.existsSync(b)){d=b;break}}if(d){let g=k(d);return`import * as components from '${g}';
|
|
70
69
|
const mdxComponents = components.default || components;
|
|
71
70
|
export default mdxComponents;
|
|
72
|
-
export * from '${
|
|
71
|
+
export * from '${g}';`}return"export default {};"}if(n==="\0virtual:boltdocs-layout"){let l=["tsx","jsx"],d=null;for(let g of l){let b=_.default.resolve(t,`layout.${g}`);if(It.default.existsSync(b)){d=b;break}}return d?`import UserLayout from '${k(d)}';
|
|
73
72
|
export default UserLayout;`:`import { DefaultLayout } from 'boltdocs/client';
|
|
74
|
-
export default DefaultLayout;`}},transformIndexHtml:{order:"pre",handler(n){return
|
|
73
|
+
export default DefaultLayout;`}if(n==="\0virtual:boltdocs-search"){let l=await G(t,i),d=ae(l);return`export default ${JSON.stringify(d,null,2)};`}},transformIndexHtml:{order:"pre",handler(n){return Ft(n,i)}},async closeBundle(){if(!c)return;let n=r?.build?.outDir?_.default.resolve(r.root,r.build.outDir):_.default.resolve(process.cwd(),"dist"),l=_.default.basename(t||"docs");await pt({docsDir:t,docsDirName:l,outDir:n,config:i});let{flushCache:d}=await Promise.resolve().then(()=>(Z(),Rt));await d()}},(0,le.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"}]}}),...p.filter(n=>!!n)]}u();var ve=v(require("@mdx-js/rollup")),Pe=v(require("remark-gfm")),we=v(require("remark-frontmatter")),Ce=v(require("rehype-slug")),$e=v(require("crypto"));u();Z();var pe="v4",U=new X("mdx");u();var ue=require("unist-util-visit");u();var me=require("shiki"),mt=null;async function ut(o){if(mt)return mt;let e=typeof o=="object"?[o.light,o.dark]:[o??"github-dark"];return["github-light","github-dark"].forEach(t=>{e.includes(t)||e.push(t)}),mt=await(0,me.createHighlighter)({themes:e,langs:["tsx","jsx","ts","js","json","md","mdx","css","html","bash","sh","yaml","yml"]}),mt}function ge(o){return async e=>{let t=o?.theme?.codeTheme??{light:"github-light",dark:"github-dark"},s=await ut(t);(0,ue.visit)(e,["mdxJsxFlowElement","mdxJsxTextElement"],i=>{if(i.name!=="ComponentPreview")return;let r=i.attributes?.find(l=>l.name==="code"),c="";if(r){if(typeof r.value=="string")c=r.value;else if(r.value?.type==="mdxJsxAttributeValueExpression"){let l=r.value.value??"";c=l.match(/^[`'"]([\s\S]+)[`'"]$/)?.[1]??l}}if(!c)return;let p=typeof t=="object"?{themes:{light:t.light,dark:t.dark},lang:"tsx"}:{theme:t,lang:"tsx"},n=s.codeToHtml(c,p);i.attributes=(i.attributes??[]).filter(l=>l.name!=="highlightedHtml"),i.attributes.push({type:"mdxJsxAttribute",name:"highlightedHtml",value:n})})}}u();var fe=require("unist-util-visit");function he(o){return async e=>{let t=o?.theme?.codeTheme||{light:"github-light",dark:"github-dark"},s=await ut(t);(0,fe.visit)(e,"element",i=>{if(i.tagName==="pre"&&i.children?.[0]?.tagName==="code"){let r=i.children[0],p=(r.properties?.className||[]).find(m=>m.startsWith("language-")),n=p?p.slice(9):"text",l=r.children[0]?.value||"",g=(r.data?.meta||r.properties?.metastring||"").match(/title\s*=\s*"([^"]*)"/),b=g?g[1]:void 0,C={lang:n};typeof t=="object"?C.themes={light:t.light,dark:t.dark}:C.theme=t;let w=s.codeToHtml(l,C);i.properties.dataHighlighted="true",i.properties.highlightedHtml=w,i.properties["data-lang"]=n,b&&(i.properties.title=b),i.children=[]}})}}u();var ye=require("unist-util-visit");function xe(){return o=>{(0,ye.visit)(o,"code",e=>{if(e.data=e.data||{},e.data.hProperties=e.data.hProperties||{},e.lang&&(e.data.hProperties["data-lang"]=e.lang),!e.meta)return;let t=e.meta,s=t.match(/title\s*=\s*"([^"]*)"/);s&&(e.data.hProperties.title=s[1]),e.data.hProperties.metastring=t})}}var be=!1,gt=0,tt=0;function Se(o,e=ve.default){let t=o?.plugins?.flatMap(r=>r.remarkPlugins||[])||[],s=o?.plugins?.flatMap(r=>r.rehypePlugins||[])||[],i=e({remarkPlugins:[Pe.default,we.default,xe,[ge,o],...t],rehypePlugins:[Ce.default,[he,o],...s],jsxRuntime:"automatic",providerImportSource:"@mdx-js/react"});return{...i,name:"vite-plugin-boltdocs-mdx",async buildStart(){gt=0,tt=0,be||(U.load(),be=!0),i.buildStart&&await i.buildStart.call(this)},async transform(r,c,p){if(!c.endsWith(".md")&&!c.endsWith(".mdx"))return i.transform?.call(this,r,c,p);console.log(`[boltdocs] Transforming MDX: ${c}`),tt++;let n=$e.default.createHash("md5").update(r).digest("hex"),l=`${c}:${n}:${pe}`,d=U.get(l);if(d)return gt++,{code:d,map:null};let g=await i.transform.call(this,r,c,p);return g&&typeof g=="object"&&g.code&&U.set(l,g.code),g},async buildEnd(){tt>0&&console.log(`[boltdocs] MDX Cache Performance: ${gt}/${tt} hits (${Math.round(gt/tt*100)||0}%)`),U.save(),await U.flush(),i.buildEnd&&await i.buildEnd.call(this)}}}async function jt(o){let e=o?.docsDir||"docs",t=await H(e),s={...o,homePage:o?.homePage||t.homePage};return[...de(s,t),Se(t)]}async function Xe(o,e="development"){let t=await H("docs",o);return{root:o,mode:e,plugins:[(0,De.default)(),(0,Be.default)(),await jt({docsDir:t.docsDir,homePage:t.homePage})],...t.vite}}0&&(module.exports={createViteConfig,defineConfig,generateStaticPages,resolveConfig});
|
package/dist/node/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a,b,c,
|
|
1
|
+
import{a,b,d as c,g as d,h as e,i as f}from"../chunk-UWT4AJTH.mjs";import"../chunk-Y4RRHPXC.mjs";f();export{e as createViteConfig,d as default,a as defineConfig,c as generateStaticPages,b as resolveConfig};
|