boltdocs 3.2.1 → 3.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/boltdocs.js +20 -1
- package/bin/preloader.mjs +28 -0
- package/dist/{adapters-ByYY44Zy.mjs → adapters-BmB4TKCc.mjs} +1 -1
- package/dist/{adapters-DvmtpdSF.cjs → adapters-Cp1Maurn.cjs} +1 -1
- package/dist/audit-CLXjMzwQ.mjs +11 -0
- package/dist/audit-COgjnQ5n.cjs +11 -0
- package/dist/build-BS2hefiL.cjs +6 -0
- package/dist/build-C5mNh9D-.mjs +6 -0
- package/dist/cache-CJE9nWLE.cjs +6 -0
- package/dist/cache-OY4HzIXl.mjs +6 -0
- package/dist/callout-oI_LCbxS.d.ts +71 -0
- package/dist/callout-plqx9Dw-.d.cts +71 -0
- package/dist/client/index.cjs +1265 -569
- package/dist/client/index.d.cts +3 -542
- package/dist/client/index.d.ts +3 -542
- package/dist/client/index.js +1167 -521
- package/dist/client/mdx.cjs +1 -1
- package/dist/client/mdx.d.cts +24 -2
- package/dist/client/mdx.d.ts +24 -2
- package/dist/client/mdx.js +1 -1
- package/dist/client/primitives.cjs +14 -4
- package/dist/client/primitives.d.cts +281 -38
- package/dist/client/primitives.d.ts +281 -38
- package/dist/client/primitives.js +5 -5
- package/dist/client/router.cjs +49 -0
- package/dist/client/router.d.cts +3 -0
- package/dist/client/router.d.ts +3 -0
- package/dist/client/router.js +8 -0
- package/dist/client/theme/reset.css +40 -4
- package/dist/{config-BpzaPsJj.d.cts → config-BoRlz0Ca.d.mts} +157 -14
- package/dist/{config-xtS0ZkMm.d.mts → config-CTsX_tGM.d.cts} +157 -14
- package/dist/config-Ceib-AOH.cjs +7 -0
- package/dist/config-DGLQsy7y.mjs +7 -0
- package/dist/{package-BcISI5-P.cjs → config-files-BYHDOrKn.mjs} +1 -1
- package/dist/config-files-D9cdBMl2.cjs +6 -0
- package/dist/config-jJh8WYJI.cjs +6 -0
- package/dist/csp-C4LmN1ko.cjs +6 -0
- package/dist/csp-D6JEOqKh.mjs +6 -0
- package/dist/dev-Ch3hEe5Y.cjs +6 -0
- package/dist/dev-QPNxysrd.mjs +6 -0
- package/dist/{docs-layout-BdtZ9z6s.js → docs-layout-CbZ7LDRe.js} +504 -249
- package/dist/{docs-layout-CFWI15Id.cjs → docs-layout-vzfXed1Q.cjs} +516 -254
- package/dist/{doctor-BBtmNJE0.cjs → doctor-B1_YL0Wt.cjs} +1 -1
- package/dist/doctor-C7whl4ED.cjs +6 -0
- package/dist/doctor-DmQnml2k.mjs +6 -0
- package/dist/{generator-COepVWGi.cjs → generator-BlW45ST7.cjs} +5 -3
- package/dist/{generator-CcOBN5vI.mjs → generator-BwknNejd.mjs} +5 -3
- package/dist/{handler-XX7cLTqe.cjs → handler-CDEoKARD.cjs} +2 -2
- package/dist/{handler-DzQae4eA.mjs → handler-D7UyZlPm.mjs} +2 -2
- package/dist/{image-Bz87fCla.js → image-B-NDSDuY.js} +129 -11
- package/dist/{image-C4TlpMHn.cjs → image-Hnaa2bJd.cjs} +175 -9
- package/dist/index-C56bL-A-.d.cts +1344 -0
- package/dist/{sidebar-COTaMHR-.d.ts → index-CPUUKzxD.d.cts} +344 -327
- package/dist/{sidebar-CrEdJuHX.d.cts → index-Ci4kfOHF.d.ts} +344 -327
- package/dist/index-Cu9H6CRa.d.ts +1344 -0
- package/dist/link-CgdI6O2o.js +872 -0
- package/dist/{link-D1Gjkb-2.cjs → link-vZjmD-es.cjs} +406 -223
- package/dist/{mdx-BuO6a1f7.js → mdx-BRT71V5Q.js} +211 -168
- package/dist/{mdx-CD-tSjRG.cjs → mdx-D0Absdq5.cjs} +225 -169
- package/dist/native-BNCY7PRF.cjs +6 -0
- package/dist/native-Di9Fnfrv.mjs +6 -0
- package/dist/native-Kre2T5eS.cjs +6 -0
- package/dist/node/cache.cjs +1 -1
- package/dist/node/cache.d.cts +19 -3
- package/dist/node/cache.d.mts +19 -3
- package/dist/node/cache.mjs +1 -1
- package/dist/node/cli-entry.cjs +1 -9
- package/dist/node/cli-entry.mjs +1 -9
- package/dist/node/index.cjs +1 -1
- package/dist/node/index.d.cts +245 -17
- package/dist/node/index.d.mts +246 -18
- package/dist/node/index.mjs +1 -1
- package/dist/node/mdx/shiki-adapter.cjs +1 -1
- package/dist/node/mdx/shiki-adapter.d.cts +24 -3
- package/dist/node/mdx/shiki-adapter.d.mts +24 -2
- package/dist/node/mdx/shiki-adapter.mjs +1 -1
- package/dist/node-Du5UL5wo.mjs +23 -0
- package/dist/node-DunuGqyp.cjs +23 -0
- package/dist/{package-CCYEAYeA.mjs → package-DA848keM.mjs} +1 -1
- package/dist/package-wplzySjz.cjs +6 -0
- package/dist/pages-external-BBw8ObVK.mjs +6 -0
- package/dist/pages-external-DPiPFxxP.cjs +6 -0
- package/dist/parser-BqTOsEUa.cjs +6 -0
- package/dist/parser-CGMY2lJ7.mjs +6 -0
- package/dist/plugin-BcTzvHAJ.mjs +69 -0
- package/dist/plugin-TulVMt1z.cjs +69 -0
- package/dist/plugin-context-C-l90hFt.cjs +15 -0
- package/dist/plugin-context-wqHNSZum.mjs +15 -0
- package/dist/plugin-lifecycle-B1BzSHdn.cjs +6 -0
- package/dist/resolve-B7vWOd8R.cjs +6 -0
- package/dist/resolve-C2kKnk_5.mjs +6 -0
- package/dist/resolve-It1Iug83.cjs +6 -0
- package/dist/resolve-YdTrt_FG.mjs +6 -0
- package/dist/router-C3kygdRK.cjs +1285 -0
- package/dist/router-CZBxMRAH.js +987 -0
- package/dist/routes-BL4y79tb.mjs +6 -0
- package/dist/routes-C2nPecwu.cjs +6 -0
- package/dist/routes-U9L8psZ9.cjs +6 -0
- package/dist/{search-dialog-DHqwjJuG.cjs → search-dialog-BCOHQGSt.cjs} +1 -1
- package/dist/search-dialog-Bp_P1MPP.js +481 -0
- package/dist/{search-dialog-DFnlx8LO.js → search-dialog-BqkzDTq2.js} +107 -57
- package/dist/{search-dialog-BRFno7HD.cjs → search-dialog-CIeIUhAn.cjs} +218 -43
- package/dist/{search-dialog-D6TvjcuV.js → search-dialog-DtmxmfEu.js} +1 -1
- package/dist/{search-dialog-B1NERUNx.cjs → search-dialog-x_qHU8ty.cjs} +107 -58
- package/dist/server/index.cjs +1 -1
- package/dist/server/index.d.mts +1 -1
- package/dist/server/index.mjs +1 -1
- package/dist/update-check-BKqmYfwT.cjs +11 -0
- package/dist/update-check-QnrVR3q1.mjs +11 -0
- package/dist/utils-8lzafE49.mjs +7 -0
- package/dist/utils-ej6_SjIZ.cjs +7 -0
- package/dist/virtual-modules-Ca5tHk1X.cjs +30 -0
- package/dist/virtual-modules-Dlgt1fP0.mjs +30 -0
- package/package.json +18 -16
- package/src/shared/mdx-path.ts +12 -0
- package/src/shared/structured-data.ts +145 -0
- package/src/shared/types.ts +220 -16
- package/dist/banner-BMop1KLF.d.ts +0 -100
- package/dist/banner-CVD0GugR.d.cts +0 -100
- package/dist/cache-CO4Dy2uQ.cjs +0 -6
- package/dist/cache-Dk53iOo6.mjs +0 -6
- package/dist/config-CCXp3aXO.mjs +0 -7
- package/dist/config-CMd4XoFq.cjs +0 -6
- package/dist/config-DlGoEM9D.cjs +0 -7
- package/dist/csp-CRp_3U7a.cjs +0 -6
- package/dist/csp-oTC2ygvF.mjs +0 -6
- package/dist/doctor-Bv16QSrI.cjs +0 -7
- package/dist/doctor-DOAbSaiL.mjs +0 -7
- package/dist/headers-Ddwek8K7.mjs +0 -6
- package/dist/headers-dg4SDrjY.cjs +0 -6
- package/dist/link-2PzgTnaP.js +0 -673
- package/dist/meta-loader-C4Hu9RN9.mjs +0 -6
- package/dist/meta-loader-Dq1zcFnh.cjs +0 -6
- package/dist/node-BXtqM1uH.mjs +0 -6
- package/dist/node-BlVk4EVg.cjs +0 -104
- package/dist/node-DOf4zhWc.mjs +0 -104
- package/dist/node-aD1eisrR.cjs +0 -6
- package/dist/pages-external-BYa4JSda.mjs +0 -6
- package/dist/pages-external-XkYIs-d5.cjs +0 -6
- package/dist/parser-DCiEWkSk.cjs +0 -8
- package/dist/parser-qk9FIHJ7.mjs +0 -8
- package/dist/plugin-C95kvu6h.mjs +0 -73
- package/dist/plugin-DM3u2bVj.cjs +0 -73
- package/dist/routes-BW6zsk7Z.mjs +0 -6
- package/dist/routes-BgoIB5wb.cjs +0 -6
- package/dist/routes-CORVxc02.cjs +0 -6
- package/dist/search-dialog-BmxHiKwt.js +0 -312
- package/dist/shiki-adapter-CoQ6jyJ4.cjs +0 -6
- package/dist/shiki-adapter-D-aKw7PP.mjs +0 -6
- package/dist/utils-Crm9oPcV.mjs +0 -7
- package/dist/utils-D6Xtj0FZ.cjs +0 -7
- /package/dist/{errors-0zGHRLue.mjs → errors-N-b6Sn2G.mjs} +0 -0
- /package/dist/{index-1KsTDq4o.d.mts → index-lFoyzCXy.d.mts} +0 -0
- /package/dist/{types-generator-BXhv7Ill.cjs → types-generator-DDSA93P3.cjs} +0 -0
- /package/dist/{types-generator-bDPvUztF.mjs → types-generator-DG1GX1EZ.mjs} +0 -0
|
@@ -3,12 +3,12 @@
|
|
|
3
3
|
* Copyright (c) 2026 Jesus Alcala
|
|
4
4
|
* Licensed under the MIT License.
|
|
5
5
|
*/
|
|
6
|
-
const
|
|
6
|
+
const require_router = require('./router-C3kygdRK.cjs');
|
|
7
|
+
const require_link = require('./link-vZjmD-es.cjs');
|
|
7
8
|
let react = require("react");
|
|
8
|
-
react = require_link.__toESM(react);
|
|
9
9
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
10
10
|
let react_aria_components = require("react-aria-components");
|
|
11
|
-
react_aria_components =
|
|
11
|
+
react_aria_components = require_router.__toESM(react_aria_components);
|
|
12
12
|
|
|
13
13
|
//#region src/client/components/primitives/button.tsx
|
|
14
14
|
function Button({ ...props }) {
|
|
@@ -56,20 +56,20 @@ var ErrorBoundary = class extends react.Component {
|
|
|
56
56
|
return children;
|
|
57
57
|
}
|
|
58
58
|
};
|
|
59
|
-
function ErrorBoundaryFallback({ error, resetErrorBoundary }) {
|
|
59
|
+
function ErrorBoundaryFallback({ error, resetErrorBoundary, className, titleClassName, messageClassName, buttonClassName }) {
|
|
60
60
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
61
|
-
className: "flex flex-col items-center justify-center min-h-[40vh] text-center gap-4 px-6 py-8 border border-subtle bg-surface rounded-2xl max-w-lg mx-auto shadow-xs",
|
|
61
|
+
className: require_link.cn("flex flex-col items-center justify-center min-h-[40vh] text-center gap-4 px-6 py-8 border border-subtle bg-surface rounded-2xl max-w-lg mx-auto shadow-xs", className),
|
|
62
62
|
children: [
|
|
63
63
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
64
|
-
className: "text-lg font-bold text-
|
|
64
|
+
className: require_link.cn("text-lg font-bold text-danger-500", titleClassName),
|
|
65
65
|
children: "Something went wrong"
|
|
66
66
|
}),
|
|
67
67
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
68
|
-
className: "text-sm text-muted max-w-sm leading-relaxed",
|
|
68
|
+
className: require_link.cn("text-sm text-muted max-w-sm leading-relaxed", messageClassName),
|
|
69
69
|
children: error?.message || "An unexpected error occurred while rendering this page."
|
|
70
70
|
}),
|
|
71
71
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(Button, {
|
|
72
|
-
className: "rounded-xl border border-subtle bg-main px-6 py-2.5 text-xs font-semibold text-body hover:bg-primary-50/50 hover:border-primary-500/50 transition-all duration-300 cursor-pointer outline-none select-none",
|
|
72
|
+
className: require_link.cn("rounded-xl border border-subtle bg-main px-6 py-2.5 text-xs font-semibold text-body hover:bg-primary-50/50 hover:border-primary-500/50 transition-all duration-300 cursor-pointer outline-none select-none", buttonClassName),
|
|
73
73
|
onPress: resetErrorBoundary,
|
|
74
74
|
children: "Try again"
|
|
75
75
|
})
|
|
@@ -120,20 +120,20 @@ const Bluesky = (props) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("svg", {
|
|
|
120
120
|
//#region src/client/components/primitives/navbar.tsx
|
|
121
121
|
function Navbar({ children, className, ...props }) {
|
|
122
122
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("header", {
|
|
123
|
-
className: require_link.cn("boltdocs-navbar sticky top-0 z-50
|
|
123
|
+
className: require_link.cn("boltdocs-navbar sticky top-0 z-50", className),
|
|
124
124
|
...props,
|
|
125
125
|
children
|
|
126
126
|
});
|
|
127
127
|
}
|
|
128
128
|
function NavbarContent({ children, className }) {
|
|
129
129
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
130
|
-
className: require_link.cn("mx-auto flex lg:h-navbar max-w-(--breakpoint-3xl) items-center
|
|
130
|
+
className: require_link.cn("mx-auto flex lg:h-navbar max-w-(--breakpoint-3xl) items-center px-4 md:px-6", className),
|
|
131
131
|
children
|
|
132
132
|
});
|
|
133
133
|
}
|
|
134
134
|
function NavbarLeft({ children, className }) {
|
|
135
135
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
136
|
-
className: require_link.cn("flex flex-1 items-center
|
|
136
|
+
className: require_link.cn("flex flex-1 items-center gap-4 min-w-0", className),
|
|
137
137
|
children
|
|
138
138
|
});
|
|
139
139
|
}
|
|
@@ -145,27 +145,29 @@ function NavbarRight({ children, className }) {
|
|
|
145
145
|
}
|
|
146
146
|
function NavbarCenter({ children, className }) {
|
|
147
147
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
148
|
-
className: require_link.cn("hidden lg:flex flex-1 justify-center items-center gap-4 px-4 min-w-0
|
|
148
|
+
className: require_link.cn("hidden lg:flex flex-1 justify-center items-center gap-4 px-4 min-w-0", className),
|
|
149
149
|
children
|
|
150
150
|
});
|
|
151
151
|
}
|
|
152
|
-
function NavbarLogo({ src, alt, width = 24, height = 24, className, href = "/" }) {
|
|
152
|
+
function NavbarLogo({ src, alt, width = 24, height = 24, className, logoClassName, href = "/" }) {
|
|
153
|
+
const config = require_link.useConfig();
|
|
153
154
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_link.Link, {
|
|
154
155
|
href,
|
|
155
156
|
className: require_link.cn("flex items-center gap-2 shrink-0 outline-none", className),
|
|
156
157
|
children: src ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("img", {
|
|
157
|
-
src,
|
|
158
|
+
src: require_link.resolvePublicAssetUrl(src, config.base),
|
|
158
159
|
alt,
|
|
159
160
|
width,
|
|
160
161
|
height,
|
|
161
162
|
fetchPriority: "high",
|
|
162
|
-
className: "h-6 w-6 object-contain"
|
|
163
|
+
className: require_link.cn("h-6 w-6 object-contain", logoClassName)
|
|
163
164
|
}) : null
|
|
164
165
|
});
|
|
165
166
|
}
|
|
166
|
-
function NavbarTitle({ children, className, href = "/" }) {
|
|
167
|
+
function NavbarTitle({ children, className, linkClassName, href = "/" }) {
|
|
167
168
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_link.Link, {
|
|
168
169
|
href,
|
|
170
|
+
className: require_link.cn(linkClassName),
|
|
169
171
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
170
172
|
className: require_link.cn("text-lg font-bold tracking-tight hidden sm:inline-block", className),
|
|
171
173
|
children
|
|
@@ -178,45 +180,50 @@ function NavbarLinks({ children, className }) {
|
|
|
178
180
|
children
|
|
179
181
|
});
|
|
180
182
|
}
|
|
181
|
-
function NavbarLink({ label, href, to, className }) {
|
|
183
|
+
function NavbarLink({ label, href, to, className, iconClassName }) {
|
|
182
184
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_link.Link, {
|
|
183
185
|
href,
|
|
184
186
|
target: to === "external" ? "_blank" : void 0,
|
|
185
187
|
className: require_link.cn("transition-all outline-none", className),
|
|
186
188
|
children: [label, to === "external" && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
187
|
-
className: "ml-1 inline-block",
|
|
189
|
+
className: require_link.cn("ml-1 inline-block", iconClassName),
|
|
188
190
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_link.ExternalLink, { size: 12 })
|
|
189
191
|
})]
|
|
190
192
|
});
|
|
191
193
|
}
|
|
192
|
-
function NavbarDropdown({ label, className, children }) {
|
|
193
|
-
const [
|
|
194
|
+
function NavbarDropdown({ label, className, triggerClassName, iconClassName, panelClassName, menuClassName, icon, open, onOpenChange, children }) {
|
|
195
|
+
const [internalOpen, setInternalOpen] = (0, react.useState)(false);
|
|
196
|
+
const isOpen = open ?? internalOpen;
|
|
197
|
+
const setOpen = (next) => {
|
|
198
|
+
setInternalOpen(next);
|
|
199
|
+
onOpenChange?.(next);
|
|
200
|
+
};
|
|
194
201
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
195
202
|
className: require_link.cn("relative", className),
|
|
196
|
-
onMouseEnter: () =>
|
|
197
|
-
|
|
198
|
-
},
|
|
199
|
-
onMouseLeave: () => {
|
|
200
|
-
setIsOpen(false);
|
|
201
|
-
},
|
|
203
|
+
onMouseEnter: () => setOpen(true),
|
|
204
|
+
onMouseLeave: () => setOpen(false),
|
|
202
205
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
203
|
-
className: require_link.cn("flex items-center gap-1 outline-none
|
|
204
|
-
children: [label, /* @__PURE__ */ (0, react_jsx_runtime.jsx)("
|
|
205
|
-
className: require_link.cn("
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
206
|
+
className: require_link.cn("flex items-center gap-1 outline-none select-none cursor-pointer", triggerClassName),
|
|
207
|
+
children: [label, /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
208
|
+
className: require_link.cn("shrink-0", iconClassName),
|
|
209
|
+
children: icon ?? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("svg", {
|
|
210
|
+
className: require_link.cn("size-6 transition-transform", isOpen && "rotate-180"),
|
|
211
|
+
fill: "none",
|
|
212
|
+
viewBox: "0 0 24 24",
|
|
213
|
+
stroke: "currentColor",
|
|
214
|
+
"aria-hidden": "true",
|
|
215
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
|
|
216
|
+
strokeLinecap: "round",
|
|
217
|
+
strokeLinejoin: "round",
|
|
218
|
+
strokeWidth: 2,
|
|
219
|
+
d: "M19 9l-7 7-7-7"
|
|
220
|
+
})
|
|
214
221
|
})
|
|
215
222
|
})]
|
|
216
223
|
}), isOpen && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
217
|
-
className: "absolute top-full left-0 pt-1 z-
|
|
224
|
+
className: require_link.cn("absolute top-full left-0 pt-1 z-9999", panelClassName),
|
|
218
225
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
219
|
-
className: "min-w-[180px] p-1 bg-surface border border-subtle rounded-md shadow-lg",
|
|
226
|
+
className: require_link.cn("min-w-[180px] p-1 bg-surface border border-subtle rounded-md shadow-lg", menuClassName),
|
|
220
227
|
children
|
|
221
228
|
})
|
|
222
229
|
})]
|
|
@@ -244,7 +251,7 @@ function NavbarSearchTriggerMobile({ className, onPress, children }) {
|
|
|
244
251
|
children
|
|
245
252
|
});
|
|
246
253
|
}
|
|
247
|
-
function NavbarSearchTriggerKbd({ className }) {
|
|
254
|
+
function NavbarSearchTriggerKbd({ className, kbdClassName }) {
|
|
248
255
|
const [mounted, setMounted] = (0, react.useState)(false);
|
|
249
256
|
const isMac = mounted && /Mac|iPod|iPhone|iPad/.test(navigator.platform);
|
|
250
257
|
(0, react.useEffect)(() => {
|
|
@@ -253,10 +260,10 @@ function NavbarSearchTriggerKbd({ className }) {
|
|
|
253
260
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
254
261
|
className: require_link.cn("hidden sm:flex items-center gap-1 pointer-events-none select-none", className),
|
|
255
262
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("kbd", {
|
|
256
|
-
className: "flex items-center justify-center font-mono text-[10px]",
|
|
263
|
+
className: require_link.cn("flex items-center justify-center font-mono text-[10px]", kbdClassName),
|
|
257
264
|
children: isMac ? "⌘" : "Ctrl"
|
|
258
265
|
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("kbd", {
|
|
259
|
-
className: "flex items-center justify-center font-mono text-[10px]",
|
|
266
|
+
className: require_link.cn("flex items-center justify-center font-mono text-[10px]", kbdClassName),
|
|
260
267
|
children: "K"
|
|
261
268
|
})]
|
|
262
269
|
});
|
|
@@ -304,26 +311,26 @@ function NavbarMore({ onPress, className }) {
|
|
|
304
311
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_link.MoreVertical, { size: 20 })
|
|
305
312
|
});
|
|
306
313
|
}
|
|
307
|
-
function NavbarMobileMenu({ isOpen, onClose, children, className }) {
|
|
314
|
+
function NavbarMobileMenu({ isOpen, onClose, children, className, overlayClassName, modalClassName, dialogClassName, closeRowClassName, closeButtonClassName, navClassName }) {
|
|
308
315
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_aria_components.ModalOverlay, {
|
|
309
316
|
isOpen,
|
|
310
317
|
onOpenChange: (open) => !open && onClose(),
|
|
311
318
|
isDismissable: true,
|
|
312
|
-
className: require_link.cn("fixed inset-0 z-60 md:hidden transition-all duration-100", className),
|
|
319
|
+
className: require_link.cn("fixed inset-0 z-60 md:hidden transition-all duration-100", className, overlayClassName),
|
|
313
320
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_aria_components.Modal, {
|
|
314
|
-
className: "fixed inset-0 outline-none",
|
|
321
|
+
className: require_link.cn("fixed inset-0 outline-none", modalClassName),
|
|
315
322
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_aria_components.Dialog, {
|
|
316
|
-
className: "relative h-full outline-none flex flex-col p-6 pt-[calc(1.5rem+env(safe-area-inset-top,0px))] pb-[calc(1.5rem+env(safe-area-inset-bottom,0px))] px-[calc(1.5rem+env(safe-area-inset-left,0px))]",
|
|
323
|
+
className: require_link.cn("relative h-full outline-none flex flex-col p-6 pt-[calc(1.5rem+env(safe-area-inset-top,0px))] pb-[calc(1.5rem+env(safe-area-inset-bottom,0px))] px-[calc(1.5rem+env(safe-area-inset-left,0px))]", dialogClassName),
|
|
317
324
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
318
|
-
className: "flex items-center justify-between mb-6",
|
|
325
|
+
className: require_link.cn("flex items-center justify-between mb-6", closeRowClassName),
|
|
319
326
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_aria_components.Button, {
|
|
320
327
|
onPress: onClose,
|
|
321
|
-
className: "flex items-center justify-center outline-none cursor-pointer text-muted hover:text-body transition-colors",
|
|
328
|
+
className: require_link.cn("flex items-center justify-center outline-none cursor-pointer text-muted hover:text-body transition-colors", closeButtonClassName),
|
|
322
329
|
"aria-label": "Close menu",
|
|
323
330
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_link.X, { size: 24 })
|
|
324
331
|
})]
|
|
325
332
|
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("nav", {
|
|
326
|
-
className: "flex-1 overflow-y-auto flex flex-col gap-4",
|
|
333
|
+
className: require_link.cn("flex-1 overflow-y-auto flex flex-col gap-4", navClassName),
|
|
327
334
|
children
|
|
328
335
|
})]
|
|
329
336
|
})
|
|
@@ -339,6 +346,45 @@ function NavbarMobileLink({ label, href, to, onPress, className }) {
|
|
|
339
346
|
children: label
|
|
340
347
|
});
|
|
341
348
|
}
|
|
349
|
+
function NavbarMobileLinkItem({ link, onClose, depth = 0, className, groupClassName, labelClassName, listClassName, renderItem }) {
|
|
350
|
+
const localizedHref = require_link.useLocalizedTo(link.href || "");
|
|
351
|
+
const { pathname } = require_router.useLocation();
|
|
352
|
+
const active = pathname === localizedHref;
|
|
353
|
+
const hasItems = link.items && link.items.length > 0;
|
|
354
|
+
const custom = renderItem?.({
|
|
355
|
+
link,
|
|
356
|
+
active,
|
|
357
|
+
depth,
|
|
358
|
+
localizedHref,
|
|
359
|
+
onClose
|
|
360
|
+
});
|
|
361
|
+
if (custom !== void 0 && custom !== null) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_jsx_runtime.Fragment, { children: custom });
|
|
362
|
+
if (hasItems) return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
363
|
+
className: require_link.cn("flex flex-col gap-1", groupClassName, className),
|
|
364
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
365
|
+
className: require_link.cn("px-3 py-2 text-sm transition-all", active ? "text-body" : "text-muted/80 hover:text-body", labelClassName),
|
|
366
|
+
children: link.label
|
|
367
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
368
|
+
className: require_link.cn("flex flex-col gap-1 pl-4", listClassName),
|
|
369
|
+
children: link.items?.map((item) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(NavbarMobileLinkItem, {
|
|
370
|
+
link: item,
|
|
371
|
+
onClose,
|
|
372
|
+
depth: depth + 1,
|
|
373
|
+
className,
|
|
374
|
+
groupClassName,
|
|
375
|
+
labelClassName,
|
|
376
|
+
listClassName,
|
|
377
|
+
renderItem
|
|
378
|
+
}, item.href))
|
|
379
|
+
})]
|
|
380
|
+
});
|
|
381
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(NavbarMobileLink, {
|
|
382
|
+
label: link.label,
|
|
383
|
+
href: localizedHref,
|
|
384
|
+
onPress: onClose,
|
|
385
|
+
className: require_link.cn("transition-all", active ? "text-body" : "text-muted/80 hover:text-body", className)
|
|
386
|
+
});
|
|
387
|
+
}
|
|
342
388
|
Navbar.Root = Navbar;
|
|
343
389
|
Navbar.Left = NavbarLeft;
|
|
344
390
|
Navbar.Right = NavbarRight;
|
|
@@ -357,6 +403,7 @@ Navbar.Content = NavbarContent;
|
|
|
357
403
|
Navbar.More = NavbarMore;
|
|
358
404
|
Navbar.MobileMenu = NavbarMobileMenu;
|
|
359
405
|
Navbar.MobileLink = NavbarMobileLink;
|
|
406
|
+
Navbar.MobileLinkItem = NavbarMobileLinkItem;
|
|
360
407
|
|
|
361
408
|
//#endregion
|
|
362
409
|
//#region src/client/components/primitives/search-dialog.tsx
|
|
@@ -419,14 +466,13 @@ function SearchDialogClearButton({ className, ...props }) {
|
|
|
419
466
|
/**
|
|
420
467
|
* Pure, unstyled Autocomplete container (maps to RAC.Autocomplete)
|
|
421
468
|
*/
|
|
422
|
-
function SearchDialogAutocomplete({ children, className,
|
|
469
|
+
function SearchDialogAutocomplete({ children, className, innerClassName, ...props }) {
|
|
423
470
|
const Autocomplete = react_aria_components.Autocomplete;
|
|
424
471
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
425
472
|
className: require_link.cn("flex-1 min-h-0", className),
|
|
426
473
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Autocomplete, {
|
|
427
474
|
...props,
|
|
428
|
-
|
|
429
|
-
className: "flex flex-col min-h-0",
|
|
475
|
+
className: require_link.cn("flex flex-col min-h-0", innerClassName),
|
|
430
476
|
children
|
|
431
477
|
})
|
|
432
478
|
});
|
|
@@ -444,23 +490,26 @@ function SearchDialogList({ children, className, ...props }) {
|
|
|
444
490
|
/**
|
|
445
491
|
* Pure, unstyled List Box Item (maps to RAC.ListBoxItem)
|
|
446
492
|
*/
|
|
447
|
-
function SearchDialogItemRoot({ children, className, ...props }) {
|
|
493
|
+
function SearchDialogItemRoot({ children, className, hintClassName, renderHint, ...props }) {
|
|
448
494
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_aria_components.ListBoxItem, {
|
|
449
495
|
...props,
|
|
450
496
|
className: require_link.cn("group flex items-center outline-none cursor-pointer", className),
|
|
451
|
-
children: (itemProps) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [children,
|
|
452
|
-
|
|
497
|
+
children: (itemProps) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [children, renderHint ? renderHint({
|
|
498
|
+
focused: itemProps.isFocused,
|
|
499
|
+
selected: itemProps.isSelected
|
|
500
|
+
}) : itemProps.isFocused || itemProps.isSelected ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
501
|
+
className: require_link.cn("ml-auto opacity-50 flex items-center gap-1", hintClassName),
|
|
453
502
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
454
503
|
className: "text-[10px]",
|
|
455
504
|
children: "Select"
|
|
456
505
|
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_link.CornerDownLeft, { size: 10 })]
|
|
457
|
-
})] })
|
|
506
|
+
}) : null] })
|
|
458
507
|
});
|
|
459
508
|
}
|
|
460
|
-
function SearchDialogItemIcon({ isHeading, className }) {
|
|
509
|
+
function SearchDialogItemIcon({ isHeading, className, icon }) {
|
|
461
510
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
462
511
|
className: require_link.cn("shrink-0", className),
|
|
463
|
-
children: isHeading ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_link.Hash, { size: 18 }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_link.FileText, { size: 18 })
|
|
512
|
+
children: icon ?? (isHeading ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_link.Hash, { size: 18 }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_link.FileText, { size: 18 }))
|
|
464
513
|
});
|
|
465
514
|
}
|
|
466
515
|
function SearchDialogItemTitle({ children, className }) {
|
package/dist/server/index.cjs
CHANGED
|
@@ -3,4 +3,4 @@
|
|
|
3
3
|
* Copyright (c) 2026 Jesus Alcala
|
|
4
4
|
* Licensed under the MIT License.
|
|
5
5
|
*/
|
|
6
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../adapters-
|
|
6
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../adapters-Cp1Maurn.cjs`);exports.handleAwsFeedback=e.t,exports.handleNetlifyFeedback=e.r,exports.handleVercelFeedback=e.i,exports.handleWebFeedback=e.n;
|
package/dist/server/index.d.mts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
|
|
2
|
-
import { i as handleVercelFeedback, n as handleWebFeedback, r as handleNetlifyFeedback, t as handleAwsFeedback } from "../index-
|
|
2
|
+
import { i as handleVercelFeedback, n as handleWebFeedback, r as handleNetlifyFeedback, t as handleAwsFeedback } from "../index-lFoyzCXy.mjs";
|
|
3
3
|
export { handleAwsFeedback, handleNetlifyFeedback, handleVercelFeedback, handleWebFeedback };
|
package/dist/server/index.mjs
CHANGED
|
@@ -3,4 +3,4 @@
|
|
|
3
3
|
* Copyright (c) 2026 Jesus Alcala
|
|
4
4
|
* Licensed under the MIT License.
|
|
5
5
|
*/
|
|
6
|
-
import{i as e,n as t,r as n,t as r}from"../adapters-
|
|
6
|
+
import{i as e,n as t,r as n,t as r}from"../adapters-BmB4TKCc.mjs";export{r as handleAwsFeedback,n as handleNetlifyFeedback,e as handleVercelFeedback,t as handleWebFeedback};
|
|
@@ -0,0 +1,11 @@
|
|
|
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`);let t=require(`node:path`);t=e.r(t);let n=require(`node:fs`);n=e.r(n);let r=require(`@bdocs/dui`),i=require(`node:module`),a=require(`node:url`),o=require(`node:os`);o=e.r(o);const s=[{pos:0,color:`#95c0ff`},{pos:.55,color:`#3d8bfa`},{pos:1,color:`#2769db`}],c=`#3d8bfa`,l=c;function u(e){if(!r.isColorSupported||(0,r.isPlainMode)())return e;let t=(0,r.gradient)(e.length,[...s]);return[...e].map((e,n)=>(0,r.colorize)(e,t[n],`fg`)).join(``)}function d(e,t=!1){return(0,r.badge)({label:e,colors:{text:`#ffffff`,bg:t?`#2769db`:c}})}function f(){return r.isColorSupported&&!(0,r.isPlainMode)()?(0,r.colorize)(`●`,c,`fg`):`●`}function p(e){return e<1e3?`${Math.round(e)}ms`:`${(e/1e3).toFixed(1)}s`}function m(e){return e.replace(/([A-Z]+)([A-Z][a-z])/g,`$1 $2`).replace(/([a-z0-9])([A-Z])/g,`$1 $2`).split(` `).map((e,t)=>t===0||/^[A-Z0-9]{2,}$/.test(e)?e:e.toLowerCase()).join(` `)}function h(){let e=(0,a.fileURLToPath)(require(`url`).pathToFileURL(__filename).href),r=t.default.dirname(e);for(let e=0;e<8;e++){try{let e=t.default.join(r,`package.json`),i=JSON.parse(n.default.readFileSync(e,`utf-8`));if(i.name===`boltdocs`&&typeof i.version==`string`)return i.version}catch{}r=t.default.dirname(r)}return``}const g=h();function _(e,t,n,i={}){let a=n?r.colors.dim(n):r.colors.gray(`use --host to expose`),o=e=>r.colors.dim(e.padEnd(9)),s=f(),m=[`${s} ${o(`Local`)}${(0,r.colorize)(t,c,`fg`)}`,`${s} ${o(`Network`)}${a}`];e===`dev`&&m.push(``,`${(0,r.kbd)({keys:[`h`,`Enter`]})} ${r.colors.dim(`show help`)}`);let h=i.readyIn===void 0?``:` ${r.colors.dim(`ready in ${p(i.readyIn)}`)}`,_=e===`dev`?`DEV`:`PREVIEW`,v=g?` ${d(`v${g}`,e===`preview`)}`:``;return`
|
|
7
|
+
${r.colors.bold(`⚡`)} ${u(`boltdocs`)}${v} ${r.colors.dim(`—`)} ${r.colors.bold(e===`dev`?`dev server`:`preview server`)}${h}\n\n`+(0,r.round)(m,{title:d(_,e===`preview`),colors:{border:l}})+`
|
|
8
|
+
`}function v(e,t,n={}){return _(`dev`,e,t,n)}function y(e,t,n={}){return _(`preview`,e,t,n)}function b(e,t){let n=e=>r.colors.dim(e.padEnd(9)),i=f(),a=[`${i} ${n(`Current`)}${r.colors.red(e)} ${r.colors.gray(`→`)} ${r.colors.green(t)}`,``,`${i} ${n(`Install`)}${r.colors.bold(`npm install boltdocs@latest`)}`];return`
|
|
9
|
+
${r.colors.bold(`⚡`)} ${u(`boltdocs`)} ${r.colors.dim(`—`)} ${r.colors.bold(`update available`)}\n\n`+(0,r.round)(a,{title:d(`UPDATE`,!0),colors:{border:l}})+`
|
|
10
|
+
`}function x(e){let t=p(e.totalMs),n=g?` ${d(`v${g}`)}`:``,i=[];if(i.push(` ${r.colors.bold(`⚡`)} ${u(`boltdocs`)}${n} ${r.colors.dim(`—`)} ${r.colors.bold(`build completed`)} ${r.colors.dim(`in ${t}`)}`),e.steps.length>0){let t=e.steps.map(e=>m(e.name)),n=Math.max(...t.map(e=>e.length))+2;i.push(``),e.steps.forEach((e,a)=>{let o=e.success?r.colors.green(`✔`):r.colors.red(`✘`),s=e.duration===void 0?``:r.colors.dim(p(e.duration)),c=e.details?r.colors.dim(` · ${e.details}`):``;i.push(` ${o} ${t[a].padEnd(n)}${s}${c}`)})}let a=[];return e.pages!==void 0&&a.push(`${e.pages} ${e.pages===1?`page`:`pages`}`),e.jsSize&&a.push(`JS ${e.jsSize}`),e.cssSize&&a.push(`CSS ${e.cssSize}`),e.outDir&&a.push(`→ ${e.outDir}`),a.length>0&&(i.push(``),i.push(` ${(0,r.colorize)(`Build summary`,c,`fg`)} ${r.colors.dim(`─`.repeat(17))}`),i.push(` ${a.join(r.colors.dim(` · `))}`)),`\n${i.join(`
|
|
11
|
+
`)}\n`}const S=(0,i.createRequire)(require(`url`).pathToFileURL(__filename).href);function C(e,t){let n=e.split(`-`)[0].split(`.`).map(Number),r=t.split(`-`)[0].split(`.`).map(Number);for(let e=0;e<Math.max(n.length,r.length);e++){let t=n[e]??0,i=r[e]??0;if(Number.isNaN(t)||Number.isNaN(i))return!1;if(t!==i)return t>i}return!1}async function w(){try{let e=new AbortController,t=setTimeout(()=>e.abort(),2e3),n=await fetch(`https://registry.npmjs.org/boltdocs/latest`,{signal:e.signal,headers:{Accept:`application/vnd.npm.install-v1+json`}});return clearTimeout(t),n.ok?(await n.json()).version??null:null}catch{return null}}async function T(){try{let e=(0,a.fileURLToPath)(require(`url`).pathToFileURL(__filename).href),r=t.default.dirname(e);for(let e=0;e<5;e++){let e=t.default.join(r,`package.json`);if(n.default.existsSync(e)){let t=JSON.parse(n.default.readFileSync(e,`utf-8`));if(t.name===`boltdocs`)return t.version}r=t.default.dirname(r)}}catch{}try{return S(`boltdocs/package.json`).version}catch{return`0.0.0`}}async function E(){let e=``;try{e=t.default.join(o.default.homedir(),`.boltdocs`,`update-check.json`)}catch{return}let r=0;try{if(n.default.existsSync(e)){let t=JSON.parse(n.default.readFileSync(e,`utf-8`));r=Number(t.lastCheck)||0}}catch{}let i=Date.now();if(i-r<864e5)return;try{n.default.mkdirSync(t.default.dirname(e),{recursive:!0}),n.default.writeFileSync(e,JSON.stringify({lastCheck:i}),`utf-8`)}catch{}let a=await T();if(a===`0.0.0`)return;let s=await w();s&&C(s,a)&&console.log(b(a,s))}Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return E}});
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Boltdocs - https://boltdocs.vercel.app
|
|
3
|
+
* Copyright (c) 2026 Jesus Alcala
|
|
4
|
+
* Licensed under the MIT License.
|
|
5
|
+
*/
|
|
6
|
+
import{createRequire as e}from"node:module";import t from"node:path";import{fileURLToPath as n}from"node:url";import r from"node:fs";import{badge as i,colorize as a,colors as o,gradient as s,isColorSupported as c,isPlainMode as l,kbd as u,round as d}from"@bdocs/dui";import f from"node:os";const p=[{pos:0,color:`#95c0ff`},{pos:.55,color:`#3d8bfa`},{pos:1,color:`#2769db`}],m=`#3d8bfa`,h=m;function g(e){if(!c||l())return e;let t=s(e.length,[...p]);return[...e].map((e,n)=>a(e,t[n],`fg`)).join(``)}function _(e,t=!1){return i({label:e,colors:{text:`#ffffff`,bg:t?`#2769db`:m}})}function v(){return c&&!l()?a(`●`,m,`fg`):`●`}function y(e){return e<1e3?`${Math.round(e)}ms`:`${(e/1e3).toFixed(1)}s`}function b(e){return e.replace(/([A-Z]+)([A-Z][a-z])/g,`$1 $2`).replace(/([a-z0-9])([A-Z])/g,`$1 $2`).split(` `).map((e,t)=>t===0||/^[A-Z0-9]{2,}$/.test(e)?e:e.toLowerCase()).join(` `)}function x(){let e=n(import.meta.url),i=t.dirname(e);for(let e=0;e<8;e++){try{let e=t.join(i,`package.json`),n=JSON.parse(r.readFileSync(e,`utf-8`));if(n.name===`boltdocs`&&typeof n.version==`string`)return n.version}catch{}i=t.dirname(i)}return``}const S=x();function C(e,t,n,r={}){let i=n?o.dim(n):o.gray(`use --host to expose`),s=e=>o.dim(e.padEnd(9)),c=v(),l=[`${c} ${s(`Local`)}${a(t,m,`fg`)}`,`${c} ${s(`Network`)}${i}`];e===`dev`&&l.push(``,`${u({keys:[`h`,`Enter`]})} ${o.dim(`show help`)}`);let f=r.readyIn===void 0?``:` ${o.dim(`ready in ${y(r.readyIn)}`)}`,p=e===`dev`?`DEV`:`PREVIEW`,b=S?` ${_(`v${S}`,e===`preview`)}`:``;return`
|
|
7
|
+
${o.bold(`⚡`)} ${g(`boltdocs`)}${b} ${o.dim(`—`)} ${o.bold(e===`dev`?`dev server`:`preview server`)}${f}\n\n`+d(l,{title:_(p,e===`preview`),colors:{border:h}})+`
|
|
8
|
+
`}function w(e,t,n={}){return C(`dev`,e,t,n)}function T(e,t,n={}){return C(`preview`,e,t,n)}function E(e,t){let n=e=>o.dim(e.padEnd(9)),r=v(),i=[`${r} ${n(`Current`)}${o.red(e)} ${o.gray(`→`)} ${o.green(t)}`,``,`${r} ${n(`Install`)}${o.bold(`npm install boltdocs@latest`)}`];return`
|
|
9
|
+
${o.bold(`⚡`)} ${g(`boltdocs`)} ${o.dim(`—`)} ${o.bold(`update available`)}\n\n`+d(i,{title:_(`UPDATE`,!0),colors:{border:h}})+`
|
|
10
|
+
`}function D(e){let t=y(e.totalMs),n=S?` ${_(`v${S}`)}`:``,r=[];if(r.push(` ${o.bold(`⚡`)} ${g(`boltdocs`)}${n} ${o.dim(`—`)} ${o.bold(`build completed`)} ${o.dim(`in ${t}`)}`),e.steps.length>0){let t=e.steps.map(e=>b(e.name)),n=Math.max(...t.map(e=>e.length))+2;r.push(``),e.steps.forEach((e,i)=>{let a=e.success?o.green(`✔`):o.red(`✘`),s=e.duration===void 0?``:o.dim(y(e.duration)),c=e.details?o.dim(` · ${e.details}`):``;r.push(` ${a} ${t[i].padEnd(n)}${s}${c}`)})}let i=[];return e.pages!==void 0&&i.push(`${e.pages} ${e.pages===1?`page`:`pages`}`),e.jsSize&&i.push(`JS ${e.jsSize}`),e.cssSize&&i.push(`CSS ${e.cssSize}`),e.outDir&&i.push(`→ ${e.outDir}`),i.length>0&&(r.push(``),r.push(` ${a(`Build summary`,m,`fg`)} ${o.dim(`─`.repeat(17))}`),r.push(` ${i.join(o.dim(` · `))}`)),`\n${r.join(`
|
|
11
|
+
`)}\n`}const O=e(import.meta.url);function k(e,t){let n=e.split(`-`)[0].split(`.`).map(Number),r=t.split(`-`)[0].split(`.`).map(Number);for(let e=0;e<Math.max(n.length,r.length);e++){let t=n[e]??0,i=r[e]??0;if(Number.isNaN(t)||Number.isNaN(i))return!1;if(t!==i)return t>i}return!1}async function A(){try{let e=new AbortController,t=setTimeout(()=>e.abort(),2e3),n=await fetch(`https://registry.npmjs.org/boltdocs/latest`,{signal:e.signal,headers:{Accept:`application/vnd.npm.install-v1+json`}});return clearTimeout(t),n.ok?(await n.json()).version??null:null}catch{return null}}async function j(){try{let e=n(import.meta.url),i=t.dirname(e);for(let e=0;e<5;e++){let e=t.join(i,`package.json`);if(r.existsSync(e)){let t=JSON.parse(r.readFileSync(e,`utf-8`));if(t.name===`boltdocs`)return t.version}i=t.dirname(i)}}catch{}try{return O(`boltdocs/package.json`).version}catch{return`0.0.0`}}async function M(){let e=``;try{e=t.join(f.homedir(),`.boltdocs`,`update-check.json`)}catch{return}let n=0;try{if(r.existsSync(e)){let t=JSON.parse(r.readFileSync(e,`utf-8`));n=Number(t.lastCheck)||0}}catch{}let i=Date.now();if(i-n<864e5)return;try{r.mkdirSync(t.dirname(e),{recursive:!0}),r.writeFileSync(e,JSON.stringify({lastCheck:i}),`utf-8`)}catch{}let a=await j();if(a===`0.0.0`)return;let o=await A();o&&k(o,a)&&console.log(E(a,o))}export{D as a,T as c,_ as i,S as n,w as o,m as r,g as s,M as t};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Boltdocs - https://boltdocs.vercel.app
|
|
3
|
+
* Copyright (c) 2026 Jesus Alcala
|
|
4
|
+
* Licensed under the MIT License.
|
|
5
|
+
*/
|
|
6
|
+
import{r as e}from"./errors-N-b6Sn2G.mjs";import t from"node:fs";import n from"isomorphic-dompurify";import{z as r}from"zod";import{error as i}from"@bdocs/dui";const a=/^[a-zA-Z0-9\-_/.()[\]]+$/,o=r.looseObject({title:r.string().max(200).optional(),description:r.string().max(500).optional(),permalink:r.string().optional(),sidebarPosition:r.number().optional(),sidebarLabel:r.string().max(100).optional(),sidebarHidden:r.boolean().optional(),hidden:r.boolean().optional(),category:r.string().max(50).optional(),order:r.number().optional(),badge:r.union([r.string().max(50),r.object({text:r.string().max(50),expires:r.string().optional()})]).optional(),icon:r.string().max(50).optional(),date:r.union([r.string(),r.date()]).optional(),lastUpdated:r.union([r.string(),r.date()]).optional(),groupTitle:r.string().max(100).optional(),groupPosition:r.number().optional(),seo:r.record(r.string(),r.any()).optional(),tags:r.array(r.string().max(50)).optional(),author:r.union([r.string().max(100),r.object({name:r.string().max(100),avatar:r.string().optional(),url:r.string().optional(),image:r.string().optional()})]).optional(),draft:r.boolean().optional(),excerpt:r.string().max(500).optional(),coverImage:r.string().nullable().optional()});function s(e){let t=e.trim();if(!t.startsWith(`---`))return{data:{},content:e,rawMatter:``};let n=t.indexOf(`---`,3);if(n===-1||n===3)return{data:{},content:e,rawMatter:``};let r=t.slice(3,n).trim(),i=t.slice(n+3).trim();return u(r)?{data:{},content:i,rawMatter:r}:{data:d(r),content:i,rawMatter:r}}const c=/[\s:[\]{},-]/u;function l(e,t){return t===0||c.test(e[t-1])}function u(e){let t=!1,n=!1;for(let r=0;r<e.length;r++){let i=e[r],a=r>0?e[r-1]:``;i===`'`&&!n&&a!==`\\`?t?l(e,r)||(t=!1):l(e,r)&&(t=!0):i===`"`&&!t&&a!==`\\`&&(n?l(e,r)||(n=!1):l(e,r)&&(n=!0))}return t||n}function d(e){let t=e.split(`
|
|
7
|
+
`),n={},r=0;for(;r<t.length;){let e=t[r],i=e.trim();if(!i||i.startsWith(`#`)){r++;continue}let a=i.indexOf(`:`);if(a!==-1){let o=i.slice(0,a).trim(),s=i.slice(a+1).trim();if(s===``){let i=f(t.slice(r+1),e.search(/\S|$/));i.value===void 0?r++:(n[o]=i.value,r+=i.linesConsumed+1)}else n[o]=p(s),r++}else r++}return n}function f(e,t){if(e.length===0)return{value:void 0,linesConsumed:0};if(e[0].trim().startsWith(`-`)){let n=[],r=0;for(;r<e.length;){let i=e[r],a=i.search(/\S|$/),o=i.trim();if(!o||o.startsWith(`#`)){r++;continue}if(o.startsWith(`-`)){let e=o.slice(1).trim();if(e.includes(`:`)){let t={},r=e.split(/,\s*/);for(let e of r){let n=e.indexOf(`:`);if(n!==-1){let r=e.slice(0,n).trim();t[r]=p(e.slice(n+1).trim())}}n.push(t)}else n.push(p(e))}else if(a>t&&n.length>0){let e=n[n.length-1];if(typeof e==`object`&&e&&!Array.isArray(e)){let t=e,n=o.indexOf(`:`);if(n!==-1){let e=o.slice(0,n).trim();t[e]=p(o.slice(n+1).trim())}}}else break;r++}return{value:n.length>0?n:void 0,linesConsumed:r}}let n={},r=0;for(;r<e.length;){let i=e[r],a=i.search(/\S|$/),o=i.trim();if(!o||o.startsWith(`#`)){r++;continue}if(a<=t)break;let s=o.indexOf(`:`);if(s!==-1){let e=o.slice(0,s).trim();n[e]=p(o.slice(s+1).trim())}r++}return{value:Object.keys(n).length>0?n:void 0,linesConsumed:r}}function p(e){let t=e.trim();if(t===`true`)return!0;if(t===`false`)return!1;if(t===`null`||t===`~`)return null;if(/^-?\d+(\.\d+)?$/.test(t))return Number(t);if(t.startsWith(`"`)&&t.endsWith(`"`)||t.startsWith(`'`)&&t.endsWith(`'`))return t.slice(1,-1);if(t.startsWith(`[`)&&t.endsWith(`]`)){let e=t.slice(1,-1).trim();return e?e.split(/,\s*/).map(e=>p(e.trim())):[]}if(t.startsWith(`{`)&&t.endsWith(`}`)){let e=t.slice(1,-1).trim(),n={},r=e.split(/,\s*/);for(let e of r){let t=e.indexOf(`:`);if(t!==-1){let r=e.slice(0,t).trim();n[r]=p(e.slice(t+1).trim())}}return n}return t}function m(e){return e.replace(/\\/g,`/`)}function h(e){return e.replace(/^\d+\./,``)}function g(e){let t=e.match(/^(\d+)\./);return t?parseInt(t[1],10):void 0}function _(e){return/\.mdx?$/.test(e)}const v=new Map;function y(e){let n=Date.now(),r=v.get(e);if(r&&n-r.ts<2e3)return r.mtime;try{let r=t.statSync(e).mtimeMs;return v.set(e,{mtime:r,ts:n}),r}catch{return 0}}function b(t,n,r){let{data:i,content:a,rawMatter:c}=s(n);if(c&&c.length>10240)throw k(`FRONTMATTER_TOO_LARGE`,`Frontmatter block exceeds size limit`,{size:c.length,file:t}),new e(`Security breach: Frontmatter size exceeds limit of 10240 bytes`);if(!r)return{data:i,content:a};let l=o.safeParse(i),u={...l.success?l.data:{}};return u.title&&=E(u.title).trim(),u.description&&=E(u.description).trim(),{data:u,content:a}}async function x(n,r=!0){let i=``;try{i=await t.promises.readFile(n,`utf-8`);let{data:e,content:a}=b(n,i,r);if(r&&!e.lastUpdated)try{e.lastUpdated=(await t.promises.stat(n)).mtimeMs}catch{e.lastUpdated=0}return{data:e,content:a,raw:i}}catch(t){if(t instanceof e)throw t;return{data:{},content:i,raw:i}}}function S(e){return e.replace(/&/g,`&`).replace(/"/g,`"`).replace(/'/g,`'`).replace(/</g,`<`).replace(/>/g,`>`)}function C(e){return S(e)}function w(e){let t=m(e).split(`/`).map(e=>O(h(e))).join(`/`).replace(/\/$/,``);return t=t.replace(/\.mdx?$/,``),(t===`index`||t===`_index`||t.endsWith(`/index`)||t.endsWith(`/_index`))&&(t=t.replace(/_?index$/,``)),t.startsWith(`/`)||(t=`/`+t),t.length>1&&t.endsWith(`/`)&&(t=t.slice(0,-1)),t}function T(e){return n.sanitize(e,{ALLOWED_TAGS:`b.i.em.strong.a.p.br.code.pre.span.div.h1.h2.h3.h4.h5.h6.ul.ol.li.table.thead.tbody.tr.th.td.blockquote.hr`.split(`.`),ALLOWED_ATTR:[`href`,`title`,`target`,`class`,`id`,`src`,`alt`,`width`,`height`],FORCE_BODY:!0})}n.addHook(`afterSanitizeAttributes`,e=>{if(e.hasAttribute(`href`)){let t=e.getAttribute(`href`)?.toLowerCase()||``;(t.startsWith(`javascript:`)||t.startsWith(`data:`)||t.startsWith(`vbscript:`))&&e.removeAttribute(`href`)}if(e.hasAttribute(`src`)){let t=e.getAttribute(`src`)?.toLowerCase()||``;(t.startsWith(`javascript:`)||t.startsWith(`data:`)||t.startsWith(`vbscript:`))&&e.removeAttribute(`src`)}});function E(e){return e?n.sanitize(e,{ALLOWED_TAGS:[]}).replace(/\s+/g,` `).trim():``}function D(e){return e.charAt(0).toUpperCase()+e.slice(1)}function O(e){return e.replace(/[^a-zA-Z0-9\-_/.]/g,``).split(`/`).filter(e=>e!==`..`&&e!==`.`).map(e=>e.replace(/\.\.+/g,`.`)).join(`/`)}function k(e,t,n={}){let r=new Date().toISOString(),a={...n};for(let e in a)typeof a[e]==`string`&&a[e].includes(`:`)&&(a[e]=a[e].split(/[\\/]/).pop()||a[e]);i(`[SECURITY][${r}] TYPE: ${e} | MESSAGE: ${t} | DETAILS: ${JSON.stringify(a)}`)}function A(){let e=process.env.NODE_ENV!==`production`,t=process.env.BOLTDOCS_CACHE_COMPRESS===void 0?!e:process.env.BOLTDOCS_CACHE_COMPRESS!==`0`;return{dir:process.env.BOLTDOCS_CACHE_DIR||`.boltdocs/cache`,noCache:process.env.BOLTDOCS_NO_CACHE===`1`,lruLimit:parseInt(process.env.BOLTDOCS_CACHE_LRU_LIMIT||`2000`,10),lruTTL:parseInt(process.env.BOLTDOCS_CACHE_LRU_TTL||`14400000`,10),compress:t}}export{a as _,w as a,_ as c,x as d,O as f,o as g,h,g as i,k as l,E as m,S as n,A as o,T as p,C as r,y as s,D as t,m as u};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Boltdocs - https://boltdocs.vercel.app
|
|
3
|
+
* Copyright (c) 2026 Jesus Alcala
|
|
4
|
+
* Licensed under the MIT License.
|
|
5
|
+
*/
|
|
6
|
+
const e=require(`./chunk-D1Md3oWO.cjs`),t=require(`./errors-vKw8CkiX.cjs`);let n=require(`node:fs`);n=e.r(n);let r=require(`isomorphic-dompurify`);r=e.r(r);let i=require(`zod`),a=require(`@bdocs/dui`);const o=/^[a-zA-Z0-9\-_/.()[\]]+$/,s=i.z.looseObject({title:i.z.string().max(200).optional(),description:i.z.string().max(500).optional(),permalink:i.z.string().optional(),sidebarPosition:i.z.number().optional(),sidebarLabel:i.z.string().max(100).optional(),sidebarHidden:i.z.boolean().optional(),hidden:i.z.boolean().optional(),category:i.z.string().max(50).optional(),order:i.z.number().optional(),badge:i.z.union([i.z.string().max(50),i.z.object({text:i.z.string().max(50),expires:i.z.string().optional()})]).optional(),icon:i.z.string().max(50).optional(),date:i.z.union([i.z.string(),i.z.date()]).optional(),lastUpdated:i.z.union([i.z.string(),i.z.date()]).optional(),groupTitle:i.z.string().max(100).optional(),groupPosition:i.z.number().optional(),seo:i.z.record(i.z.string(),i.z.any()).optional(),tags:i.z.array(i.z.string().max(50)).optional(),author:i.z.union([i.z.string().max(100),i.z.object({name:i.z.string().max(100),avatar:i.z.string().optional(),url:i.z.string().optional(),image:i.z.string().optional()})]).optional(),draft:i.z.boolean().optional(),excerpt:i.z.string().max(500).optional(),coverImage:i.z.string().nullable().optional()});function c(e){let t=e.trim();if(!t.startsWith(`---`))return{data:{},content:e,rawMatter:``};let n=t.indexOf(`---`,3);if(n===-1||n===3)return{data:{},content:e,rawMatter:``};let r=t.slice(3,n).trim(),i=t.slice(n+3).trim();return d(r)?{data:{},content:i,rawMatter:r}:{data:f(r),content:i,rawMatter:r}}const l=/[\s:[\]{},-]/u;function u(e,t){return t===0||l.test(e[t-1])}function d(e){let t=!1,n=!1;for(let r=0;r<e.length;r++){let i=e[r],a=r>0?e[r-1]:``;i===`'`&&!n&&a!==`\\`?t?u(e,r)||(t=!1):u(e,r)&&(t=!0):i===`"`&&!t&&a!==`\\`&&(n?u(e,r)||(n=!1):u(e,r)&&(n=!0))}return t||n}function f(e){let t=e.split(`
|
|
7
|
+
`),n={},r=0;for(;r<t.length;){let e=t[r],i=e.trim();if(!i||i.startsWith(`#`)){r++;continue}let a=i.indexOf(`:`);if(a!==-1){let o=i.slice(0,a).trim(),s=i.slice(a+1).trim();if(s===``){let i=p(t.slice(r+1),e.search(/\S|$/));i.value===void 0?r++:(n[o]=i.value,r+=i.linesConsumed+1)}else n[o]=m(s),r++}else r++}return n}function p(e,t){if(e.length===0)return{value:void 0,linesConsumed:0};if(e[0].trim().startsWith(`-`)){let n=[],r=0;for(;r<e.length;){let i=e[r],a=i.search(/\S|$/),o=i.trim();if(!o||o.startsWith(`#`)){r++;continue}if(o.startsWith(`-`)){let e=o.slice(1).trim();if(e.includes(`:`)){let t={},r=e.split(/,\s*/);for(let e of r){let n=e.indexOf(`:`);if(n!==-1){let r=e.slice(0,n).trim();t[r]=m(e.slice(n+1).trim())}}n.push(t)}else n.push(m(e))}else if(a>t&&n.length>0){let e=n[n.length-1];if(typeof e==`object`&&e&&!Array.isArray(e)){let t=e,n=o.indexOf(`:`);if(n!==-1){let e=o.slice(0,n).trim();t[e]=m(o.slice(n+1).trim())}}}else break;r++}return{value:n.length>0?n:void 0,linesConsumed:r}}let n={},r=0;for(;r<e.length;){let i=e[r],a=i.search(/\S|$/),o=i.trim();if(!o||o.startsWith(`#`)){r++;continue}if(a<=t)break;let s=o.indexOf(`:`);if(s!==-1){let e=o.slice(0,s).trim();n[e]=m(o.slice(s+1).trim())}r++}return{value:Object.keys(n).length>0?n:void 0,linesConsumed:r}}function m(e){let t=e.trim();if(t===`true`)return!0;if(t===`false`)return!1;if(t===`null`||t===`~`)return null;if(/^-?\d+(\.\d+)?$/.test(t))return Number(t);if(t.startsWith(`"`)&&t.endsWith(`"`)||t.startsWith(`'`)&&t.endsWith(`'`))return t.slice(1,-1);if(t.startsWith(`[`)&&t.endsWith(`]`)){let e=t.slice(1,-1).trim();return e?e.split(/,\s*/).map(e=>m(e.trim())):[]}if(t.startsWith(`{`)&&t.endsWith(`}`)){let e=t.slice(1,-1).trim(),n={},r=e.split(/,\s*/);for(let e of r){let t=e.indexOf(`:`);if(t!==-1){let r=e.slice(0,t).trim();n[r]=m(e.slice(t+1).trim())}}return n}return t}function h(e){return e.replace(/\\/g,`/`)}function g(e){return e.replace(/^\d+\./,``)}function _(e){let t=e.match(/^(\d+)\./);return t?parseInt(t[1],10):void 0}function v(e){return/\.mdx?$/.test(e)}const y=new Map;function b(e){let t=Date.now(),r=y.get(e);if(r&&t-r.ts<2e3)return r.mtime;try{let r=n.default.statSync(e).mtimeMs;return y.set(e,{mtime:r,ts:t}),r}catch{return 0}}function x(e,n,r){let{data:i,content:a,rawMatter:o}=c(n);if(o&&o.length>10240)throw A(`FRONTMATTER_TOO_LARGE`,`Frontmatter block exceeds size limit`,{size:o.length,file:e}),new t.r(`Security breach: Frontmatter size exceeds limit of 10240 bytes`);if(!r)return{data:i,content:a};let l=s.safeParse(i),u={...l.success?l.data:{}};return u.title&&=D(u.title).trim(),u.description&&=D(u.description).trim(),{data:u,content:a}}async function S(e,r=!0){let i=``;try{i=await n.default.promises.readFile(e,`utf-8`);let{data:t,content:a}=x(e,i,r);if(r&&!t.lastUpdated)try{t.lastUpdated=(await n.default.promises.stat(e)).mtimeMs}catch{t.lastUpdated=0}return{data:t,content:a,raw:i}}catch(e){if(e instanceof t.r)throw e;return{data:{},content:i,raw:i}}}function C(e){return e.replace(/&/g,`&`).replace(/"/g,`"`).replace(/'/g,`'`).replace(/</g,`<`).replace(/>/g,`>`)}function w(e){return C(e)}function T(e){let t=h(e).split(`/`).map(e=>k(g(e))).join(`/`).replace(/\/$/,``);return t=t.replace(/\.mdx?$/,``),(t===`index`||t===`_index`||t.endsWith(`/index`)||t.endsWith(`/_index`))&&(t=t.replace(/_?index$/,``)),t.startsWith(`/`)||(t=`/`+t),t.length>1&&t.endsWith(`/`)&&(t=t.slice(0,-1)),t}function E(e){return r.default.sanitize(e,{ALLOWED_TAGS:`b.i.em.strong.a.p.br.code.pre.span.div.h1.h2.h3.h4.h5.h6.ul.ol.li.table.thead.tbody.tr.th.td.blockquote.hr`.split(`.`),ALLOWED_ATTR:[`href`,`title`,`target`,`class`,`id`,`src`,`alt`,`width`,`height`],FORCE_BODY:!0})}r.default.addHook(`afterSanitizeAttributes`,e=>{if(e.hasAttribute(`href`)){let t=e.getAttribute(`href`)?.toLowerCase()||``;(t.startsWith(`javascript:`)||t.startsWith(`data:`)||t.startsWith(`vbscript:`))&&e.removeAttribute(`href`)}if(e.hasAttribute(`src`)){let t=e.getAttribute(`src`)?.toLowerCase()||``;(t.startsWith(`javascript:`)||t.startsWith(`data:`)||t.startsWith(`vbscript:`))&&e.removeAttribute(`src`)}});function D(e){return e?r.default.sanitize(e,{ALLOWED_TAGS:[]}).replace(/\s+/g,` `).trim():``}function O(e){return e.charAt(0).toUpperCase()+e.slice(1)}function k(e){return e.replace(/[^a-zA-Z0-9\-_/.]/g,``).split(`/`).filter(e=>e!==`..`&&e!==`.`).map(e=>e.replace(/\.\.+/g,`.`)).join(`/`)}function A(e,t,n={}){let r=new Date().toISOString(),i={...n};for(let e in i)typeof i[e]==`string`&&i[e].includes(`:`)&&(i[e]=i[e].split(/[\\/]/).pop()||i[e]);(0,a.error)(`[SECURITY][${r}] TYPE: ${e} | MESSAGE: ${t} | DETAILS: ${JSON.stringify(i)}`)}function j(){let e=process.env.NODE_ENV!==`production`,t=process.env.BOLTDOCS_CACHE_COMPRESS===void 0?!e:process.env.BOLTDOCS_CACHE_COMPRESS!==`0`;return{dir:process.env.BOLTDOCS_CACHE_DIR||`.boltdocs/cache`,noCache:process.env.BOLTDOCS_NO_CACHE===`1`,lruLimit:parseInt(process.env.BOLTDOCS_CACHE_LRU_LIMIT||`2000`,10),lruTTL:parseInt(process.env.BOLTDOCS_CACHE_LRU_TTL||`14400000`,10),compress:t}}Object.defineProperty(exports,`_`,{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,`g`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`h`,{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,`m`,{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,`p`,{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return h}});
|
|
@@ -0,0 +1,30 @@
|
|
|
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-C-l90hFt.cjs`),r=require(`./routes-U9L8psZ9.cjs`);let i=require(`node:path`);i=e.r(i);let a=require(`node:fs`);a=e.r(a);function o(e){return typeof e==`string`?[e]:Array.isArray(e)?e.flatMap(o):e&&typeof e==`object`?Object.values(e).flatMap(o):[]}const s=new Set([`title`,`description`,`permalink`,`sidebarPosition`,`sidebarLabel`,`sidebarHidden`,`hidden`,`category`,`order`,`badge`,`icon`,`date`,`lastUpdated`,`groupTitle`,`groupPosition`,`seo`]);function c(e){let t=[];for(let n of e){let e=``;n.frontmatter&&(e=o(Object.entries(n.frontmatter).filter(([e])=>!s.has(e)).map(([e,t])=>t)).join(` `));let r=(e?`${n._content||``} ${e}`:n._content||``).slice(0,500);if(t.push({id:n.path,title:n.title,content:r,url:n.path,display:n.groupTitle?`${n.groupTitle} > ${n.title}`:n.title,locale:n.locale,version:n.version}),n.headings)for(let e of n.headings)t.push({id:`${n.path}#${e.id}`,title:e.text,content:`${e.text} in ${n.title}`,url:`${n.path}#${e.id}`,display:`${n.title} > ${e.text}`,locale:n.locale,version:n.version})}return t}function l(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||[],_rawContent:e._rawContent||``,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}}function u(e){return{routeCacheContext:e,routeGenerationFingerprint:void 0,directoryMetaCache:null,routesDataMap:new Map,collectionsDataMap:new Map,searchDataMap:new Map}}const d=u();function f(e){return e??d}function p(e){let t=f(e);t.directoryMetaCache=null,t.routeGenerationFingerprint=void 0,t.routeCacheVariant=void 0,t.routesDataMap.clear(),t.collectionsDataMap.clear(),t.searchDataMap.clear()}function m(e,t){return(!t.routeCacheContext||t.routeCacheContext.disposed)&&(t.routeCacheContext=r.s(e),t.routeCacheVariant=void 0,t.routeGenerationFingerprint=void 0,t.routesDataMap.clear(),t.collectionsDataMap.clear(),t.searchDataMap.clear()),t.routeCacheContext}async function h(e,t,n,i){let a=f(n),o=m(e,a),s=r.l(t),c=(i?.fingerprint===s&&o.variants.get(s)===i?i:void 0)??r.c(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);g(a)}function g(e){let t=f(e),n=Array.from(t.routesDataMap.values()),r=c(n);t.searchDataMap.clear();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,collection:e.collection};t.collectionsDataMap.set(e.filePath,n)}}async function _(e,t,n){let i=f(n);m(e,i);let a=r.l(t);(i.routesDataMap.size===0||i.routeGenerationFingerprint!==a)&&(i.routesDataMap.clear(),i.collectionsDataMap.clear(),i.searchDataMap.clear(),await h(e,t,i))}function v(e){let t=f(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 y(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 b(e){return Array.from(f(e).searchDataMap.values()).sort((e,t)=>e.id.localeCompare(t.id))}function x(e){return`export default ${JSON.stringify(e)};`}async function S(e,t,n,i,a){let o=f(n);i&&(o.routeCacheContext=i),a&&(o.routeCacheVariant=a);let s=r.l(t);o.routeGenerationFingerprint!==s&&(o.routesDataMap.clear(),o.collectionsDataMap.clear(),o.searchDataMap.clear());let c=new Map(o.routesDataMap),u=new Map(o.collectionsDataMap),d=new Map(o.searchDataMap);await h(e,t,o);let p={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))&&p.routes.updated.push(l(t))}for(let e of c.keys())o.routesDataMap.has(e)||p.routes.deleted.push(e);for(let[e,t]of o.collectionsDataMap){let n=u.get(e);(!n||JSON.stringify(n)!==JSON.stringify(t))&&p.collections.updated.push(t)}for(let e of u.keys())o.collectionsDataMap.has(e)||p.collections.deleted.push(e);for(let[e,t]of o.searchDataMap){let n=d.get(e);(!n||JSON.stringify(n)!==JSON.stringify(t))&&p.search.updated.push(t)}for(let e of d.keys())o.searchDataMap.has(e)||p.search.deleted.push(e);return p}function C(e,r,o,s,c,u){let d=c?.virtualModuleRegistry??n.h,p=f(u);return{name:`vite-plugin-boltdocs-virtual-modules`,resolveId(e){if(o()?.root||process.cwd(),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.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-`)&&d?.has(t))return e}else if(!e.startsWith(`virtual:boltdocs-`)&&d?.has(e))return`\0`+e;return e.startsWith(`virtual:boltdocs-`)?`\0`+e:e.startsWith(`\0virtual:boltdocs-`)?e:null},async load(c){let u=r(),f=c.startsWith(`\0`)?c.slice(1):c;if(!f.includes(`boltdocs-entry.tsx`)&&!f.includes(`boltdocs-client.mjs`)&&!f.startsWith(`virtual:boltdocs-`)&&d?.has(f)){let e=d?.get(f);if(!e)return null;try{let t=await e.loader();if(typeof t!=`string`)throw Error(`[boltdocs] Plugin virtual module '${f}' loader must return a string source code, got ${typeof t}.`);return t}catch(e){throw Error(`[boltdocs] Plugin virtual module '${f}' failed to load: ${e instanceof Error?e.message:String(e)}`)}}if(c.includes(`boltdocs-entry.tsx`)||c===`\0virtual:boltdocs-entry`){let t=o();return n.g({...e,ssr:!!t?.build?.ssr,useCompiledPages:t?.command===`build`},u)}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 m=c.replace(`\0virtual:boltdocs-`,``).replace(/\.tsx?$/,``);if(m===`routes`)return await _(s,u,p),y(p.routesDataMap,l);if(m===`collections`)return await _(s,u,p),x(v(p));if(m===`config`){await _(s,u,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=u?.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:u?.base,theme:u?.theme,i18n:u?.i18n,versions:u?.versions,siteUrl:u?.siteUrl,integrations:u?.integrations,collections:r,seo:u?.seo,experimental:u?.experimental,plugins:u?.plugins?.map(e=>({name:e.name})),directoryMeta:e};return`export default ${JSON.stringify(i,null,2)};`}if(m===`entry`){let t=o();return n.g({...e,ssr:!!t?.build?.ssr,useCompiledPages:t?.command===`build`},u)}if(m===`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(u?.plugins)for(let e of u.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(`
|
|
7
|
+
`),l=o.map(([e],t)=>`${JSON.stringify(e)}: _pluginCompMod_${t}[${JSON.stringify(e)}] || _pluginCompMod_${t}["default"] || _pluginCompMod_${t}`).join(`,
|
|
8
|
+
`);if(n){let e=t.u(n);return`${c}
|
|
9
|
+
import * as components from '${e}';
|
|
10
|
+
const userMdxComponents = components.default || components;
|
|
11
|
+
const mdxComponents = {
|
|
12
|
+
${l}${l?`,`:``}
|
|
13
|
+
...userMdxComponents,
|
|
14
|
+
};
|
|
15
|
+
export default mdxComponents;
|
|
16
|
+
export * from '${e}';`}return`${c}
|
|
17
|
+
const mdxComponents = {
|
|
18
|
+
${l}
|
|
19
|
+
};
|
|
20
|
+
export default mdxComponents;`}if(m===`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)}';
|
|
21
|
+
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(m===`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(m===`search`)return await _(s,u,p),`export default async function fetchSearchData(options = {}) {
|
|
22
|
+
const base = import.meta.env.BASE_URL || '/';
|
|
23
|
+
const origin = typeof window !== 'undefined' ? window.location.origin : 'http://localhost';
|
|
24
|
+
const basePath = base.endsWith('/') ? base : base + '/';
|
|
25
|
+
const url = new URL('search.json', new URL(basePath, origin));
|
|
26
|
+
if (options.bustCache) url.searchParams.set('t', String(Date.now()));
|
|
27
|
+
const res = await fetch(url, { cache: options.bustCache ? 'no-store' : 'default' });
|
|
28
|
+
if (!res.ok) throw new Error('Failed to fetch search index');
|
|
29
|
+
return res.json();
|
|
30
|
+
}`;if(m===`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=S,exports.createVirtualModuleState=u,exports.createVirtualModulesPlugin=C,exports.getSearchDataExport=b,exports.invalidateDirectoryMetaCache=p;
|
|
@@ -0,0 +1,30 @@
|
|
|
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-wqHNSZum.mjs";import{u as r}from"./utils-8lzafE49.mjs";import{c as i,l as a,s as o,t as s}from"./routes-BL4y79tb.mjs";import c from"node:path";import l from"node:fs";function u(e){return typeof e==`string`?[e]:Array.isArray(e)?e.flatMap(u):e&&typeof e==`object`?Object.values(e).flatMap(u):[]}const d=new Set([`title`,`description`,`permalink`,`sidebarPosition`,`sidebarLabel`,`sidebarHidden`,`hidden`,`category`,`order`,`badge`,`icon`,`date`,`lastUpdated`,`groupTitle`,`groupPosition`,`seo`]);function f(e){let t=[];for(let n of e){let e=``;n.frontmatter&&(e=u(Object.entries(n.frontmatter).filter(([e])=>!d.has(e)).map(([e,t])=>t)).join(` `));let r=(e?`${n._content||``} ${e}`:n._content||``).slice(0,500);if(t.push({id:n.path,title:n.title,content:r,url:n.path,display:n.groupTitle?`${n.groupTitle} > ${n.title}`:n.title,locale:n.locale,version:n.version}),n.headings)for(let e of n.headings)t.push({id:`${n.path}#${e.id}`,title:e.text,content:`${e.text} in ${n.title}`,url:`${n.path}#${e.id}`,display:`${n.title} > ${e.text}`,locale:n.locale,version:n.version})}return t}function p(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||[],_rawContent:e._rawContent||``,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}}function m(e){return{routeCacheContext:e,routeGenerationFingerprint:void 0,directoryMetaCache:null,routesDataMap:new Map,collectionsDataMap:new Map,searchDataMap:new Map}}const h=m();function g(e){return e??h}function _(e){let t=g(e);t.directoryMetaCache=null,t.routeGenerationFingerprint=void 0,t.routeCacheVariant=void 0,t.routesDataMap.clear(),t.collectionsDataMap.clear(),t.searchDataMap.clear()}function v(e,t){return(!t.routeCacheContext||t.routeCacheContext.disposed)&&(t.routeCacheContext=o(e),t.routeCacheVariant=void 0,t.routeGenerationFingerprint=void 0,t.routesDataMap.clear(),t.collectionsDataMap.clear(),t.searchDataMap.clear()),t.routeCacheContext}async function y(e,t,n,r){let o=g(n),c=v(e,o),l=a(t),u=(r?.fingerprint===l&&c.variants.get(l)===r?r:void 0)??i(c,l);o.routeCacheVariant=u,o.routeGenerationFingerprint=l;let d=await s(e,t,void 0,!1,c,u);o.routesDataMap.clear();for(let e of d)o.routesDataMap.set(e.path,e);b(o)}function b(e){let t=g(e),n=Array.from(t.routesDataMap.values()),r=f(n);t.searchDataMap.clear();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,collection:e.collection};t.collectionsDataMap.set(e.filePath,n)}}async function x(e,t,n){let r=g(n);v(e,r);let i=a(t);(r.routesDataMap.size===0||r.routeGenerationFingerprint!==i)&&(r.routesDataMap.clear(),r.collectionsDataMap.clear(),r.searchDataMap.clear(),await y(e,t,r))}function S(e){let t=g(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 C(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 w(e){return Array.from(g(e).searchDataMap.values()).sort((e,t)=>e.id.localeCompare(t.id))}function T(e){return`export default ${JSON.stringify(e)};`}async function E(e,t,n,r,i){let o=g(n);r&&(o.routeCacheContext=r),i&&(o.routeCacheVariant=i);let s=a(t);o.routeGenerationFingerprint!==s&&(o.routesDataMap.clear(),o.collectionsDataMap.clear(),o.searchDataMap.clear());let c=new Map(o.routesDataMap),l=new Map(o.collectionsDataMap),u=new Map(o.searchDataMap);await y(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(p(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 D(i,a,o,s,u,d){let f=u?.virtualModuleRegistry??n,m=g(d);return{name:`vite-plugin-boltdocs-virtual-modules`,resolveId(e){if(o()?.root||process.cwd(),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.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){let u=a(),d=n.startsWith(`\0`)?n.slice(1):n;if(!d.includes(`boltdocs-entry.tsx`)&&!d.includes(`boltdocs-client.mjs`)&&!d.startsWith(`virtual:boltdocs-`)&&f?.has(d)){let e=f?.get(d);if(!e)return null;try{let t=await e.loader();if(typeof t!=`string`)throw Error(`[boltdocs] Plugin virtual module '${d}' loader must return a string source code, got ${typeof t}.`);return t}catch(e){throw Error(`[boltdocs] Plugin virtual module '${d}' failed to load: ${e instanceof Error?e.message:String(e)}`)}}if(n.includes(`boltdocs-entry.tsx`)||n===`\0virtual:boltdocs-entry`){let e=o();return t({...i,ssr:!!e?.build?.ssr,useCompiledPages:e?.command===`build`},u)}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 x(s,u,m),C(m.routesDataMap,p);if(h===`collections`)return await x(s,u,m),T(S(m));if(h===`config`){await x(s,u,m);let e=m.routeCacheVariant?.directoryMeta||{};m.directoryMetaCache=e;let t=[...new Set(Array.from(m.routesDataMap.values()).map(e=>e.collection).filter(e=>!!e))].sort((e,t)=>e.localeCompare(t)),n=u?.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:u?.base,theme:u?.theme,i18n:u?.i18n,versions:u?.versions,siteUrl:u?.siteUrl,integrations:u?.integrations,collections:r,seo:u?.seo,experimental:u?.experimental,plugins:u?.plugins?.map(e=>({name:e.name})),directoryMeta:e};return`export default ${JSON.stringify(i,null,2)};`}if(h===`entry`){let e=o();return t({...i,ssr:!!e?.build?.ssr,useCompiledPages:e?.command===`build`},u)}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(u?.plugins)for(let e of u.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(`
|
|
7
|
+
`),o=i.map(([e],t)=>`${JSON.stringify(e)}: _pluginCompMod_${t}[${JSON.stringify(e)}] || _pluginCompMod_${t}["default"] || _pluginCompMod_${t}`).join(`,
|
|
8
|
+
`);if(t){let e=r(t);return`${a}
|
|
9
|
+
import * as components from '${e}';
|
|
10
|
+
const userMdxComponents = components.default || components;
|
|
11
|
+
const mdxComponents = {
|
|
12
|
+
${o}${o?`,`:``}
|
|
13
|
+
...userMdxComponents,
|
|
14
|
+
};
|
|
15
|
+
export default mdxComponents;
|
|
16
|
+
export * from '${e}';`}return`${a}
|
|
17
|
+
const mdxComponents = {
|
|
18
|
+
${o}
|
|
19
|
+
};
|
|
20
|
+
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)}';
|
|
21
|
+
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 x(s,u,m),`export default async function fetchSearchData(options = {}) {
|
|
22
|
+
const base = import.meta.env.BASE_URL || '/';
|
|
23
|
+
const origin = typeof window !== 'undefined' ? window.location.origin : 'http://localhost';
|
|
24
|
+
const basePath = base.endsWith('/') ? base : base + '/';
|
|
25
|
+
const url = new URL('search.json', new URL(basePath, origin));
|
|
26
|
+
if (options.bustCache) url.searchParams.set('t', String(Date.now()));
|
|
27
|
+
const res = await fetch(url, { cache: options.bustCache ? 'no-store' : 'default' });
|
|
28
|
+
if (!res.ok) throw new Error('Failed to fetch search index');
|
|
29
|
+
return res.json();
|
|
30
|
+
}`;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{E as computeFrontmatterDelta,m as createVirtualModuleState,D as createVirtualModulesPlugin,w as getSearchDataExport,_ as invalidateDirectoryMetaCache};
|