boltdocs 3.3.6 → 3.4.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 (116) hide show
  1. package/dist/{adapters-BKzKe2mO.mjs → adapters-BXiBWAKs.mjs} +1 -1
  2. package/dist/{adapters-DwDTQoCG.cjs → adapters-Czl3WtQt.cjs} +1 -1
  3. package/dist/{build-CxT38vPv.cjs → build-CNkXRdk8.cjs} +1 -1
  4. package/dist/{build-BJnL-FHG.mjs → build-CqUBsXVC.mjs} +1 -1
  5. package/dist/client/index.cjs +223 -51
  6. package/dist/client/index.d.cts +3 -3
  7. package/dist/client/index.d.ts +3 -3
  8. package/dist/client/index.js +226 -56
  9. package/dist/client/mdx.cjs +1 -1
  10. package/dist/client/mdx.js +1 -1
  11. package/dist/client/primitives.cjs +5 -5
  12. package/dist/client/primitives.d.cts +53 -34
  13. package/dist/client/primitives.d.ts +62 -43
  14. package/dist/client/primitives.js +4 -4
  15. package/dist/client/router.cjs +1 -1
  16. package/dist/client/router.d.cts +1 -1
  17. package/dist/client/router.d.ts +1 -1
  18. package/dist/client/router.js +1 -1
  19. package/dist/client/theme/reset.css +41 -0
  20. package/dist/{config-BJp3lGzE.cjs → config-B3SEoVjG.cjs} +2 -2
  21. package/dist/{config-BC_qhXws.cjs → config-Bfakeadu.cjs} +1 -1
  22. package/dist/{config-B3_iVsbi.mjs → config-CTcfF-0c.mjs} +2 -2
  23. package/dist/dev-D1DmOSjn.mjs +6 -0
  24. package/dist/dev-DH6cSge8.cjs +6 -0
  25. package/dist/{docs-layout-D3Fmb0Wd.js → docs-layout-CmntYM6p.js} +33 -33
  26. package/dist/{docs-layout-SgphExoE.cjs → docs-layout-DIgxJ5c7.cjs} +9 -9
  27. package/dist/{doctor-BqxOFRt3.cjs → doctor-BLxm2alc.cjs} +1 -1
  28. package/dist/{doctor-TS3JGNEU.cjs → doctor-Dd-JMTRo.cjs} +1 -1
  29. package/dist/{doctor-Cv5lXnay.mjs → doctor-DogHujrP.mjs} +1 -1
  30. package/dist/{image-Bkx85rsq.cjs → image-Bke2ojW1.cjs} +3 -3
  31. package/dist/{image-BAiDReNd.js → image-CaY2w0ua.js} +2 -1
  32. package/dist/index--xbYbT8N.d.ts +343 -0
  33. package/dist/{index-B1Mx0dHl.d.ts → index-B_o5y34l.d.cts} +89 -10
  34. package/dist/{index-DLaHgD-i.d.cts → index-Bx0CUd7Q.d.ts} +89 -10
  35. package/dist/index-RK7W_Fxy.d.cts +343 -0
  36. package/dist/{link-q1qHNGK_.js → link-CSe_oD8Y.js} +86 -113
  37. package/dist/{link-hLWOsx0x.cjs → link-Xb69Oy2F.cjs} +87 -143
  38. package/dist/{mdx-Qi0DmaY8.cjs → mdx-BCOrMd-P.cjs} +68 -16
  39. package/dist/{mdx-CJGWzBGy.js → mdx-BijiEbkp.js} +62 -15
  40. package/dist/{native-nLA4Jr0T.cjs → native-BbtRkce5.cjs} +1 -1
  41. package/dist/node/cli-entry.cjs +1 -1
  42. package/dist/node/cli-entry.mjs +1 -1
  43. package/dist/node/highlight.d.cts +2 -2
  44. package/dist/node/highlight.d.mts +2 -2
  45. package/dist/node/index.cjs +1 -1
  46. package/dist/node/index.d.cts +18 -39
  47. package/dist/node/index.d.mts +19 -40
  48. package/dist/node/index.mjs +1 -1
  49. package/dist/node/mdx/shiki-adapter.d.cts +1 -1
  50. package/dist/node/mdx/shiki-adapter.d.mts +1 -1
  51. package/dist/node-BgiLCa0I.cjs +39 -0
  52. package/dist/node-Da3tYBHo.mjs +39 -0
  53. package/dist/{package-Bah2tHjK.cjs → package-D1gVs5gQ.cjs} +1 -1
  54. package/dist/{package-D6bf68FR.mjs → package-YgQJn3Yh.mjs} +1 -1
  55. package/dist/pages-external-B_r6gvqP.cjs +6 -0
  56. package/dist/pages-external-jmK7AHaO.mjs +6 -0
  57. package/dist/{parser-CD8Oo8qh.mjs → parser-CvNZc5s3.mjs} +1 -1
  58. package/dist/{parser-vPaKvzLp.cjs → parser-DJLWTiO-.cjs} +1 -1
  59. package/dist/plugin-DW9K2fW5.mjs +69 -0
  60. package/dist/plugin-NwGKyTJX.cjs +69 -0
  61. package/dist/{plugin-context-b5qVVQSU.mjs → plugin-context-COh-cbsW.mjs} +1 -1
  62. package/dist/{plugin-context-BZs5lvDu.cjs → plugin-context-FIHaWn6r.cjs} +1 -1
  63. package/dist/{plugin-lifecycle-s89gzTlh.cjs → plugin-lifecycle-D9fTRaWY.cjs} +1 -1
  64. package/dist/{registry-B8pt41zj.d.cts → registry-BFmzj1yg.d.mts} +1 -1
  65. package/dist/{registry-BrrH2X9c.d.mts → registry-BoswPzYV.d.cts} +1 -1
  66. package/dist/{resolve-C5rT6B21.mjs → resolve-5puUe7eS.mjs} +1 -1
  67. package/dist/{resolve-BelytNYR.cjs → resolve-CF4ZLfqx.cjs} +1 -1
  68. package/dist/route-paths-B6ocUfNY.cjs +6 -0
  69. package/dist/route-paths-DyDji4bX.mjs +6 -0
  70. package/dist/{router-CZBxMRAH.js → router-B5e8k4qK.js} +175 -10
  71. package/dist/{router-C3kygdRK.cjs → router-DKC0Lu0n.cjs} +204 -9
  72. package/dist/{routes-Dq_2EUIB.cjs → routes-D55M8UrH.cjs} +1 -1
  73. package/dist/{routes-CzhKOw67.cjs → routes-DdE6Lfcl.cjs} +1 -1
  74. package/dist/{routes-Dw6g0bfF.mjs → routes-_I_8PQYF.mjs} +1 -1
  75. package/dist/{search-dialog-CguKVtUu.cjs → search-dialog-BOQRHKTb.cjs} +53 -20
  76. package/dist/{search-dialog-mYnqU4v7.js → search-dialog-BXil4_7P.js} +57 -24
  77. package/dist/{search-dialog-BYZS9aeO.cjs → search-dialog-CwlBd-Mu.cjs} +5 -5
  78. package/dist/{search-dialog-DQwod5Xc.js → search-dialog-D3Obh3eA.js} +1 -1
  79. package/dist/{search-dialog-DzObE-Ar.js → search-dialog-DeplpVEB.js} +3 -3
  80. package/dist/{search-dialog-QgKRRbsI.cjs → search-dialog-cHXR5zhL.cjs} +1 -1
  81. package/dist/server/index.cjs +1 -1
  82. package/dist/server/index.d.mts +1 -1
  83. package/dist/server/index.mjs +1 -1
  84. package/dist/ssg-static-options-Br1_u9qp.mjs +6 -0
  85. package/dist/ssg-static-options-CVvGKM8i.cjs +6 -0
  86. package/dist/types-58Ac3UGI.d.cts +114 -0
  87. package/dist/types-BwnGf-1E.d.mts +114 -0
  88. package/dist/{virtual-modules-C3S3Nz8r.cjs → virtual-modules-C4-qxFlL.cjs} +1 -1
  89. package/dist/{virtual-modules-CaxqrFd6.mjs → virtual-modules-DiWUKJGP.mjs} +1 -1
  90. package/package.json +5 -3
  91. package/src/shared/types.ts +133 -987
  92. package/dist/dev-46NiL0MC.cjs +0 -6
  93. package/dist/dev-C4kjO5xs.mjs +0 -6
  94. package/dist/index-CgWkOCCn.d.cts +0 -1193
  95. package/dist/index-CuNSD3E2.d.ts +0 -1193
  96. package/dist/node-7Cfw6nMr.cjs +0 -23
  97. package/dist/node-CT2E84nY.mjs +0 -23
  98. package/dist/pages-external-BBw8ObVK.mjs +0 -6
  99. package/dist/pages-external-DPiPFxxP.cjs +0 -6
  100. package/dist/plugin-AgNI3ktz.cjs +0 -69
  101. package/dist/plugin-BAv_pYLt.mjs +0 -69
  102. package/dist/types-74i_xUe2.d.mts +0 -975
  103. package/dist/types-X_Pwk8Cg.d.cts +0 -975
  104. /package/dist/{audit-CMc_ydRr.mjs → audit-CYAkXXvP.mjs} +0 -0
  105. /package/dist/{audit-CHkGiV3c.cjs → audit-DxCZZTuX.cjs} +0 -0
  106. /package/dist/{csp-BiGAG8aF.cjs → csp-B-gc2Iha.cjs} +0 -0
  107. /package/dist/{csp-D0BOH8ae.mjs → csp-f8DOcI_7.mjs} +0 -0
  108. /package/dist/{generator-BCrZL53x.cjs → generator-CBAPKY6r.cjs} +0 -0
  109. /package/dist/{generator-CFukoGa0.mjs → generator-MRpn-yp6.mjs} +0 -0
  110. /package/dist/{handler-Lex5DbvG.mjs → handler-DBZqoWt2.mjs} +0 -0
  111. /package/dist/{handler-Ch-Q9NAB.cjs → handler-ryZR9Q41.cjs} +0 -0
  112. /package/dist/{index-HAwIo4nZ.d.mts → index-CPr34I2C.d.mts} +0 -0
  113. /package/dist/{native-BYKMke79.mjs → native-DZ6WMwjG.mjs} +0 -0
  114. /package/dist/{native-BOet8hpE.cjs → native-DeKxny_T.cjs} +0 -0
  115. /package/dist/{update-check-BXD1atVv.mjs → update-check-BXx8te9F.mjs} +0 -0
  116. /package/dist/{update-check-DFQZyoSU.cjs → update-check-CiIeC7CX.cjs} +0 -0
@@ -3,9 +3,9 @@
3
3
  * Copyright (c) 2026 Jesus Alcala
4
4
  * Licensed under the MIT License.
5
5
  */
6
- const require_router = require('./router-C3kygdRK.cjs');
7
- const require_link = require('./link-hLWOsx0x.cjs');
8
- const require_image = require('./image-Bkx85rsq.cjs');
6
+ const require_router = require('./router-DKC0Lu0n.cjs');
7
+ const require_link = require('./link-Xb69Oy2F.cjs');
8
+ const require_image = require('./image-Bke2ojW1.cjs');
9
9
  let react = require("react");
10
10
  let react_jsx_runtime = require("react/jsx-runtime");
11
11
  let react_aria_components = require("react-aria-components");
@@ -281,6 +281,18 @@ function useCopyButton() {
281
281
  //#endregion
282
282
  //#region src/client/components/mdx/use-expandable.ts
283
283
  /**
284
+ * Counts the rendered lines of a pre-rendered Shiki block.
285
+ *
286
+ * `data-highlighted-html` holds the same markup the server writes, so the count
287
+ * is available before the DOM exists. Returns 0 when there is no HTML, which
288
+ * leaves the caller on the DOM-measured path.
289
+ */
290
+ function countHighlightedLines(highlightedHtml) {
291
+ if (!highlightedHtml) return 0;
292
+ const spans = highlightedHtml.split("<span class=\"line\"").length - 1;
293
+ return spans > 0 ? spans : highlightedHtml.split("\n").length;
294
+ }
295
+ /**
284
296
  * Expand / collapse behavior for long code blocks. Measures the rendered code
285
297
  * through `preRef` and exposes whether the block is expandable, whether it
286
298
  * should be visually truncated, and a toggle handler.
@@ -288,7 +300,7 @@ function useCopyButton() {
288
300
  function useExpandable(options = {}) {
289
301
  const { children, highlightedHtml, maxLines = 6 } = options;
290
302
  const [isExpanded, setIsExpanded] = (0, react.useState)(false);
291
- const [isExpandable, setIsExpandable] = (0, react.useState)(false);
303
+ const [isExpandable, setIsExpandable] = (0, react.useState)(countHighlightedLines(highlightedHtml) > maxLines);
292
304
  const preRef = (0, react.useRef)(null);
293
305
  const shouldTruncate = isExpandable && !isExpanded;
294
306
  const toggle = () => setIsExpanded((prev) => !prev);
@@ -326,7 +338,7 @@ function useExpandable(options = {}) {
326
338
  function useCodeBlockFeedback(options = {}) {
327
339
  const { plain = false, lang = "", submitFeedback } = options;
328
340
  const [rated, setRated] = (0, react.useState)(null);
329
- const customConfig = require_link.useConfig().integrations?.feedback?.custom;
341
+ const customConfig = require_router.useConfig().integrations?.feedback?.custom;
330
342
  const enabled = !!(customConfig?.enabled && !plain);
331
343
  return {
332
344
  rated,
@@ -577,6 +589,46 @@ function Cards({ children, className, cols = 2, ...props }) {
577
589
  });
578
590
  }
579
591
 
592
+ //#endregion
593
+ //#region src/client/utils/date.ts
594
+ /**
595
+ * Deterministic date formatting for server-rendered output.
596
+ *
597
+ * `toLocaleDateString` with no locale resolves against the *runtime* default,
598
+ * which is not the same in Node and in a browser: the server rendered
599
+ * "26 de septiembre de 2026" from an `es` system locale while the client
600
+ * produced "September 26, 2026". That is a text mismatch during hydration and
601
+ * React throws away the server HTML and re-renders the whole page.
602
+ *
603
+ * The time zone has to be pinned for the same reason. A frontmatter date such
604
+ * as `2026-09-27` parses as UTC midnight, so any zone behind UTC renders the
605
+ * previous day and any zone ahead renders the correct one, which is a second,
606
+ * environment-dependent mismatch.
607
+ *
608
+ * Both are therefore explicit here. Callers that genuinely want a different
609
+ * locale can pass one, and it is still deterministic because it is fixed in
610
+ * the markup rather than inferred.
611
+ */
612
+ const DEFAULT_LOCALE = "en-US";
613
+ const DEFAULT_TIME_ZONE = "UTC";
614
+ /**
615
+ * Formats a date as a stable, locale- and zone-pinned string.
616
+ *
617
+ * Returns an empty string for values that are not real dates so callers can
618
+ * render nothing rather than "Invalid Date".
619
+ */
620
+ function formatDeterministicDate(date, options = {}) {
621
+ if (date === void 0 || date === null || date === "") return "";
622
+ const parsed = date instanceof Date ? date : new Date(date);
623
+ if (Number.isNaN(parsed.getTime())) return "";
624
+ return parsed.toLocaleDateString(options.locale ?? DEFAULT_LOCALE, {
625
+ year: "numeric",
626
+ month: options.month ?? "long",
627
+ day: options.day ?? "numeric",
628
+ timeZone: options.timeZone ?? DEFAULT_TIME_ZONE
629
+ });
630
+ }
631
+
580
632
  //#endregion
581
633
  //#region src/client/components/mdx/last-updated.tsx
582
634
  /**
@@ -587,11 +639,7 @@ function LastUpdated({ date, className }) {
587
639
  if (!date) return null;
588
640
  const d = new Date(date);
589
641
  if (Number.isNaN(d.getTime())) return null;
590
- const formattedDate = d.toLocaleDateString(void 0, {
591
- year: "numeric",
592
- month: "long",
593
- day: "numeric"
594
- });
642
+ const formattedDate = formatDeterministicDate(d);
595
643
  return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
596
644
  className: require_link.cn("mt-16 pt-6 border-t border-subtle flex items-center justify-between text-xs text-muted select-none", className),
597
645
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
@@ -703,13 +751,11 @@ function normalizeBadge(badge) {
703
751
  }
704
752
  function formatDate(date, locale) {
705
753
  if (date === void 0 || date === null || date === "") return null;
706
- const d = date instanceof Date ? date : new Date(date);
707
- if (Number.isNaN(d.getTime())) return null;
708
- return d.toLocaleDateString(locale ?? "en-US", {
709
- year: "numeric",
710
- month: "short",
711
- day: "numeric"
754
+ const formatted = formatDeterministicDate(date, {
755
+ locale,
756
+ month: "short"
712
757
  });
758
+ return formatted === "" ? null : formatted;
713
759
  }
714
760
  const VARIANT_DEFAULT_ICON = {
715
761
  success: require_link.Check,
@@ -806,6 +852,12 @@ Object.defineProperty(exports, 'copyToClipboard', {
806
852
  return copyToClipboard;
807
853
  }
808
854
  });
855
+ Object.defineProperty(exports, 'formatDeterministicDate', {
856
+ enumerable: true,
857
+ get: function () {
858
+ return formatDeterministicDate;
859
+ }
860
+ });
809
861
  Object.defineProperty(exports, 'mdx_components_default', {
810
862
  enumerable: true,
811
863
  get: function () {
@@ -3,8 +3,9 @@
3
3
  * Copyright (c) 2026 Jesus Alcala
4
4
  * Licensed under the MIT License.
5
5
  */
6
- import { A as Info, G as useConfig, M as Lightbulb, g as Check, m as AlertTriangle, o as cn, p as AlertCircle, t as Link, x as Copy } from "./link-q1qHNGK_.js";
7
- import { _ as useTheme, a as CodeBlockContent, c as CodeBlockHeader, h as Heading$1, i as CodeBlockActions, l as CodeBlockPre, n as Tooltip, o as CodeBlockExpand, r as CodeBlock$1, s as CodeBlockGroup, t as Image$1, u as Callout$1 } from "./image-BAiDReNd.js";
6
+ import { A as Lightbulb, O as Info, d as AlertCircle, f as AlertTriangle, i as cn, m as Check, t as Link, y as Copy } from "./link-CSe_oD8Y.js";
7
+ import { V as useConfig } from "./router-B5e8k4qK.js";
8
+ import { _ as useTheme, a as CodeBlockContent, c as CodeBlockHeader, h as Heading$1, i as CodeBlockActions, l as CodeBlockPre, n as Tooltip, o as CodeBlockExpand, r as CodeBlock$1, s as CodeBlockGroup, t as Image$1, u as Callout$1 } from "./image-CaY2w0ua.js";
8
9
  import { useCallback, useEffect, useRef, useState } from "react";
9
10
  import { jsx, jsxs } from "react/jsx-runtime";
10
11
  import { Button } from "react-aria-components";
@@ -280,6 +281,18 @@ function useCopyButton() {
280
281
  //#endregion
281
282
  //#region src/client/components/mdx/use-expandable.ts
282
283
  /**
284
+ * Counts the rendered lines of a pre-rendered Shiki block.
285
+ *
286
+ * `data-highlighted-html` holds the same markup the server writes, so the count
287
+ * is available before the DOM exists. Returns 0 when there is no HTML, which
288
+ * leaves the caller on the DOM-measured path.
289
+ */
290
+ function countHighlightedLines(highlightedHtml) {
291
+ if (!highlightedHtml) return 0;
292
+ const spans = highlightedHtml.split("<span class=\"line\"").length - 1;
293
+ return spans > 0 ? spans : highlightedHtml.split("\n").length;
294
+ }
295
+ /**
283
296
  * Expand / collapse behavior for long code blocks. Measures the rendered code
284
297
  * through `preRef` and exposes whether the block is expandable, whether it
285
298
  * should be visually truncated, and a toggle handler.
@@ -287,7 +300,7 @@ function useCopyButton() {
287
300
  function useExpandable(options = {}) {
288
301
  const { children, highlightedHtml, maxLines = 6 } = options;
289
302
  const [isExpanded, setIsExpanded] = useState(false);
290
- const [isExpandable, setIsExpandable] = useState(false);
303
+ const [isExpandable, setIsExpandable] = useState(countHighlightedLines(highlightedHtml) > maxLines);
291
304
  const preRef = useRef(null);
292
305
  const shouldTruncate = isExpandable && !isExpanded;
293
306
  const toggle = () => setIsExpanded((prev) => !prev);
@@ -576,6 +589,46 @@ function Cards({ children, className, cols = 2, ...props }) {
576
589
  });
577
590
  }
578
591
 
592
+ //#endregion
593
+ //#region src/client/utils/date.ts
594
+ /**
595
+ * Deterministic date formatting for server-rendered output.
596
+ *
597
+ * `toLocaleDateString` with no locale resolves against the *runtime* default,
598
+ * which is not the same in Node and in a browser: the server rendered
599
+ * "26 de septiembre de 2026" from an `es` system locale while the client
600
+ * produced "September 26, 2026". That is a text mismatch during hydration and
601
+ * React throws away the server HTML and re-renders the whole page.
602
+ *
603
+ * The time zone has to be pinned for the same reason. A frontmatter date such
604
+ * as `2026-09-27` parses as UTC midnight, so any zone behind UTC renders the
605
+ * previous day and any zone ahead renders the correct one, which is a second,
606
+ * environment-dependent mismatch.
607
+ *
608
+ * Both are therefore explicit here. Callers that genuinely want a different
609
+ * locale can pass one, and it is still deterministic because it is fixed in
610
+ * the markup rather than inferred.
611
+ */
612
+ const DEFAULT_LOCALE = "en-US";
613
+ const DEFAULT_TIME_ZONE = "UTC";
614
+ /**
615
+ * Formats a date as a stable, locale- and zone-pinned string.
616
+ *
617
+ * Returns an empty string for values that are not real dates so callers can
618
+ * render nothing rather than "Invalid Date".
619
+ */
620
+ function formatDeterministicDate(date, options = {}) {
621
+ if (date === void 0 || date === null || date === "") return "";
622
+ const parsed = date instanceof Date ? date : new Date(date);
623
+ if (Number.isNaN(parsed.getTime())) return "";
624
+ return parsed.toLocaleDateString(options.locale ?? DEFAULT_LOCALE, {
625
+ year: "numeric",
626
+ month: options.month ?? "long",
627
+ day: options.day ?? "numeric",
628
+ timeZone: options.timeZone ?? DEFAULT_TIME_ZONE
629
+ });
630
+ }
631
+
579
632
  //#endregion
580
633
  //#region src/client/components/mdx/last-updated.tsx
581
634
  /**
@@ -586,11 +639,7 @@ function LastUpdated({ date, className }) {
586
639
  if (!date) return null;
587
640
  const d = new Date(date);
588
641
  if (Number.isNaN(d.getTime())) return null;
589
- const formattedDate = d.toLocaleDateString(void 0, {
590
- year: "numeric",
591
- month: "long",
592
- day: "numeric"
593
- });
642
+ const formattedDate = formatDeterministicDate(d);
594
643
  return /* @__PURE__ */ jsxs("div", {
595
644
  className: cn("mt-16 pt-6 border-t border-subtle flex items-center justify-between text-xs text-muted select-none", className),
596
645
  children: [/* @__PURE__ */ jsx("span", {}), /* @__PURE__ */ jsxs("span", {
@@ -702,13 +751,11 @@ function normalizeBadge(badge) {
702
751
  }
703
752
  function formatDate(date, locale) {
704
753
  if (date === void 0 || date === null || date === "") return null;
705
- const d = date instanceof Date ? date : new Date(date);
706
- if (Number.isNaN(d.getTime())) return null;
707
- return d.toLocaleDateString(locale ?? "en-US", {
708
- year: "numeric",
709
- month: "short",
710
- day: "numeric"
754
+ const formatted = formatDeterministicDate(date, {
755
+ locale,
756
+ month: "short"
711
757
  });
758
+ return formatted === "" ? null : formatted;
712
759
  }
713
760
  const VARIANT_DEFAULT_ICON = {
714
761
  success: Check,
@@ -793,4 +840,4 @@ const mdx_components_default = {
793
840
  };
794
841
 
795
842
  //#endregion
796
- export { useCopyButton as a, useExpandable as i, Timeline as n, copyToClipboard as o, useCodeBlockFeedback as r, mdx_components_default as t };
843
+ export { useExpandable as a, useCodeBlockFeedback as i, Timeline as n, useCopyButton as o, formatDeterministicDate as r, copyToClipboard as s, mdx_components_default as t };
@@ -3,4 +3,4 @@
3
3
  * Copyright (c) 2026 Jesus Alcala
4
4
  * Licensed under the MIT License.
5
5
  */
6
- const e=require(`./native-BOet8hpE.cjs`);exports.parseDocFileWithNative=e.t;
6
+ const e=require(`./native-DeKxny_T.cjs`);exports.parseDocFileWithNative=e.t;
@@ -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();try{Promise.resolve().then(()=>import(`node:module`)).then(e=>{let t=e.enableCompileCache;typeof t==`function`&&t()}).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-46NiL0MC.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-46NiL0MC.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-CxT38vPv.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-CxT38vPv.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-TS3JGNEU.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();
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(e=>{let t=e.enableCompileCache;typeof t==`function`&&t()}).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-DH6cSge8.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-DH6cSge8.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-CNkXRdk8.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-CNkXRdk8.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-DxCZZTuX.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-Dd-JMTRo.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-CBAPKY6r.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();try{Promise.resolve().then(()=>import(`node:module`)).then(e=>{let t=e.enableCompileCache;typeof t==`function`&&t()}).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-C4kjO5xs.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-C4kjO5xs.mjs`);return n(e,t)}),m.command(`build [root]`,`Build for production`).action(async(...e)=>{await p();let{buildAction:t}=await import(`../build-BJnL-FHG.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-BJnL-FHG.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-Cv5lXnay.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{};
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(e=>{let t=e.enableCompileCache;typeof t==`function`&&t()}).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-D1DmOSjn.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-D1DmOSjn.mjs`);return n(e,t)}),m.command(`build [root]`,`Build for production`).action(async(...e)=>{await p();let{buildAction:t}=await import(`../build-CqUBsXVC.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-CqUBsXVC.mjs`);return t(...e)}),m.command(`audit [root]`,`Audit configured plugins for security warnings`).action(async(...e)=>{let{auditAction:t}=await import(`../audit-CYAkXXvP.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-DogHujrP.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-MRpn-yp6.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{};
@@ -1,5 +1,5 @@
1
1
 
2
- import { a as CodeHighlightConfig, c as CodeHighlighterRuntime, l as CodeTheme, o as CodeHighlighterAdapter, s as CodeHighlighterEngine } from "../types-X_Pwk8Cg.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-B8pt41zj.cjs";
2
+ import { c as CodeHighlighterEngine, l as CodeHighlighterRuntime, o as CodeHighlightConfig, s as CodeHighlighterAdapter, u as CodeTheme } from "../types-58Ac3UGI.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-BoswPzYV.cjs";
4
4
  import { normalizeCodeHighlightConfig } from "@bdocs/unist-utils";
5
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 };
@@ -1,5 +1,5 @@
1
1
 
2
- import { a as CodeHighlightConfig, c as CodeHighlighterRuntime, l as CodeTheme, o as CodeHighlighterAdapter, s as CodeHighlighterEngine } from "../types-74i_xUe2.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-BrrH2X9c.mjs";
2
+ import { c as CodeHighlighterEngine, l as CodeHighlighterRuntime, o as CodeHighlightConfig, s as CodeHighlighterAdapter, u as CodeTheme } from "../types-BwnGf-1E.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-BFmzj1yg.mjs";
4
4
  import { normalizeCodeHighlightConfig } from "@bdocs/unist-utils";
5
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 };
@@ -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`}}),require(`../chunk-D1Md3oWO.cjs`);const e=require(`../node-7Cfw6nMr.cjs`),t=require(`../utils-ej6_SjIZ.cjs`),n=require(`../plugin-context-BZs5lvDu.cjs`),r=require(`./cache.cjs`),i=require(`../routes-CzhKOw67.cjs`),a=require(`../config-BJp3lGzE.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.p,exports.DEFAULT_HIGHLIGHTER=o.n,exports.PluginCompatibilityError=e.m,exports.PluginError=e.h,exports.PluginHookError=e.g,exports.PluginLifecycleManager=e.c,exports.PluginValidationError=e._,exports.createArticleStructuredData=e.v,exports.createBreadcrumbStructuredData=e.y,exports.createPlugin=e.o,exports.createStructuredData=e.b,exports.createViteConfig=e.n,exports.createWebSiteStructuredData=e.x,exports.default=e.t,exports.defineConfig=a.r,exports.definePlugin=e.s,exports.defineStructuredData=e.S,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.l,exports.sanitizeFilename=t.f,exports.shouldEnableBundledDev=e.i,exports.shouldUseReactPlugin=e.a,exports.validatePlugins=e.f,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]}})});
6
+ Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}}),require(`../chunk-D1Md3oWO.cjs`);const e=require(`../node-BgiLCa0I.cjs`),t=require(`../utils-ej6_SjIZ.cjs`),n=require(`../plugin-context-FIHaWn6r.cjs`),r=require(`./cache.cjs`),i=require(`../routes-DdE6Lfcl.cjs`),a=require(`../config-B3SEoVjG.cjs`),o=require(`../registry-DLJIooEu.cjs`),s=require(`../handler-ryZR9Q41.cjs`),c=require(`../adapters-Czl3WtQt.cjs`);let l=require(`@bdocs/unist-utils`);exports.BUILTIN_HIGHLIGHTERS=o.t,exports.BoltdocsPluginStore=e.p,exports.DEFAULT_HIGHLIGHTER=o.n,exports.PluginCompatibilityError=e.m,exports.PluginError=e.h,exports.PluginHookError=e.g,exports.PluginLifecycleManager=e.c,exports.PluginValidationError=e._,exports.createArticleStructuredData=e.v,exports.createBreadcrumbStructuredData=e.y,exports.createPlugin=e.o,exports.createStructuredData=e.b,exports.createViteConfig=e.n,exports.createWebSiteStructuredData=e.x,exports.default=e.t,exports.defineConfig=a.r,exports.definePlugin=e.s,exports.defineStructuredData=e.S,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.l,exports.sanitizeFilename=t.f,exports.shouldEnableBundledDev=e.i,exports.shouldUseReactPlugin=e.a,exports.validatePlugins=e.f,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,8 +1,8 @@
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 PluginStore, D as StructuredData, E as RouteMeta, S as PluginServerMiddleware, T as RegisteredVirtualModule, _ as PluginContext, a as CodeHighlightConfig, b as PluginLogger, c as CodeHighlighterRuntime, d as ExternalFileRoute, f as IPluginLifecycleManager, g as PluginClientConfig, 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 PluginHmrEvent, w as PluginTransformMiddleware, x as PluginMeta, y as PluginLifecycleHooks } from "../types-X_Pwk8Cg.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-B8pt41zj.cjs";
4
+ import { C as PluginMeta, D as RegisteredVirtualModule, E as PluginTransformMiddleware, O as RouteMeta, S as PluginLogger, T as PluginStore, _ as PluginClientConfig, a as BoltdocsViewTransitionsConfig, b as PluginHmrEvent, c as CodeHighlighterEngine, d as DiagnosticRecord, f as ExternalFileRoute, g as ParsedMetaLike, h as JsonLdValue, i as BoltdocsThemeConfig, k as StructuredData, l as CodeHighlighterRuntime, m as JsonLdObject, n as BoltdocsExperimentalConfig, o as CodeHighlightConfig, p as IPluginLifecycleManager, r as BoltdocsPlugin, s as CodeHighlighterAdapter, t as BoltdocsConfig, u as CodeTheme, v as PluginContext, w as PluginServerMiddleware, x as PluginLifecycleHooks, y as PluginCssConfig } from "../types-58Ac3UGI.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-BoswPzYV.cjs";
6
6
  import { InlineConfig, Plugin } from "vite";
7
7
  import { normalizeCodeHighlightConfig } from "@bdocs/unist-utils";
8
8
  export * from "@bdocs/unist-utils";
@@ -236,40 +236,6 @@ declare function createWebSiteStructuredData(options: WebSiteStructuredDataOptio
236
236
  declare function createArticleStructuredData(options: ArticleStructuredDataOptions): JsonLdObject;
237
237
  declare function createBreadcrumbStructuredData(items: BreadcrumbStructuredDataItem[]): JsonLdObject;
238
238
  //#endregion
239
- //#region src/node/plugins/plugin-types.d.ts
240
- interface PluginCssConfig {
241
- /** CSS files to inject automatically into entry bundle */
242
- cssFiles?: string[];
243
- /** Inline CSS strings to inject into HTML <head> */
244
- headStyles?: string[];
245
- /** PostCSS plugins to append to Vite CSS pipeline */
246
- postcssPlugins?: unknown[];
247
- /** Vite CSS preprocessor options (e.g. scss, less, stylus) */
248
- preprocessorOptions?: Record<string, unknown>;
249
- }
250
- interface BoltdocsPlugin {
251
- name: string;
252
- enforce?: 'pre' | 'post';
253
- version?: string;
254
- boltdocsVersion?: string;
255
- remarkPlugins?: unknown[];
256
- rehypePlugins?: unknown[];
257
- vitePlugins?: Plugin[];
258
- components?: Record<string, string>;
259
- client?: PluginClientConfig;
260
- metadata?: Record<string, unknown>;
261
- css?: PluginCssConfig;
262
- middleware?: PluginTransformMiddleware[];
263
- hooks?: PluginLifecycleHooks;
264
- /**
265
- * Provide a custom syntax highlighting engine. The adapter is registered
266
- * under `plugin.name` in the highlighter registry, making it selectable via
267
- * `theme.codeHighlighting.engine`. The factory receives the resolved
268
- * engine-agnostic config (`{ theme, options }`).
269
- */
270
- codeHighlighter?: CodeHighlighterAdapter | ((api: CodeHighlightConfig) => CodeHighlighterAdapter | Promise<CodeHighlighterAdapter>);
271
- }
272
- //#endregion
273
239
  //#region src/node/plugins/plugin-errors.d.ts
274
240
  declare class PluginError extends Error {
275
241
  readonly pluginName: string;
@@ -419,7 +385,7 @@ declare function normalizePath(p: string): string;
419
385
  */
420
386
  declare function sanitizeFilename(name: string): string;
421
387
  declare namespace index_d_exports {
422
- 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, shouldEnableBundledDev, shouldUseReactPlugin, validatePlugins };
388
+ 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, PluginClientConfig, 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, shouldEnableBundledDev, shouldUseReactPlugin, validatePlugins };
423
389
  }
424
390
  interface CreateViteConfigOptions {
425
391
  /** Pre-computed routes. When provided, route generation is skipped. */
@@ -434,7 +400,20 @@ interface CreateViteConfigOptions {
434
400
  publicDir?: string | false;
435
401
  }
436
402
  declare function shouldEnableBundledDev(isProduction: boolean, value?: string | undefined): boolean;
437
- declare function shouldUseReactPlugin(isProduction: boolean, base: string, value?: string | undefined): boolean;
403
+ /**
404
+ * Whether `@vitejs/plugin-react` runs in dev.
405
+ *
406
+ * React Fast Refresh is what makes an edit to `layout.tsx`, an icon set or an
407
+ * external page swap in place instead of reloading the document. Without it
408
+ * there is no refresh runtime in the page, so every such edit falls back to a
409
+ * full reload and loses scroll position and loader state.
410
+ *
411
+ * It used to be skipped for any non-root base, which meant the common
412
+ * `base: '/docs'` documentation site had no Fast Refresh at all. The plugin
413
+ * handles a sub-path base correctly; only the bundled-dev opt-in remains
414
+ * environment-gated.
415
+ */
416
+ declare function shouldUseReactPlugin(isProduction: boolean, value?: string | undefined): boolean;
438
417
  declare function boltdocs(options?: BoltdocsPluginOptions): Promise<Plugin[]>;
439
418
  /**
440
419
  * Generates the complete Vite configuration for a Boltdocs project.
@@ -442,4 +421,4 @@ declare function boltdocs(options?: BoltdocsPluginOptions): Promise<Plugin[]>;
442
421
  */
443
422
  declare function createViteConfig(root: string, mode?: 'development' | 'production', preResolvedConfig?: BoltdocsConfig, options?: CreateViteConfigOptions): Promise<InlineConfig>;
444
423
  //#endregion
445
- 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, shouldEnableBundledDev, shouldUseReactPlugin, validatePlugins };
424
+ 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, type PluginClientConfig, PluginCompatibilityError, type PluginContext, type 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, shouldEnableBundledDev, shouldUseReactPlugin, validatePlugins };
@@ -1,8 +1,8 @@
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-HAwIo4nZ.mjs";
4
- import { C as PluginStore, D as StructuredData, E as RouteMeta, S as PluginServerMiddleware, T as RegisteredVirtualModule, _ as PluginContext, a as CodeHighlightConfig, b as PluginLogger, c as CodeHighlighterRuntime, d as ExternalFileRoute, f as IPluginLifecycleManager, g as PluginClientConfig, 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 PluginHmrEvent, w as PluginTransformMiddleware, x as PluginMeta, y as PluginLifecycleHooks } from "../types-74i_xUe2.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-BrrH2X9c.mjs";
3
+ import { i as handleVercelFeedback, n as handleWebFeedback, r as handleNetlifyFeedback, t as handleAwsFeedback } from "../index-CPr34I2C.mjs";
4
+ import { C as PluginMeta, D as RegisteredVirtualModule, E as PluginTransformMiddleware, O as RouteMeta, S as PluginLogger, T as PluginStore, _ as PluginClientConfig, a as BoltdocsViewTransitionsConfig, b as PluginHmrEvent, c as CodeHighlighterEngine, d as DiagnosticRecord, f as ExternalFileRoute, g as ParsedMetaLike, h as JsonLdValue, i as BoltdocsThemeConfig, k as StructuredData, l as CodeHighlighterRuntime, m as JsonLdObject, n as BoltdocsExperimentalConfig, o as CodeHighlightConfig, p as IPluginLifecycleManager, r as BoltdocsPlugin, s as CodeHighlighterAdapter, t as BoltdocsConfig, u as CodeTheme, v as PluginContext, w as PluginServerMiddleware, x as PluginLifecycleHooks, y as PluginCssConfig } from "../types-BwnGf-1E.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-BFmzj1yg.mjs";
6
6
  import { z } from "zod";
7
7
  import { normalizeCodeHighlightConfig } from "@bdocs/unist-utils";
8
8
  import { InlineConfig, Plugin } from "vite";
@@ -235,40 +235,6 @@ declare function createWebSiteStructuredData(options: WebSiteStructuredDataOptio
235
235
  declare function createArticleStructuredData(options: ArticleStructuredDataOptions): JsonLdObject;
236
236
  declare function createBreadcrumbStructuredData(items: BreadcrumbStructuredDataItem[]): JsonLdObject;
237
237
  //#endregion
238
- //#region src/node/plugins/plugin-types.d.ts
239
- interface PluginCssConfig {
240
- /** CSS files to inject automatically into entry bundle */
241
- cssFiles?: string[];
242
- /** Inline CSS strings to inject into HTML <head> */
243
- headStyles?: string[];
244
- /** PostCSS plugins to append to Vite CSS pipeline */
245
- postcssPlugins?: unknown[];
246
- /** Vite CSS preprocessor options (e.g. scss, less, stylus) */
247
- preprocessorOptions?: Record<string, unknown>;
248
- }
249
- interface BoltdocsPlugin {
250
- name: string;
251
- enforce?: 'pre' | 'post';
252
- version?: string;
253
- boltdocsVersion?: string;
254
- remarkPlugins?: unknown[];
255
- rehypePlugins?: unknown[];
256
- vitePlugins?: Plugin[];
257
- components?: Record<string, string>;
258
- client?: PluginClientConfig;
259
- metadata?: Record<string, unknown>;
260
- css?: PluginCssConfig;
261
- middleware?: PluginTransformMiddleware[];
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>);
270
- }
271
- //#endregion
272
238
  //#region src/node/plugins/plugin-errors.d.ts
273
239
  declare class PluginError extends Error {
274
240
  readonly pluginName: string;
@@ -418,7 +384,7 @@ declare function normalizePath(p: string): string;
418
384
  */
419
385
  declare function sanitizeFilename(name: string): string;
420
386
  declare namespace index_d_exports {
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, shouldEnableBundledDev, shouldUseReactPlugin, validatePlugins };
387
+ 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, PluginClientConfig, 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, shouldEnableBundledDev, shouldUseReactPlugin, validatePlugins };
422
388
  }
423
389
  interface CreateViteConfigOptions {
424
390
  /** Pre-computed routes. When provided, route generation is skipped. */
@@ -433,7 +399,20 @@ interface CreateViteConfigOptions {
433
399
  publicDir?: string | false;
434
400
  }
435
401
  declare function shouldEnableBundledDev(isProduction: boolean, value?: string | undefined): boolean;
436
- declare function shouldUseReactPlugin(isProduction: boolean, base: string, value?: string | undefined): boolean;
402
+ /**
403
+ * Whether `@vitejs/plugin-react` runs in dev.
404
+ *
405
+ * React Fast Refresh is what makes an edit to `layout.tsx`, an icon set or an
406
+ * external page swap in place instead of reloading the document. Without it
407
+ * there is no refresh runtime in the page, so every such edit falls back to a
408
+ * full reload and loses scroll position and loader state.
409
+ *
410
+ * It used to be skipped for any non-root base, which meant the common
411
+ * `base: '/docs'` documentation site had no Fast Refresh at all. The plugin
412
+ * handles a sub-path base correctly; only the bundled-dev opt-in remains
413
+ * environment-gated.
414
+ */
415
+ declare function shouldUseReactPlugin(isProduction: boolean, value?: string | undefined): boolean;
437
416
  declare function boltdocs(options?: BoltdocsPluginOptions): Promise<Plugin[]>;
438
417
  /**
439
418
  * Generates the complete Vite configuration for a Boltdocs project.
@@ -441,4 +420,4 @@ declare function boltdocs(options?: BoltdocsPluginOptions): Promise<Plugin[]>;
441
420
  */
442
421
  declare function createViteConfig(root: string, mode?: 'development' | 'production', preResolvedConfig?: BoltdocsConfig, options?: CreateViteConfigOptions): Promise<InlineConfig>;
443
422
  //#endregion
444
- 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, shouldEnableBundledDev, shouldUseReactPlugin, validatePlugins };
423
+ 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, type PluginClientConfig, PluginCompatibilityError, type PluginContext, type 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, shouldEnableBundledDev, shouldUseReactPlugin, 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-b5qVVQSU.mjs";import{C as t,S as n,_ as r,a as i,b as a,c as o,g as s,h as c,i as l,m as u,n as d,o as f,p,r as m,s as h,t as g,u as _,v,x as y,y as b}from"../node-CT2E84nY.mjs";import{f as x,u as S}from"../utils-8lzafE49.mjs";import{flushCache as C}from"./cache.mjs";import{r as w,t as T}from"../routes-Dw6g0bfF.mjs";import{i as E,n as D}from"../config-B3_iVsbi.mjs";import{a as O,c as k,i as A,l as j,n as M,o as N,r as P,s as F,t as I}from"../registry-CHh8A5as.mjs";import{t as L}from"../handler-Lex5DbvG.mjs";import{i as R,n as z,r as B,t as V}from"../adapters-BKzKe2mO.mjs";export*from"@bdocs/unist-utils";export{I as BUILTIN_HIGHLIGHTERS,u as BoltdocsPluginStore,M as DEFAULT_HIGHLIGHTER,c as PluginCompatibilityError,s as PluginError,r as PluginHookError,o as PluginLifecycleManager,v as PluginValidationError,b as createArticleStructuredData,a as createBreadcrumbStructuredData,f as createPlugin,y as createStructuredData,d as createViteConfig,n as createWebSiteStructuredData,g as default,E as defineConfig,h as definePlugin,t as defineStructuredData,C as flushCache,e as generateEntryCode,T as generateRoutes,P as getCodeHighlighterAdapter,A as getHighlighterNames,V as handleAwsFeedback,L as handleFeedback,B as handleNetlifyFeedback,R as handleVercelFeedback,z as handleWebFeedback,w as invalidateRouteCache,O as isHighlighterRegistered,m as normalizeCodeHighlightConfig,S as normalizePath,N as prewarmCodeHighlighting,F as prewarmHighlighter,k as registerHighlighter,j as registerPluginHighlighter,D as resolveConfig,_ as resolvePluginHook,x as sanitizeFilename,l as shouldEnableBundledDev,i as shouldUseReactPlugin,p as validatePlugins};
6
+ import{g as e}from"../plugin-context-COh-cbsW.mjs";import{C as t,S as n,_ as r,a as i,b as a,c as o,g as s,h as c,i as l,m as u,n as d,o as f,p,r as m,s as h,t as g,u as _,v,x as y,y as b}from"../node-Da3tYBHo.mjs";import{f as x,u as S}from"../utils-8lzafE49.mjs";import{flushCache as C}from"./cache.mjs";import{r as w,t as T}from"../routes-_I_8PQYF.mjs";import{i as E,n as D}from"../config-CTcfF-0c.mjs";import{a as O,c as k,i as A,l as j,n as M,o as N,r as P,s as F,t as I}from"../registry-CHh8A5as.mjs";import{t as L}from"../handler-DBZqoWt2.mjs";import{i as R,n as z,r as B,t as V}from"../adapters-BXiBWAKs.mjs";export*from"@bdocs/unist-utils";export{I as BUILTIN_HIGHLIGHTERS,u as BoltdocsPluginStore,M as DEFAULT_HIGHLIGHTER,c as PluginCompatibilityError,s as PluginError,r as PluginHookError,o as PluginLifecycleManager,v as PluginValidationError,b as createArticleStructuredData,a as createBreadcrumbStructuredData,f as createPlugin,y as createStructuredData,d as createViteConfig,n as createWebSiteStructuredData,g as default,E as defineConfig,h as definePlugin,t as defineStructuredData,C as flushCache,e as generateEntryCode,T as generateRoutes,P as getCodeHighlighterAdapter,A as getHighlighterNames,V as handleAwsFeedback,L as handleFeedback,B as handleNetlifyFeedback,R as handleVercelFeedback,z as handleWebFeedback,w as invalidateRouteCache,O as isHighlighterRegistered,m as normalizeCodeHighlightConfig,S as normalizePath,N as prewarmCodeHighlighting,F as prewarmHighlighter,k as registerHighlighter,j as registerPluginHighlighter,D as resolveConfig,_ as resolvePluginHook,x as sanitizeFilename,l as shouldEnableBundledDev,i as shouldUseReactPlugin,p as validatePlugins};
@@ -1,5 +1,5 @@
1
1
 
2
- import { a as CodeHighlightConfig, c as CodeHighlighterRuntime, l as CodeTheme, o as CodeHighlighterAdapter } from "../../types-X_Pwk8Cg.cjs";
2
+ import { l as CodeHighlighterRuntime, o as CodeHighlightConfig, s as CodeHighlighterAdapter, u as CodeTheme } from "../../types-58Ac3UGI.cjs";
3
3
  import { ParsedMeta, parseMetaString } from "@bdocs/unist-utils";
4
4
  import * as _$shiki from "shiki";
5
5
  //#region src/node/mdx/highlighter.d.ts
@@ -1,5 +1,5 @@
1
1
 
2
- import { a as CodeHighlightConfig, c as CodeHighlighterRuntime, l as CodeTheme, o as CodeHighlighterAdapter } from "../../types-74i_xUe2.mjs";
2
+ import { l as CodeHighlighterRuntime, o as CodeHighlightConfig, s as CodeHighlighterAdapter, u as CodeTheme } from "../../types-BwnGf-1E.mjs";
3
3
  import { ParsedMeta, parseMetaString } from "@bdocs/unist-utils";
4
4
  import * as _$shiki from "shiki";
5
5