boltdocs 3.3.4 → 3.3.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{build-COgv-rkY.mjs → build-BJnL-FHG.mjs} +1 -1
- package/dist/{build-1CsvBIsN.cjs → build-CxT38vPv.cjs} +1 -1
- package/dist/client/index.cjs +80 -32
- package/dist/client/index.d.cts +1 -1
- package/dist/client/index.d.ts +1 -1
- package/dist/client/index.js +78 -31
- package/dist/client/mdx.cjs +1 -1
- package/dist/client/mdx.js +1 -1
- package/dist/client/primitives.cjs +4 -4
- package/dist/client/primitives.d.cts +40 -9
- package/dist/client/primitives.d.ts +40 -9
- package/dist/client/primitives.js +4 -4
- package/dist/config-B3_iVsbi.mjs +7 -0
- package/dist/{config-PLvresCv.cjs → config-BC_qhXws.cjs} +1 -1
- package/dist/config-BJp3lGzE.cjs +7 -0
- package/dist/{dev-C_9iBwmu.cjs → dev-46NiL0MC.cjs} +1 -1
- package/dist/{dev-UWVM3ah-.mjs → dev-C4kjO5xs.mjs} +1 -1
- package/dist/{docs-layout-CbZ7LDRe.js → docs-layout-D3Fmb0Wd.js} +16 -117
- package/dist/{docs-layout-vzfXed1Q.cjs → docs-layout-SgphExoE.cjs} +16 -123
- package/dist/{doctor-DMECtdK6.cjs → doctor-BqxOFRt3.cjs} +1 -1
- package/dist/{doctor-i8Qmd8DJ.mjs → doctor-Cv5lXnay.mjs} +1 -1
- package/dist/{doctor-FuFY1jBz.cjs → doctor-TS3JGNEU.cjs} +1 -1
- package/dist/{image-B-NDSDuY.js → image-BAiDReNd.js} +1 -1
- package/dist/{image-Hnaa2bJd.cjs → image-Bkx85rsq.cjs} +1 -1
- package/dist/{index-Cg3TmXIZ.d.ts → index-B1Mx0dHl.d.ts} +30 -6
- package/dist/{index-CSiMUBhC.d.cts → index-DLaHgD-i.d.cts} +30 -6
- package/dist/{link-vZjmD-es.cjs → link-hLWOsx0x.cjs} +59 -28
- package/dist/{link-CgdI6O2o.js → link-q1qHNGK_.js} +54 -29
- package/dist/{mdx-BRT71V5Q.js → mdx-CJGWzBGy.js} +2 -2
- package/dist/{mdx-D0Absdq5.cjs → mdx-Qi0DmaY8.cjs} +2 -2
- package/dist/node/cli-entry.cjs +1 -1
- package/dist/node/cli-entry.mjs +1 -1
- package/dist/node/highlight.d.cts +2 -2
- package/dist/node/highlight.d.mts +2 -2
- package/dist/node/index.cjs +1 -1
- package/dist/node/index.d.cts +7 -4
- package/dist/node/index.d.mts +7 -4
- package/dist/node/index.mjs +1 -1
- package/dist/node/mdx/shiki-adapter.cjs +1 -1
- package/dist/node/mdx/shiki-adapter.d.cts +7 -2
- package/dist/node/mdx/shiki-adapter.d.mts +7 -2
- package/dist/node/mdx/shiki-adapter.mjs +1 -1
- package/dist/node-7Cfw6nMr.cjs +23 -0
- package/dist/node-CT2E84nY.mjs +23 -0
- package/dist/{package-Cwma8oO7.cjs → package-Bah2tHjK.cjs} +1 -1
- package/dist/{package-CKC-4LtU.mjs → package-D6bf68FR.mjs} +1 -1
- package/dist/plugin-AgNI3ktz.cjs +69 -0
- package/dist/plugin-BAv_pYLt.mjs +69 -0
- package/dist/{plugin-context-BxF88sW4.cjs → plugin-context-BZs5lvDu.cjs} +3 -3
- package/dist/{plugin-context-BKK-nfOd.mjs → plugin-context-b5qVVQSU.mjs} +2 -2
- package/dist/{plugin-lifecycle-BjMclfc3.cjs → plugin-lifecycle-s89gzTlh.cjs} +1 -1
- package/dist/{registry-BbB6NqSv.d.cts → registry-B8pt41zj.d.cts} +1 -1
- package/dist/{registry-sJqDv0kE.d.mts → registry-BrrH2X9c.d.mts} +1 -1
- package/dist/routes-CzhKOw67.cjs +6 -0
- package/dist/{routes-C3_w9fLX.cjs → routes-Dq_2EUIB.cjs} +1 -1
- package/dist/routes-Dw6g0bfF.mjs +6 -0
- package/dist/search-dialog-BYZS9aeO.cjs +747 -0
- package/dist/{search-dialog-x_qHU8ty.cjs → search-dialog-CguKVtUu.cjs} +145 -5
- package/dist/{search-dialog-MmwxFMmE.js → search-dialog-DQwod5Xc.js} +1 -1
- package/dist/search-dialog-DzObE-Ar.js +717 -0
- package/dist/{search-dialog-DmirOMPg.cjs → search-dialog-QgKRRbsI.cjs} +1 -1
- package/dist/{search-dialog-BqkzDTq2.js → search-dialog-mYnqU4v7.js} +134 -6
- package/dist/{types-Db6zToZH.d.mts → types-74i_xUe2.d.mts} +1 -1
- package/dist/{types-o7iZ2BAR.d.cts → types-X_Pwk8Cg.d.cts} +1 -1
- package/dist/virtual-modules-C3S3Nz8r.cjs +40 -0
- package/dist/virtual-modules-CaxqrFd6.mjs +40 -0
- package/package.json +4 -3
- package/dist/config-CrsQJHQz.cjs +0 -7
- package/dist/config-DC0nMMk7.mjs +0 -7
- package/dist/node-C3HctGaH.cjs +0 -23
- package/dist/node-CUiheODn.mjs +0 -23
- package/dist/plugin-BX6TXR8x.cjs +0 -69
- package/dist/plugin-C8UMIA-4.mjs +0 -69
- package/dist/routes-C0kb4ue6.cjs +0 -6
- package/dist/routes-C4wrLWwu.mjs +0 -6
- package/dist/search-dialog-D3jtaw6w.cjs +0 -525
- package/dist/search-dialog-DRiXejws.js +0 -501
- package/dist/virtual-modules-XBiJoTsp.mjs +0 -39
- package/dist/virtual-modules-hndVivLR.cjs +0 -39
|
@@ -3,6 +3,6 @@
|
|
|
3
3
|
* Copyright (c) 2026 Jesus Alcala
|
|
4
4
|
* Licensed under the MIT License.
|
|
5
5
|
*/
|
|
6
|
-
const require_search_dialog = require('./search-dialog-
|
|
6
|
+
const require_search_dialog = require('./search-dialog-BYZS9aeO.cjs');
|
|
7
7
|
|
|
8
8
|
exports.SearchDialog = require_search_dialog.SearchDialog;
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Copyright (c) 2026 Jesus Alcala
|
|
4
4
|
* Licensed under the MIT License.
|
|
5
5
|
*/
|
|
6
|
-
import {
|
|
6
|
+
import { B as Sun, C as ExternalLink, D as FileText, G as useConfig, H as X, I as Moon, L as MoreVertical, O as Hash, S as CornerDownLeft, f as resolvePublicAssetUrl, o as cn, s as useLocalizedTo, t as Link } from "./link-q1qHNGK_.js";
|
|
7
7
|
import { E as useLocation } from "./router-CZBxMRAH.js";
|
|
8
8
|
import { Component, useEffect, useState } from "react";
|
|
9
9
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -39,6 +39,15 @@ var ErrorBoundary = class extends Component {
|
|
|
39
39
|
error: null
|
|
40
40
|
});
|
|
41
41
|
};
|
|
42
|
+
prevResetKeys = [];
|
|
43
|
+
componentDidUpdate(prevProps) {
|
|
44
|
+
if (prevProps.resetKeys !== this.props.resetKeys && this.state.hasError && this.props.resetKeys?.length && this.props.resetKeys.some((key, i) => !Object.is(key, this.prevResetKeys[i]))) {
|
|
45
|
+
this.prevResetKeys = this.props.resetKeys;
|
|
46
|
+
this.resetErrorBoundary();
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
this.prevResetKeys = this.props.resetKeys ?? [];
|
|
50
|
+
}
|
|
42
51
|
render() {
|
|
43
52
|
const { hasError, error } = this.state;
|
|
44
53
|
const { children, fallback, FallbackComponent } = this.props;
|
|
@@ -165,17 +174,20 @@ function NavbarLogo({ src, alt, width = 24, height = 24, className, logoClassNam
|
|
|
165
174
|
});
|
|
166
175
|
}
|
|
167
176
|
function NavbarTitle({ children, className, linkClassName, href = "/" }) {
|
|
177
|
+
const titleText = typeof children === "string" || typeof children === "number" ? String(children) : void 0;
|
|
168
178
|
return /* @__PURE__ */ jsx(Link, {
|
|
169
179
|
href,
|
|
170
180
|
className: cn(linkClassName),
|
|
181
|
+
"aria-label": titleText ? `Go to ${titleText} home` : void 0,
|
|
171
182
|
children: /* @__PURE__ */ jsx("span", {
|
|
172
183
|
className: cn("text-lg font-bold tracking-tight hidden sm:inline-block", className),
|
|
173
184
|
children
|
|
174
185
|
})
|
|
175
186
|
});
|
|
176
187
|
}
|
|
177
|
-
function NavbarLinks({ children, className }) {
|
|
188
|
+
function NavbarLinks({ children, className, label }) {
|
|
178
189
|
return /* @__PURE__ */ jsx("nav", {
|
|
190
|
+
"aria-label": label,
|
|
179
191
|
className: cn("hidden md:flex items-center gap-6 text-sm font-medium", className),
|
|
180
192
|
children
|
|
181
193
|
});
|
|
@@ -236,18 +248,20 @@ function NavbarDropdownItem({ href, label, className }) {
|
|
|
236
248
|
children: label
|
|
237
249
|
});
|
|
238
250
|
}
|
|
239
|
-
function NavbarSearchTriggerDesktop({ className, onPress, children }) {
|
|
251
|
+
function NavbarSearchTriggerDesktop({ className, onPress, children, ...props }) {
|
|
240
252
|
return /* @__PURE__ */ jsx(Button, {
|
|
253
|
+
...props,
|
|
241
254
|
onPress,
|
|
242
255
|
className: cn("hidden lg:flex items-center justify-between gap-2 px-3 py-2 text-sm outline-none cursor-pointer w-full max-w-[720px]", className),
|
|
243
256
|
children
|
|
244
257
|
});
|
|
245
258
|
}
|
|
246
|
-
function NavbarSearchTriggerMobile({ className, onPress, children }) {
|
|
259
|
+
function NavbarSearchTriggerMobile({ className, onPress, children, ...props }) {
|
|
247
260
|
return /* @__PURE__ */ jsx(Button, {
|
|
261
|
+
...props,
|
|
248
262
|
onPress,
|
|
249
263
|
className: cn("lg:hidden flex h-10 w-10 items-center justify-center outline-none cursor-pointer", className),
|
|
250
|
-
"aria-label": "Search",
|
|
264
|
+
"aria-label": props["aria-label"] || "Search",
|
|
251
265
|
children
|
|
252
266
|
});
|
|
253
267
|
}
|
|
@@ -330,6 +344,7 @@ function NavbarMobileMenu({ isOpen, onClose, children, className, overlayClassNa
|
|
|
330
344
|
children: /* @__PURE__ */ jsx(X, { size: 24 })
|
|
331
345
|
})]
|
|
332
346
|
}), /* @__PURE__ */ jsx("nav", {
|
|
347
|
+
"aria-label": "Mobile navigation",
|
|
333
348
|
className: cn("flex-1 overflow-y-auto flex flex-col gap-4", navClassName),
|
|
334
349
|
children
|
|
335
350
|
})]
|
|
@@ -405,6 +420,119 @@ Navbar.MobileMenu = NavbarMobileMenu;
|
|
|
405
420
|
Navbar.MobileLink = NavbarMobileLink;
|
|
406
421
|
Navbar.MobileLinkItem = NavbarMobileLinkItem;
|
|
407
422
|
|
|
423
|
+
//#endregion
|
|
424
|
+
//#region src/client/hooks/use-search-highlight.ts
|
|
425
|
+
/**
|
|
426
|
+
* Hook to highlight search terms based on the 'hl' query parameter.
|
|
427
|
+
*/
|
|
428
|
+
function useSearchHighlight(containerSelector = ".boltdocs-page") {
|
|
429
|
+
const { search } = useLocation();
|
|
430
|
+
const query = new URLSearchParams(search).get("hl");
|
|
431
|
+
useEffect(() => {
|
|
432
|
+
if (!query) {
|
|
433
|
+
clearHighlights(containerSelector);
|
|
434
|
+
return;
|
|
435
|
+
}
|
|
436
|
+
const container = document.querySelector(containerSelector);
|
|
437
|
+
if (!container) return;
|
|
438
|
+
const target = container;
|
|
439
|
+
let rafId;
|
|
440
|
+
const observer = new MutationObserver((mutations) => {
|
|
441
|
+
if (mutations.some((m) => {
|
|
442
|
+
const addedNodes = Array.from(m.addedNodes);
|
|
443
|
+
const removedNodes = Array.from(m.removedNodes);
|
|
444
|
+
return addedNodes.some((n) => !(n instanceof HTMLElement && n.hasAttribute("data-search-highlight"))) || removedNodes.some((n) => !(n instanceof HTMLElement && n.hasAttribute("data-search-highlight")));
|
|
445
|
+
})) run();
|
|
446
|
+
});
|
|
447
|
+
function run() {
|
|
448
|
+
cancelAnimationFrame(rafId);
|
|
449
|
+
rafId = requestAnimationFrame(() => {
|
|
450
|
+
observer.disconnect();
|
|
451
|
+
clearHighlights(containerSelector);
|
|
452
|
+
const terms = (query ?? "").split(/\s+/).map((t) => t.trim()).filter((t) => t.length >= 2);
|
|
453
|
+
if (terms.length > 0) highlightTerms(target, terms);
|
|
454
|
+
observer.observe(target, {
|
|
455
|
+
childList: true,
|
|
456
|
+
subtree: true
|
|
457
|
+
});
|
|
458
|
+
});
|
|
459
|
+
}
|
|
460
|
+
run();
|
|
461
|
+
return () => {
|
|
462
|
+
cancelAnimationFrame(rafId);
|
|
463
|
+
observer.disconnect();
|
|
464
|
+
clearHighlights(containerSelector);
|
|
465
|
+
};
|
|
466
|
+
}, [query, containerSelector]);
|
|
467
|
+
}
|
|
468
|
+
function clearHighlights(selector) {
|
|
469
|
+
document.querySelectorAll(`${selector} mark[data-search-highlight]`).forEach((mark) => {
|
|
470
|
+
try {
|
|
471
|
+
const parent = mark.parentNode;
|
|
472
|
+
if (parent?.contains(mark)) {
|
|
473
|
+
const text = mark.textContent || "";
|
|
474
|
+
parent.replaceChild(document.createTextNode(text), mark);
|
|
475
|
+
}
|
|
476
|
+
} catch {}
|
|
477
|
+
});
|
|
478
|
+
}
|
|
479
|
+
function createSearchHighlightRegex(terms) {
|
|
480
|
+
const accentMap = {
|
|
481
|
+
a: "[aáàäâãåāăą]",
|
|
482
|
+
c: "[cçćč]",
|
|
483
|
+
d: "[dďđ]",
|
|
484
|
+
e: "[eéèëêėęě]",
|
|
485
|
+
g: "[gğģ]",
|
|
486
|
+
i: "[iíìïîīįı]",
|
|
487
|
+
l: "[lĺļł]",
|
|
488
|
+
n: "[nñńň]",
|
|
489
|
+
o: "[oóòöôõøōő]",
|
|
490
|
+
r: "[rřŕ]",
|
|
491
|
+
s: "[sśšş]",
|
|
492
|
+
t: "[tťţ]",
|
|
493
|
+
u: "[uúùüûūůűų]",
|
|
494
|
+
y: "[yýÿ]",
|
|
495
|
+
z: "[zžźż]"
|
|
496
|
+
};
|
|
497
|
+
const escapeTerm = (term) => [...term].map((char) => {
|
|
498
|
+
return accentMap[char.toLocaleLowerCase()] ?? char.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
499
|
+
}).join("");
|
|
500
|
+
const uniqueTerms = [...new Set(terms.map((term) => term.trim()).filter(Boolean))].sort((left, right) => right.length - left.length);
|
|
501
|
+
if (uniqueTerms.length === 0) return null;
|
|
502
|
+
return new RegExp(`(${uniqueTerms.map(escapeTerm).join("|")})`, "gi");
|
|
503
|
+
}
|
|
504
|
+
function highlightTerms(container, terms) {
|
|
505
|
+
const walker = document.createTreeWalker(container, NodeFilter.SHOW_TEXT, { acceptNode: (node) => {
|
|
506
|
+
const parent = node.parentElement;
|
|
507
|
+
if (parent && (parent.tagName === "SCRIPT" || parent.tagName === "STYLE" || parent.tagName === "MARK" || parent.closest("pre") || parent.closest("code"))) return NodeFilter.FILTER_REJECT;
|
|
508
|
+
return NodeFilter.FILTER_ACCEPT;
|
|
509
|
+
} });
|
|
510
|
+
const nodes = [];
|
|
511
|
+
let node = walker.nextNode();
|
|
512
|
+
while (node) {
|
|
513
|
+
nodes.push(node);
|
|
514
|
+
node = walker.nextNode();
|
|
515
|
+
}
|
|
516
|
+
const regex = createSearchHighlightRegex(terms);
|
|
517
|
+
if (!regex) return;
|
|
518
|
+
nodes.forEach((textNode) => {
|
|
519
|
+
const text = textNode.textContent;
|
|
520
|
+
regex.lastIndex = 0;
|
|
521
|
+
if (text && regex.test(text)) {
|
|
522
|
+
const fragment = document.createDocumentFragment();
|
|
523
|
+
text.split(regex).forEach((part, index) => {
|
|
524
|
+
if (index % 2 === 1) {
|
|
525
|
+
const mark = document.createElement("mark");
|
|
526
|
+
mark.textContent = part;
|
|
527
|
+
mark.setAttribute("data-search-highlight", "true");
|
|
528
|
+
fragment.appendChild(mark);
|
|
529
|
+
} else if (part) fragment.appendChild(document.createTextNode(part));
|
|
530
|
+
});
|
|
531
|
+
if (textNode.parentNode) textNode.parentNode.replaceChild(fragment, textNode);
|
|
532
|
+
}
|
|
533
|
+
});
|
|
534
|
+
}
|
|
535
|
+
|
|
408
536
|
//#endregion
|
|
409
537
|
//#region src/client/components/primitives/search-dialog.tsx
|
|
410
538
|
/**
|
|
@@ -541,4 +669,4 @@ SearchDialog.Item = Object.assign(SearchDialogItemRoot, {
|
|
|
541
669
|
});
|
|
542
670
|
|
|
543
671
|
//#endregion
|
|
544
|
-
export {
|
|
672
|
+
export { Github as a, Button$1 as c, Navbar as i, createSearchHighlightRegex as n, ErrorBoundary as o, useSearchHighlight as r, ErrorBoundaryFallback as s, SearchDialog as t };
|
|
@@ -972,4 +972,4 @@ type BoltdocsRoutePath = keyof Boltdocs.RoutePaths;
|
|
|
972
972
|
type ExternalRouteReference = `/${string}` | `#${string}` | `?${string}` | `site:/${string}` | `site:${string}` | `http://${string}` | `https://${string}` | `//${string}`;
|
|
973
973
|
type BoltdocsRoutePathWithFallback = BoltdocsRoutePath | ExternalRouteReference | string;
|
|
974
974
|
//#endregion
|
|
975
|
-
export {
|
|
975
|
+
export { PluginStore as C, StructuredData as D, RouteMeta as E, PluginServerMiddleware as S, RegisteredVirtualModule as T, PluginContext as _, CodeHighlightConfig as a, PluginLogger as b, CodeHighlighterRuntime as c, ExternalFileRoute as d, IPluginLifecycleManager as f, PluginClientConfig as g, ParsedMetaLike as h, BoltdocsViewTransitionsConfig as i, CodeTheme as l, JsonLdValue as m, BoltdocsExperimentalConfig as n, CodeHighlighterAdapter as o, JsonLdObject as p, BoltdocsThemeConfig as r, CodeHighlighterEngine as s, BoltdocsConfig as t, DiagnosticRecord as u, PluginHmrEvent as v, PluginTransformMiddleware as w, PluginMeta as x, PluginLifecycleHooks as y };
|
|
@@ -972,4 +972,4 @@ type BoltdocsRoutePath = keyof Boltdocs.RoutePaths;
|
|
|
972
972
|
type ExternalRouteReference = `/${string}` | `#${string}` | `?${string}` | `site:/${string}` | `site:${string}` | `http://${string}` | `https://${string}` | `//${string}`;
|
|
973
973
|
type BoltdocsRoutePathWithFallback = BoltdocsRoutePath | ExternalRouteReference | string;
|
|
974
974
|
//#endregion
|
|
975
|
-
export {
|
|
975
|
+
export { PluginStore as C, StructuredData as D, RouteMeta as E, PluginServerMiddleware as S, RegisteredVirtualModule as T, PluginContext as _, CodeHighlightConfig as a, PluginLogger as b, CodeHighlighterRuntime as c, ExternalFileRoute as d, IPluginLifecycleManager as f, PluginClientConfig as g, ParsedMetaLike as h, BoltdocsViewTransitionsConfig as i, CodeTheme as l, JsonLdValue as m, BoltdocsExperimentalConfig as n, CodeHighlighterAdapter as o, JsonLdObject as p, BoltdocsThemeConfig as r, CodeHighlighterEngine as s, BoltdocsConfig as t, DiagnosticRecord as u, PluginHmrEvent as v, PluginTransformMiddleware as w, PluginMeta as x, PluginLifecycleHooks as y };
|
|
@@ -0,0 +1,40 @@
|
|
|
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-ej6_SjIZ.cjs`),n=require(`./plugin-context-BZs5lvDu.cjs`),r=require(`./routes-CzhKOw67.cjs`);let i=require(`node:path`);i=e.r(i);let a=require(`node:fs`);a=e.r(a);const o=1200;function s(e){return typeof e==`string`?[e]:Array.isArray(e)?e.flatMap(s):e&&typeof e==`object`?Object.values(e).flatMap(s):[]}const c=new Set([`title`,`description`,`permalink`,`sidebarPosition`,`sidebarLabel`,`sidebarHidden`,`hidden`,`category`,`order`,`badge`,`icon`,`date`,`lastUpdated`,`groupTitle`,`groupPosition`,`seo`]);function l(e,t){let n=e.replace(/\s+/g,` `).trim();return n.length>t?n.slice(0,t).trim():n}function u(e,t){let n=[],r=e.toLocaleLowerCase(),i=0;for(let e of t.slice(0,100)){let t=e.text.trim();if(!t)continue;let a=r.indexOf(t.toLocaleLowerCase(),i);if(a<0){n.push({heading:e,body:``});continue}let o=a+t.length;n.push({heading:e,start:o,body:``}),i=o}return n.map((t,r)=>{if(t.start===void 0)return t;let i=n[r+1]?.start??e.length;return{heading:t.heading,body:l(e.slice(t.start,i),Math.max(0,o-t.heading.text.length-4))}})}function d(e){let t=[];for(let n of e){let e=``;n.frontmatter&&(e=s(Object.entries(n.frontmatter).filter(([e])=>!c.has(e)).map(([e,t])=>t)).join(` `));let r=n._content||``,i=l(e?`${r} ${e}`:r,2e3),a=n.headings?u(r,n.headings):[];if(t.push({id:n.path,title:n.title,content:i,url:n.path,display:n.groupTitle?`${n.groupTitle} > ${n.title}`:n.title,locale:n.locale,version:n.version}),n.headings){let e=6e3;for(let r of a){let{heading:i}=r,a=`${i.text} in ${n.title}`,s=l(r.body?`${a} ${r.body}`:a,Math.min(o,e));if(s&&(t.push({id:`${n.path}#${i.id}`,title:i.text,content:s,url:`${n.path}#${i.id}`,display:`${n.title} > ${i.text}`,locale:n.locale,version:n.version}),e=Math.max(0,e-s.length)),e===0)break}}}return t}function f(e){return{path:e.path,filePath:e.filePath,title:e.title,description:e.description||``,sidebarPosition:e.sidebarPosition,badge:e.badge,icon:e.icon,headings:e.headings||[],frontmatter:e.frontmatter,locale:e.locale,version:e.version,tab:e.tab,collection:e.collection,tags:e.tags,author:e.author,draft:e.draft,excerpt:e.excerpt,coverImage:e.coverImage,group:e.group,groupTitle:e.groupTitle,groupPosition:e.groupPosition,groupIcon:e.groupIcon,subRouteGroup:e.subRouteGroup,seo:e.seo,date:e.date,lastUpdated:e.lastUpdated,category:e.category,order:e.order,sidebarLabel:e.sidebarLabel,sidebarHidden:e.sidebarHidden,slugParts:e.slugParts}}const p=new Set([`apikey`,`authorization`,`credential`,`credentials`,`password`,`privatekey`,`secret`,`secretkey`,`token`]);function m(e){return p.has(e.toLowerCase().replace(/[^a-z0-9]/g,``))}function h(e,t=0){return t>10||typeof e!=`object`||!e?e:Array.isArray(e)?e.map(e=>h(e,t+1)):Object.fromEntries(Object.entries(e).filter(([e])=>!m(e)).map(([e,n])=>[e,h(n,t+1)]))}function g(e){return{name:e.name,...e.metadata?{metadata:h(e.metadata)}:{}}}function _(e){let t=e.lastIndexOf(`#`);return t===-1?{modulePath:e,exportName:`default`}:{modulePath:e.slice(0,t),exportName:e.slice(t+1)||`default`}}function v(e){let t={};for(let n of e)for(let[e,r]of Object.entries(n.client?.slots??{}))t[e]??=[],t[e].push(r);return`const slots = {\n${Object.entries(t).map(([e,t])=>{let n=t.map((t,n)=>{let{modulePath:r,exportName:i}=_(t);return`{ id: ${JSON.stringify(`${e}:${n}`)}, load: () => import(${JSON.stringify(r)}).then(module => ({ default: module[${JSON.stringify(i)}] || module.default })) }`});return` ${JSON.stringify(e)}: [${n.join(`, `)}]`}).join(`,
|
|
7
|
+
`)}\n};\nexport default slots;\n`}function y(e){return{routeCacheContext:e,routeGenerationFingerprint:void 0,directoryMetaCache:null,routesDataMap:new Map,collectionsDataMap:new Map,searchDataMap:new Map,serializedSearchData:null,serializedPageSourceData:null}}const b=y();function x(e){return e??b}function S(e){let t=x(e);t.directoryMetaCache=null,t.routeGenerationFingerprint=void 0,t.routeCacheVariant=void 0,t.routesDataMap.clear(),t.collectionsDataMap.clear(),t.searchDataMap.clear(),t.serializedSearchData=null,t.serializedPageSourceData=null}function C(e,t){return(!t.routeCacheContext||t.routeCacheContext.disposed)&&(t.routeCacheContext=r.d(e),t.routeCacheVariant=void 0,t.routeGenerationFingerprint=void 0,t.routesDataMap.clear(),t.collectionsDataMap.clear(),t.searchDataMap.clear(),t.serializedSearchData=null,t.serializedPageSourceData=null),t.routeCacheContext}async function w(e,t,n,i){let a=x(n),o=C(e,a),s=r.p(t),c=(i?.fingerprint===s&&o.variants.get(s)===i?i:void 0)??r.f(o,s);a.routeCacheVariant=c,a.routeGenerationFingerprint=s;let l=await r.t(e,t,void 0,!1,o,c);a.routesDataMap.clear();for(let e of l)a.routesDataMap.set(e.path,e);T(a)}function T(e){let t=x(e),n=Array.from(t.routesDataMap.values()),r=d(n);t.searchDataMap.clear(),t.serializedSearchData=null,t.serializedPageSourceData=null;for(let e of r)t.searchDataMap.set(e.id,e);t.collectionsDataMap.clear();for(let e of n)if(e.collection){let n={path:e.path,title:e.title,date:e.date,excerpt:e.excerpt,tags:e.tags,author:e.author,coverImage:e.coverImage,filePath:e.filePath,locale:e.locale,version:e.version,frontmatter:e.frontmatter,draft:e.frontmatter?.draft===!0,collection:e.collection};t.collectionsDataMap.set(e.filePath,n)}t.serializedSearchData=JSON.stringify(k(t)),t.serializedPageSourceData=JSON.stringify(A(t))}async function E(e,t,n){let i=x(n);C(e,i);let a=r.p(t);(i.routesDataMap.size===0||i.routeGenerationFingerprint!==a)&&(i.routesDataMap.clear(),i.collectionsDataMap.clear(),i.searchDataMap.clear(),i.serializedSearchData=null,i.serializedPageSourceData=null,await w(e,t,i))}function D(e){let t=x(e),n={},r=Array.from(t.collectionsDataMap.values()).sort((e,t)=>{let n=e=>{if(!e)return-1/0;let t=new Date(e).getTime();return Number.isFinite(t)?t:-1/0},r=n(e.date),i=n(t.date)-r;return i===0?e.path.localeCompare(t.path):i});for(let e of r){let t=e.collection;t&&(n[t]||(n[t]=[]),n[t].push(e))}return n}function O(e,t=e=>e){let n=Array.from(e.values(),t).sort((e,t)=>{let n=e=>{if(typeof e!=`object`||!e)return String(e);let t=e;return`${String(t.path||``)}\u0000${String(t.id||``)}\u0000${String(t.filePath||``)}`};return n(e).localeCompare(n(t))});return`export default ${JSON.stringify(n)};`}function k(e){return Array.from(x(e).searchDataMap.values()).sort((e,t)=>e.id.localeCompare(t.id))}function A(e){let t=x(e),n={};for(let e of t.routesDataMap.values()){let t=e;t.path&&t._rawContent&&(n[t.path]=t._rawContent)}return Object.fromEntries(Object.entries(n).sort(([e],[t])=>e.localeCompare(t)))}function j(e){let t=x(e);return t.serializedSearchData===null&&(t.serializedSearchData=JSON.stringify(k(t))),t.serializedSearchData}function M(e){let t=x(e);return t.serializedPageSourceData===null&&(t.serializedPageSourceData=JSON.stringify(A(t))),t.serializedPageSourceData}function N(e){return`export default ${JSON.stringify(e)};`}async function P(e,t,n,i,a){let o=x(n);i&&(o.routeCacheContext=i),a&&(o.routeCacheVariant=a);let s=r.p(t);o.routeGenerationFingerprint!==s&&(o.routesDataMap.clear(),o.collectionsDataMap.clear(),o.searchDataMap.clear(),o.serializedSearchData=null,o.serializedPageSourceData=null);let c=new Map(o.routesDataMap),l=new Map(o.collectionsDataMap),u=new Map(o.searchDataMap);await w(e,t,o);let d={routes:{updated:[],deleted:[]},collections:{updated:[],deleted:[]},search:{updated:[],deleted:[]}};for(let[e,t]of o.routesDataMap){let n=c.get(e);(!n||JSON.stringify(n)!==JSON.stringify(t))&&d.routes.updated.push(f(t))}for(let e of c.keys())o.routesDataMap.has(e)||d.routes.deleted.push(e);for(let[e,t]of o.collectionsDataMap){let n=l.get(e);(!n||JSON.stringify(n)!==JSON.stringify(t))&&d.collections.updated.push(t)}for(let e of l.keys())o.collectionsDataMap.has(e)||d.collections.deleted.push(e);for(let[e,t]of o.searchDataMap){let n=u.get(e);(!n||JSON.stringify(n)!==JSON.stringify(t))&&d.search.updated.push(t)}for(let e of u.keys())o.searchDataMap.has(e)||d.search.deleted.push(e);return d}function F(e,r,o,s,c,l){let u=c?.virtualModuleRegistry??n.h,d=x(l);return{name:`vite-plugin-boltdocs-virtual-modules`,resolveId(e){if(e.includes(`boltdocs-entry`)||e===`virtual:boltdocs-entry`||e===`boltdocs/entry`||e===`boltdocs-entry`||e===`\0virtual:boltdocs-entry`||e===`\0virtual:boltdocs-entry.tsx`)return`\0virtual:boltdocs-entry.tsx`;if(e===`virtual:boltdocs-client-registry`||e===`\0virtual:boltdocs-client-registry`)return`\0virtual:boltdocs-client-registry`;if(e.includes(`boltdocs-client`)||e===`virtual:boltdocs-client`||e===`boltdocs/client`||e===`boltdocs-client`||e===`\0virtual:boltdocs-client.mjs`)return`\0virtual:boltdocs-client.mjs`;if(e.startsWith(`\0`)){let t=e.slice(1);if(!t.startsWith(`virtual:boltdocs-`)&&u?.has(t))return e}else if(!e.startsWith(`virtual:boltdocs-`)&&u?.has(e))return`\0${e}`;return e.startsWith(`virtual:boltdocs-`)?`\0${e}`:e.startsWith(`\0virtual:boltdocs-`)?e:null},async load(c,l){let p=r(),m=c.startsWith(`\0`)?c.slice(1):c;if(!m.includes(`boltdocs-entry.tsx`)&&!m.includes(`boltdocs-client.mjs`)&&!m.startsWith(`virtual:boltdocs-`)&&u?.has(m)){let e=u?.get(m);if(!e)return null;try{let t=await e.loader();if(typeof t!=`string`)throw Error(`[boltdocs] Plugin virtual module '${m}' loader must return a string source code, got ${typeof t}.`);return t}catch(e){throw Error(`[boltdocs] Plugin virtual module '${m}' failed to load: ${e instanceof Error?e.message:String(e)}`)}}if(c.includes(`boltdocs-entry.tsx`)||c===`\0virtual:boltdocs-entry`){let t=this.environment?.config?.consumer,r=o(),i=t===void 0?!!r?.build?.ssr:t!==`client`;return n.g({...e,ssr:i,useCompiledPages:r?.command===`build`},p)}if(c.includes(`boltdocs-client.mjs`)||c===`\0virtual:boltdocs-client.ts`||c===`virtual:boltdocs-client`){let e=__dirname,n=e;for(;e!==i.default.parse(e).root;){if(a.default.existsSync(i.default.join(e,`package.json`))&&JSON.parse(a.default.readFileSync(i.default.join(e,`package.json`),`utf-8`)).name===`boltdocs`){n=e;break}e=i.default.dirname(e)}let r=i.default.join(n,`src/client/index.ts`),o=i.default.join(n,`dist/client/index.js`);return`export * from '${t.u(a.default.existsSync(r)?r:o)}';`}if(!c.startsWith(`\0virtual:boltdocs-`))return;let h=c.replace(`\0virtual:boltdocs-`,``).replace(/\.tsx?$/,``);if(h===`routes`)return await E(s,p,d),O(d.routesDataMap,f);if(h===`client-registry`)return v(p?.plugins??[]);if(h===`collections`)return await E(s,p,d),N(D(d));if(h===`config`){await E(s,p,d);let e=d.routeCacheVariant?.directoryMeta||{};d.directoryMetaCache=e;let t=[...new Set(Array.from(d.routesDataMap.values()).map(e=>e.collection).filter(e=>!!e))].sort((e,t)=>e.localeCompare(t)),n=p?.collections,r=n?{...n,labels:{...n.labels||{},...Object.fromEntries(t.map(e=>[e,n.labels?.[e]??e]))}}:t.length>0?t:void 0,i={base:p?.base,theme:p?.theme,i18n:p?.i18n,versions:p?.versions,siteUrl:p?.siteUrl,integrations:p?.integrations,collections:r,seo:p?.seo,experimental:p?.experimental,plugins:p?.plugins?.map(g),directoryMeta:e};return`export default ${JSON.stringify(i)};`}if(h===`entry`){let t=this,r=o(),i=t.environment?.config?.consumer,a=i===void 0?!!(l?.ssr??r?.build?.ssr):i!==`client`;return n.g({...e,ssr:a,useCompiledPages:r?.command===`build`},p)}if(h===`mdx-components`){let e=[`tsx`,`ts`,`jsx`,`js`],n=null;for(let t of e){let e=i.default.resolve(s,`mdx-components.${t}`);if(a.default.existsSync(e)){n=e;break}}let r={};if(p?.plugins)for(let e of p.plugins)e.components&&Object.assign(r,e.components);let o=Object.entries(r),c=o.map(([e,t],n)=>`import * as _pluginCompMod_${n} from '${t}';`).join(`
|
|
8
|
+
`),l=o.map(([e],t)=>`${JSON.stringify(e)}: _pluginCompMod_${t}[${JSON.stringify(e)}] || Reflect.get(_pluginCompMod_${t}, "default") || _pluginCompMod_${t}`).join(`,
|
|
9
|
+
`);if(n){let e=t.u(n);return`${c}
|
|
10
|
+
import * as components from '${e}';
|
|
11
|
+
const userMdxComponents = components.default || components;
|
|
12
|
+
const mdxComponents = {
|
|
13
|
+
${l}${l?`,`:``}
|
|
14
|
+
...userMdxComponents,
|
|
15
|
+
};
|
|
16
|
+
export default mdxComponents;
|
|
17
|
+
export * from '${e}';`}return`${c}
|
|
18
|
+
const mdxComponents = {
|
|
19
|
+
${l}
|
|
20
|
+
};
|
|
21
|
+
export default mdxComponents;`}if(h===`layout`){let e=[`tsx`,`jsx`],n=null;for(let t of e){let e=i.default.resolve(s,`layout.${t}`);if(a.default.existsSync(e)){n=e;break}}if(n)return`import UserLayout from '${t.u(n)}';
|
|
22
|
+
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(h===`icons`){let e=[`tsx`,`jsx`,`ts`,`js`],n=null;for(let t of e){let e=i.default.resolve(s,`icons.${t}`);if(a.default.existsSync(e)){n=e;break}}return n?`import * as icons from '${t.u(n)}';\nexport default icons;`:`export default {};`}if(h===`search`)return await E(s,p,d),`export default async function fetchSearchData(options = {}) {
|
|
23
|
+
const base = import.meta.env.BASE_URL || '/';
|
|
24
|
+
const origin = typeof window !== 'undefined' ? window.location.origin : 'http://localhost';
|
|
25
|
+
const basePath = base.endsWith('/') ? base : base + '/';
|
|
26
|
+
const url = new URL('search.json', new URL(basePath, origin));
|
|
27
|
+
if (options.bustCache) url.searchParams.set('t', String(Date.now()));
|
|
28
|
+
const res = await fetch(url, { cache: options.bustCache ? 'no-store' : 'default' });
|
|
29
|
+
if (!res.ok) throw new Error('Failed to fetch search index');
|
|
30
|
+
return res.json();
|
|
31
|
+
}`;if(h===`page-source`){await E(s,p,d);let e={};for(let t of d.routesDataMap.values())t.path&&t._rawContent&&(e[t.path]=t._rawContent);return`export default async function fetchPageSource(options = {}) {
|
|
32
|
+
const base = import.meta.env.BASE_URL || '/';
|
|
33
|
+
const origin = typeof window !== 'undefined' ? window.location.origin : 'http://localhost';
|
|
34
|
+
const basePath = base.endsWith('/') ? base : base + '/';
|
|
35
|
+
const url = new URL('page-source.json', new URL(basePath, origin));
|
|
36
|
+
if (options.bustCache) url.searchParams.set('t', String(Date.now()));
|
|
37
|
+
const res = await fetch(url, { cache: options.bustCache ? 'no-store' : 'default' });
|
|
38
|
+
if (!res.ok) throw new Error('Failed to fetch page source');
|
|
39
|
+
return res.json();
|
|
40
|
+
}`}if(h===`client`){let e=__dirname,n=``;for(;e&&e!==i.default.parse(e).root;){let r=i.default.join(e,`src/client/index.ts`),o=i.default.join(e,`dist/client/index.mjs`),s=i.default.join(e,`client/index.ts`);if(a.default.existsSync(r)){n=t.u(r);break}if(a.default.existsSync(o)){n=t.u(o);break}if(a.default.existsSync(s)){n=t.u(s);break}e=i.default.dirname(e)}if(!n)throw Error(`[boltdocs] Could not resolve boltdocs/client entry point starting from ${__dirname}`);return`export * from '${n}';`}}}}exports.computeFrontmatterDelta=P,exports.createVirtualModuleState=y,exports.createVirtualModulesPlugin=F,exports.getPageSourceJsonExport=M,exports.getSearchJsonExport=j,exports.invalidateDirectoryMetaCache=S;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Boltdocs - https://boltdocs.vercel.app
|
|
3
|
+
* Copyright (c) 2026 Jesus Alcala
|
|
4
|
+
* Licensed under the MIT License.
|
|
5
|
+
*/
|
|
6
|
+
import{_ as e,g as t,h as n}from"./plugin-context-b5qVVQSU.mjs";import{u as r}from"./utils-8lzafE49.mjs";import{d as i,f as a,p as o,t as s}from"./routes-Dw6g0bfF.mjs";import c from"node:path";import l from"node:fs";const u=1200;function d(e){return typeof e==`string`?[e]:Array.isArray(e)?e.flatMap(d):e&&typeof e==`object`?Object.values(e).flatMap(d):[]}const f=new Set([`title`,`description`,`permalink`,`sidebarPosition`,`sidebarLabel`,`sidebarHidden`,`hidden`,`category`,`order`,`badge`,`icon`,`date`,`lastUpdated`,`groupTitle`,`groupPosition`,`seo`]);function p(e,t){let n=e.replace(/\s+/g,` `).trim();return n.length>t?n.slice(0,t).trim():n}function m(e,t){let n=[],r=e.toLocaleLowerCase(),i=0;for(let e of t.slice(0,100)){let t=e.text.trim();if(!t)continue;let a=r.indexOf(t.toLocaleLowerCase(),i);if(a<0){n.push({heading:e,body:``});continue}let o=a+t.length;n.push({heading:e,start:o,body:``}),i=o}return n.map((t,r)=>{if(t.start===void 0)return t;let i=n[r+1]?.start??e.length;return{heading:t.heading,body:p(e.slice(t.start,i),Math.max(0,u-t.heading.text.length-4))}})}function h(e){let t=[];for(let n of e){let e=``;n.frontmatter&&(e=d(Object.entries(n.frontmatter).filter(([e])=>!f.has(e)).map(([e,t])=>t)).join(` `));let r=n._content||``,i=p(e?`${r} ${e}`:r,2e3),a=n.headings?m(r,n.headings):[];if(t.push({id:n.path,title:n.title,content:i,url:n.path,display:n.groupTitle?`${n.groupTitle} > ${n.title}`:n.title,locale:n.locale,version:n.version}),n.headings){let e=6e3;for(let r of a){let{heading:i}=r,a=`${i.text} in ${n.title}`,o=p(r.body?`${a} ${r.body}`:a,Math.min(u,e));if(o&&(t.push({id:`${n.path}#${i.id}`,title:i.text,content:o,url:`${n.path}#${i.id}`,display:`${n.title} > ${i.text}`,locale:n.locale,version:n.version}),e=Math.max(0,e-o.length)),e===0)break}}}return t}function g(e){return{path:e.path,filePath:e.filePath,title:e.title,description:e.description||``,sidebarPosition:e.sidebarPosition,badge:e.badge,icon:e.icon,headings:e.headings||[],frontmatter:e.frontmatter,locale:e.locale,version:e.version,tab:e.tab,collection:e.collection,tags:e.tags,author:e.author,draft:e.draft,excerpt:e.excerpt,coverImage:e.coverImage,group:e.group,groupTitle:e.groupTitle,groupPosition:e.groupPosition,groupIcon:e.groupIcon,subRouteGroup:e.subRouteGroup,seo:e.seo,date:e.date,lastUpdated:e.lastUpdated,category:e.category,order:e.order,sidebarLabel:e.sidebarLabel,sidebarHidden:e.sidebarHidden,slugParts:e.slugParts}}const _=new Set([`apikey`,`authorization`,`credential`,`credentials`,`password`,`privatekey`,`secret`,`secretkey`,`token`]);function v(e){return _.has(e.toLowerCase().replace(/[^a-z0-9]/g,``))}function y(e,t=0){return t>10||typeof e!=`object`||!e?e:Array.isArray(e)?e.map(e=>y(e,t+1)):Object.fromEntries(Object.entries(e).filter(([e])=>!v(e)).map(([e,n])=>[e,y(n,t+1)]))}function b(e){return{name:e.name,...e.metadata?{metadata:y(e.metadata)}:{}}}function x(e){let t=e.lastIndexOf(`#`);return t===-1?{modulePath:e,exportName:`default`}:{modulePath:e.slice(0,t),exportName:e.slice(t+1)||`default`}}function S(e){let t={};for(let n of e)for(let[e,r]of Object.entries(n.client?.slots??{}))t[e]??=[],t[e].push(r);return`const slots = {\n${Object.entries(t).map(([e,t])=>{let n=t.map((t,n)=>{let{modulePath:r,exportName:i}=x(t);return`{ id: ${JSON.stringify(`${e}:${n}`)}, load: () => import(${JSON.stringify(r)}).then(module => ({ default: module[${JSON.stringify(i)}] || module.default })) }`});return` ${JSON.stringify(e)}: [${n.join(`, `)}]`}).join(`,
|
|
7
|
+
`)}\n};\nexport default slots;\n`}function C(e){return{routeCacheContext:e,routeGenerationFingerprint:void 0,directoryMetaCache:null,routesDataMap:new Map,collectionsDataMap:new Map,searchDataMap:new Map,serializedSearchData:null,serializedPageSourceData:null}}const w=C();function T(e){return e??w}function E(e){let t=T(e);t.directoryMetaCache=null,t.routeGenerationFingerprint=void 0,t.routeCacheVariant=void 0,t.routesDataMap.clear(),t.collectionsDataMap.clear(),t.searchDataMap.clear(),t.serializedSearchData=null,t.serializedPageSourceData=null}function D(e,t){return(!t.routeCacheContext||t.routeCacheContext.disposed)&&(t.routeCacheContext=i(e),t.routeCacheVariant=void 0,t.routeGenerationFingerprint=void 0,t.routesDataMap.clear(),t.collectionsDataMap.clear(),t.searchDataMap.clear(),t.serializedSearchData=null,t.serializedPageSourceData=null),t.routeCacheContext}async function O(e,t,n,r){let i=T(n),c=D(e,i),l=o(t),u=(r?.fingerprint===l&&c.variants.get(l)===r?r:void 0)??a(c,l);i.routeCacheVariant=u,i.routeGenerationFingerprint=l;let d=await s(e,t,void 0,!1,c,u);i.routesDataMap.clear();for(let e of d)i.routesDataMap.set(e.path,e);k(i)}function k(e){let t=T(e),n=Array.from(t.routesDataMap.values()),r=h(n);t.searchDataMap.clear(),t.serializedSearchData=null,t.serializedPageSourceData=null;for(let e of r)t.searchDataMap.set(e.id,e);t.collectionsDataMap.clear();for(let e of n)if(e.collection){let n={path:e.path,title:e.title,date:e.date,excerpt:e.excerpt,tags:e.tags,author:e.author,coverImage:e.coverImage,filePath:e.filePath,locale:e.locale,version:e.version,frontmatter:e.frontmatter,draft:e.frontmatter?.draft===!0,collection:e.collection};t.collectionsDataMap.set(e.filePath,n)}t.serializedSearchData=JSON.stringify(N(t)),t.serializedPageSourceData=JSON.stringify(P(t))}async function A(e,t,n){let r=T(n);D(e,r);let i=o(t);(r.routesDataMap.size===0||r.routeGenerationFingerprint!==i)&&(r.routesDataMap.clear(),r.collectionsDataMap.clear(),r.searchDataMap.clear(),r.serializedSearchData=null,r.serializedPageSourceData=null,await O(e,t,r))}function j(e){let t=T(e),n={},r=Array.from(t.collectionsDataMap.values()).sort((e,t)=>{let n=e=>{if(!e)return-1/0;let t=new Date(e).getTime();return Number.isFinite(t)?t:-1/0},r=n(e.date),i=n(t.date)-r;return i===0?e.path.localeCompare(t.path):i});for(let e of r){let t=e.collection;t&&(n[t]||(n[t]=[]),n[t].push(e))}return n}function M(e,t=e=>e){let n=Array.from(e.values(),t).sort((e,t)=>{let n=e=>{if(typeof e!=`object`||!e)return String(e);let t=e;return`${String(t.path||``)}\u0000${String(t.id||``)}\u0000${String(t.filePath||``)}`};return n(e).localeCompare(n(t))});return`export default ${JSON.stringify(n)};`}function N(e){return Array.from(T(e).searchDataMap.values()).sort((e,t)=>e.id.localeCompare(t.id))}function P(e){let t=T(e),n={};for(let e of t.routesDataMap.values()){let t=e;t.path&&t._rawContent&&(n[t.path]=t._rawContent)}return Object.fromEntries(Object.entries(n).sort(([e],[t])=>e.localeCompare(t)))}function F(e){let t=T(e);return t.serializedSearchData===null&&(t.serializedSearchData=JSON.stringify(N(t))),t.serializedSearchData}function I(e){let t=T(e);return t.serializedPageSourceData===null&&(t.serializedPageSourceData=JSON.stringify(P(t))),t.serializedPageSourceData}function L(e){return`export default ${JSON.stringify(e)};`}async function R(e,t,n,r,i){let a=T(n);r&&(a.routeCacheContext=r),i&&(a.routeCacheVariant=i);let s=o(t);a.routeGenerationFingerprint!==s&&(a.routesDataMap.clear(),a.collectionsDataMap.clear(),a.searchDataMap.clear(),a.serializedSearchData=null,a.serializedPageSourceData=null);let c=new Map(a.routesDataMap),l=new Map(a.collectionsDataMap),u=new Map(a.searchDataMap);await O(e,t,a);let d={routes:{updated:[],deleted:[]},collections:{updated:[],deleted:[]},search:{updated:[],deleted:[]}};for(let[e,t]of a.routesDataMap){let n=c.get(e);(!n||JSON.stringify(n)!==JSON.stringify(t))&&d.routes.updated.push(g(t))}for(let e of c.keys())a.routesDataMap.has(e)||d.routes.deleted.push(e);for(let[e,t]of a.collectionsDataMap){let n=l.get(e);(!n||JSON.stringify(n)!==JSON.stringify(t))&&d.collections.updated.push(t)}for(let e of l.keys())a.collectionsDataMap.has(e)||d.collections.deleted.push(e);for(let[e,t]of a.searchDataMap){let n=u.get(e);(!n||JSON.stringify(n)!==JSON.stringify(t))&&d.search.updated.push(t)}for(let e of u.keys())a.searchDataMap.has(e)||d.search.deleted.push(e);return d}function z(i,a,o,s,u,d){let f=u?.virtualModuleRegistry??n,p=T(d);return{name:`vite-plugin-boltdocs-virtual-modules`,resolveId(e){if(e.includes(`boltdocs-entry`)||e===`virtual:boltdocs-entry`||e===`boltdocs/entry`||e===`boltdocs-entry`||e===`\0virtual:boltdocs-entry`||e===`\0virtual:boltdocs-entry.tsx`)return`\0virtual:boltdocs-entry.tsx`;if(e===`virtual:boltdocs-client-registry`||e===`\0virtual:boltdocs-client-registry`)return`\0virtual:boltdocs-client-registry`;if(e.includes(`boltdocs-client`)||e===`virtual:boltdocs-client`||e===`boltdocs/client`||e===`boltdocs-client`||e===`\0virtual:boltdocs-client.mjs`)return`\0virtual:boltdocs-client.mjs`;if(e.startsWith(`\0`)){let t=e.slice(1);if(!t.startsWith(`virtual:boltdocs-`)&&f?.has(t))return e}else if(!e.startsWith(`virtual:boltdocs-`)&&f?.has(e))return`\0${e}`;return e.startsWith(`virtual:boltdocs-`)?`\0${e}`:e.startsWith(`\0virtual:boltdocs-`)?e:null},async load(n,u){let d=a(),m=n.startsWith(`\0`)?n.slice(1):n;if(!m.includes(`boltdocs-entry.tsx`)&&!m.includes(`boltdocs-client.mjs`)&&!m.startsWith(`virtual:boltdocs-`)&&f?.has(m)){let e=f?.get(m);if(!e)return null;try{let t=await e.loader();if(typeof t!=`string`)throw Error(`[boltdocs] Plugin virtual module '${m}' loader must return a string source code, got ${typeof t}.`);return t}catch(e){throw Error(`[boltdocs] Plugin virtual module '${m}' failed to load: ${e instanceof Error?e.message:String(e)}`)}}if(n.includes(`boltdocs-entry.tsx`)||n===`\0virtual:boltdocs-entry`){let e=this.environment?.config?.consumer,n=o(),r=e===void 0?!!n?.build?.ssr:e!==`client`;return t({...i,ssr:r,useCompiledPages:n?.command===`build`},d)}if(n.includes(`boltdocs-client.mjs`)||n===`\0virtual:boltdocs-client.ts`||n===`virtual:boltdocs-client`){let t=e,n=t;for(;t!==c.parse(t).root;){if(l.existsSync(c.join(t,`package.json`))&&JSON.parse(l.readFileSync(c.join(t,`package.json`),`utf-8`)).name===`boltdocs`){n=t;break}t=c.dirname(t)}let i=c.join(n,`src/client/index.ts`),a=c.join(n,`dist/client/index.js`);return`export * from '${r(l.existsSync(i)?i:a)}';`}if(!n.startsWith(`\0virtual:boltdocs-`))return;let h=n.replace(`\0virtual:boltdocs-`,``).replace(/\.tsx?$/,``);if(h===`routes`)return await A(s,d,p),M(p.routesDataMap,g);if(h===`client-registry`)return S(d?.plugins??[]);if(h===`collections`)return await A(s,d,p),L(j(p));if(h===`config`){await A(s,d,p);let e=p.routeCacheVariant?.directoryMeta||{};p.directoryMetaCache=e;let t=[...new Set(Array.from(p.routesDataMap.values()).map(e=>e.collection).filter(e=>!!e))].sort((e,t)=>e.localeCompare(t)),n=d?.collections,r=n?{...n,labels:{...n.labels||{},...Object.fromEntries(t.map(e=>[e,n.labels?.[e]??e]))}}:t.length>0?t:void 0,i={base:d?.base,theme:d?.theme,i18n:d?.i18n,versions:d?.versions,siteUrl:d?.siteUrl,integrations:d?.integrations,collections:r,seo:d?.seo,experimental:d?.experimental,plugins:d?.plugins?.map(b),directoryMeta:e};return`export default ${JSON.stringify(i)};`}if(h===`entry`){let e=this,n=o(),r=e.environment?.config?.consumer,a=r===void 0?!!(u?.ssr??n?.build?.ssr):r!==`client`;return t({...i,ssr:a,useCompiledPages:n?.command===`build`},d)}if(h===`mdx-components`){let e=[`tsx`,`ts`,`jsx`,`js`],t=null;for(let n of e){let e=c.resolve(s,`mdx-components.${n}`);if(l.existsSync(e)){t=e;break}}let n={};if(d?.plugins)for(let e of d.plugins)e.components&&Object.assign(n,e.components);let i=Object.entries(n),a=i.map(([e,t],n)=>`import * as _pluginCompMod_${n} from '${t}';`).join(`
|
|
8
|
+
`),o=i.map(([e],t)=>`${JSON.stringify(e)}: _pluginCompMod_${t}[${JSON.stringify(e)}] || Reflect.get(_pluginCompMod_${t}, "default") || _pluginCompMod_${t}`).join(`,
|
|
9
|
+
`);if(t){let e=r(t);return`${a}
|
|
10
|
+
import * as components from '${e}';
|
|
11
|
+
const userMdxComponents = components.default || components;
|
|
12
|
+
const mdxComponents = {
|
|
13
|
+
${o}${o?`,`:``}
|
|
14
|
+
...userMdxComponents,
|
|
15
|
+
};
|
|
16
|
+
export default mdxComponents;
|
|
17
|
+
export * from '${e}';`}return`${a}
|
|
18
|
+
const mdxComponents = {
|
|
19
|
+
${o}
|
|
20
|
+
};
|
|
21
|
+
export default mdxComponents;`}if(h===`layout`){let e=[`tsx`,`jsx`],t=null;for(let n of e){let e=c.resolve(s,`layout.${n}`);if(l.existsSync(e)){t=e;break}}if(t)return`import UserLayout from '${r(t)}';
|
|
22
|
+
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(h===`icons`){let e=[`tsx`,`jsx`,`ts`,`js`],t=null;for(let n of e){let e=c.resolve(s,`icons.${n}`);if(l.existsSync(e)){t=e;break}}return t?`import * as icons from '${r(t)}';\nexport default icons;`:`export default {};`}if(h===`search`)return await A(s,d,p),`export default async function fetchSearchData(options = {}) {
|
|
23
|
+
const base = import.meta.env.BASE_URL || '/';
|
|
24
|
+
const origin = typeof window !== 'undefined' ? window.location.origin : 'http://localhost';
|
|
25
|
+
const basePath = base.endsWith('/') ? base : base + '/';
|
|
26
|
+
const url = new URL('search.json', new URL(basePath, origin));
|
|
27
|
+
if (options.bustCache) url.searchParams.set('t', String(Date.now()));
|
|
28
|
+
const res = await fetch(url, { cache: options.bustCache ? 'no-store' : 'default' });
|
|
29
|
+
if (!res.ok) throw new Error('Failed to fetch search index');
|
|
30
|
+
return res.json();
|
|
31
|
+
}`;if(h===`page-source`){await A(s,d,p);let e={};for(let t of p.routesDataMap.values())t.path&&t._rawContent&&(e[t.path]=t._rawContent);return`export default async function fetchPageSource(options = {}) {
|
|
32
|
+
const base = import.meta.env.BASE_URL || '/';
|
|
33
|
+
const origin = typeof window !== 'undefined' ? window.location.origin : 'http://localhost';
|
|
34
|
+
const basePath = base.endsWith('/') ? base : base + '/';
|
|
35
|
+
const url = new URL('page-source.json', new URL(basePath, origin));
|
|
36
|
+
if (options.bustCache) url.searchParams.set('t', String(Date.now()));
|
|
37
|
+
const res = await fetch(url, { cache: options.bustCache ? 'no-store' : 'default' });
|
|
38
|
+
if (!res.ok) throw new Error('Failed to fetch page source');
|
|
39
|
+
return res.json();
|
|
40
|
+
}`}if(h===`client`){let t=e,n=``;for(;t&&t!==c.parse(t).root;){let e=c.join(t,`src/client/index.ts`),i=c.join(t,`dist/client/index.mjs`),a=c.join(t,`client/index.ts`);if(l.existsSync(e)){n=r(e);break}if(l.existsSync(i)){n=r(i);break}if(l.existsSync(a)){n=r(a);break}t=c.dirname(t)}if(!n)throw Error(`[boltdocs] Could not resolve boltdocs/client entry point starting from ${e}`);return`export * from '${n}';`}}}}export{R as computeFrontmatterDelta,C as createVirtualModuleState,z as createVirtualModulesPlugin,I as getPageSourceJsonExport,F as getSearchJsonExport,E as invalidateDirectoryMetaCache};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "boltdocs",
|
|
3
|
-
"version": "3.3.
|
|
3
|
+
"version": "3.3.6",
|
|
4
4
|
"description": "A lightweight documentation generator for React projects.",
|
|
5
5
|
"main": "dist/node/index.mjs",
|
|
6
6
|
"module": "dist/node/index.mjs",
|
|
@@ -101,6 +101,7 @@
|
|
|
101
101
|
"lru-cache": "^11.3.6",
|
|
102
102
|
"picomatch": "^4.0.4",
|
|
103
103
|
"react-helmet-async": "^2.0.1",
|
|
104
|
+
"react-refresh": "^0.17.0",
|
|
104
105
|
"scroll-into-view-if-needed": "3.1.0",
|
|
105
106
|
"semver": "^7.7.4",
|
|
106
107
|
"shiki": "3.23.0",
|
|
@@ -109,8 +110,8 @@
|
|
|
109
110
|
"zod": "4.3.6",
|
|
110
111
|
"@bdocs/parser": "1.2.0",
|
|
111
112
|
"@bdocs/plugin-image-optimizer": "0.2.2",
|
|
112
|
-
"@bdocs/processor-satteri": "0.3.
|
|
113
|
-
"@bdocs/ssg": "0.4.
|
|
113
|
+
"@bdocs/processor-satteri": "0.3.4",
|
|
114
|
+
"@bdocs/ssg": "0.4.4",
|
|
114
115
|
"@bdocs/unist-utils": "0.2.1"
|
|
115
116
|
},
|
|
116
117
|
"peerDependencies": {
|
package/dist/config-CrsQJHQz.cjs
DELETED
|
@@ -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`),n=require(`./config-files-ph2ZtHWl.cjs`);let r=require(`node:path`);r=e.r(r);let i=require(`node:fs`);i=e.r(i);let a=require(`node:crypto`);a=e.r(a);let o=require(`zod`),s=require(`@bdocs/dui`);function c(e){return e}const l=o.z.object({icon:o.z.string().max(50),link:o.z.string().url()}),u=o.z.object({processor:o.z.enum([`satteri`]).default(`satteri`)}),d=o.z.object({name:o.z.string(),enforce:o.z.enum([`pre`,`post`]).optional(),version:o.z.string().optional(),boltdocsVersion:o.z.string().optional(),clientEntry:o.z.string().optional(),remarkPlugins:o.z.array(o.z.unknown()).optional(),rehypePlugins:o.z.array(o.z.unknown()).optional(),vitePlugins:o.z.array(o.z.unknown()).optional(),components:o.z.record(o.z.string(),o.z.string()).optional(),codeHighlighter:o.z.unknown().optional(),metadata:o.z.record(o.z.string(),o.z.unknown()).optional(),css:o.z.object({cssFiles:o.z.array(o.z.string()).optional(),headStyles:o.z.array(o.z.string()).optional(),postcssPlugins:o.z.array(o.z.unknown()).optional(),preprocessorOptions:o.z.record(o.z.string(),o.z.unknown()).optional()}).optional(),middleware:o.z.array(o.z.object({name:o.z.string().optional(),enforce:o.z.enum([`pre`,`post`]).optional()}).passthrough()).optional(),hooks:o.z.record(o.z.string(),o.z.unknown()).optional()}),f=o.z.object({title:o.z.union([o.z.string(),o.z.record(o.z.string(),o.z.string())]).optional(),description:o.z.union([o.z.string(),o.z.record(o.z.string(),o.z.string())]).optional(),logo:o.z.union([o.z.string(),o.z.object({dark:o.z.string(),light:o.z.string(),alt:o.z.string().optional(),width:o.z.number().optional(),height:o.z.number().optional()})]).optional(),navbar:o.z.array(o.z.object({label:o.z.union([o.z.string(),o.z.record(o.z.string(),o.z.string())]),href:o.z.string(),items:o.z.array(o.z.object({label:o.z.union([o.z.string(),o.z.record(o.z.string(),o.z.string())]),href:o.z.string()})).optional()})).optional(),sidebar:o.z.record(o.z.string(),o.z.array(o.z.object({text:o.z.string(),link:o.z.string()}))).optional(),sidebarGroups:o.z.record(o.z.string(),o.z.object({title:o.z.union([o.z.string(),o.z.record(o.z.string(),o.z.string())]).optional(),icon:o.z.string().optional()})).optional(),socialLinks:o.z.array(l).optional(),editLink:o.z.string().refine(e=>!e||e.includes(`:path`),{message:`editLink must contain ':path' placeholder if specified`}).optional(),communityHelp:o.z.string().url().optional(),version:o.z.string().max(50).optional(),githubRepo:o.z.string().max(100).optional(),favicon:o.z.string().optional(),tabs:o.z.array(o.z.object({id:o.z.string(),text:o.z.union([o.z.string(),o.z.record(o.z.string(),o.z.string())]),icon:o.z.string().optional()})).optional(),codeTheme:o.z.union([o.z.string(),o.z.object({light:o.z.string(),dark:o.z.string()})]).optional(),codeHighlighting:o.z.union([o.z.string(),o.z.object({engine:o.z.union([o.z.string(),o.z.unknown(),o.z.function()]).optional(),theme:o.z.union([o.z.string(),o.z.object({light:o.z.string(),dark:o.z.string()})]).optional(),options:o.z.record(o.z.string(),o.z.unknown()).optional()})]).optional()}),p=o.z.union([o.z.string(),o.z.object({rules:o.z.array(o.z.object({userAgent:o.z.string(),allow:o.z.union([o.z.string(),o.z.array(o.z.string())]).optional(),disallow:o.z.union([o.z.string(),o.z.array(o.z.string())]).optional()})).optional(),sitemaps:o.z.array(o.z.string().url()).optional()})]),m=o.z.object({defaultLocale:o.z.string(),locales:o.z.union([o.z.record(o.z.string(),o.z.string()),o.z.array(o.z.string())]).transform(e=>Array.isArray(e)?Object.fromEntries(e.map(e=>[e,e])):e),localeConfigs:o.z.record(o.z.string(),o.z.object({label:o.z.string().optional(),direction:o.z.enum([`ltr`,`rtl`]).optional(),htmlLang:o.z.string().optional(),calendar:o.z.string().optional()})).optional()}),h=o.z.object({defaultVersion:o.z.string(),prefix:o.z.string().optional(),versions:o.z.array(o.z.object({label:o.z.string(),path:o.z.string()}))}),g=o.z.object({headers:o.z.record(o.z.string(),o.z.string()).optional(),enableCSP:o.z.boolean().optional(),customHeaders:o.z.record(o.z.string(),o.z.string()).optional()}),_=o.z.object({google:o.z.string().optional(),bing:o.z.string().optional(),yandex:o.z.string().optional(),pinterest:o.z.string().optional(),facebook:o.z.string().optional()}),v=o.z.lazy(()=>o.z.union([o.z.string(),o.z.number(),o.z.boolean(),o.z.null(),o.z.array(v),o.z.record(o.z.string(),v)])),y=o.z.union([o.z.record(o.z.string(),v),o.z.array(o.z.record(o.z.string(),v))]),b=o.z.object({metatags:o.z.record(o.z.string(),o.z.string()).optional(),indexing:o.z.enum([`all`,`public`]).optional(),thumbnails:o.z.object({background:o.z.string().optional()}).optional(),verification:_.optional(),structuredData:y.optional()}),x=o.z.object({viewTransitions:o.z.union([o.z.boolean(),o.z.object({enabled:o.z.boolean().optional(),types:o.z.array(o.z.string()).optional()})]).optional(),fileRouting:o.z.boolean().optional()}),S=o.z.object({measurementId:o.z.string().min(1,`Measurement ID is required for GA4`),debug:o.z.boolean().optional(),anonymizeIp:o.z.boolean().optional(),sendPageView:o.z.boolean().optional(),cookieFlags:o.z.string().optional(),autoTrack:o.z.object({pageViews:o.z.boolean().optional(),downloads:o.z.boolean().optional(),externalLinks:o.z.boolean().optional(),search:o.z.boolean().optional()}).optional()}),C=o.z.object({tagId:o.z.string().min(1,`Tag ID is required for GTM`),dataLayerName:o.z.string().optional(),preview:o.z.string().optional()}),w=o.z.object({appId:o.z.string().min(1,`Algolia App ID is required`),apiKey:o.z.string().min(1,`Algolia API Key is required`),indexName:o.z.string().min(1,`Algolia Index Name is required`)}),T=o.z.object({repo:o.z.string().min(1,`Giscus repository is required`),repoId:o.z.string().min(1,`Giscus repository ID is required`),category:o.z.string().optional(),categoryId:o.z.string().optional(),mapping:o.z.enum([`pathname`,`url`,`title`,`og:title`,`specific`,`number`]).optional(),strict:o.z.union([o.z.enum([`0`,`1`]),o.z.boolean()]).optional(),reactionsEnabled:o.z.union([o.z.enum([`0`,`1`]),o.z.boolean()]).optional(),emitMetadata:o.z.union([o.z.enum([`0`,`1`]),o.z.boolean()]).optional(),inputPosition:o.z.enum([`top`,`bottom`]).optional(),theme:o.z.string().optional(),darkTheme:o.z.string().optional(),lang:o.z.string().optional(),loading:o.z.enum([`lazy`,`eager`]).optional()}),E=o.z.object({enabled:o.z.boolean(),owner:o.z.string().min(1,`GitHub owner is required`),repo:o.z.string().min(1,`GitHub repository name is required`),categorySlug:o.z.string().optional(),endpoint:o.z.string().optional()}),D=o.z.object({analytics:o.z.boolean().optional(),speedInsights:o.z.boolean().optional()}),O=o.z.object({apiKey:o.z.string().min(1,`API key is required for PostHog`),host:o.z.string().url().optional(),capturePageview:o.z.boolean().optional(),capturePageleave:o.z.boolean().optional(),sessionRecording:o.z.boolean().optional(),autocapture:o.z.boolean().optional()}),k=o.z.object({ga4:S.optional(),gtm:C.optional(),vercel:D.optional(),posthog:O.optional()}),A=o.z.object({algolia:w.optional()}),j=o.z.object({giscus:T.optional(),custom:E.optional()}),M=o.z.object({analytics:k.optional(),search:A.optional(),feedback:j.optional()}),N=o.z.object({criticalCss:o.z.enum([`zig-critters`,`beasties`,`none`]).optional(),criticalCssMaxSize:o.z.number().int().min(0).optional()}),P=o.z.object({labels:o.z.record(o.z.string(),o.z.union([o.z.string(),o.z.record(o.z.string(),o.z.string())])).optional(),positions:o.z.record(o.z.string(),o.z.number()).optional(),postsPerPage:o.z.number().int().positive().optional(),defaultCollection:o.z.string().optional(),dateFormat:o.z.string().optional(),sortBy:o.z.enum([`date`,`title`,`sidebarPosition`]).optional()}),F=o.z.object({visible:o.z.boolean().optional(),environments:o.z.array(o.z.string()).optional()}),I=o.z.object({turbo:o.z.boolean().optional(),siteUrl:o.z.string().url().optional(),docsDir:o.z.string().optional(),base:o.z.string().optional(),theme:f.optional(),i18n:m.optional(),versions:h.optional(),mdx:u.optional(),ssg:N.optional(),plugins:o.z.array(d).optional(),collections:P.optional(),robots:p.optional(),security:g.optional(),seo:b.optional(),integrations:M.optional(),drafts:F.optional(),experimental:x.optional(),aliases:o.z.custom().optional(),featureFlags:o.z.record(o.z.string(),o.z.union([o.z.boolean(),o.z.string()])).optional(),vite:o.z.custom().optional()}),L=new Map;function R(e,t,n,r){return`${e}::${t}::${n}::${r}`}function z(e){return r.default.join(e,`.boltdocs`,`cache`,`config.json`)}function B(e,t,n,r,i){return a.default.createHash(`sha256`).update(`${e}:${t}:${n}:${r}:${i}`).digest(`hex`)}function V(e,t,n){let a=z(e);if(!i.default.existsSync(a))return null;try{let o=i.default.readFileSync(a,`utf-8`),s=JSON.parse(o),c=r.default.resolve(e,s.filename);if(!i.default.existsSync(c))return null;let l=i.default.statSync(c);if(B(s.filename,l.mtimeMs,l.size,t,n)!==B(s.filename,s.mtimeMs,s.size,s.command,s.mode))return null;let u=I.safeParse(s.config);return u.success?{config:u.data,configFile:c}:null}catch{return null}}function H(e,t,n,a,o,s,c){try{let l=z(e);i.default.mkdirSync(r.default.dirname(l),{recursive:!0});let u={filename:t,mtimeMs:n,size:a,command:o,mode:s,config:{...c,plugins:[]}};i.default.writeFileSync(l,JSON.stringify(u),`utf-8`)}catch(e){process.env.BOLTDOCS_DEBUG===`true`&&console.warn(`[boltdocs] Failed to write config cache:`,e)}}async function U(e,t){let{createJiti:n}=await import(`jiti`),r=await n(t,{interopDefault:!0}).import(e);return r.default??r.config??r}async function W(e,a=process.cwd(),o=`serve`,c=`development`){let l=a,u=R(e,l,o,c);{let e=L.get(u);if(e)return e}let d=V(l,o,c);if(d){try{let e=await U(d.configFile,l);e?.plugins&&(d.config.plugins=e.plugins)}catch{}return L.set(u,d.config),d.config}let f={docsDir:r.default.resolve(l,e),theme:{title:`Boltdocs`,description:`A Vite documentation framework`,navbar:[{label:`Home`,href:`/`},{label:`Documentation`,href:`/docs`}],codeTheme:{light:`github-light`,dark:`github-dark`}}},p={},m=null;for(let e of n.t){let t=r.default.resolve(l,e);if(i.default.existsSync(t))try{let n;try{n=await U(t,l)}catch(r){process.env.BOLTDOCS_DEBUG===`true`&&console.warn(`[boltdocs] jiti config load failed for ${e}, falling back to Vite: ${r instanceof Error?r.message:String(r)}`);let{loadConfigFromFile:i}=await import(`vite`);n=(await i({command:o,mode:c},t,l))?.config}if(n){p=n;let r=i.default.statSync(t);m={filename:e,mtimeMs:r.mtimeMs,size:r.size};break}}catch(t){t instanceof Error&&(console.error(`\x1b[31m[boltdocs] ✖ Failed to load config from ${e}: ${t.message}\x1b[0m`),(0,s.warn)(`Failed to load config from ${e}: ${t.message}`))}}let h={title:p.title,description:p.description,logo:p.logo,favicon:p.favicon,navbar:p.navbar,sidebar:p.sidebar,sidebarGroups:p.theme?.sidebarGroups,socialLinks:p.socialLinks,githubRepo:p.githubRepo,tabs:p.tabs,codeTheme:p.codeTheme,codeHighlighting:p.theme?.codeHighlighting,communityHelp:p.communityHelp,version:p.version,editLink:p.editLink,...p.theme||{}},g=Object.fromEntries(Object.entries(h).filter(([e,t])=>t!==void 0));g.navbar&&=g.navbar.map(e=>({label:e.label||``,href:e.href||``,items:e.items}));let _={docsDir:r.default.resolve(l,p.docsDir||e),theme:{...f.theme,...g},i18n:p.i18n?{...p.i18n,locales:Array.isArray(p.i18n.locales)?Object.fromEntries(p.i18n.locales.map(e=>[e,e])):p.i18n.locales}:void 0,versions:p.versions,siteUrl:p.siteUrl,base:p.base,ssg:p.ssg,seo:p.seo,plugins:p.plugins||[],robots:p.robots,security:p.security,integrations:p.integrations,experimental:p.experimental,featureFlags:p.featureFlags,aliases:p.aliases,drafts:p.drafts,collections:p.collections,vite:p.vite},v=I.safeParse(_);if(!v.success)throw new t.r(`Invalid Boltdocs configuration:\n${v.error.issues.map(e=>` - ${e.path.join(`.`)}: ${e.message}`).join(`
|
|
7
|
-
`)}`);let y=v.data;return m&&H(l,m.filename,m.mtimeMs,m.size,o,c,y),L.set(u,y),y}Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return W}});
|
package/dist/config-DC0nMMk7.mjs
DELETED
|
@@ -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{t as e}from"./chunk-BFSpntXv.mjs";import{r as t}from"./errors-N-b6Sn2G.mjs";import{t as n}from"./config-files-DfwZ3Wot.mjs";import r from"node:path";import i from"node:fs";import a from"node:crypto";import{z as o}from"zod";import{warn as s}from"@bdocs/dui";function c(e){return e}const l=o.object({icon:o.string().max(50),link:o.string().url()}),u=o.object({processor:o.enum([`satteri`]).default(`satteri`)}),d=o.object({name:o.string(),enforce:o.enum([`pre`,`post`]).optional(),version:o.string().optional(),boltdocsVersion:o.string().optional(),clientEntry:o.string().optional(),remarkPlugins:o.array(o.unknown()).optional(),rehypePlugins:o.array(o.unknown()).optional(),vitePlugins:o.array(o.unknown()).optional(),components:o.record(o.string(),o.string()).optional(),codeHighlighter:o.unknown().optional(),metadata:o.record(o.string(),o.unknown()).optional(),css:o.object({cssFiles:o.array(o.string()).optional(),headStyles:o.array(o.string()).optional(),postcssPlugins:o.array(o.unknown()).optional(),preprocessorOptions:o.record(o.string(),o.unknown()).optional()}).optional(),middleware:o.array(o.object({name:o.string().optional(),enforce:o.enum([`pre`,`post`]).optional()}).passthrough()).optional(),hooks:o.record(o.string(),o.unknown()).optional()}),f=o.object({title:o.union([o.string(),o.record(o.string(),o.string())]).optional(),description:o.union([o.string(),o.record(o.string(),o.string())]).optional(),logo:o.union([o.string(),o.object({dark:o.string(),light:o.string(),alt:o.string().optional(),width:o.number().optional(),height:o.number().optional()})]).optional(),navbar:o.array(o.object({label:o.union([o.string(),o.record(o.string(),o.string())]),href:o.string(),items:o.array(o.object({label:o.union([o.string(),o.record(o.string(),o.string())]),href:o.string()})).optional()})).optional(),sidebar:o.record(o.string(),o.array(o.object({text:o.string(),link:o.string()}))).optional(),sidebarGroups:o.record(o.string(),o.object({title:o.union([o.string(),o.record(o.string(),o.string())]).optional(),icon:o.string().optional()})).optional(),socialLinks:o.array(l).optional(),editLink:o.string().refine(e=>!e||e.includes(`:path`),{message:`editLink must contain ':path' placeholder if specified`}).optional(),communityHelp:o.string().url().optional(),version:o.string().max(50).optional(),githubRepo:o.string().max(100).optional(),favicon:o.string().optional(),tabs:o.array(o.object({id:o.string(),text:o.union([o.string(),o.record(o.string(),o.string())]),icon:o.string().optional()})).optional(),codeTheme:o.union([o.string(),o.object({light:o.string(),dark:o.string()})]).optional(),codeHighlighting:o.union([o.string(),o.object({engine:o.union([o.string(),o.unknown(),o.function()]).optional(),theme:o.union([o.string(),o.object({light:o.string(),dark:o.string()})]).optional(),options:o.record(o.string(),o.unknown()).optional()})]).optional()}),p=o.union([o.string(),o.object({rules:o.array(o.object({userAgent:o.string(),allow:o.union([o.string(),o.array(o.string())]).optional(),disallow:o.union([o.string(),o.array(o.string())]).optional()})).optional(),sitemaps:o.array(o.string().url()).optional()})]),m=o.object({defaultLocale:o.string(),locales:o.union([o.record(o.string(),o.string()),o.array(o.string())]).transform(e=>Array.isArray(e)?Object.fromEntries(e.map(e=>[e,e])):e),localeConfigs:o.record(o.string(),o.object({label:o.string().optional(),direction:o.enum([`ltr`,`rtl`]).optional(),htmlLang:o.string().optional(),calendar:o.string().optional()})).optional()}),h=o.object({defaultVersion:o.string(),prefix:o.string().optional(),versions:o.array(o.object({label:o.string(),path:o.string()}))}),g=o.object({headers:o.record(o.string(),o.string()).optional(),enableCSP:o.boolean().optional(),customHeaders:o.record(o.string(),o.string()).optional()}),_=o.object({google:o.string().optional(),bing:o.string().optional(),yandex:o.string().optional(),pinterest:o.string().optional(),facebook:o.string().optional()}),v=o.lazy(()=>o.union([o.string(),o.number(),o.boolean(),o.null(),o.array(v),o.record(o.string(),v)])),y=o.union([o.record(o.string(),v),o.array(o.record(o.string(),v))]),b=o.object({metatags:o.record(o.string(),o.string()).optional(),indexing:o.enum([`all`,`public`]).optional(),thumbnails:o.object({background:o.string().optional()}).optional(),verification:_.optional(),structuredData:y.optional()}),x=o.object({viewTransitions:o.union([o.boolean(),o.object({enabled:o.boolean().optional(),types:o.array(o.string()).optional()})]).optional(),fileRouting:o.boolean().optional()}),S=o.object({measurementId:o.string().min(1,`Measurement ID is required for GA4`),debug:o.boolean().optional(),anonymizeIp:o.boolean().optional(),sendPageView:o.boolean().optional(),cookieFlags:o.string().optional(),autoTrack:o.object({pageViews:o.boolean().optional(),downloads:o.boolean().optional(),externalLinks:o.boolean().optional(),search:o.boolean().optional()}).optional()}),C=o.object({tagId:o.string().min(1,`Tag ID is required for GTM`),dataLayerName:o.string().optional(),preview:o.string().optional()}),w=o.object({appId:o.string().min(1,`Algolia App ID is required`),apiKey:o.string().min(1,`Algolia API Key is required`),indexName:o.string().min(1,`Algolia Index Name is required`)}),T=o.object({repo:o.string().min(1,`Giscus repository is required`),repoId:o.string().min(1,`Giscus repository ID is required`),category:o.string().optional(),categoryId:o.string().optional(),mapping:o.enum([`pathname`,`url`,`title`,`og:title`,`specific`,`number`]).optional(),strict:o.union([o.enum([`0`,`1`]),o.boolean()]).optional(),reactionsEnabled:o.union([o.enum([`0`,`1`]),o.boolean()]).optional(),emitMetadata:o.union([o.enum([`0`,`1`]),o.boolean()]).optional(),inputPosition:o.enum([`top`,`bottom`]).optional(),theme:o.string().optional(),darkTheme:o.string().optional(),lang:o.string().optional(),loading:o.enum([`lazy`,`eager`]).optional()}),E=o.object({enabled:o.boolean(),owner:o.string().min(1,`GitHub owner is required`),repo:o.string().min(1,`GitHub repository name is required`),categorySlug:o.string().optional(),endpoint:o.string().optional()}),D=o.object({analytics:o.boolean().optional(),speedInsights:o.boolean().optional()}),O=o.object({apiKey:o.string().min(1,`API key is required for PostHog`),host:o.string().url().optional(),capturePageview:o.boolean().optional(),capturePageleave:o.boolean().optional(),sessionRecording:o.boolean().optional(),autocapture:o.boolean().optional()}),k=o.object({ga4:S.optional(),gtm:C.optional(),vercel:D.optional(),posthog:O.optional()}),A=o.object({algolia:w.optional()}),j=o.object({giscus:T.optional(),custom:E.optional()}),M=o.object({analytics:k.optional(),search:A.optional(),feedback:j.optional()}),N=o.object({criticalCss:o.enum([`zig-critters`,`beasties`,`none`]).optional(),criticalCssMaxSize:o.number().int().min(0).optional()}),P=o.object({labels:o.record(o.string(),o.union([o.string(),o.record(o.string(),o.string())])).optional(),positions:o.record(o.string(),o.number()).optional(),postsPerPage:o.number().int().positive().optional(),defaultCollection:o.string().optional(),dateFormat:o.string().optional(),sortBy:o.enum([`date`,`title`,`sidebarPosition`]).optional()}),F=o.object({visible:o.boolean().optional(),environments:o.array(o.string()).optional()}),I=o.object({turbo:o.boolean().optional(),siteUrl:o.string().url().optional(),docsDir:o.string().optional(),base:o.string().optional(),theme:f.optional(),i18n:m.optional(),versions:h.optional(),mdx:u.optional(),ssg:N.optional(),plugins:o.array(d).optional(),collections:P.optional(),robots:p.optional(),security:g.optional(),seo:b.optional(),integrations:M.optional(),drafts:F.optional(),experimental:x.optional(),aliases:o.custom().optional(),featureFlags:o.record(o.string(),o.union([o.boolean(),o.string()])).optional(),vite:o.custom().optional()});var L=e({resolveConfig:()=>G});const R=new Map;function z(e,t,n,r){return`${e}::${t}::${n}::${r}`}function B(e){return r.join(e,`.boltdocs`,`cache`,`config.json`)}function V(e,t,n,r,i){return a.createHash(`sha256`).update(`${e}:${t}:${n}:${r}:${i}`).digest(`hex`)}function H(e,t,n){let a=B(e);if(!i.existsSync(a))return null;try{let o=i.readFileSync(a,`utf-8`),s=JSON.parse(o),c=r.resolve(e,s.filename);if(!i.existsSync(c))return null;let l=i.statSync(c);if(V(s.filename,l.mtimeMs,l.size,t,n)!==V(s.filename,s.mtimeMs,s.size,s.command,s.mode))return null;let u=I.safeParse(s.config);return u.success?{config:u.data,configFile:c}:null}catch{return null}}function U(e,t,n,a,o,s,c){try{let l=B(e);i.mkdirSync(r.dirname(l),{recursive:!0});let u={filename:t,mtimeMs:n,size:a,command:o,mode:s,config:{...c,plugins:[]}};i.writeFileSync(l,JSON.stringify(u),`utf-8`)}catch(e){process.env.BOLTDOCS_DEBUG===`true`&&console.warn(`[boltdocs] Failed to write config cache:`,e)}}async function W(e,t){let{createJiti:n}=await import(`jiti`),r=await n(t,{interopDefault:!0}).import(e);return r.default??r.config??r}async function G(e,a=process.cwd(),o=`serve`,c=`development`){let l=a,u=z(e,l,o,c);{let e=R.get(u);if(e)return e}let d=H(l,o,c);if(d){try{let e=await W(d.configFile,l);e?.plugins&&(d.config.plugins=e.plugins)}catch{}return R.set(u,d.config),d.config}let f={docsDir:r.resolve(l,e),theme:{title:`Boltdocs`,description:`A Vite documentation framework`,navbar:[{label:`Home`,href:`/`},{label:`Documentation`,href:`/docs`}],codeTheme:{light:`github-light`,dark:`github-dark`}}},p={},m=null;for(let e of n){let t=r.resolve(l,e);if(i.existsSync(t))try{let n;try{n=await W(t,l)}catch(r){process.env.BOLTDOCS_DEBUG===`true`&&console.warn(`[boltdocs] jiti config load failed for ${e}, falling back to Vite: ${r instanceof Error?r.message:String(r)}`);let{loadConfigFromFile:i}=await import(`vite`);n=(await i({command:o,mode:c},t,l))?.config}if(n){p=n;let r=i.statSync(t);m={filename:e,mtimeMs:r.mtimeMs,size:r.size};break}}catch(t){t instanceof Error&&(console.error(`\x1b[31m[boltdocs] ✖ Failed to load config from ${e}: ${t.message}\x1b[0m`),s(`Failed to load config from ${e}: ${t.message}`))}}let h={title:p.title,description:p.description,logo:p.logo,favicon:p.favicon,navbar:p.navbar,sidebar:p.sidebar,sidebarGroups:p.theme?.sidebarGroups,socialLinks:p.socialLinks,githubRepo:p.githubRepo,tabs:p.tabs,codeTheme:p.codeTheme,codeHighlighting:p.theme?.codeHighlighting,communityHelp:p.communityHelp,version:p.version,editLink:p.editLink,...p.theme||{}},g=Object.fromEntries(Object.entries(h).filter(([e,t])=>t!==void 0));g.navbar&&=g.navbar.map(e=>({label:e.label||``,href:e.href||``,items:e.items}));let _={docsDir:r.resolve(l,p.docsDir||e),theme:{...f.theme,...g},i18n:p.i18n?{...p.i18n,locales:Array.isArray(p.i18n.locales)?Object.fromEntries(p.i18n.locales.map(e=>[e,e])):p.i18n.locales}:void 0,versions:p.versions,siteUrl:p.siteUrl,base:p.base,ssg:p.ssg,seo:p.seo,plugins:p.plugins||[],robots:p.robots,security:p.security,integrations:p.integrations,experimental:p.experimental,featureFlags:p.featureFlags,aliases:p.aliases,drafts:p.drafts,collections:p.collections,vite:p.vite},v=I.safeParse(_);if(!v.success)throw new t(`Invalid Boltdocs configuration:\n${v.error.issues.map(e=>` - ${e.path.join(`.`)}: ${e.message}`).join(`
|
|
7
|
-
`)}`);let y=v.data;return m&&U(l,m.filename,m.mtimeMs,m.size,o,c,y),R.set(u,y),y}export{c as i,G as n,d as r,L as t};
|
package/dist/node-C3HctGaH.cjs
DELETED
|
@@ -1,23 +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-ej6_SjIZ.cjs`),n=require(`./pages-external-DPiPFxxP.cjs`),r=require(`./plugin-context-BxF88sW4.cjs`),i=require(`./node/cache.cjs`),a=require(`./routes-C0kb4ue6.cjs`),o=require(`./config-CrsQJHQz.cjs`),s=require(`./registry-DLJIooEu.cjs`),c=require(`./types-generator-C83Iy6X5.cjs`),l=require(`./resolve-C9jGArE_.cjs`),u=require(`./handler-Ch-Q9NAB.cjs`),d=require(`./adapters-DwDTQoCG.cjs`);let f=require(`node:path`);f=e.r(f);let p=require(`node:fs`);p=e.r(p);let m=require(`node:crypto`);m=e.r(m);let h=require(`zod`),g=require(`@bdocs/dui`);g=e.r(g);let _=require(`semver`);_=e.r(_);let v=require(`@bdocs/ssg/node`),y=require(`@bdocs/unist-utils`);function b(){return{name:`boltdocs-ssr-dirname-polyfill`,config:(e,{isSsrBuild:t})=>t?{define:{__dirname:`import.meta.dirname`}}:{}}}const x=new Set([`boltdocs/entry`,`boltdocs/client`,`boltdocs/primitives`,`boltdocs/mdx`,`boltdocs/client/router`,`use-sync-external-store/shim/index.js`,`use-sync-external-store/shim`,`use-sync-external-store`]);function S(e){return e?Array.isArray(e)?[...e]:Object.entries(e).map(([e,t])=>({find:e,replacement:t})):[]}function C(e,t){typeof t.find==`string`&&x.has(t.find)&&e.some(e=>e.find===t.find)||e.push({...t,...typeof t.replacement==`string`?{replacement:t.replacement}:{}})}function ee({root:e,clientSourceRoot:t,aliases:n}){let r=[{find:`boltdocs/entry`,replacement:f.default.resolve(e,`boltdocs-entry.tsx`)},{find:`boltdocs/client`,replacement:f.default.resolve(e,`boltdocs-client.mjs`)},...t?[{find:`boltdocs/primitives`,replacement:f.default.join(t,`primitives.ts`)},{find:`boltdocs/mdx`,replacement:f.default.join(t,`mdx.ts`)},{find:`boltdocs/client/router`,replacement:f.default.join(t,`router/index.ts`)}]:[],{find:`use-sync-external-store/shim/index.js`,replacement:`react`},{find:`use-sync-external-store/shim`,replacement:`react`},{find:`use-sync-external-store`,replacement:`react`}].map(e=>({...e,replacement:e.replacement}));for(let t of S(n))C(r,{...t,replacement:typeof t.replacement==`string`&&t.replacement.startsWith(`.`)?f.default.resolve(e,t.replacement):t.replacement});return r}function w(e){return e}function T(e){let t=[];if(e.website&&t.push(E(e.website)),e.article&&t.push(O(e.article)),e.breadcrumbs?.length&&t.push(k(e.breadcrumbs)),e.additional&&t.push(...Array.isArray(e.additional)?e.additional:[e.additional]),t.length===0)throw Error(`createStructuredData() requires at least one of website, article, breadcrumbs, or additional`);return t.length===1?t[0]:t}function E(e){let t={"@context":`https://schema.org`,"@type":`WebSite`,name:e.name,url:e.url};return e.description&&(t.description=e.description),e.searchUrl&&(t.potentialAction={"@type":`SearchAction`,target:`${e.searchUrl}{search_term_string}`,"query-input":`required name=search_term_string`}),t}function D(e,t){let n=new Date(e);if(Number.isNaN(n.getTime()))throw TypeError(`Invalid ${t} value: ${String(e)}`);return n.toISOString()}function O(e){let t={"@context":`https://schema.org`,"@type":`Article`,headline:e.headline,url:e.url};return e.description&&(t.description=e.description),e.datePublished&&(t.datePublished=D(e.datePublished,`datePublished`)),e.dateModified&&(t.dateModified=D(e.dateModified,`dateModified`)),e.image&&(t.image=e.image),e.author&&(t.author=typeof e.author==`string`?{"@type":`Person`,name:e.author}:{"@type":`Person`,...e.author}),t}function k(e){return{"@context":`https://schema.org`,"@type":`BreadcrumbList`,itemListElement:e.map((e,t)=>({"@type":`ListItem`,position:t+1,name:e.name,item:e.url}))}}var A=class extends Error{name=this.constructor.name;constructor(e,t,n){super(`[plugin:${e}] ${t}`,n),this.pluginName=e}},j=class extends A{constructor(e,t){super(e,`Validation failed: ${t}`)}},M=class extends A{constructor(e,t){super(e,`Compatibility error: ${t}`)}},N=class extends A{constructor(e,t,n){super(e,`Error in hook '${t}': ${n.message}`,{cause:n}),this.hookName=t}},P=class{data=new Map;getNamespaceKey(e,t){return`${e}:${t}`}get(e,t){let n=this.getNamespaceKey(e,t),r=this.data.get(n);if(r!==void 0)return typeof r==`object`&&r?JSON.parse(JSON.stringify(r)):r}set(e,t,n){let r=this.getNamespaceKey(e,t),i=typeof n==`object`&&n?JSON.parse(JSON.stringify(n)):n;this.data.set(r,i)}has(e,t){let n=this.getNamespaceKey(e,t);return this.data.has(n)}};const te=o.n.extend({version:h.z.string().optional(),boltdocsVersion:h.z.string().optional(),css:h.z.object({cssFiles:h.z.array(h.z.string()).optional(),headStyles:h.z.array(h.z.string()).optional(),postcssPlugins:h.z.array(h.z.any()).optional(),preprocessorOptions:h.z.record(h.z.string(),h.z.any()).optional()}).optional(),hooks:h.z.object({beforeBuild:h.z.custom(e=>typeof e==`function`).optional(),afterBuild:h.z.custom(e=>typeof e==`function`).optional(),beforeDev:h.z.custom(e=>typeof e==`function`).optional(),afterDev:h.z.custom(e=>typeof e==`function`).optional(),buildEnd:h.z.custom(e=>typeof e==`function`).optional(),transformSource:h.z.custom(e=>typeof e==`function`).optional(),transformMdx:h.z.custom(e=>typeof e==`function`).optional(),transformHtml:h.z.custom(e=>typeof e==`function`).optional()}).passthrough().optional()});function F(e,t){let n=[],r=new Set;for(let i of e){let e=te.safeParse(i);if(!e.success)throw new j(i.name||`unknown`,e.error.issues.map(e=>`${e.path.join(`.`)}: ${e.message}`).join(`, `));let a=e.data;if(r.has(a.name))throw new j(a.name,`Duplicate plugin name detected`);if(r.add(a.name),a.boltdocsVersion&&!_.default.satisfies(t,a.boltdocsVersion))throw new M(a.name,`Plugin expects Boltdocs version ${a.boltdocsVersion}, but current is ${t}`);if(a.components)for(let[e,t]of Object.entries(a.components)){if(t.includes(`..`))throw new j(a.name,`Component '${e}' has an invalid path: traversal sequences are not allowed.`);if(f.default.isAbsolute(t))throw new j(a.name,`Component '${e}' has an invalid path: absolute paths are not allowed.`)}a.codeHighlighter&&s.l(a.name,a.codeHighlighter),n.push(a)}return n}const I=new Map;function L(e,t=process.cwd()){let n=e.plugins||[];for(let e of n)if(e.name&&!I.has(e.name))try{let n=l.t(e.name,t)?.pkg,r=n&&typeof n.scripts==`object`?n.scripts:{},i=!!(r.preinstall||r.postinstall||r.install);i&&(0,g.warn)(`💡 ${g.colors.yellow(g.colors.bold(`Nota de seguridad:`))} El plugin ${g.colors.cyan(e.name)} ejecuta scripts nativos al instalarse. Corre ${g.colors.bold(`boltdocs audit`)} para un análisis detallado.`),I.set(e.name,i)}catch{I.set(e.name,!1)}}var R=class{name=`ConfigResolve`;async execute(e){e.config=await o.t(`docs`,e.root,`build`,`production`),e.allCached||L(e.config,e.root);let t=f.default.resolve(e.root,e.config.docsDir||`docs`);e.docsDir=t;let r=await a.t(t,e.config,void 0,!1);e.routes=r;let i=r.map(e=>e.path),s=(e.config.base||`/docs`).replace(/\/$/,``);i.includes(s)||i.push(s);let c=n.n(t,e.config);for(let e of c)i.includes(e)||i.push(e);e.routePaths=i,e.viteConfig=await $(e.root,`production`,e.config,{routes:r,skipTypes:!0,skipLinkTree:!0})}},z=class{name=`RouteGenerate`;async execute(e){if(!e.routes)throw Error(`Routes not generated by ConfigResolveStep. Verify pipeline order.`)}};const B=h.z.object({title:h.z.string().optional(),description:h.z.string().optional(),canonical:h.z.string().url().optional(),robots:h.z.string().optional(),noindex:h.z.boolean().optional(),"og:title":h.z.string().optional(),"og:description":h.z.string().optional(),"og:image":h.z.string().optional(),"og:type":h.z.string().optional(),"og:url":h.z.string().url().optional()});var V=class{name=`SEOValidate`;async execute(e){if(!e.routes||!e.config)throw Error(`Routes or Config not initialized.`);let t=e.config?.siteUrl,n=e.routes;for(let r of n){let n=r.seo||{},i=n.canonical||(t?`${t.replace(/\/$/,``)}${r.path}`:void 0),a=n[`og:url`]||i||void 0,o=e.config?.seo?.thumbnails?.background??void 0,s=n[`og:image`]||r.coverImage||o;s&&t&&!/^https?:\/\/|^\/\//.test(s)&&(s=`${t.endsWith(`/`)?t.slice(0,-1):t}${s.startsWith(`/`)?s:`/${s}`}`);let c={...n};i&&(c.canonical=i),a&&(c[`og:url`]=a),s&&(c[`og:image`]=s),!c[`og:title`]&&r.title&&(c[`og:title`]=String(r.title)),!c[`og:description`]&&r.description&&(c[`og:description`]=String(r.description));let l=B.safeParse(c);l.success||(0,g.warn)(`[SEOValidate] Validation issues on route "${r.path}": ${l.error.message}`),r.title||(0,g.warn)(`[SEOValidate] Route "${r.path}" is missing a title.`),r.seo=c}e.ssgRoutes=n}},H=class{name=`TypeGenerate`;async execute(e){if(!e.config||!e.docsDir||!e.routePaths)throw Error(`Config, docs directory, or route paths not initialized. Verify pipeline order.`);c.t(e.config,`docs`,e.root,e.routePaths),c.r(e.routePaths,e.root),e.typesGenerated=!0}},U=class{name=`SSGBuild`;async execute(e){if(!e.routes||!e.viteConfig)throw Error(`Routes or ViteConfig not initialized.`);let t={};for(let n of e.routes)if(n.path&&n.componentPath){t[n.path]=n.componentPath;let e=n.path.replace(/\/$/,``);t[e]=n.componentPath}let n=[];await(0,v.build)({entry:`boltdocs/entry`,routeToSourceFileMap:t,cacheDir:f.default.resolve(e.root,`.boltdocs/build`),onStep:e=>{n.push(e)}},e.viteConfig),e.ssgSubSteps=n,e.outDir=e.viteConfig.build?.outDir||`dist`}};function W(e,n){let r=(n.siteUrl||``).replace(/\/$/,``);if(!r)return``;let i=n.seo?.indexing!==`all`&&n.seo?.indexing!==`public`;return`<?xml version="1.0" encoding="UTF-8"?>
|
|
7
|
-
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
|
8
|
-
${e.filter(e=>e.seo?.noindex||typeof e.seo?.robots==`string`&&e.seo.robots.includes(`noindex`)?!1:(i&&e.seo?.index,!0)).map(e=>`${r}${e.path.startsWith(`/`)?e.path:`/${e.path}`}`).sort((e,t)=>e<t?-1:e>t?1:0).map(e=>` <url>
|
|
9
|
-
<loc>${t.r(e)}</loc>
|
|
10
|
-
<changefreq>weekly</changefreq>
|
|
11
|
-
<priority>0.7</priority>
|
|
12
|
-
</url>`).join(`
|
|
13
|
-
`)}
|
|
14
|
-
</urlset>`}function ne(e){let t=e.siteUrl||``,n=t?`${t.replace(/\/$/,``)}/sitemap.xml`:``;if(e.seo?.indexing!==`all`&&e.seo?.indexing!==`public`&&e.seo?.indexing)return[`User-agent: *`,`Disallow: /`].filter(Boolean).join(`
|
|
15
|
-
`);if(typeof e.robots==`string`)return e.robots;if(e.robots&&typeof e.robots==`object`){let t=e.robots.rules||[],r=e.robots.sitemaps||[],i=t.map(e=>{let t=`User-agent: ${e.userAgent}\n`;return e.allow&&(Array.isArray(e.allow)?t+=e.allow.map(e=>`Allow: ${e}`).join(`
|
|
16
|
-
`)+`
|
|
17
|
-
`:t+=`Allow: ${e.allow}\n`),e.disallow&&(Array.isArray(e.disallow)?t+=e.disallow.map(e=>`Disallow: ${e}`).join(`
|
|
18
|
-
`)+`
|
|
19
|
-
`:t+=`Disallow: ${e.disallow}\n`),t.trim()}).join(`
|
|
20
|
-
|
|
21
|
-
`),a=[...n?[n]:[],...r].map(e=>`Sitemap: ${e}`).join(`
|
|
22
|
-
`);return`${i}${a?`\n\n${a}`:``}`}return[`User-agent: *`,`Allow: /`,``,n?`Sitemap: ${n}`:``].filter(Boolean).join(`
|
|
23
|
-
`)}var re=class{name=`SEOWrite`;async execute(e){if(!e.ssgRoutes||!e.config||!e.outDir)throw Error(`SSG Routes, Config, or OutDir not initialized.`);let t=W(e.ssgRoutes,e.config),n=e.docsDir||f.default.resolve(e.root,`docs`),r=f.default.resolve(e.root,e.outDir);t&&p.default.writeFileSync(f.default.join(r,`sitemap.xml`),t,`utf-8`);let i=ne(e.config);if(p.default.writeFileSync(f.default.join(r,`robots.txt`),i,`utf-8`),e.config.plugins&&e.config.plugins.length>0){let{PluginLifecycleManager:t}=await Promise.resolve().then(()=>require(`./plugin-lifecycle-BjMclfc3.cjs`));await new t(e.config.plugins,e.config,n,e.root,e.routes??[],r).runHook(`build:generate`,{routes:e.routes??[],outDir:r,siteUrl:e.config.siteUrl})}}};function ie(){return new G().addStep(new R).addStep(new z).addParallelSteps([new V,new H]).addStep(new U).addStep(new re)}var G=class{steps=[];addStep(e){return this.steps.push(e),this}addParallelSteps(e){return this.steps.push(e),this}async run(e){let t=[],n=performance.now(),r={...e,timing:{}};for(let e of this.steps){let i=Array.isArray(e),a=i?e:[e],o=performance.now();try{i?await Promise.all(a.map(e=>e.execute(r))):await a[0].execute(r);let e=performance.now()-o;for(let n of a){let i=r.stepDetails?.[n.name];t.push({name:n.name,duration:e,success:!0,details:i}),r.timing[n.name]=e}if(r.ssgSubSteps){for(let e of r.ssgSubSteps)t.push(e);delete r.ssgSubSteps}}catch(e){let i=performance.now()-o,s=a.find(e=>!t.some(t=>t.name===e.name&&t.success))?.name||a.map(e=>e.name).join(` | `);t.push({name:s,duration:i,success:!1,error:e instanceof Error?e:Error(String(e))});for(let e of t.filter(e=>e.success).reverse()){let t=this.steps.flat().find(t=>t.name===e.name);if(t?.rollback)try{await t.rollback(r)}catch(t){console.error(`[pipeline] rollback failed for step "${e.name}":`,t)}}let c=performance.now()-n;return{success:!1,failedStep:s,error:e instanceof Error?e:Error(String(e)),timing:{total:c,steps:r.timing},stepResults:t}}}return{success:!0,timing:{total:performance.now()-n,steps:r.timing},stepResults:t}}};const ae={"build:before":`beforeBuild`,"build:after":`afterBuild`,"build:end":`buildEnd`,"dev:before":`beforeDev`,"dev:after":`afterDev`,"transform:source":`transformSource`,"transform:mdx":`transformMdx`,"transform:html":`transformHtml`,beforeBuild:`build:before`,afterBuild:`build:after`,buildEnd:`build:end`,beforeDev:`dev:before`,afterDev:`dev:after`,transformSource:`transform:source`,transformMdx:`transform:mdx`,transformHtml:`transform:html`};function K(e,t){if(!e.hooks)return;let n=e.hooks[t];if(typeof n==`function`)return n;let r=ae[t];if(r){let t=e.hooks[r];if(typeof t==`function`)return t}}var q=class{plugins;config;store;docsDir;rootDir;routes;outDir;runtime;routeCacheContext;routeCacheVariant;constructor(e,t,n,i,o,s,c,l,u){this.plugins=e,this.config=t,this.store=new P,this.docsDir=n||process.cwd(),this.rootDir=i||process.cwd(),this.routes=o||[],this.outDir=s||`dist`,this.runtime=c??r.u(),this.routeCacheContext=l??a.s(this.docsDir),this.routeCacheVariant=u??a.c(this.routeCacheContext,a.l(t,t.base))}async runHook(e,...t){let n=this.getSortedPlugins(),r=new G;for(let i of n)K(i,e)&&r.addStep(this.createStep(i,e,t));await r.run({})}async runChain(e,t){let n=this.getSortedPlugins(),r=t;for(let t of n){let n=K(t,e);if(!n)continue;let i=this.createContext(t);try{let e=await n(i,r);if(e!==void 0){let t=e.__signal;if(t===`break`)break;if(t===`skip`){r=e;break}r=e}}catch(n){let r=new N(t.name,e,n instanceof Error?n:Error(String(n)));i.logger.error(r),i.diagnostics.report(`error`,`PLUGIN_HOOK_ERROR`,r.message)}}return r}hasHook(e){return!!(this.plugins.some(t=>K(t,e))||this.plugins.flatMap(e=>e.middleware??[]).some(t=>t[e])||(e===`transformSource`||e===`transformMdx`||e===`transformHtml`)&&[...this.runtime.middlewareRegistry.values()].some(t=>t[e]))}async runMiddlewareChain(e,t){let n=this.plugins.flatMap(e=>e.middleware??[]),r=[...this.runtime.middlewareRegistry.values()],i=[...n,...r],a=[...i.filter(e=>e.enforce===`pre`),...i.filter(e=>!e.enforce),...i.filter(e=>e.enforce===`post`)],o=t;for(let t of a){let n=t[e];if(!n)continue;let r=this.createGenericContext();try{let e=await n(r,o);if(e!==void 0){let t=e.__signal;if(t===`break`)break;if(t===`skip`){o=e;break}o=e}}catch(e){let n=`Middleware '${t.name??`<unnamed>`}' threw: ${e instanceof Error?e.message:String(e)}`;r.logger.error(n),r.diagnostics.report(`error`,`MIDDLEWARE_ERROR`,n)}}return o}getSortedPlugins(){let e=this.plugins.filter(e=>e.enforce===`pre`),t=this.plugins.filter(e=>!e.enforce),n=this.plugins.filter(e=>e.enforce===`post`);return[...e,...t,...n]}createStep(e,t,n){return{name:`${e.name}:${String(t)}`,execute:async()=>{let r=this.createContext(e);try{let i=K(e,t);i&&await i(r,...n)}catch(n){let i=new N(e.name,t,n instanceof Error?n:Error(String(n)));r.logger.error(i)}},rollback:async()=>{let t=K(e,`build:end`);if(t){let n=this.createContext(e);try{await t(n)}catch{}}}}}createContext(e){return{config:Object.freeze({...this.config}),docsDir:this.docsDir,rootDir:this.rootDir,outDir:this.outDir,routes:this.routes,meta:{name:e.name,version:e.version,boltdocsVersion:e.boltdocsVersion},store:{get:(e,t)=>this.store.get(e,t),set:(e,t,n)=>this.store.set(e,t,n),has:(e,t)=>this.store.has(e,t)},logger:this.createLogger(e.name),caches:r.n(this.routeCacheContext,this.rootDir,this.routeCacheVariant),diagnostics:r.r(e.name,this.runtime),paths:r.o(this.docsDir,this.rootDir),virtualModules:r.l(this.runtime),middleware:r.a(this.runtime),hmr:r.i(this.runtime),server:r.c(this.runtime)}}createGenericContext(){let e=`<middleware>`;return{config:Object.freeze({...this.config}),docsDir:this.docsDir,rootDir:this.rootDir,outDir:this.outDir,routes:this.routes,meta:{name:e},store:{get:(e,t)=>this.store.get(e,t),set:(e,t,n)=>this.store.set(e,t,n),has:(e,t)=>this.store.has(e,t)},logger:this.createLogger(e),caches:r.n(this.routeCacheContext,this.rootDir,this.routeCacheVariant),diagnostics:r.r(e,this.runtime),paths:r.o(this.docsDir,this.rootDir),virtualModules:r.l(this.runtime),middleware:r.a(this.runtime),hmr:r.i(this.runtime),server:r.c(this.runtime)}}createLogger(e){let t=`[plugin:${e}]`;return{info:e=>g.info(`${t} ${e}`),warn:e=>g.warn(`${t} ${e}`),error:e=>{g.error(`${t} ${e instanceof Error?e.message:e}`)},debug:e=>g.debug(`${t} ${e}`)}}};function J(e){return t=>typeof e==`function`?e(t):e}function Y(e){return typeof e==`function`?J(e):e}var oe=e.t({BUILTIN_HIGHLIGHTERS:()=>s.t,BoltdocsPluginStore:()=>P,DEFAULT_HIGHLIGHTER:()=>s.n,PluginCompatibilityError:()=>M,PluginError:()=>A,PluginHookError:()=>N,PluginLifecycleManager:()=>q,PluginValidationError:()=>j,createArticleStructuredData:()=>O,createBreadcrumbStructuredData:()=>k,createPlugin:()=>Y,createStructuredData:()=>T,createViteConfig:()=>$,createWebSiteStructuredData:()=>E,default:()=>Q,defineConfig:()=>o.r,definePlugin:()=>J,defineStructuredData:()=>w,flushCache:()=>i.flushCache,generateEntryCode:()=>r.g,generateRoutes:()=>a.t,getCodeHighlighterAdapter:()=>s.r,getHighlighterNames:()=>s.i,handleAwsFeedback:()=>d.t,handleFeedback:()=>u.t,handleNetlifyFeedback:()=>d.r,handleVercelFeedback:()=>d.i,handleWebFeedback:()=>d.n,invalidateRouteCache:()=>a.i,isHighlighterRegistered:()=>s.a,normalizeCodeHighlightConfig:()=>y.normalizeCodeHighlightConfig,normalizePath:()=>t.u,prewarmCodeHighlighting:()=>s.o,prewarmHighlighter:()=>s.s,registerHighlighter:()=>s.c,registerPluginHighlighter:()=>s.l,resolveConfig:()=>o.t,resolvePluginHook:()=>K,sanitizeFilename:()=>t.f,validatePlugins:()=>F});const X=new Map;function se(){let e=__dirname;for(;e&&e!==f.default.parse(e).root;){let t=f.default.join(e,`package.json`);if(p.default.existsSync(t)){let n=``;try{n=JSON.parse(p.default.readFileSync(t,`utf-8`)).name||``}catch{n=``}if(n===`boltdocs`){let t=f.default.join(e,`src/client`);return p.default.existsSync(t)?t:void 0}}e=f.default.dirname(e)}}const ce=se();function Z(e,t,n){if(n===!1)return!1;if(typeof n==`string`)return f.default.resolve(e,n);let r=t?.vite?.publicDir;if(r===!1)return!1;if(typeof r==`string`)return f.default.resolve(e,r);let i=f.default.resolve(e,`public`),a=f.default.resolve(e,t?.docsDir||`docs`,`public`);return p.default.existsSync(i)||!p.default.existsSync(a)?i:a}function le(e,t,n,r){return`${e}::${t}::${m.default.createHash(`md5`).update(JSON.stringify({root:e,mode:t,routeCount:n.routes?.length??0,skipTypes:n.skipTypes??!1,skipLinkTree:n.skipLinkTree??!1,skipRoutes:n.skipRoutes??!1,hasPreResolved:!!r,docsDir:r?.docsDir||`docs`,aliases:r?.aliases,viteAliases:r?.vite?.resolve?.alias,publicDir:Z(e,r,n.publicDir)})).digest(`hex`)}`}async function Q(e){let{resolveConfig:t}=await Promise.resolve().then(()=>require(`./config-PLvresCv.cjs`)),{generateRoutes:n,getExternalRoutePaths:r}=await Promise.resolve().then(()=>require(`./routes-C3_w9fLX.cjs`)),{generateProjectTypes:i,writeLinkTree:a}=await Promise.resolve().then(()=>require(`./types-generator-C83Iy6X5.cjs`)).then(e=>e.n),{boltdocsPlugin:o}=await Promise.resolve().then(()=>require(`./plugin-BX6TXR8x.cjs`)),s=e?.docsDir||`docs`,c=await t(s),l=await n(s,c),u=l.map(e=>e.path),d=(c.base||`/docs`).replace(/\/$/,``);u.includes(d)||u.push(d);let f=r(s,c);for(let e of f)u.includes(e)||u.push(e);return i(c,s,void 0,u),a(u),o({...e,routes:e?.routes??l},c)}async function $(e,t=`development`,n,r={}){let i=le(e,t,r,n),a=X.get(i);if(a)return a.config;let o=null,s=null,c=null,l=null,u=null;async function d(){if(u)return;let e=[import(`@vitejs/plugin-react`),Promise.resolve().then(()=>require(`./plugin-BX6TXR8x.cjs`)),Promise.resolve().then(()=>require(`./resolve-BelytNYR.cjs`)),import(`vite`).then(e=>({normalizePath:e.normalizePath}))],t=await Promise.all(e);o=t[0].default,s=t[1].boltdocsPlugin,c=t[1].getExternalAbsolutePaths,l=t[2].resolveSecurityHeaders,u=t[3].normalizePath}d();let p=n||await(async()=>{let{resolveConfig:t}=await Promise.resolve().then(()=>require(`./config-PLvresCv.cjs`));return t(`docs`,e)})(),m=f.default.resolve(e,p.docsDir||`docs`),h=r.routes??(r.skipRoutes?[]:await(async()=>{let{generateRoutes:e}=await Promise.resolve().then(()=>require(`./routes-C3_w9fLX.cjs`));return e(m,p,void 0,!1)})()),g=t===`production`,_=(async()=>(await d(),l(p,g)))(),v=!r.skipTypes,y=!r.skipLinkTree;if(v||y){let[{generateRoutes:t,getExternalRoutePaths:n},{generateProjectTypes:r,writeLinkTree:i}]=await Promise.all([Promise.resolve().then(()=>require(`./routes-C3_w9fLX.cjs`)),Promise.resolve().then(()=>require(`./types-generator-C83Iy6X5.cjs`)).then(e=>e.n)]),a=h.map(e=>e.path),o=(p.base||`/docs`).replace(/\/$/,``);a.includes(o)||a.push(o);let s=n(m,p);for(let e of s)a.includes(e)||a.push(e);v&&r(p,m,e,a),y&&i(a)}let x=await _;await d();let C=[],w={};if(p.plugins)for(let e of p.plugins)e.css?.postcssPlugins&&C.push(...e.css.postcssPlugins),e.css?.preprocessorOptions&&Object.assign(w,e.css.preprocessorOptions);let T={root:e,mode:t,experimental:{bundledDev:!g&&process.env.BOLTDOCS_BUNDLED_DEV===`true`},oxc:{jsx:{development:!g,runtime:`automatic`,importSource:`react`}},optimizeDeps:{entries:[`index.html`],include:[`react`,`react-dom`,`react-dom/client`,`react-helmet-async`,`react-router-dom`,`react-fast-compare`,`invariant`,`use-sync-external-store/shim`]},css:C.length>0||Object.keys(w).length>0?{postcss:C.length>0?{plugins:C}:void 0,preprocessorOptions:Object.keys(w).length>0?w:void 0}:void 0,build:{},plugins:[b(),o(),...s({docsDir:m,root:e,routes:h},p)],ssr:{external:[`react`,`react-dom`,`react-helmet-async`,`react-router-dom`,`@bdocs/ssg`,`jsdom`,...c()],optimizeDeps:{include:[`react`,`react-dom`,`react-fast-compare`,...p.vite?.ssr?.optimizeDeps?.include??[]]},noExternal:[]},server:{watch:{ignored:[`**/.boltdocs/**`,...p.vite?.server?.watch?.ignored??[]]},headers:{...x,...p.vite?.server?.headers},...p.vite?.server},preview:{headers:{...x,...p.vite?.preview?.headers},...p.vite?.preview},...p.vite??{},resolve:{...p.vite?.resolve??{},alias:ee({root:e,clientSourceRoot:ce,aliases:[...S(p.aliases),...S(p.vite?.resolve?.alias)]}).map(e=>({...e,...typeof e.replacement==`string`?{replacement:u(e.replacement)}:{}})),dedupe:[`react`,`react-dom`,`react-router-dom`,...p.vite?.resolve?.dedupe??[]]},base:p.base||`/`,publicDir:Z(e,p,r.publicDir)};return X.set(i,{config:T}),T.__boltdocsConfig=p,T}Object.defineProperty(exports,`_`,{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return J}}),Object.defineProperty(exports,`b`,{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return ie}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return P}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,`g`,{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,`h`,{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return Y}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return L}}),Object.defineProperty(exports,`m`,{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return $}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return q}}),Object.defineProperty(exports,`p`,{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return oe}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return K}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return Q}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,`v`,{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,`y`,{enumerable:!0,get:function(){return E}});
|
package/dist/node-CUiheODn.mjs
DELETED
|
@@ -1,23 +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{_ as t,a as n,c as r,i,l as a,n as o,o as s,r as c,u as l}from"./plugin-context-BKK-nfOd.mjs";import{r as u}from"./utils-8lzafE49.mjs";import{n as d}from"./pages-external-BBw8ObVK.mjs";import"./node/cache.mjs";import{c as f,l as p,s as m,t as h}from"./routes-C4wrLWwu.mjs";import{n as g,r as _}from"./config-DC0nMMk7.mjs";import{l as v}from"./registry-CHh8A5as.mjs";import{r as y,t as b}from"./types-generator-BtZ6-ZKx.mjs";import{t as x}from"./resolve-C8AFoOQL.mjs";import"./handler-Lex5DbvG.mjs";import"./adapters-BKzKe2mO.mjs";import S from"node:path";import C from"node:fs";import ee from"node:crypto";import{z as w}from"zod";import*as T from"@bdocs/dui";import{colors as E,warn as D}from"@bdocs/dui";import te from"semver";import{build as ne}from"@bdocs/ssg/node";import{normalizeCodeHighlightConfig as O}from"@bdocs/unist-utils";function re(){return{name:`boltdocs-ssr-dirname-polyfill`,config:(e,{isSsrBuild:t})=>t?{define:{__dirname:`import.meta.dirname`}}:{}}}const ie=new Set([`boltdocs/entry`,`boltdocs/client`,`boltdocs/primitives`,`boltdocs/mdx`,`boltdocs/client/router`,`use-sync-external-store/shim/index.js`,`use-sync-external-store/shim`,`use-sync-external-store`]);function k(e){return e?Array.isArray(e)?[...e]:Object.entries(e).map(([e,t])=>({find:e,replacement:t})):[]}function A(e,t){typeof t.find==`string`&&ie.has(t.find)&&e.some(e=>e.find===t.find)||e.push({...t,...typeof t.replacement==`string`?{replacement:t.replacement}:{}})}function j({root:e,clientSourceRoot:t,aliases:n}){let r=[{find:`boltdocs/entry`,replacement:S.resolve(e,`boltdocs-entry.tsx`)},{find:`boltdocs/client`,replacement:S.resolve(e,`boltdocs-client.mjs`)},...t?[{find:`boltdocs/primitives`,replacement:S.join(t,`primitives.ts`)},{find:`boltdocs/mdx`,replacement:S.join(t,`mdx.ts`)},{find:`boltdocs/client/router`,replacement:S.join(t,`router/index.ts`)}]:[],{find:`use-sync-external-store/shim/index.js`,replacement:`react`},{find:`use-sync-external-store/shim`,replacement:`react`},{find:`use-sync-external-store`,replacement:`react`}].map(e=>({...e,replacement:e.replacement}));for(let t of k(n))A(r,{...t,replacement:typeof t.replacement==`string`&&t.replacement.startsWith(`.`)?S.resolve(e,t.replacement):t.replacement});return r}function ae(e){return e}function oe(e){let t=[];if(e.website&&t.push(M(e.website)),e.article&&t.push(P(e.article)),e.breadcrumbs?.length&&t.push(F(e.breadcrumbs)),e.additional&&t.push(...Array.isArray(e.additional)?e.additional:[e.additional]),t.length===0)throw Error(`createStructuredData() requires at least one of website, article, breadcrumbs, or additional`);return t.length===1?t[0]:t}function M(e){let t={"@context":`https://schema.org`,"@type":`WebSite`,name:e.name,url:e.url};return e.description&&(t.description=e.description),e.searchUrl&&(t.potentialAction={"@type":`SearchAction`,target:`${e.searchUrl}{search_term_string}`,"query-input":`required name=search_term_string`}),t}function N(e,t){let n=new Date(e);if(Number.isNaN(n.getTime()))throw TypeError(`Invalid ${t} value: ${String(e)}`);return n.toISOString()}function P(e){let t={"@context":`https://schema.org`,"@type":`Article`,headline:e.headline,url:e.url};return e.description&&(t.description=e.description),e.datePublished&&(t.datePublished=N(e.datePublished,`datePublished`)),e.dateModified&&(t.dateModified=N(e.dateModified,`dateModified`)),e.image&&(t.image=e.image),e.author&&(t.author=typeof e.author==`string`?{"@type":`Person`,name:e.author}:{"@type":`Person`,...e.author}),t}function F(e){return{"@context":`https://schema.org`,"@type":`BreadcrumbList`,itemListElement:e.map((e,t)=>({"@type":`ListItem`,position:t+1,name:e.name,item:e.url}))}}var I=class extends Error{name=this.constructor.name;constructor(e,t,n){super(`[plugin:${e}] ${t}`,n),this.pluginName=e}},L=class extends I{constructor(e,t){super(e,`Validation failed: ${t}`)}},R=class extends I{constructor(e,t){super(e,`Compatibility error: ${t}`)}},z=class extends I{constructor(e,t,n){super(e,`Error in hook '${t}': ${n.message}`,{cause:n}),this.hookName=t}},B=class{data=new Map;getNamespaceKey(e,t){return`${e}:${t}`}get(e,t){let n=this.getNamespaceKey(e,t),r=this.data.get(n);if(r!==void 0)return typeof r==`object`&&r?JSON.parse(JSON.stringify(r)):r}set(e,t,n){let r=this.getNamespaceKey(e,t),i=typeof n==`object`&&n?JSON.parse(JSON.stringify(n)):n;this.data.set(r,i)}has(e,t){let n=this.getNamespaceKey(e,t);return this.data.has(n)}};const se=_.extend({version:w.string().optional(),boltdocsVersion:w.string().optional(),css:w.object({cssFiles:w.array(w.string()).optional(),headStyles:w.array(w.string()).optional(),postcssPlugins:w.array(w.any()).optional(),preprocessorOptions:w.record(w.string(),w.any()).optional()}).optional(),hooks:w.object({beforeBuild:w.custom(e=>typeof e==`function`).optional(),afterBuild:w.custom(e=>typeof e==`function`).optional(),beforeDev:w.custom(e=>typeof e==`function`).optional(),afterDev:w.custom(e=>typeof e==`function`).optional(),buildEnd:w.custom(e=>typeof e==`function`).optional(),transformSource:w.custom(e=>typeof e==`function`).optional(),transformMdx:w.custom(e=>typeof e==`function`).optional(),transformHtml:w.custom(e=>typeof e==`function`).optional()}).passthrough().optional()});function V(e,t){let n=[],r=new Set;for(let i of e){let e=se.safeParse(i);if(!e.success)throw new L(i.name||`unknown`,e.error.issues.map(e=>`${e.path.join(`.`)}: ${e.message}`).join(`, `));let a=e.data;if(r.has(a.name))throw new L(a.name,`Duplicate plugin name detected`);if(r.add(a.name),a.boltdocsVersion&&!te.satisfies(t,a.boltdocsVersion))throw new R(a.name,`Plugin expects Boltdocs version ${a.boltdocsVersion}, but current is ${t}`);if(a.components)for(let[e,t]of Object.entries(a.components)){if(t.includes(`..`))throw new L(a.name,`Component '${e}' has an invalid path: traversal sequences are not allowed.`);if(S.isAbsolute(t))throw new L(a.name,`Component '${e}' has an invalid path: absolute paths are not allowed.`)}a.codeHighlighter&&v(a.name,a.codeHighlighter),n.push(a)}return n}const H=new Map;function U(e,t=process.cwd()){let n=e.plugins||[];for(let e of n)if(e.name&&!H.has(e.name))try{let n=x(e.name,t)?.pkg,r=n&&typeof n.scripts==`object`?n.scripts:{},i=!!(r.preinstall||r.postinstall||r.install);i&&D(`💡 ${E.yellow(E.bold(`Nota de seguridad:`))} El plugin ${E.cyan(e.name)} ejecuta scripts nativos al instalarse. Corre ${E.bold(`boltdocs audit`)} para un análisis detallado.`),H.set(e.name,i)}catch{H.set(e.name,!1)}}var W=class{name=`ConfigResolve`;async execute(e){e.config=await g(`docs`,e.root,`build`,`production`),e.allCached||U(e.config,e.root);let t=S.resolve(e.root,e.config.docsDir||`docs`);e.docsDir=t;let n=await h(t,e.config,void 0,!1);e.routes=n;let r=n.map(e=>e.path),i=(e.config.base||`/docs`).replace(/\/$/,``);r.includes(i)||r.push(i);let a=d(t,e.config);for(let e of a)r.includes(e)||r.push(e);e.routePaths=r,e.viteConfig=await $(e.root,`production`,e.config,{routes:n,skipTypes:!0,skipLinkTree:!0})}},G=class{name=`RouteGenerate`;async execute(e){if(!e.routes)throw Error(`Routes not generated by ConfigResolveStep. Verify pipeline order.`)}};const ce=w.object({title:w.string().optional(),description:w.string().optional(),canonical:w.string().url().optional(),robots:w.string().optional(),noindex:w.boolean().optional(),"og:title":w.string().optional(),"og:description":w.string().optional(),"og:image":w.string().optional(),"og:type":w.string().optional(),"og:url":w.string().url().optional()});var le=class{name=`SEOValidate`;async execute(e){if(!e.routes||!e.config)throw Error(`Routes or Config not initialized.`);let t=e.config?.siteUrl,n=e.routes;for(let r of n){let n=r.seo||{},i=n.canonical||(t?`${t.replace(/\/$/,``)}${r.path}`:void 0),a=n[`og:url`]||i||void 0,o=e.config?.seo?.thumbnails?.background??void 0,s=n[`og:image`]||r.coverImage||o;s&&t&&!/^https?:\/\/|^\/\//.test(s)&&(s=`${t.endsWith(`/`)?t.slice(0,-1):t}${s.startsWith(`/`)?s:`/${s}`}`);let c={...n};i&&(c.canonical=i),a&&(c[`og:url`]=a),s&&(c[`og:image`]=s),!c[`og:title`]&&r.title&&(c[`og:title`]=String(r.title)),!c[`og:description`]&&r.description&&(c[`og:description`]=String(r.description));let l=ce.safeParse(c);l.success||D(`[SEOValidate] Validation issues on route "${r.path}": ${l.error.message}`),r.title||D(`[SEOValidate] Route "${r.path}" is missing a title.`),r.seo=c}e.ssgRoutes=n}},ue=class{name=`TypeGenerate`;async execute(e){if(!e.config||!e.docsDir||!e.routePaths)throw Error(`Config, docs directory, or route paths not initialized. Verify pipeline order.`);b(e.config,`docs`,e.root,e.routePaths),y(e.routePaths,e.root),e.typesGenerated=!0}},de=class{name=`SSGBuild`;async execute(e){if(!e.routes||!e.viteConfig)throw Error(`Routes or ViteConfig not initialized.`);let t={};for(let n of e.routes)if(n.path&&n.componentPath){t[n.path]=n.componentPath;let e=n.path.replace(/\/$/,``);t[e]=n.componentPath}let n=[];await ne({entry:`boltdocs/entry`,routeToSourceFileMap:t,cacheDir:S.resolve(e.root,`.boltdocs/build`),onStep:e=>{n.push(e)}},e.viteConfig),e.ssgSubSteps=n,e.outDir=e.viteConfig.build?.outDir||`dist`}};function fe(e,t){let n=(t.siteUrl||``).replace(/\/$/,``);if(!n)return``;let r=t.seo?.indexing!==`all`&&t.seo?.indexing!==`public`;return`<?xml version="1.0" encoding="UTF-8"?>
|
|
7
|
-
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
|
8
|
-
${e.filter(e=>e.seo?.noindex||typeof e.seo?.robots==`string`&&e.seo.robots.includes(`noindex`)?!1:(r&&e.seo?.index,!0)).map(e=>`${n}${e.path.startsWith(`/`)?e.path:`/${e.path}`}`).sort((e,t)=>e<t?-1:e>t?1:0).map(e=>` <url>
|
|
9
|
-
<loc>${u(e)}</loc>
|
|
10
|
-
<changefreq>weekly</changefreq>
|
|
11
|
-
<priority>0.7</priority>
|
|
12
|
-
</url>`).join(`
|
|
13
|
-
`)}
|
|
14
|
-
</urlset>`}function pe(e){let t=e.siteUrl||``,n=t?`${t.replace(/\/$/,``)}/sitemap.xml`:``;if(e.seo?.indexing!==`all`&&e.seo?.indexing!==`public`&&e.seo?.indexing)return[`User-agent: *`,`Disallow: /`].filter(Boolean).join(`
|
|
15
|
-
`);if(typeof e.robots==`string`)return e.robots;if(e.robots&&typeof e.robots==`object`){let t=e.robots.rules||[],r=e.robots.sitemaps||[],i=t.map(e=>{let t=`User-agent: ${e.userAgent}\n`;return e.allow&&(Array.isArray(e.allow)?t+=e.allow.map(e=>`Allow: ${e}`).join(`
|
|
16
|
-
`)+`
|
|
17
|
-
`:t+=`Allow: ${e.allow}\n`),e.disallow&&(Array.isArray(e.disallow)?t+=e.disallow.map(e=>`Disallow: ${e}`).join(`
|
|
18
|
-
`)+`
|
|
19
|
-
`:t+=`Disallow: ${e.disallow}\n`),t.trim()}).join(`
|
|
20
|
-
|
|
21
|
-
`),a=[...n?[n]:[],...r].map(e=>`Sitemap: ${e}`).join(`
|
|
22
|
-
`);return`${i}${a?`\n\n${a}`:``}`}return[`User-agent: *`,`Allow: /`,``,n?`Sitemap: ${n}`:``].filter(Boolean).join(`
|
|
23
|
-
`)}var me=class{name=`SEOWrite`;async execute(e){if(!e.ssgRoutes||!e.config||!e.outDir)throw Error(`SSG Routes, Config, or OutDir not initialized.`);let t=fe(e.ssgRoutes,e.config),n=e.docsDir||S.resolve(e.root,`docs`),r=S.resolve(e.root,e.outDir);t&&C.writeFileSync(S.join(r,`sitemap.xml`),t,`utf-8`);let i=pe(e.config);if(C.writeFileSync(S.join(r,`robots.txt`),i,`utf-8`),e.config.plugins&&e.config.plugins.length>0){let{PluginLifecycleManager:t}=await Promise.resolve().then(()=>q);await new t(e.config.plugins,e.config,n,e.root,e.routes??[],r).runHook(`build:generate`,{routes:e.routes??[],outDir:r,siteUrl:e.config.siteUrl})}}};function he(){return new K().addStep(new W).addStep(new G).addParallelSteps([new le,new ue]).addStep(new de).addStep(new me)}var K=class{steps=[];addStep(e){return this.steps.push(e),this}addParallelSteps(e){return this.steps.push(e),this}async run(e){let t=[],n=performance.now(),r={...e,timing:{}};for(let e of this.steps){let i=Array.isArray(e),a=i?e:[e],o=performance.now();try{i?await Promise.all(a.map(e=>e.execute(r))):await a[0].execute(r);let e=performance.now()-o;for(let n of a){let i=r.stepDetails?.[n.name];t.push({name:n.name,duration:e,success:!0,details:i}),r.timing[n.name]=e}if(r.ssgSubSteps){for(let e of r.ssgSubSteps)t.push(e);delete r.ssgSubSteps}}catch(e){let i=performance.now()-o,s=a.find(e=>!t.some(t=>t.name===e.name&&t.success))?.name||a.map(e=>e.name).join(` | `);t.push({name:s,duration:i,success:!1,error:e instanceof Error?e:Error(String(e))});for(let e of t.filter(e=>e.success).reverse()){let t=this.steps.flat().find(t=>t.name===e.name);if(t?.rollback)try{await t.rollback(r)}catch(t){console.error(`[pipeline] rollback failed for step "${e.name}":`,t)}}let c=performance.now()-n;return{success:!1,failedStep:s,error:e instanceof Error?e:Error(String(e)),timing:{total:c,steps:r.timing},stepResults:t}}}return{success:!0,timing:{total:performance.now()-n,steps:r.timing},stepResults:t}}},q=e({PluginLifecycleManager:()=>Y,resolvePluginHook:()=>J});const ge={"build:before":`beforeBuild`,"build:after":`afterBuild`,"build:end":`buildEnd`,"dev:before":`beforeDev`,"dev:after":`afterDev`,"transform:source":`transformSource`,"transform:mdx":`transformMdx`,"transform:html":`transformHtml`,beforeBuild:`build:before`,afterBuild:`build:after`,buildEnd:`build:end`,beforeDev:`dev:before`,afterDev:`dev:after`,transformSource:`transform:source`,transformMdx:`transform:mdx`,transformHtml:`transform:html`};function J(e,t){if(!e.hooks)return;let n=e.hooks[t];if(typeof n==`function`)return n;let r=ge[t];if(r){let t=e.hooks[r];if(typeof t==`function`)return t}}var Y=class{plugins;config;store;docsDir;rootDir;routes;outDir;runtime;routeCacheContext;routeCacheVariant;constructor(e,t,n,r,i,a,o,s,c){this.plugins=e,this.config=t,this.store=new B,this.docsDir=n||process.cwd(),this.rootDir=r||process.cwd(),this.routes=i||[],this.outDir=a||`dist`,this.runtime=o??l(),this.routeCacheContext=s??m(this.docsDir),this.routeCacheVariant=c??f(this.routeCacheContext,p(t,t.base))}async runHook(e,...t){let n=this.getSortedPlugins(),r=new K;for(let i of n)J(i,e)&&r.addStep(this.createStep(i,e,t));await r.run({})}async runChain(e,t){let n=this.getSortedPlugins(),r=t;for(let t of n){let n=J(t,e);if(!n)continue;let i=this.createContext(t);try{let e=await n(i,r);if(e!==void 0){let t=e.__signal;if(t===`break`)break;if(t===`skip`){r=e;break}r=e}}catch(n){let r=new z(t.name,e,n instanceof Error?n:Error(String(n)));i.logger.error(r),i.diagnostics.report(`error`,`PLUGIN_HOOK_ERROR`,r.message)}}return r}hasHook(e){return!!(this.plugins.some(t=>J(t,e))||this.plugins.flatMap(e=>e.middleware??[]).some(t=>t[e])||(e===`transformSource`||e===`transformMdx`||e===`transformHtml`)&&[...this.runtime.middlewareRegistry.values()].some(t=>t[e]))}async runMiddlewareChain(e,t){let n=this.plugins.flatMap(e=>e.middleware??[]),r=[...this.runtime.middlewareRegistry.values()],i=[...n,...r],a=[...i.filter(e=>e.enforce===`pre`),...i.filter(e=>!e.enforce),...i.filter(e=>e.enforce===`post`)],o=t;for(let t of a){let n=t[e];if(!n)continue;let r=this.createGenericContext();try{let e=await n(r,o);if(e!==void 0){let t=e.__signal;if(t===`break`)break;if(t===`skip`){o=e;break}o=e}}catch(e){let n=`Middleware '${t.name??`<unnamed>`}' threw: ${e instanceof Error?e.message:String(e)}`;r.logger.error(n),r.diagnostics.report(`error`,`MIDDLEWARE_ERROR`,n)}}return o}getSortedPlugins(){let e=this.plugins.filter(e=>e.enforce===`pre`),t=this.plugins.filter(e=>!e.enforce),n=this.plugins.filter(e=>e.enforce===`post`);return[...e,...t,...n]}createStep(e,t,n){return{name:`${e.name}:${String(t)}`,execute:async()=>{let r=this.createContext(e);try{let i=J(e,t);i&&await i(r,...n)}catch(n){let i=new z(e.name,t,n instanceof Error?n:Error(String(n)));r.logger.error(i)}},rollback:async()=>{let t=J(e,`build:end`);if(t){let n=this.createContext(e);try{await t(n)}catch{}}}}}createContext(e){return{config:Object.freeze({...this.config}),docsDir:this.docsDir,rootDir:this.rootDir,outDir:this.outDir,routes:this.routes,meta:{name:e.name,version:e.version,boltdocsVersion:e.boltdocsVersion},store:{get:(e,t)=>this.store.get(e,t),set:(e,t,n)=>this.store.set(e,t,n),has:(e,t)=>this.store.has(e,t)},logger:this.createLogger(e.name),caches:o(this.routeCacheContext,this.rootDir,this.routeCacheVariant),diagnostics:c(e.name,this.runtime),paths:s(this.docsDir,this.rootDir),virtualModules:a(this.runtime),middleware:n(this.runtime),hmr:i(this.runtime),server:r(this.runtime)}}createGenericContext(){let e=`<middleware>`;return{config:Object.freeze({...this.config}),docsDir:this.docsDir,rootDir:this.rootDir,outDir:this.outDir,routes:this.routes,meta:{name:e},store:{get:(e,t)=>this.store.get(e,t),set:(e,t,n)=>this.store.set(e,t,n),has:(e,t)=>this.store.has(e,t)},logger:this.createLogger(e),caches:o(this.routeCacheContext,this.rootDir,this.routeCacheVariant),diagnostics:c(e,this.runtime),paths:s(this.docsDir,this.rootDir),virtualModules:a(this.runtime),middleware:n(this.runtime),hmr:i(this.runtime),server:r(this.runtime)}}createLogger(e){let t=`[plugin:${e}]`;return{info:e=>T.info(`${t} ${e}`),warn:e=>T.warn(`${t} ${e}`),error:e=>{T.error(`${t} ${e instanceof Error?e.message:e}`)},debug:e=>T.debug(`${t} ${e}`)}}};function X(e){return t=>typeof e==`function`?e(t):e}function _e(e){return typeof e==`function`?X(e):e}const Z=new Map;function ve(){let e=t;for(;e&&e!==S.parse(e).root;){let t=S.join(e,`package.json`);if(C.existsSync(t)){let n=``;try{n=JSON.parse(C.readFileSync(t,`utf-8`)).name||``}catch{n=``}if(n===`boltdocs`){let t=S.join(e,`src/client`);return C.existsSync(t)?t:void 0}}e=S.dirname(e)}}const ye=ve();function Q(e,t,n){if(n===!1)return!1;if(typeof n==`string`)return S.resolve(e,n);let r=t?.vite?.publicDir;if(r===!1)return!1;if(typeof r==`string`)return S.resolve(e,r);let i=S.resolve(e,`public`),a=S.resolve(e,t?.docsDir||`docs`,`public`);return C.existsSync(i)||!C.existsSync(a)?i:a}function be(e,t,n,r){return`${e}::${t}::${ee.createHash(`md5`).update(JSON.stringify({root:e,mode:t,routeCount:n.routes?.length??0,skipTypes:n.skipTypes??!1,skipLinkTree:n.skipLinkTree??!1,skipRoutes:n.skipRoutes??!1,hasPreResolved:!!r,docsDir:r?.docsDir||`docs`,aliases:r?.aliases,viteAliases:r?.vite?.resolve?.alias,publicDir:Q(e,r,n.publicDir)})).digest(`hex`)}`}async function xe(e){let{resolveConfig:t}=await import(`./config-DC0nMMk7.mjs`).then(e=>e.t),{generateRoutes:n,getExternalRoutePaths:r}=await import(`./routes-C4wrLWwu.mjs`).then(e=>e.i),{generateProjectTypes:i,writeLinkTree:a}=await import(`./types-generator-BtZ6-ZKx.mjs`).then(e=>e.n),{boltdocsPlugin:o}=await import(`./plugin-C8UMIA-4.mjs`),s=e?.docsDir||`docs`,c=await t(s),l=await n(s,c),u=l.map(e=>e.path),d=(c.base||`/docs`).replace(/\/$/,``);u.includes(d)||u.push(d);let f=r(s,c);for(let e of f)u.includes(e)||u.push(e);return i(c,s,void 0,u),a(u),o({...e,routes:e?.routes??l},c)}async function $(e,t=`development`,n,r={}){let i=be(e,t,r,n),a=Z.get(i);if(a)return a.config;let o=null,s=null,c=null,l=null,u=null;async function d(){if(u)return;let e=[import(`@vitejs/plugin-react`),import(`./plugin-C8UMIA-4.mjs`),import(`./resolve-C5rT6B21.mjs`),import(`vite`).then(e=>({normalizePath:e.normalizePath}))],t=await Promise.all(e);o=t[0].default,s=t[1].boltdocsPlugin,c=t[1].getExternalAbsolutePaths,l=t[2].resolveSecurityHeaders,u=t[3].normalizePath}d();let f=n||await(async()=>{let{resolveConfig:t}=await import(`./config-DC0nMMk7.mjs`).then(e=>e.t);return t(`docs`,e)})(),p=S.resolve(e,f.docsDir||`docs`),m=r.routes??(r.skipRoutes?[]:await(async()=>{let{generateRoutes:e}=await import(`./routes-C4wrLWwu.mjs`).then(e=>e.i);return e(p,f,void 0,!1)})()),h=t===`production`,g=(async()=>(await d(),l(f,h)))(),_=!r.skipTypes,v=!r.skipLinkTree;if(_||v){let[{generateRoutes:t,getExternalRoutePaths:n},{generateProjectTypes:r,writeLinkTree:i}]=await Promise.all([import(`./routes-C4wrLWwu.mjs`).then(e=>e.i),import(`./types-generator-BtZ6-ZKx.mjs`).then(e=>e.n)]),a=m.map(e=>e.path),o=(f.base||`/docs`).replace(/\/$/,``);a.includes(o)||a.push(o);let s=n(p,f);for(let e of s)a.includes(e)||a.push(e);_&&r(f,p,e,a),v&&i(a)}let y=await g;await d();let b=[],x={};if(f.plugins)for(let e of f.plugins)e.css?.postcssPlugins&&b.push(...e.css.postcssPlugins),e.css?.preprocessorOptions&&Object.assign(x,e.css.preprocessorOptions);let C={root:e,mode:t,experimental:{bundledDev:!h&&process.env.BOLTDOCS_BUNDLED_DEV===`true`},oxc:{jsx:{development:!h,runtime:`automatic`,importSource:`react`}},optimizeDeps:{entries:[`index.html`],include:[`react`,`react-dom`,`react-dom/client`,`react-helmet-async`,`react-router-dom`,`react-fast-compare`,`invariant`,`use-sync-external-store/shim`]},css:b.length>0||Object.keys(x).length>0?{postcss:b.length>0?{plugins:b}:void 0,preprocessorOptions:Object.keys(x).length>0?x:void 0}:void 0,build:{},plugins:[re(),o(),...s({docsDir:p,root:e,routes:m},f)],ssr:{external:[`react`,`react-dom`,`react-helmet-async`,`react-router-dom`,`@bdocs/ssg`,`jsdom`,...c()],optimizeDeps:{include:[`react`,`react-dom`,`react-fast-compare`,...f.vite?.ssr?.optimizeDeps?.include??[]]},noExternal:[]},server:{watch:{ignored:[`**/.boltdocs/**`,...f.vite?.server?.watch?.ignored??[]]},headers:{...y,...f.vite?.server?.headers},...f.vite?.server},preview:{headers:{...y,...f.vite?.preview?.headers},...f.vite?.preview},...f.vite??{},resolve:{...f.vite?.resolve??{},alias:j({root:e,clientSourceRoot:ye,aliases:[...k(f.aliases),...k(f.vite?.resolve?.alias)]}).map(e=>({...e,...typeof e.replacement==`string`?{replacement:u(e.replacement)}:{}})),dedupe:[`react`,`react-dom`,`react-router-dom`,...f.vite?.resolve?.dedupe??[]]},base:f.base||`/`,publicDir:Q(e,f,r.publicDir)};return Z.set(i,{config:C}),C.__boltdocsConfig=f,C}export{P as _,X as a,M as b,J as c,V as d,B as f,L as g,z as h,_e as i,he as l,I as m,$ as n,Y as o,R as p,O as r,q as s,xe as t,U as u,F as v,ae as x,oe as y};
|