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
package/bin/boltdocs.js CHANGED
@@ -9,4 +9,4 @@
9
9
  */
10
10
 
11
11
  // We use require because the core package is currently CommonJS.
12
- require('../dist/node/cli-entry.js')
12
+ require('../dist/node/cli-entry.cjs')
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Boltdocs - https://boltdocs.vercel.app
3
+ * Copyright (c) 2026 Jesus Alcala
4
+ * Licensed under the MIT License.
5
+ */
6
+ var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,n)=>{let r={};for(var i in e)t(r,i,{get:e[i],enumerable:!0});return n||t(r,Symbol.toStringTag,{value:`Module`}),r},s=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},c=(n,r,a)=>(a=n==null?{}:e(i(n)),s(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));let l=require(`fs`);l=c(l);let u=require(`gray-matter`);u=c(u);let d=require(`isomorphic-dompurify`);d=c(d);let f=require(`zod`),p=require(`path`);p=c(p);let m=require(`crypto`);m=c(m);let h=require(`zlib`);h=c(h);let g=require(`util`);const _=/^[a-zA-Z0-9\-_\/\.\(\)]+$/,v=f.z.object({title:f.z.string().max(200).optional(),description:f.z.string().max(500).optional(),sidebarPosition:f.z.number().optional(),sidebarLabel:f.z.string().max(100).optional(),category:f.z.string().max(50).optional(),order:f.z.number().optional(),badge:f.z.string().max(50).optional(),icon:f.z.string().max(50).optional()});var y=class e extends Error{constructor(t){super(t),this.name=`SecurityViolationError`,Object.setPrototypeOf(this,e.prototype)}},b=class e extends y{constructor(t){super(t),this.name=`PathTraversalError`,Object.setPrototypeOf(this,e.prototype)}},x=class e extends y{constructor(t){super(t),this.name=`EncodingSecurityError`,Object.setPrototypeOf(this,e.prototype)}},S=class e extends y{constructor(t){super(t),this.name=`ValidationError`,Object.setPrototypeOf(this,e.prototype)}};function C(e){return e.replace(/\\/g,`/`)}function w(e){return e.replace(/^\d+\./,``)}function T(e){let t=e.match(/^(\d+)\./);return t?parseInt(t[1],10):void 0}function E(e){return/\.mdx?$/.test(e)}function D(e){try{return l.default.statSync(e).mtimeMs}catch{return 0}}function O(e){let t=l.default.readFileSync(e,`utf-8`);try{let{data:n,content:r,matter:i}=(0,u.default)(t);if(i&&i.length>10240)throw L(`FRONTMATTER_TOO_LARGE`,`Frontmatter block exceeds size limit`,{size:i.length,file:e}),new S(`Security breach: Frontmatter size exceeds limit of 10240 bytes`);let a=v.safeParse(n);a.success||console.warn(`[VALIDATION][${e}] Invalid frontmatter fields detected.`);let o={...a.success?a.data:{}};return o.title&&=N(o.title).trim(),o.description&&=N(o.description).trim(),{data:o,content:r}}catch(e){if(e instanceof S)throw e;return{data:{},content:t}}}function k(e){return e.replace(/&/g,`&amp;`).replace(/"/g,`&quot;`).replace(/'/g,`&apos;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`)}function A(e){return k(e)}function j(e){let t=e.split(`/`).map(e=>w(I(e))).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 M(e){return d.default.sanitize(e,{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`.split(`.`),ALLOWED_ATTR:[`href`,`title`,`target`,`class`,`id`,`src`,`alt`,`width`,`height`],FORCE_BODY:!0})}d.default.addHook(`afterSanitizeAttributes`,e=>{if(e.hasAttribute(`href`)){let t=e.getAttribute(`href`)?.toLowerCase()||``;(t.startsWith(`javascript:`)||t.startsWith(`data:`)||t.startsWith(`vbscript:`))&&e.removeAttribute(`href`)}if(e.hasAttribute(`src`)){let t=e.getAttribute(`src`)?.toLowerCase()||``;(t.startsWith(`javascript:`)||t.startsWith(`data:`)||t.startsWith(`vbscript:`))&&e.removeAttribute(`src`)}});function N(e){return d.default.sanitize(e,{ALLOWED_TAGS:[],KEEP_CONTENT:!0})}function P(e){return e.charAt(0).toUpperCase()+e.slice(1)}function F(e,t){return e?typeof e==`string`?e:t&&e[t]?e[t]:Object.values(e)[0]||``:``}function I(e){return e.replace(/[^a-zA-Z0-9\-_\/\.]/g,``).split(`/`).filter(e=>e!==`..`&&e!==`.`).map(e=>e.replace(/\.\.+/g,`.`)).join(`/`)}function L(e,t,n={}){let r=new Date().toISOString(),i={...n};for(let e in i)typeof i[e]==`string`&&i[e].includes(`:`)&&(i[e]=i[e].split(/[\\/]/).pop()||i[e]);console.error(`[SECURITY][${r}] TYPE: ${e} | MESSAGE: ${t} | DETAILS: ${JSON.stringify(i)}`)}var R=o({FileCache:()=>J,TransformCache:()=>Y,flushCache:()=>X});const z=(0,g.promisify)(l.default.writeFile),B=(0,g.promisify)(l.default.readFile),V=(0,g.promisify)(l.default.mkdir),H=(0,g.promisify)(l.default.rename);(0,g.promisify)(l.default.unlink);const U=process.env.BOLTDOCS_CACHE_DIR||`.boltdocs`,W=parseInt(process.env.BOLTDOCS_CACHE_LRU_LIMIT||`2000`,10),G=process.env.BOLTDOCS_CACHE_COMPRESS!==`0`;var K=class{cache=new Map;constructor(e){this.limit=e}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 e=this.cache.keys().next().value;e!==void 0&&this.cache.delete(e)}this.cache.set(e,t)}get size(){return this.cache.size}clear(){this.cache.clear()}};const q=new 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}};var J=class{entries=new Map;cachePath=null;compress;constructor(e={}){if(this.compress=e.compress===void 0?G:e.compress,e.name){let t=e.root||process.cwd(),n=this.compress?`json.gz`:`json`;this.cachePath=p.default.resolve(t,U,`${e.name}.${n}`)}}load(){if(process.env.BOLTDOCS_NO_CACHE!==`1`&&!(!this.cachePath||!l.default.existsSync(this.cachePath)))try{let e=l.default.readFileSync(this.cachePath);this.cachePath.endsWith(`.gz`)&&(e=h.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),n=this.cachePath,r=this.compress;q.add(async()=>{try{await V(p.default.dirname(n),{recursive:!0});let e=Buffer.from(t);r&&(e=h.default.gzipSync(e));let i=`${n}.${m.default.randomBytes(4).toString(`hex`)}.tmp`;await z(i,e),await H(i,n)}catch{}})}get(e){let t=this.entries.get(e);return!t||D(e)!==t.mtime?null:t.data}set(e,t){this.entries.set(e,{data:t,mtime:D(e)})}isValid(e){let t=this.entries.get(e);return t?D(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 q.flush()}},Y=class{index=new Map;memoryCache=new K(W);baseDir;shardsDir;indexPath;constructor(e,t=process.cwd()){this.baseDir=p.default.resolve(t,U,`transform-${e}`),this.shardsDir=p.default.resolve(this.baseDir,`shards`),this.indexPath=p.default.resolve(this.baseDir,`index.json`)}load(){if(process.env.BOLTDOCS_NO_CACHE!==`1`&&l.default.existsSync(this.indexPath))try{let e=l.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;q.add(async()=>{await V(p.default.dirname(t),{recursive:!0}),await z(t,e)})}async getMany(e){let t=new Map,n=[];for(let r of e){let e=this.memoryCache.get(r);e?t.set(r,e):this.index.has(r)&&n.push(r)}if(n.length>0){let e=await Promise.all(n.map(async e=>{let t=this.index.get(e),n=p.default.resolve(this.shardsDir,`${t}.gz`);try{let t=await B(n),r=h.default.gunzipSync(t).toString(`utf-8`);return this.memoryCache.set(e,r),{key:e,val:r}}catch{return null}}));for(let n of e)n&&t.set(n.key,n.val)}return t}get(e){let t=this.memoryCache.get(e);if(t)return t;let n=this.index.get(e);if(!n)return null;let r=p.default.resolve(this.shardsDir,`${n}.gz`);if(!l.default.existsSync(r))return null;try{let t=l.default.readFileSync(r),n=h.default.gunzipSync(t).toString(`utf-8`);return this.memoryCache.set(e,n),n}catch{return null}}set(e,t){let n=m.default.createHash(`md5`).update(t).digest(`hex`);this.index.set(e,n),this.memoryCache.set(e,t);let r=p.default.resolve(this.shardsDir,`${n}.gz`);q.add(async()=>{if(l.default.existsSync(r))return;await V(this.shardsDir,{recursive:!0});let e=h.default.gzipSync(Buffer.from(t)),n=`${r}.${m.default.randomBytes(4).toString(`hex`)}.tmp`;await z(n,e),await H(n,r)})}get size(){return this.index.size}async flush(){await q.flush()}};async function X(){await q.flush()}Object.defineProperty(exports,`S`,{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,`_`,{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,`b`,{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return L}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,`g`,{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,`h`,{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return P}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,`m`,{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return Y}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,`p`,{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return R}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return J}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,`v`,{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,`x`,{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,`y`,{enumerable:!0,get:function(){return S}});
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Boltdocs - https://boltdocs.vercel.app
3
+ * Copyright (c) 2026 Jesus Alcala
4
+ * Licensed under the MIT License.
5
+ */
6
+ import e from"fs";import t from"gray-matter";import n from"isomorphic-dompurify";import{z as r}from"zod";import i from"path";import a from"crypto";import o from"zlib";import{promisify as s}from"util";var c=Object.defineProperty,l=(e,t)=>()=>(e&&(t=e(e=0)),t),u=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),d=(e,t)=>{let n={};for(var r in e)c(n,r,{get:e[r],enumerable:!0});return t||c(n,Symbol.toStringTag,{value:`Module`}),n},f,p,m=l((()=>{f=/^[a-zA-Z0-9\-_\/\.\(\)]+$/,p=10*1024})),h,g=l((()=>{h=r.object({title:r.string().max(200).optional(),description:r.string().max(500).optional(),sidebarPosition:r.number().optional(),sidebarLabel:r.string().max(100).optional(),category:r.string().max(50).optional(),order:r.number().optional(),badge:r.string().max(50).optional(),icon:r.string().max(50).optional()})})),_,v,y,b,x=l((()=>{_=class e extends Error{constructor(t){super(t),this.name=`SecurityViolationError`,Object.setPrototypeOf(this,e.prototype)}},v=class e extends _{constructor(t){super(t),this.name=`PathTraversalError`,Object.setPrototypeOf(this,e.prototype)}},y=class e extends _{constructor(t){super(t),this.name=`EncodingSecurityError`,Object.setPrototypeOf(this,e.prototype)}},b=class e extends _{constructor(t){super(t),this.name=`ValidationError`,Object.setPrototypeOf(this,e.prototype)}}}));function S(e){return e.replace(/\\/g,`/`)}function C(e){return e.replace(/^\d+\./,``)}function w(e){let t=e.match(/^(\d+)\./);return t?parseInt(t[1],10):void 0}function T(e){return/\.mdx?$/.test(e)}function E(t){try{return e.statSync(t).mtimeMs}catch{return 0}}function D(n){let r=e.readFileSync(n,`utf-8`);try{let{data:e,content:i,matter:a}=t(r);if(a&&a.length>10240)throw I(`FRONTMATTER_TOO_LARGE`,`Frontmatter block exceeds size limit`,{size:a.length,file:n}),new b(`Security breach: Frontmatter size exceeds limit of ${p} bytes`);let o=h.safeParse(e);o.success||console.warn(`[VALIDATION][${n}] Invalid frontmatter fields detected.`);let s={...o.success?o.data:{}};return s.title&&=M(s.title).trim(),s.description&&=M(s.description).trim(),{data:s,content:i}}catch(e){if(e instanceof b)throw e;return{data:{},content:r}}}function O(e){return e.replace(/&/g,`&amp;`).replace(/"/g,`&quot;`).replace(/'/g,`&apos;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`)}function k(e){return O(e)}function A(e){let t=e.split(`/`).map(e=>C(F(e))).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 j(e){return n.sanitize(e,{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`.split(`.`),ALLOWED_ATTR:[`href`,`title`,`target`,`class`,`id`,`src`,`alt`,`width`,`height`],FORCE_BODY:!0})}function M(e){return n.sanitize(e,{ALLOWED_TAGS:[],KEEP_CONTENT:!0})}function N(e){return e.charAt(0).toUpperCase()+e.slice(1)}function P(e,t){return e?typeof e==`string`?e:t&&e[t]?e[t]:Object.values(e)[0]||``:``}function F(e){return e.replace(/[^a-zA-Z0-9\-_\/\.]/g,``).split(`/`).filter(e=>e!==`..`&&e!==`.`).map(e=>e.replace(/\.\.+/g,`.`)).join(`/`)}function I(e,t,n={}){let r=new Date().toISOString(),i={...n};for(let e in i)typeof i[e]==`string`&&i[e].includes(`:`)&&(i[e]=i[e].split(/[\\/]/).pop()||i[e]);console.error(`[SECURITY][${r}] TYPE: ${e} | MESSAGE: ${t} | DETAILS: ${JSON.stringify(i)}`)}var L=l((()=>{m(),g(),x(),n.addHook(`afterSanitizeAttributes`,e=>{if(e.hasAttribute(`href`)){let t=e.getAttribute(`href`)?.toLowerCase()||``;(t.startsWith(`javascript:`)||t.startsWith(`data:`)||t.startsWith(`vbscript:`))&&e.removeAttribute(`href`)}if(e.hasAttribute(`src`)){let t=e.getAttribute(`src`)?.toLowerCase()||``;(t.startsWith(`javascript:`)||t.startsWith(`data:`)||t.startsWith(`vbscript:`))&&e.removeAttribute(`src`)}})})),R=d({FileCache:()=>Z,TransformCache:()=>Q,flushCache:()=>z});async function z(){await X.flush()}var B,V,H,U,W,G,K,q,J,Y,X,Z,Q,$=l((()=>{L(),B=s(e.writeFile),V=s(e.readFile),H=s(e.mkdir),U=s(e.rename),s(e.unlink),W=process.env.BOLTDOCS_CACHE_DIR||`.boltdocs`,G=`shards`,K=parseInt(process.env.BOLTDOCS_CACHE_LRU_LIMIT||`2000`,10),q=process.env.BOLTDOCS_CACHE_COMPRESS!==`0`,J=class{cache=new Map;constructor(e){this.limit=e}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 e=this.cache.keys().next().value;e!==void 0&&this.cache.delete(e)}this.cache.set(e,t)}get size(){return this.cache.size}clear(){this.cache.clear()}},Y=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}},X=new Y,Z=class{entries=new Map;cachePath=null;compress;constructor(e={}){if(this.compress=e.compress===void 0?q:e.compress,e.name){let t=e.root||process.cwd(),n=this.compress?`json.gz`:`json`;this.cachePath=i.resolve(t,W,`${e.name}.${n}`)}}load(){if(process.env.BOLTDOCS_NO_CACHE!==`1`&&!(!this.cachePath||!e.existsSync(this.cachePath)))try{let t=e.readFileSync(this.cachePath);this.cachePath.endsWith(`.gz`)&&(t=o.gunzipSync(t));let n=JSON.parse(t.toString(`utf-8`));this.entries=new Map(Object.entries(n))}catch{}}save(){if(process.env.BOLTDOCS_NO_CACHE===`1`||!this.cachePath)return;let e=Object.fromEntries(this.entries),t=JSON.stringify(e),n=this.cachePath,r=this.compress;X.add(async()=>{try{await H(i.dirname(n),{recursive:!0});let e=Buffer.from(t);r&&(e=o.gzipSync(e));let s=`${n}.${a.randomBytes(4).toString(`hex`)}.tmp`;await B(s,e),await U(s,n)}catch{}})}get(e){let t=this.entries.get(e);return!t||E(e)!==t.mtime?null:t.data}set(e,t){this.entries.set(e,{data:t,mtime:E(e)})}isValid(e){let t=this.entries.get(e);return t?E(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 X.flush()}},Q=class{index=new Map;memoryCache=new J(K);baseDir;shardsDir;indexPath;constructor(e,t=process.cwd()){this.baseDir=i.resolve(t,W,`transform-${e}`),this.shardsDir=i.resolve(this.baseDir,G),this.indexPath=i.resolve(this.baseDir,`index.json`)}load(){if(process.env.BOLTDOCS_NO_CACHE!==`1`&&e.existsSync(this.indexPath))try{let t=e.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 e=JSON.stringify(Object.fromEntries(this.index)),t=this.indexPath;X.add(async()=>{await H(i.dirname(t),{recursive:!0}),await B(t,e)})}async getMany(e){let t=new Map,n=[];for(let r of e){let e=this.memoryCache.get(r);e?t.set(r,e):this.index.has(r)&&n.push(r)}if(n.length>0){let e=await Promise.all(n.map(async e=>{let t=this.index.get(e),n=i.resolve(this.shardsDir,`${t}.gz`);try{let t=await V(n),r=o.gunzipSync(t).toString(`utf-8`);return this.memoryCache.set(e,r),{key:e,val:r}}catch{return null}}));for(let n of e)n&&t.set(n.key,n.val)}return t}get(t){let n=this.memoryCache.get(t);if(n)return n;let r=this.index.get(t);if(!r)return null;let a=i.resolve(this.shardsDir,`${r}.gz`);if(!e.existsSync(a))return null;try{let n=e.readFileSync(a),r=o.gunzipSync(n).toString(`utf-8`);return this.memoryCache.set(t,r),r}catch{return null}}set(t,n){let r=a.createHash(`md5`).update(n).digest(`hex`);this.index.set(t,r),this.memoryCache.set(t,n);let s=i.resolve(this.shardsDir,`${r}.gz`);X.add(async()=>{if(e.existsSync(s))return;await H(this.shardsDir,{recursive:!0});let t=o.gzipSync(Buffer.from(n)),r=`${s}.${a.randomBytes(4).toString(`hex`)}.tmp`;await B(r,t),await U(r,s)})}get size(){return this.index.size}async flush(){await X.flush()}}}));export{f as C,d as D,l as E,x as S,u as T,M as _,N as a,v as b,w as c,L as d,T as f,j as g,D as h,$ as i,A as l,S as m,Q as n,O as o,I as p,R as r,k as s,Z as t,P as u,C as v,m as w,b as x,y};