boltdocs 2.8.4 → 2.9.0

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 (87) hide show
  1. package/bin/boltdocs.js +7 -6
  2. package/dist/{banner-DFACg5Dy.d.cts → banner-C_xkGxzI.d.cts} +1 -1
  3. package/dist/{banner-BLTQUA2O.d.ts → banner-D2NddBfF.d.ts} +1 -1
  4. package/dist/cache-C2PiGyg8.cjs +6 -0
  5. package/dist/cache-DFW4R3S0.mjs +6 -0
  6. package/dist/chunk-Ds5LZdWN.cjs +6 -0
  7. package/dist/client/index.cjs +464 -279
  8. package/dist/client/index.d.cts +74 -8
  9. package/dist/client/index.d.ts +74 -8
  10. package/dist/client/index.js +463 -280
  11. package/dist/client/mdx.cjs +1 -1
  12. package/dist/client/mdx.js +1 -1
  13. package/dist/client/primitives.cjs +4 -4
  14. package/dist/client/primitives.d.cts +1 -1
  15. package/dist/client/primitives.d.ts +1 -1
  16. package/dist/client/primitives.js +4 -4
  17. package/dist/client/theme/neutral.css +5 -3
  18. package/dist/client/theme/reset.css +19 -0
  19. package/dist/{docs-layout-CVCf3xkZ.cjs → docs-layout-3TpAt6MB.cjs} +302 -238
  20. package/dist/{docs-layout-BBv6wILp.js → docs-layout-6FQ8__ok.js} +303 -239
  21. package/dist/doctor-BY1tSmQd.mjs +34 -0
  22. package/dist/{doctor-DT4jh07O.cjs → doctor-Bknon8f5.cjs} +1 -1
  23. package/dist/doctor-DcFLi4t1.cjs +34 -0
  24. package/dist/{doctor-BGPdO1Ah.mjs → doctor-wsPTzt8Y.mjs} +1 -1
  25. package/dist/{generator-CC2yHzhZ.cjs → generator-BEIF6MOx.cjs} +2 -2
  26. package/dist/{generator-BHCrLU6h.mjs → generator-DILs0EFN.mjs} +1 -1
  27. package/dist/handler-B31cxNw0.mjs +6 -0
  28. package/dist/handler-DfhH9D1b.mjs +28 -0
  29. package/dist/handler-Djy0HfsI.cjs +28 -0
  30. package/dist/{icons-dev-C8sFxeBk.cjs → icons-dev-BryEFkJu.cjs} +90 -4
  31. package/dist/{icons-dev-CFcv5Nb8.js → icons-dev-kJyGWNeg.js} +73 -5
  32. package/dist/{image-DCMxxidi.cjs → image-B9YA_oQ_.cjs} +17 -9
  33. package/dist/{image-DufDOid8.js → image-CjYu9Eml.js} +17 -9
  34. package/dist/{mdx-Bto8CvGl.js → mdx-Cy_c2zio.js} +116 -33
  35. package/dist/{mdx-BH9kHiF9.cjs → mdx-WXjAMS8Y.cjs} +121 -32
  36. package/dist/{meta-loader-Cv9O0Pzl.cjs → meta-loader-D0V6oOQt.cjs} +1 -1
  37. package/dist/node/cli-entry.cjs +3 -3
  38. package/dist/node/cli-entry.mjs +3 -3
  39. package/dist/node/index.cjs +1 -1
  40. package/dist/node/index.d.cts +368 -24
  41. package/dist/node/index.d.mts +369 -24
  42. package/dist/node/index.mjs +1 -1
  43. package/dist/node/routes/worker.cjs +1 -1
  44. package/dist/node/routes/worker.mjs +1 -1
  45. package/dist/node-DV-EPtMU.mjs +160 -0
  46. package/dist/node-vOVNRABe.cjs +160 -0
  47. package/dist/{package-DlgexgpQ.mjs → package-BK_82QLX.mjs} +1 -1
  48. package/dist/{package-CwNjt3Sd.cjs → package-OxKE0p6j.cjs} +1 -1
  49. package/dist/{parser-B7-6PyQz.cjs → parser-C2Pw18LY.cjs} +1 -1
  50. package/dist/{parser-BzB-zCkF.cjs → parser-DJoEF96Y.cjs} +1 -1
  51. package/dist/{parser-9LqyiEnB.mjs → parser-DScG_PTs.mjs} +1 -1
  52. package/dist/routes--LYHSHT7.cjs +6 -0
  53. package/dist/routes-BAsfsn_e.mjs +6 -0
  54. package/dist/routes-C6Kr2HFN.cjs +6 -0
  55. package/dist/routes-CKgGAy8P.mjs +6 -0
  56. package/dist/{search-dialog-Cvux-qSk.cjs → search-dialog-BhXg05Ri.cjs} +1 -1
  57. package/dist/{search-dialog-CmHYOt18.cjs → search-dialog-BsAiQgnx.cjs} +2 -2
  58. package/dist/{search-dialog-jHZ21G4i.js → search-dialog-CaOO1Q4i.js} +2 -2
  59. package/dist/{search-dialog-Cr7SC8Xt.cjs → search-dialog-CzwvKoLW.cjs} +1 -1
  60. package/dist/{search-dialog-DBNaG5At.js → search-dialog-DRNJsxOv.js} +1 -1
  61. package/dist/{search-dialog-e86WPpck.js → search-dialog-DaR66wl0.js} +1 -1
  62. package/dist/shiki-adapter-CUtj-xKv.cjs +6 -0
  63. package/dist/shiki-adapter-EZptJAmW.mjs +6 -0
  64. package/dist/shiki-adapter-F-P-lDon.mjs +6 -0
  65. package/dist/shiki-adapter-PQBl32AN.cjs +6 -0
  66. package/dist/{sidebar-kQBonN82.d.ts → sidebar-BtJyWHy4.d.cts} +42 -5
  67. package/dist/{sidebar---RgTmZD.d.cts → sidebar-C4fuRYYS.d.ts} +42 -5
  68. package/dist/{utils-BYITg7T5.mjs → utils-DC4Wq-S2.mjs} +1 -1
  69. package/dist/{utils-Cjmx1hhk.cjs → utils-wHud9ny5.cjs} +1 -1
  70. package/dist/worker-pool-BS1LX67P.cjs +6 -0
  71. package/dist/worker-pool-DRv8ef4z.mjs +6 -0
  72. package/package.json +6 -3
  73. package/src/shared/types.ts +36 -3
  74. package/dist/cache-BMUyNiiA.mjs +0 -6
  75. package/dist/cache-CKm45d2w.cjs +0 -6
  76. package/dist/chunk-CU-zTemE.cjs +0 -6
  77. package/dist/doctor-Dnv77Lfx.mjs +0 -28
  78. package/dist/doctor-VBPlQf7d.cjs +0 -28
  79. package/dist/node-JM9bx0mO.cjs +0 -160
  80. package/dist/node-q-Y2mdLX.mjs +0 -160
  81. package/dist/routes-3sAccArX.cjs +0 -6
  82. package/dist/routes-DZpXqq1p.mjs +0 -6
  83. package/dist/routes-DjoxNeef.mjs +0 -6
  84. package/dist/routes-DpJnb2VS.cjs +0 -6
  85. package/dist/worker-pool-DXLyeHJg.cjs +0 -6
  86. package/dist/worker-pool-Kn4F9gDq.mjs +0 -6
  87. /package/dist/{meta-loader-DzwDFtdT.mjs → meta-loader-By22EnYa.mjs} +0 -0
@@ -1,6 +0,0 @@
1
- /**
2
- * Boltdocs - https://boltdocs.vercel.app
3
- * Copyright (c) 2026 Jesus Alcala
4
- * Licensed under the MIT License.
5
- */
6
- const e=require(`./chunk-CU-zTemE.cjs`),t=require(`./utils-Cjmx1hhk.cjs`),n=require(`./cache-CKm45d2w.cjs`);let r=require(`node:path`);r=e.t(r);let i=require(`fdir`);const a=new n.n({name:`routes`});function o(){a.invalidateAll(),n.t.clear()}function s(e){a.invalidate(e),n.t.invalidate(e)}function c(e){return e.sort((e,t)=>!e.group&&!t.group?l(e,t):e.group?t.group?e.group===t.group?l(e,t):u(e,t):1:-1)}function l(e,t){return e.sidebarPosition!==void 0&&t.sidebarPosition!==void 0?e.sidebarPosition-t.sidebarPosition:e.sidebarPosition===void 0?t.sidebarPosition===void 0?e.title.localeCompare(t.title):1:-1}function u(e,t){return e.groupPosition!==void 0&&t.groupPosition!==void 0?e.groupPosition-t.groupPosition:e.groupPosition===void 0?t.groupPosition===void 0?(e.groupTitle||e.group).localeCompare(t.groupTitle||t.group):1:-1}let d=null;const f=new Map;let p=null;function m(){d=null,f.clear(),o()}async function h(e,n,o,s=!1){if(p)return p;let l=(async()=>{let l=o||n?.base||`/docs`;await a.load(),f.clear();let u;if(!s&&d)u=d;else{let t=await new i.fdir().withFullPaths().filter(t=>t.endsWith(`.md`)||t.endsWith(`.mdx`)?!r.default.relative(e,t).replace(/\\/g,`/`).split(`/`).some(e=>e.startsWith(`_`)&&e!==`_index.md`&&e!==`_index.mdx`):!1).crawl(e).withPromise(),n=[/index\./i,/intro/i,/getting-started/i,/readme/i],a=t.map(e=>{let t=r.default.basename(e),i=n.findIndex(e=>e.test(t));return{f:e,score:i===-1?2**53-1:i}});a.sort((e,t)=>e.score-t.score),u=a.map(e=>e.f),d=u}a.pruneStale(new Set(u));let p=process.env.NODE_ENV===`test`||process.env.VITEST===`true`,m;if(p){let{parseDocFile:t}=await Promise.resolve().then(()=>require(`./parser-BzB-zCkF.cjs`));m=await Promise.all(u.map(async r=>{let i=a.get(r);if(i)return i;let o=await t(r,e,l,n);return a.set(r,o),o}))}else{let{pool:t}=await Promise.resolve().then(()=>require(`./worker-pool-DXLyeHJg.cjs`)),r=n?{i18n:n.i18n,versions:n.versions}:void 0;m=await Promise.all(u.map(async n=>{let i=a.get(n);if(i)return i;let o=await t.parseFile(n,e,l,r);return a.set(n,o),o}))}a.save();let h=[],_=new Map;for(let e of m)if(!(process.env.NODE_ENV===`production`&&e.route.draft))if(e.inferredCollection){let t=e.inferredCollection;_.has(t)||_.set(t,[]),_.get(t).push(e)}else h.push(e);let v=new Map,y=[],b=n?.i18n?.defaultLocale||``;for(let e of h)if(e.isGroupIndex&&e.relativeDir&&y.push(e),e.relativeDir){let n=`${e.route.locale||b}:${e.relativeDir}`,r=v.get(n);r?r.position===void 0&&e.inferredGroupPosition!==void 0&&(r.position=e.inferredGroupPosition):(r={title:t.t(e.relativeDir),position:e.inferredGroupPosition},v.set(n,r))}for(let e of y){let t=`${e.route.locale||b}:${e.relativeDir}`,n=v.get(t);e.groupMeta&&(n.title=e.groupMeta.title,e.groupMeta.position!==void 0&&(n.position=e.groupMeta.position),e.groupMeta.icon&&(n.icon=e.groupMeta.icon))}if(n?.theme?.sidebarGroups){let e=n.i18n?Object.keys(n.i18n.locales):[b];for(let[r,i]of Object.entries(n.theme.sidebarGroups))for(let n of e){let e=`${n}:${r}`,a=v.get(e),o;typeof i.title==`string`?o=i.title:i.title&&(o=i.title[n]||i.title[b]),a?(o&&(a.title=o),i.icon&&(a.icon=i.icon)):v.set(e,{title:o||t.t(r),icon:i.icon})}}let x=Array(h.length);for(let e=0;e<h.length;e++){let n=h[e],r=n.relativeDir,i=n.route.locale||b,a=r?`${i}:${r}`:void 0,o=a?v.get(a):void 0,s;o&&(s=typeof o.title==`string`?o.title:o.title[i]||o.title[b]),x[e]={...n.route,group:r,groupTitle:s||(r?t.t(r):void 0),groupPosition:o?.position,groupIcon:o?.icon}}let S=[];for(let[,e]of _)for(let t of e)S.push({...t.route,collection:t.inferredCollection});S.sort((e,t)=>{let n=e.date?new Date(e.date).getTime():0;return(t.date?new Date(t.date).getTime():0)-n});let C=x;if(n?.i18n){let e=g(x,n,l);C=[...x,...e]}return[...c(C),...S]})();p=l;try{return await l}finally{p=null}}function g(e,t,n){let r=t.i18n.defaultLocale,i=Object.keys(t.i18n.locales),a=[],o=new Map,s=[];for(let t of e){let e=t.locale||r;o.has(e)||o.set(e,new Set),o.get(e).add(t.path),e===r&&s.push(t)}for(let e of i){let i=o.get(e)||new Set;for(let o of s){let s=_(o.path,r,e,n,t);s!==o.path&&(i.has(s)||a.push({...o,path:s,locale:e}))}}return a}function _(e,t,n,r,i){let a=`${e}:${n}`,o=f.get(a);if(o)return o;let s=r.startsWith(`/`)?r:`/`+r,c=s;if(i?.versions){let t=i.versions.prefix||``;for(let n of i.versions.versions){let r=`${s}/${t+n.path}`;if(e.startsWith(r)){c=r;break}let i=`${s}/${n.path}`;if(e.startsWith(i)){c=i;break}}}let l=e.substring(c.length),u=`/${t}`;if(l.startsWith(u+`/`))l=`/`+n+`/`+l.substring(u.length+1);else if(l===u)l=`/`+n;else if(l===`/`||l===``)l=`/`+n;else{let e=l.startsWith(`/`)?``:`/`;l=`/`+n+e+l}let d=c+l;return f.size>2e3&&f.clear(),f.set(a,d),d}Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return h}});
@@ -1,6 +0,0 @@
1
- /**
2
- * Boltdocs - https://boltdocs.vercel.app
3
- * Copyright (c) 2026 Jesus Alcala
4
- * Licensed under the MIT License.
5
- */
6
- const e=require(`./chunk-CU-zTemE.cjs`);let t=require(`node:path`);t=e.t(t);let n=require(`node:fs`);n=e.t(n);let r=require(`node:os`);r=e.t(r);let i=require(`node:url`),a=require(`node:worker_threads`);const o=t.default.dirname((0,i.fileURLToPath)(require(`url`).pathToFileURL(__filename).href)),s=new class{workers=[];workerTasks=new WeakMap;queue=[];activeWorkers=0;maxWorkers;maxQueueSize;constructor(e,t=2e3){this.maxWorkers=e||Math.max(1,r.default.cpus().length-1),this.maxQueueSize=t}idleWorkers=[];async parseFile(e,t,n,r){return this.queue.length>=this.maxQueueSize?Promise.reject(Error(`[boltdocs] WorkerPool queue is full (limit: ${this.maxQueueSize}). Too many files enqueued simultaneously. Consider increasing maxQueueSize.`)):new Promise((i,a)=>{this.queue.push({task:{type:`PARSE_FILE`,file:e,docsDir:t,basePath:n,config:r},resolve:i,reject:a}),this.processNext()})}processNext(){if(this.queue.length===0)return;let e=this.idleWorkers.pop();if(!e){if(this.activeWorkers>=this.maxWorkers)return;this.activeWorkers++;let t=this.getWorkerPath(),n=new a.Worker(t,{execArgv:t.endsWith(`.ts`)?[`--loader`,`tsx`]:[]});e=n,this.workers.push(n);let r=(e,t)=>{let n=this.workers.indexOf(e);if(n===-1)return;let r=this.workerTasks.get(e);r&&(this.workerTasks.delete(e),r.reject(t||Error(`Worker terminated unexpectedly`))),this.activeWorkers--;let i=this.idleWorkers.indexOf(e);i>-1&&this.idleWorkers.splice(i,1),this.workers.splice(n,1),e.terminate(),this.processNext()};n.on(`message`,e=>{let t=this.workerTasks.get(n);t&&(this.workerTasks.delete(n),e.type===`SUCCESS`?t.resolve(e.result):t.reject(Error(e.error))),this.idleWorkers.push(n),this.processNext()}),n.on(`error`,e=>{r(n,e)}),n.on(`exit`,e=>{e!==0&&r(n,Error(`Worker exited with code ${e}`))})}let{task:t,resolve:n,reject:r}=this.queue.shift();this.workerTasks.set(e,{resolve:n,reject:r}),e.postMessage(t)}getWorkerPath(){if(require(`url`).pathToFileURL(__filename).href.includes(`/dist/`)||t.default.extname(require(`url`).pathToFileURL(__filename).href)===`.mjs`){let e=[t.default.resolve(o,`node/routes/worker.mjs`),t.default.resolve(o,`worker.mjs`),t.default.resolve(o,`./node/routes/worker.mjs`)];for(let t of e)if(n.default.existsSync(t))return t;return t.default.resolve(o,`node/routes/worker.mjs`)}return t.default.resolve(o,`worker.ts`)}async terminate(){let e=[...this.workers];await Promise.all(e.map(e=>e.terminate())),this.idleWorkers=[],this.workers=[],this.activeWorkers=0}};exports.pool=s;
@@ -1,6 +0,0 @@
1
- /**
2
- * Boltdocs - https://boltdocs.vercel.app
3
- * Copyright (c) 2026 Jesus Alcala
4
- * Licensed under the MIT License.
5
- */
6
- import e from"node:path";import t from"node:fs";import{fileURLToPath as n}from"node:url";import r from"node:os";import{Worker as i}from"node:worker_threads";const a=e.dirname(n(import.meta.url)),o=new class{workers=[];workerTasks=new WeakMap;queue=[];activeWorkers=0;maxWorkers;maxQueueSize;constructor(e,t=2e3){this.maxWorkers=e||Math.max(1,r.cpus().length-1),this.maxQueueSize=t}idleWorkers=[];async parseFile(e,t,n,r){return this.queue.length>=this.maxQueueSize?Promise.reject(Error(`[boltdocs] WorkerPool queue is full (limit: ${this.maxQueueSize}). Too many files enqueued simultaneously. Consider increasing maxQueueSize.`)):new Promise((i,a)=>{this.queue.push({task:{type:`PARSE_FILE`,file:e,docsDir:t,basePath:n,config:r},resolve:i,reject:a}),this.processNext()})}processNext(){if(this.queue.length===0)return;let e=this.idleWorkers.pop();if(!e){if(this.activeWorkers>=this.maxWorkers)return;this.activeWorkers++;let t=this.getWorkerPath(),n=new i(t,{execArgv:t.endsWith(`.ts`)?[`--loader`,`tsx`]:[]});e=n,this.workers.push(n);let r=(e,t)=>{let n=this.workers.indexOf(e);if(n===-1)return;let r=this.workerTasks.get(e);r&&(this.workerTasks.delete(e),r.reject(t||Error(`Worker terminated unexpectedly`))),this.activeWorkers--;let i=this.idleWorkers.indexOf(e);i>-1&&this.idleWorkers.splice(i,1),this.workers.splice(n,1),e.terminate(),this.processNext()};n.on(`message`,e=>{let t=this.workerTasks.get(n);t&&(this.workerTasks.delete(n),e.type===`SUCCESS`?t.resolve(e.result):t.reject(Error(e.error))),this.idleWorkers.push(n),this.processNext()}),n.on(`error`,e=>{r(n,e)}),n.on(`exit`,e=>{e!==0&&r(n,Error(`Worker exited with code ${e}`))})}let{task:t,resolve:n,reject:r}=this.queue.shift();this.workerTasks.set(e,{resolve:n,reject:r}),e.postMessage(t)}getWorkerPath(){if(import.meta.url.includes(`/dist/`)||e.extname(import.meta.url)===`.mjs`){let n=[e.resolve(a,`node/routes/worker.mjs`),e.resolve(a,`worker.mjs`),e.resolve(a,`./node/routes/worker.mjs`)];for(let e of n)if(t.existsSync(e))return e;return e.resolve(a,`node/routes/worker.mjs`)}return e.resolve(a,`worker.ts`)}async terminate(){let e=[...this.workers];await Promise.all(e.map(e=>e.terminate())),this.idleWorkers=[],this.workers=[],this.activeWorkers=0}};export{o as pool};