boltdocs 3.3.1 → 3.3.3

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 (97) hide show
  1. package/dist/{adapters-BmB4TKCc.mjs → adapters-BKzKe2mO.mjs} +1 -1
  2. package/dist/{adapters-Cp1Maurn.cjs → adapters-DwDTQoCG.cjs} +1 -1
  3. package/dist/{audit-COgjnQ5n.cjs → audit-CHkGiV3c.cjs} +1 -1
  4. package/dist/{audit-CLXjMzwQ.mjs → audit-CMc_ydRr.mjs} +1 -1
  5. package/dist/{build-D6FfNA8m.cjs → build-Dh61OnDW.cjs} +1 -1
  6. package/dist/{build-D_7SvwTh.mjs → build-WmZDi-TG.mjs} +1 -1
  7. package/dist/client/index.cjs +37 -3
  8. package/dist/client/index.d.cts +2 -2
  9. package/dist/client/index.d.ts +2 -2
  10. package/dist/client/index.js +36 -3
  11. package/dist/client/primitives.d.cts +2 -2
  12. package/dist/client/primitives.d.ts +2 -2
  13. package/dist/client/router.d.cts +1 -1
  14. package/dist/client/router.d.ts +1 -1
  15. package/dist/client/theme/reset.css +31 -13
  16. package/dist/config-CrsQJHQz.cjs +7 -0
  17. package/dist/config-DC0nMMk7.mjs +7 -0
  18. package/dist/{config-jJh8WYJI.cjs → config-PLvresCv.cjs} +1 -1
  19. package/dist/{dev-CwOyh-wP.mjs → dev-BObyQM9q.mjs} +1 -1
  20. package/dist/{dev-B9l7fVoQ.cjs → dev-wKVrEH6o.cjs} +1 -1
  21. package/dist/{doctor-C7whl4ED.cjs → doctor-DMECtdK6.cjs} +1 -1
  22. package/dist/{doctor-B1_YL0Wt.cjs → doctor-FuFY1jBz.cjs} +1 -1
  23. package/dist/{doctor-DmQnml2k.mjs → doctor-i8Qmd8DJ.mjs} +1 -1
  24. package/dist/{index-C56bL-A-.d.cts → index-CSiMUBhC.d.cts} +7 -1
  25. package/dist/{index-Cu9H6CRa.d.ts → index-Cg3TmXIZ.d.ts} +7 -1
  26. package/dist/{index-CPUUKzxD.d.cts → index-CgWkOCCn.d.cts} +82 -6
  27. package/dist/{index-Ci4kfOHF.d.ts → index-CuNSD3E2.d.ts} +82 -6
  28. package/dist/{native-Kre2T5eS.cjs → native-nLA4Jr0T.cjs} +1 -1
  29. package/dist/node/cli-entry.cjs +1 -1
  30. package/dist/node/cli-entry.mjs +1 -1
  31. package/dist/node/highlight.cjs +6 -0
  32. package/dist/node/highlight.d.cts +5 -0
  33. package/dist/node/highlight.d.mts +5 -0
  34. package/dist/node/highlight.mjs +6 -0
  35. package/dist/node/index.cjs +1 -1
  36. package/dist/node/index.d.cts +37 -3
  37. package/dist/node/index.d.mts +38 -4
  38. package/dist/node/index.mjs +1 -1
  39. package/dist/node/mdx/shiki-adapter.cjs +1 -1
  40. package/dist/node/mdx/shiki-adapter.d.cts +48 -32
  41. package/dist/node/mdx/shiki-adapter.d.mts +48 -32
  42. package/dist/node/mdx/shiki-adapter.mjs +1 -1
  43. package/dist/node-B4GvEOqF.cjs +23 -0
  44. package/dist/node-DwgtnlGU.mjs +23 -0
  45. package/dist/{package-5EsGUTVl.mjs → package-DWYDpDWO.mjs} +1 -1
  46. package/dist/package-xYC9zF1o.cjs +6 -0
  47. package/dist/{parser-CGMY2lJ7.mjs → parser-CD8Oo8qh.mjs} +1 -1
  48. package/dist/{parser-BqTOsEUa.cjs → parser-vPaKvzLp.cjs} +1 -1
  49. package/dist/plugin-CxlOHnaa.cjs +69 -0
  50. package/dist/plugin-VpWRKnmN.mjs +69 -0
  51. package/dist/{plugin-context-wqHNSZum.mjs → plugin-context-BKK-nfOd.mjs} +1 -1
  52. package/dist/{plugin-context-C-l90hFt.cjs → plugin-context-BxF88sW4.cjs} +1 -1
  53. package/dist/{plugin-lifecycle-BAKNKOxd.cjs → plugin-lifecycle-mhRaVBY8.cjs} +1 -1
  54. package/dist/registry-BbB6NqSv.d.cts +44 -0
  55. package/dist/registry-CHh8A5as.mjs +6 -0
  56. package/dist/registry-DLJIooEu.cjs +6 -0
  57. package/dist/registry-sJqDv0kE.d.mts +44 -0
  58. package/dist/{resolve-B7vWOd8R.cjs → resolve-BelytNYR.cjs} +1 -1
  59. package/dist/{resolve-C2kKnk_5.mjs → resolve-C5rT6B21.mjs} +1 -1
  60. package/dist/{routes-U9L8psZ9.cjs → routes-C0kb4ue6.cjs} +1 -1
  61. package/dist/{routes-C2nPecwu.cjs → routes-C3_w9fLX.cjs} +1 -1
  62. package/dist/{routes-BL4y79tb.mjs → routes-C4wrLWwu.mjs} +1 -1
  63. package/dist/server/index.cjs +1 -1
  64. package/dist/server/index.d.mts +1 -1
  65. package/dist/server/index.mjs +1 -1
  66. package/dist/{config-BoRlz0Ca.d.mts → types-Db6zToZH.d.mts} +83 -32
  67. package/dist/{config-CTsX_tGM.d.cts → types-o7iZ2BAR.d.cts} +84 -33
  68. package/dist/virtual-modules-XBiJoTsp.mjs +39 -0
  69. package/dist/virtual-modules-hndVivLR.cjs +39 -0
  70. package/package.json +10 -5
  71. package/src/shared/types.ts +92 -1
  72. package/dist/config-Ceib-AOH.cjs +0 -7
  73. package/dist/config-DGLQsy7y.mjs +0 -7
  74. package/dist/node-BFNCsPs3.mjs +0 -23
  75. package/dist/node-TpmWEqXM.cjs +0 -23
  76. package/dist/package-Ca2WSiy2.cjs +0 -6
  77. package/dist/plugin-CUmUZOLD.mjs +0 -69
  78. package/dist/plugin-Ds3RLYpy.cjs +0 -69
  79. package/dist/virtual-modules-Ca5tHk1X.cjs +0 -30
  80. package/dist/virtual-modules-Dlgt1fP0.mjs +0 -30
  81. /package/dist/{config-files-BYHDOrKn.mjs → config-files-DfwZ3Wot.mjs} +0 -0
  82. /package/dist/{config-files-D9cdBMl2.cjs → config-files-ph2ZtHWl.cjs} +0 -0
  83. /package/dist/{csp-C4LmN1ko.cjs → csp-BiGAG8aF.cjs} +0 -0
  84. /package/dist/{csp-D6JEOqKh.mjs → csp-D0BOH8ae.mjs} +0 -0
  85. /package/dist/{generator-BlW45ST7.cjs → generator-BCrZL53x.cjs} +0 -0
  86. /package/dist/{generator-BwknNejd.mjs → generator-CFukoGa0.mjs} +0 -0
  87. /package/dist/{handler-CDEoKARD.cjs → handler-Ch-Q9NAB.cjs} +0 -0
  88. /package/dist/{handler-D7UyZlPm.mjs → handler-Lex5DbvG.mjs} +0 -0
  89. /package/dist/{index-lFoyzCXy.d.mts → index-HAwIo4nZ.d.mts} +0 -0
  90. /package/dist/{native-BNCY7PRF.cjs → native-BOet8hpE.cjs} +0 -0
  91. /package/dist/{native-Di9Fnfrv.mjs → native-BYKMke79.mjs} +0 -0
  92. /package/dist/{resolve-YdTrt_FG.mjs → resolve-C8AFoOQL.mjs} +0 -0
  93. /package/dist/{resolve-It1Iug83.cjs → resolve-C9jGArE_.cjs} +0 -0
  94. /package/dist/{types-generator-DG1GX1EZ.mjs → types-generator-BtZ6-ZKx.mjs} +0 -0
  95. /package/dist/{types-generator-DDSA93P3.cjs → types-generator-C83Iy6X5.cjs} +0 -0
  96. /package/dist/{update-check-QnrVR3q1.mjs → update-check-BXD1atVv.mjs} +0 -0
  97. /package/dist/{update-check-BKqmYfwT.cjs → update-check-DFQZyoSU.cjs} +0 -0
@@ -4,4 +4,4 @@
4
4
  * Copyright (c) 2026 Jesus Alcala
5
5
  * Licensed under the MIT License.
6
6
  */
7
- const e=require(`../chunk-D1Md3oWO.cjs`);let t=require(`node:path`);t=e.r(t);let n=require(`node:fs`);n=e.r(n);let r=require(`node:fs/promises`);r=e.r(r);let i=require(`node:module`),a=require(`cac`);a=e.r(a);function o(e){let r=e;for(;r&&r!==t.default.dirname(r);){if(n.default.existsSync(t.default.join(r,`.git`))||n.default.existsSync(t.default.join(r,`pnpm-workspace.yaml`)))return r;r=t.default.dirname(r)}r=e;let i=e;for(;r&&r!==t.default.dirname(r);)n.default.existsSync(t.default.join(r,`package.json`))&&(i=r),r=t.default.dirname(r);return i}let s=o(process.cwd());function c(e){if(!e)return;let n;if(typeof e==`string`)n=e;else if(e instanceof URL){if(e.protocol!==`file:`)return;n=e.pathname}else if(Buffer.isBuffer(e))n=e.toString();else return;let r=t.default.resolve(s,n),i=t.default.relative(s,r),a=i.startsWith(`..`)||t.default.isAbsolute(i),o=r.split(t.default.sep),c=o.some(e=>e.startsWith(`.env`)),l=o.some((e,t)=>{if(e===`node_modules`){let e=o[t+1];return!e||!e.startsWith(`.`)}return!1});if(a||c||l)throw Error(`[Boltdocs Security] Write/delete operation blocked on path: "${r}". Modifications are restricted to the project root, and cannot access .env or non-cache node_modules folders.`)}function l(e){return e==null?!1:typeof e==`number`?e!==0:typeof e==`string`?e.includes(`w`)||e.includes(`a`)||e.includes(`+`):!0}function u(){let e=n.default.writeFile;n.default.writeFile=((t,...r)=>{try{c(t)}catch(e){let t=r[r.length-1];if(typeof t==`function`){process.nextTick(()=>t(e));return}throw e}return e.call(n.default,t,...r)});let t=n.default.writeFileSync;n.default.writeFileSync=(e,...r)=>(c(e),t.call(n.default,e,...r));let i=n.default.rm;n.default.rm=((e,...t)=>{try{c(e)}catch(e){let n=t[t.length-1];if(typeof n==`function`){process.nextTick(()=>n(e));return}throw e}return i.call(n.default,e,...t)});let a=n.default.rmSync;n.default.rmSync=(e,...t)=>(c(e),a.call(n.default,e,...t));let o=n.default.unlink;n.default.unlink=((e,...t)=>{try{c(e)}catch(e){let n=t[t.length-1];if(typeof n==`function`){process.nextTick(()=>n(e));return}throw e}return o.call(n.default,e,...t)});let s=n.default.unlinkSync;n.default.unlinkSync=(e,...t)=>(c(e),s.call(n.default,e,...t));let u=n.default.mkdir;n.default.mkdir=((e,...t)=>{try{c(e)}catch(e){let n=t[t.length-1];if(typeof n==`function`){process.nextTick(()=>n(e));return}throw e}return u.call(n.default,e,...t)});let d=n.default.mkdirSync;n.default.mkdirSync=(e,...t)=>(c(e),d.call(n.default,e,...t));let f=n.default.rmdir;n.default.rmdir=((e,...t)=>{try{c(e)}catch(e){let n=t[t.length-1];if(typeof n==`function`){process.nextTick(()=>n(e));return}throw e}return f.call(n.default,e,...t)});let p=n.default.rmdirSync;n.default.rmdirSync=(e,...t)=>(c(e),p.call(n.default,e,...t));let m=n.default.appendFile;n.default.appendFile=((e,...t)=>{try{c(e)}catch(e){let n=t[t.length-1];if(typeof n==`function`){process.nextTick(()=>n(e));return}throw e}return m.call(n.default,e,...t)});let h=n.default.appendFileSync;n.default.appendFileSync=(e,...t)=>(c(e),h.call(n.default,e,...t));let g=n.default.copyFile;n.default.copyFile=((e,t,...r)=>{try{c(e),c(t)}catch(e){let t=r[r.length-1];if(typeof t==`function`){process.nextTick(()=>t(e));return}throw e}return g.call(n.default,e,t,...r)});let _=n.default.copyFileSync;n.default.copyFileSync=(e,t,...r)=>(c(e),c(t),_.call(n.default,e,t,...r));let v=n.default.rename;n.default.rename=((e,t,...r)=>{try{c(e),c(t)}catch(e){let t=r[r.length-1];if(typeof t==`function`){process.nextTick(()=>t(e));return}throw e}return v.call(n.default,e,t,...r)});let y=n.default.renameSync;n.default.renameSync=(e,t,...r)=>(c(e),c(t),y.call(n.default,e,t,...r));let b=n.default.createWriteStream;n.default.createWriteStream=(e,...t)=>(c(e),b.call(n.default,e,...t));let x=n.default.open;n.default.open=((e,t,...r)=>{if(l(typeof t==`function`?void 0:t))try{c(e)}catch(e){let n=r[r.length-1],i=typeof t==`function`?t:typeof n==`function`?n:void 0;if(i){process.nextTick(()=>i(e));return}throw e}return x.call(n.default,e,t,...r)});let S=n.default.openSync;n.default.openSync=(e,t,...r)=>(l(t)&&c(e),S.call(n.default,e,t,...r));let C=e=>{if(!e)return;let t=e.writeFile;t&&(e.writeFile=async(n,...r)=>(c(n),t.call(e,n,...r)));let n=e.rm;n&&(e.rm=async(t,...r)=>(c(t),n.call(e,t,...r)));let r=e.mkdir;r&&(e.mkdir=async(t,...n)=>(c(t),r.call(e,t,...n)));let i=e.rmdir;i&&(e.rmdir=async(t,...n)=>(c(t),i.call(e,t,...n)));let a=e.unlink;a&&(e.unlink=async(t,...n)=>(c(t),a.call(e,t,...n)));let o=e.appendFile;o&&(e.appendFile=async(t,...n)=>(c(t),o.call(e,t,...n)));let s=e.copyFile;s&&(e.copyFile=async(t,n,...r)=>(c(t),c(n),s.call(e,t,n,...r)));let u=e.rename;u&&(e.rename=async(t,n,...r)=>(c(t),c(n),u.call(e,t,n,...r)));let d=e.open;d&&(e.open=async(t,n,...r)=>(l(n)&&c(t),d.call(e,t,n,...r)))};C(n.default.promises),C(r.default)}const{emitWarning:d}=process;process.emitWarning=(e,...t)=>{let n=e?.code;if(!(e&&typeof e==`object`&&n===`DEP0205`)&&!(typeof e==`string`&&t.includes(`DEP0205`)))return Reflect.apply(d,process,[e,...t])},u();const f=[`theme`,`dev`].join(`:`);let p=!1;async function m(){if(p)return;let{configure:e}=await import(`@bdocs/dui`);e({prefix:`boltdocs`}),p=!0}const h=(0,a.default)(`boltdocs`);h.command(`dev [root]`,`Start development server`).option(`--port <port>`,`Port to listen on`).option(`--host [host]`,`Host to bind to`).option(`--force`,`Force Vite to re-optimize dependencies`).action(async(...e)=>{await m();let{devAction:t}=await Promise.resolve().then(()=>require(`../dev-B9l7fVoQ.cjs`));return t(...e)}),h.command(`[root]`,`Start development server`).option(`--port <port>`,`Port to listen on`).option(`--host [host]`,`Host to bind to`).option(`--force`,`Force Vite to re-optimize dependencies`).action(async(e=process.cwd(),t)=>{if(e===f)throw Error(`Unknown command: ${f}`);await m();let{devAction:n}=await Promise.resolve().then(()=>require(`../dev-B9l7fVoQ.cjs`));return n(e,t)}),h.command(`build [root]`,`Build for production`).action(async(...e)=>{await m();let{buildAction:t}=await Promise.resolve().then(()=>require(`../build-D6FfNA8m.cjs`));return t(...e)}),h.command(`preview [root]`,`Preview production build`).option(`--port <port>`,`Port to listen on`).option(`--host [host]`,`Host to bind to`).action(async(...e)=>{await m();let{previewAction:t}=await Promise.resolve().then(()=>require(`../build-D6FfNA8m.cjs`));return t(...e)}),h.command(`audit [root]`,`Audit configured plugins for security warnings`).action(async(...e)=>{let{auditAction:t}=await Promise.resolve().then(()=>require(`../audit-COgjnQ5n.cjs`));return t(...e)}),h.command(`doctor [root]`,`Check the health of your documentation`).option(`--fix`,`Automatically fix broken internal links and sync translations`).option(`--check-external`,`Verify external links (slower)`).option(`--init`,`Initialize doctor.json with default configuration`).option(`--budget`,`Check build performance against configured budgets`).action(async(e,t)=>{await m();let{doctorAction:n}=await Promise.resolve().then(()=>require(`../doctor-B1_YL0Wt.cjs`));await n(e,t)}),h.command(`generate-changelog <file>`,`Generate changelog documentation from CHANGELOG.md`).option(`-o, --output <path>`,`Output folder (default: docs/changelog)`,{default:`docs/changelog`}).option(`-t, --title <text>`,`Title for changelog pages`,{default:`Changelog`}).option(`--infer-tab`,`Infer tab from folder name (default: true)`,{default:!0}).option(`-l, --limit <number>`,`Limit number of versions to generate`).option(`--type <"major"|"minor"|"patch">`,`Filter by version type (major, minor, or patch)`).action(async(e,t)=>{await m();let{generateChangelog:n}=await Promise.resolve().then(()=>require(`../generator-BlW45ST7.cjs`));await n(e,{output:t.output,title:t.title,inferTab:t.inferTab,limit:t.limit?parseInt(String(t.limit),10):void 0,type:t.type})});const g=(0,i.createRequire)(require(`url`).pathToFileURL(__filename).href)(`../../package.json`);h.version(g.version),h.parse();
7
+ const e=require(`../chunk-D1Md3oWO.cjs`);let t=require(`node:path`);t=e.r(t);let n=require(`node:fs`);n=e.r(n);let r=require(`node:fs/promises`);r=e.r(r);let i=require(`node:module`),a=require(`cac`);a=e.r(a);function o(e){let r=e;for(;r&&r!==t.default.dirname(r);){if(n.default.existsSync(t.default.join(r,`.git`))||n.default.existsSync(t.default.join(r,`pnpm-workspace.yaml`)))return r;r=t.default.dirname(r)}r=e;let i=e;for(;r&&r!==t.default.dirname(r);)n.default.existsSync(t.default.join(r,`package.json`))&&(i=r),r=t.default.dirname(r);return i}let s=o(process.cwd());function c(e){if(!e)return;let n;if(typeof e==`string`)n=e;else if(e instanceof URL){if(e.protocol!==`file:`)return;n=e.pathname}else if(Buffer.isBuffer(e))n=e.toString();else return;let r=t.default.resolve(s,n),i=t.default.relative(s,r),a=i.startsWith(`..`)||t.default.isAbsolute(i),o=r.split(t.default.sep),c=o.some(e=>e.startsWith(`.env`)),l=o.some((e,t)=>{if(e===`node_modules`){let e=o[t+1];return!e||!e.startsWith(`.`)}return!1});if(a||c||l)throw Error(`[Boltdocs Security] Write/delete operation blocked on path: "${r}". Modifications are restricted to the project root, and cannot access .env or non-cache node_modules folders.`)}function l(e){return e==null?!1:typeof e==`number`?e!==0:typeof e==`string`?e.includes(`w`)||e.includes(`a`)||e.includes(`+`):!0}function u(){let e=n.default.writeFile;n.default.writeFile=((t,...r)=>{try{c(t)}catch(e){let t=r[r.length-1];if(typeof t==`function`){process.nextTick(()=>t(e));return}throw e}return e.call(n.default,t,...r)});let t=n.default.writeFileSync;n.default.writeFileSync=(e,...r)=>(c(e),t.call(n.default,e,...r));let i=n.default.rm;n.default.rm=((e,...t)=>{try{c(e)}catch(e){let n=t[t.length-1];if(typeof n==`function`){process.nextTick(()=>n(e));return}throw e}return i.call(n.default,e,...t)});let a=n.default.rmSync;n.default.rmSync=(e,...t)=>(c(e),a.call(n.default,e,...t));let o=n.default.unlink;n.default.unlink=((e,...t)=>{try{c(e)}catch(e){let n=t[t.length-1];if(typeof n==`function`){process.nextTick(()=>n(e));return}throw e}return o.call(n.default,e,...t)});let s=n.default.unlinkSync;n.default.unlinkSync=(e,...t)=>(c(e),s.call(n.default,e,...t));let u=n.default.mkdir;n.default.mkdir=((e,...t)=>{try{c(e)}catch(e){let n=t[t.length-1];if(typeof n==`function`){process.nextTick(()=>n(e));return}throw e}return u.call(n.default,e,...t)});let d=n.default.mkdirSync;n.default.mkdirSync=(e,...t)=>(c(e),d.call(n.default,e,...t));let f=n.default.rmdir;n.default.rmdir=((e,...t)=>{try{c(e)}catch(e){let n=t[t.length-1];if(typeof n==`function`){process.nextTick(()=>n(e));return}throw e}return f.call(n.default,e,...t)});let p=n.default.rmdirSync;n.default.rmdirSync=(e,...t)=>(c(e),p.call(n.default,e,...t));let m=n.default.appendFile;n.default.appendFile=((e,...t)=>{try{c(e)}catch(e){let n=t[t.length-1];if(typeof n==`function`){process.nextTick(()=>n(e));return}throw e}return m.call(n.default,e,...t)});let h=n.default.appendFileSync;n.default.appendFileSync=(e,...t)=>(c(e),h.call(n.default,e,...t));let g=n.default.copyFile;n.default.copyFile=((e,t,...r)=>{try{c(e),c(t)}catch(e){let t=r[r.length-1];if(typeof t==`function`){process.nextTick(()=>t(e));return}throw e}return g.call(n.default,e,t,...r)});let _=n.default.copyFileSync;n.default.copyFileSync=(e,t,...r)=>(c(e),c(t),_.call(n.default,e,t,...r));let v=n.default.rename;n.default.rename=((e,t,...r)=>{try{c(e),c(t)}catch(e){let t=r[r.length-1];if(typeof t==`function`){process.nextTick(()=>t(e));return}throw e}return v.call(n.default,e,t,...r)});let y=n.default.renameSync;n.default.renameSync=(e,t,...r)=>(c(e),c(t),y.call(n.default,e,t,...r));let b=n.default.createWriteStream;n.default.createWriteStream=(e,...t)=>(c(e),b.call(n.default,e,...t));let x=n.default.open;n.default.open=((e,t,...r)=>{if(l(typeof t==`function`?void 0:t))try{c(e)}catch(e){let n=r[r.length-1],i=typeof t==`function`?t:typeof n==`function`?n:void 0;if(i){process.nextTick(()=>i(e));return}throw e}return x.call(n.default,e,t,...r)});let S=n.default.openSync;n.default.openSync=(e,t,...r)=>(l(t)&&c(e),S.call(n.default,e,t,...r));let C=e=>{if(!e)return;let t=e.writeFile;t&&(e.writeFile=async(n,...r)=>(c(n),t.call(e,n,...r)));let n=e.rm;n&&(e.rm=async(t,...r)=>(c(t),n.call(e,t,...r)));let r=e.mkdir;r&&(e.mkdir=async(t,...n)=>(c(t),r.call(e,t,...n)));let i=e.rmdir;i&&(e.rmdir=async(t,...n)=>(c(t),i.call(e,t,...n)));let a=e.unlink;a&&(e.unlink=async(t,...n)=>(c(t),a.call(e,t,...n)));let o=e.appendFile;o&&(e.appendFile=async(t,...n)=>(c(t),o.call(e,t,...n)));let s=e.copyFile;s&&(e.copyFile=async(t,n,...r)=>(c(t),c(n),s.call(e,t,n,...r)));let u=e.rename;u&&(e.rename=async(t,n,...r)=>(c(t),c(n),u.call(e,t,n,...r)));let d=e.open;d&&(e.open=async(t,n,...r)=>(l(n)&&c(t),d.call(e,t,n,...r)))};C(n.default.promises),C(r.default)}const{emitWarning:d}=process;process.emitWarning=(e,...t)=>{let n=e?.code;if(!(e&&typeof e==`object`&&n===`DEP0205`)&&!(typeof e==`string`&&t.includes(`DEP0205`)))return Reflect.apply(d,process,[e,...t])},u();try{Promise.resolve().then(()=>import(`node:module`)).then(({enableCompileCache:e})=>{typeof e==`function`&&e()}).catch(()=>{})}catch{}const f=[`theme`,`dev`].join(`:`);let p=!1;async function m(){if(p)return;let{configure:e}=await import(`@bdocs/dui`);e({prefix:`boltdocs`}),p=!0}const h=(0,a.default)(`boltdocs`);h.command(`dev [root]`,`Start development server`).option(`--port <port>`,`Port to listen on`).option(`--host [host]`,`Host to bind to`).option(`--force`,`Force Vite to re-optimize dependencies`).action(async(...e)=>{await m();let{devAction:t}=await Promise.resolve().then(()=>require(`../dev-wKVrEH6o.cjs`));return t(...e)}),h.command(`[root]`,`Start development server`).option(`--port <port>`,`Port to listen on`).option(`--host [host]`,`Host to bind to`).option(`--force`,`Force Vite to re-optimize dependencies`).action(async(e=process.cwd(),t)=>{if(e===f)throw Error(`Unknown command: ${f}`);await m();let{devAction:n}=await Promise.resolve().then(()=>require(`../dev-wKVrEH6o.cjs`));return n(e,t)}),h.command(`build [root]`,`Build for production`).action(async(...e)=>{await m();let{buildAction:t}=await Promise.resolve().then(()=>require(`../build-Dh61OnDW.cjs`));return t(...e)}),h.command(`preview [root]`,`Preview production build`).option(`--port <port>`,`Port to listen on`).option(`--host [host]`,`Host to bind to`).action(async(...e)=>{await m();let{previewAction:t}=await Promise.resolve().then(()=>require(`../build-Dh61OnDW.cjs`));return t(...e)}),h.command(`audit [root]`,`Audit configured plugins for security warnings`).action(async(...e)=>{let{auditAction:t}=await Promise.resolve().then(()=>require(`../audit-CHkGiV3c.cjs`));return t(...e)}),h.command(`doctor [root]`,`Check the health of your documentation`).option(`--fix`,`Automatically fix broken internal links and sync translations`).option(`--check-external`,`Verify external links (slower)`).option(`--init`,`Initialize doctor.json with default configuration`).option(`--budget`,`Check build performance against configured budgets`).action(async(e,t)=>{await m();let{doctorAction:n}=await Promise.resolve().then(()=>require(`../doctor-FuFY1jBz.cjs`));await n(e,t)}),h.command(`generate-changelog <file>`,`Generate changelog documentation from CHANGELOG.md`).option(`-o, --output <path>`,`Output folder (default: docs/changelog)`,{default:`docs/changelog`}).option(`-t, --title <text>`,`Title for changelog pages`,{default:`Changelog`}).option(`--infer-tab`,`Infer tab from folder name (default: true)`,{default:!0}).option(`-l, --limit <number>`,`Limit number of versions to generate`).option(`--type <"major"|"minor"|"patch">`,`Filter by version type (major, minor, or patch)`).action(async(e,t)=>{await m();let{generateChangelog:n}=await Promise.resolve().then(()=>require(`../generator-BCrZL53x.cjs`));await n(e,{output:t.output,title:t.title,inferTab:t.inferTab,limit:t.limit?parseInt(String(t.limit),10):void 0,type:t.type})});const g=(0,i.createRequire)(require(`url`).pathToFileURL(__filename).href)(`../../package.json`);h.version(g.version),h.parse();
@@ -4,4 +4,4 @@
4
4
  * Copyright (c) 2026 Jesus Alcala
5
5
  * Licensed under the MIT License.
6
6
  */
7
- import{createRequire as e}from"node:module";import t from"node:path";import n from"node:fs";import r from"node:fs/promises";import i from"cac";function a(e){let r=e;for(;r&&r!==t.dirname(r);){if(n.existsSync(t.join(r,`.git`))||n.existsSync(t.join(r,`pnpm-workspace.yaml`)))return r;r=t.dirname(r)}r=e;let i=e;for(;r&&r!==t.dirname(r);)n.existsSync(t.join(r,`package.json`))&&(i=r),r=t.dirname(r);return i}let o=a(process.cwd());function s(e){if(!e)return;let n;if(typeof e==`string`)n=e;else if(e instanceof URL){if(e.protocol!==`file:`)return;n=e.pathname}else if(Buffer.isBuffer(e))n=e.toString();else return;let r=t.resolve(o,n),i=t.relative(o,r),a=i.startsWith(`..`)||t.isAbsolute(i),s=r.split(t.sep),c=s.some(e=>e.startsWith(`.env`)),l=s.some((e,t)=>{if(e===`node_modules`){let e=s[t+1];return!e||!e.startsWith(`.`)}return!1});if(a||c||l)throw Error(`[Boltdocs Security] Write/delete operation blocked on path: "${r}". Modifications are restricted to the project root, and cannot access .env or non-cache node_modules folders.`)}function c(e){return e==null?!1:typeof e==`number`?e!==0:typeof e==`string`?e.includes(`w`)||e.includes(`a`)||e.includes(`+`):!0}function l(){let e=n.writeFile;n.writeFile=((t,...r)=>{try{s(t)}catch(e){let t=r[r.length-1];if(typeof t==`function`){process.nextTick(()=>t(e));return}throw e}return e.call(n,t,...r)});let t=n.writeFileSync;n.writeFileSync=(e,...r)=>(s(e),t.call(n,e,...r));let i=n.rm;n.rm=((e,...t)=>{try{s(e)}catch(e){let n=t[t.length-1];if(typeof n==`function`){process.nextTick(()=>n(e));return}throw e}return i.call(n,e,...t)});let a=n.rmSync;n.rmSync=(e,...t)=>(s(e),a.call(n,e,...t));let o=n.unlink;n.unlink=((e,...t)=>{try{s(e)}catch(e){let n=t[t.length-1];if(typeof n==`function`){process.nextTick(()=>n(e));return}throw e}return o.call(n,e,...t)});let l=n.unlinkSync;n.unlinkSync=(e,...t)=>(s(e),l.call(n,e,...t));let u=n.mkdir;n.mkdir=((e,...t)=>{try{s(e)}catch(e){let n=t[t.length-1];if(typeof n==`function`){process.nextTick(()=>n(e));return}throw e}return u.call(n,e,...t)});let d=n.mkdirSync;n.mkdirSync=(e,...t)=>(s(e),d.call(n,e,...t));let f=n.rmdir;n.rmdir=((e,...t)=>{try{s(e)}catch(e){let n=t[t.length-1];if(typeof n==`function`){process.nextTick(()=>n(e));return}throw e}return f.call(n,e,...t)});let p=n.rmdirSync;n.rmdirSync=(e,...t)=>(s(e),p.call(n,e,...t));let m=n.appendFile;n.appendFile=((e,...t)=>{try{s(e)}catch(e){let n=t[t.length-1];if(typeof n==`function`){process.nextTick(()=>n(e));return}throw e}return m.call(n,e,...t)});let h=n.appendFileSync;n.appendFileSync=(e,...t)=>(s(e),h.call(n,e,...t));let g=n.copyFile;n.copyFile=((e,t,...r)=>{try{s(e),s(t)}catch(e){let t=r[r.length-1];if(typeof t==`function`){process.nextTick(()=>t(e));return}throw e}return g.call(n,e,t,...r)});let _=n.copyFileSync;n.copyFileSync=(e,t,...r)=>(s(e),s(t),_.call(n,e,t,...r));let v=n.rename;n.rename=((e,t,...r)=>{try{s(e),s(t)}catch(e){let t=r[r.length-1];if(typeof t==`function`){process.nextTick(()=>t(e));return}throw e}return v.call(n,e,t,...r)});let y=n.renameSync;n.renameSync=(e,t,...r)=>(s(e),s(t),y.call(n,e,t,...r));let b=n.createWriteStream;n.createWriteStream=(e,...t)=>(s(e),b.call(n,e,...t));let x=n.open;n.open=((e,t,...r)=>{if(c(typeof t==`function`?void 0:t))try{s(e)}catch(e){let n=r[r.length-1],i=typeof t==`function`?t:typeof n==`function`?n:void 0;if(i){process.nextTick(()=>i(e));return}throw e}return x.call(n,e,t,...r)});let S=n.openSync;n.openSync=(e,t,...r)=>(c(t)&&s(e),S.call(n,e,t,...r));let C=e=>{if(!e)return;let t=e.writeFile;t&&(e.writeFile=async(n,...r)=>(s(n),t.call(e,n,...r)));let n=e.rm;n&&(e.rm=async(t,...r)=>(s(t),n.call(e,t,...r)));let r=e.mkdir;r&&(e.mkdir=async(t,...n)=>(s(t),r.call(e,t,...n)));let i=e.rmdir;i&&(e.rmdir=async(t,...n)=>(s(t),i.call(e,t,...n)));let a=e.unlink;a&&(e.unlink=async(t,...n)=>(s(t),a.call(e,t,...n)));let o=e.appendFile;o&&(e.appendFile=async(t,...n)=>(s(t),o.call(e,t,...n)));let l=e.copyFile;l&&(e.copyFile=async(t,n,...r)=>(s(t),s(n),l.call(e,t,n,...r)));let u=e.rename;u&&(e.rename=async(t,n,...r)=>(s(t),s(n),u.call(e,t,n,...r)));let d=e.open;d&&(e.open=async(t,n,...r)=>(c(n)&&s(t),d.call(e,t,n,...r)))};C(n.promises),C(r)}const{emitWarning:u}=process;process.emitWarning=(e,...t)=>{let n=e?.code;if(!(e&&typeof e==`object`&&n===`DEP0205`)&&!(typeof e==`string`&&t.includes(`DEP0205`)))return Reflect.apply(u,process,[e,...t])},l();const d=[`theme`,`dev`].join(`:`);let f=!1;async function p(){if(f)return;let{configure:e}=await import(`@bdocs/dui`);e({prefix:`boltdocs`}),f=!0}const m=i(`boltdocs`);m.command(`dev [root]`,`Start development server`).option(`--port <port>`,`Port to listen on`).option(`--host [host]`,`Host to bind to`).option(`--force`,`Force Vite to re-optimize dependencies`).action(async(...e)=>{await p();let{devAction:t}=await import(`../dev-CwOyh-wP.mjs`);return t(...e)}),m.command(`[root]`,`Start development server`).option(`--port <port>`,`Port to listen on`).option(`--host [host]`,`Host to bind to`).option(`--force`,`Force Vite to re-optimize dependencies`).action(async(e=process.cwd(),t)=>{if(e===d)throw Error(`Unknown command: ${d}`);await p();let{devAction:n}=await import(`../dev-CwOyh-wP.mjs`);return n(e,t)}),m.command(`build [root]`,`Build for production`).action(async(...e)=>{await p();let{buildAction:t}=await import(`../build-D_7SvwTh.mjs`);return t(...e)}),m.command(`preview [root]`,`Preview production build`).option(`--port <port>`,`Port to listen on`).option(`--host [host]`,`Host to bind to`).action(async(...e)=>{await p();let{previewAction:t}=await import(`../build-D_7SvwTh.mjs`);return t(...e)}),m.command(`audit [root]`,`Audit configured plugins for security warnings`).action(async(...e)=>{let{auditAction:t}=await import(`../audit-CLXjMzwQ.mjs`);return t(...e)}),m.command(`doctor [root]`,`Check the health of your documentation`).option(`--fix`,`Automatically fix broken internal links and sync translations`).option(`--check-external`,`Verify external links (slower)`).option(`--init`,`Initialize doctor.json with default configuration`).option(`--budget`,`Check build performance against configured budgets`).action(async(e,t)=>{await p();let{doctorAction:n}=await import(`../doctor-DmQnml2k.mjs`).then(e=>e.t);await n(e,t)}),m.command(`generate-changelog <file>`,`Generate changelog documentation from CHANGELOG.md`).option(`-o, --output <path>`,`Output folder (default: docs/changelog)`,{default:`docs/changelog`}).option(`-t, --title <text>`,`Title for changelog pages`,{default:`Changelog`}).option(`--infer-tab`,`Infer tab from folder name (default: true)`,{default:!0}).option(`-l, --limit <number>`,`Limit number of versions to generate`).option(`--type <"major"|"minor"|"patch">`,`Filter by version type (major, minor, or patch)`).action(async(e,t)=>{await p();let{generateChangelog:n}=await import(`../generator-BwknNejd.mjs`);await n(e,{output:t.output,title:t.title,inferTab:t.inferTab,limit:t.limit?parseInt(String(t.limit),10):void 0,type:t.type})});const h=e(import.meta.url)(`../../package.json`);m.version(h.version),m.parse();export{};
7
+ import{createRequire as e}from"node:module";import t from"node:path";import n from"node:fs";import r from"node:fs/promises";import i from"cac";function a(e){let r=e;for(;r&&r!==t.dirname(r);){if(n.existsSync(t.join(r,`.git`))||n.existsSync(t.join(r,`pnpm-workspace.yaml`)))return r;r=t.dirname(r)}r=e;let i=e;for(;r&&r!==t.dirname(r);)n.existsSync(t.join(r,`package.json`))&&(i=r),r=t.dirname(r);return i}let o=a(process.cwd());function s(e){if(!e)return;let n;if(typeof e==`string`)n=e;else if(e instanceof URL){if(e.protocol!==`file:`)return;n=e.pathname}else if(Buffer.isBuffer(e))n=e.toString();else return;let r=t.resolve(o,n),i=t.relative(o,r),a=i.startsWith(`..`)||t.isAbsolute(i),s=r.split(t.sep),c=s.some(e=>e.startsWith(`.env`)),l=s.some((e,t)=>{if(e===`node_modules`){let e=s[t+1];return!e||!e.startsWith(`.`)}return!1});if(a||c||l)throw Error(`[Boltdocs Security] Write/delete operation blocked on path: "${r}". Modifications are restricted to the project root, and cannot access .env or non-cache node_modules folders.`)}function c(e){return e==null?!1:typeof e==`number`?e!==0:typeof e==`string`?e.includes(`w`)||e.includes(`a`)||e.includes(`+`):!0}function l(){let e=n.writeFile;n.writeFile=((t,...r)=>{try{s(t)}catch(e){let t=r[r.length-1];if(typeof t==`function`){process.nextTick(()=>t(e));return}throw e}return e.call(n,t,...r)});let t=n.writeFileSync;n.writeFileSync=(e,...r)=>(s(e),t.call(n,e,...r));let i=n.rm;n.rm=((e,...t)=>{try{s(e)}catch(e){let n=t[t.length-1];if(typeof n==`function`){process.nextTick(()=>n(e));return}throw e}return i.call(n,e,...t)});let a=n.rmSync;n.rmSync=(e,...t)=>(s(e),a.call(n,e,...t));let o=n.unlink;n.unlink=((e,...t)=>{try{s(e)}catch(e){let n=t[t.length-1];if(typeof n==`function`){process.nextTick(()=>n(e));return}throw e}return o.call(n,e,...t)});let l=n.unlinkSync;n.unlinkSync=(e,...t)=>(s(e),l.call(n,e,...t));let u=n.mkdir;n.mkdir=((e,...t)=>{try{s(e)}catch(e){let n=t[t.length-1];if(typeof n==`function`){process.nextTick(()=>n(e));return}throw e}return u.call(n,e,...t)});let d=n.mkdirSync;n.mkdirSync=(e,...t)=>(s(e),d.call(n,e,...t));let f=n.rmdir;n.rmdir=((e,...t)=>{try{s(e)}catch(e){let n=t[t.length-1];if(typeof n==`function`){process.nextTick(()=>n(e));return}throw e}return f.call(n,e,...t)});let p=n.rmdirSync;n.rmdirSync=(e,...t)=>(s(e),p.call(n,e,...t));let m=n.appendFile;n.appendFile=((e,...t)=>{try{s(e)}catch(e){let n=t[t.length-1];if(typeof n==`function`){process.nextTick(()=>n(e));return}throw e}return m.call(n,e,...t)});let h=n.appendFileSync;n.appendFileSync=(e,...t)=>(s(e),h.call(n,e,...t));let g=n.copyFile;n.copyFile=((e,t,...r)=>{try{s(e),s(t)}catch(e){let t=r[r.length-1];if(typeof t==`function`){process.nextTick(()=>t(e));return}throw e}return g.call(n,e,t,...r)});let _=n.copyFileSync;n.copyFileSync=(e,t,...r)=>(s(e),s(t),_.call(n,e,t,...r));let v=n.rename;n.rename=((e,t,...r)=>{try{s(e),s(t)}catch(e){let t=r[r.length-1];if(typeof t==`function`){process.nextTick(()=>t(e));return}throw e}return v.call(n,e,t,...r)});let y=n.renameSync;n.renameSync=(e,t,...r)=>(s(e),s(t),y.call(n,e,t,...r));let b=n.createWriteStream;n.createWriteStream=(e,...t)=>(s(e),b.call(n,e,...t));let x=n.open;n.open=((e,t,...r)=>{if(c(typeof t==`function`?void 0:t))try{s(e)}catch(e){let n=r[r.length-1],i=typeof t==`function`?t:typeof n==`function`?n:void 0;if(i){process.nextTick(()=>i(e));return}throw e}return x.call(n,e,t,...r)});let S=n.openSync;n.openSync=(e,t,...r)=>(c(t)&&s(e),S.call(n,e,t,...r));let C=e=>{if(!e)return;let t=e.writeFile;t&&(e.writeFile=async(n,...r)=>(s(n),t.call(e,n,...r)));let n=e.rm;n&&(e.rm=async(t,...r)=>(s(t),n.call(e,t,...r)));let r=e.mkdir;r&&(e.mkdir=async(t,...n)=>(s(t),r.call(e,t,...n)));let i=e.rmdir;i&&(e.rmdir=async(t,...n)=>(s(t),i.call(e,t,...n)));let a=e.unlink;a&&(e.unlink=async(t,...n)=>(s(t),a.call(e,t,...n)));let o=e.appendFile;o&&(e.appendFile=async(t,...n)=>(s(t),o.call(e,t,...n)));let l=e.copyFile;l&&(e.copyFile=async(t,n,...r)=>(s(t),s(n),l.call(e,t,n,...r)));let u=e.rename;u&&(e.rename=async(t,n,...r)=>(s(t),s(n),u.call(e,t,n,...r)));let d=e.open;d&&(e.open=async(t,n,...r)=>(c(n)&&s(t),d.call(e,t,n,...r)))};C(n.promises),C(r)}const{emitWarning:u}=process;process.emitWarning=(e,...t)=>{let n=e?.code;if(!(e&&typeof e==`object`&&n===`DEP0205`)&&!(typeof e==`string`&&t.includes(`DEP0205`)))return Reflect.apply(u,process,[e,...t])},l();try{Promise.resolve().then(()=>import(`node:module`)).then(({enableCompileCache:e})=>{typeof e==`function`&&e()}).catch(()=>{})}catch{}const d=[`theme`,`dev`].join(`:`);let f=!1;async function p(){if(f)return;let{configure:e}=await import(`@bdocs/dui`);e({prefix:`boltdocs`}),f=!0}const m=i(`boltdocs`);m.command(`dev [root]`,`Start development server`).option(`--port <port>`,`Port to listen on`).option(`--host [host]`,`Host to bind to`).option(`--force`,`Force Vite to re-optimize dependencies`).action(async(...e)=>{await p();let{devAction:t}=await import(`../dev-BObyQM9q.mjs`);return t(...e)}),m.command(`[root]`,`Start development server`).option(`--port <port>`,`Port to listen on`).option(`--host [host]`,`Host to bind to`).option(`--force`,`Force Vite to re-optimize dependencies`).action(async(e=process.cwd(),t)=>{if(e===d)throw Error(`Unknown command: ${d}`);await p();let{devAction:n}=await import(`../dev-BObyQM9q.mjs`);return n(e,t)}),m.command(`build [root]`,`Build for production`).action(async(...e)=>{await p();let{buildAction:t}=await import(`../build-WmZDi-TG.mjs`);return t(...e)}),m.command(`preview [root]`,`Preview production build`).option(`--port <port>`,`Port to listen on`).option(`--host [host]`,`Host to bind to`).action(async(...e)=>{await p();let{previewAction:t}=await import(`../build-WmZDi-TG.mjs`);return t(...e)}),m.command(`audit [root]`,`Audit configured plugins for security warnings`).action(async(...e)=>{let{auditAction:t}=await import(`../audit-CMc_ydRr.mjs`);return t(...e)}),m.command(`doctor [root]`,`Check the health of your documentation`).option(`--fix`,`Automatically fix broken internal links and sync translations`).option(`--check-external`,`Verify external links (slower)`).option(`--init`,`Initialize doctor.json with default configuration`).option(`--budget`,`Check build performance against configured budgets`).action(async(e,t)=>{await p();let{doctorAction:n}=await import(`../doctor-i8Qmd8DJ.mjs`).then(e=>e.t);await n(e,t)}),m.command(`generate-changelog <file>`,`Generate changelog documentation from CHANGELOG.md`).option(`-o, --output <path>`,`Output folder (default: docs/changelog)`,{default:`docs/changelog`}).option(`-t, --title <text>`,`Title for changelog pages`,{default:`Changelog`}).option(`--infer-tab`,`Infer tab from folder name (default: true)`,{default:!0}).option(`-l, --limit <number>`,`Limit number of versions to generate`).option(`--type <"major"|"minor"|"patch">`,`Filter by version type (major, minor, or patch)`).action(async(e,t)=>{await p();let{generateChangelog:n}=await import(`../generator-CFukoGa0.mjs`);await n(e,{output:t.output,title:t.title,inferTab:t.inferTab,limit:t.limit?parseInt(String(t.limit),10):void 0,type:t.type})});const h=e(import.meta.url)(`../../package.json`);m.version(h.version),m.parse();export{};
@@ -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
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`../chunk-D1Md3oWO.cjs`);const e=require(`../registry-DLJIooEu.cjs`);let t=require(`@bdocs/unist-utils`);exports.BUILTIN_HIGHLIGHTERS=e.t,exports.DEFAULT_HIGHLIGHTER=e.n,exports.getCodeHighlighterAdapter=e.r,exports.getHighlighterNames=e.i,exports.isHighlighterRegistered=e.a,Object.defineProperty(exports,`normalizeCodeHighlightConfig`,{enumerable:!0,get:function(){return t.normalizeCodeHighlightConfig}}),exports.prewarmCodeHighlighting=e.o,exports.prewarmHighlighter=e.s,exports.registerHighlighter=e.c;
@@ -0,0 +1,5 @@
1
+
2
+ import { a as CodeHighlightConfig, c as CodeHighlighterRuntime, l as CodeTheme, o as CodeHighlighterAdapter, s as CodeHighlighterEngine } from "../types-o7iZ2BAR.cjs";
3
+ import { a as getHighlighterNames, c as prewarmHighlighter, i as getCodeHighlighterAdapter, l as registerHighlighter, n as DEFAULT_HIGHLIGHTER, o as isHighlighterRegistered, r as HighlighterFactory, s as prewarmCodeHighlighting, t as BUILTIN_HIGHLIGHTERS } from "../registry-BbB6NqSv.cjs";
4
+ import { normalizeCodeHighlightConfig } from "@bdocs/unist-utils";
5
+ export { BUILTIN_HIGHLIGHTERS, type CodeHighlightConfig, type CodeHighlighterAdapter, type CodeHighlighterEngine, type CodeHighlighterRuntime, type CodeTheme, DEFAULT_HIGHLIGHTER, type HighlighterFactory, getCodeHighlighterAdapter, getHighlighterNames, isHighlighterRegistered, normalizeCodeHighlightConfig, prewarmCodeHighlighting, prewarmHighlighter, registerHighlighter };
@@ -0,0 +1,5 @@
1
+
2
+ import { a as CodeHighlightConfig, c as CodeHighlighterRuntime, l as CodeTheme, o as CodeHighlighterAdapter, s as CodeHighlighterEngine } from "../types-Db6zToZH.mjs";
3
+ import { a as getHighlighterNames, c as prewarmHighlighter, i as getCodeHighlighterAdapter, l as registerHighlighter, n as DEFAULT_HIGHLIGHTER, o as isHighlighterRegistered, r as HighlighterFactory, s as prewarmCodeHighlighting, t as BUILTIN_HIGHLIGHTERS } from "../registry-sJqDv0kE.mjs";
4
+ import { normalizeCodeHighlightConfig } from "@bdocs/unist-utils";
5
+ export { BUILTIN_HIGHLIGHTERS, type CodeHighlightConfig, type CodeHighlighterAdapter, type CodeHighlighterEngine, type CodeHighlighterRuntime, type CodeTheme, DEFAULT_HIGHLIGHTER, type HighlighterFactory, getCodeHighlighterAdapter, getHighlighterNames, isHighlighterRegistered, normalizeCodeHighlightConfig, prewarmCodeHighlighting, prewarmHighlighter, registerHighlighter };
@@ -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{a as e,c as t,i as n,n as r,o as i,r as a,s as o,t as s}from"../registry-CHh8A5as.mjs";import{normalizeCodeHighlightConfig as c}from"@bdocs/unist-utils";export{s as BUILTIN_HIGHLIGHTERS,r as DEFAULT_HIGHLIGHTER,a as getCodeHighlighterAdapter,n as getHighlighterNames,e as isHighlighterRegistered,c as normalizeCodeHighlightConfig,i as prewarmCodeHighlighting,o as prewarmHighlighter,t as registerHighlighter};
@@ -3,4 +3,4 @@
3
3
  * Copyright (c) 2026 Jesus Alcala
4
4
  * Licensed under the MIT License.
5
5
  */
6
- Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require(`../node-TpmWEqXM.cjs`),t=require(`../utils-ej6_SjIZ.cjs`),n=require(`../plugin-context-C-l90hFt.cjs`),r=require(`./cache.cjs`),i=require(`../routes-U9L8psZ9.cjs`),a=require(`../config-Ceib-AOH.cjs`),o=require(`../handler-CDEoKARD.cjs`),s=require(`../adapters-Cp1Maurn.cjs`);exports.BoltdocsPluginStore=e.d,exports.PluginCompatibilityError=e.f,exports.PluginError=e.p,exports.PluginHookError=e.m,exports.PluginLifecycleManager=e.o,exports.PluginValidationError=e.h,exports.createArticleStructuredData=e.g,exports.createBreadcrumbStructuredData=e._,exports.createPlugin=e.i,exports.createStructuredData=e.v,exports.createViteConfig=e.n,exports.createWebSiteStructuredData=e.y,exports.default=e.t,exports.defineConfig=a.r,exports.definePlugin=e.a,exports.defineStructuredData=e.b,exports.flushCache=r.flushCache,exports.generateEntryCode=n.g,exports.generateRoutes=i.t,exports.handleAwsFeedback=s.t,exports.handleFeedback=o.t,exports.handleNetlifyFeedback=s.r,exports.handleVercelFeedback=s.i,exports.handleWebFeedback=s.n,exports.invalidateRouteCache=i.i,exports.normalizePath=t.u,exports.resolveConfig=a.t,exports.resolvePluginHook=e.s,exports.sanitizeFilename=t.f,exports.validatePlugins=e.u;var c=require(`@bdocs/unist-utils`);Object.keys(c).forEach(function(e){e!==`default`&&!Object.prototype.hasOwnProperty.call(exports,e)&&Object.defineProperty(exports,e,{enumerable:!0,get:function(){return c[e]}})});
6
+ Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}}),require(`../chunk-D1Md3oWO.cjs`);const e=require(`../node-B4GvEOqF.cjs`),t=require(`../utils-ej6_SjIZ.cjs`),n=require(`../plugin-context-BxF88sW4.cjs`),r=require(`./cache.cjs`),i=require(`../routes-C0kb4ue6.cjs`),a=require(`../config-CrsQJHQz.cjs`),o=require(`../registry-DLJIooEu.cjs`),s=require(`../handler-Ch-Q9NAB.cjs`),c=require(`../adapters-DwDTQoCG.cjs`);let l=require(`@bdocs/unist-utils`);exports.BUILTIN_HIGHLIGHTERS=o.t,exports.BoltdocsPluginStore=e.d,exports.DEFAULT_HIGHLIGHTER=o.n,exports.PluginCompatibilityError=e.f,exports.PluginError=e.p,exports.PluginHookError=e.m,exports.PluginLifecycleManager=e.o,exports.PluginValidationError=e.h,exports.createArticleStructuredData=e.g,exports.createBreadcrumbStructuredData=e._,exports.createPlugin=e.i,exports.createStructuredData=e.v,exports.createViteConfig=e.n,exports.createWebSiteStructuredData=e.y,exports.default=e.t,exports.defineConfig=a.r,exports.definePlugin=e.a,exports.defineStructuredData=e.b,exports.flushCache=r.flushCache,exports.generateEntryCode=n.g,exports.generateRoutes=i.t,exports.getCodeHighlighterAdapter=o.r,exports.getHighlighterNames=o.i,exports.handleAwsFeedback=c.t,exports.handleFeedback=s.t,exports.handleNetlifyFeedback=c.r,exports.handleVercelFeedback=c.i,exports.handleWebFeedback=c.n,exports.invalidateRouteCache=i.i,exports.isHighlighterRegistered=o.a,Object.defineProperty(exports,`normalizeCodeHighlightConfig`,{enumerable:!0,get:function(){return l.normalizeCodeHighlightConfig}}),exports.normalizePath=t.u,exports.prewarmCodeHighlighting=o.o,exports.prewarmHighlighter=o.s,exports.registerHighlighter=o.c,exports.registerPluginHighlighter=o.l,exports.resolveConfig=a.t,exports.resolvePluginHook=e.s,exports.sanitizeFilename=t.f,exports.validatePlugins=e.u,Object.keys(l).forEach(function(e){e!==`default`&&!Object.prototype.hasOwnProperty.call(exports,e)&&Object.defineProperty(exports,e,{enumerable:!0,get:function(){return l[e]}})});
@@ -1,12 +1,39 @@
1
1
 
2
2
  import { FileCache, flushCache } from "./cache.cjs";
3
3
  import { i as handleVercelFeedback, n as handleWebFeedback, r as handleNetlifyFeedback, t as handleAwsFeedback } from "../index-aWC0KjDF.cjs";
4
- import { C as StructuredData, _ as PluginServerMiddleware, a as BoltdocsThemeConfig, b as RegisteredVirtualModule, c as ExternalFileRoute, d as JsonLdValue, f as PluginContext, g as PluginMeta, h as PluginLogger, i as BoltdocsExperimentalConfig, l as IPluginLifecycleManager, m as PluginLifecycleHooks, n as defineConfig, o as BoltdocsViewTransitionsConfig, p as PluginHmrEvent, r as BoltdocsConfig, s as DiagnosticRecord, t as resolveConfig, u as JsonLdObject, v as PluginStore, x as RouteMeta, y as PluginTransformMiddleware } from "../config-CTsX_tGM.cjs";
4
+ import { C as PluginTransformMiddleware, E as StructuredData, S as PluginStore, T as RouteMeta, _ as PluginHmrEvent, a as CodeHighlightConfig, b as PluginMeta, c as CodeHighlighterRuntime, d as ExternalFileRoute, f as IPluginLifecycleManager, g as PluginContext, h as ParsedMetaLike, i as BoltdocsViewTransitionsConfig, l as CodeTheme, m as JsonLdValue, n as BoltdocsExperimentalConfig, o as CodeHighlighterAdapter, p as JsonLdObject, r as BoltdocsThemeConfig, s as CodeHighlighterEngine, t as BoltdocsConfig, u as DiagnosticRecord, v as PluginLifecycleHooks, w as RegisteredVirtualModule, x as PluginServerMiddleware, y as PluginLogger } from "../types-o7iZ2BAR.cjs";
5
+ import { a as getHighlighterNames, c as prewarmHighlighter, i as getCodeHighlighterAdapter, l as registerHighlighter, n as DEFAULT_HIGHLIGHTER, o as isHighlighterRegistered, r as HighlighterFactory, s as prewarmCodeHighlighting, t as BUILTIN_HIGHLIGHTERS, u as registerPluginHighlighter } from "../registry-BbB6NqSv.cjs";
5
6
  import { InlineConfig, Plugin } from "vite";
7
+ import { normalizeCodeHighlightConfig } from "@bdocs/unist-utils";
6
8
  export * from "@bdocs/unist-utils";
7
9
 
8
10
  //#region \0rolldown/runtime.js
9
11
  //#endregion
12
+ //#region src/shared/config-utils.d.ts
13
+ /**
14
+ * Type-safe helper for defining Boltdocs configuration.
15
+ * This is an identity function that provides IntelliSense in both
16
+ * Node.js (config files) and client-side code (MDX examples).
17
+ *
18
+ * @remarks
19
+ * Intended for use in `boltdocs.config.ts` (Node.js context). This function
20
+ * is **not** available as a client-side import from `boltdocs/client`.
21
+ *
22
+ * @param config - The Boltdocs configuration object
23
+ */
24
+ declare function defineConfig(config: BoltdocsConfig): BoltdocsConfig;
25
+ //#endregion
26
+ //#region src/node/config.d.ts
27
+ /**
28
+ * Loads user's configuration file (e.g., `boltdocs.config.js` or `boltdocs.config.ts`) if it exists,
29
+ * merges it with the default configuration, and returns the final `BoltdocsConfig`.
30
+ *
31
+ * @param docsDir - The directory containing the documentation files
32
+ * @param root - The project root directory (defaults to process.cwd())
33
+ * @returns The merged configuration object
34
+ */
35
+ declare function resolveConfig(docsDir: string, root?: string, command?: string, mode?: string): Promise<BoltdocsConfig>;
36
+ //#endregion
10
37
  //#region src/node/routes/types.d.ts
11
38
  interface DirectoryMeta {
12
39
  title?: string;
@@ -233,6 +260,13 @@ interface BoltdocsPlugin {
233
260
  css?: PluginCssConfig;
234
261
  middleware?: PluginTransformMiddleware[];
235
262
  hooks?: PluginLifecycleHooks;
263
+ /**
264
+ * Provide a custom syntax highlighting engine. The adapter is registered
265
+ * under `plugin.name` in the highlighter registry, making it selectable via
266
+ * `theme.codeHighlighting.engine`. The factory receives the resolved
267
+ * engine-agnostic config (`{ theme, options }`).
268
+ */
269
+ codeHighlighter?: CodeHighlighterAdapter | ((api: CodeHighlightConfig) => CodeHighlighterAdapter | Promise<CodeHighlighterAdapter>);
236
270
  }
237
271
  //#endregion
238
272
  //#region src/node/plugins/plugin-errors.d.ts
@@ -384,7 +418,7 @@ declare function normalizePath(p: string): string;
384
418
  */
385
419
  declare function sanitizeFilename(name: string): string;
386
420
  declare namespace index_d_exports {
387
- export { ArticleStructuredDataOptions, BoltdocsConfig, BoltdocsExperimentalConfig, BoltdocsPlugin, BoltdocsPluginOptions, BoltdocsPluginStore, BoltdocsThemeConfig, BoltdocsViewTransitionsConfig, BreadcrumbStructuredDataItem, CreateViteConfigOptions, ExternalFileRoute, IPluginLifecycleManager, JsonLdObject, JsonLdValue, PluginCompatibilityError, PluginContext, PluginCssConfig, PluginError, PluginFactory, PluginHookError, PluginLifecycleHooks, PluginLifecycleManager, PluginLogger, PluginMeta, PluginStore, PluginValidationError, RouteMeta, StructuredData, StructuredDataFactoryOptions, WebSiteStructuredDataOptions, createArticleStructuredData, createBreadcrumbStructuredData, createPlugin, createStructuredData, createViteConfig, createWebSiteStructuredData, boltdocs as default, defineConfig, definePlugin, defineStructuredData, flushCache, generateEntryCode, generateRoutes, handleAwsFeedback, handleFeedback, handleNetlifyFeedback, handleVercelFeedback, handleWebFeedback, invalidateRouteCache, normalizePath, resolveConfig, resolvePluginHook, sanitizeFilename, validatePlugins };
421
+ export { ArticleStructuredDataOptions, BUILTIN_HIGHLIGHTERS, BoltdocsConfig, BoltdocsExperimentalConfig, BoltdocsPlugin, BoltdocsPluginOptions, BoltdocsPluginStore, BoltdocsThemeConfig, BoltdocsViewTransitionsConfig, BreadcrumbStructuredDataItem, CodeHighlightConfig, CodeHighlighterAdapter, CodeHighlighterEngine, CodeHighlighterRuntime, CodeTheme, CreateViteConfigOptions, DEFAULT_HIGHLIGHTER, ExternalFileRoute, HighlighterFactory, IPluginLifecycleManager, JsonLdObject, JsonLdValue, ParsedMetaLike, PluginCompatibilityError, PluginContext, PluginCssConfig, PluginError, PluginFactory, PluginHookError, PluginLifecycleHooks, PluginLifecycleManager, PluginLogger, PluginMeta, PluginStore, PluginValidationError, RouteMeta, StructuredData, StructuredDataFactoryOptions, WebSiteStructuredDataOptions, createArticleStructuredData, createBreadcrumbStructuredData, createPlugin, createStructuredData, createViteConfig, createWebSiteStructuredData, boltdocs as default, defineConfig, definePlugin, defineStructuredData, flushCache, generateEntryCode, generateRoutes, getCodeHighlighterAdapter, getHighlighterNames, handleAwsFeedback, handleFeedback, handleNetlifyFeedback, handleVercelFeedback, handleWebFeedback, invalidateRouteCache, isHighlighterRegistered, normalizeCodeHighlightConfig, normalizePath, prewarmCodeHighlighting, prewarmHighlighter, registerHighlighter, registerPluginHighlighter, resolveConfig, resolvePluginHook, sanitizeFilename, validatePlugins };
388
422
  }
389
423
  interface CreateViteConfigOptions {
390
424
  /** Pre-computed routes. When provided, route generation is skipped. */
@@ -405,4 +439,4 @@ declare function boltdocs(options?: BoltdocsPluginOptions): Promise<Plugin[]>;
405
439
  */
406
440
  declare function createViteConfig(root: string, mode?: 'development' | 'production', preResolvedConfig?: BoltdocsConfig, options?: CreateViteConfigOptions): Promise<InlineConfig>;
407
441
  //#endregion
408
- export { type ArticleStructuredDataOptions, type BoltdocsConfig, type BoltdocsExperimentalConfig, BoltdocsPlugin, type BoltdocsPluginOptions, BoltdocsPluginStore, type BoltdocsThemeConfig, type BoltdocsViewTransitionsConfig, type BreadcrumbStructuredDataItem, CreateViteConfigOptions, type ExternalFileRoute, type IPluginLifecycleManager, type JsonLdObject, type JsonLdValue, PluginCompatibilityError, type PluginContext, PluginCssConfig, PluginError, PluginFactory, PluginHookError, type PluginLifecycleHooks, PluginLifecycleManager, type PluginLogger, type PluginMeta, type PluginStore, PluginValidationError, type RouteMeta, type StructuredData, type StructuredDataFactoryOptions, type WebSiteStructuredDataOptions, createArticleStructuredData, createBreadcrumbStructuredData, createPlugin, createStructuredData, createViteConfig, createWebSiteStructuredData, boltdocs as default, defineConfig, definePlugin, defineStructuredData, flushCache, generateEntryCode, generateRoutes, handleAwsFeedback, handleFeedback, handleNetlifyFeedback, handleVercelFeedback, handleWebFeedback, invalidateRouteCache, normalizePath, resolveConfig, resolvePluginHook, sanitizeFilename, validatePlugins };
442
+ export { type ArticleStructuredDataOptions, BUILTIN_HIGHLIGHTERS, type BoltdocsConfig, type BoltdocsExperimentalConfig, type BoltdocsPlugin, type BoltdocsPluginOptions, BoltdocsPluginStore, type BoltdocsThemeConfig, type BoltdocsViewTransitionsConfig, type BreadcrumbStructuredDataItem, type CodeHighlightConfig, type CodeHighlighterAdapter, type CodeHighlighterEngine, type CodeHighlighterRuntime, type CodeTheme, CreateViteConfigOptions, DEFAULT_HIGHLIGHTER, type ExternalFileRoute, HighlighterFactory, type IPluginLifecycleManager, type JsonLdObject, type JsonLdValue, type ParsedMetaLike, PluginCompatibilityError, type PluginContext, PluginCssConfig, PluginError, PluginFactory, PluginHookError, type PluginLifecycleHooks, PluginLifecycleManager, type PluginLogger, type PluginMeta, type PluginStore, PluginValidationError, type RouteMeta, type StructuredData, type StructuredDataFactoryOptions, type WebSiteStructuredDataOptions, createArticleStructuredData, createBreadcrumbStructuredData, createPlugin, createStructuredData, createViteConfig, createWebSiteStructuredData, boltdocs as default, defineConfig, definePlugin, defineStructuredData, flushCache, generateEntryCode, generateRoutes, getCodeHighlighterAdapter, getHighlighterNames, handleAwsFeedback, handleFeedback, handleNetlifyFeedback, handleVercelFeedback, handleWebFeedback, invalidateRouteCache, isHighlighterRegistered, normalizeCodeHighlightConfig, normalizePath, prewarmCodeHighlighting, prewarmHighlighter, registerHighlighter, registerPluginHighlighter, resolveConfig, resolvePluginHook, sanitizeFilename, validatePlugins };
@@ -1,11 +1,38 @@
1
1
 
2
2
  import { FileCache, flushCache } from "./cache.mjs";
3
- import { i as handleVercelFeedback, n as handleWebFeedback, r as handleNetlifyFeedback, t as handleAwsFeedback } from "../index-lFoyzCXy.mjs";
4
- import { C as StructuredData, _ as PluginServerMiddleware, a as BoltdocsThemeConfig, b as RegisteredVirtualModule, c as ExternalFileRoute, d as JsonLdValue, f as PluginContext, g as PluginMeta, h as PluginLogger, i as BoltdocsExperimentalConfig, l as IPluginLifecycleManager, m as PluginLifecycleHooks, n as defineConfig, o as BoltdocsViewTransitionsConfig, p as PluginHmrEvent, r as BoltdocsConfig, s as DiagnosticRecord, t as resolveConfig, u as JsonLdObject, v as PluginStore, x as RouteMeta, y as PluginTransformMiddleware } from "../config-BoRlz0Ca.mjs";
3
+ import { i as handleVercelFeedback, n as handleWebFeedback, r as handleNetlifyFeedback, t as handleAwsFeedback } from "../index-HAwIo4nZ.mjs";
4
+ import { C as PluginTransformMiddleware, E as StructuredData, S as PluginStore, T as RouteMeta, _ as PluginHmrEvent, a as CodeHighlightConfig, b as PluginMeta, c as CodeHighlighterRuntime, d as ExternalFileRoute, f as IPluginLifecycleManager, g as PluginContext, h as ParsedMetaLike, i as BoltdocsViewTransitionsConfig, l as CodeTheme, m as JsonLdValue, n as BoltdocsExperimentalConfig, o as CodeHighlighterAdapter, p as JsonLdObject, r as BoltdocsThemeConfig, s as CodeHighlighterEngine, t as BoltdocsConfig, u as DiagnosticRecord, v as PluginLifecycleHooks, w as RegisteredVirtualModule, x as PluginServerMiddleware, y as PluginLogger } from "../types-Db6zToZH.mjs";
5
+ import { a as getHighlighterNames, c as prewarmHighlighter, i as getCodeHighlighterAdapter, l as registerHighlighter, n as DEFAULT_HIGHLIGHTER, o as isHighlighterRegistered, r as HighlighterFactory, s as prewarmCodeHighlighting, t as BUILTIN_HIGHLIGHTERS, u as registerPluginHighlighter } from "../registry-sJqDv0kE.mjs";
5
6
  import { z } from "zod";
7
+ import { normalizeCodeHighlightConfig } from "@bdocs/unist-utils";
6
8
  import { InlineConfig, Plugin } from "vite";
7
9
  export * from "@bdocs/unist-utils";
8
10
 
11
+ //#region src/shared/config-utils.d.ts
12
+ /**
13
+ * Type-safe helper for defining Boltdocs configuration.
14
+ * This is an identity function that provides IntelliSense in both
15
+ * Node.js (config files) and client-side code (MDX examples).
16
+ *
17
+ * @remarks
18
+ * Intended for use in `boltdocs.config.ts` (Node.js context). This function
19
+ * is **not** available as a client-side import from `boltdocs/client`.
20
+ *
21
+ * @param config - The Boltdocs configuration object
22
+ */
23
+ declare function defineConfig(config: BoltdocsConfig): BoltdocsConfig;
24
+ //#endregion
25
+ //#region src/node/config.d.ts
26
+ /**
27
+ * Loads user's configuration file (e.g., `boltdocs.config.js` or `boltdocs.config.ts`) if it exists,
28
+ * merges it with the default configuration, and returns the final `BoltdocsConfig`.
29
+ *
30
+ * @param docsDir - The directory containing the documentation files
31
+ * @param root - The project root directory (defaults to process.cwd())
32
+ * @returns The merged configuration object
33
+ */
34
+ declare function resolveConfig(docsDir: string, root?: string, command?: string, mode?: string): Promise<BoltdocsConfig>;
35
+ //#endregion
9
36
  //#region src/node/routes/types.d.ts
10
37
  interface DirectoryMeta {
11
38
  title?: string;
@@ -232,6 +259,13 @@ interface BoltdocsPlugin {
232
259
  css?: PluginCssConfig;
233
260
  middleware?: PluginTransformMiddleware[];
234
261
  hooks?: PluginLifecycleHooks;
262
+ /**
263
+ * Provide a custom syntax highlighting engine. The adapter is registered
264
+ * under `plugin.name` in the highlighter registry, making it selectable via
265
+ * `theme.codeHighlighting.engine`. The factory receives the resolved
266
+ * engine-agnostic config (`{ theme, options }`).
267
+ */
268
+ codeHighlighter?: CodeHighlighterAdapter | ((api: CodeHighlightConfig) => CodeHighlighterAdapter | Promise<CodeHighlighterAdapter>);
235
269
  }
236
270
  //#endregion
237
271
  //#region src/node/plugins/plugin-errors.d.ts
@@ -383,7 +417,7 @@ declare function normalizePath(p: string): string;
383
417
  */
384
418
  declare function sanitizeFilename(name: string): string;
385
419
  declare namespace index_d_exports {
386
- export { ArticleStructuredDataOptions, BoltdocsConfig, BoltdocsExperimentalConfig, BoltdocsPlugin, BoltdocsPluginOptions, BoltdocsPluginStore, BoltdocsThemeConfig, BoltdocsViewTransitionsConfig, BreadcrumbStructuredDataItem, CreateViteConfigOptions, ExternalFileRoute, IPluginLifecycleManager, JsonLdObject, JsonLdValue, PluginCompatibilityError, PluginContext, PluginCssConfig, PluginError, PluginFactory, PluginHookError, PluginLifecycleHooks, PluginLifecycleManager, PluginLogger, PluginMeta, PluginStore, PluginValidationError, RouteMeta, StructuredData, StructuredDataFactoryOptions, WebSiteStructuredDataOptions, createArticleStructuredData, createBreadcrumbStructuredData, createPlugin, createStructuredData, createViteConfig, createWebSiteStructuredData, boltdocs as default, defineConfig, definePlugin, defineStructuredData, flushCache, generateEntryCode, generateRoutes, handleAwsFeedback, handleFeedback, handleNetlifyFeedback, handleVercelFeedback, handleWebFeedback, invalidateRouteCache, normalizePath, resolveConfig, resolvePluginHook, sanitizeFilename, validatePlugins };
420
+ export { ArticleStructuredDataOptions, BUILTIN_HIGHLIGHTERS, BoltdocsConfig, BoltdocsExperimentalConfig, BoltdocsPlugin, BoltdocsPluginOptions, BoltdocsPluginStore, BoltdocsThemeConfig, BoltdocsViewTransitionsConfig, BreadcrumbStructuredDataItem, CodeHighlightConfig, CodeHighlighterAdapter, CodeHighlighterEngine, CodeHighlighterRuntime, CodeTheme, CreateViteConfigOptions, DEFAULT_HIGHLIGHTER, ExternalFileRoute, HighlighterFactory, IPluginLifecycleManager, JsonLdObject, JsonLdValue, ParsedMetaLike, PluginCompatibilityError, PluginContext, PluginCssConfig, PluginError, PluginFactory, PluginHookError, PluginLifecycleHooks, PluginLifecycleManager, PluginLogger, PluginMeta, PluginStore, PluginValidationError, RouteMeta, StructuredData, StructuredDataFactoryOptions, WebSiteStructuredDataOptions, createArticleStructuredData, createBreadcrumbStructuredData, createPlugin, createStructuredData, createViteConfig, createWebSiteStructuredData, boltdocs as default, defineConfig, definePlugin, defineStructuredData, flushCache, generateEntryCode, generateRoutes, getCodeHighlighterAdapter, getHighlighterNames, handleAwsFeedback, handleFeedback, handleNetlifyFeedback, handleVercelFeedback, handleWebFeedback, invalidateRouteCache, isHighlighterRegistered, normalizeCodeHighlightConfig, normalizePath, prewarmCodeHighlighting, prewarmHighlighter, registerHighlighter, registerPluginHighlighter, resolveConfig, resolvePluginHook, sanitizeFilename, validatePlugins };
387
421
  }
388
422
  interface CreateViteConfigOptions {
389
423
  /** Pre-computed routes. When provided, route generation is skipped. */
@@ -404,4 +438,4 @@ declare function boltdocs(options?: BoltdocsPluginOptions): Promise<Plugin[]>;
404
438
  */
405
439
  declare function createViteConfig(root: string, mode?: 'development' | 'production', preResolvedConfig?: BoltdocsConfig, options?: CreateViteConfigOptions): Promise<InlineConfig>;
406
440
  //#endregion
407
- export { type ArticleStructuredDataOptions, type BoltdocsConfig, type BoltdocsExperimentalConfig, BoltdocsPlugin, type BoltdocsPluginOptions, BoltdocsPluginStore, type BoltdocsThemeConfig, type BoltdocsViewTransitionsConfig, type BreadcrumbStructuredDataItem, CreateViteConfigOptions, type ExternalFileRoute, type IPluginLifecycleManager, type JsonLdObject, type JsonLdValue, PluginCompatibilityError, type PluginContext, PluginCssConfig, PluginError, PluginFactory, PluginHookError, type PluginLifecycleHooks, PluginLifecycleManager, type PluginLogger, type PluginMeta, type PluginStore, PluginValidationError, type RouteMeta, type StructuredData, type StructuredDataFactoryOptions, type WebSiteStructuredDataOptions, createArticleStructuredData, createBreadcrumbStructuredData, createPlugin, createStructuredData, createViteConfig, createWebSiteStructuredData, boltdocs as default, defineConfig, definePlugin, defineStructuredData, flushCache, generateEntryCode, generateRoutes, handleAwsFeedback, handleFeedback, handleNetlifyFeedback, handleVercelFeedback, handleWebFeedback, invalidateRouteCache, normalizePath, resolveConfig, resolvePluginHook, sanitizeFilename, validatePlugins };
441
+ export { type ArticleStructuredDataOptions, BUILTIN_HIGHLIGHTERS, type BoltdocsConfig, type BoltdocsExperimentalConfig, type BoltdocsPlugin, type BoltdocsPluginOptions, BoltdocsPluginStore, type BoltdocsThemeConfig, type BoltdocsViewTransitionsConfig, type BreadcrumbStructuredDataItem, type CodeHighlightConfig, type CodeHighlighterAdapter, type CodeHighlighterEngine, type CodeHighlighterRuntime, type CodeTheme, CreateViteConfigOptions, DEFAULT_HIGHLIGHTER, type ExternalFileRoute, HighlighterFactory, type IPluginLifecycleManager, type JsonLdObject, type JsonLdValue, type ParsedMetaLike, PluginCompatibilityError, type PluginContext, PluginCssConfig, PluginError, PluginFactory, PluginHookError, type PluginLifecycleHooks, PluginLifecycleManager, type PluginLogger, type PluginMeta, type PluginStore, PluginValidationError, type RouteMeta, type StructuredData, type StructuredDataFactoryOptions, type WebSiteStructuredDataOptions, createArticleStructuredData, createBreadcrumbStructuredData, createPlugin, createStructuredData, createViteConfig, createWebSiteStructuredData, boltdocs as default, defineConfig, definePlugin, defineStructuredData, flushCache, generateEntryCode, generateRoutes, getCodeHighlighterAdapter, getHighlighterNames, handleAwsFeedback, handleFeedback, handleNetlifyFeedback, handleVercelFeedback, handleWebFeedback, invalidateRouteCache, isHighlighterRegistered, normalizeCodeHighlightConfig, normalizePath, prewarmCodeHighlighting, prewarmHighlighter, registerHighlighter, registerPluginHighlighter, resolveConfig, resolvePluginHook, sanitizeFilename, validatePlugins };
@@ -3,4 +3,4 @@
3
3
  * Copyright (c) 2026 Jesus Alcala
4
4
  * Licensed under the MIT License.
5
5
  */
6
- import{g as e}from"../plugin-context-wqHNSZum.mjs";import{_ as t,a as n,b as r,d as i,f as a,g as o,h as s,i as c,m as l,n as u,p as d,r as f,s as p,t as m,u as h,v as g,y as _}from"../node-BFNCsPs3.mjs";import{f as v,u as y}from"../utils-8lzafE49.mjs";import{flushCache as b}from"./cache.mjs";import{r as x,t as S}from"../routes-BL4y79tb.mjs";import{i as C,n as w}from"../config-DGLQsy7y.mjs";import{t as T}from"../handler-D7UyZlPm.mjs";import{i as E,n as D,r as O,t as k}from"../adapters-BmB4TKCc.mjs";export*from"@bdocs/unist-utils";export{i as BoltdocsPluginStore,a as PluginCompatibilityError,d as PluginError,l as PluginHookError,n as PluginLifecycleManager,s as PluginValidationError,o as createArticleStructuredData,t as createBreadcrumbStructuredData,f as createPlugin,g as createStructuredData,u as createViteConfig,_ as createWebSiteStructuredData,m as default,C as defineConfig,c as definePlugin,r as defineStructuredData,b as flushCache,e as generateEntryCode,S as generateRoutes,k as handleAwsFeedback,T as handleFeedback,O as handleNetlifyFeedback,E as handleVercelFeedback,D as handleWebFeedback,x as invalidateRouteCache,y as normalizePath,w as resolveConfig,p as resolvePluginHook,v as sanitizeFilename,h as validatePlugins};
6
+ import{g as e}from"../plugin-context-BKK-nfOd.mjs";import{_ as t,a as n,b as r,c as i,d as a,f as o,g as s,h as c,i as l,m as u,n as d,o as f,p,r as m,t as h,v as g,x as _,y as v}from"../node-DwgtnlGU.mjs";import{f as y,u as b}from"../utils-8lzafE49.mjs";import{flushCache as x}from"./cache.mjs";import{r as S,t as C}from"../routes-C4wrLWwu.mjs";import{i as w,n as T}from"../config-DC0nMMk7.mjs";import{a as E,c as D,i as O,l as k,n as A,o as j,r as M,s as N,t as P}from"../registry-CHh8A5as.mjs";import{t as F}from"../handler-Lex5DbvG.mjs";import{i as I,n as L,r as R,t as z}from"../adapters-BKzKe2mO.mjs";export*from"@bdocs/unist-utils";export{P as BUILTIN_HIGHLIGHTERS,o as BoltdocsPluginStore,A as DEFAULT_HIGHLIGHTER,p as PluginCompatibilityError,u as PluginError,c as PluginHookError,f as PluginLifecycleManager,s as PluginValidationError,t as createArticleStructuredData,g as createBreadcrumbStructuredData,l as createPlugin,v as createStructuredData,d as createViteConfig,r as createWebSiteStructuredData,h as default,w as defineConfig,n as definePlugin,_ as defineStructuredData,x as flushCache,e as generateEntryCode,C as generateRoutes,M as getCodeHighlighterAdapter,O as getHighlighterNames,z as handleAwsFeedback,F as handleFeedback,R as handleNetlifyFeedback,I as handleVercelFeedback,L as handleWebFeedback,S as invalidateRouteCache,E as isHighlighterRegistered,m as normalizeCodeHighlightConfig,b as normalizePath,j as prewarmCodeHighlighting,N as prewarmHighlighter,D as registerHighlighter,k as registerPluginHighlighter,T as resolveConfig,i as resolvePluginHook,y as sanitizeFilename,a as validatePlugins};
@@ -3,4 +3,4 @@
3
3
  * Copyright (c) 2026 Jesus Alcala
4
4
  * Licensed under the MIT License.
5
5
  */
6
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../../chunk-D1Md3oWO.cjs`),t=require(`../../utils-ej6_SjIZ.cjs`);let n=require(`@bdocs/dui`),r=require(`@shikijs/engine-oniguruma`),i=require(`shiki/core`),a=require(`@shikijs/themes/github-light`);a=e.r(a);let o=require(`@shikijs/themes/github-dark`);o=e.r(o);let s=require(`@shikijs/langs/html`);s=e.r(s);let c=require(`@shikijs/langs/js`);c=e.r(c);let l=require(`@shikijs/langs/ts`);l=e.r(l);let u=require(`@shikijs/langs/tsx`);u=e.r(u);let d=require(`@shikijs/langs/css`);d=e.r(d);let f=require(`@shikijs/langs/bash`);f=e.r(f);let p=require(`@shikijs/langs/json`);p=e.r(p);let m=require(`@shikijs/langs/markdown`);m=e.r(m);let h=require(`@shikijs/langs/python`);h=e.r(h);let g=require(`@shikijs/langs/go`);g=e.r(g);const _=[a.default.default||a.default,o.default.default||o.default],v=[s.default,c.default,l.default,u.default,d.default,f.default,p.default,m.default,h.default,g.default],y={scss:()=>import(`@shikijs/langs/scss`),less:()=>import(`@shikijs/langs/less`),jsonc:()=>import(`@shikijs/langs/jsonc`),json5:()=>import(`@shikijs/langs/json5`),ini:()=>import(`@shikijs/langs/ini`),mdx:()=>import(`@shikijs/langs/mdx`),yaml:()=>import(`@shikijs/langs/yaml`),rust:()=>import(`@shikijs/langs/rust`),toml:()=>import(`@shikijs/langs/toml`),csv:()=>import(`@shikijs/langs/csv`),nginx:()=>import(`@shikijs/langs/nginx`),apache:()=>import(`@shikijs/langs/apache`),dockerfile:()=>import(`@shikijs/langs/dockerfile`),docker:()=>import(`@shikijs/langs/docker`),java:()=>import(`@shikijs/langs/java`),php:()=>import(`@shikijs/langs/php`),sql:()=>import(`@shikijs/langs/sql`),graphql:()=>import(`@shikijs/langs/graphql`),http:()=>import(`@shikijs/langs/http`),xml:()=>import(`@shikijs/langs/xml`),vue:()=>import(`@shikijs/langs/vue`),svelte:()=>import(`@shikijs/langs/svelte`),ruby:()=>import(`@shikijs/langs/ruby`),kotlin:()=>import(`@shikijs/langs/kotlin`),swift:()=>import(`@shikijs/langs/swift`),powershell:()=>import(`@shikijs/langs/powershell`),c:()=>import(`@shikijs/langs/c`),cpp:()=>import(`@shikijs/langs/cpp`),elixir:()=>import(`@shikijs/langs/elixir`)},b={javascript:`js`,typescript:`ts`,shell:`bash`,sh:`bash`,zsh:`bash`,console:`bash`,terminal:`bash`,shellsession:`bash`,yml:`yaml`,py:`python`,golang:`go`,rs:`rust`,rb:`ruby`,kt:`kotlin`},x=new Set([`text`,`plaintext`,`txt`,`plain`,`ansi`,`none`]);function S(e){if(!e)return null;let t=e.trim().toLowerCase();return!t||x.has(t)?null:b[t]??t}let C=null;async function w(){return(0,r.createOnigurumaEngine)(await import(`shiki/wasm`))}const T=async e=>C||(C=(async()=>{let e=performance.now(),t=await(0,i.createHighlighterCore)({themes:_,langs:v,engine:await w()});return process.env.BOLTDOCS_DEBUG===`true`&&console.log(`[boltdocs] shiki-ready in ${Math.round(performance.now()-e)}ms (${v.length} langs)`),t})(),C),E=new Map;async function D(e){let t=S(e);if(!t)return!0;let n;try{n=await T()}catch{return!1}let r=[];try{r=n.getLoadedLanguages()}catch{r=[]}if(r.includes(t))return!0;let i=E.get(t);if(i)return i;let a=y[t];if(!a)return!1;let o=(async()=>{try{let e=await a(),t=e?.default??e;return await n.loadLanguage(t),!0}catch{return!1}finally{E.delete(t)}})();return E.set(t,o),o}const O={TITLE:`data-title`,LANG:`data-lang`,HIGHLIGHTED:`data-highlighted`,HIGHLIGHTED_HTML:`data-highlighted-html`},k={LINE_NUMBERS:`shiki-line-numbers`,WORD_WRAP:`shiki-word-wrap`,FALLBACK:`shiki-fallback`},A={LIGHT:`github-light`,DARK:`github-dark`},j={LANG:`plaintext`,MDX_DEFAULT_LANG:`text`},M=(e={})=>{let{activateByDefault:t=!1}=e;return{name:`boltdocs:line-numbers`,pre(e){let n=this.options.meta?.lineNumbers===!0;(t||n)&&this.addClassToHast(e,k.LINE_NUMBERS)}}},N=(e={})=>{let{activateByDefault:t=!1}=e;return{name:`boltdocs:word-wrap`,pre(e){let n=this.options.meta?.wordWrap===!0;(t||n)&&this.addClassToHast(e,k.WORD_WRAP)}}},P=()=>({name:`AddTitleProperty`,pre(e){let t=this.options.meta?.title;t&&(e.properties[O.TITLE]=t)}}),F=()=>({name:`AddLanguageProperty`,pre(e){e.properties[O.LANG]=this.options.lang||j.LANG}});function I(e){let t={};if(!e)return t;let n=(e,n)=>{if(n===`false`){t[e]=!1;return}(n===`true`||n===void 0)&&(t[e]=!0)},r=Array.from(e.matchAll(/(?:^|\s)(?:lineNumbers|showLineNumbers|show-line-numbers|show_line_numbers|line_numbers)(?:\s*=\s*(true|false))?(?=\s|$)/gi)),i=r[r.length-1];i&&n(`lineNumbers`,i[1]);let a=Array.from(e.matchAll(/(?:^|\s)(?:wordWrap|word-wrap|word_wrap)(?:\s*=\s*(true|false))?(?=\s|$)/gi)),o=a[a.length-1];o&&n(`wordWrap`,o[1]);let s=e.match(/title=(['"])(.*?)\1/);return s&&(t.title=s[2]),t}var L=class{config;constructor(e){this.config=e}getTheme(){return this.config?.theme?.codeTheme||{light:A.LIGHT,dark:A.DARK}}async getHighlighter(){return await T(this.getTheme())}getOptions(e,t){let n=this.getTheme(),r={},i=``;typeof t==`string`?(i=t,r=I(t)):t&&(r=t,i=t.__raw||``);let a={__raw:i};for(let[e,t]of Object.entries(r))e!==`__raw`&&Object.defineProperty(a,e,{value:t,enumerable:!1,configurable:!0,writable:!0});let o={lang:e||j.LANG,meta:a,transformers:[M(),N(),P(),F()]};return typeof n==`object`?o.themes={light:n.light,dark:n.dark}:o.theme=n,o}async render(e,r,i){try{await D(r||j.LANG);let t=await this.getHighlighter(),n=this.getOptions(r,i);return t.codeToHtml(e,n)}catch(r){return(0,n.error)(`[ShikiAdapter] Failed to render code:`,r),`<pre class="${k.FALLBACK}"><code>${t.n(e)}</code></pre>`}}};let R=null,z;function B(e){let t=JSON.stringify(e?.theme?.codeTheme||null);return(R===null||z!==t)&&(R=new L(e),z=t),R}function V(e){B(e).getHighlighter().catch(()=>{})}exports.ShikiAdapter=L,exports.ensureLanguage=D,exports.getShikiAdapter=B,exports.parseMetaString=I,exports.prewarmShiki=V;
6
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../../chunk-D1Md3oWO.cjs`),t=require(`../../utils-ej6_SjIZ.cjs`);let n=require(`@bdocs/dui`),r=require(`@bdocs/unist-utils`),i=require(`@shikijs/engine-oniguruma`),a=require(`shiki/core`),o=require(`@shikijs/themes/github-light`);o=e.r(o);let s=require(`@shikijs/themes/github-dark`);s=e.r(s);let c=require(`@shikijs/langs/html`);c=e.r(c);let l=require(`@shikijs/langs/js`);l=e.r(l);let u=require(`@shikijs/langs/ts`);u=e.r(u);let d=require(`@shikijs/langs/tsx`);d=e.r(d);let f=require(`@shikijs/langs/css`);f=e.r(f);let p=require(`@shikijs/langs/bash`);p=e.r(p);let m=require(`@shikijs/langs/json`);m=e.r(m);let h=require(`@shikijs/langs/markdown`);h=e.r(h);let g=require(`@shikijs/langs/python`);g=e.r(g);let _=require(`@shikijs/langs/go`);_=e.r(_);const v=[o.default.default||o.default,s.default.default||s.default],y=[c.default,l.default,u.default,d.default,f.default,p.default,m.default,h.default,g.default,_.default],b={scss:()=>import(`@shikijs/langs/scss`),less:()=>import(`@shikijs/langs/less`),jsonc:()=>import(`@shikijs/langs/jsonc`),json5:()=>import(`@shikijs/langs/json5`),ini:()=>import(`@shikijs/langs/ini`),mdx:()=>import(`@shikijs/langs/mdx`),yaml:()=>import(`@shikijs/langs/yaml`),rust:()=>import(`@shikijs/langs/rust`),toml:()=>import(`@shikijs/langs/toml`),csv:()=>import(`@shikijs/langs/csv`),nginx:()=>import(`@shikijs/langs/nginx`),apache:()=>import(`@shikijs/langs/apache`),dockerfile:()=>import(`@shikijs/langs/dockerfile`),docker:()=>import(`@shikijs/langs/docker`),java:()=>import(`@shikijs/langs/java`),php:()=>import(`@shikijs/langs/php`),sql:()=>import(`@shikijs/langs/sql`),graphql:()=>import(`@shikijs/langs/graphql`),http:()=>import(`@shikijs/langs/http`),xml:()=>import(`@shikijs/langs/xml`),vue:()=>import(`@shikijs/langs/vue`),svelte:()=>import(`@shikijs/langs/svelte`),ruby:()=>import(`@shikijs/langs/ruby`),kotlin:()=>import(`@shikijs/langs/kotlin`),swift:()=>import(`@shikijs/langs/swift`),powershell:()=>import(`@shikijs/langs/powershell`),c:()=>import(`@shikijs/langs/c`),cpp:()=>import(`@shikijs/langs/cpp`),elixir:()=>import(`@shikijs/langs/elixir`)},x={javascript:`js`,typescript:`ts`,shell:`bash`,sh:`bash`,zsh:`bash`,console:`bash`,terminal:`bash`,shellsession:`bash`,yml:`yaml`,py:`python`,golang:`go`,rs:`rust`,rb:`ruby`,kt:`kotlin`},S=new Set([`text`,`plaintext`,`txt`,`plain`,`ansi`,`none`]);function C(e){if(!e)return null;let t=e.trim().toLowerCase();return!t||S.has(t)?null:x[t]??t}const w=new Map;async function T(){return(0,i.createOnigurumaEngine)(await import(`shiki/wasm`))}async function E(){let{createJavaScriptRegexEngine:e}=await import(`shiki/engine/javascript`);return e({forgiving:!0})}async function D(e){return e===`javascript`?E():T()}const O=async e=>{let t=e?.regexEngine===`oniguruma`?`oniguruma`:`javascript`,n=w.get(t);if(n)return n;let r=(async()=>{let e=performance.now(),n=await(0,a.createHighlighterCore)({themes:v,langs:y,engine:await D(t)});return process.env.BOLTDOCS_DEBUG===`true`&&console.log(`[boltdocs] shiki-ready in ${Math.round(performance.now()-e)}ms (${t}, ${y.length} langs)`),n})();return w.set(t,r),r},k=new Map;async function A(e,t=`oniguruma`){let n=C(e);if(!n)return!0;let r;try{r=await O({regexEngine:t})}catch{return!1}let i=[];try{i=r.getLoadedLanguages()}catch{i=[]}if(i.includes(n))return!0;let a=k.get(n);if(a)return a;let o=b[n];if(!o)return!1;let s=(async()=>{try{let e=await o(),t=e?.default??e;return await r.loadLanguage(t),!0}catch{return!1}finally{k.delete(n)}})();return k.set(n,s),s}const j={TITLE:`data-title`,LANG:`data-lang`,HIGHLIGHTED:`data-highlighted`,HIGHLIGHTED_HTML:`data-highlighted-html`},M={LINE_NUMBERS:`shiki-line-numbers`,WORD_WRAP:`shiki-word-wrap`,FALLBACK:`shiki-fallback`},N={LIGHT:`github-light`,DARK:`github-dark`},P={LANG:`plaintext`,MDX_DEFAULT_LANG:`text`},F=(e={})=>{let{activateByDefault:t=!1}=e;return{name:`boltdocs:line-numbers`,pre(e){let n=this.options.meta?.lineNumbers===!0;(t||n)&&this.addClassToHast(e,M.LINE_NUMBERS)}}},I=(e={})=>{let{activateByDefault:t=!1}=e;return{name:`boltdocs:word-wrap`,pre(e){let n=this.options.meta?.wordWrap===!0;(t||n)&&this.addClassToHast(e,M.WORD_WRAP)}}},L=()=>({name:`AddTitleProperty`,pre(e){let t=this.options.meta?.title;t&&(e.properties[j.TITLE]=t)}}),R=()=>({name:`AddLanguageProperty`,pre(e){e.properties[j.LANG]=this.options.lang||P.LANG}});var z=class{name=`shiki`;version=`3.23.0`;theme;regexEngine;constructor(e){let t=(0,r.normalizeCodeHighlightConfig)(e?.theme?.codeHighlighting);this.theme=t?.theme??e?.theme?.codeTheme??{light:N.LIGHT,dark:N.DARK},this.regexEngine=String(t?.options?.regexEngine)===`oniguruma`?`oniguruma`:`javascript`}getTheme(){return this.theme}async getHighlighter(){return await O({regexEngine:this.regexEngine})}async initialize(){let e=await this.getHighlighter();return{codeToHast:(t,n)=>e.codeToHast(t,n),codeToHtml:async(t,n)=>e.codeToHtml(t,n)}}async ensureLanguage(e){return A(e,this.regexEngine)}getOptions(e,t){let n={},i=``;if(typeof t==`string`)i=t,n=(0,r.parseMetaString)(t);else if(t&&typeof t==`object`){let e=t;n={...e},i=String(e.__raw??``)}let a={__raw:i};for(let[e,t]of Object.entries(n))e!==`__raw`&&Object.defineProperty(a,e,{value:t,enumerable:!1,configurable:!0,writable:!0});return{lang:e||P.LANG,meta:a,transformers:[F(),I(),L(),R()],...typeof this.theme==`string`?{theme:this.theme}:{themes:{light:this.theme.light,dark:this.theme.dark}}}}async render(e,r,i){try{let t=this.getOptions(r,i);return await(await this.initialize()).codeToHtml(e,t)}catch(r){return(0,n.error)(`[ShikiAdapter] Failed to render code:`,r),`<pre class="${M.FALLBACK}"><code>${t.n(e)}</code></pre>`}}prewarm(e){O({regexEngine:this.regexEngine}).catch(()=>{})}};let B=null,V;function H(e){let t=(0,r.normalizeCodeHighlightConfig)(e?.theme?.codeHighlighting),n=t?.theme??e?.theme?.codeTheme,i=JSON.stringify({theme:n,regexEngine:t?.options?.regexEngine??`oniguruma`});return(B===null||V!==i)&&(B=new z(e),V=i),B}function U(e){H(e).prewarm()}exports.ShikiAdapter=z,exports.ensureLanguage=A,exports.getShikiAdapter=H,Object.defineProperty(exports,`parseMetaString`,{enumerable:!0,get:function(){return r.parseMetaString}}),exports.prewarmShiki=U;
@@ -1,8 +1,10 @@
1
1
 
2
- import { S as ShikiTheme, r as BoltdocsConfig } from "../../config-CTsX_tGM.cjs";
2
+ import { a as CodeHighlightConfig, c as CodeHighlighterRuntime, l as CodeTheme, o as CodeHighlighterAdapter } from "../../types-o7iZ2BAR.cjs";
3
+ import { ParsedMeta, parseMetaString } from "@bdocs/unist-utils";
3
4
  import * as _$shiki from "shiki";
4
- import { CodeToHastOptions } from "shiki";
5
5
  //#region src/node/mdx/highlighter.d.ts
6
+ /** Which regex engine backs the Shiki core. `oniguruma` is the default. */
7
+ type RegexEngineKind = 'oniguruma' | 'javascript';
6
8
  /**
7
9
  * Ensure a Shiki language grammar is loaded before rendering.
8
10
  *
@@ -14,59 +16,73 @@ import { CodeToHastOptions } from "shiki";
14
16
  * @returns true when the language is available (or needs no grammar),
15
17
  * false when it is unknown to this bundle or failed to load.
16
18
  */
17
- declare function ensureLanguage(rawLang: string | undefined): Promise<boolean>;
19
+ declare function ensureLanguage(rawLang: string | undefined, regexEngine?: RegexEngineKind): Promise<boolean>;
18
20
  //#endregion
19
21
  //#region src/node/mdx/shiki-adapter.d.ts
20
- interface ParsedMeta {
21
- title?: string;
22
- lineNumbers?: boolean;
23
- wordWrap?: boolean;
24
- [key: string]: any;
22
+ /** Minimal config surface the Shiki adapter reads off `BoltdocsConfig`. */
23
+ interface ShikiAdapterConfig {
24
+ theme?: {
25
+ codeTheme?: CodeTheme;
26
+ codeHighlighting?: CodeHighlightConfig | string;
27
+ };
25
28
  }
26
- /**
27
- * Parses a meta string into a structured ParsedMeta object.
28
- */
29
- declare function parseMetaString(metaStr: string): ParsedMeta;
30
29
  /**
31
30
  * Unified Shiki Adapter for Boltdocs.
32
- * Centralizes theme resolution, transformer configuration, and rendering logic.
31
+ *
32
+ * Implements the engine-agnostic {@link CodeHighlighterAdapter} SPI so the
33
+ * core never talks to Shiki directly. Centralizes theme resolution,
34
+ * transformer configuration, and rendering logic.
33
35
  */
34
- declare class ShikiAdapter {
35
- private config;
36
- constructor(config?: BoltdocsConfig);
36
+ declare class ShikiAdapter implements CodeHighlighterAdapter {
37
+ name: string;
38
+ version: string;
39
+ private theme;
40
+ private regexEngine;
41
+ constructor(config?: ShikiAdapterConfig);
37
42
  /**
38
- * Resolves the code theme from Boltdocs configuration.
43
+ * Resolves the code theme from the engine-agnostic configuration.
39
44
  */
40
- getTheme(): ShikiTheme | {
41
- light: ShikiTheme;
42
- dark: ShikiTheme;
43
- };
45
+ getTheme(): CodeTheme;
44
46
  /**
45
- * Creates a Shiki highlighter instance with the configured themes.
47
+ * Creates a Shiki highlighter instance with the configured theme/engine.
46
48
  */
47
49
  getHighlighter(): Promise<_$shiki.HighlighterCore>;
50
+ /**
51
+ * Initializes the adapter and returns the runtime used by the render
52
+ * pipeline. The underlying build is module-level, so callers share the
53
+ * same in-flight highlighter.
54
+ */
55
+ initialize(): Promise<CodeHighlighterRuntime>;
56
+ /**
57
+ * Ensure a language grammar is loaded into the engine backing this adapter.
58
+ */
59
+ ensureLanguage(lang: string): Promise<boolean>;
48
60
  /**
49
61
  * Assembles Shiki options including transformers for a specific code block.
50
62
  */
51
- getOptions(lang: string, meta: string | ParsedMeta): CodeToHastOptions;
63
+ getOptions(lang: string, meta: unknown): Record<string, unknown>;
52
64
  /**
53
65
  * Renders code to HTML using the Boltdocs Shiki pipeline.
54
66
  * Safely handles highlighter exceptions by falling back to escaped pre.
55
67
  */
56
- render(code: string, lang: string, meta: string | ParsedMeta): Promise<string>;
68
+ render(code: string, lang: string, meta: string | Record<string, unknown>): Promise<string>;
69
+ /**
70
+ * Warm the highlighter off the critical path (never awaited).
71
+ */
72
+ prewarm(_options?: Record<string, unknown>): void;
57
73
  }
58
74
  /**
59
75
  * Returns a cached ShikiAdapter instance.
60
- * Recreates only if the relevant codeTheme configuration values change deeply.
76
+ * Recreates only if the resolved theme or regex engine configuration changes.
61
77
  */
62
- declare function getShikiAdapter(config?: BoltdocsConfig): ShikiAdapter;
78
+ declare function getShikiAdapter(config?: ShikiAdapterConfig): ShikiAdapter;
63
79
  /**
64
80
  * Starts building the highlighter in the background. The highlighter build
65
- * is ~2.5s of synchronous CPU (TextMate grammar parsing for every theme and
66
- * language), so it must never run on the critical path of Vite's server
67
- * setup. The underlying `highlight()` promise is module-level, so callers
68
- * that need the highlighter later share the same in-flight build.
81
+ * is ~2.5s of synchronous CPU (TextMate grammar parsing), so it must never
82
+ * run on the critical path of Vite's server setup. The underlying
83
+ * `highlight()` promise is module-level, so callers that need the
84
+ * highlighter later share the same in-flight build.
69
85
  */
70
- declare function prewarmShiki(config?: BoltdocsConfig): void;
86
+ declare function prewarmShiki(config?: ShikiAdapterConfig): void;
71
87
  //#endregion
72
- export { ParsedMeta, ShikiAdapter, ensureLanguage, getShikiAdapter, parseMetaString, prewarmShiki };
88
+ export { type ParsedMeta, ShikiAdapter, ShikiAdapterConfig, ensureLanguage, getShikiAdapter, parseMetaString, prewarmShiki };
@@ -1,9 +1,11 @@
1
1
 
2
- import { S as ShikiTheme, r as BoltdocsConfig } from "../../config-BoRlz0Ca.mjs";
2
+ import { a as CodeHighlightConfig, c as CodeHighlighterRuntime, l as CodeTheme, o as CodeHighlighterAdapter } from "../../types-Db6zToZH.mjs";
3
+ import { ParsedMeta, parseMetaString } from "@bdocs/unist-utils";
3
4
  import * as _$shiki from "shiki";
4
- import { CodeToHastOptions } from "shiki";
5
5
 
6
6
  //#region src/node/mdx/highlighter.d.ts
7
+ /** Which regex engine backs the Shiki core. `oniguruma` is the default. */
8
+ type RegexEngineKind = 'oniguruma' | 'javascript';
7
9
  /**
8
10
  * Ensure a Shiki language grammar is loaded before rendering.
9
11
  *
@@ -15,59 +17,73 @@ import { CodeToHastOptions } from "shiki";
15
17
  * @returns true when the language is available (or needs no grammar),
16
18
  * false when it is unknown to this bundle or failed to load.
17
19
  */
18
- declare function ensureLanguage(rawLang: string | undefined): Promise<boolean>;
20
+ declare function ensureLanguage(rawLang: string | undefined, regexEngine?: RegexEngineKind): Promise<boolean>;
19
21
  //#endregion
20
22
  //#region src/node/mdx/shiki-adapter.d.ts
21
- interface ParsedMeta {
22
- title?: string;
23
- lineNumbers?: boolean;
24
- wordWrap?: boolean;
25
- [key: string]: any;
23
+ /** Minimal config surface the Shiki adapter reads off `BoltdocsConfig`. */
24
+ interface ShikiAdapterConfig {
25
+ theme?: {
26
+ codeTheme?: CodeTheme;
27
+ codeHighlighting?: CodeHighlightConfig | string;
28
+ };
26
29
  }
27
- /**
28
- * Parses a meta string into a structured ParsedMeta object.
29
- */
30
- declare function parseMetaString(metaStr: string): ParsedMeta;
31
30
  /**
32
31
  * Unified Shiki Adapter for Boltdocs.
33
- * Centralizes theme resolution, transformer configuration, and rendering logic.
32
+ *
33
+ * Implements the engine-agnostic {@link CodeHighlighterAdapter} SPI so the
34
+ * core never talks to Shiki directly. Centralizes theme resolution,
35
+ * transformer configuration, and rendering logic.
34
36
  */
35
- declare class ShikiAdapter {
36
- private config;
37
- constructor(config?: BoltdocsConfig);
37
+ declare class ShikiAdapter implements CodeHighlighterAdapter {
38
+ name: string;
39
+ version: string;
40
+ private theme;
41
+ private regexEngine;
42
+ constructor(config?: ShikiAdapterConfig);
38
43
  /**
39
- * Resolves the code theme from Boltdocs configuration.
44
+ * Resolves the code theme from the engine-agnostic configuration.
40
45
  */
41
- getTheme(): ShikiTheme | {
42
- light: ShikiTheme;
43
- dark: ShikiTheme;
44
- };
46
+ getTheme(): CodeTheme;
45
47
  /**
46
- * Creates a Shiki highlighter instance with the configured themes.
48
+ * Creates a Shiki highlighter instance with the configured theme/engine.
47
49
  */
48
50
  getHighlighter(): Promise<_$shiki.HighlighterCore>;
51
+ /**
52
+ * Initializes the adapter and returns the runtime used by the render
53
+ * pipeline. The underlying build is module-level, so callers share the
54
+ * same in-flight highlighter.
55
+ */
56
+ initialize(): Promise<CodeHighlighterRuntime>;
57
+ /**
58
+ * Ensure a language grammar is loaded into the engine backing this adapter.
59
+ */
60
+ ensureLanguage(lang: string): Promise<boolean>;
49
61
  /**
50
62
  * Assembles Shiki options including transformers for a specific code block.
51
63
  */
52
- getOptions(lang: string, meta: string | ParsedMeta): CodeToHastOptions;
64
+ getOptions(lang: string, meta: unknown): Record<string, unknown>;
53
65
  /**
54
66
  * Renders code to HTML using the Boltdocs Shiki pipeline.
55
67
  * Safely handles highlighter exceptions by falling back to escaped pre.
56
68
  */
57
- render(code: string, lang: string, meta: string | ParsedMeta): Promise<string>;
69
+ render(code: string, lang: string, meta: string | Record<string, unknown>): Promise<string>;
70
+ /**
71
+ * Warm the highlighter off the critical path (never awaited).
72
+ */
73
+ prewarm(_options?: Record<string, unknown>): void;
58
74
  }
59
75
  /**
60
76
  * Returns a cached ShikiAdapter instance.
61
- * Recreates only if the relevant codeTheme configuration values change deeply.
77
+ * Recreates only if the resolved theme or regex engine configuration changes.
62
78
  */
63
- declare function getShikiAdapter(config?: BoltdocsConfig): ShikiAdapter;
79
+ declare function getShikiAdapter(config?: ShikiAdapterConfig): ShikiAdapter;
64
80
  /**
65
81
  * Starts building the highlighter in the background. The highlighter build
66
- * is ~2.5s of synchronous CPU (TextMate grammar parsing for every theme and
67
- * language), so it must never run on the critical path of Vite's server
68
- * setup. The underlying `highlight()` promise is module-level, so callers
69
- * that need the highlighter later share the same in-flight build.
82
+ * is ~2.5s of synchronous CPU (TextMate grammar parsing), so it must never
83
+ * run on the critical path of Vite's server setup. The underlying
84
+ * `highlight()` promise is module-level, so callers that need the
85
+ * highlighter later share the same in-flight build.
70
86
  */
71
- declare function prewarmShiki(config?: BoltdocsConfig): void;
87
+ declare function prewarmShiki(config?: ShikiAdapterConfig): void;
72
88
  //#endregion
73
- export { ParsedMeta, ShikiAdapter, ensureLanguage, getShikiAdapter, parseMetaString, prewarmShiki };
89
+ export { type ParsedMeta, ShikiAdapter, ShikiAdapterConfig, ensureLanguage, getShikiAdapter, parseMetaString, prewarmShiki };