boltdocs 2.5.5 → 2.5.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. package/bin/boltdocs.js +1 -1
  2. package/dist/cache-Cr8W2zgZ.cjs +6 -0
  3. package/dist/cache-DFdakSmR.mjs +6 -0
  4. package/dist/client/index.d.mts +1276 -861
  5. package/dist/client/index.d.ts +1276 -861
  6. package/dist/client/index.js +6 -1
  7. package/dist/client/index.mjs +6 -1
  8. package/dist/client/ssr.cjs +6 -0
  9. package/dist/client/ssr.d.cts +80 -0
  10. package/dist/client/ssr.d.mts +63 -61
  11. package/dist/client/ssr.mjs +6 -1
  12. package/dist/client/theme/neutral.css +388 -0
  13. package/dist/node/cli-entry.cjs +8 -0
  14. package/dist/node/cli-entry.d.cts +2 -0
  15. package/dist/node/cli-entry.d.mts +2 -1
  16. package/dist/node/cli-entry.mjs +7 -5
  17. package/dist/node/index.cjs +6 -0
  18. package/dist/node/index.d.cts +574 -0
  19. package/dist/node/index.d.mts +385 -378
  20. package/dist/node/index.mjs +6 -1
  21. package/dist/node-CWXme96p.mjs +73 -0
  22. package/dist/node-VYfhzGrh.cjs +73 -0
  23. package/dist/package-BY8Jd2j4.cjs +6 -0
  24. package/dist/package-OFZf0s2j.mjs +6 -0
  25. package/dist/search-dialog-BeNyI_KQ.mjs +6 -0
  26. package/dist/search-dialog-dYsCAk5S.js +6 -0
  27. package/dist/use-search-D25n0PrV.mjs +6 -0
  28. package/dist/use-search-WuzdH1cJ.js +6 -0
  29. package/package.json +16 -12
  30. package/src/client/app/index.tsx +15 -12
  31. package/src/client/components/default-layout.tsx +21 -19
  32. package/src/client/hooks/use-i18n.ts +1 -1
  33. package/src/client/hooks/use-routes.ts +1 -1
  34. package/src/client/hooks/use-version.ts +1 -1
  35. package/src/client/store/boltdocs-context.tsx +119 -0
  36. package/CHANGELOG.md +0 -98
  37. package/dist/cache-3FOEPC2P.mjs +0 -1
  38. package/dist/chunk-5B5NKOW6.mjs +0 -77
  39. package/dist/chunk-J2PTDWZM.mjs +0 -1
  40. package/dist/chunk-TP5KMRD3.mjs +0 -1
  41. package/dist/chunk-Y4RE5KI7.mjs +0 -1
  42. package/dist/client/ssr.d.ts +0 -78
  43. package/dist/client/ssr.js +0 -1
  44. package/dist/node/cli-entry.d.ts +0 -1
  45. package/dist/node/cli-entry.js +0 -82
  46. package/dist/node/index.d.ts +0 -567
  47. package/dist/node/index.js +0 -77
  48. package/dist/package-QFIAETHR.mjs +0 -1
  49. package/dist/search-dialog-O6VLVSOA.mjs +0 -1
  50. package/src/client/store/use-boltdocs-store.ts +0 -44
  51. package/src/node/cache.ts +0 -408
  52. package/src/node/cli/build.ts +0 -53
  53. package/src/node/cli/dev.ts +0 -22
  54. package/src/node/cli/doctor.ts +0 -243
  55. package/src/node/cli/index.ts +0 -9
  56. package/src/node/cli/ui.ts +0 -54
  57. package/src/node/cli-entry.ts +0 -24
  58. package/src/node/config.ts +0 -382
  59. package/src/node/errors.ts +0 -44
  60. package/src/node/index.ts +0 -84
  61. package/src/node/mdx/cache.ts +0 -12
  62. package/src/node/mdx/highlighter.ts +0 -47
  63. package/src/node/mdx/index.ts +0 -122
  64. package/src/node/mdx/rehype-shiki.ts +0 -62
  65. package/src/node/mdx/remark-code-meta.ts +0 -35
  66. package/src/node/mdx/remark-shiki.ts +0 -61
  67. package/src/node/plugin/entry.ts +0 -87
  68. package/src/node/plugin/html.ts +0 -99
  69. package/src/node/plugin/index.ts +0 -478
  70. package/src/node/plugin/types.ts +0 -9
  71. package/src/node/plugins/index.ts +0 -17
  72. package/src/node/plugins/plugin-errors.ts +0 -62
  73. package/src/node/plugins/plugin-lifecycle.ts +0 -117
  74. package/src/node/plugins/plugin-sandbox.ts +0 -59
  75. package/src/node/plugins/plugin-store.ts +0 -54
  76. package/src/node/plugins/plugin-types.ts +0 -107
  77. package/src/node/plugins/plugin-validator.ts +0 -105
  78. package/src/node/routes/cache.ts +0 -28
  79. package/src/node/routes/index.ts +0 -293
  80. package/src/node/routes/parser.ts +0 -262
  81. package/src/node/routes/sorter.ts +0 -42
  82. package/src/node/routes/types.ts +0 -61
  83. package/src/node/schema/config.ts +0 -195
  84. package/src/node/schema/frontmatter.ts +0 -17
  85. package/src/node/search/index.ts +0 -55
  86. package/src/node/security/constants/index.ts +0 -10
  87. package/src/node/security/csp.ts +0 -31
  88. package/src/node/security/headers.ts +0 -27
  89. package/src/node/ssg/index.ts +0 -205
  90. package/src/node/ssg/meta.ts +0 -33
  91. package/src/node/ssg/options.ts +0 -15
  92. package/src/node/ssg/robots.ts +0 -53
  93. package/src/node/ssg/sitemap.ts +0 -55
  94. package/src/node/utils.ts +0 -349
  95. package/tsconfig.json +0 -26
  96. package/tsup.config.ts +0 -56
@@ -1,82 +0,0 @@
1
- #!/usr/bin/env node
2
- "use strict";var gi=Object.create;var Nt=Object.defineProperty;var hi=Object.getOwnPropertyDescriptor;var yi=Object.getOwnPropertyNames;var xi=Object.getPrototypeOf,Ei=Object.prototype.hasOwnProperty;var ce=(r,e)=>()=>(r&&(e=r(r=0)),e);var P=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),hr=(r,e)=>{for(var t in e)Nt(r,t,{get:e[t],enumerable:!0})},$i=(r,e,t,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of yi(e))!Ei.call(r,s)&&s!==t&&Nt(r,s,{get:()=>e[s],enumerable:!(o=hi(e,s))||o.enumerable});return r};var O=(r,e,t)=>(t=r!=null?gi(xi(r)):{},$i(e||!r||!r.__esModule?Nt(t,"default",{value:r,enumerable:!0}):t,r));var vi,g,a=ce(()=>{"use strict";vi=()=>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,g=vi()});var yr,xr=ce(()=>{"use strict";a();yr=/^[a-zA-Z0-9\-_\/\.\(\)]+$/});var X,Er,$r=ce(()=>{"use strict";a();X=require("zod"),Er=X.z.object({title:X.z.string().max(200).optional(),description:X.z.string().max(500).optional(),sidebarPosition:X.z.number().optional(),sidebarLabel:X.z.string().max(100).optional(),category:X.z.string().max(50).optional(),order:X.z.number().optional(),badge:X.z.string().max(50).optional(),icon:X.z.string().max(50).optional()})});var ve,be,Ye,oe,Ke=ce(()=>{"use strict";a();ve=class r extends Error{constructor(e){super(e),this.name="SecurityViolationError",Object.setPrototypeOf(this,r.prototype)}},be=class r extends ve{constructor(e){super(e),this.name="PathTraversalError",Object.setPrototypeOf(this,r.prototype)}},Ye=class r extends ve{constructor(e){super(e),this.name="EncodingSecurityError",Object.setPrototypeOf(this,r.prototype)}},oe=class r extends ve{constructor(e){super(e),this.name="ValidationError",Object.setPrototypeOf(this,r.prototype)}}});function _(r){return r.replace(/\\/g,"/")}function we(r){return r.replace(/^\d+\./,"")}function Ze(r){let e=r.match(/^(\d+)\./);return e?parseInt(e[1],10):void 0}function br(r){return/\.mdx?$/.test(r)}function Qe(r){try{return Dt.default.statSync(r).mtimeMs}catch{return 0}}function et(r){let e=Dt.default.readFileSync(r,"utf-8");try{let{data:t,content:o,matter:s}=(0,vr.default)(e);if(s&&s.length>10240)throw Ce("FRONTMATTER_TOO_LARGE","Frontmatter block exceeds size limit",{size:s.length,file:r}),new oe(`Security breach: Frontmatter size exceeds limit of ${10240} bytes`);let i=Er.safeParse(t);i.success||console.warn(`[VALIDATION][${r}] Invalid frontmatter fields detected.`);let l={...i.success?i.data:{}};return l.title&&(l.title=Pe(l.title).trim()),l.description&&(l.description=Pe(l.description).trim()),{data:l,content:o}}catch(t){if(t instanceof oe)throw t;return{data:{},content:e}}}function ie(r){return r.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/'/g,"&apos;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function kt(r){return ie(r)}function Pr(r){let t=r.split("/").map(o=>we(Pi(o))).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 Se(r){return Je.default.sanitize(r,{ALLOWED_TAGS:["b","i","em","strong","a","p","br","code","pre","span","div","h1","h2","h3","h4","h5","h6","ul","ol","li","table","thead","tbody","tr","th","td","blockquote","hr"],ALLOWED_ATTR:["href","title","target","class","id","src","alt","width","height"],FORCE_BODY:!0})}function Pe(r){return Je.default.sanitize(r,{ALLOWED_TAGS:[],KEEP_CONTENT:!0})}function Re(r){return r.charAt(0).toUpperCase()+r.slice(1)}function jt(r,e){return r?typeof r=="string"?r:e&&r[e]?r[e]:Object.values(r)[0]||"":""}function Pi(r){return r.replace(/[^a-zA-Z0-9\-_\/\.]/g,"").split("/").filter(e=>e!==".."&&e!==".").map(e=>e.replace(/\.\.+/g,".")).join("/")}function Ce(r,e,t={}){let o=new Date().toISOString(),s={...t};for(let i in s)typeof s[i]=="string"&&s[i].includes(":")&&(s[i]=s[i].split(/[\\/]/).pop()||s[i]);console.error(`[SECURITY][${o}] TYPE: ${r} | MESSAGE: ${e} | DETAILS: ${JSON.stringify(s)}`)}var Dt,vr,Je,W=ce(()=>{"use strict";a();Dt=O(require("fs")),vr=O(require("gray-matter")),Je=O(require("isomorphic-dompurify"));$r();Ke();Je.default.addHook("afterSanitizeAttributes",r=>{if(r.hasAttribute("href")){let e=r.getAttribute("href")?.toLowerCase()||"";(e.startsWith("javascript:")||e.startsWith("data:")||e.startsWith("vbscript:"))&&r.removeAttribute("href")}if(r.hasAttribute("src")){let e=r.getAttribute("src")?.toLowerCase()||"";(e.startsWith("javascript:")||e.startsWith("data:")||e.startsWith("vbscript:"))&&r.removeAttribute("src")}})});var Ht={};hr(Ht,{AssetCache:()=>Ft,FileCache:()=>Ie,TransformCache:()=>Oe,flushCache:()=>Oi});async function Oi(){await re.flush()}var D,F,ue,le,pe,tt,wi,rt,_t,el,Mt,Si,Ri,Ci,Ii,qt,Bt,re,Ie,Oe,Ft,Le=ce(()=>{"use strict";a();D=O(require("fs")),F=O(require("path")),ue=O(require("crypto")),le=O(require("zlib")),pe=require("util");W();tt=(0,pe.promisify)(D.default.writeFile),wi=(0,pe.promisify)(D.default.readFile),rt=(0,pe.promisify)(D.default.mkdir),_t=(0,pe.promisify)(D.default.rename),el=(0,pe.promisify)(D.default.unlink),Mt=process.env.BOLTDOCS_CACHE_DIR||".boltdocs",Si="assets",Ri="shards",Ci=parseInt(process.env.BOLTDOCS_CACHE_LRU_LIMIT||"2000",10),Ii=process.env.BOLTDOCS_CACHE_COMPRESS!=="0",qt=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 o=this.cache.keys().next().value;o!==void 0&&this.cache.delete(o)}this.cache.set(e,t)}get size(){return this.cache.size}clear(){this.cache.clear()}},Bt=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}},re=new Bt,Ie=class{entries=new Map;cachePath=null;compress;constructor(e={}){if(this.compress=e.compress!==void 0?e.compress:Ii,e.name){let t=e.root||process.cwd(),o=this.compress?"json.gz":"json";this.cachePath=F.default.resolve(t,Mt,`${e.name}.${o}`)}}load(){if(process.env.BOLTDOCS_NO_CACHE!=="1"&&!(!this.cachePath||!D.default.existsSync(this.cachePath)))try{let e=D.default.readFileSync(this.cachePath);this.cachePath.endsWith(".gz")&&(e=le.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),o=this.cachePath,s=this.compress;re.add(async()=>{try{await rt(F.default.dirname(o),{recursive:!0});let i=Buffer.from(t);s&&(i=le.default.gzipSync(i));let n=`${o}.${ue.default.randomBytes(4).toString("hex")}.tmp`;await tt(n,i),await _t(n,o)}catch{}})}get(e){let t=this.entries.get(e);return!t||Qe(e)!==t.mtime?null:t.data}set(e,t){this.entries.set(e,{data:t,mtime:Qe(e)})}isValid(e){let t=this.entries.get(e);return t?Qe(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 re.flush()}},Oe=class{index=new Map;memoryCache=new qt(Ci);baseDir;shardsDir;indexPath;constructor(e,t=process.cwd()){this.baseDir=F.default.resolve(t,Mt,`transform-${e}`),this.shardsDir=F.default.resolve(this.baseDir,Ri),this.indexPath=F.default.resolve(this.baseDir,"index.json")}load(){if(process.env.BOLTDOCS_NO_CACHE!=="1"&&D.default.existsSync(this.indexPath))try{let e=D.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;re.add(async()=>{await rt(F.default.dirname(t),{recursive:!0}),await tt(t,e)})}async getMany(e){let t=new Map,o=[];for(let s of e){let i=this.memoryCache.get(s);i?t.set(s,i):this.index.has(s)&&o.push(s)}if(o.length>0){let s=await Promise.all(o.map(async i=>{let n=this.index.get(i),l=F.default.resolve(this.shardsDir,`${n}.gz`);try{let p=await wi(l),c=le.default.gunzipSync(p).toString("utf-8");return this.memoryCache.set(i,c),{key:i,val:c}}catch{return null}}));for(let i of s)i&&t.set(i.key,i.val)}return t}get(e){let t=this.memoryCache.get(e);if(t)return t;let o=this.index.get(e);if(!o)return null;let s=F.default.resolve(this.shardsDir,`${o}.gz`);if(!D.default.existsSync(s))return null;try{let i=D.default.readFileSync(s),n=le.default.gunzipSync(i).toString("utf-8");return this.memoryCache.set(e,n),n}catch{return null}}set(e,t){let o=ue.default.createHash("md5").update(t).digest("hex");this.index.set(e,o),this.memoryCache.set(e,t);let s=F.default.resolve(this.shardsDir,`${o}.gz`);re.add(async()=>{if(D.default.existsSync(s))return;await rt(this.shardsDir,{recursive:!0});let i=le.default.gzipSync(Buffer.from(t)),n=`${s}.${ue.default.randomBytes(4).toString("hex")}.tmp`;await tt(n,i),await _t(n,s)})}get size(){return this.index.size}async flush(){await re.flush()}},Ft=class{assetsDir;constructor(e=process.cwd()){this.assetsDir=F.default.resolve(e,Mt,Si)}getFileHash(e){return ue.default.createHash("md5").update(D.default.readFileSync(e)).digest("hex")}get(e,t){if(!D.default.existsSync(e))return null;let o=this.getFileHash(e),s=this.getCachedPath(e,`${t}-${o}`);return D.default.existsSync(s)?s:null}set(e,t,o){let s=this.getFileHash(e),i=this.getCachedPath(e,`${t}-${s}`);re.add(async()=>{await rt(this.assetsDir,{recursive:!0});let n=`${i}.${ue.default.randomBytes(4).toString("hex")}.tmp`;await tt(n,o),await _t(n,i)})}getCachedPath(e,t){let o=F.default.extname(e),s=F.default.basename(e,o),i=t.replace(/[^a-z0-9]/gi,"-").toLowerCase();return F.default.join(this.assetsDir,`${s}.${i}${o}`)}clear(){D.default.existsSync(this.assetsDir)&&D.default.rmSync(this.assetsDir,{recursive:!0,force:!0})}async flush(){await re.flush()}}});var De=P((eu,Hr)=>{"use strict";a();var Gi="2.0.0",Ui=Number.MAX_SAFE_INTEGER||9007199254740991,Vi=16,zi=250,Xi=["major","premajor","minor","preminor","patch","prepatch","prerelease"];Hr.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:Vi,MAX_SAFE_BUILD_LENGTH:zi,MAX_SAFE_INTEGER:Ui,RELEASE_TYPES:Xi,SEMVER_SPEC_VERSION:Gi,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var ke=P((ru,Gr)=>{"use strict";a();var Wi=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...r)=>console.error("SEMVER",...r):()=>{};Gr.exports=Wi});var ge=P((J,Ur)=>{"use strict";a();var{MAX_SAFE_COMPONENT_LENGTH:Yt,MAX_SAFE_BUILD_LENGTH:Yi,MAX_LENGTH:Ki}=De(),Ji=ke();J=Ur.exports={};var Zi=J.re=[],Qi=J.safeRe=[],y=J.src=[],en=J.safeSrc=[],x=J.t={},tn=0,Kt="[a-zA-Z0-9-]",rn=[["\\s",1],["\\d",Ki],[Kt,Yi]],sn=r=>{for(let[e,t]of rn)r=r.split(`${e}*`).join(`${e}{0,${t}}`).split(`${e}+`).join(`${e}{1,${t}}`);return r},w=(r,e,t)=>{let o=sn(e),s=tn++;Ji(r,s,e),x[r]=s,y[s]=e,en[s]=o,Zi[s]=new RegExp(e,t?"g":void 0),Qi[s]=new RegExp(o,t?"g":void 0)};w("NUMERICIDENTIFIER","0|[1-9]\\d*");w("NUMERICIDENTIFIERLOOSE","\\d+");w("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${Kt}*`);w("MAINVERSION",`(${y[x.NUMERICIDENTIFIER]})\\.(${y[x.NUMERICIDENTIFIER]})\\.(${y[x.NUMERICIDENTIFIER]})`);w("MAINVERSIONLOOSE",`(${y[x.NUMERICIDENTIFIERLOOSE]})\\.(${y[x.NUMERICIDENTIFIERLOOSE]})\\.(${y[x.NUMERICIDENTIFIERLOOSE]})`);w("PRERELEASEIDENTIFIER",`(?:${y[x.NONNUMERICIDENTIFIER]}|${y[x.NUMERICIDENTIFIER]})`);w("PRERELEASEIDENTIFIERLOOSE",`(?:${y[x.NONNUMERICIDENTIFIER]}|${y[x.NUMERICIDENTIFIERLOOSE]})`);w("PRERELEASE",`(?:-(${y[x.PRERELEASEIDENTIFIER]}(?:\\.${y[x.PRERELEASEIDENTIFIER]})*))`);w("PRERELEASELOOSE",`(?:-?(${y[x.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${y[x.PRERELEASEIDENTIFIERLOOSE]})*))`);w("BUILDIDENTIFIER",`${Kt}+`);w("BUILD",`(?:\\+(${y[x.BUILDIDENTIFIER]}(?:\\.${y[x.BUILDIDENTIFIER]})*))`);w("FULLPLAIN",`v?${y[x.MAINVERSION]}${y[x.PRERELEASE]}?${y[x.BUILD]}?`);w("FULL",`^${y[x.FULLPLAIN]}$`);w("LOOSEPLAIN",`[v=\\s]*${y[x.MAINVERSIONLOOSE]}${y[x.PRERELEASELOOSE]}?${y[x.BUILD]}?`);w("LOOSE",`^${y[x.LOOSEPLAIN]}$`);w("GTLT","((?:<|>)?=?)");w("XRANGEIDENTIFIERLOOSE",`${y[x.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);w("XRANGEIDENTIFIER",`${y[x.NUMERICIDENTIFIER]}|x|X|\\*`);w("XRANGEPLAIN",`[v=\\s]*(${y[x.XRANGEIDENTIFIER]})(?:\\.(${y[x.XRANGEIDENTIFIER]})(?:\\.(${y[x.XRANGEIDENTIFIER]})(?:${y[x.PRERELEASE]})?${y[x.BUILD]}?)?)?`);w("XRANGEPLAINLOOSE",`[v=\\s]*(${y[x.XRANGEIDENTIFIERLOOSE]})(?:\\.(${y[x.XRANGEIDENTIFIERLOOSE]})(?:\\.(${y[x.XRANGEIDENTIFIERLOOSE]})(?:${y[x.PRERELEASELOOSE]})?${y[x.BUILD]}?)?)?`);w("XRANGE",`^${y[x.GTLT]}\\s*${y[x.XRANGEPLAIN]}$`);w("XRANGELOOSE",`^${y[x.GTLT]}\\s*${y[x.XRANGEPLAINLOOSE]}$`);w("COERCEPLAIN",`(^|[^\\d])(\\d{1,${Yt}})(?:\\.(\\d{1,${Yt}}))?(?:\\.(\\d{1,${Yt}}))?`);w("COERCE",`${y[x.COERCEPLAIN]}(?:$|[^\\d])`);w("COERCEFULL",y[x.COERCEPLAIN]+`(?:${y[x.PRERELEASE]})?(?:${y[x.BUILD]})?(?:$|[^\\d])`);w("COERCERTL",y[x.COERCE],!0);w("COERCERTLFULL",y[x.COERCEFULL],!0);w("LONETILDE","(?:~>?)");w("TILDETRIM",`(\\s*)${y[x.LONETILDE]}\\s+`,!0);J.tildeTrimReplace="$1~";w("TILDE",`^${y[x.LONETILDE]}${y[x.XRANGEPLAIN]}$`);w("TILDELOOSE",`^${y[x.LONETILDE]}${y[x.XRANGEPLAINLOOSE]}$`);w("LONECARET","(?:\\^)");w("CARETTRIM",`(\\s*)${y[x.LONECARET]}\\s+`,!0);J.caretTrimReplace="$1^";w("CARET",`^${y[x.LONECARET]}${y[x.XRANGEPLAIN]}$`);w("CARETLOOSE",`^${y[x.LONECARET]}${y[x.XRANGEPLAINLOOSE]}$`);w("COMPARATORLOOSE",`^${y[x.GTLT]}\\s*(${y[x.LOOSEPLAIN]})$|^$`);w("COMPARATOR",`^${y[x.GTLT]}\\s*(${y[x.FULLPLAIN]})$|^$`);w("COMPARATORTRIM",`(\\s*)${y[x.GTLT]}\\s*(${y[x.LOOSEPLAIN]}|${y[x.XRANGEPLAIN]})`,!0);J.comparatorTrimReplace="$1$2$3";w("HYPHENRANGE",`^\\s*(${y[x.XRANGEPLAIN]})\\s+-\\s+(${y[x.XRANGEPLAIN]})\\s*$`);w("HYPHENRANGELOOSE",`^\\s*(${y[x.XRANGEPLAINLOOSE]})\\s+-\\s+(${y[x.XRANGEPLAINLOOSE]})\\s*$`);w("STAR","(<|>)?=?\\s*\\*");w("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$");w("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")});var ft=P((iu,Vr)=>{"use strict";a();var on=Object.freeze({loose:!0}),nn=Object.freeze({}),an=r=>r?typeof r!="object"?on:r:nn;Vr.exports=an});var Jt=P((au,Wr)=>{"use strict";a();var zr=/^[0-9]+$/,Xr=(r,e)=>{if(typeof r=="number"&&typeof e=="number")return r===e?0:r<e?-1:1;let t=zr.test(r),o=zr.test(e);return t&&o&&(r=+r,e=+e),r===e?0:t&&!o?-1:o&&!t?1:r<e?-1:1},cn=(r,e)=>Xr(e,r);Wr.exports={compareIdentifiers:Xr,rcompareIdentifiers:cn}});var k=P((lu,Kr)=>{"use strict";a();var dt=ke(),{MAX_LENGTH:Yr,MAX_SAFE_INTEGER:mt}=De(),{safeRe:gt,t:ht}=ge(),ln=ft(),{compareIdentifiers:Zt}=Jt(),Qt=class r{constructor(e,t){if(t=ln(t),e instanceof r){if(e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease)return e;e=e.version}else if(typeof e!="string")throw new TypeError(`Invalid version. Must be a string. Got type "${typeof e}".`);if(e.length>Yr)throw new TypeError(`version is longer than ${Yr} characters`);dt("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;let o=e.trim().match(t.loose?gt[ht.LOOSE]:gt[ht.FULL]);if(!o)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+o[1],this.minor=+o[2],this.patch=+o[3],this.major>mt||this.major<0)throw new TypeError("Invalid major version");if(this.minor>mt||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>mt||this.patch<0)throw new TypeError("Invalid patch version");o[4]?this.prerelease=o[4].split(".").map(s=>{if(/^[0-9]+$/.test(s)){let i=+s;if(i>=0&&i<mt)return i}return s}):this.prerelease=[],this.build=o[5]?o[5].split("."):[],this.format()}format(){return this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length&&(this.version+=`-${this.prerelease.join(".")}`),this.version}toString(){return this.version}compare(e){if(dt("SemVer.compare",this.version,this.options,e),!(e instanceof r)){if(typeof e=="string"&&e===this.version)return 0;e=new r(e,this.options)}return e.version===this.version?0:this.compareMain(e)||this.comparePre(e)}compareMain(e){return e instanceof r||(e=new r(e,this.options)),this.major<e.major?-1:this.major>e.major?1:this.minor<e.minor?-1:this.minor>e.minor?1:this.patch<e.patch?-1:this.patch>e.patch?1:0}comparePre(e){if(e instanceof r||(e=new r(e,this.options)),this.prerelease.length&&!e.prerelease.length)return-1;if(!this.prerelease.length&&e.prerelease.length)return 1;if(!this.prerelease.length&&!e.prerelease.length)return 0;let t=0;do{let o=this.prerelease[t],s=e.prerelease[t];if(dt("prerelease compare",t,o,s),o===void 0&&s===void 0)return 0;if(s===void 0)return 1;if(o===void 0)return-1;if(o===s)continue;return Zt(o,s)}while(++t)}compareBuild(e){e instanceof r||(e=new r(e,this.options));let t=0;do{let o=this.build[t],s=e.build[t];if(dt("build compare",t,o,s),o===void 0&&s===void 0)return 0;if(s===void 0)return 1;if(o===void 0)return-1;if(o===s)continue;return Zt(o,s)}while(++t)}inc(e,t,o){if(e.startsWith("pre")){if(!t&&o===!1)throw new Error("invalid increment argument: identifier is empty");if(t){let s=`-${t}`.match(this.options.loose?gt[ht.PRERELEASELOOSE]:gt[ht.PRERELEASE]);if(!s||s[1]!==t)throw new Error(`invalid identifier: ${t}`)}}switch(e){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",t,o);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",t,o);break;case"prepatch":this.prerelease.length=0,this.inc("patch",t,o),this.inc("pre",t,o);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",t,o),this.inc("pre",t,o);break;case"release":if(this.prerelease.length===0)throw new Error(`version ${this.raw} is not a prerelease`);this.prerelease.length=0;break;case"major":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case"patch":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case"pre":{let s=Number(o)?1:0;if(this.prerelease.length===0)this.prerelease=[s];else{let i=this.prerelease.length;for(;--i>=0;)typeof this.prerelease[i]=="number"&&(this.prerelease[i]++,i=-2);if(i===-1){if(t===this.prerelease.join(".")&&o===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(s)}}if(t){let i=[t,s];o===!1&&(i=[t]),Zt(this.prerelease[0],t)===0?isNaN(this.prerelease[1])&&(this.prerelease=i):this.prerelease=i}break}default:throw new Error(`invalid increment argument: ${e}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}};Kr.exports=Qt});var ne=P((pu,Zr)=>{"use strict";a();var Jr=k(),un=(r,e,t=!1)=>{if(r instanceof Jr)return r;try{return new Jr(r,e)}catch(o){if(!t)return null;throw o}};Zr.exports=un});var es=P((du,Qr)=>{"use strict";a();var pn=ne(),fn=(r,e)=>{let t=pn(r,e);return t?t.version:null};Qr.exports=fn});var rs=P((gu,ts)=>{"use strict";a();var dn=ne(),mn=(r,e)=>{let t=dn(r.trim().replace(/^[=v]+/,""),e);return t?t.version:null};ts.exports=mn});var is=P((yu,os)=>{"use strict";a();var ss=k(),gn=(r,e,t,o,s)=>{typeof t=="string"&&(s=o,o=t,t=void 0);try{return new ss(r instanceof ss?r.version:r,t).inc(e,o,s).version}catch{return null}};os.exports=gn});var cs=P((Eu,as)=>{"use strict";a();var ns=ne(),hn=(r,e)=>{let t=ns(r,null,!0),o=ns(e,null,!0),s=t.compare(o);if(s===0)return null;let i=s>0,n=i?t:o,l=i?o:t,p=!!n.prerelease.length;if(!!l.prerelease.length&&!p){if(!l.patch&&!l.minor)return"major";if(l.compareMain(n)===0)return l.minor&&!l.patch?"minor":"patch"}let d=p?"pre":"";return t.major!==o.major?d+"major":t.minor!==o.minor?d+"minor":t.patch!==o.patch?d+"patch":"prerelease"};as.exports=hn});var us=P((vu,ls)=>{"use strict";a();var yn=k(),xn=(r,e)=>new yn(r,e).major;ls.exports=xn});var fs=P((Pu,ps)=>{"use strict";a();var En=k(),$n=(r,e)=>new En(r,e).minor;ps.exports=$n});var ms=P((Su,ds)=>{"use strict";a();var vn=k(),bn=(r,e)=>new vn(r,e).patch;ds.exports=bn});var hs=P((Cu,gs)=>{"use strict";a();var Pn=ne(),wn=(r,e)=>{let t=Pn(r,e);return t&&t.prerelease.length?t.prerelease:null};gs.exports=wn});var M=P((Ou,xs)=>{"use strict";a();var ys=k(),Sn=(r,e,t)=>new ys(r,t).compare(new ys(e,t));xs.exports=Sn});var $s=P((Tu,Es)=>{"use strict";a();var Rn=M(),Cn=(r,e,t)=>Rn(e,r,t);Es.exports=Cn});var bs=P((Nu,vs)=>{"use strict";a();var In=M(),On=(r,e)=>In(r,e,!0);vs.exports=On});var yt=P((ku,ws)=>{"use strict";a();var Ps=k(),Ln=(r,e,t)=>{let o=new Ps(r,t),s=new Ps(e,t);return o.compare(s)||o.compareBuild(s)};ws.exports=Ln});var Rs=P((qu,Ss)=>{"use strict";a();var Tn=yt(),An=(r,e)=>r.sort((t,o)=>Tn(t,o,e));Ss.exports=An});var Is=P((Fu,Cs)=>{"use strict";a();var Nn=yt(),Dn=(r,e)=>r.sort((t,o)=>Nn(o,t,e));Cs.exports=Dn});var je=P((Mu,Os)=>{"use strict";a();var kn=M(),jn=(r,e,t)=>kn(r,e,t)>0;Os.exports=jn});var xt=P((Gu,Ls)=>{"use strict";a();var qn=M(),Bn=(r,e,t)=>qn(r,e,t)<0;Ls.exports=Bn});var er=P((Vu,Ts)=>{"use strict";a();var Fn=M(),_n=(r,e,t)=>Fn(r,e,t)===0;Ts.exports=_n});var tr=P((Xu,As)=>{"use strict";a();var Mn=M(),Hn=(r,e,t)=>Mn(r,e,t)!==0;As.exports=Hn});var Et=P((Yu,Ns)=>{"use strict";a();var Gn=M(),Un=(r,e,t)=>Gn(r,e,t)>=0;Ns.exports=Un});var $t=P((Ju,Ds)=>{"use strict";a();var Vn=M(),zn=(r,e,t)=>Vn(r,e,t)<=0;Ds.exports=zn});var rr=P((Qu,ks)=>{"use strict";a();var Xn=er(),Wn=tr(),Yn=je(),Kn=Et(),Jn=xt(),Zn=$t(),Qn=(r,e,t,o)=>{switch(e){case"===":return typeof r=="object"&&(r=r.version),typeof t=="object"&&(t=t.version),r===t;case"!==":return typeof r=="object"&&(r=r.version),typeof t=="object"&&(t=t.version),r!==t;case"":case"=":case"==":return Xn(r,t,o);case"!=":return Wn(r,t,o);case">":return Yn(r,t,o);case">=":return Kn(r,t,o);case"<":return Jn(r,t,o);case"<=":return Zn(r,t,o);default:throw new TypeError(`Invalid operator: ${e}`)}};ks.exports=Qn});var qs=P((tp,js)=>{"use strict";a();var ea=k(),ta=ne(),{safeRe:vt,t:bt}=ge(),ra=(r,e)=>{if(r instanceof ea)return r;if(typeof r=="number"&&(r=String(r)),typeof r!="string")return null;e=e||{};let t=null;if(!e.rtl)t=r.match(e.includePrerelease?vt[bt.COERCEFULL]:vt[bt.COERCE]);else{let p=e.includePrerelease?vt[bt.COERCERTLFULL]:vt[bt.COERCERTL],c;for(;(c=p.exec(r))&&(!t||t.index+t[0].length!==r.length);)(!t||c.index+c[0].length!==t.index+t[0].length)&&(t=c),p.lastIndex=c.index+c[1].length+c[2].length;p.lastIndex=-1}if(t===null)return null;let o=t[2],s=t[3]||"0",i=t[4]||"0",n=e.includePrerelease&&t[5]?`-${t[5]}`:"",l=e.includePrerelease&&t[6]?`+${t[6]}`:"";return ta(`${o}.${s}.${i}${n}${l}`,e)};js.exports=ra});var Fs=P((sp,Bs)=>{"use strict";a();var sr=class{constructor(){this.max=1e3,this.map=new Map}get(e){let t=this.map.get(e);if(t!==void 0)return this.map.delete(e),this.map.set(e,t),t}delete(e){return this.map.delete(e)}set(e,t){if(!this.delete(e)&&t!==void 0){if(this.map.size>=this.max){let s=this.map.keys().next().value;this.delete(s)}this.map.set(e,t)}return this}};Bs.exports=sr});var H=P((ip,Gs)=>{"use strict";a();var sa=/\s+/g,or=class r{constructor(e,t){if(t=ia(t),e instanceof r)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new r(e.raw,t);if(e instanceof ir)return this.raw=e.value,this.set=[[e]],this.formatted=void 0,this;if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e.trim().replace(sa," "),this.set=this.raw.split("||").map(o=>this.parseRange(o.trim())).filter(o=>o.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){let o=this.set[0];if(this.set=this.set.filter(s=>!Ms(s[0])),this.set.length===0)this.set=[o];else if(this.set.length>1){for(let s of this.set)if(s.length===1&&fa(s[0])){this.set=[s];break}}}this.formatted=void 0}get range(){if(this.formatted===void 0){this.formatted="";for(let e=0;e<this.set.length;e++){e>0&&(this.formatted+="||");let t=this.set[e];for(let o=0;o<t.length;o++)o>0&&(this.formatted+=" "),this.formatted+=t[o].toString().trim()}}return this.formatted}format(){return this.range}toString(){return this.range}parseRange(e){let o=((this.options.includePrerelease&&ua)|(this.options.loose&&pa))+":"+e,s=_s.get(o);if(s)return s;let i=this.options.loose,n=i?q[j.HYPHENRANGELOOSE]:q[j.HYPHENRANGE];e=e.replace(n,ba(this.options.includePrerelease)),T("hyphen replace",e),e=e.replace(q[j.COMPARATORTRIM],aa),T("comparator trim",e),e=e.replace(q[j.TILDETRIM],ca),T("tilde trim",e),e=e.replace(q[j.CARETTRIM],la),T("caret trim",e);let l=e.split(" ").map(f=>da(f,this.options)).join(" ").split(/\s+/).map(f=>va(f,this.options));i&&(l=l.filter(f=>(T("loose invalid filter",f,this.options),!!f.match(q[j.COMPARATORLOOSE])))),T("range list",l);let p=new Map,c=l.map(f=>new ir(f,this.options));for(let f of c){if(Ms(f))return[f];p.set(f.value,f)}p.size>1&&p.has("")&&p.delete("");let d=[...p.values()];return _s.set(o,d),d}intersects(e,t){if(!(e instanceof r))throw new TypeError("a Range is required");return this.set.some(o=>Hs(o,t)&&e.set.some(s=>Hs(s,t)&&o.every(i=>s.every(n=>i.intersects(n,t)))))}test(e){if(!e)return!1;if(typeof e=="string")try{e=new na(e,this.options)}catch{return!1}for(let t=0;t<this.set.length;t++)if(Pa(this.set[t],e,this.options))return!0;return!1}};Gs.exports=or;var oa=Fs(),_s=new oa,ia=ft(),ir=qe(),T=ke(),na=k(),{safeRe:q,t:j,comparatorTrimReplace:aa,tildeTrimReplace:ca,caretTrimReplace:la}=ge(),{FLAG_INCLUDE_PRERELEASE:ua,FLAG_LOOSE:pa}=De(),Ms=r=>r.value==="<0.0.0-0",fa=r=>r.value==="",Hs=(r,e)=>{let t=!0,o=r.slice(),s=o.pop();for(;t&&o.length;)t=o.every(i=>s.intersects(i,e)),s=o.pop();return t},da=(r,e)=>(r=r.replace(q[j.BUILD],""),T("comp",r,e),r=ha(r,e),T("caret",r),r=ma(r,e),T("tildes",r),r=xa(r,e),T("xrange",r),r=$a(r,e),T("stars",r),r),B=r=>!r||r.toLowerCase()==="x"||r==="*",ma=(r,e)=>r.trim().split(/\s+/).map(t=>ga(t,e)).join(" "),ga=(r,e)=>{let t=e.loose?q[j.TILDELOOSE]:q[j.TILDE];return r.replace(t,(o,s,i,n,l)=>{T("tilde",r,o,s,i,n,l);let p;return B(s)?p="":B(i)?p=`>=${s}.0.0 <${+s+1}.0.0-0`:B(n)?p=`>=${s}.${i}.0 <${s}.${+i+1}.0-0`:l?(T("replaceTilde pr",l),p=`>=${s}.${i}.${n}-${l} <${s}.${+i+1}.0-0`):p=`>=${s}.${i}.${n} <${s}.${+i+1}.0-0`,T("tilde return",p),p})},ha=(r,e)=>r.trim().split(/\s+/).map(t=>ya(t,e)).join(" "),ya=(r,e)=>{T("caret",r,e);let t=e.loose?q[j.CARETLOOSE]:q[j.CARET],o=e.includePrerelease?"-0":"";return r.replace(t,(s,i,n,l,p)=>{T("caret",r,s,i,n,l,p);let c;return B(i)?c="":B(n)?c=`>=${i}.0.0${o} <${+i+1}.0.0-0`:B(l)?i==="0"?c=`>=${i}.${n}.0${o} <${i}.${+n+1}.0-0`:c=`>=${i}.${n}.0${o} <${+i+1}.0.0-0`:p?(T("replaceCaret pr",p),i==="0"?n==="0"?c=`>=${i}.${n}.${l}-${p} <${i}.${n}.${+l+1}-0`:c=`>=${i}.${n}.${l}-${p} <${i}.${+n+1}.0-0`:c=`>=${i}.${n}.${l}-${p} <${+i+1}.0.0-0`):(T("no pr"),i==="0"?n==="0"?c=`>=${i}.${n}.${l}${o} <${i}.${n}.${+l+1}-0`:c=`>=${i}.${n}.${l}${o} <${i}.${+n+1}.0-0`:c=`>=${i}.${n}.${l} <${+i+1}.0.0-0`),T("caret return",c),c})},xa=(r,e)=>(T("replaceXRanges",r,e),r.split(/\s+/).map(t=>Ea(t,e)).join(" ")),Ea=(r,e)=>{r=r.trim();let t=e.loose?q[j.XRANGELOOSE]:q[j.XRANGE];return r.replace(t,(o,s,i,n,l,p)=>{T("xRange",r,o,s,i,n,l,p);let c=B(i),d=c||B(n),f=d||B(l),E=f;return s==="="&&E&&(s=""),p=e.includePrerelease?"-0":"",c?s===">"||s==="<"?o="<0.0.0-0":o="*":s&&E?(d&&(n=0),l=0,s===">"?(s=">=",d?(i=+i+1,n=0,l=0):(n=+n+1,l=0)):s==="<="&&(s="<",d?i=+i+1:n=+n+1),s==="<"&&(p="-0"),o=`${s+i}.${n}.${l}${p}`):d?o=`>=${i}.0.0${p} <${+i+1}.0.0-0`:f&&(o=`>=${i}.${n}.0${p} <${i}.${+n+1}.0-0`),T("xRange return",o),o})},$a=(r,e)=>(T("replaceStars",r,e),r.trim().replace(q[j.STAR],"")),va=(r,e)=>(T("replaceGTE0",r,e),r.trim().replace(q[e.includePrerelease?j.GTE0PRE:j.GTE0],"")),ba=r=>(e,t,o,s,i,n,l,p,c,d,f,E)=>(B(o)?t="":B(s)?t=`>=${o}.0.0${r?"-0":""}`:B(i)?t=`>=${o}.${s}.0${r?"-0":""}`:n?t=`>=${t}`:t=`>=${t}${r?"-0":""}`,B(c)?p="":B(d)?p=`<${+c+1}.0.0-0`:B(f)?p=`<${c}.${+d+1}.0-0`:E?p=`<=${c}.${d}.${f}-${E}`:r?p=`<${c}.${d}.${+f+1}-0`:p=`<=${p}`,`${t} ${p}`.trim()),Pa=(r,e,t)=>{for(let o=0;o<r.length;o++)if(!r[o].test(e))return!1;if(e.prerelease.length&&!t.includePrerelease){for(let o=0;o<r.length;o++)if(T(r[o].semver),r[o].semver!==ir.ANY&&r[o].semver.prerelease.length>0){let s=r[o].semver;if(s.major===e.major&&s.minor===e.minor&&s.patch===e.patch)return!0}return!1}return!0}});var qe=P((ap,Ys)=>{"use strict";a();var Be=Symbol("SemVer ANY"),cr=class r{static get ANY(){return Be}constructor(e,t){if(t=Us(t),e instanceof r){if(e.loose===!!t.loose)return e;e=e.value}e=e.trim().split(/\s+/).join(" "),ar("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===Be?this.value="":this.value=this.operator+this.semver.version,ar("comp",this)}parse(e){let t=this.options.loose?Vs[zs.COMPARATORLOOSE]:Vs[zs.COMPARATOR],o=e.match(t);if(!o)throw new TypeError(`Invalid comparator: ${e}`);this.operator=o[1]!==void 0?o[1]:"",this.operator==="="&&(this.operator=""),o[2]?this.semver=new Xs(o[2],this.options.loose):this.semver=Be}toString(){return this.value}test(e){if(ar("Comparator.test",e,this.options.loose),this.semver===Be||e===Be)return!0;if(typeof e=="string")try{e=new Xs(e,this.options)}catch{return!1}return nr(e,this.operator,this.semver,this.options)}intersects(e,t){if(!(e instanceof r))throw new TypeError("a Comparator is required");return this.operator===""?this.value===""?!0:new Ws(e.value,t).test(this.value):e.operator===""?e.value===""?!0:new Ws(this.value,t).test(e.semver):(t=Us(t),t.includePrerelease&&(this.value==="<0.0.0-0"||e.value==="<0.0.0-0")||!t.includePrerelease&&(this.value.startsWith("<0.0.0")||e.value.startsWith("<0.0.0"))?!1:!!(this.operator.startsWith(">")&&e.operator.startsWith(">")||this.operator.startsWith("<")&&e.operator.startsWith("<")||this.semver.version===e.semver.version&&this.operator.includes("=")&&e.operator.includes("=")||nr(this.semver,"<",e.semver,t)&&this.operator.startsWith(">")&&e.operator.startsWith("<")||nr(this.semver,">",e.semver,t)&&this.operator.startsWith("<")&&e.operator.startsWith(">")))}};Ys.exports=cr;var Us=ft(),{safeRe:Vs,t:zs}=ge(),nr=rr(),ar=ke(),Xs=k(),Ws=H()});var Fe=P((lp,Ks)=>{"use strict";a();var wa=H(),Sa=(r,e,t)=>{try{e=new wa(e,t)}catch{return!1}return e.test(r)};Ks.exports=Sa});var Zs=P((pp,Js)=>{"use strict";a();var Ra=H(),Ca=(r,e)=>new Ra(r,e).set.map(t=>t.map(o=>o.value).join(" ").trim().split(" "));Js.exports=Ca});var eo=P((dp,Qs)=>{"use strict";a();var Ia=k(),Oa=H(),La=(r,e,t)=>{let o=null,s=null,i=null;try{i=new Oa(e,t)}catch{return null}return r.forEach(n=>{i.test(n)&&(!o||s.compare(n)===-1)&&(o=n,s=new Ia(o,t))}),o};Qs.exports=La});var ro=P((gp,to)=>{"use strict";a();var Ta=k(),Aa=H(),Na=(r,e,t)=>{let o=null,s=null,i=null;try{i=new Aa(e,t)}catch{return null}return r.forEach(n=>{i.test(n)&&(!o||s.compare(n)===1)&&(o=n,s=new Ta(o,t))}),o};to.exports=Na});var io=P((yp,oo)=>{"use strict";a();var lr=k(),Da=H(),so=je(),ka=(r,e)=>{r=new Da(r,e);let t=new lr("0.0.0");if(r.test(t)||(t=new lr("0.0.0-0"),r.test(t)))return t;t=null;for(let o=0;o<r.set.length;++o){let s=r.set[o],i=null;s.forEach(n=>{let l=new lr(n.semver.version);switch(n.operator){case">":l.prerelease.length===0?l.patch++:l.prerelease.push(0),l.raw=l.format();case"":case">=":(!i||so(l,i))&&(i=l);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${n.operator}`)}}),i&&(!t||so(t,i))&&(t=i)}return t&&r.test(t)?t:null};oo.exports=ka});var ao=P((Ep,no)=>{"use strict";a();var ja=H(),qa=(r,e)=>{try{return new ja(r,e).range||"*"}catch{return null}};no.exports=qa});var Pt=P((vp,po)=>{"use strict";a();var Ba=k(),uo=qe(),{ANY:Fa}=uo,_a=H(),Ma=Fe(),co=je(),lo=xt(),Ha=$t(),Ga=Et(),Ua=(r,e,t,o)=>{r=new Ba(r,o),e=new _a(e,o);let s,i,n,l,p;switch(t){case">":s=co,i=Ha,n=lo,l=">",p=">=";break;case"<":s=lo,i=Ga,n=co,l="<",p="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(Ma(r,e,o))return!1;for(let c=0;c<e.set.length;++c){let d=e.set[c],f=null,E=null;if(d.forEach(m=>{m.semver===Fa&&(m=new uo(">=0.0.0")),f=f||m,E=E||m,s(m.semver,f.semver,o)?f=m:n(m.semver,E.semver,o)&&(E=m)}),f.operator===l||f.operator===p||(!E.operator||E.operator===l)&&i(r,E.semver))return!1;if(E.operator===p&&n(r,E.semver))return!1}return!0};po.exports=Ua});var mo=P((Pp,fo)=>{"use strict";a();var Va=Pt(),za=(r,e,t)=>Va(r,e,">",t);fo.exports=za});var ho=P((Sp,go)=>{"use strict";a();var Xa=Pt(),Wa=(r,e,t)=>Xa(r,e,"<",t);go.exports=Wa});var Eo=P((Cp,xo)=>{"use strict";a();var yo=H(),Ya=(r,e,t)=>(r=new yo(r,t),e=new yo(e,t),r.intersects(e,t));xo.exports=Ya});var vo=P((Op,$o)=>{"use strict";a();var Ka=Fe(),Ja=M();$o.exports=(r,e,t)=>{let o=[],s=null,i=null,n=r.sort((d,f)=>Ja(d,f,t));for(let d of n)Ka(d,e,t)?(i=d,s||(s=d)):(i&&o.push([s,i]),i=null,s=null);s&&o.push([s,null]);let l=[];for(let[d,f]of o)d===f?l.push(d):!f&&d===n[0]?l.push("*"):f?d===n[0]?l.push(`<=${f}`):l.push(`${d} - ${f}`):l.push(`>=${d}`);let p=l.join(" || "),c=typeof e.raw=="string"?e.raw:String(e);return p.length<c.length?p:e}});var Co=P((Tp,Ro)=>{"use strict";a();var bo=H(),pr=qe(),{ANY:ur}=pr,_e=Fe(),fr=M(),Za=(r,e,t={})=>{if(r===e)return!0;r=new bo(r,t),e=new bo(e,t);let o=!1;e:for(let s of r.set){for(let i of e.set){let n=ec(s,i,t);if(o=o||n!==null,n)continue e}if(o)return!1}return!0},Qa=[new pr(">=0.0.0-0")],Po=[new pr(">=0.0.0")],ec=(r,e,t)=>{if(r===e)return!0;if(r.length===1&&r[0].semver===ur){if(e.length===1&&e[0].semver===ur)return!0;t.includePrerelease?r=Qa:r=Po}if(e.length===1&&e[0].semver===ur){if(t.includePrerelease)return!0;e=Po}let o=new Set,s,i;for(let m of r)m.operator===">"||m.operator===">="?s=wo(s,m,t):m.operator==="<"||m.operator==="<="?i=So(i,m,t):o.add(m.semver);if(o.size>1)return null;let n;if(s&&i){if(n=fr(s.semver,i.semver,t),n>0)return null;if(n===0&&(s.operator!==">="||i.operator!=="<="))return null}for(let m of o){if(s&&!_e(m,String(s),t)||i&&!_e(m,String(i),t))return null;for(let S of e)if(!_e(m,String(S),t))return!1;return!0}let l,p,c,d,f=i&&!t.includePrerelease&&i.semver.prerelease.length?i.semver:!1,E=s&&!t.includePrerelease&&s.semver.prerelease.length?s.semver:!1;f&&f.prerelease.length===1&&i.operator==="<"&&f.prerelease[0]===0&&(f=!1);for(let m of e){if(d=d||m.operator===">"||m.operator===">=",c=c||m.operator==="<"||m.operator==="<=",s){if(E&&m.semver.prerelease&&m.semver.prerelease.length&&m.semver.major===E.major&&m.semver.minor===E.minor&&m.semver.patch===E.patch&&(E=!1),m.operator===">"||m.operator===">="){if(l=wo(s,m,t),l===m&&l!==s)return!1}else if(s.operator===">="&&!_e(s.semver,String(m),t))return!1}if(i){if(f&&m.semver.prerelease&&m.semver.prerelease.length&&m.semver.major===f.major&&m.semver.minor===f.minor&&m.semver.patch===f.patch&&(f=!1),m.operator==="<"||m.operator==="<="){if(p=So(i,m,t),p===m&&p!==i)return!1}else if(i.operator==="<="&&!_e(i.semver,String(m),t))return!1}if(!m.operator&&(i||s)&&n!==0)return!1}return!(s&&c&&!i&&n!==0||i&&d&&!s&&n!==0||E||f)},wo=(r,e,t)=>{if(!r)return e;let o=fr(r.semver,e.semver,t);return o>0?r:o<0||e.operator===">"&&r.operator===">="?e:r},So=(r,e,t)=>{if(!r)return e;let o=fr(r.semver,e.semver,t);return o<0?r:o>0||e.operator==="<"&&r.operator==="<="?e:r};Ro.exports=Za});var To=P((Np,Lo)=>{"use strict";a();var dr=ge(),Io=De(),tc=k(),Oo=Jt(),rc=ne(),sc=es(),oc=rs(),ic=is(),nc=cs(),ac=us(),cc=fs(),lc=ms(),uc=hs(),pc=M(),fc=$s(),dc=bs(),mc=yt(),gc=Rs(),hc=Is(),yc=je(),xc=xt(),Ec=er(),$c=tr(),vc=Et(),bc=$t(),Pc=rr(),wc=qs(),Sc=qe(),Rc=H(),Cc=Fe(),Ic=Zs(),Oc=eo(),Lc=ro(),Tc=io(),Ac=ao(),Nc=Pt(),Dc=mo(),kc=ho(),jc=Eo(),qc=vo(),Bc=Co();Lo.exports={parse:rc,valid:sc,clean:oc,inc:ic,diff:nc,major:ac,minor:cc,patch:lc,prerelease:uc,compare:pc,rcompare:fc,compareLoose:dc,compareBuild:mc,sort:gc,rsort:hc,gt:yc,lt:xc,eq:Ec,neq:$c,gte:vc,lte:bc,cmp:Pc,coerce:wc,Comparator:Sc,Range:Rc,satisfies:Cc,toComparators:Ic,maxSatisfying:Oc,minSatisfying:Lc,minVersion:Tc,validRange:Ac,outside:Nc,gtr:Dc,ltr:kc,intersects:jc,simplifyRange:qc,subset:Bc,SemVer:tc,re:dr.re,src:dr.src,tokens:dr.t,SEMVER_SPEC_VERSION:Io.SEMVER_SPEC_VERSION,RELEASE_TYPES:Io.RELEASE_TYPES,compareIdentifiers:Oo.compareIdentifiers,rcompareIdentifiers:Oo.rcompareIdentifiers}});var ko=P((Wp,_c)=>{_c.exports={name:"boltdocs",version:"2.5.5",description:"A lightweight documentation generator for React projects.",main:"dist/node/index.js",module:"dist/node/index.mjs",types:"dist/node/index.d.ts",bin:{boltdocs:"bin/boltdocs.js"},publishConfig:{access:"public"},type:"commonjs",sideEffects:["**/*.css"],exports:{".":{types:"./dist/node/index.d.ts",import:"./dist/node/index.mjs",require:"./dist/node/index.js"},"./client":{types:"./dist/client/index.d.ts",import:"./dist/client/index.mjs",require:"./dist/client/index.js"},"./ssr":{types:"./dist/client/ssr.d.ts",import:"./dist/client/ssr.mjs",require:"./dist/client/ssr.js"},"./theme/neutral.css":"./src/client/theme/neutral.css"},scripts:{build:"tsup",dev:"tsup --watch",format:"pnpm exec biome format --write",lint:"pnpm exec biome lint --write",check:"pnpm exec biome check --write"},keywords:["docs","documentation","static site generator","ssg","markdown","mdx","react","vite","typescript"],author:"Jesus Alcala",license:"MIT",dependencies:{"@mdx-js/rollup":"3.1.1","@tailwindcss/vite":"4.2.2","@vitejs/plugin-react":"4.2.1",cac:"7.0.0","class-variance-authority":"0.7.1",clsx:"2.1.1","fast-glob":"3.3.3",flexsearch:"0.8.212","github-slugger":"2.0.0","gray-matter":"4.0.3","isomorphic-dompurify":"3.7.1","lucide-react":"0.575.0","react-aria-components":"1.16.0","react-router-dom":"6.30.3","rehype-slug":"6.0.0","remark-frontmatter":"5.0.0","remark-gfm":"4.0.1","scroll-into-view-if-needed":"3.1.0",sharp:"0.34.5",shiki:"3.23.0",svgo:"4.0.1","tailwind-merge":"3.5.0","unist-util-visit":"5.1.0",vite:"7.3.1","vite-plugin-image-optimizer":"2.0.3",zod:"4.3.6",zustand:"5.0.12"},peerDependencies:{react:"19.1.0","react-dom":"19.1.0"},packageManager:"pnpm@10.30.2",devDependencies:{"@types/node":"25.3.2","@types/react":"19.2.14","@types/react-dom":"18.3.7","@types/react-router-dom":"5.3.3","@types/semver":"7.7.1",tsup:"8.5.1",typescript:"^5.9.3"}}});a();var ui=O(require("cac"));a();var si=require("vite");a();var ei=O(require("@vitejs/plugin-react")),ti=O(require("@tailwindcss/vite"));a();var jo=require("vite");a();var Or=O(require("fast-glob"));W();a();Le();var Q=new Ie({name:"routes"});function Gt(){Q.invalidateAll()}function Ut(r){Q.invalidate(r)}a();var ee=O(require("path")),Sr=O(require("github-slugger"));W();xr();Ke();function Rr(r,e,t,o){let s;try{s=decodeURIComponent(r)}catch{let A=ee.default.basename(r);throw Ce("ENCODING_ERROR","Invalid character encoding",{file:A}),new Ye(`Security breach: Invalid characters or encoding in path: ${A}`)}if(s.length>260){let A=ee.default.basename(s);throw Ce("PATH_TOO_LONG","Path length exceeds limit",{length:s.length,file:A}),new be(`Security breach: Path length exceeds limit of ${260} characters: ${A}`)}let i=ee.default.resolve(s),n=ee.default.resolve(e),l=_(ee.default.relative(n,i));if(l.startsWith("../")||l===".."||i.includes("\0")||!yr.test(l)){let A=ee.default.basename(r);throw Ce("PATH_TRAVERSAL_ATTEMPT","Path traversal or invalid characters detected",{path:l}),new be(`Security breach: File is outside of docs directory, contains null bytes, or invalid characters: ${A}`)}let{data:p,content:c}=et(r),d=l.split("/"),f,E;if(o?.versions&&d.length>0){let A=d[0],Tt=o.versions.prefix||"",We=o.versions.versions.find($e=>{let At=Tt+$e.path;return A===At||A===$e.path});We&&(E=We.path,d=d.slice(1))}if(o?.i18n&&d.length>0){let A=d[0];o.i18n.locales[A]&&(f=A,d=d.slice(1))}let m;if(d.length>0){let A=d[0].match(/^\((.+)\)$/);A&&(m=A[1].toLowerCase(),d=d.slice(1))}let S=d.join("/"),$;p.permalink?$=p.permalink.startsWith("/")?p.permalink:`/${p.permalink}`:$=Pr(S||"index.md");let h=t;E&&(h+="/"+E),f&&(h+="/"+f),m&&(h+="/"+m),h+=$==="/"?"":$,(!h||h==="")&&(h="/");let v=d[d.length-1],b=we(v),C=we(ee.default.basename(r,ee.default.extname(r))),R=p.sidebarPosition??Ze(v),L=d.length>=2?d[0]:void 0,I=L?we(L):void 0,U=d.length>=2&&/^index\.mdx?$/.test(b),N=new Sr.default,Ee=[],pi=/^(#{2,4})\s+(.+)$/gm;for(let A of c.matchAll(pi)){let Tt=A[1].length,We=A[2].replace(/\[([^\]]+)\]\([^\)]+\)/g,"$1").replace(/[_*`]/g,"").trim(),$e=Se(We).trim(),At=N.slug($e);Ee.push({level:Tt,text:$e,id:At})}let fi=p.title?Se(String(p.title)):C,Lt=p.description?Se(String(p.description)):"";!Lt&&c&&(Lt=Pe(c.replace(/^#+.*$/gm,"").replace(/\[([^\]]+)\]\([^\)]+\)/g,"$1").replace(/[_*`]/g,"").replace(/\s+/g," ")).trim().slice(0,160));let di=p.badge?Se(String(p.badge)):void 0,gr=p.icon?String(p.icon):void 0,mi=Li(c);return{route:{path:h,componentPath:r,filePath:l,title:fi,description:Lt,sidebarPosition:R,headings:Ee,locale:f,version:E,badge:di,icon:gr,tab:m,_content:mi,_rawContent:c},relativeDir:I,isGroupIndex:U,inferredTab:m,groupMeta:U?{title:p.groupTitle||p.title||(I?Re(I):""),position:p.groupPosition??p.sidebarPosition??(L?Ze(L):void 0),icon:gr}:void 0,inferredGroupPosition:L?Ze(L):void 0}}function Li(r){let e=r.replace(/^#+.*$/gm,"").replace(/\[([^\]]+)\]\([^\)]+\)/g,"$1").replace(/\{[^\}]+\}/g,"").replace(/[_*`]/g,"").replace(/\s+/g," ");return Pe(e).trim()}a();function Ir(r){return r.sort((e,t)=>!e.group&&!t.group?Cr(e,t):e.group?t.group?e.group!==t.group?Ti(e,t):Cr(e,t):1:-1)}function Cr(r,e){return r.sidebarPosition!==void 0&&e.sidebarPosition!==void 0?r.sidebarPosition-e.sidebarPosition:r.sidebarPosition!==void 0?-1:e.sidebarPosition!==void 0?1:r.title.localeCompare(e.title)}function Ti(r,e){return r.groupPosition!==void 0&&e.groupPosition!==void 0?r.groupPosition-e.groupPosition:r.groupPosition!==void 0?-1:e.groupPosition!==void 0?1:(r.groupTitle||r.group).localeCompare(e.groupTitle||e.group)}var Vt=null,Te=new Map;async function fe(r,e,t="/docs",o=!0){let s=performance.now();Q.load(),Te.clear(),(process.env.BOLTDOCS_FORCE_REPARSE==="true"||e?.i18n)&&Q.invalidateAll();let i;!o&&Vt?i=Vt:(i=await(0,Or.default)(["**/*.md","**/*.mdx"],{cwd:r,absolute:!0,suppressErrors:!0,followSymbolicLinks:!1}),Vt=i),Q.pruneStale(new Set(i));let n=50,l=[],p=0;for(let $=0;$<i.length;$+=n){let h=i.slice($,$+n),v=await Promise.all(h.map(async b=>{let C=Q.get(b);if(C)return p++,C;let R=Rr(b,r,t,e);return Q.set(b,R),R}));l.push(...v),$+n<i.length&&await new Promise(b=>setImmediate(b))}Q.save();let c=new Map,d=[];for(let $ of l)if($.isGroupIndex&&$.relativeDir&&d.push($),$.relativeDir){let h=c.get($.relativeDir);h?(h.position===void 0&&$.inferredGroupPosition!==void 0&&(h.position=$.inferredGroupPosition),!h.icon&&$.route.icon&&(h.icon=$.route.icon)):(h={title:Re($.relativeDir),position:$.inferredGroupPosition,icon:$.route.icon},c.set($.relativeDir,h))}for(let $ of d){let h=c.get($.relativeDir);$.groupMeta&&(h.title=$.groupMeta.title,$.groupMeta.position!==void 0&&(h.position=$.groupMeta.position),$.groupMeta.icon&&(h.icon=$.groupMeta.icon))}let f=new Array(l.length);for(let $=0;$<l.length;$++){let h=l[$],v=h.relativeDir,b=v?c.get(v):void 0;f[$]={...h.route,group:v,groupTitle:b?.title||(v?Re(v):void 0),groupPosition:b?.position,groupIcon:b?.icon}}let E=f;if(e?.i18n){let $=Ai(f,e,t);E=[...f,...$]}let m=Ir(E),S=performance.now()-s;return console.log(`[boltdocs] Route generation: ${S.toFixed(2)}ms (${i.length} files, ${p} cache hits)`),m}function Ai(r,e,t){let o=e.i18n.defaultLocale,s=Object.keys(e.i18n.locales),i=[],n=new Map,l=[];for(let p of r){let c=p.locale||o;n.has(c)||n.set(c,new Set),n.get(c).add(p.path),c===o&&l.push(p)}for(let p of s){let c=n.get(p)||new Set;for(let d of l){let f=Ni(d.path,o,p,t,e);f!==d.path&&(c.has(f)||i.push({...d,path:f,locale:p}))}}return i}function Ni(r,e,t,o,s){let i=`${r}:${t}`,n=Te.get(i);if(n)return n;let l=o;if(s?.versions){let f=s.versions.prefix||"";for(let E of s.versions.versions){let m=f+E.path;if(r.startsWith(`${o}/${m}`)){l+="/"+m;break}if(r.startsWith(`${o}/${E.path}`)){l+="/"+E.path;break}}}let p=r.substring(l.length),c=`/${e}`;if(p.startsWith(c+"/"))p="/"+t+"/"+p.substring(c.length+1);else if(p===c)p="/"+t;else if(p==="/"||p==="")p="/"+t;else{let f=p.startsWith("/")?"":"/";p="/"+t+f+p}let d=l+p;return Te.size>2e3&&Te.clear(),Te.set(i,d),d}var qo=require("vite-plugin-image-optimizer");a();var st=O(require("path")),Tr=O(require("fs")),Ar=require("vite");a();var u=require("zod"),Di=u.z.object({icon:u.z.string().max(50),link:u.z.string().url()}),ki=u.z.object({text:u.z.string().max(2e3).optional()}),ji=u.z.enum(["fs:read","fs:write","vite:config","mdx:remark","mdx:rehype","components","hooks:build","hooks:dev"]),zt=u.z.object({name:u.z.string(),enforce:u.z.enum(["pre","post"]).optional(),version:u.z.string().optional(),boltdocsVersion:u.z.string().optional(),permissions:u.z.array(ji).optional(),remarkPlugins:u.z.array(u.z.any()).optional(),rehypePlugins:u.z.array(u.z.any()).optional(),vitePlugins:u.z.array(u.z.any()).optional(),components:u.z.record(u.z.string(),u.z.string()).optional(),hooks:u.z.record(u.z.string(),u.z.any()).optional()}),qi=u.z.object({title:u.z.union([u.z.string(),u.z.record(u.z.string(),u.z.string())]).optional(),description:u.z.union([u.z.string(),u.z.record(u.z.string(),u.z.string())]).optional(),logo:u.z.union([u.z.string(),u.z.object({dark:u.z.string(),light:u.z.string(),alt:u.z.string().optional(),width:u.z.number().optional(),height:u.z.number().optional()})]).optional(),navbar:u.z.array(u.z.object({label:u.z.union([u.z.string(),u.z.record(u.z.string(),u.z.string())]),href:u.z.string()})).optional(),sidebar:u.z.record(u.z.string(),u.z.array(u.z.object({text:u.z.string(),link:u.z.string()}))).optional(),socialLinks:u.z.array(Di).optional(),footer:ki.optional(),breadcrumbs:u.z.boolean().optional(),editLink:u.z.string().refine(r=>!r||r.includes(":path"),{message:"editLink must contain ':path' placeholder if specified"}).optional(),communityHelp:u.z.string().url().optional(),version:u.z.string().max(50).optional(),githubRepo:u.z.string().max(100).optional(),favicon:u.z.string().optional(),ogImage:u.z.string().optional(),poweredBy:u.z.boolean().optional(),tabs:u.z.array(u.z.object({id:u.z.string(),text:u.z.union([u.z.string(),u.z.record(u.z.string(),u.z.string())]),icon:u.z.string().optional()})).optional(),codeTheme:u.z.union([u.z.string(),u.z.object({light:u.z.string(),dark:u.z.string()})]).optional(),copyMarkdown:u.z.union([u.z.boolean(),u.z.object({text:u.z.string().optional(),icon:u.z.string().optional()})]).optional()}),Bi=u.z.union([u.z.string(),u.z.object({rules:u.z.array(u.z.object({userAgent:u.z.string(),allow:u.z.union([u.z.string(),u.z.array(u.z.string())]).optional(),disallow:u.z.union([u.z.string(),u.z.array(u.z.string())]).optional()})).optional(),sitemaps:u.z.array(u.z.string().url()).optional()})]),Fi=u.z.object({defaultLocale:u.z.string(),locales:u.z.record(u.z.string(),u.z.string()),localeConfigs:u.z.record(u.z.string(),u.z.object({label:u.z.string().optional(),direction:u.z.enum(["ltr","rtl"]).optional(),htmlLang:u.z.string().optional(),calendar:u.z.string().optional()})).optional()}),_i=u.z.object({defaultVersion:u.z.string(),prefix:u.z.string().optional(),versions:u.z.array(u.z.object({label:u.z.string(),path:u.z.string()}))}),Mi=u.z.object({headers:u.z.record(u.z.string(),u.z.string()).optional(),enableCSP:u.z.boolean().optional(),customHeaders:u.z.record(u.z.string(),u.z.string()).optional()}),Lr=u.z.object({siteUrl:u.z.string().url().optional(),docsDir:u.z.string().optional(),homePage:u.z.string().optional(),theme:qi.optional(),i18n:Fi.optional(),versions:_i.optional(),plugins:u.z.array(zt).optional(),robots:Bi.optional(),security:Mi.optional(),vite:u.z.record(u.z.string(),u.z.unknown()).optional()});Ke();var ot=["boltdocs.config.js","boltdocs.config.mjs","boltdocs.config.ts"];async function V(r,e=process.cwd()){let t=e,o={docsDir:st.default.resolve(r),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}},s={};for(let d of ot){let f=st.default.resolve(t,d);if(Tr.default.existsSync(f))try{let E=await(0,Ar.loadConfigFromFile)({command:"serve",mode:"development"},f,t);if(E){s=E.config;break}}catch(E){console.warn(`[boltdocs] Failed to load config from ${d}:`,E)}}let n={...{title:s.title,description:s.description,logo:s.logo,favicon:s.favicon,ogImage:s.ogImage,navbar:s.navbar,sidebar:s.sidebar,socialLinks:s.socialLinks,footer:s.footer,githubRepo:s.githubRepo,tabs:s.tabs,codeTheme:s.codeTheme,copyMarkdown:s.copyMarkdown,breadcrumbs:s.breadcrumbs,poweredBy:s.poweredBy,communityHelp:s.communityHelp,version:s.version,editLink:s.editLink},...s.theme||{}},l=Object.fromEntries(Object.entries(n).filter(([d,f])=>f!==void 0));l.navbar&&(l.navbar=l.navbar.map(d=>({label:d.label||d.text||"",href:d.href||d.link||d.to||""})));let p={docsDir:st.default.resolve(r),homePage:s.homePage,theme:{...o.theme,...l},i18n:s.i18n,versions:s.versions,siteUrl:s.siteUrl,plugins:s.plugins||[],robots:s.robots,security:s.security,vite:s.vite},c=Lr.safeParse(p);if(!c.success){let d=c.error.issues.map(f=>` - ${f.path.join(".")}: ${f.message}`).join(`
3
- `);throw new oe(`Invalid Boltdocs configuration:
4
- ${d}`)}return c.data}a();var Y=O(require("fs")),K=O(require("path"));W();var qr=require("url"),Br=require("module");a();W();function Nr(r,e){let t=ie(e.title),o=ie(e.description);return r.replace(/<title>.*?<\/title>/,`<title>${t}</title>`).replace(/(<meta name="description" content=")[^"]*(")/,`$1${o}$2`).replace(/(<meta property="og:title" content=")[^"]*(")/,`$1${t}$2`).replace(/(<meta property="og:description" content=")[^"]*(")/,`$1${o}$2`).replace(/(<meta name="twitter:title" content=")[^"]*(")/,`$1${t}$2`).replace(/(<meta name="twitter:description" content=")[^"]*(")/,`$1${o}$2`)}a();W();function Dr(r,e){let t=e?.siteUrl?.replace(/\/$/,"")||"https://example.com",o=new Date().toISOString().split("T")[0],s=[{url:"/",priority:"1.0",changefreq:"daily"}];if(e?.i18n){let n=e.i18n.defaultLocale;for(let l of Object.keys(e.i18n.locales))l!==n&&s.push({url:`/${l}/`,priority:"1.0",changefreq:"daily"})}return`<?xml version="1.0" encoding="UTF-8"?>
5
- <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
6
- ${[...s,...r.map(n=>({url:n,priority:"0.8",changefreq:"weekly"}))].map(n=>` <url>
7
- <loc>${kt(t)}${kt(n.url)}</loc>
8
- <lastmod>${o}</lastmod>
9
- <changefreq>${n.changefreq}</changefreq>
10
- <priority>${n.priority}</priority>
11
- </url>`).join(`
12
- `)}
13
- </urlset>`}a();function it(r){if(typeof r.robots=="string")return r.robots;let e=r.siteUrl?.replace(/\/$/,"")||"",t=r.robots||{},o=t.rules||[{userAgent:"*",allow:"/"}],s=t.sitemaps||(e?[`${e}/sitemap.xml`]:[]),i="";for(let n of o){if(i+=`User-agent: ${n.userAgent}
14
- `,n.disallow){let l=Array.isArray(n.disallow)?n.disallow:[n.disallow];for(let p of l)i+=`Disallow: ${p}
15
- `}if(n.allow){let l=Array.isArray(n.allow)?n.allow:[n.allow];for(let p of l)i+=`Allow: ${p}
16
- `}i+=`
17
- `}for(let n of s)i+=`Sitemap: ${n}
18
- `;return i.trim()}var Hi=(0,qr.fileURLToPath)(g),kr=K.default.dirname(Hi),jr=(0,Br.createRequire)(g);async function Fr(r){let{docsDir:e,docsDirName:t,outDir:o,config:s}=r,i=await fe(e,s),n=["tsx","ts","jsx","js"].map(h=>K.default.resolve(e,`pages-external/index.${h}`)).find(h=>Y.default.existsSync(h));if(n)try{let h=Y.default.readFileSync(n,"utf-8"),v=h.match(/pages\s*:\s*{([^}]+)}/s);if(v){let b=v[1].split(",").map(C=>C.split(":")[0].trim().replace(/['"]/g,"")).filter(C=>C&&C.startsWith("/"));for(let C of b)i.some(R=>R.path===C)||i.push({path:C,title:C.slice(1).charAt(0).toUpperCase()+C.slice(2),filePath:"",componentPath:"",_content:""})}h.includes("homePage")&&!i.some(b=>b.path==="/")&&i.push({path:"/",title:"Home",filePath:"",componentPath:"",_content:""})}catch(h){console.warn("[boltdocs] Failed to parse external routes for SSG:",h)}let l=K.default.resolve(kr,"../client/ssr.js");if(!Y.default.existsSync(l)){console.error("[boltdocs] SSR module not found at",l,"- Did you build the core package?");return}let p=jr("module"),c=p.prototype.require;p.prototype.require=function(h,...v){return h.startsWith("virtual:boltdocs-")?h==="virtual:boltdocs-layout"?{__esModule:!0,default:function(C){try{let L=c.apply(this,[K.default.resolve(kr,"../client/index.js")]).DefaultLayout||(({children:U})=>U);return c.apply(this,["react"]).createElement(L,C)}catch{return C.children}}}:h==="virtual:boltdocs-mdx-components"?{__esModule:!0,default:{}}:h==="virtual:boltdocs-config"?{__esModule:!0,default:s}:{__esModule:!0,default:h.includes("routes")?[]:{}}:c.apply(this,[h,...v])};let{render:d}=jr(l);p.prototype.require=c;let f=K.default.join(o,"index.html");if(!Y.default.existsSync(f)){console.warn("[boltdocs] No index.html found in outDir, skipping SSG.");return}let E=Y.default.readFileSync(f,"utf-8");await Promise.all(i.map(async h=>{let v=jt(s?.theme?.title,h.locale)||"Boltdocs",b=jt(s?.theme?.description,h.locale)||"",C=`${h.title} | ${v}`,R=h.description||b,L={};L[`/${t}/${h.filePath}`]={default:()=>null};try{let I=await d({path:h.path,routes:i,config:s||{},docsDirName:t,modules:L,homePage:void 0}),U=Nr(E,{title:ie(C),description:ie(R)}).replace("<!--app-html-->",I).replace('<div id="root"></div>',`<div id="root">${I}</div>`),N=K.default.join(o,h.path);await Y.default.promises.mkdir(N,{recursive:!0}),await Y.default.promises.writeFile(K.default.join(N,"index.html"),U,"utf-8")}catch(I){console.error(`[boltdocs] Error SSR rendering route ${h.path}:`,I&&(I.stack||I))}}));let m=Dr(i.map(h=>h.path),s);Y.default.writeFileSync(K.default.join(o,"sitemap.xml"),m,"utf-8");let S=it(s);Y.default.writeFileSync(K.default.join(o,"robots.txt"),S,"utf-8"),console.log(`[boltdocs] Generated ${i.length} static pages + sitemap.xml + robots.txt`);let{flushCache:$}=await Promise.resolve().then(()=>(Le(),Ht));await $()}W();var z=O(require("path"));a();W();var Ae=O(require("path")),Xt=O(require("fs"));function _r(r,e){let t=r.homePage?`import HomePage from '${_(r.homePage)}';`:"",o=Ae.default.resolve(process.cwd(),"index.css"),s=Xt.default.existsSync(o)?"import './index.css';":"",i=r.homePage?"homePage: HomePage,":"",n=e?.plugins?.flatMap(S=>Object.entries(S.components||{}))||[],l=n.map(([S,$])=>`import * as _comp_${S} from '${_($)}';
19
- const ${S} = _comp_${S}.default || _comp_${S}['${S}'] || _comp_${S};`).join(`
20
- `),p=n.map(([S])=>S).join(", "),c=Ae.default.basename(r.docsDir||"docs"),d=Ae.default.resolve(process.cwd(),r.docsDir||"docs"),f=["tsx","ts","jsx","js"].map(S=>Ae.default.resolve(d,`pages-external/index.${S}`)).find(S=>Xt.default.existsSync(S)),E=f?`import * as _external_module from '${_(f)}';`:"";return i=f?"homePage: _external_module.homePage || HomePage,":r.homePage?"homePage: HomePage,":"",`
21
- import { createBoltdocsApp as _createApp } from 'boltdocs/client';
22
- import _routes from 'virtual:boltdocs-routes';
23
- import _config from 'virtual:boltdocs-config';
24
- import _user_mdx_components from 'virtual:boltdocs-mdx-components';
25
- ${s}
26
- ${t}
27
- ${l}
28
- ${E}
29
-
30
- _createApp({
31
- target: '#root',
32
- routes: _routes,
33
- docsDirName: '${c}',
34
- config: _config,
35
- modules: import.meta.glob('/${c}/**/*.{md,mdx}'),
36
- hot: import.meta.hot,
37
- ${i}
38
- ${f?"externalPages: _external_module.pages, externalLayout: _external_module.layout,":""}
39
- components: { ${p}${p?", ":""} ...(_user_mdx_components || {}) },
40
- });
41
- `}a();function nt(r){return`<!doctype html>
42
- <html lang="en">
43
- <head>
44
- <meta charset="UTF-8" />
45
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
46
- <title>${r.theme?.title||"Boltdocs"}</title>
47
- </head>
48
- <body>
49
- <div id="root"></div>
50
- </body>
51
- </html>`}function Wt(r,e){let t=e.theme,o=t?.title||"Boltdocs",s=t?.description||"",i=t?.favicon;!i&&t?.logo&&(typeof t.logo=="string"?i=t.logo:i=t.logo.light||t.logo.dark);let n=[i?`<link rel="icon" href="${i}">`:"",`<meta name="description" content="${s}">`,`<meta property="og:title" content="${o}">`,`<meta property="og:description" content="${s}">`,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="${o}">`,`<meta name="twitter:description" content="${s}">`,t?.ogImage?`<meta name="twitter:image" content="${t.ogImage}">`:"",'<meta name="generator" content="Boltdocs">'].filter(Boolean).join(`
52
- `),l=`
53
- <script>
54
- (function() {
55
- try {
56
- var stored = localStorage.getItem("boltdocs-theme");
57
- var theme = stored || (window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light");
58
- if (theme === "light") {
59
- document.documentElement.classList.add("theme-light");
60
- document.documentElement.dataset.theme = "light";
61
- } else {
62
- document.documentElement.classList.remove("theme-light");
63
- document.documentElement.dataset.theme = "dark";
64
- }
65
- } catch (e) {}
66
- })();
67
- </script>
68
- `;return r.includes("<title>")?r=r.replace(/<title>.*?<\/title>/,`<title>${o}</title>`):r=r.replace("</head>",` <title>${o}</title>
69
- </head>`),r=r.replace("</head>",` ${n}
70
- ${l} </head>`),!r.includes("src/main")&&!r.includes("virtual:boltdocs-entry")&&(r=r.replace("</body>",` <script type="module">import "virtual:boltdocs-entry";</script>
71
- </body>`)),r}a();function Mr(r){let e=[];for(let t of r)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 o of t.headings)e.push({id:`${t.path}#${o.id}`,title:o.text,content:`${o.text} in ${t.title}`,url:`${t.path}#${o.id}`,display:`${t.title} > ${o.text}`,locale:t.locale,version:t.version});return e}a();var at={"X-Content-Type-Options":"nosniff","X-Frame-Options":"DENY","X-XSS-Protection":"1; mode=block","Referrer-Policy":"strict-origin-when-cross-origin","Permissions-Policy":"camera=(), microphone=(), geolocation=()","Strict-Transport-Security":"max-age=31536000; includeSubDomains"};a();function ct(r){let e=process.env.NODE_ENV==="development",t={"default-src":["'self'"],"script-src":["'self'","'unsafe-inline'"],"style-src":["'self'","'unsafe-inline'"],"img-src":["'self'","data:","https:"],"font-src":["'self'"],"connect-src":["'self'"]};return e&&(t["script-src"]=["'self'","'unsafe-eval'","'unsafe-inline'"],t["style-src"]=["'self'","'unsafe-inline'"]),Object.entries(t).map(([o,s])=>`${o} ${s.join(" ")}`).join("; ")}var mr=O(require("fs"));a();var de=class r extends Error{pluginName;constructor(e,t){super(`[plugin:${e}] ${t}`),this.name="PluginError",this.pluginName=e,Object.setPrototypeOf(this,r.prototype)}},me=class r extends de{constructor(e,t){super(e,`Validation failed: ${t}`),this.name="PluginValidationError",Object.setPrototypeOf(this,r.prototype)}},lt=class r extends de{constructor(e,t){super(e,`Compatibility error: ${t}`),this.name="PluginCompatibilityError",Object.setPrototypeOf(this,r.prototype)}},Ne=class r extends de{constructor(e,t){super(e,`Missing required permission: '${t}'`),this.name="PluginPermissionError",Object.setPrototypeOf(this,r.prototype)}},ut=class r extends de{hookName;constructor(e,t,o){super(e,`Error in hook '${t}': ${o.message}`),this.name="PluginHookError",this.hookName=t,this.stack=o.stack,Object.setPrototypeOf(this,r.prototype)}};a();var pt=class{data=new Map;getNamespaceKey(e,t){return`${e}:${t}`}get(e,t){let o=this.getNamespaceKey(e,t),s=this.data.get(o);if(s!==void 0)return typeof s=="object"&&s!==null?JSON.parse(JSON.stringify(s)):s}set(e,t,o){let s=this.getNamespaceKey(e,t),i=typeof o=="object"&&o!==null?JSON.parse(JSON.stringify(o)):o;this.data.set(s,i)}has(e,t){let o=this.getNamespaceKey(e,t);return this.data.has(o)}};a();var G=require("zod"),Ao=O(To()),No=O(require("path"));var Fc=zt.extend({version:G.z.string().optional(),boltdocsVersion:G.z.string().optional(),permissions:G.z.array(G.z.string()).optional(),hooks:G.z.object({beforeBuild:G.z.function().optional(),afterBuild:G.z.function().optional(),beforeDev:G.z.function().optional(),afterDev:G.z.function().optional(),configResolved:G.z.function().optional(),buildEnd:G.z.function().optional()}).optional()});function Do(r,e){let t=[],o=new Set;for(let s of r){let i=Fc.safeParse(s);if(!i.success)throw new me(s.name||"unknown",i.error.issues.map(l=>`${l.path.join(".")}: ${l.message}`).join(", "));let n=i.data;if(o.has(n.name))throw new me(n.name,"Duplicate plugin name detected");if(o.add(n.name),n.boltdocsVersion&&!Ao.default.satisfies(e,n.boltdocsVersion))throw new lt(n.name,`Plugin expects Boltdocs version ${n.boltdocsVersion}, but current is ${e}`);if(n.components){for(let[l,p]of Object.entries(n.components))if((p.includes("..")||No.default.isAbsolute(p))&&p.includes(".."))throw new me(n.name,`Component '${l}' has an invalid path: traversal sequences are not allowed.`)}t.push(n)}return t}function he(r,e){return r.permissions?r.permissions.includes(e):!1}a();var te=class{static checkPermission(e,t){if(!he(e,t))throw new Ne(e.name,t)}static getSanitizedCapabilities(e){return{remarkPlugins:he(e,"mdx:remark")?e.remarkPlugins:[],rehypePlugins:he(e,"mdx:rehype")?e.rehypePlugins:[],vitePlugins:he(e,"vite:config")?e.vitePlugins:[],components:he(e,"components")?e.components:{}}}static async executeWithIsolation(e,t,o,s){try{return this.checkPermission(e,t),await s()}catch(i){if(i instanceof Ne){console.warn(`[boltdocs] Skipping hook '${o}' for plugin '${e.name}': ${i.message}`);return}throw i}}};a();var wt=class{plugins;config;store;constructor(e,t){this.plugins=e,this.config=t,this.store=new pt}async runHook(e,...t){let o=this.getSortedPlugins();for(let s of o){if(!s.hooks?.[e])continue;let i=this.createContext(s),n=e.toLowerCase().includes("build"),l=e.toLowerCase().includes("dev"),p=n?"hooks:build":l?"hooks:dev":void 0;try{p?await te.executeWithIsolation(s,p,e,()=>s.hooks[e](i,...t)):await s.hooks[e](i,...t)}catch(c){let d=new ut(s.name,e,c instanceof Error?c:new Error(String(c)));i.logger.error(d)}}}getSortedPlugins(){let e=this.plugins.filter(s=>s.enforce==="pre"),t=this.plugins.filter(s=>!s.enforce),o=this.plugins.filter(s=>s.enforce==="post");return[...e,...t,...o]}createContext(e){return{config:Object.freeze({...this.config}),meta:{name:e.name,version:e.version,boltdocsVersion:e.boltdocsVersion},store:{get:(t,o)=>this.store.get(t,o),set:(t,o,s)=>this.store.set(t,o,s),has:(t,o)=>this.store.has(t,o)},logger:this.createLogger(e.name)}}createLogger(e){let t=`[plugin:${e}]`;return{info:o=>console.log(`${t} INFO: ${o}`),warn:o=>console.warn(`${t} WARN: ${o}`),error:o=>{let s=o instanceof Error?o.message:o;console.error(`${t} ERROR: ${s}`)},debug:o=>console.debug(`${t} DEBUG: ${o}`)}}};function Bo(r={},e){let t=z.default.resolve(process.cwd(),r.docsDir||"docs"),o=_(t),s=e,i,n=!1,l,p=[];return[{name:"vite-plugin-boltdocs",enforce:"pre",async config(c,d){n=d.command==="build";let f=c.envDir||process.cwd(),E=(0,jo.loadEnv)(d.mode,f,"");Object.assign(process.env,E),s||(s=await V(t));let m=(await Promise.resolve().then(()=>O(ko()))).version,S=Do(s.plugins||[],m);return s.plugins=S,l=new wt(S,s),p=S.flatMap($=>te.getSanitizedCapabilities($).vitePlugins||[]),n&&await l.runHook("beforeBuild"),{resolve:{alias:[{find:/^(.*)\/?use-sync-external-store\/shim(?:.*)$/,replacement:"\0virtual:boltdocs-usesync-shim"},{find:/^(.*)\/?use-sync-external-store$/,replacement:"\0virtual:boltdocs-usesync-shim"}]},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(c){i=c,l?.runHook("configResolved",s)},async configureServer(c){await l?.runHook("beforeDev"),c.middlewares.use((v,b,C)=>{process.env.NODE_ENV==="production"&&Object.entries(at).forEach(([L,I])=>{b.setHeader(L,I)}),s.security?.enableCSP&&b.setHeader("Content-Security-Policy",ct(s)),C()}),c.middlewares.use((v,b,C)=>{if(v.url==="/robots.txt"){let R=it(s);b.statusCode=200,b.setHeader("Content-Type","text/plain"),b.end(R);return}C()}),c.middlewares.use(async(v,b,C)=>{let R=v.url?.split("?")[0]||"/",L=v.headers.accept||"",I=R==="/"||R.startsWith("/docs")||s.i18n&&Object.keys(s.i18n.locales).some(N=>R.startsWith(`/${N}/docs`)||R===`/${N}`)||!0,U=/\.(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(R);if(L.includes("text/html")&&!U&&I){let N=nt(s);N=Wt(N,s),N=await c.transformIndexHtml(v.url||"/",N),b.statusCode=200,b.setHeader("Content-Type","text/html"),b.end(N);return}C()});let d=ot.map(v=>z.default.resolve(process.cwd(),v)),f=["tsx","jsx"],E=f.map(v=>z.default.resolve(t,`layout.${v}`)),m=["tsx","ts","jsx","js"],S=m.map(v=>z.default.resolve(t,`mdx-components.${v}`)),$=m.map(v=>z.default.resolve(t,`pages-external/index.${v}`));c.watcher.add([...d,...S,...E,...$]);let h=async(v,b)=>{try{let C=_(v);if(ot.some(I=>C.endsWith(I))){c.restart();return}if(m.some(I=>C.endsWith(`mdx-components.${I}`))){let I=c.moduleGraph.getModuleById("\0virtual:boltdocs-mdx-components");I&&c.moduleGraph.invalidateModule(I),c.ws.send({type:"full-reload"});return}if(f.some(I=>C.endsWith(`layout.${I}`))){let I=c.moduleGraph.getModuleById("\0virtual:boltdocs-layout");I&&c.moduleGraph.invalidateModule(I),c.ws.send({type:"full-reload"});return}if(C.includes("/pages-external/")||C.includes("\\pages-external\\")){let I=c.moduleGraph.getModuleById("\0virtual:boltdocs-entry");I&&c.moduleGraph.invalidateModule(I),c.ws.send({type:"full-reload"});return}if(!C.startsWith(o)||!br(C))return;if(b==="add"||b==="unlink"){Gt(),s=await V(t);let I=c.moduleGraph.getModuleById("\0virtual:boltdocs-config");I&&c.moduleGraph.invalidateModule(I),c.ws.send({type:"custom",event:"boltdocs:config-update",data:{theme:s?.theme,i18n:s?.i18n,versions:s?.versions,siteUrl:s?.siteUrl}})}else Ut(v);let R=await fe(t,s,"/docs",b!=="change"),L=c.moduleGraph.getModuleById("\0virtual:boltdocs-routes");L&&c.moduleGraph.invalidateModule(L),c.ws.send({type:"custom",event:"boltdocs:routes-update",data:R})}catch(C){console.error(`[boltdocs] HMR error during ${b} event:`,C)}};c.watcher.on("add",v=>h(v,"add")),c.watcher.on("unlink",v=>h(v,"unlink")),c.watcher.on("change",v=>h(v,"change")),await l?.runHook("afterDev")},resolveId(c){if(c==="virtual:boltdocs-routes"||c==="virtual:boltdocs-config"||c==="virtual:boltdocs-entry"||c==="virtual:boltdocs-mdx-components"||c==="virtual:boltdocs-layout"||c==="virtual:boltdocs-search")return"\0"+c;if((c.includes("use-sync-external-store/shim")||c==="use-sync-external-store"||c.endsWith("use-sync-external-store/index.js"))&&!c.includes("with-selector"))return"\0virtual:boltdocs-usesync-shim"},async load(c){if(c==="\0virtual:boltdocs-usesync-shim")return`import * as React from 'react';
72
- export const useSyncExternalStore = React.useSyncExternalStore;
73
- export default React.useSyncExternalStore;`;if(c==="\0virtual:boltdocs-routes"){let d=await fe(t,s);return`export default ${JSON.stringify(d,null,2)};`}if(c==="\0virtual:boltdocs-config"){let d={theme:s?.theme,i18n:s?.i18n,versions:s?.versions,siteUrl:s?.siteUrl,plugins:s?.plugins?.map(f=>({name:f.name}))};return`export default ${JSON.stringify(d,null,2)};`}if(c==="\0virtual:boltdocs-entry")return _r(r,s);if(c==="\0virtual:boltdocs-mdx-components"){let d=["tsx","ts","jsx","js"],f=null;for(let E of d){let m=z.default.resolve(t,`mdx-components.${E}`);if(mr.default.existsSync(m)){f=m;break}}if(f){let E=_(f);return`import * as components from '${E}';
74
- const mdxComponents = components.default || components;
75
- export default mdxComponents;
76
- export * from '${E}';`}return"export default {};"}if(c==="\0virtual:boltdocs-layout"){let d=["tsx","jsx"],f=null;for(let E of d){let m=z.default.resolve(t,`layout.${E}`);if(mr.default.existsSync(m)){f=m;break}}return f?`import UserLayout from '${_(f)}';
77
- export default UserLayout;`:`import { DefaultLayout } from 'boltdocs/client';
78
- export default DefaultLayout;`}if(c==="\0virtual:boltdocs-search"){let d=await fe(t,s),f=Mr(d);return`export default ${JSON.stringify(f,null,2)};`}},transformIndexHtml:{order:"pre",handler(c){return Wt(c,s)}},async closeBundle(){if(!n)return;let c=i?.build?.outDir?z.default.resolve(i.root,i.build.outDir):z.default.resolve(process.cwd(),"dist"),d=z.default.basename(t||"docs");await Fr({docsDir:t,docsDirName:d,outDir:c,config:s});let{flushCache:f}=await Promise.resolve().then(()=>(Le(),Ht));await f(),await l?.runHook("afterBuild"),await l?.runHook("buildEnd")}},(0,qo.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"}]}}),{name:"vite-plugin-boltdocs-extra-plugins",async configResolved(){}},...p]}a();var Wo=O(require("@mdx-js/rollup")),Yo=O(require("remark-gfm")),Ko=O(require("remark-frontmatter")),Jo=O(require("rehype-slug")),Zo=O(require("crypto"));a();Le();var Fo="v4",ye=new Oe("mdx");a();var Mo=require("unist-util-visit");a();var _o=require("shiki"),St=null;async function Rt(r){if(St)return St;let e=typeof r=="object"?[r.light,r.dark]:[r??"github-dark"];return["github-light","github-dark"].forEach(t=>{e.includes(t)||e.push(t)}),St=await(0,_o.createHighlighter)({themes:e,langs:["tsx","jsx","ts","js","json","md","mdx","css","html","bash","sh","yaml","yml"]}),St}function Ho(r){return async e=>{let t=r?.theme?.codeTheme??{light:"github-light",dark:"github-dark"},o=await Rt(t);(0,Mo.visit)(e,["mdxJsxFlowElement","mdxJsxTextElement"],s=>{if(s.name!=="ComponentPreview")return;let i=s.attributes?.find(c=>c.name==="code"),n="";if(i){if(typeof i.value=="string")n=i.value;else if(i.value?.type==="mdxJsxAttributeValueExpression"){let c=i.value.value??"";n=c.match(/^[`'"]([\s\S]+)[`'"]$/)?.[1]??c}}if(!n)return;let l=typeof t=="object"?{themes:{light:t.light,dark:t.dark},lang:"tsx"}:{theme:t,lang:"tsx"},p=o.codeToHtml(n,l);s.attributes=(s.attributes??[]).filter(c=>c.name!=="highlightedHtml"),s.attributes.push({type:"mdxJsxAttribute",name:"highlightedHtml",value:p})})}}a();var Go=require("unist-util-visit");function Uo(r){return async e=>{let t=r?.theme?.codeTheme||{light:"github-light",dark:"github-dark"},o=await Rt(t);(0,Go.visit)(e,"element",s=>{if(s.tagName==="pre"&&s.children?.[0]?.tagName==="code"){let i=s.children[0],l=(i.properties?.className||[]).find($=>$.startsWith("language-")),p=l?l.slice(9):"text",c=i.children[0]?.value||"",f=(i.data?.meta||i.properties?.metastring||"").match(/title\s*=\s*"([^"]*)"/),E=f?f[1]:void 0,m={lang:p};typeof t=="object"?m.themes={light:t.light,dark:t.dark}:m.theme=t;let S=o.codeToHtml(c,m);s.properties["data-highlighted"]="true",s.properties["data-highlighted-html"]=S,s.properties["data-lang"]=p,E&&(s.properties.title=E),s.children=[]}})}}a();var Vo=require("unist-util-visit");function zo(){return r=>{(0,Vo.visit)(r,"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,o=t.match(/title\s*=\s*"([^"]*)"/);o&&(e.data.hProperties.title=o[1]),e.data.hProperties.metastring=t})}}var Xo=!1,Ct=0,Me=0;function Qo(r,e=Wo.default){let t=r?.plugins?.flatMap(i=>te.getSanitizedCapabilities(i).remarkPlugins||[])||[],o=r?.plugins?.flatMap(i=>te.getSanitizedCapabilities(i).rehypePlugins||[])||[],s=e({remarkPlugins:[Yo.default,Ko.default,zo,[Ho,r],...t],rehypePlugins:[Jo.default,[Uo,r],...o],jsxRuntime:"automatic"});return{...s,name:"vite-plugin-boltdocs-mdx",async buildStart(){Ct=0,Me=0,Xo||(ye.load(),Xo=!0),s.buildStart&&await s.buildStart.call(this)},async transform(i,n,l){if(!n.endsWith(".md")&&!n.endsWith(".mdx"))return s.transform?.call(this,i,n,l);console.log(`[boltdocs] Transforming MDX: ${n}`),Me++;let p=Zo.default.createHash("md5").update(i).digest("hex"),c=`${n}:${p}:${Fo}`,d=ye.get(c);if(d)return Ct++,{code:d,map:null};let f=await s.transform.call(this,i,n,l);return f&&typeof f=="object"&&f.code&&ye.set(c,f.code),f},async buildEnd(){Me>0&&console.log(`[boltdocs] MDX Cache Performance: ${Ct}/${Me} hits (${Math.round(Ct/Me*100)||0}%)`),ye.save(),await ye.flush(),s.buildEnd&&await s.buildEnd.call(this)}}}async function ri(r){let e=r?.docsDir||"docs",t=await V(e),o={...r,homePage:r?.homePage||t.homePage};return[...Bo(o,t),Qo(t)]}async function He(r,e="development"){let t=await V("docs",r),s=e==="production"?{...at}:{};return t.security?.enableCSP&&(s["Content-Security-Policy"]=ct(t)),{root:r,mode:e,plugins:[(0,ei.default)(),(0,ti.default)(),await ri({docsDir:t.docsDir,homePage:t.homePage})],server:{headers:{...s,...t.vite?.server?.headers},...t.vite?.server},preview:{headers:{...s,...t.vite?.preview?.headers},...t.vite?.preview},...t.vite}}var Ve={};hr(Ve,{colors:()=>xe,error:()=>Z,formatLog:()=>It,info:()=>Ge,success:()=>Ue});a();var xe={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 It(r,e=""){return`${e}${xe.bold}[boltdocs]${xe.reset} ${r}${xe.reset}`}function Ge(r){console.log(It(r))}function Z(r,e){console.error(It(r,xe.red)),e&&console.error(e)}function Ue(r){console.log(It(r,xe.green))}async function oi(r=process.cwd()){try{let e=await He(r,"development"),t=await(0,si.createServer)(e);await t.listen(),t.printUrls(),t.bindCLIShortcuts({print:!0})}catch(e){Z("Failed to start dev server:",e),process.exit(1)}}a();var Ot=require("vite");var ii=O(require("path")),ze=O(require("fs"));async function ni(r=process.cwd()){let e=!1,t=ii.default.resolve(r,"index.html");try{if(!ze.default.existsSync(t)){let s=await V("docs",r);ze.default.writeFileSync(t,nt(s),"utf-8"),e=!0}let o=await He(r,"production");await(0,Ot.build)(o),Ue("Build completed successfully.")}catch(o){Z("Build failed:",o),process.exit(1)}finally{e&&ze.default.existsSync(t)&&ze.default.unlinkSync(t)}}async function ai(r=process.cwd()){try{let e=await He(r,"production");(await(0,Ot.preview)(e)).printUrls()}catch(e){Z("Failed to start preview server:",e),process.exit(1)}}a();var se=O(require("path")),Xe=O(require("fs")),ci=O(require("fast-glob"));W();async function li(r=process.cwd()){let{colors:e}=Ve;Ge(`${e.bold}Running documentation health check...${e.reset}
79
- `);let t=performance.now();try{let o=await V("docs",r),s=se.default.resolve(r,"docs");Xe.default.existsSync(s)||(Z(`Documentation directory not found at ${s}`),process.exit(1));let i=await(0,ci.default)(["**/*.md","**/*.mdx"],{cwd:s,absolute:!0,suppressErrors:!0}),n=0,l=0,p=0,c=new Map,d=(m,S)=>{let $=se.default.relative(s,m),h=c.get($);h||(h=[],c.set($,h)),h.push(S),S.level==="high"?n++:S.level==="warning"?l++:S.level==="low"&&p++},f="/docs";for(let m of i){let{data:S,content:$}=et(m);S.title||d(m,{level:"warning",message:'Missing "title" in frontmatter.',suggestion:"Add `title: Your Title` to the YAML frontmatter at the top of the file."}),S.description||d(m,{level:"low",message:'Missing "description" in frontmatter.',suggestion:"Adding a description helps with SEO and search previews."});let h=/\[.*?\]\((.*?)\)/g,v=/<a\s+[^>]*href=["']([^"']+)["'][^>]*>/g,b=[...$.matchAll(h),...$.matchAll(v)];for(let C of b){let R=C[1];if(!R||R.startsWith("http")||R.startsWith("https")||R.startsWith("#")||R.startsWith("mailto:")||R.startsWith("tel:")||(R=R.split("#")[0],!R))continue;let L;if(R.startsWith("/")){let N=R;(R.startsWith(f+"/")||R===f)&&(N=R.substring(f.length)),L=se.default.join(s,N)}else L=se.default.resolve(se.default.dirname(m),R);let I=["",".md",".mdx","/index.md","/index.mdx"],U=!1;for(let N of I){let Ee=L+N;if(Xe.default.existsSync(Ee)&&Xe.default.statSync(Ee).isFile()){U=!0;break}}U||d(m,{level:"high",message:`Broken internal link: "${R}"`,suggestion:`Ensure the file exists at "${L}". If it's a directory, ensure it has an "index.md" or "index.mdx".`})}}if(o.i18n){let{defaultLocale:m,locales:S}=o.i18n,$=Object.keys(S).filter(h=>h!==m);for(let h of i){let b=_(se.default.relative(s,h)).split("/");if(b[0]===m){let C=b.slice(1).join("/");for(let R of $){let L=[R,...b.slice(1)],I=se.default.join(s,...L);Xe.default.existsSync(I)||d(h,{level:"warning",message:`Missing translation for locale "${R}"`,suggestion:`Create a translated version of this file at "${R}/${C}".`})}}}}if(c.size===0)Ue(`All documentation files are healthy!
80
- `);else{for(let[m,S]of c.entries()){console.log(`\u{1F4C4} ${e.bold}${m}${e.reset}`);let $=S.sort((h,v)=>{let b={high:1,warning:2,low:3};return b[h.level]-b[v.level]});for(let h of $){let v="",b="";h.level==="high"?(v="\u274C",b=e.red):h.level==="warning"?(v="\u26A0\uFE0F",b=e.yellow):(v="\u2139\uFE0F",b=e.cyan),console.log(` ${b}${v} ${h.level.toUpperCase()}:${e.reset} ${h.message}`),h.suggestion&&console.log(` ${e.gray}\u{1F4A1} Suggestion: ${h.suggestion}${e.reset}`)}console.log("")}console.log(`${e.bold}Summary:${e.reset}`),console.log(` ${e.red}${n} high-level errors${e.reset}`),console.log(` ${e.yellow}${l} warnings${e.reset}`),console.log(` ${e.cyan}${p} minor improvements${e.reset}
81
- `),n>0&&Z("HIGH ERROR: Fix these to ensure your documentation builds correctly."),(l>0||p>0)&&Ge("TIP: Address warnings and suggestions for premium quality docs."),console.log("")}let E=performance.now()-t;Ge(`Finished in ${E.toFixed(2)}ms
82
- `),n>0&&process.exit(1)}catch(o){Z("Failed to run doctor check:",o),process.exit(1)}}var ae=(0,ui.default)("boltdocs");ae.command("[root]","Start development server").alias("dev").action(oi);ae.command("build [root]","Build for production").action(ni);ae.command("preview [root]","Preview production build").action(ai);ae.command("doctor [root]","Check documentation health").action(li);ae.help();ae.version("2.0.0");ae.parse();