boltdocs 3.2.1 → 3.3.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 (155) hide show
  1. package/bin/boltdocs.js +20 -1
  2. package/bin/preloader.mjs +28 -0
  3. package/dist/{adapters-ByYY44Zy.mjs → adapters-BmB4TKCc.mjs} +1 -1
  4. package/dist/{adapters-DvmtpdSF.cjs → adapters-Cp1Maurn.cjs} +1 -1
  5. package/dist/audit-CLXjMzwQ.mjs +11 -0
  6. package/dist/audit-COgjnQ5n.cjs +11 -0
  7. package/dist/build-BS2hefiL.cjs +6 -0
  8. package/dist/build-C5mNh9D-.mjs +6 -0
  9. package/dist/cache-CJE9nWLE.cjs +6 -0
  10. package/dist/cache-OY4HzIXl.mjs +6 -0
  11. package/dist/callout-oI_LCbxS.d.ts +71 -0
  12. package/dist/callout-plqx9Dw-.d.cts +71 -0
  13. package/dist/client/index.cjs +1265 -569
  14. package/dist/client/index.d.cts +3 -542
  15. package/dist/client/index.d.ts +3 -542
  16. package/dist/client/index.js +1167 -521
  17. package/dist/client/mdx.cjs +1 -1
  18. package/dist/client/mdx.d.cts +24 -2
  19. package/dist/client/mdx.d.ts +24 -2
  20. package/dist/client/mdx.js +1 -1
  21. package/dist/client/primitives.cjs +14 -4
  22. package/dist/client/primitives.d.cts +281 -38
  23. package/dist/client/primitives.d.ts +281 -38
  24. package/dist/client/primitives.js +5 -5
  25. package/dist/client/router.cjs +49 -0
  26. package/dist/client/router.d.cts +3 -0
  27. package/dist/client/router.d.ts +3 -0
  28. package/dist/client/router.js +8 -0
  29. package/dist/client/theme/reset.css +40 -4
  30. package/dist/{config-BpzaPsJj.d.cts → config-BoRlz0Ca.d.mts} +157 -14
  31. package/dist/{config-xtS0ZkMm.d.mts → config-CTsX_tGM.d.cts} +157 -14
  32. package/dist/config-Ceib-AOH.cjs +7 -0
  33. package/dist/config-DGLQsy7y.mjs +7 -0
  34. package/dist/{package-BcISI5-P.cjs → config-files-BYHDOrKn.mjs} +1 -1
  35. package/dist/config-files-D9cdBMl2.cjs +6 -0
  36. package/dist/config-jJh8WYJI.cjs +6 -0
  37. package/dist/csp-C4LmN1ko.cjs +6 -0
  38. package/dist/csp-D6JEOqKh.mjs +6 -0
  39. package/dist/dev-Ch3hEe5Y.cjs +6 -0
  40. package/dist/dev-QPNxysrd.mjs +6 -0
  41. package/dist/{docs-layout-BdtZ9z6s.js → docs-layout-CbZ7LDRe.js} +504 -249
  42. package/dist/{docs-layout-CFWI15Id.cjs → docs-layout-vzfXed1Q.cjs} +516 -254
  43. package/dist/{doctor-BBtmNJE0.cjs → doctor-B1_YL0Wt.cjs} +1 -1
  44. package/dist/doctor-C7whl4ED.cjs +6 -0
  45. package/dist/doctor-DmQnml2k.mjs +6 -0
  46. package/dist/{generator-COepVWGi.cjs → generator-BlW45ST7.cjs} +5 -3
  47. package/dist/{generator-CcOBN5vI.mjs → generator-BwknNejd.mjs} +5 -3
  48. package/dist/{handler-XX7cLTqe.cjs → handler-CDEoKARD.cjs} +2 -2
  49. package/dist/{handler-DzQae4eA.mjs → handler-D7UyZlPm.mjs} +2 -2
  50. package/dist/{image-Bz87fCla.js → image-B-NDSDuY.js} +129 -11
  51. package/dist/{image-C4TlpMHn.cjs → image-Hnaa2bJd.cjs} +175 -9
  52. package/dist/index-C56bL-A-.d.cts +1344 -0
  53. package/dist/{sidebar-COTaMHR-.d.ts → index-CPUUKzxD.d.cts} +344 -327
  54. package/dist/{sidebar-CrEdJuHX.d.cts → index-Ci4kfOHF.d.ts} +344 -327
  55. package/dist/index-Cu9H6CRa.d.ts +1344 -0
  56. package/dist/link-CgdI6O2o.js +872 -0
  57. package/dist/{link-D1Gjkb-2.cjs → link-vZjmD-es.cjs} +406 -223
  58. package/dist/{mdx-BuO6a1f7.js → mdx-BRT71V5Q.js} +211 -168
  59. package/dist/{mdx-CD-tSjRG.cjs → mdx-D0Absdq5.cjs} +225 -169
  60. package/dist/native-BNCY7PRF.cjs +6 -0
  61. package/dist/native-Di9Fnfrv.mjs +6 -0
  62. package/dist/native-Kre2T5eS.cjs +6 -0
  63. package/dist/node/cache.cjs +1 -1
  64. package/dist/node/cache.d.cts +19 -3
  65. package/dist/node/cache.d.mts +19 -3
  66. package/dist/node/cache.mjs +1 -1
  67. package/dist/node/cli-entry.cjs +1 -9
  68. package/dist/node/cli-entry.mjs +1 -9
  69. package/dist/node/index.cjs +1 -1
  70. package/dist/node/index.d.cts +245 -17
  71. package/dist/node/index.d.mts +246 -18
  72. package/dist/node/index.mjs +1 -1
  73. package/dist/node/mdx/shiki-adapter.cjs +1 -1
  74. package/dist/node/mdx/shiki-adapter.d.cts +24 -3
  75. package/dist/node/mdx/shiki-adapter.d.mts +24 -2
  76. package/dist/node/mdx/shiki-adapter.mjs +1 -1
  77. package/dist/node-Du5UL5wo.mjs +23 -0
  78. package/dist/node-DunuGqyp.cjs +23 -0
  79. package/dist/{package-CCYEAYeA.mjs → package-DA848keM.mjs} +1 -1
  80. package/dist/package-wplzySjz.cjs +6 -0
  81. package/dist/pages-external-BBw8ObVK.mjs +6 -0
  82. package/dist/pages-external-DPiPFxxP.cjs +6 -0
  83. package/dist/parser-BqTOsEUa.cjs +6 -0
  84. package/dist/parser-CGMY2lJ7.mjs +6 -0
  85. package/dist/plugin-BcTzvHAJ.mjs +69 -0
  86. package/dist/plugin-TulVMt1z.cjs +69 -0
  87. package/dist/plugin-context-C-l90hFt.cjs +15 -0
  88. package/dist/plugin-context-wqHNSZum.mjs +15 -0
  89. package/dist/plugin-lifecycle-B1BzSHdn.cjs +6 -0
  90. package/dist/resolve-B7vWOd8R.cjs +6 -0
  91. package/dist/resolve-C2kKnk_5.mjs +6 -0
  92. package/dist/resolve-It1Iug83.cjs +6 -0
  93. package/dist/resolve-YdTrt_FG.mjs +6 -0
  94. package/dist/router-C3kygdRK.cjs +1285 -0
  95. package/dist/router-CZBxMRAH.js +987 -0
  96. package/dist/routes-BL4y79tb.mjs +6 -0
  97. package/dist/routes-C2nPecwu.cjs +6 -0
  98. package/dist/routes-U9L8psZ9.cjs +6 -0
  99. package/dist/{search-dialog-DHqwjJuG.cjs → search-dialog-BCOHQGSt.cjs} +1 -1
  100. package/dist/search-dialog-Bp_P1MPP.js +481 -0
  101. package/dist/{search-dialog-DFnlx8LO.js → search-dialog-BqkzDTq2.js} +107 -57
  102. package/dist/{search-dialog-BRFno7HD.cjs → search-dialog-CIeIUhAn.cjs} +218 -43
  103. package/dist/{search-dialog-D6TvjcuV.js → search-dialog-DtmxmfEu.js} +1 -1
  104. package/dist/{search-dialog-B1NERUNx.cjs → search-dialog-x_qHU8ty.cjs} +107 -58
  105. package/dist/server/index.cjs +1 -1
  106. package/dist/server/index.d.mts +1 -1
  107. package/dist/server/index.mjs +1 -1
  108. package/dist/update-check-BKqmYfwT.cjs +11 -0
  109. package/dist/update-check-QnrVR3q1.mjs +11 -0
  110. package/dist/utils-8lzafE49.mjs +7 -0
  111. package/dist/utils-ej6_SjIZ.cjs +7 -0
  112. package/dist/virtual-modules-Ca5tHk1X.cjs +30 -0
  113. package/dist/virtual-modules-Dlgt1fP0.mjs +30 -0
  114. package/package.json +18 -16
  115. package/src/shared/mdx-path.ts +12 -0
  116. package/src/shared/structured-data.ts +145 -0
  117. package/src/shared/types.ts +220 -16
  118. package/dist/banner-BMop1KLF.d.ts +0 -100
  119. package/dist/banner-CVD0GugR.d.cts +0 -100
  120. package/dist/cache-CO4Dy2uQ.cjs +0 -6
  121. package/dist/cache-Dk53iOo6.mjs +0 -6
  122. package/dist/config-CCXp3aXO.mjs +0 -7
  123. package/dist/config-CMd4XoFq.cjs +0 -6
  124. package/dist/config-DlGoEM9D.cjs +0 -7
  125. package/dist/csp-CRp_3U7a.cjs +0 -6
  126. package/dist/csp-oTC2ygvF.mjs +0 -6
  127. package/dist/doctor-Bv16QSrI.cjs +0 -7
  128. package/dist/doctor-DOAbSaiL.mjs +0 -7
  129. package/dist/headers-Ddwek8K7.mjs +0 -6
  130. package/dist/headers-dg4SDrjY.cjs +0 -6
  131. package/dist/link-2PzgTnaP.js +0 -673
  132. package/dist/meta-loader-C4Hu9RN9.mjs +0 -6
  133. package/dist/meta-loader-Dq1zcFnh.cjs +0 -6
  134. package/dist/node-BXtqM1uH.mjs +0 -6
  135. package/dist/node-BlVk4EVg.cjs +0 -104
  136. package/dist/node-DOf4zhWc.mjs +0 -104
  137. package/dist/node-aD1eisrR.cjs +0 -6
  138. package/dist/pages-external-BYa4JSda.mjs +0 -6
  139. package/dist/pages-external-XkYIs-d5.cjs +0 -6
  140. package/dist/parser-DCiEWkSk.cjs +0 -8
  141. package/dist/parser-qk9FIHJ7.mjs +0 -8
  142. package/dist/plugin-C95kvu6h.mjs +0 -73
  143. package/dist/plugin-DM3u2bVj.cjs +0 -73
  144. package/dist/routes-BW6zsk7Z.mjs +0 -6
  145. package/dist/routes-BgoIB5wb.cjs +0 -6
  146. package/dist/routes-CORVxc02.cjs +0 -6
  147. package/dist/search-dialog-BmxHiKwt.js +0 -312
  148. package/dist/shiki-adapter-CoQ6jyJ4.cjs +0 -6
  149. package/dist/shiki-adapter-D-aKw7PP.mjs +0 -6
  150. package/dist/utils-Crm9oPcV.mjs +0 -7
  151. package/dist/utils-D6Xtj0FZ.cjs +0 -7
  152. /package/dist/{errors-0zGHRLue.mjs → errors-N-b6Sn2G.mjs} +0 -0
  153. /package/dist/{index-1KsTDq4o.d.mts → index-lFoyzCXy.d.mts} +0 -0
  154. /package/dist/{types-generator-BXhv7Ill.cjs → types-generator-DDSA93P3.cjs} +0 -0
  155. /package/dist/{types-generator-bDPvUztF.mjs → types-generator-DG1GX1EZ.mjs} +0 -0
@@ -1,73 +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-D1Md3oWO.cjs`),t=require(`./node-BlVk4EVg.cjs`),n=require(`./utils-D6Xtj0FZ.cjs`),r=require(`./node/cache.cjs`),i=require(`./routes-BgoIB5wb.cjs`),a=require(`./pages-external-XkYIs-d5.cjs`),o=require(`./config-DlGoEM9D.cjs`),s=require(`./types-generator-BXhv7Ill.cjs`),c=require(`./doctor-Bv16QSrI.cjs`),l=require(`./shiki-adapter-CoQ6jyJ4.cjs`),u=require(`./headers-dg4SDrjY.cjs`),d=require(`./csp-CRp_3U7a.cjs`);let f=require(`node:path`);f=e.r(f);let p=require(`node:fs`);p=e.r(p);let m=require(`@bdocs/dui`),h=require(`node:crypto`);h=e.r(h);let g=require(`node:module`),_=require(`@bdocs/unist-utils`),ee=require(`vite`),te=require(`@bdocs/plugin-image-optimizer`),v=require(`@mdx-js/rollup`);v=e.r(v);let y=require(`remark-gfm`);y=e.r(y);let b=require(`remark-frontmatter`);b=e.r(b);let x=require(`rehype-slug`);x=e.r(x);function S(e){return`<!doctype html>
7
- <html lang="en">
8
- <head>
9
- <meta charset="UTF-8" />
10
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
11
- </head>
12
- <body>
13
- <div id="root"></div>
14
- </body>
15
- </html>`}function ne(e,t,n){return e?typeof e==`string`?e:e[n||``]||Object.values(e)[0]||t:t}function C(e){let t=e.i18n?.defaultLocale,r=ne(e.theme?.title,`Boltdocs`,t),i=e.theme?.favicon;!i&&e.theme?.logo&&(i=typeof e.theme.logo==`string`?e.theme.logo:e.theme.logo.light||e.theme.logo.dark);let a=e.seo?.indexing,o=a===`none`?`noindex, nofollow`:a===`all`?void 0:a,s=e.seo?.metatags||{},c=Object.entries(s).map(([e,t])=>{let r=n.n(e),i=n.n(t);return e.startsWith(`og:`)||e.startsWith(`music:`)||e.startsWith(`video:`)||e.startsWith(`article:`)||e.startsWith(`book:`)||e.startsWith(`profile:`)?`<meta property="${r}" content="${i}">`:`<meta name="${r}" content="${i}">`});return{title:r,favicon:i,robotsContent:o,customMetaTags:c}}function re(e){return[e.favicon?`<link rel="icon" href="${n.n(e.favicon)}">`:``,e.robotsContent?`<meta name="robots" content="${n.n(e.robotsContent)}">`:``,`<meta name="generator" content="Boltdocs">`,...e.customMetaTags].filter(Boolean).join(`
16
- `)}function ie(e){if(!e)return``;let t=[];return e.google&&t.push(`<meta name="google-site-verification" content="${n.n(e.google)}">`),e.bing&&t.push(`<meta name="msvalidate.01" content="${n.n(e.bing)}">`),e.yandex&&t.push(`<meta name="yandex-verification" content="${n.n(e.yandex)}">`),e.pinterest&&t.push(`<meta name="p:domain_verify" content="${n.n(e.pinterest)}">`),e.facebook&&t.push(`<meta name="facebook-domain-verification" content="${n.n(e.facebook)}">`),t.join(`
17
- `)}function ae(e){let t=[],n=e.theme?.logo,r;if(typeof n==`string`?r=n:n&&typeof n==`object`&&(r=n.light||n.dark),r){let e={webp:`image/webp`,png:`image/png`,jpg:`image/jpeg`,jpeg:`image/jpeg`,svg:`image/svg+xml`,avif:`image/avif`}[r.split(`.`).pop()?.toLowerCase()||``]||`image/png`;t.push(`<link rel="preload" as="image" href="${r}" type="${e}" fetchpriority="high">`)}return t.join(`
18
- `)}function oe(){return`
19
- <script>
20
- (function() {
21
- try {
22
- var stored = localStorage.getItem("boltdocs-theme");
23
- var isDark =
24
- stored === "dark" ||
25
- (stored !== "light" && window.matchMedia("(prefers-color-scheme: dark)").matches);
26
- document.documentElement.classList.toggle("dark", isDark);
27
- document.documentElement.dataset.theme = isDark ? "dark" : "light";
28
- } catch (e) {
29
- }
30
- })();
31
- <\/script>
32
- `}function se(e,t){if(!e||!t&&!e.debug)return``;let r=e.anonymizeIp?`gtag('set', 'ip', true);`:``,i=e.sendPageView===!1?`{send_page_view: false}`:`{}`,a=e.cookieFlags?`, {'cookie_flags': '${e.cookieFlags}'}`:``,o=n.n(e.measurementId);return`
33
- <!-- Google tag (gtag.js) -->
34
- <script async src="https://www.googletagmanager.com/gtag/js?id=${o}"><\/script>
35
- <script>
36
- window.dataLayer = window.dataLayer || [];
37
- function gtag(){dataLayer.push(arguments);}
38
- gtag('js', new Date());
39
- ${r}
40
- gtag('config', '${o}', ${i}${a});
41
- <\/script>
42
- `}function ce(e,t){if(!e||!t)return{script:``,noScript:``};let r=n.n(e.dataLayerName||`dataLayer`),i=e.preview?`&gtm_preview=${n.n(e.preview)}`:``,a=n.n(e.tagId);return{script:`
43
- <!-- Google Tag Manager -->
44
- <script defer>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
45
- new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
46
- j=d.createElement(s),dl=l!='${r}'?'&l='+l:'';j.src=
47
- 'https://www.googletagmanager.com/gtm.js?id='+i+dl+'${i}';f.parentNode.insertBefore(j,f);
48
- })(window,document,'script','${r}','${a}');<\/script>
49
- <!-- End Google Tag Manager -->
50
- `,noScript:`
51
- <!-- Google Tag Manager (noscript) -->
52
- <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=${a}"
53
- height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
54
- <!-- End Google Tag Manager (noscript) -->
55
- `}}function le(e,t){if(!e||!t)return``;let{analytics:n,speedInsights:r}=e,i=``;return n&&(i+=`
56
- <script>window.va=window.va||function(){(window.vaq=window.vaq||[]).push(arguments)};<\/script>
57
- <script defer src="/_vercel/insights/script.js"><\/script>
58
- `),r&&(i+=`
59
- <script>window.si=window.si||function(){(window.siq=window.siq||[]).push(arguments)};<\/script>
60
- <script defer src="/_vercel/speed-insights/script.js"><\/script>
61
- `),i}function w(e,t){if(!e||!t)return``;let r=n.n(e.apiKey),i=[`api_host: "${n.n(e.host||`https://us.i.posthog.com`)}"`];return e.capturePageview===!1&&i.push(`capture_pageview: false`),e.capturePageleave===!1&&i.push(`capture_pageleave: false`),e.sessionRecording===!0&&i.push(`session_recording: { recordCrossOriginPages: true }`),e.autocapture===!0&&i.push(`autocapture: true`),`
62
- <!-- PostHog -->
63
- <script>
64
- !function(t,e){var o,n,p,r;e.__SV||(window.posthog=e,e._i=[],e.init=function(i,s,a){function g(t,e){var o=e.split(".");2==o.length&&(t=t[o[0]],e=o[1]),t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}}(p=t.createElement("script")).type="text/javascript",p.crossOrigin="anonymous",p.async=!0,p.src=s.api_host.replace(".i.posthog.com","-assets.i.posthog.com")+"/static/array.js",(r=t.getElementsByTagName("script")[0]).parentNode.insertBefore(p,r);var u=e;for(void 0!==a?(u=e[a]=[]):(a="posthog"),u.people=u.people||[],u.toString=function(t){var e="posthog";return"posthog"!==a&&(e+="."+a),t||(e+=" (stub)"),e},u.people.toString=function(){return u.toString(1)+".people (stub)"},o="init capture register register_once register_for_session unregister unregister_for_session getFeatureFlag getFeatureFlagResult isFeatureEnabled reloadFeatureFlags updateEarlyAccessFeatureEnrollment getEarlyAccessFeatures on onFeatureFlags onSessionId getSurveys getActiveMatchingSurveys renderSurvey canRenderSurvey getNextSurveyStep identify setPersonProperties group resetGroups setPersonPropertiesForFlags resetPersonPropertiesForFlags setGroupPropertiesForFlags resetGroupPropertiesForFlags reset get_distinct_id getGroups get_session_id get_session_replay_url alias set_config startSessionRecording stopSessionRecording sessionRecordingStarted captureException loadToolbar get_property getSessionProperty createPersonProfile opt_in_capturing opt_out_capturing has_opted_in_capturing has_opted_out_capturing clear_opt_in_out_capturing debug".split(" "),n=0;n<o.length;n++)g(u,o[n]);e._i.push([i,s,a])},e.__SV=1)}(document,window.posthog||[]);
65
- posthog.init("${r}", { ${i.join(`, `)} });
66
- <\/script>
67
- `}function ue(e,t){return e.replace(`<head>`,`<head>\n${t}`)}function T(e,t){return e.replace(`</head>`,` ${t}</head>`)}function E(e,t){return t?e.replace(/<body([^>]*)>/,`<body$1>\n${t}`):e}function D(e){return e.includes(`src/main`)||e.includes(`virtual:boltdocs-entry`)?e:e.replace(`</body>`,` <script type="module">import "virtual:boltdocs-entry";<\/script>
68
- </body>`)}function O(e,t){(!e||!e.includes(`<body`)||!e.includes(`<head`))&&(e=S(t));let n=process.env.NODE_ENV===`production`,r=re(C(t)),i=ie(t.seo?.verification),a=ae(t),o=oe(),s=se(t.integrations?.analytics?.ga4,n),c=ce(t.integrations?.analytics?.gtm,n),l=[i,a,r,s,le(t.integrations?.analytics?.vercel,n),w(t.integrations?.analytics?.posthog,n),c.script].filter(Boolean).join(`
69
- `);return e=ue(e,o),e=T(e,l),e=E(e,c.noScript),e=D(e),e}function k(e){return typeof e==`string`?[e]:Array.isArray(e)?e.flatMap(k):e&&typeof e==`object`?Object.values(e).flatMap(k):[]}const de=new Set([`title`,`description`,`permalink`,`sidebarPosition`,`sidebarLabel`,`sidebarHidden`,`hidden`,`category`,`order`,`badge`,`icon`,`date`,`lastUpdated`,`groupTitle`,`groupPosition`,`seo`]);function fe(e){let t=[];for(let n of e){let e=``;n.frontmatter&&(e=k(Object.entries(n.frontmatter).filter(([e])=>!de.has(e)).map(([e,t])=>t)).join(` `));let r=e?`${n._content||``} ${e}`:n._content||``;if(t.push({id:n.path,title:n.title,content:r,url:n.path,display:n.groupTitle?`${n.groupTitle} > ${n.title}`:n.title,locale:n.locale,version:n.version}),n.headings)for(let e of n.headings)t.push({id:`${n.path}#${e.id}`,title:e.text,content:`${e.text} in ${n.title}`,url:`${n.path}#${e.id}`,display:`${n.title} > ${e.text}`,locale:n.locale,version:n.version})}return t}let A=null,j=null,M=null,N=null;function P(){A=null,j=null,M=null,N=null}function F(e,r,a,o){return{name:`vite-plugin-boltdocs-virtual-modules`,resolveId(e){let r=a()?.root||process.cwd();if(e.includes(`boltdocs-entry.tsx`)||e===`virtual:boltdocs-entry`||e===`boltdocs-entry`||e===`\0virtual:boltdocs-entry`)return n.u(f.default.resolve(r,`boltdocs-entry.tsx`));if(e.includes(`boltdocs-client.mjs`)||e===`virtual:boltdocs-client`||e===`boltdocs-client`||e===`\0virtual:boltdocs-client.ts`)return n.u(f.default.resolve(r,`boltdocs-client.mjs`));if(e.startsWith(`\0`)){let n=e.slice(1);if(!n.startsWith(`virtual:boltdocs-`)&&t.d.has(n))return e}else if(!e.startsWith(`virtual:boltdocs-`)&&t.d.has(e))return`\0`+e;return e.startsWith(`virtual:boltdocs-`)?`\0`+e:e.startsWith(`\0virtual:boltdocs-`)?e:null},async load(a){let s=r(),c=a.startsWith(`\0`)?a.slice(1):a;if(!c.includes(`boltdocs-entry.tsx`)&&!c.includes(`boltdocs-client.mjs`)&&!c.startsWith(`virtual:boltdocs-`)&&t.d.has(c)){let e=t.d.get(c);if(!e)return null;try{let t=await e.loader();if(typeof t!=`string`)throw Error(`[boltdocs] Plugin virtual module '${c}' loader must return a string source code, got ${typeof t}.`);return t}catch(e){throw Error(`[boltdocs] Plugin virtual module '${c}' failed to load: ${e instanceof Error?e.message:String(e)}`)}}if(a.includes(`boltdocs-entry.tsx`)||a===`\0virtual:boltdocs-entry`)return t.x(e,s);if(a.includes(`boltdocs-client.mjs`)||a===`\0virtual:boltdocs-client.ts`||a===`virtual:boltdocs-client`){let e=__dirname,t=e;for(;e!==f.default.parse(e).root;){if(p.default.existsSync(f.default.join(e,`package.json`))&&JSON.parse(p.default.readFileSync(f.default.join(e,`package.json`),`utf-8`)).name===`boltdocs`){t=e;break}e=f.default.dirname(e)}let r=f.default.join(t,`src/client/index.ts`),i=f.default.join(t,`dist/client/index.js`);return`export * from '${n.u(p.default.existsSync(r)?r:i)}';`}if(!a.startsWith(`\0virtual:boltdocs-`))return;let l=a.replace(`\0virtual:boltdocs-`,``).replace(/\.tsx?$/,``);if(l===`routes`){if(!M){let e=t.p(await i.t(o,s));M=`export default ${JSON.stringify(e,null,2)};`}return M}if(l===`collections`){if(!N){let e=t.p(await i.t(o,s)),n={};for(let t of e)t.collection&&(n[t.collection]||(n[t.collection]=[]),n[t.collection].push({path:t.path,title:t.title,date:t.date,excerpt:t.excerpt,tags:t.tags,author:t.author,coverImage:t.coverImage,filePath:t.filePath,locale:t.locale,version:t.version,frontmatter:t.frontmatter,draft:t.frontmatter?.draft}));N=`export default ${JSON.stringify(n,null,2)};`}return N}if(l===`config`){if(A===null){let{loadDirectoryMeta:e}=await Promise.resolve().then(()=>require(`./meta-loader-Dq1zcFnh.cjs`));A=await e(o)}let e=A,t={base:s?.base,theme:s?.theme,i18n:s?.i18n,versions:s?.versions,siteUrl:s?.siteUrl,integrations:s?.integrations,plugins:s?.plugins?.map(e=>({name:e.name})),directoryMeta:e};return`export default ${JSON.stringify(t,null,2)};`}if(l===`entry`)return t.x(e,s);if(l===`mdx-components`){let e=[`tsx`,`ts`,`jsx`,`js`],t=null;for(let n of e){let e=f.default.resolve(o,`mdx-components.${n}`);if(p.default.existsSync(e)){t=e;break}}if(t){let e=n.u(t);return`import * as components from '${e}';
70
- const mdxComponents = components.default || components;
71
- export default mdxComponents;
72
- export * from '${e}';`}return`export default {};`}if(l===`layout`){let e=[`tsx`,`jsx`],t=null;for(let n of e){let e=f.default.resolve(o,`layout.${n}`);if(p.default.existsSync(e)){t=e;break}}if(t)return`import UserLayout from '${n.u(t)}';
73
- export default UserLayout;`;throw Error(`[Boltdocs] Layout file not found. A 'layout.tsx' or 'layout.jsx' file is mandatory in your docs directory. Please create one to define your site structure.`)}if(l===`icons`){let e=[`tsx`,`jsx`,`ts`,`js`],t=null;for(let n of e){let e=f.default.resolve(o,`icons.${n}`);if(p.default.existsSync(e)){t=e;break}}return t?`import * as icons from '${n.u(t)}';\nexport default icons;`:`export default {};`}if(l===`search`){if(!j){let e=fe(await i.t(o,s));j=`export default ${JSON.stringify(e,null,2)};`}return j}if(l===`client`){let e=__dirname,t=``;for(;e&&e!==f.default.parse(e).root;){let r=f.default.join(e,`src/client/index.ts`),i=f.default.join(e,`dist/client/index.mjs`),a=f.default.join(e,`client/index.ts`);if(p.default.existsSync(r)){t=n.u(r);break}if(p.default.existsSync(i)){t=n.u(i);break}if(p.default.existsSync(a)){t=n.u(a);break}e=f.default.dirname(e)}if(!t)throw Error(`[boltdocs] Could not resolve boltdocs/client entry point starting from ${__dirname}`);return`export * from '${t}';`}}}}function I(e){return(t,n,r)=>{let i=e().integrations?.feedback?.custom,a=i?.endpoint||`/api/feedback`;if(!i?.enabled||t.method!==`POST`||t.url?.split(`?`)[0]!==a)return r();let o=``,s=0;t.on(`data`,e=>{if(s+=e.length,s>10240){n.statusCode=413,n.end(JSON.stringify({error:`Request body too large`})),t.destroy();return}o+=e}),t.on(`end`,async()=>{n.setHeader(`Content-Type`,`application/json`);try{let{handleFeedback:e}=await Promise.resolve().then(()=>require(`./handler-XX7cLTqe.cjs`)).then(e=>e.n),t=await e(JSON.parse(o),process.env,{owner:i.owner,repo:i.repo,categorySlug:i.categorySlug});n.statusCode=200,n.end(JSON.stringify(t))}catch(e){n.statusCode=500;let t=e instanceof Error?e.message:`Failed to submit feedback`;n.end(JSON.stringify({error:t}))}})}}function L(e){return(t,n,r)=>{let i=t.url||`/`,a=i.split(`?`)[0].split(`#`)[0];if(f.default.extname(a))return r();let o=e(),s=f.default.resolve(o?.root||process.cwd(),o?.build?.outDir||`dist`),c=a.replace(/\/$/,``)||`/`,l=f.default.join(s,c,`index.html`);c!==`/`&&p.default.existsSync(l)&&(t.url=`${c}/index.html${i.includes(`?`)?`?${i.split(`?`)[1]}`:``}`),r()}}const R=/\.(js|css|png|jpe?g|gif|svg|ico|webp|woff2?|ttf|otf|mp4|webm|ogg|mp3|wav|flac|aac|pdf|zip|gz|map|json)$/i;function z(e,t,n){let r=process.env.NODE_ENV===`production`;e.middlewares.use(I(n)),e.middlewares.use((e,t,i)=>{r&&Object.entries(u.t).forEach(([e,n])=>{t.setHeader(e,n)});let a=n();a.security?.enableCSP&&t.setHeader(`Content-Security-Policy`,d.n(a)),i()}),e.middlewares.use((e,t,n)=>{if(e.url===`/robots.txt`){n();return}n()}),e.middlewares.use(async(t,r,i)=>{let a=t.url?.split(`?`)[0]||`/`,o=t.headers.accept||``,s=n();if(o.includes(`text/html`)&&!R.test(a)){let n=S(s);n=O(n,s),n=await e.transformIndexHtml(t.url||`/`,n),r.statusCode=200,r.setHeader(`Content-Type`,`text/html`),r.end(n);return}i()})}const B=[/\/index\./i,/\/getting-started/i,/\/intro/i,/\/readme/i];function V(e){for(let t=0;t<B.length;t++)if(B[t].test(e))return t;return B.length}function pe(e,t,n){setTimeout(async()=>{try{let{generateRoutes:r}=await Promise.resolve().then(()=>require(`./routes-CORVxc02.cjs`)),i=(await r(t,n())).filter(e=>e.filePath).map(e=>e.filePath).sort((e,t)=>V(e)-V(t));for(let t=0;t<i.length;t+=32){let n=i.slice(t,t+32);await Promise.allSettled(n.map(t=>{let n=f.default.relative(process.cwd(),t).replace(/\\/g,`/`),r=n.startsWith(`/`)?n:`/${n}`;return e.transformRequest(r)}))}}catch{}},150)}const H=[`tsx`,`jsx`],U=[`tsx`,`ts`,`jsx`,`js`];function me(e,t){let n=o.t.map(e=>f.default.resolve(process.cwd(),e)),r=H.map(e=>f.default.resolve(t,`layout.${e}`)),i=U.map(e=>f.default.resolve(t,`mdx-components.${e}`)),a=U.map(e=>f.default.resolve(t,`pages-external/index.${e}`)),s=U.map(e=>f.default.resolve(t,`icons.${e}`));e.watcher.add([...n,...i,...r,...a,...s])}const W=new Map;function G(e){let{lastUpdated:t,...n}=e;return h.default.createHash(`md5`).update(JSON.stringify(n)).digest(`hex`)}async function he(e){try{let{data:t}=await n.d(e);return G(t)}catch{return``}}function ge(e){let t=W.get(e);if(t===void 0){let n=i.i.getStale(e);n?.route?.frontmatter&&(t=G(n.route.frontmatter),W.set(e,t))}return t}function _e(e,t){W.set(e,t)}function ve(e){W.delete(e)}const K=[`tsx`,`ts`,`jsx`,`js`];function q(e,t){let n=e.moduleGraph.getModuleById(`\0virtual:boltdocs-${t}.ts`);n&&e.moduleGraph.invalidateModule(n)}function ye(e,r,a,l){let u=new Map,d=a.toLowerCase(),p=null;function h(){if(p)return p;p=new Map;for(let[t,n]of e.moduleGraph.fileToModulesMap.entries())try{p.set(decodeURIComponent(t).toLowerCase(),n)}catch{}return p}e.watcher.on(`all`,()=>{p=null});let g=async(a,p)=>{try{let g=n.u(a);if(o.t.some(e=>g.endsWith(e))){e.restart();return}if(K.some(e=>g.endsWith(`mdx-components.${e}`))){s.t(l(),r),q(e,`mdx-components.tsx`),e.ws.send({type:`full-reload`});return}if(K.some(e=>g.endsWith(`icons.${e}`))){q(e,`icons.tsx`),e.ws.send({type:`full-reload`});return}if(g.endsWith(`layout.tsx`)||g.endsWith(`layout.jsx`)){q(e,`layout.tsx`),e.ws.send({type:`full-reload`});return}if(g.endsWith(`/post.tsx`)||g.endsWith(`/post.jsx`)||g.endsWith(`/list.tsx`)||g.endsWith(`/list.jsx`)){q(e,`entry`),e.ws.send({type:`full-reload`});return}if(g.includes(`/pages-external/`)||g.includes(`\\pages-external\\`)){q(e,`entry`),e.ws.send({type:`full-reload`});return}if(!g.toLowerCase().startsWith(d))return;let _=g.endsWith(`meta.json`)||g.endsWith(`_meta.json`);if(!_&&!n.c(g))return;if(p===`add`||p===`unlink`||_){p===`unlink`&&ve(a),i.r(),P(),t.s(),t.c(p,g).catch(e=>{(0,m.error)(`Plugin HMR handler error:`,e)});let n=l();s.t(n,r),q(e,`config`),q(e,`routes`),q(e,`search`),q(e,`collections`),c.c(r,process.cwd(),n).catch(e=>{(0,m.error)(`Failed to update link tree:`,e)}),e.ws.send({type:`custom`,event:`boltdocs:config-update`,data:{theme:n?.theme,i18n:n?.i18n,versions:n?.versions,siteUrl:n?.siteUrl}}),e.ws.send({type:`full-reload`});return}u.has(g)&&clearTimeout(u.get(g)),u.set(g,setTimeout(async()=>{u.delete(g);try{let t=ge(a),o=await he(a);if(_e(a,o),i.n(a),t!==void 0&&t!==o){P(),q(e,`routes`),q(e,`search`),q(e,`collections`),e.ws.send({type:`full-reload`});return}let s=n.u(f.default.relative(r,a)),c=e.moduleGraph.getModulesByFile(g);if((!c||c.size===0)&&(c=h().get(g.toLowerCase())||null),c&&c.size>0)for(let t of c)e.moduleGraph.invalidateModule(t);else{e.ws.send({type:`full-reload`});return}e.ws.send({type:`custom`,event:`boltdocs:mdx-update`,data:{file:g,relPath:s}})}catch(e){(0,m.error)(`HMR error processing content change:`,e)}},150))}catch(e){(0,m.error)(`HMR error during ${p} event:`,e)}};e.watcher.on(`add`,e=>g(e,`add`)),e.watcher.on(`unlink`,e=>g(e,`unlink`)),e.watcher.on(`change`,e=>g(e,`change`))}function be(e){let t=e.toLowerCase();return({file:e})=>{let r=e.toLowerCase();if(r.startsWith(t)&&(n.c(e)||r.endsWith(`meta.json`)))return[]}}function xe(e,n,r,i,a){return{name:`vite-plugin-boltdocs-dev-server`,apply:`serve`,async configureServer(i){let o=a();await o?.runHook(`beforeDev`),c.c(e,process.cwd(),r()).catch(e=>{(0,m.error)(`Failed to generate initial link tree:`,e)}),pe(i,e,r),z(i,e,r),me(i,e),ye(i,e,n,r),t.u((e,t)=>{i.ws.send(e,t)}),t.o(i),await t.l(),await o?.runHook(`afterDev`)},hotUpdate:be(n)}}const J=new r.TransformCache(`mdx`);function Se(e){let t=l.n(e);return async e=>{let n=await t.getHighlighter();(0,_.visitNodes)(e,l.o.ELEMENT,e=>{if(e.tagName!==`pre`)return;let r=e.children?.[0];if(!r||r.type!==l.o.ELEMENT||r.tagName!==`code`)return;let i=(r.properties?.className||[]).find(e=>e.startsWith(`language-`)),a=i?i.slice(9):l.a.MDX_DEFAULT_LANG;if(a===`mermaid`)return;let o=(0,_.parseMetaString)(r.properties?.metastring||r.data?.meta||``),s=t.getOptions(a,o),c=r.children?.[0]?.value??``;try{let t=n.codeToHast(c,s),r=t.type===`root`&&t.children?t.children[0]:t;r&&r.type===`element`&&(e.children=r.children,e.properties={...e.properties||{},...r.properties||{},[l.i.HIGHLIGHTED]:`true`,[l.i.LANG]:a})}catch(t){(0,m.error)(`[rehypeShiki] Failed to highlight code block:`,t);let n=e.properties??={};n.className=[...Array.isArray(n.className)?n.className:[],l.s.FALLBACK],n[l.i.HIGHLIGHTED]=`false`,n[l.i.LANG]=a}return o.title&&((e.properties??={})[l.i.TITLE]=o.title),_.SKIP})}}function Ce(){return e=>{(0,_.visitNodes)(e,l.o.CODE,e=>{e.meta&&(0,_.setNodeProperty)(e,`metastring`,e.meta)})}}let we=!1;function Te(e,t,r=v.default){let i=e?.plugins?.flatMap(e=>e.remarkPlugins||[])||[],a=e?.plugins?.flatMap(e=>e.rehypePlugins||[])||[],o=r({remarkPlugins:[y.default,b.default,Ce,...i],rehypePlugins:[x.default,[Se,e],...a],jsxRuntime:`automatic`});return{...o,name:`vite-plugin-boltdocs-mdx`,async buildStart(){we||=(await J.load(),!0),o.buildStart&&await o.buildStart.call(this)},async load(e,n){if(e.endsWith(`.md`)||e.endsWith(`.mdx`))try{let n=p.default.readFileSync(e,`utf-8`),r=t?.();return r&&(n=(await r.runChain(`transformSource`,{code:n,filePath:e})).code),n}catch{return null}return o.load?o.load.call(this,e,n):null},async transform(e,r,i){let[a]=r.split(`?`);if(!a.endsWith(`.md`)&&!a.endsWith(`.mdx`))return o.transform?.call(this,e,r,i);let s=process.env.NODE_ENV===`production`?`prod`:`dev`,c=s===`dev`?`${a}:${n.s(a)}:${s}:v4`:`${a}:${h.default.createHash(`md5`).update(e).digest(`hex`)}:${s}:v4`,l=await J.getAsync(c);if(l)return{code:l,map:null};let u=await o.transform.call(this,e,a,i);if(u&&typeof u==`object`&&u.code){let e=u.code,n=t?.();return n&&(e=(await n.runChain(`transformMdx`,{code:e,filePath:a})).code),J.set(c,e),{code:e,map:null}}return u},async buildEnd(){J.save(),await J.flush(),o.buildEnd&&await o.buildEnd.call(this)}}}const Y=(0,g.createRequire)(require(`url`).pathToFileURL(__filename).href),Ee=[`react`,`react-dom`,`react-router-dom`,`react-helmet-async`,`@bdocs/ssg`,`jsdom`],De=[`react/jsx-runtime`,`react/jsx-dev-runtime`,`react-dom/client`];function X(e=Y){try{let e=f.default.join(process.cwd(),`node_modules/boltdocs/package.json`);return p.default.existsSync(e)?(0,g.createRequire)(p.default.realpathSync(e)):(0,g.createRequire)(f.default.join(process.cwd(),`package.json`))}catch{return e}}function Z(e,t=Y){try{let n=e.split(`/`),r=e.startsWith(`@`)?n.slice(0,2).join(`/`):n[0],i=e.startsWith(`@`)?n.slice(2).join(`/`):n.slice(1).join(`/`),a=``;try{a=t.resolve(`${r}/package.json`)}catch{let e=t.resolve(r),n=f.default.dirname(e);for(;n&&n!==f.default.dirname(n);){let e=f.default.join(n,`package.json`);if(p.default.existsSync(e)){a=e;break}n=f.default.dirname(n)}}if(!a)throw Error();let o=f.default.dirname(a),s=JSON.parse(p.default.readFileSync(a,`utf-8`)),c=i?`./${i}`:`.`,l=s.exports?.[c]||s.exports?.[i]||``;typeof l==`object`&&l&&(l=l.import||l.default||l.require||``),!l&&!i&&(l=s.module||s.main||`index.js`);let u=f.default.resolve(o,l);if(p.default.existsSync(u))return u}catch{}return t.resolve(e)}function Q(e=Y){let t=[],r=X(e),i=new Set([r,e]);for(let e of i){for(let n of Ee)try{let r=[`@bdocs/ssg`,`react-router-dom`,`react-helmet-async`].includes(n)?Z(n,e):e.resolve(n);r&&t.push(p.default.realpathSync(r))}catch{}for(let n of De)try{t.push(p.default.realpathSync(e.resolve(n)))}catch{}}return Array.from(new Set(t)).map(e=>n.u(e))}const $=(0,g.createRequire)(require(`url`).pathToFileURL(__filename).href),Oe=[`react`,`react-dom`,`react-router-dom`,`react-helmet-async`,`@bdocs/ssg`];function ke(e={},r){let c=f.default.resolve(process.cwd(),e.docsDir||`docs`),l=n.u(c),u=r,d,m=!1,h,g=[],_=[];if(u?.plugins?.length)try{let{version:e}=JSON.parse(p.default.readFileSync(f.default.resolve(__dirname,`../../../package.json`),`utf-8`)),n=t.h(u.plugins,e);u.plugins=n,h=new t.a(n,u),_=n.flatMap(e=>e.vitePlugins||[])}catch{}let v=()=>u,y=e=>{u=e},b=()=>d,x=()=>h;return[{name:`vite-plugin-boltdocs`,enforce:`pre`,async config(e,n){m=n.command===`build`;let r=!!(n.isSsrBuild||e.build?.ssr);if(Object.assign(process.env,(0,ee.loadEnv)(n.mode,e.envDir||process.cwd(),``)),u||=await o.n(c),g.length===0){g=await i.t(c,u);let e=g.map(e=>e.path),t=(u.base||`/docs`).replace(/\/$/,``);e.includes(t)||e.push(t);let n=a.t(c,u);for(let t of n)e.includes(t)||e.push(t);s.t(u,c,void 0,e),s.r(e)}Promise.resolve().then(()=>require(`./node/mdx/shiki-adapter.cjs`)).then(({getShikiAdapter:e})=>{e(u).getHighlighter().catch(()=>{})}).catch(()=>{});let{version:l}=await Promise.resolve().then(()=>require(`./package-BcISI5-P.cjs`)),f=t.h(u.plugins||[],l);return u.plugins=f,h=new t.a(f,u,c,void 0,g,d?.build?.outDir||`dist`),_=f.flatMap(e=>e.vitePlugins||[]),m&&await h.runHook(`beforeBuild`),{ssgOptions:{entry:`boltdocs/entry`,htmlEntry:`index.html`,dirStyle:`flat`,includeAllRoutes:!0,mock:!0,script:`async`,beastiesOptions:!1,onPageRendered:async(e,t)=>{if(!h)return t;try{let n=(await h.runChain(`transformHtml`,{html:t,path:e})).html;return n=(await h.runMiddlewareChain(`transformHtml`,{html:n,path:e})).html,n}catch{return t}}},build:{ssrManifest:m},optimizeDeps:{include:[`react`,`react-dom`,`react-dom/client`,`react-router-dom`,`react-helmet-async`,`react-fast-compare`,`invariant`],exclude:[`boltdocs`,`boltdocs/client`]},resolve:{alias:r?[]:[{find:`react-router-dom`,replacement:Z(`react-router-dom`)},{find:`react-helmet-async`,replacement:Z(`react-helmet-async`)},{find:`@bdocs/ssg`,replacement:Z(`@bdocs/ssg`)}],dedupe:[`react`,`react-dom`,...r?[]:[`react-router-dom`,`react-helmet-async`,`@bdocs/ssg`]]},ssr:{external:[`react`,`react-dom`,`react-helmet-async`,`react-router-dom`,`@bdocs/ssg`,`jsdom`,...Q($)],optimizeDeps:{include:[`react-fast-compare`]},noExternal:[]}}},configResolved(e){d=e},resolveId(e,t,n){let r=Oe.find(t=>e===t||e.startsWith(`${t}/`)||e.includes(`/node_modules/${t}/`)||t.startsWith(`@`)&&e.includes(`/node_modules/${t.replace(`/`,f.default.sep)}/`));if(r&&n?.ssr&&!f.default.isAbsolute(e)&&r!==`react`&&r!==`react-dom`){let t=X($),n=e;try{n=[`@bdocs/ssg`,`react-router-dom`,`react-helmet-async`].includes(r)?Z(e,t):t.resolve(e)}catch{try{n=[`@bdocs/ssg`,`react-router-dom`,`react-helmet-async`].includes(r)?Z(e,$):$.resolve(e)}catch{}}try{n=p.default.realpathSync(n)}catch{}return{id:n,external:!0}}return null},transformIndexHtml:{order:`pre`,handler:e=>O(e,u)},async closeBundle(){!m||d?.build?.ssr||(await h?.runHook(`afterBuild`),await h?.runHook(`buildEnd`))},configurePreviewServer(e){e.middlewares.use(I(v)),e.middlewares.use(L(b)),t.o(e),t.l().catch(()=>{})}},F(e,v,b,c),xe(c,l,v,y,x),...e.turbo?[]:[Te(u,x)],...e.turbo?[(()=>{let e=null;async function t(){if(!e)try{let{createSatteriMdxPlugin:t}=await Promise.resolve().then(()=>require(`./node-aD1eisrR.cjs`));e=t(u,x)}catch{}return e}return{name:`vite-plugin-boltdocs-satteri-mdx`,enforce:`pre`,async load(e){let n=await t();return n&&n.load?n.load(e):null},async transform(e,n){let r=await t();return r&&r.transform?r.transform(e,n):null},async buildEnd(){let e=await t();e&&e.buildEnd&&await e.buildEnd()}}})()]:[],(0,te.ViteImageOptimizer)({includePublic:!0}),..._]}exports.boltdocsPlugin=ke,exports.getBaseRequire=X,exports.getExternalAbsolutePaths=Q,exports.resolveEsm=Z;
@@ -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{t as e}from"./chunk-BFSpntXv.mjs";import{t}from"./utils-Crm9oPcV.mjs";import{FileCache as n}from"./node/cache.mjs";import{t as r}from"./cache-Dk53iOo6.mjs";import{t as i}from"./pages-external-BYa4JSda.mjs";import a from"node:path";import{fdir as o}from"fdir";const s=new n({name:`routes`});function c(){s.invalidateAll(),r.clear()}function l(e){s.invalidate(e),r.invalidate(e)}function u(e){return e.sort((e,t)=>{let n=e.group?e.groupPosition??999:e.sidebarPosition??999,r=t.group?t.groupPosition??999:t.sidebarPosition??999;return n===r?!e.group&&t.group?-1:e.group&&!t.group?1:e.group&&t.group&&e.group!==t.group?(e.groupTitle||e.group).localeCompare(t.groupTitle||t.group):d(e,t):n-r})}function d(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}var f=e({generateRoutes:()=>b,getExternalRoutePaths:()=>i,invalidateFile:()=>_,invalidateRouteCache:()=>y});let p=null;const m=new Map;async function h(e,t,n){let r=Array(e.length),i=0;async function a(){for(;i<e.length;){let t=i++;r[t]=await n(e[t])}}return await Promise.all(Array.from({length:Math.min(t,e.length)},()=>a())),r}let g=null;function _(e){let t=e.replace(/\\/g,`/`);g&&g[t]&&delete g[t],l(e)}let v=null;function y(){p=null,m.clear(),c(),g=null}async function b(e,n,r,i=!1,c=!1){if(v)return v;let l=(async()=>{let l=r||n?.base||`/docs`;await s.load(),m.clear();let d;if(!i&&p)d=p;else{let t=await new o().withFullPaths().filter(t=>t.endsWith(`.md`)||t.endsWith(`.mdx`)?!a.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],r=t.map(e=>{let t=a.basename(e),r=n.findIndex(e=>e.test(t));return{f:e,score:r===-1?2**53-1:r}});r.sort((e,t)=>e.score-t.score),d=r.map(e=>e.f),p=d}s.pruneStale(new Set(d));let f=process.env.NODE_ENV===`test`||process.env.VITEST===`true`,_,v=!0;for(let e of d)if(!s.get(e)){v=!1;break}if(v)_=d.map(e=>s.get(e));else{if(!f&&!g)try{let{runParser:t}=await import(`@bdocs/parser`);g=await t(e,c)}catch{}if(!f&&g!==null&&g){let{parseDocFileWithNative:t,parseDocFile:r}=await import(`./parser-qk9FIHJ7.mjs`);_=await h(d,32,async i=>{let a=s.get(i);if(a)return a;let o=i.replace(/\\/g,`/`),c=g[o];if(c){let r=await t(i,c,e,l,n);return s.set(i,r),r}else{let t=await r(i,e,l,n);return s.set(i,t),t}})}else{let{parseDocFile:t}=await import(`./parser-qk9FIHJ7.mjs`);_=await h(d,32,async r=>{let i=s.get(r);if(i)return i;let a=await t(r,e,l,n);return s.set(r,a),a})}}s.save();let y=[],b=new Map,S=process.env.NODE_ENV||`development`,C=n?.drafts?.visible||process.env.BOLTDOCS_DRAFTS===`true`||(n?.drafts?.environments?.includes(S)??!1);for(let e of _)if(!(e.route.draft&&!C)){if(e.route.featureFlags&&n?.featureFlags){if(!e.route.featureFlags.every(e=>{let t=n.featureFlags?.[e];return t===!0||t===S}))continue}else if(e.route.featureFlags&&!n?.featureFlags)continue;if(e.inferredCollection){let t=e.inferredCollection;b.has(t)||b.set(t,[]),b.get(t).push(e)}else y.push(e)}let w=new Map,T=[],E=n?.i18n?.defaultLocale||``;for(let e of y)if(e.isGroupIndex&&e.relativeDir&&T.push(e),e.relativeDir){let n=`${e.route.locale||E}:${e.relativeDir}`,r=w.get(n);r?r.position===void 0&&e.inferredGroupPosition!==void 0&&(r.position=e.inferredGroupPosition):(r={title:t(e.relativeDir),position:e.inferredGroupPosition},w.set(n,r))}for(let e of T){let t=`${e.route.locale||E}:${e.relativeDir}`,n=w.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):[E];for(let[r,i]of Object.entries(n.theme.sidebarGroups))for(let n of e){let e=`${n}:${r}`,a=w.get(e),o;typeof i.title==`string`?o=i.title:i.title&&(o=i.title[n]||i.title[E]),a?(o&&(a.title=o),i.icon&&(a.icon=i.icon)):w.set(e,{title:o||t(r),icon:i.icon})}}let D=Array(y.length);for(let e=0;e<y.length;e++){let n=y[e],r=n.relativeDir,i=n.route.locale||E,a=r?`${i}:${r}`:void 0,o=a?w.get(a):void 0,s;o&&(s=typeof o.title==`string`?o.title:o.title[i]||o.title[E]),D[e]={...n.route,group:r,groupTitle:s||(r?t(r):void 0),groupPosition:o?.position,groupIcon:o?.icon}}let O=[];for(let[,e]of b)for(let t of e)O.push({...t.route,collection:t.inferredCollection});O.sort((e,t)=>{let n=e.date?new Date(e.date).getTime():0;return(t.date?new Date(t.date).getTime():0)-n});let k=D;if(n?.i18n){let e=x(D,n,l);k=[...D,...e]}return[...u(k),...O]})();v=l;try{return await l}finally{v=null}}function x(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){if(e===r)continue;let i=o.get(e)||new Set;for(let o of s){let s=S(o.path,r,e,n,t);s!==o.path&&(i.has(s)||a.push({...o,path:s,locale:e}))}}return a}function S(e,t,n,r,i){let a=`${e}:${n}`,o=m.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 m.size>2e3&&m.clear(),m.set(a,d),d}export{s as a,f as i,_ as n,y as r,b as t};
@@ -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-D1Md3oWO.cjs`),t=require(`./utils-D6Xtj0FZ.cjs`),n=require(`./node/cache.cjs`),r=require(`./cache-CO4Dy2uQ.cjs`);let i=require(`node:path`);i=e.r(i);let a=require(`fdir`);const o=new n.FileCache({name:`routes`});function s(){o.invalidateAll(),r.t.clear()}function c(e){o.invalidate(e),r.t.invalidate(e)}function l(e){return e.sort((e,t)=>{let n=e.group?e.groupPosition??999:e.sidebarPosition??999,r=t.group?t.groupPosition??999:t.sidebarPosition??999;return n===r?!e.group&&t.group?-1:e.group&&!t.group?1:e.group&&t.group&&e.group!==t.group?(e.groupTitle||e.group).localeCompare(t.groupTitle||t.group):u(e,t):n-r})}function u(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}let d=null;const f=new Map;async function p(e,t,n){let r=Array(e.length),i=0;async function a(){for(;i<e.length;){let t=i++;r[t]=await n(e[t])}}return await Promise.all(Array.from({length:Math.min(t,e.length)},()=>a())),r}let m=null;function h(e){let t=e.replace(/\\/g,`/`);m&&m[t]&&delete m[t],c(e)}let g=null;function _(){d=null,f.clear(),s(),m=null}async function v(e,n,r,s=!1,c=!1){if(g)return g;let u=(async()=>{let u=r||n?.base||`/docs`;await o.load(),f.clear();let h;if(!s&&d)h=d;else{let t=await new a.fdir().withFullPaths().filter(t=>t.endsWith(`.md`)||t.endsWith(`.mdx`)?!i.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],r=t.map(e=>{let t=i.default.basename(e),r=n.findIndex(e=>e.test(t));return{f:e,score:r===-1?2**53-1:r}});r.sort((e,t)=>e.score-t.score),h=r.map(e=>e.f),d=h}o.pruneStale(new Set(h));let g=process.env.NODE_ENV===`test`||process.env.VITEST===`true`,_,v=!0;for(let e of h)if(!o.get(e)){v=!1;break}if(v)_=h.map(e=>o.get(e));else{if(!g&&!m)try{let{runParser:t}=await import(`@bdocs/parser`);m=await t(e,c)}catch{}if(!g&&m!==null&&m){let{parseDocFileWithNative:t,parseDocFile:r}=await Promise.resolve().then(()=>require(`./parser-DCiEWkSk.cjs`));_=await p(h,32,async i=>{let a=o.get(i);if(a)return a;let s=i.replace(/\\/g,`/`),c=m[s];if(c){let r=await t(i,c,e,u,n);return o.set(i,r),r}else{let t=await r(i,e,u,n);return o.set(i,t),t}})}else{let{parseDocFile:t}=await Promise.resolve().then(()=>require(`./parser-DCiEWkSk.cjs`));_=await p(h,32,async r=>{let i=o.get(r);if(i)return i;let a=await t(r,e,u,n);return o.set(r,a),a})}}o.save();let b=[],x=new Map,S=process.env.NODE_ENV||`development`,C=n?.drafts?.visible||process.env.BOLTDOCS_DRAFTS===`true`||(n?.drafts?.environments?.includes(S)??!1);for(let e of _)if(!(e.route.draft&&!C)){if(e.route.featureFlags&&n?.featureFlags){if(!e.route.featureFlags.every(e=>{let t=n.featureFlags?.[e];return t===!0||t===S}))continue}else if(e.route.featureFlags&&!n?.featureFlags)continue;if(e.inferredCollection){let t=e.inferredCollection;x.has(t)||x.set(t,[]),x.get(t).push(e)}else b.push(e)}let w=new Map,T=[],E=n?.i18n?.defaultLocale||``;for(let e of b)if(e.isGroupIndex&&e.relativeDir&&T.push(e),e.relativeDir){let n=`${e.route.locale||E}:${e.relativeDir}`,r=w.get(n);r?r.position===void 0&&e.inferredGroupPosition!==void 0&&(r.position=e.inferredGroupPosition):(r={title:t.t(e.relativeDir),position:e.inferredGroupPosition},w.set(n,r))}for(let e of T){let t=`${e.route.locale||E}:${e.relativeDir}`,n=w.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):[E];for(let[r,i]of Object.entries(n.theme.sidebarGroups))for(let n of e){let e=`${n}:${r}`,a=w.get(e),o;typeof i.title==`string`?o=i.title:i.title&&(o=i.title[n]||i.title[E]),a?(o&&(a.title=o),i.icon&&(a.icon=i.icon)):w.set(e,{title:o||t.t(r),icon:i.icon})}}let D=Array(b.length);for(let e=0;e<b.length;e++){let n=b[e],r=n.relativeDir,i=n.route.locale||E,a=r?`${i}:${r}`:void 0,o=a?w.get(a):void 0,s;o&&(s=typeof o.title==`string`?o.title:o.title[i]||o.title[E]),D[e]={...n.route,group:r,groupTitle:s||(r?t.t(r):void 0),groupPosition:o?.position,groupIcon:o?.icon}}let O=[];for(let[,e]of x)for(let t of e)O.push({...t.route,collection:t.inferredCollection});O.sort((e,t)=>{let n=e.date?new Date(e.date).getTime():0;return(t.date?new Date(t.date).getTime():0)-n});let k=D;if(n?.i18n){let e=y(D,n,u);k=[...D,...e]}return[...l(k),...O]})();g=u;try{return await u}finally{g=null}}function y(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){if(e===r)continue;let i=o.get(e)||new Set;for(let o of s){let s=b(o.path,r,e,n,t);s!==o.path&&(i.has(s)||a.push({...o,path:s,locale:e}))}}return a}function b(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 o}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return v}});
@@ -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(`./routes-BgoIB5wb.cjs`),t=require(`./pages-external-XkYIs-d5.cjs`);exports.generateRoutes=e.t,exports.getExternalRoutePaths=t.t,exports.invalidateFile=e.n,exports.invalidateRouteCache=e.r;
@@ -1,312 +0,0 @@
1
- /**
2
- * Boltdocs - https://boltdocs.vercel.app
3
- * Copyright (c) 2026 Jesus Alcala
4
- * Licensed under the MIT License.
5
- */
6
- import { B as useConfig, L as X, P as Search, a as useRoutes } from "./link-2PzgTnaP.js";
7
- import { i as ErrorBoundary, n as Navbar, t as SearchDialog$1 } from "./search-dialog-DFnlx8LO.js";
8
- import { useCallback, useEffect, useMemo, useState } from "react";
9
- import { useNavigate } from "react-router-dom";
10
- import { Fragment, jsx, jsxs } from "react/jsx-runtime";
11
- import { Index } from "flexsearch";
12
- import searchData from "virtual:boltdocs-search";
13
-
14
- //#region src/client/components/internal/error-boundary.tsx
15
- function InternalFallback({ error, resetErrorBoundary }) {
16
- return /* @__PURE__ */ jsxs("div", {
17
- className: "p-2 font-mono flex flex-col items-center justify-between min-h-[30vh]",
18
- children: [
19
- /* @__PURE__ */ jsx("p", {
20
- className: "text-lg font-semibold text-red-500",
21
- children: "Something went wrong"
22
- }),
23
- error?.message && /* @__PURE__ */ jsx("pre", {
24
- className: "text-sm mt-2 max-w-md overflow-auto whitespace-pre-wrap break-word",
25
- children: error.message
26
- }),
27
- /* @__PURE__ */ jsx("button", {
28
- type: "button",
29
- onClick: resetErrorBoundary,
30
- className: "px-2 py-3 mt-2 bg-slate-100 rounded border-slate-200 border font-mono font-semibold text-slate-700 hover:scale-105 transition-transform active:scale-95 cursor-pointer",
31
- children: "Try again"
32
- })
33
- ]
34
- });
35
- }
36
- function InternalErrorBoundary({ children, fallback }) {
37
- return /* @__PURE__ */ jsx(ErrorBoundary, {
38
- fallback,
39
- FallbackComponent: !fallback ? InternalFallback : void 0,
40
- children
41
- });
42
- }
43
-
44
- //#endregion
45
- //#region src/client/hooks/use-search.ts
46
- function useSearch(routes) {
47
- const { currentLocale, currentVersion } = useRoutes();
48
- const config = useConfig();
49
- const algoliaConfig = config.integrations?.search?.algolia;
50
- const [isOpen, setIsOpen] = useState(false);
51
- const [query, setQuery] = useState("");
52
- const [index, setIndex] = useState(null);
53
- const [algoliaResults, setAlgoliaResults] = useState([]);
54
- const navigate = useNavigate();
55
- useEffect(() => {
56
- const handleKeyDown = (e) => {
57
- if ((/Mac/.test(navigator.userAgent) ? e.metaKey : e.ctrlKey) && (e.key === "k" || e.key === "j")) {
58
- e.preventDefault();
59
- setIsOpen((prev) => !prev);
60
- }
61
- };
62
- window.addEventListener("keydown", handleKeyDown);
63
- return () => window.removeEventListener("keydown", handleKeyDown);
64
- }, []);
65
- const handleSelect = useCallback((key) => {
66
- const path = String(key);
67
- setIsOpen(false);
68
- const [baseUrl, hash] = path.split("#");
69
- navigate(`${baseUrl}${query ? `?hl=${encodeURIComponent(query)}` : ""}${hash ? `#${hash}` : ""}`);
70
- if (hash) setTimeout(() => {
71
- const el = document.getElementById(hash);
72
- if (el) el.scrollIntoView({ behavior: "smooth" });
73
- }, 100);
74
- }, [navigate, query]);
75
- useEffect(() => {
76
- if (algoliaConfig) return;
77
- if (!isOpen || index) return;
78
- const newIndex = new Index({
79
- preset: "match",
80
- tokenize: "full",
81
- resolution: 9,
82
- cache: true
83
- });
84
- for (const doc of searchData) newIndex.add(doc.id, `${doc.title} ${doc.content}`);
85
- setIndex(newIndex);
86
- }, [
87
- isOpen,
88
- index,
89
- algoliaConfig
90
- ]);
91
- useEffect(() => {
92
- if (!algoliaConfig) return;
93
- if (!query) {
94
- setAlgoliaResults([]);
95
- return;
96
- }
97
- const delayDebounceFn = setTimeout(async () => {
98
- try {
99
- const url = `https://${algoliaConfig.appId}-dsn.algolia.net/1/indexes/${algoliaConfig.indexName}/query`;
100
- const facetFilters = [];
101
- if (currentLocale) facetFilters.push(`lang:${currentLocale}`);
102
- if (currentVersion) facetFilters.push(`version:${currentVersion}`);
103
- let params = `query=${encodeURIComponent(query)}&hitsPerPage=20`;
104
- if (facetFilters.length > 0) params += `&facetFilters=${encodeURIComponent(JSON.stringify(facetFilters))}`;
105
- const response = await fetch(url, {
106
- method: "POST",
107
- headers: {
108
- "Content-Type": "application/json",
109
- "X-Algolia-API-Key": algoliaConfig.apiKey,
110
- "X-Algolia-Application-Id": algoliaConfig.appId
111
- },
112
- body: JSON.stringify({ params })
113
- });
114
- if (!response.ok) throw new Error(`Algolia search request failed: ${response.statusText}`);
115
- setAlgoliaResults(((await response.json()).hits || []).map((hit) => {
116
- let path = hit.url || "";
117
- try {
118
- if (path.startsWith("http://") || path.startsWith("https://")) {
119
- const urlObj = new URL(path);
120
- path = urlObj.pathname + urlObj.search + urlObj.hash;
121
- }
122
- } catch (e) {}
123
- const hierarchy = hit.hierarchy || {};
124
- const levels = [
125
- hierarchy.lvl0,
126
- hierarchy.lvl1,
127
- hierarchy.lvl2,
128
- hierarchy.lvl3,
129
- hierarchy.lvl4,
130
- hierarchy.lvl5,
131
- hierarchy.lvl6
132
- ].filter(Boolean);
133
- const title = levels[levels.length - 1] || "Documentation";
134
- const bio = levels.join(" > ");
135
- return {
136
- id: hit.objectID || path,
137
- title,
138
- path,
139
- bio,
140
- groupTitle: hierarchy.lvl0 || "Docs",
141
- isHeading: !!hit.anchor || path.includes("#")
142
- };
143
- }));
144
- } catch (err) {
145
- console.error("Error fetching search results from Algolia:", err);
146
- }
147
- }, 250);
148
- return () => clearTimeout(delayDebounceFn);
149
- }, [
150
- query,
151
- algoliaConfig,
152
- currentLocale,
153
- currentVersion
154
- ]);
155
- const searchDataMap = useMemo(() => {
156
- const map = /* @__PURE__ */ new Map();
157
- for (const doc of searchData) map.set(doc.id, doc);
158
- return map;
159
- }, []);
160
- return {
161
- isOpen,
162
- setIsOpen,
163
- query,
164
- setQuery,
165
- list: useMemo(() => {
166
- if (!query) return routes.filter((r) => {
167
- const routeLocale = r.locale || config.i18n?.defaultLocale;
168
- const routeVersion = r.version || config.versions?.defaultVersion;
169
- return (!currentLocale || routeLocale === currentLocale) && (!currentVersion || routeVersion === currentVersion);
170
- }).slice(0, 10).map((r) => ({
171
- id: r.path,
172
- title: r.title,
173
- path: r.path,
174
- bio: r.description || "",
175
- groupTitle: r.groupTitle
176
- }));
177
- if (algoliaConfig) return algoliaResults;
178
- if (!index) return [];
179
- const searchResults = index.search(query, {
180
- limit: 20,
181
- suggest: true
182
- });
183
- const results = [];
184
- const seen = /* @__PURE__ */ new Set();
185
- for (const id of searchResults) {
186
- const doc = searchDataMap.get(id);
187
- if (!doc) continue;
188
- const docLocale = doc.locale || config.i18n?.defaultLocale;
189
- const docVersion = doc.version || config.versions?.defaultVersion;
190
- if (!(!currentLocale || docLocale === currentLocale) || !(!currentVersion || docVersion === currentVersion)) continue;
191
- if (seen.has(doc.url)) continue;
192
- seen.add(doc.url);
193
- results.push({
194
- id: doc.url,
195
- title: doc.title,
196
- path: doc.url,
197
- bio: doc.display,
198
- groupTitle: doc.display.split(" > ")[0],
199
- isHeading: doc.url.includes("#")
200
- });
201
- }
202
- return results.slice(0, 10);
203
- }, [
204
- query,
205
- index,
206
- currentLocale,
207
- currentVersion,
208
- routes,
209
- searchDataMap,
210
- algoliaConfig,
211
- algoliaResults,
212
- config
213
- ]),
214
- handleSelect,
215
- input: {
216
- value: query,
217
- onChange: (e) => setQuery(e.target.value)
218
- }
219
- };
220
- }
221
-
222
- //#endregion
223
- //#region src/client/components/ui-base/search-dialog.tsx
224
- function Highlight({ text, query }) {
225
- if (!query || !text) return /* @__PURE__ */ jsx(Fragment, { children: text });
226
- const escapedQuery = query.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
227
- const regex = new RegExp(`(${escapedQuery})`, "gi");
228
- return /* @__PURE__ */ jsx(Fragment, { children: text.split(regex).map((part, i) => regex.test(part) ? /* @__PURE__ */ jsx("mark", {
229
- className: "bg-primary-500/20 text-primary-600 dark:text-primary-400 font-bold px-0.5 rounded-sm",
230
- children: part
231
- }, i) : part) });
232
- }
233
- function SearchDialog({ routes }) {
234
- const { isOpen, setIsOpen, query, setQuery, list, handleSelect } = useSearch(routes);
235
- return /* @__PURE__ */ jsxs(Fragment, { children: [
236
- /* @__PURE__ */ jsxs(Navbar.SearchTrigger.Desktop, {
237
- onPress: () => setIsOpen(true),
238
- className: "rounded-xl border border-subtle bg-surface text-muted transition-all duration-200 hover:border-primary-500/50 hover:text-body hover:bg-soft/50 hover:shadow-sm active:scale-[0.98] focus-visible:ring-2 focus-visible:ring-primary-500/30",
239
- children: [/* @__PURE__ */ jsxs("div", {
240
- className: "flex items-center gap-2",
241
- children: [/* @__PURE__ */ jsx(Search, { size: 16 }), /* @__PURE__ */ jsx("span", {
242
- className: "hidden sm:inline-block",
243
- children: "Search docs..."
244
- })]
245
- }), /* @__PURE__ */ jsx(Navbar.SearchTrigger.Kbd, { className: "[&_kbd]:bg-main [&_kbd]:border [&_kbd]:border-subtle [&_kbd]:rounded [&_kbd]:px-1.5 [&_kbd]:h-5 [&_kbd]:w-5" })]
246
- }),
247
- /* @__PURE__ */ jsx(Navbar.SearchTrigger.Mobile, {
248
- onPress: () => setIsOpen(true),
249
- className: "rounded-xl text-muted transition-all duration-200 hover:text-body active:scale-95 focus-visible:ring-2 focus-visible:ring-primary-500/30",
250
- children: /* @__PURE__ */ jsx(Search, { size: 20 })
251
- }),
252
- /* @__PURE__ */ jsx(InternalErrorBoundary, { children: /* @__PURE__ */ jsx(SearchDialog$1.Overlay, {
253
- isOpen,
254
- isDismissable: true,
255
- onOpenChange: () => setIsOpen(false),
256
- className: "fixed inset-0 z-100 flex items-center justify-center p-4 bg-black/40 backdrop-blur-xs animate-fade-in",
257
- children: /* @__PURE__ */ jsx(SearchDialog$1.Content, {
258
- className: "w-full max-w-lg bg-main border border-subtle shadow-md rounded-2xl overflow-hidden p-6",
259
- children: /* @__PURE__ */ jsx(SearchDialog$1.Dialog, {
260
- "aria-label": "Search documentation",
261
- className: "flex flex-col min-h-0 h-[450px]",
262
- children: /* @__PURE__ */ jsxs(SearchDialog$1.Autocomplete, {
263
- onSelectionChange: handleSelect,
264
- className: "flex flex-col min-h-0",
265
- children: [/* @__PURE__ */ jsxs(SearchDialog$1.Input, {
266
- value: query,
267
- onChange: setQuery,
268
- className: "flex items-center gap-2 border border-subtle bg-surface px-4 py-2.5 rounded-xl focus-within:border-primary-500 mb-4",
269
- children: [/* @__PURE__ */ jsx(SearchDialog$1.Input.SearchInput, {
270
- placeholder: "Search documentation...",
271
- className: "w-full bg-transparent outline-none text-body text-sm"
272
- }), query && /* @__PURE__ */ jsx(SearchDialog$1.Input.Button, {
273
- onPress: () => setQuery(""),
274
- className: "text-muted hover:text-body hover:bg-surface rounded-md p-1 cursor-pointer select-none transition-colors",
275
- children: /* @__PURE__ */ jsx(X, { size: 16 })
276
- })]
277
- }), /* @__PURE__ */ jsx(SearchDialog$1.List, {
278
- items: list,
279
- children: (item) => /* @__PURE__ */ jsxs(SearchDialog$1.Item, {
280
- onPress: () => handleSelect(item.id),
281
- textValue: item.title,
282
- className: "flex items-center gap-3 px-4 py-2 rounded-xl group dark:hover:bg-primary-300/40 hover:bg-primary-200/50 transition-colors duration-100",
283
- children: [/* @__PURE__ */ jsx(SearchDialog$1.Item.Icon, {
284
- isHeading: item.isHeading,
285
- className: "text-muted group-hover:text-primary-500 group-focus:text-primary-500"
286
- }), /* @__PURE__ */ jsxs("div", {
287
- className: "flex flex-col justify-center min-w-0",
288
- children: [/* @__PURE__ */ jsx(SearchDialog$1.Item.Title, {
289
- className: "text-sm font-medium text-body truncate dark:group-hover:text-primary-100",
290
- children: /* @__PURE__ */ jsx(Highlight, {
291
- text: item.title,
292
- query
293
- })
294
- }), /* @__PURE__ */ jsx(SearchDialog$1.Item.Bio, {
295
- className: "text-xs text-muted truncate",
296
- children: /* @__PURE__ */ jsx(Highlight, {
297
- text: item.bio,
298
- query
299
- })
300
- })]
301
- })]
302
- }, item.id)
303
- })]
304
- })
305
- })
306
- })
307
- }) })
308
- ] });
309
- }
310
-
311
- //#endregion
312
- export { useSearch as n, InternalErrorBoundary as r, SearchDialog as t };
@@ -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-D1Md3oWO.cjs`),t=require(`./utils-D6Xtj0FZ.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/themes/tokyo-night`);s=e.r(s);let c=require(`@shikijs/themes/dracula`);c=e.r(c);let l=require(`@shikijs/themes/nord`);l=e.r(l);let u=require(`@shikijs/themes/one-dark-pro`);u=e.r(u);let d=require(`@shikijs/themes/one-light`);d=e.r(d);let f=require(`@shikijs/langs/html`);f=e.r(f);let p=require(`@shikijs/langs/js`);p=e.r(p);let m=require(`@shikijs/langs/ts`);m=e.r(m);let h=require(`@shikijs/langs/tsx`);h=e.r(h);let g=require(`@shikijs/langs/css`);g=e.r(g);let _=require(`@shikijs/langs/json`);_=e.r(_);let v=require(`@shikijs/langs/jsonc`);v=e.r(v);let y=require(`@shikijs/langs/bash`);y=e.r(y);let b=require(`@shikijs/langs/ini`);b=e.r(b);let x=require(`@shikijs/langs/markdown`);x=e.r(x);let S=require(`@shikijs/langs/mdx`);S=e.r(S);let C=require(`@shikijs/langs/yaml`);C=e.r(C);let w=require(`@shikijs/langs/rust`);w=e.r(w);let T=require(`@shikijs/langs/toml`);T=e.r(T);let E=require(`@shikijs/langs/csv`);E=e.r(E);const D=[a.default.default||a.default,o.default.default||o.default,s.default.default||s.default,c.default.default||c.default,l.default.default||l.default,u.default.default||u.default,d.default.default||d.default],O=[f.default,p.default,m.default,h.default,g.default,_.default,v.default,y.default,b.default,x.default,S.default,C.default,w.default,T.default,E.default];let k=null;async function A(){return(0,r.createOnigurumaEngine)(await import(`shiki/wasm`))}const j=async e=>k||(k=(async()=>(0,i.createHighlighterCore)({themes:D,langs:O,engine:await A()}))(),k),M={ROOT:`root`,ELEMENT:`element`,TEXT:`text`,COMMENT:`comment`,CODE:`code`,INLINE_CODE:`inlineCode`,HEADING:`heading`,PARAGRAPH:`paragraph`,LINK:`link`,IMAGE:`image`,LIST:`list`,LIST_ITEM:`listItem`,JSX_FLOW_ELEMENT:`mdxJsxFlowElement`,JSX_TEXT_ELEMENT:`mdxJsxTextElement`,JSX_ATTRIBUTE:`mdxJsxAttribute`,FLOW_EXPRESSION:`mdxFlowExpression`,TEXT_EXPRESSION:`mdxTextExpression`,ESM:`mdxjsEsm`},N={TITLE:`data-title`,LANG:`data-lang`,HIGHLIGHTED:`data-highlighted`,HIGHLIGHTED_HTML:`data-highlighted-html`},P={LINE_NUMBERS:`shiki-line-numbers`,WORD_WRAP:`shiki-word-wrap`,FALLBACK:`shiki-fallback`},F={LIGHT:`github-light`,DARK:`github-dark`},I={LANG:`plaintext`,MDX_DEFAULT_LANG:`text`},L=(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,P.LINE_NUMBERS)}}},R=(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,P.WORD_WRAP)}}},z=()=>({name:`AddTitleProperty`,pre(e){let t=this.options.meta?.title;t&&(e.properties[N.TITLE]=t)}}),B=()=>({name:`AddLanguageProperty`,pre(e){e.properties[N.LANG]=this.options.lang||I.LANG}});function V(e){let t={};if(!e)return t;/lineNumbers|showLineNumbers/.test(e)&&(t.lineNumbers=!0),/wordWrap|word-wrap/.test(e)&&(t.wordWrap=!0);let n=e.match(/title=(["'])(.*?)\1/);return n&&(t.title=n[2]),t}var H=class{config;constructor(e){this.config=e}getTheme(){return this.config?.theme?.codeTheme||{light:F.LIGHT,dark:F.DARK}}async getHighlighter(){return await j(this.getTheme())}getOptions(e,t){let n=this.getTheme(),r={},i=``;typeof t==`string`?(i=t,r=V(t)):t&&(r=t,i=t.__raw||``);let a={lang:e||I.LANG,meta:{__raw:i,...r},transformers:[L(),R(),z(),B()]};return typeof n==`object`?a.themes={light:n.light,dark:n.dark}:a.theme=n,a}async render(e,r,i){try{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="${P.FALLBACK}"><code>${t.n(e)}</code></pre>`}}};let U=null,W;function G(e){let t=JSON.stringify(e?.theme?.codeTheme||null);return(U===null||W!==t)&&(U=new H(e),W=t),U}Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return I}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return G}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return V}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return P}}),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
- import{n as e}from"./utils-Crm9oPcV.mjs";import{error as t}from"@bdocs/dui";import{createOnigurumaEngine as n}from"@shikijs/engine-oniguruma";import{createHighlighterCore as r}from"shiki/core";import i from"@shikijs/themes/github-light";import a from"@shikijs/themes/github-dark";import o from"@shikijs/themes/tokyo-night";import s from"@shikijs/themes/dracula";import c from"@shikijs/themes/nord";import l from"@shikijs/themes/one-dark-pro";import u from"@shikijs/themes/one-light";import d from"@shikijs/langs/html";import f from"@shikijs/langs/js";import p from"@shikijs/langs/ts";import m from"@shikijs/langs/tsx";import h from"@shikijs/langs/css";import g from"@shikijs/langs/json";import _ from"@shikijs/langs/jsonc";import v from"@shikijs/langs/bash";import y from"@shikijs/langs/ini";import b from"@shikijs/langs/markdown";import x from"@shikijs/langs/mdx";import S from"@shikijs/langs/yaml";import C from"@shikijs/langs/rust";import w from"@shikijs/langs/toml";import T from"@shikijs/langs/csv";const E=[i.default||i,a.default||a,o.default||o,s.default||s,c.default||c,l.default||l,u.default||u],D=[d,f,p,m,h,g,_,v,y,b,x,S,C,w,T];let O=null;async function k(){return n(await import(`shiki/wasm`))}const A=async e=>O||(O=(async()=>r({themes:E,langs:D,engine:await k()}))(),O),j={ROOT:`root`,ELEMENT:`element`,TEXT:`text`,COMMENT:`comment`,CODE:`code`,INLINE_CODE:`inlineCode`,HEADING:`heading`,PARAGRAPH:`paragraph`,LINK:`link`,IMAGE:`image`,LIST:`list`,LIST_ITEM:`listItem`,JSX_FLOW_ELEMENT:`mdxJsxFlowElement`,JSX_TEXT_ELEMENT:`mdxJsxTextElement`,JSX_ATTRIBUTE:`mdxJsxAttribute`,FLOW_EXPRESSION:`mdxFlowExpression`,TEXT_EXPRESSION:`mdxTextExpression`,ESM:`mdxjsEsm`},M={TITLE:`data-title`,LANG:`data-lang`,HIGHLIGHTED:`data-highlighted`,HIGHLIGHTED_HTML:`data-highlighted-html`},N={LINE_NUMBERS:`shiki-line-numbers`,WORD_WRAP:`shiki-word-wrap`,FALLBACK:`shiki-fallback`},P={LIGHT:`github-light`,DARK:`github-dark`},F={LANG:`plaintext`,MDX_DEFAULT_LANG:`text`},I=(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,N.LINE_NUMBERS)}}},L=(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,N.WORD_WRAP)}}},R=()=>({name:`AddTitleProperty`,pre(e){let t=this.options.meta?.title;t&&(e.properties[M.TITLE]=t)}}),z=()=>({name:`AddLanguageProperty`,pre(e){e.properties[M.LANG]=this.options.lang||F.LANG}});function B(e){let t={};if(!e)return t;/lineNumbers|showLineNumbers/.test(e)&&(t.lineNumbers=!0),/wordWrap|word-wrap/.test(e)&&(t.wordWrap=!0);let n=e.match(/title=(["'])(.*?)\1/);return n&&(t.title=n[2]),t}var V=class{config;constructor(e){this.config=e}getTheme(){return this.config?.theme?.codeTheme||{light:P.LIGHT,dark:P.DARK}}async getHighlighter(){return await A(this.getTheme())}getOptions(e,t){let n=this.getTheme(),r={},i=``;typeof t==`string`?(i=t,r=B(t)):t&&(r=t,i=t.__raw||``);let a={lang:e||F.LANG,meta:{__raw:i,...r},transformers:[I(),L(),R(),z()]};return typeof n==`object`?a.themes={light:n.light,dark:n.dark}:a.theme=n,a}async render(n,r,i){try{let e=await this.getHighlighter(),t=this.getOptions(r,i);return e.codeToHtml(n,t)}catch(r){return t(`[ShikiAdapter] Failed to render code:`,r),`<pre class="${N.FALLBACK}"><code>${e(n)}</code></pre>`}}};let H=null,U;function W(e){let t=JSON.stringify(e?.theme?.codeTheme||null);return(H===null||U!==t)&&(H=new V(e),U=t),H}export{F as a,M as i,W as n,j as o,B as r,N as s,V as t};
@@ -1,7 +0,0 @@
1
- /**
2
- * Boltdocs - https://boltdocs.vercel.app
3
- * Copyright (c) 2026 Jesus Alcala
4
- * Licensed under the MIT License.
5
- */
6
- import{r as e}from"./errors-0zGHRLue.mjs";import t from"node:fs";import n from"isomorphic-dompurify";import{z as r}from"zod";import{error as i}from"@bdocs/dui";const a=/^[a-zA-Z0-9\-_/.()[\]]+$/,o=r.looseObject({title:r.string().max(200).optional(),description:r.string().max(500).optional(),permalink:r.string().optional(),sidebarPosition:r.number().optional(),sidebarLabel:r.string().max(100).optional(),sidebarHidden:r.boolean().optional(),hidden:r.boolean().optional(),category:r.string().max(50).optional(),order:r.number().optional(),badge:r.union([r.string().max(50),r.object({text:r.string().max(50),expires:r.string().optional()})]).optional(),icon:r.string().max(50).optional(),date:r.union([r.string(),r.date()]).optional(),lastUpdated:r.union([r.string(),r.date()]).optional(),groupTitle:r.string().max(100).optional(),groupPosition:r.number().optional(),seo:r.record(r.string(),r.any()).optional(),tags:r.array(r.string().max(50)).optional(),author:r.union([r.string().max(100),r.object({name:r.string().max(100),avatar:r.string().optional(),url:r.string().optional(),image:r.string().optional()})]).optional(),draft:r.boolean().optional(),excerpt:r.string().max(500).optional(),coverImage:r.string().nullable().optional()});function s(e){let t=e.trim();if(!t.startsWith(`---`))return{data:{},content:e,rawMatter:``};let n=t.indexOf(`---`,3);if(n===-1||n===3)return{data:{},content:e,rawMatter:``};let r=t.slice(3,n).trim(),i=t.slice(n+3).trim();return c(r)?{data:{},content:i,rawMatter:r}:{data:l(r),content:i,rawMatter:r}}function c(e){let t=!1,n=!1;for(let r=0;r<e.length;r++){let i=e[r],a=r>0?e[r-1]:``;i===`'`&&!n&&a!==`\\`?t=!t:i===`"`&&!t&&a!==`\\`&&(n=!n)}return t||n}function l(e){let t=e.split(`
7
- `),n={},r=0;for(;r<t.length;){let e=t[r],i=e.trim();if(!i||i.startsWith(`#`)){r++;continue}let a=i.indexOf(`:`);if(a!==-1){let o=i.slice(0,a).trim(),s=i.slice(a+1).trim();if(s===``){let i=u(t.slice(r+1),e.search(/\S|$/));i.value===void 0?r++:(n[o]=i.value,r+=i.linesConsumed+1)}else n[o]=d(s),r++}else r++}return n}function u(e,t){if(e.length===0)return{value:void 0,linesConsumed:0};if(e[0].trim().startsWith(`-`)){let n=[],r=0;for(;r<e.length;){let i=e[r],a=i.search(/\S|$/),o=i.trim();if(!o||o.startsWith(`#`)){r++;continue}if(o.startsWith(`-`)){let e=o.slice(1).trim();if(e.includes(`:`)){let t={},r=e.split(/,\s*/);for(let e of r){let n=e.indexOf(`:`);if(n!==-1){let r=e.slice(0,n).trim();t[r]=d(e.slice(n+1).trim())}}n.push(t)}else{let t={value:e};n.push(t)}}else if(a>t&&n.length>0){let e=n[n.length-1];if(typeof e==`object`&&e){let t=e,n=o.indexOf(`:`);if(n!==-1){let e=o.slice(0,n).trim();t[e]=d(o.slice(n+1).trim())}}}else break;r++}return{value:n.length>0?n:void 0,linesConsumed:r}}let n={},r=0;for(;r<e.length;){let i=e[r],a=i.search(/\S|$/),o=i.trim();if(!o||o.startsWith(`#`)){r++;continue}if(a<=t)break;let s=o.indexOf(`:`);if(s!==-1){let e=o.slice(0,s).trim();n[e]=d(o.slice(s+1).trim())}r++}return{value:Object.keys(n).length>0?n:void 0,linesConsumed:r}}function d(e){let t=e.trim();if(t===`true`)return!0;if(t===`false`)return!1;if(t===`null`||t===`~`)return null;if(/^-?\d+(\.\d+)?$/.test(t))return Number(t);if(t.startsWith(`"`)&&t.endsWith(`"`)||t.startsWith(`'`)&&t.endsWith(`'`))return t.slice(1,-1);if(t.startsWith(`[`)&&t.endsWith(`]`)){let e=t.slice(1,-1).trim();return e?e.split(/,\s*/).map(e=>d(e.trim())):[]}if(t.startsWith(`{`)&&t.endsWith(`}`)){let e=t.slice(1,-1).trim(),n={},r=e.split(/,\s*/);for(let e of r){let t=e.indexOf(`:`);if(t!==-1){let r=e.slice(0,t).trim();n[r]=d(e.slice(t+1).trim())}}return n}return t}function f(e){return e.replace(/\\/g,`/`)}function p(e){return e.replace(/^\d+\./,``)}function m(e){let t=e.match(/^(\d+)\./);return t?parseInt(t[1],10):void 0}function h(e){return/\.mdx?$/.test(e)}const g=new Map;function _(e){let n=Date.now(),r=g.get(e);if(r&&n-r.ts<2e3)return r.mtime;try{let r=t.statSync(e).mtimeMs;return g.set(e,{mtime:r,ts:n}),r}catch{return 0}}function v(t,n,r){let{data:i,content:a,rawMatter:c}=s(n);if(c&&c.length>10240)throw D(`FRONTMATTER_TOO_LARGE`,`Frontmatter block exceeds size limit`,{size:c.length,file:t}),new e(`Security breach: Frontmatter size exceeds limit of 10240 bytes`);if(!r)return{data:i,content:a};let l=o.safeParse(i),u={...l.success?l.data:{}};return u.title&&=w(u.title).trim(),u.description&&=w(u.description).trim(),{data:u,content:a}}async function y(n,r=!0){let i=``;try{i=await t.promises.readFile(n,`utf-8`);let{data:e,content:a}=v(n,i,r);if(r&&!e.lastUpdated)try{e.lastUpdated=(await t.promises.stat(n)).mtimeMs}catch{e.lastUpdated=0}return{data:e,content:a,raw:i}}catch(t){if(t instanceof e)throw t;return{data:{},content:i,raw:i}}}function b(e){return e.replace(/&/g,`&amp;`).replace(/"/g,`&quot;`).replace(/'/g,`&apos;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`)}function x(e){return b(e)}function S(e){let t=f(e).split(`/`).map(e=>E(p(e))).join(`/`).replace(/\/$/,``);return t=t.replace(/\.mdx?$/,``),(t===`index`||t.endsWith(`/index`))&&(t=t.replace(/index$/,``)),t.startsWith(`/`)||(t=`/`+t),t.length>1&&t.endsWith(`/`)&&(t=t.slice(0,-1)),t}function C(e){return n.sanitize(e,{ALLOWED_TAGS:`b.i.em.strong.a.p.br.code.pre.span.div.h1.h2.h3.h4.h5.h6.ul.ol.li.table.thead.tbody.tr.th.td.blockquote.hr`.split(`.`),ALLOWED_ATTR:[`href`,`title`,`target`,`class`,`id`,`src`,`alt`,`width`,`height`],FORCE_BODY:!0})}n.addHook(`afterSanitizeAttributes`,e=>{if(e.hasAttribute(`href`)){let t=e.getAttribute(`href`)?.toLowerCase()||``;(t.startsWith(`javascript:`)||t.startsWith(`data:`)||t.startsWith(`vbscript:`))&&e.removeAttribute(`href`)}if(e.hasAttribute(`src`)){let t=e.getAttribute(`src`)?.toLowerCase()||``;(t.startsWith(`javascript:`)||t.startsWith(`data:`)||t.startsWith(`vbscript:`))&&e.removeAttribute(`src`)}});function w(e){return e?n.sanitize(e,{ALLOWED_TAGS:[]}).replace(/\s+/g,` `).trim():``}function T(e){return e.charAt(0).toUpperCase()+e.slice(1)}function E(e){return e.replace(/[^a-zA-Z0-9\-_/.]/g,``).split(`/`).filter(e=>e!==`..`&&e!==`.`).map(e=>e.replace(/\.\.+/g,`.`)).join(`/`)}function D(e,t,n={}){let r=new Date().toISOString(),a={...n};for(let e in a)typeof a[e]==`string`&&a[e].includes(`:`)&&(a[e]=a[e].split(/[\\/]/).pop()||a[e]);i(`[SECURITY][${r}] TYPE: ${e} | MESSAGE: ${t} | DETAILS: ${JSON.stringify(a)}`)}function O(){let e=process.env.NODE_ENV!==`production`,t=process.env.BOLTDOCS_CACHE_COMPRESS===void 0?!e:process.env.BOLTDOCS_CACHE_COMPRESS!==`0`;return{dir:process.env.BOLTDOCS_CACHE_DIR||`.boltdocs/cache`,noCache:process.env.BOLTDOCS_NO_CACHE===`1`,lruLimit:parseInt(process.env.BOLTDOCS_CACHE_LRU_LIMIT||`2000`,10),lruTTL:parseInt(process.env.BOLTDOCS_CACHE_LRU_TTL||`14400000`,10),compress:t}}export{o as _,S as a,h as c,y as d,E as f,s as g,p as h,m as i,D as l,w as m,b as n,O as o,C as p,x as r,_ as s,T as t,f as u,a as v};
@@ -1,7 +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-D1Md3oWO.cjs`),t=require(`./errors-vKw8CkiX.cjs`);let n=require(`node:fs`);n=e.r(n);let r=require(`isomorphic-dompurify`);r=e.r(r);let i=require(`zod`),a=require(`@bdocs/dui`);const o=/^[a-zA-Z0-9\-_/.()[\]]+$/,s=i.z.looseObject({title:i.z.string().max(200).optional(),description:i.z.string().max(500).optional(),permalink:i.z.string().optional(),sidebarPosition:i.z.number().optional(),sidebarLabel:i.z.string().max(100).optional(),sidebarHidden:i.z.boolean().optional(),hidden:i.z.boolean().optional(),category:i.z.string().max(50).optional(),order:i.z.number().optional(),badge:i.z.union([i.z.string().max(50),i.z.object({text:i.z.string().max(50),expires:i.z.string().optional()})]).optional(),icon:i.z.string().max(50).optional(),date:i.z.union([i.z.string(),i.z.date()]).optional(),lastUpdated:i.z.union([i.z.string(),i.z.date()]).optional(),groupTitle:i.z.string().max(100).optional(),groupPosition:i.z.number().optional(),seo:i.z.record(i.z.string(),i.z.any()).optional(),tags:i.z.array(i.z.string().max(50)).optional(),author:i.z.union([i.z.string().max(100),i.z.object({name:i.z.string().max(100),avatar:i.z.string().optional(),url:i.z.string().optional(),image:i.z.string().optional()})]).optional(),draft:i.z.boolean().optional(),excerpt:i.z.string().max(500).optional(),coverImage:i.z.string().nullable().optional()});function c(e){let t=e.trim();if(!t.startsWith(`---`))return{data:{},content:e,rawMatter:``};let n=t.indexOf(`---`,3);if(n===-1||n===3)return{data:{},content:e,rawMatter:``};let r=t.slice(3,n).trim(),i=t.slice(n+3).trim();return l(r)?{data:{},content:i,rawMatter:r}:{data:u(r),content:i,rawMatter:r}}function l(e){let t=!1,n=!1;for(let r=0;r<e.length;r++){let i=e[r],a=r>0?e[r-1]:``;i===`'`&&!n&&a!==`\\`?t=!t:i===`"`&&!t&&a!==`\\`&&(n=!n)}return t||n}function u(e){let t=e.split(`
7
- `),n={},r=0;for(;r<t.length;){let e=t[r],i=e.trim();if(!i||i.startsWith(`#`)){r++;continue}let a=i.indexOf(`:`);if(a!==-1){let o=i.slice(0,a).trim(),s=i.slice(a+1).trim();if(s===``){let i=d(t.slice(r+1),e.search(/\S|$/));i.value===void 0?r++:(n[o]=i.value,r+=i.linesConsumed+1)}else n[o]=f(s),r++}else r++}return n}function d(e,t){if(e.length===0)return{value:void 0,linesConsumed:0};if(e[0].trim().startsWith(`-`)){let n=[],r=0;for(;r<e.length;){let i=e[r],a=i.search(/\S|$/),o=i.trim();if(!o||o.startsWith(`#`)){r++;continue}if(o.startsWith(`-`)){let e=o.slice(1).trim();if(e.includes(`:`)){let t={},r=e.split(/,\s*/);for(let e of r){let n=e.indexOf(`:`);if(n!==-1){let r=e.slice(0,n).trim();t[r]=f(e.slice(n+1).trim())}}n.push(t)}else{let t={value:e};n.push(t)}}else if(a>t&&n.length>0){let e=n[n.length-1];if(typeof e==`object`&&e){let t=e,n=o.indexOf(`:`);if(n!==-1){let e=o.slice(0,n).trim();t[e]=f(o.slice(n+1).trim())}}}else break;r++}return{value:n.length>0?n:void 0,linesConsumed:r}}let n={},r=0;for(;r<e.length;){let i=e[r],a=i.search(/\S|$/),o=i.trim();if(!o||o.startsWith(`#`)){r++;continue}if(a<=t)break;let s=o.indexOf(`:`);if(s!==-1){let e=o.slice(0,s).trim();n[e]=f(o.slice(s+1).trim())}r++}return{value:Object.keys(n).length>0?n:void 0,linesConsumed:r}}function f(e){let t=e.trim();if(t===`true`)return!0;if(t===`false`)return!1;if(t===`null`||t===`~`)return null;if(/^-?\d+(\.\d+)?$/.test(t))return Number(t);if(t.startsWith(`"`)&&t.endsWith(`"`)||t.startsWith(`'`)&&t.endsWith(`'`))return t.slice(1,-1);if(t.startsWith(`[`)&&t.endsWith(`]`)){let e=t.slice(1,-1).trim();return e?e.split(/,\s*/).map(e=>f(e.trim())):[]}if(t.startsWith(`{`)&&t.endsWith(`}`)){let e=t.slice(1,-1).trim(),n={},r=e.split(/,\s*/);for(let e of r){let t=e.indexOf(`:`);if(t!==-1){let r=e.slice(0,t).trim();n[r]=f(e.slice(t+1).trim())}}return n}return t}function p(e){return e.replace(/\\/g,`/`)}function m(e){return e.replace(/^\d+\./,``)}function h(e){let t=e.match(/^(\d+)\./);return t?parseInt(t[1],10):void 0}function g(e){return/\.mdx?$/.test(e)}const _=new Map;function v(e){let t=Date.now(),r=_.get(e);if(r&&t-r.ts<2e3)return r.mtime;try{let r=n.default.statSync(e).mtimeMs;return _.set(e,{mtime:r,ts:t}),r}catch{return 0}}function y(e,n,r){let{data:i,content:a,rawMatter:o}=c(n);if(o&&o.length>10240)throw O(`FRONTMATTER_TOO_LARGE`,`Frontmatter block exceeds size limit`,{size:o.length,file:e}),new t.r(`Security breach: Frontmatter size exceeds limit of 10240 bytes`);if(!r)return{data:i,content:a};let l=s.safeParse(i),u={...l.success?l.data:{}};return u.title&&=T(u.title).trim(),u.description&&=T(u.description).trim(),{data:u,content:a}}async function b(e,r=!0){let i=``;try{i=await n.default.promises.readFile(e,`utf-8`);let{data:t,content:a}=y(e,i,r);if(r&&!t.lastUpdated)try{t.lastUpdated=(await n.default.promises.stat(e)).mtimeMs}catch{t.lastUpdated=0}return{data:t,content:a,raw:i}}catch(e){if(e instanceof t.r)throw e;return{data:{},content:i,raw:i}}}function x(e){return e.replace(/&/g,`&amp;`).replace(/"/g,`&quot;`).replace(/'/g,`&apos;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`)}function S(e){return x(e)}function C(e){let t=p(e).split(`/`).map(e=>D(m(e))).join(`/`).replace(/\/$/,``);return t=t.replace(/\.mdx?$/,``),(t===`index`||t.endsWith(`/index`))&&(t=t.replace(/index$/,``)),t.startsWith(`/`)||(t=`/`+t),t.length>1&&t.endsWith(`/`)&&(t=t.slice(0,-1)),t}function w(e){return r.default.sanitize(e,{ALLOWED_TAGS:`b.i.em.strong.a.p.br.code.pre.span.div.h1.h2.h3.h4.h5.h6.ul.ol.li.table.thead.tbody.tr.th.td.blockquote.hr`.split(`.`),ALLOWED_ATTR:[`href`,`title`,`target`,`class`,`id`,`src`,`alt`,`width`,`height`],FORCE_BODY:!0})}r.default.addHook(`afterSanitizeAttributes`,e=>{if(e.hasAttribute(`href`)){let t=e.getAttribute(`href`)?.toLowerCase()||``;(t.startsWith(`javascript:`)||t.startsWith(`data:`)||t.startsWith(`vbscript:`))&&e.removeAttribute(`href`)}if(e.hasAttribute(`src`)){let t=e.getAttribute(`src`)?.toLowerCase()||``;(t.startsWith(`javascript:`)||t.startsWith(`data:`)||t.startsWith(`vbscript:`))&&e.removeAttribute(`src`)}});function T(e){return e?r.default.sanitize(e,{ALLOWED_TAGS:[]}).replace(/\s+/g,` `).trim():``}function E(e){return e.charAt(0).toUpperCase()+e.slice(1)}function D(e){return e.replace(/[^a-zA-Z0-9\-_/.]/g,``).split(`/`).filter(e=>e!==`..`&&e!==`.`).map(e=>e.replace(/\.\.+/g,`.`)).join(`/`)}function O(e,t,n={}){let r=new Date().toISOString(),i={...n};for(let e in i)typeof i[e]==`string`&&i[e].includes(`:`)&&(i[e]=i[e].split(/[\\/]/).pop()||i[e]);(0,a.error)(`[SECURITY][${r}] TYPE: ${e} | MESSAGE: ${t} | DETAILS: ${JSON.stringify(i)}`)}function k(){let e=process.env.NODE_ENV!==`production`,t=process.env.BOLTDOCS_CACHE_COMPRESS===void 0?!e:process.env.BOLTDOCS_CACHE_COMPRESS!==`0`;return{dir:process.env.BOLTDOCS_CACHE_DIR||`.boltdocs/cache`,noCache:process.env.BOLTDOCS_NO_CACHE===`1`,lruLimit:parseInt(process.env.BOLTDOCS_CACHE_LRU_LIMIT||`2000`,10),lruTTL:parseInt(process.env.BOLTDOCS_CACHE_LRU_TTL||`14400000`,10),compress:t}}Object.defineProperty(exports,`_`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,`g`,{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,`h`,{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,`m`,{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,`p`,{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,`v`,{enumerable:!0,get:function(){return o}});