boltdocs 2.5.5 → 2.5.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/bin/boltdocs.js +1 -1
- package/dist/cache-Cr8W2zgZ.cjs +6 -0
- package/dist/cache-DFdakSmR.mjs +6 -0
- package/dist/client/index.d.mts +1276 -861
- package/dist/client/index.d.ts +1276 -861
- package/dist/client/index.js +6 -1
- package/dist/client/index.mjs +6 -1
- package/dist/client/ssr.cjs +6 -0
- package/dist/client/ssr.d.cts +80 -0
- package/dist/client/ssr.d.mts +63 -61
- package/dist/client/ssr.mjs +6 -1
- package/dist/client/theme/neutral.css +388 -0
- package/dist/node/cli-entry.cjs +8 -0
- package/dist/node/cli-entry.d.cts +2 -0
- package/dist/node/cli-entry.d.mts +2 -1
- package/dist/node/cli-entry.mjs +7 -5
- package/dist/node/index.cjs +6 -0
- package/dist/node/index.d.cts +574 -0
- package/dist/node/index.d.mts +385 -378
- package/dist/node/index.mjs +6 -1
- package/dist/node-CWXme96p.mjs +73 -0
- package/dist/node-VYfhzGrh.cjs +73 -0
- package/dist/package-BY8Jd2j4.cjs +6 -0
- package/dist/package-OFZf0s2j.mjs +6 -0
- package/dist/search-dialog-BeNyI_KQ.mjs +6 -0
- package/dist/search-dialog-dYsCAk5S.js +6 -0
- package/dist/use-search-D25n0PrV.mjs +6 -0
- package/dist/use-search-WuzdH1cJ.js +6 -0
- package/package.json +16 -12
- package/src/client/app/index.tsx +15 -12
- package/src/client/components/default-layout.tsx +21 -19
- package/src/client/hooks/use-i18n.ts +1 -1
- package/src/client/hooks/use-routes.ts +1 -1
- package/src/client/hooks/use-version.ts +1 -1
- package/src/client/store/boltdocs-context.tsx +119 -0
- package/CHANGELOG.md +0 -98
- package/dist/cache-3FOEPC2P.mjs +0 -1
- package/dist/chunk-5B5NKOW6.mjs +0 -77
- package/dist/chunk-J2PTDWZM.mjs +0 -1
- package/dist/chunk-TP5KMRD3.mjs +0 -1
- package/dist/chunk-Y4RE5KI7.mjs +0 -1
- package/dist/client/ssr.d.ts +0 -78
- package/dist/client/ssr.js +0 -1
- package/dist/node/cli-entry.d.ts +0 -1
- package/dist/node/cli-entry.js +0 -82
- package/dist/node/index.d.ts +0 -567
- package/dist/node/index.js +0 -77
- package/dist/package-QFIAETHR.mjs +0 -1
- package/dist/search-dialog-O6VLVSOA.mjs +0 -1
- package/src/client/store/use-boltdocs-store.ts +0 -44
- package/src/node/cache.ts +0 -408
- package/src/node/cli/build.ts +0 -53
- package/src/node/cli/dev.ts +0 -22
- package/src/node/cli/doctor.ts +0 -243
- package/src/node/cli/index.ts +0 -9
- package/src/node/cli/ui.ts +0 -54
- package/src/node/cli-entry.ts +0 -24
- package/src/node/config.ts +0 -382
- package/src/node/errors.ts +0 -44
- package/src/node/index.ts +0 -84
- package/src/node/mdx/cache.ts +0 -12
- package/src/node/mdx/highlighter.ts +0 -47
- package/src/node/mdx/index.ts +0 -122
- package/src/node/mdx/rehype-shiki.ts +0 -62
- package/src/node/mdx/remark-code-meta.ts +0 -35
- package/src/node/mdx/remark-shiki.ts +0 -61
- package/src/node/plugin/entry.ts +0 -87
- package/src/node/plugin/html.ts +0 -99
- package/src/node/plugin/index.ts +0 -478
- package/src/node/plugin/types.ts +0 -9
- package/src/node/plugins/index.ts +0 -17
- package/src/node/plugins/plugin-errors.ts +0 -62
- package/src/node/plugins/plugin-lifecycle.ts +0 -117
- package/src/node/plugins/plugin-sandbox.ts +0 -59
- package/src/node/plugins/plugin-store.ts +0 -54
- package/src/node/plugins/plugin-types.ts +0 -107
- package/src/node/plugins/plugin-validator.ts +0 -105
- package/src/node/routes/cache.ts +0 -28
- package/src/node/routes/index.ts +0 -293
- package/src/node/routes/parser.ts +0 -262
- package/src/node/routes/sorter.ts +0 -42
- package/src/node/routes/types.ts +0 -61
- package/src/node/schema/config.ts +0 -195
- package/src/node/schema/frontmatter.ts +0 -17
- package/src/node/search/index.ts +0 -55
- package/src/node/security/constants/index.ts +0 -10
- package/src/node/security/csp.ts +0 -31
- package/src/node/security/headers.ts +0 -27
- package/src/node/ssg/index.ts +0 -205
- package/src/node/ssg/meta.ts +0 -33
- package/src/node/ssg/options.ts +0 -15
- package/src/node/ssg/robots.ts +0 -53
- package/src/node/ssg/sitemap.ts +0 -55
- package/src/node/utils.ts +0 -349
- package/tsconfig.json +0 -26
- package/tsup.config.ts +0 -56
package/src/client/app/index.tsx
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React, { useEffect, useState, useMemo } from 'react'
|
|
2
|
-
import
|
|
2
|
+
import { createRoot } from 'react-dom/client'
|
|
3
3
|
import { BrowserRouter, Routes, Route } from 'react-router-dom'
|
|
4
4
|
import { NotFound } from '@components/ui-base/not-found'
|
|
5
5
|
import { ThemeProvider } from './theme-context'
|
|
@@ -20,7 +20,8 @@ import { mdxComponentsDefault } from './mdx-component'
|
|
|
20
20
|
import virtualCustomComponents from 'virtual:boltdocs-mdx-components'
|
|
21
21
|
import { useRoutes } from '../hooks/use-routes'
|
|
22
22
|
import { useLocation } from 'react-router-dom'
|
|
23
|
-
import { useBoltdocsStore } from '../store/
|
|
23
|
+
import { useBoltdocsStore } from '../store/boltdocs-context'
|
|
24
|
+
import { BoltdocsProvider } from '../store/boltdocs-context'
|
|
24
25
|
|
|
25
26
|
/**
|
|
26
27
|
* Updates the HTML lang and dir attributes based on the current locale configuration.
|
|
@@ -180,15 +181,16 @@ export function AppShell({
|
|
|
180
181
|
const LoadingFallback = allComponents.Loading as React.ComponentType
|
|
181
182
|
|
|
182
183
|
return (
|
|
183
|
-
<
|
|
184
|
-
<
|
|
185
|
-
<
|
|
186
|
-
<
|
|
187
|
-
<
|
|
188
|
-
<
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
184
|
+
<BoltdocsProvider>
|
|
185
|
+
<ThemeProvider>
|
|
186
|
+
<MdxComponentsProvider components={allComponents}>
|
|
187
|
+
<ConfigContext.Provider value={config}>
|
|
188
|
+
<BoltdocsRouterProvider>
|
|
189
|
+
<PreloadProvider routes={routesInfo} modules={modules}>
|
|
190
|
+
<ScrollHandler />
|
|
191
|
+
<StoreSync />
|
|
192
|
+
<I18nUpdater />
|
|
193
|
+
<Routes>
|
|
192
194
|
<Route key="docs-layout" element={<DocsLayout />}>
|
|
193
195
|
{resolvedRoutes.map((route) => (
|
|
194
196
|
<Route
|
|
@@ -274,6 +276,7 @@ export function AppShell({
|
|
|
274
276
|
</ConfigContext.Provider>
|
|
275
277
|
</MdxComponentsProvider>
|
|
276
278
|
</ThemeProvider>
|
|
279
|
+
</BoltdocsProvider>
|
|
277
280
|
)
|
|
278
281
|
}
|
|
279
282
|
|
|
@@ -341,5 +344,5 @@ export function createBoltdocsApp(options: CreateBoltdocsAppOptions) {
|
|
|
341
344
|
// real client-side component tree (components are lazy/dynamic).
|
|
342
345
|
// Clear any SSG placeholder content before mounting.
|
|
343
346
|
container.innerHTML = ''
|
|
344
|
-
|
|
347
|
+
createRoot(container as HTMLElement).render(app)
|
|
345
348
|
}
|
|
@@ -35,7 +35,7 @@ export function DefaultLayout({ children }: LayoutProps) {
|
|
|
35
35
|
const mdxComponents = useMdxComponents()
|
|
36
36
|
const CopyMarkdownComp = (mdxComponents.CopyMarkdown as any) || CopyMarkdown
|
|
37
37
|
|
|
38
|
-
const
|
|
38
|
+
const isDocs = pathname.startsWith('/docs')
|
|
39
39
|
|
|
40
40
|
return (
|
|
41
41
|
<DocsLayout>
|
|
@@ -51,30 +51,32 @@ export function DefaultLayout({ children }: LayoutProps) {
|
|
|
51
51
|
<Navbar />
|
|
52
52
|
|
|
53
53
|
<DocsLayout.Body>
|
|
54
|
-
{
|
|
54
|
+
{isDocs && <Sidebar routes={filteredRoutes} config={config} />}
|
|
55
55
|
|
|
56
56
|
<DocsLayout.Content>
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
<
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
57
|
+
<DocsLayout.ContentMdx>
|
|
58
|
+
{isDocs && (
|
|
59
|
+
<DocsLayout.ContentHeader>
|
|
60
|
+
<Breadcrumbs />
|
|
61
|
+
<CopyMarkdownComp
|
|
62
|
+
mdxRaw={currentRoute?._rawContent}
|
|
63
|
+
route={currentRoute}
|
|
64
|
+
config={config.theme?.copyMarkdown}
|
|
65
|
+
/>
|
|
66
|
+
</DocsLayout.ContentHeader>
|
|
67
|
+
)}
|
|
67
68
|
|
|
68
|
-
|
|
69
|
+
<ErrorBoundary>{children}</ErrorBoundary>
|
|
69
70
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
71
|
+
{isDocs && (
|
|
72
|
+
<DocsLayout.ContentFooter>
|
|
73
|
+
<PageNav />
|
|
74
|
+
</DocsLayout.ContentFooter>
|
|
75
|
+
)}
|
|
76
|
+
</DocsLayout.ContentMdx>
|
|
75
77
|
</DocsLayout.Content>
|
|
76
78
|
|
|
77
|
-
{
|
|
79
|
+
{isDocs && (
|
|
78
80
|
<OnThisPage
|
|
79
81
|
headings={currentRoute?.headings}
|
|
80
82
|
editLink={config.theme?.editLink}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { useNavigate } from 'react-router-dom'
|
|
2
2
|
import { getBaseFilePath } from '@client/utils/get-base-file-path'
|
|
3
3
|
import { useRoutes } from './use-routes'
|
|
4
|
-
import { useBoltdocsStore } from '../store/
|
|
4
|
+
import { useBoltdocsStore } from '../store/boltdocs-context'
|
|
5
5
|
|
|
6
6
|
export interface LocaleOption {
|
|
7
7
|
key: string
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { useLocation } from 'react-router-dom'
|
|
2
2
|
import { useConfig } from '@client/app/config-context'
|
|
3
3
|
import { usePreload } from '@client/app/preload'
|
|
4
|
-
import { useBoltdocsStore } from '../store/
|
|
4
|
+
import { useBoltdocsStore } from '../store/boltdocs-context'
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Hook to access the framework's routing state.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { useNavigate } from 'react-router-dom'
|
|
2
2
|
import { getBaseFilePath } from '@client/utils/get-base-file-path'
|
|
3
3
|
import { useRoutes } from './use-routes'
|
|
4
|
-
import { useBoltdocsStore } from '../store/
|
|
4
|
+
import { useBoltdocsStore } from '../store/boltdocs-context'
|
|
5
5
|
|
|
6
6
|
export interface VersionOption {
|
|
7
7
|
key: string
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import React, { createContext, useContext, useState, useEffect, useCallback } from 'react'
|
|
2
|
+
|
|
3
|
+
interface BoltdocsState {
|
|
4
|
+
currentLocale: string | undefined
|
|
5
|
+
currentVersion: string | undefined
|
|
6
|
+
hasHydrated: boolean
|
|
7
|
+
|
|
8
|
+
// Actions
|
|
9
|
+
setLocale: (locale: string | undefined) => void
|
|
10
|
+
setVersion: (version: string | undefined) => void
|
|
11
|
+
setHasHydrated: (val: boolean) => void
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
interface BoltdocsContextValue extends BoltdocsState {}
|
|
15
|
+
|
|
16
|
+
const BoltdocsContext = createContext<BoltdocsContextValue | undefined>(undefined)
|
|
17
|
+
|
|
18
|
+
const STORAGE_KEY = 'boltdocs-storage'
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Load persisted state from localStorage
|
|
22
|
+
*/
|
|
23
|
+
function loadPersistedState(): Partial<BoltdocsState> {
|
|
24
|
+
try {
|
|
25
|
+
const stored = localStorage.getItem(STORAGE_KEY)
|
|
26
|
+
if (stored) {
|
|
27
|
+
const parsed = JSON.parse(stored)
|
|
28
|
+
// zustand persist stores the entire state object under a "state" key
|
|
29
|
+
return parsed?.state || parsed
|
|
30
|
+
}
|
|
31
|
+
} catch (e) {
|
|
32
|
+
// ignore parse errors
|
|
33
|
+
}
|
|
34
|
+
return {}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Provider component that wraps the app and manages state
|
|
39
|
+
*/
|
|
40
|
+
export function BoltdocsProvider({ children }: { children: React.ReactNode }) {
|
|
41
|
+
const persisted = loadPersistedState()
|
|
42
|
+
|
|
43
|
+
const [currentLocale, setCurrentLocale] = useState<string | undefined>(
|
|
44
|
+
persisted.currentLocale
|
|
45
|
+
)
|
|
46
|
+
const [currentVersion, setCurrentVersion] = useState<string | undefined>(
|
|
47
|
+
persisted.currentVersion
|
|
48
|
+
)
|
|
49
|
+
const [hasHydrated, setHasHydrated] = useState(false)
|
|
50
|
+
|
|
51
|
+
// Mark as hydrated after initial load
|
|
52
|
+
useEffect(() => {
|
|
53
|
+
setHasHydrated(true)
|
|
54
|
+
}, [])
|
|
55
|
+
|
|
56
|
+
// Persist state changes to localStorage
|
|
57
|
+
useEffect(() => {
|
|
58
|
+
if (hasHydrated) {
|
|
59
|
+
const stateToPersist = {
|
|
60
|
+
currentLocale,
|
|
61
|
+
currentVersion,
|
|
62
|
+
}
|
|
63
|
+
try {
|
|
64
|
+
localStorage.setItem(
|
|
65
|
+
STORAGE_KEY,
|
|
66
|
+
JSON.stringify({ state: stateToPersist })
|
|
67
|
+
)
|
|
68
|
+
} catch (e) {
|
|
69
|
+
// ignore storage errors
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}, [currentLocale, currentVersion, hasHydrated])
|
|
73
|
+
|
|
74
|
+
const setLocale = useCallback((locale: string | undefined) => {
|
|
75
|
+
setCurrentLocale(locale)
|
|
76
|
+
}, [])
|
|
77
|
+
|
|
78
|
+
const setVersion = useCallback((version: string | undefined) => {
|
|
79
|
+
setCurrentVersion(version)
|
|
80
|
+
}, [])
|
|
81
|
+
|
|
82
|
+
const setHasHydratedAction = useCallback((val: boolean) => {
|
|
83
|
+
setHasHydrated(val)
|
|
84
|
+
}, [])
|
|
85
|
+
|
|
86
|
+
const value: BoltdocsContextValue = {
|
|
87
|
+
currentLocale,
|
|
88
|
+
currentVersion,
|
|
89
|
+
hasHydrated,
|
|
90
|
+
setLocale,
|
|
91
|
+
setVersion,
|
|
92
|
+
setHasHydrated: setHasHydratedAction,
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
return (
|
|
96
|
+
<BoltdocsContext.Provider value={value}>{children}</BoltdocsContext.Provider>
|
|
97
|
+
)
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* Hook to access the Boltdocs context.
|
|
102
|
+
* Must be used within a BoltdocsProvider.
|
|
103
|
+
*/
|
|
104
|
+
export function useBoltdocsContext(): BoltdocsContextValue {
|
|
105
|
+
const context = useContext(BoltdocsContext)
|
|
106
|
+
if (!context) {
|
|
107
|
+
throw new Error('useBoltdocsContext must be used within a BoltdocsProvider')
|
|
108
|
+
}
|
|
109
|
+
return context
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* Backwards-compatible hook that mimics the Zustand store API.
|
|
114
|
+
* Accepts a selector function and returns the selected value.
|
|
115
|
+
*/
|
|
116
|
+
export function useBoltdocsStore<T>(selector: (state: BoltdocsState) => T): T {
|
|
117
|
+
const context = useBoltdocsContext()
|
|
118
|
+
return selector(context)
|
|
119
|
+
}
|
package/CHANGELOG.md
DELETED
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
# boltdocs
|
|
2
|
-
|
|
3
|
-
## 2.5.5
|
|
4
|
-
|
|
5
|
-
### Patch Changes
|
|
6
|
-
|
|
7
|
-
- [`c31cfe3`](https://github.com/bolt-docs/boltdocs/commit/c31cfe3777e77b4ef0290aa726696b493f9c51db) Thanks [@jesusalcaladev](https://github.com/jesusalcaladev)! - repared error use-external
|
|
8
|
-
|
|
9
|
-
## 2.5.4
|
|
10
|
-
|
|
11
|
-
### Patch Changes
|
|
12
|
-
|
|
13
|
-
- [`7477d85`](https://github.com/bolt-docs/boltdocs/commit/7477d85ee486af85cdae0ca26aba67ae9071cce9) Thanks [@jesusalcaladev](https://github.com/jesusalcaladev)! - fix: added use-async-external-store with in optimizeDeps
|
|
14
|
-
|
|
15
|
-
## 2.5.3
|
|
16
|
-
|
|
17
|
-
### Patch Changes
|
|
18
|
-
|
|
19
|
-
- [`613b4b7`](https://github.com/bolt-docs/boltdocs/commit/613b4b7c256b2dec3af6d2aa7eb00f1b9a9beea1) Thanks [@jesusalcaladev](https://github.com/jesusalcaladev)! - removed integrations of config
|
|
20
|
-
|
|
21
|
-
## 2.5.2
|
|
22
|
-
|
|
23
|
-
### Patch Changes
|
|
24
|
-
|
|
25
|
-
- [`862634f`](https://github.com/bolt-docs/boltdocs/commit/862634fb0df4e10112877e05e31b12ce7a4f480e) Thanks [@jesusalcaladev](https://github.com/jesusalcaladev)! - removed sandbox integrations
|
|
26
|
-
|
|
27
|
-
## 2.5.1
|
|
28
|
-
|
|
29
|
-
### Patch Changes
|
|
30
|
-
|
|
31
|
-
- [`6f47dae`](https://github.com/bolt-docs/boltdocs/commit/6f47dae6a572e1d2ec8c28e56c648ab2db7b96d5) Thanks [@jesusalcaladev](https://github.com/jesusalcaladev)! - repared error show visible CodeBlock & repared error components Plugins
|
|
32
|
-
|
|
33
|
-
## 2.5.0
|
|
34
|
-
|
|
35
|
-
### Minor Changes
|
|
36
|
-
|
|
37
|
-
- [`de41957`](https://github.com/bolt-docs/boltdocs/commit/de4195754bbb6dea90cbcd91e1ae3ddc398a8fdb) Thanks [@jesusalcaladev](https://github.com/jesusalcaladev)! - Updated imports to simples, support CPS, Support External-Page with file
|
|
38
|
-
|
|
39
|
-
### Patch Changes
|
|
40
|
-
|
|
41
|
-
- [`f54fc62`](https://github.com/bolt-docs/boltdocs/commit/f54fc62982411e893beeccb2ebcb20d7a4925bdd) Thanks [@jesusalcaladev](https://github.com/jesusalcaladev)! - export types of plugins, Config & theme
|
|
42
|
-
|
|
43
|
-
## 2.4.2
|
|
44
|
-
|
|
45
|
-
### Patch Changes
|
|
46
|
-
|
|
47
|
-
- [`3073b74`](https://github.com/bolt-docs/boltdocs/commit/3073b747b9bd90e154c24758b5a502dfe51c043e) Thanks [@jesusalcaladev](https://github.com/jesusalcaladev)! - fix: repared error in build with virtual-imports
|
|
48
|
-
|
|
49
|
-
## 2.4.1
|
|
50
|
-
|
|
51
|
-
### Patch Changes
|
|
52
|
-
|
|
53
|
-
- [`80de4bd`](https://github.com/bolt-docs/boltdocs/commit/80de4bd49c3de90ec234148c8077b479935db2cf) Thanks [@jesusalcaladev](https://github.com/jesusalcaladev)! - updated width with pathname
|
|
54
|
-
|
|
55
|
-
- [`c49cefa`](https://github.com/bolt-docs/boltdocs/commit/c49cefa292075606ae626826a890a93bda939ba5) Thanks [@jesusalcaladev](https://github.com/jesusalcaladev)! - added name tabs in URLs & repared icons size
|
|
56
|
-
|
|
57
|
-
## 2.4.0
|
|
58
|
-
|
|
59
|
-
### Minor Changes
|
|
60
|
-
|
|
61
|
-
- [`0ee1f85`](https://github.com/bolt-docs/boltdocs/commit/0ee1f8525500ca6b6dc1eb78260fc257b3698fd4) Thanks [@jesusalcaladev](https://github.com/jesusalcaladev)! - Support icons & title CodeBlock, Better Scroll, export Skeleton Component
|
|
62
|
-
|
|
63
|
-
## 2.3.0
|
|
64
|
-
|
|
65
|
-
### Minor Changes
|
|
66
|
-
|
|
67
|
-
- [`5d53fd0`](https://github.com/jesusalcaladev/boltdocs/commit/5d53fd0eddbcc0e22b092f52cea82df78063376b) Thanks [@jesusalcaladev](https://github.com/jesusalcaladev)! - feat: added new primitives `Skeleton`
|
|
68
|
-
feat: added new loading with `Skeleton` primitives
|
|
69
|
-
feat: added new command `boltdocs doctor` for diagnostic your project
|
|
70
|
-
feat: support full-text search
|
|
71
|
-
fix: better calc in page-nav
|
|
72
|
-
|
|
73
|
-
## 2.2.0
|
|
74
|
-
|
|
75
|
-
### Minor Changes
|
|
76
|
-
|
|
77
|
-
- [`766daf2`](https://github.com/jesusalcaladev/boltdocs/commit/766daf21becafaa173a65cc8bea4d31b32ce8640) Thanks [@jesusalcaladev](https://github.com/jesusalcaladev)! - feat: support i18n in links & tabs
|
|
78
|
-
feat: change component Loading
|
|
79
|
-
feat: dectecttheme of system
|
|
80
|
-
perf: better calc in the routes & navigation
|
|
81
|
-
|
|
82
|
-
## 2.1.1
|
|
83
|
-
|
|
84
|
-
### Patch Changes
|
|
85
|
-
|
|
86
|
-
- [`1ce39bb`](https://github.com/jesusalcaladev/boltdocs/commit/1ce39bbe07974f35f6a04c341c5578c337f37024) Thanks [@jesusalcaladev](https://github.com/jesusalcaladev)! - fix: repared error of deploy
|
|
87
|
-
|
|
88
|
-
## 2.1.0
|
|
89
|
-
|
|
90
|
-
### Minor Changes
|
|
91
|
-
|
|
92
|
-
- [`06650d4`](https://github.com/jesusalcaladev/boltdocs/commit/06650d458c26c7bbf4cc2da7ea6bec6352c0c530) Thanks [@jesusalcaladev](https://github.com/jesusalcaladev)! - feat: extract vite.config.ts for used boltdocs.config.ts, support favicon, robots, ogImage
|
|
93
|
-
|
|
94
|
-
## 2.0.0
|
|
95
|
-
|
|
96
|
-
### Major Changes
|
|
97
|
-
|
|
98
|
-
- [`105352e`](https://github.com/jesusalcaladev/boltdocs/commit/105352efc13f081c5fdb6bbcad11891be78f87a7) Thanks [@jesusalcaladev](https://github.com/jesusalcaladev)! - fix: secutity in build & production, repare error in build with virtual:boltdocs-layout
|
package/dist/cache-3FOEPC2P.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{v as a,w as b,x as c,y as d,z as e}from"./chunk-TP5KMRD3.mjs";import"./chunk-Y4RE5KI7.mjs";e();export{c as AssetCache,a as FileCache,b as TransformCache,d as flushCache};
|
package/dist/chunk-5B5NKOW6.mjs
DELETED
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
import{a,b as Gt,c as ks,d as et,e as Ht,f as Vt,g as Ut,h as _,i as ve,j as Re,k as Xt,l as zt,m as ee,n as tt,o as Wt,p as le,q as rt,r as ce,s as ot,t as be,u as J,v as Yt,w as Kt,z as Jt}from"./chunk-TP5KMRD3.mjs";import{a as I,b as v,d as As}from"./chunk-Y4RE5KI7.mjs";function st(){U.invalidateAll()}function it(r){U.invalidate(r)}var U,Zt=I(()=>{"use strict";a();Jt();U=new Yt({name:"routes"})});import K from"path";import Ds from"github-slugger";function er(r,e,t,s){let o;try{o=decodeURIComponent(r)}catch{let N=K.basename(r);throw be("ENCODING_ERROR","Invalid character encoding",{file:N}),new Ht(`Security breach: Invalid characters or encoding in path: ${N}`)}if(o.length>260){let N=K.basename(o);throw be("PATH_TOO_LONG","Path length exceeds limit",{length:o.length,file:N}),new et(`Security breach: Path length exceeds limit of ${260} characters: ${N}`)}let i=K.resolve(o),n=K.resolve(e),p=_(K.relative(n,i));if(p.startsWith("../")||p===".."||i.includes("\0")||!Gt.test(p)){let N=K.basename(r);throw be("PATH_TRAVERSAL_ATTEMPT","Path traversal or invalid characters detected",{path:p}),new et(`Security breach: File is outside of docs directory, contains null bytes, or invalid characters: ${N}`)}let{data:u,content:l}=zt(r),m=p.split("/"),f,P;if(s?.versions&&m.length>0){let N=m[0],Ze=s.versions.prefix||"",$e=s.versions.versions.find(ae=>{let Qe=Ze+ae.path;return N===Qe||N===ae.path});$e&&(P=$e.path,m=m.slice(1))}if(s?.i18n&&m.length>0){let N=m[0];s.i18n.locales[N]&&(f=N,m=m.slice(1))}let d;if(m.length>0){let N=m[0].match(/^\((.+)\)$/);N&&(d=N[1].toLowerCase(),m=m.slice(1))}let L=m.join("/"),$;u.permalink?$=u.permalink.startsWith("/")?u.permalink:`/${u.permalink}`:$=Wt(L||"index.md");let x=t;P&&(x+="/"+P),f&&(x+="/"+f),d&&(x+="/"+d),x+=$==="/"?"":$,(!x||x==="")&&(x="/");let b=m[m.length-1],w=ve(b),S=ve(K.basename(r,K.extname(r))),O=u.sidebarPosition??Re(b),A=m.length>=2?m[0]:void 0,C=A?ve(A):void 0,Y=m.length>=2&&/^index\.mdx?$/.test(w),j=new Ds,Ft=[],Ls=/^(#{2,4})\s+(.+)$/gm;for(let N of l.matchAll(Ls)){let Ze=N[1].length,$e=N[2].replace(/\[([^\]]+)\]\([^\)]+\)/g,"$1").replace(/[_*`]/g,"").trim(),ae=le($e).trim(),Qe=j.slug(ae);Ft.push({level:Ze,text:ae,id:Qe})}let Ts=u.title?le(String(u.title)):S,Je=u.description?le(String(u.description)):"";!Je&&l&&(Je=rt(l.replace(/^#+.*$/gm,"").replace(/\[([^\]]+)\]\([^\)]+\)/g,"$1").replace(/[_*`]/g,"").replace(/\s+/g," ")).trim().slice(0,160));let Os=u.badge?le(String(u.badge)):void 0,_t=u.icon?String(u.icon):void 0,Ns=Bs(l);return{route:{path:x,componentPath:r,filePath:p,title:Ts,description:Je,sidebarPosition:O,headings:Ft,locale:f,version:P,badge:Os,icon:_t,tab:d,_content:Ns,_rawContent:l},relativeDir:C,isGroupIndex:Y,inferredTab:d,groupMeta:Y?{title:u.groupTitle||u.title||(C?ce(C):""),position:u.groupPosition??u.sidebarPosition??(A?Re(A):void 0),icon:_t}:void 0,inferredGroupPosition:A?Re(A):void 0}}function Bs(r){let e=r.replace(/^#+.*$/gm,"").replace(/\[([^\]]+)\]\([^\)]+\)/g,"$1").replace(/\{[^\}]+\}/g,"").replace(/[_*`]/g,"").replace(/\s+/g," ");return rt(e).trim()}var tr=I(()=>{"use strict";a();J();ks();Ut()});function or(r){return r.sort((e,t)=>!e.group&&!t.group?rr(e,t):e.group?t.group?e.group!==t.group?qs(e,t):rr(e,t):1:-1)}function rr(r,e){return r.sidebarPosition!==void 0&&e.sidebarPosition!==void 0?r.sidebarPosition-e.sidebarPosition:r.sidebarPosition!==void 0?-1:e.sidebarPosition!==void 0?1:r.title.localeCompare(e.title)}function qs(r,e){return r.groupPosition!==void 0&&e.groupPosition!==void 0?r.groupPosition-e.groupPosition:r.groupPosition!==void 0?-1:e.groupPosition!==void 0?1:(r.groupTitle||r.group).localeCompare(e.groupTitle||e.group)}var sr=I(()=>{"use strict";a()});import js from"fast-glob";async function te(r,e,t="/docs",s=!0){let o=performance.now();U.load(),ue.clear(),(process.env.BOLTDOCS_FORCE_REPARSE==="true"||e?.i18n)&&U.invalidateAll();let i;!s&&nt?i=nt:(i=await js(["**/*.md","**/*.mdx"],{cwd:r,absolute:!0,suppressErrors:!0,followSymbolicLinks:!1}),nt=i),U.pruneStale(new Set(i));let n=50,p=[],u=0;for(let $=0;$<i.length;$+=n){let x=i.slice($,$+n),b=await Promise.all(x.map(async w=>{let S=U.get(w);if(S)return u++,S;let O=er(w,r,t,e);return U.set(w,O),O}));p.push(...b),$+n<i.length&&await new Promise(w=>setImmediate(w))}U.save();let l=new Map,m=[];for(let $ of p)if($.isGroupIndex&&$.relativeDir&&m.push($),$.relativeDir){let x=l.get($.relativeDir);x?(x.position===void 0&&$.inferredGroupPosition!==void 0&&(x.position=$.inferredGroupPosition),!x.icon&&$.route.icon&&(x.icon=$.route.icon)):(x={title:ce($.relativeDir),position:$.inferredGroupPosition,icon:$.route.icon},l.set($.relativeDir,x))}for(let $ of m){let x=l.get($.relativeDir);$.groupMeta&&(x.title=$.groupMeta.title,$.groupMeta.position!==void 0&&(x.position=$.groupMeta.position),$.groupMeta.icon&&(x.icon=$.groupMeta.icon))}let f=new Array(p.length);for(let $=0;$<p.length;$++){let x=p[$],b=x.relativeDir,w=b?l.get(b):void 0;f[$]={...x.route,group:b,groupTitle:w?.title||(b?ce(b):void 0),groupPosition:w?.position,groupIcon:w?.icon}}let P=f;if(e?.i18n){let $=Ms(f,e,t);P=[...f,...$]}let d=or(P),L=performance.now()-o;return console.log(`[boltdocs] Route generation: ${L.toFixed(2)}ms (${i.length} files, ${u} cache hits)`),d}function Ms(r,e,t){let s=e.i18n.defaultLocale,o=Object.keys(e.i18n.locales),i=[],n=new Map,p=[];for(let u of r){let l=u.locale||s;n.has(l)||n.set(l,new Set),n.get(l).add(u.path),l===s&&p.push(u)}for(let u of o){let l=n.get(u)||new Set;for(let m of p){let f=Fs(m.path,s,u,t,e);f!==m.path&&(l.has(f)||i.push({...m,path:f,locale:u}))}}return i}function Fs(r,e,t,s,o){let i=`${r}:${t}`,n=ue.get(i);if(n)return n;let p=s;if(o?.versions){let f=o.versions.prefix||"";for(let P of o.versions.versions){let d=f+P.path;if(r.startsWith(`${s}/${d}`)){p+="/"+d;break}if(r.startsWith(`${s}/${P.path}`)){p+="/"+P.path;break}}}let u=r.substring(p.length),l=`/${e}`;if(u.startsWith(l+"/"))u="/"+t+"/"+u.substring(l.length+1);else if(u===l)u="/"+t;else if(u==="/"||u==="")u="/"+t;else{let f=u.startsWith("/")?"":"/";u="/"+t+f+u}let m=p+u;return ue.size>2e3&&ue.clear(),ue.set(i,m),m}var nt,ue,at=I(()=>{"use strict";a();J();Zt();tr();sr();nt=null,ue=new Map});import{z as c}from"zod";var _s,Gs,Hs,lt,Vs,Us,Xs,zs,Ws,ir,ct=I(()=>{"use strict";a();_s=c.object({icon:c.string().max(50),link:c.string().url()}),Gs=c.object({text:c.string().max(2e3).optional()}),Hs=c.enum(["fs:read","fs:write","vite:config","mdx:remark","mdx:rehype","components","hooks:build","hooks:dev"]),lt=c.object({name:c.string(),enforce:c.enum(["pre","post"]).optional(),version:c.string().optional(),boltdocsVersion:c.string().optional(),permissions:c.array(Hs).optional(),remarkPlugins:c.array(c.any()).optional(),rehypePlugins:c.array(c.any()).optional(),vitePlugins:c.array(c.any()).optional(),components:c.record(c.string(),c.string()).optional(),hooks:c.record(c.string(),c.any()).optional()}),Vs=c.object({title:c.union([c.string(),c.record(c.string(),c.string())]).optional(),description:c.union([c.string(),c.record(c.string(),c.string())]).optional(),logo:c.union([c.string(),c.object({dark:c.string(),light:c.string(),alt:c.string().optional(),width:c.number().optional(),height:c.number().optional()})]).optional(),navbar:c.array(c.object({label:c.union([c.string(),c.record(c.string(),c.string())]),href:c.string()})).optional(),sidebar:c.record(c.string(),c.array(c.object({text:c.string(),link:c.string()}))).optional(),socialLinks:c.array(_s).optional(),footer:Gs.optional(),breadcrumbs:c.boolean().optional(),editLink:c.string().refine(r=>!r||r.includes(":path"),{message:"editLink must contain ':path' placeholder if specified"}).optional(),communityHelp:c.string().url().optional(),version:c.string().max(50).optional(),githubRepo:c.string().max(100).optional(),favicon:c.string().optional(),ogImage:c.string().optional(),poweredBy:c.boolean().optional(),tabs:c.array(c.object({id:c.string(),text:c.union([c.string(),c.record(c.string(),c.string())]),icon:c.string().optional()})).optional(),codeTheme:c.union([c.string(),c.object({light:c.string(),dark:c.string()})]).optional(),copyMarkdown:c.union([c.boolean(),c.object({text:c.string().optional(),icon:c.string().optional()})]).optional()}),Us=c.union([c.string(),c.object({rules:c.array(c.object({userAgent:c.string(),allow:c.union([c.string(),c.array(c.string())]).optional(),disallow:c.union([c.string(),c.array(c.string())]).optional()})).optional(),sitemaps:c.array(c.string().url()).optional()})]),Xs=c.object({defaultLocale:c.string(),locales:c.record(c.string(),c.string()),localeConfigs:c.record(c.string(),c.object({label:c.string().optional(),direction:c.enum(["ltr","rtl"]).optional(),htmlLang:c.string().optional(),calendar:c.string().optional()})).optional()}),zs=c.object({defaultVersion:c.string(),prefix:c.string().optional(),versions:c.array(c.object({label:c.string(),path:c.string()}))}),Ws=c.object({headers:c.record(c.string(),c.string()).optional(),enableCSP:c.boolean().optional(),customHeaders:c.record(c.string(),c.string()).optional()}),ir=c.object({siteUrl:c.string().url().optional(),docsDir:c.string().optional(),homePage:c.string().optional(),theme:Vs.optional(),i18n:Xs.optional(),versions:zs.optional(),plugins:c.array(lt).optional(),robots:Us.optional(),security:Ws.optional(),vite:c.record(c.string(),c.unknown()).optional()})});import ut from"path";import Ys from"fs";import{loadConfigFromFile as Ks}from"vite";function Js(r){return r}async function Z(r,e=process.cwd()){let t=e,s={docsDir:ut.resolve(r),theme:{title:"Boltdocs",description:"A Vite documentation framework",navbar:[{label:"Home",href:"/"},{label:"Documentation",href:"/docs"}],codeTheme:{light:"github-light",dark:"github-dark"},poweredBy:!0,breadcrumbs:!0}},o={};for(let m of Se){let f=ut.resolve(t,m);if(Ys.existsSync(f))try{let P=await Ks({command:"serve",mode:"development"},f,t);if(P){o=P.config;break}}catch(P){console.warn(`[boltdocs] Failed to load config from ${m}:`,P)}}let n={...{title:o.title,description:o.description,logo:o.logo,favicon:o.favicon,ogImage:o.ogImage,navbar:o.navbar,sidebar:o.sidebar,socialLinks:o.socialLinks,footer:o.footer,githubRepo:o.githubRepo,tabs:o.tabs,codeTheme:o.codeTheme,copyMarkdown:o.copyMarkdown,breadcrumbs:o.breadcrumbs,poweredBy:o.poweredBy,communityHelp:o.communityHelp,version:o.version,editLink:o.editLink},...o.theme||{}},p=Object.fromEntries(Object.entries(n).filter(([m,f])=>f!==void 0));p.navbar&&(p.navbar=p.navbar.map(m=>({label:m.label||m.text||"",href:m.href||m.link||m.to||""})));let u={docsDir:ut.resolve(r),homePage:o.homePage,theme:{...s.theme,...p},i18n:o.i18n,versions:o.versions,siteUrl:o.siteUrl,plugins:o.plugins||[],robots:o.robots,security:o.security,vite:o.vite},l=ir.safeParse(u);if(!l.success){let m=l.error.issues.map(f=>` - ${f.path.join(".")}: ${f.message}`).join(`
|
|
2
|
-
`);throw new Vt(`Invalid Boltdocs configuration:
|
|
3
|
-
${m}`)}return l.data}var Se,we=I(()=>{"use strict";a();ct();Ut();Se=["boltdocs.config.js","boltdocs.config.mjs","boltdocs.config.ts"]});function nr(r,e){let t=ee(e.title),s=ee(e.description);return r.replace(/<title>.*?<\/title>/,`<title>${t}</title>`).replace(/(<meta name="description" content=")[^"]*(")/,`$1${s}$2`).replace(/(<meta property="og:title" content=")[^"]*(")/,`$1${t}$2`).replace(/(<meta property="og:description" content=")[^"]*(")/,`$1${s}$2`).replace(/(<meta name="twitter:title" content=")[^"]*(")/,`$1${t}$2`).replace(/(<meta name="twitter:description" content=")[^"]*(")/,`$1${s}$2`)}var ar=I(()=>{"use strict";a();J()});function lr(r,e){let t=e?.siteUrl?.replace(/\/$/,"")||"https://example.com",s=new Date().toISOString().split("T")[0],o=[{url:"/",priority:"1.0",changefreq:"daily"}];if(e?.i18n){let n=e.i18n.defaultLocale;for(let p of Object.keys(e.i18n.locales))p!==n&&o.push({url:`/${p}/`,priority:"1.0",changefreq:"daily"})}return`<?xml version="1.0" encoding="UTF-8"?>
|
|
4
|
-
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
|
5
|
-
${[...o,...r.map(n=>({url:n,priority:"0.8",changefreq:"weekly"}))].map(n=>` <url>
|
|
6
|
-
<loc>${tt(t)}${tt(n.url)}</loc>
|
|
7
|
-
<lastmod>${s}</lastmod>
|
|
8
|
-
<changefreq>${n.changefreq}</changefreq>
|
|
9
|
-
<priority>${n.priority}</priority>
|
|
10
|
-
</url>`).join(`
|
|
11
|
-
`)}
|
|
12
|
-
</urlset>`}var cr=I(()=>{"use strict";a();J()});function Ce(r){if(typeof r.robots=="string")return r.robots;let e=r.siteUrl?.replace(/\/$/,"")||"",t=r.robots||{},s=t.rules||[{userAgent:"*",allow:"/"}],o=t.sitemaps||(e?[`${e}/sitemap.xml`]:[]),i="";for(let n of s){if(i+=`User-agent: ${n.userAgent}
|
|
13
|
-
`,n.disallow){let p=Array.isArray(n.disallow)?n.disallow:[n.disallow];for(let u of p)i+=`Disallow: ${u}
|
|
14
|
-
`}if(n.allow){let p=Array.isArray(n.allow)?n.allow:[n.allow];for(let u of p)i+=`Allow: ${u}
|
|
15
|
-
`}i+=`
|
|
16
|
-
`}for(let n of o)i+=`Sitemap: ${n}
|
|
17
|
-
`;return i.trim()}var pt=I(()=>{"use strict";a()});import X from"fs";import z from"path";import{fileURLToPath as Zs}from"url";import{createRequire as Qs}from"module";async function ft(r){let{docsDir:e,docsDirName:t,outDir:s,config:o}=r,i=await te(e,o),n=["tsx","ts","jsx","js"].map(x=>z.resolve(e,`pages-external/index.${x}`)).find(x=>X.existsSync(x));if(n)try{let x=X.readFileSync(n,"utf-8"),b=x.match(/pages\s*:\s*{([^}]+)}/s);if(b){let w=b[1].split(",").map(S=>S.split(":")[0].trim().replace(/['"]/g,"")).filter(S=>S&&S.startsWith("/"));for(let S of w)i.some(O=>O.path===S)||i.push({path:S,title:S.slice(1).charAt(0).toUpperCase()+S.slice(2),filePath:"",componentPath:"",_content:""})}x.includes("homePage")&&!i.some(w=>w.path==="/")&&i.push({path:"/",title:"Home",filePath:"",componentPath:"",_content:""})}catch(x){console.warn("[boltdocs] Failed to parse external routes for SSG:",x)}let p=z.resolve(ur,"../client/ssr.js");if(!X.existsSync(p)){console.error("[boltdocs] SSR module not found at",p,"- Did you build the core package?");return}let u=pr("module"),l=u.prototype.require;u.prototype.require=function(x,...b){return x.startsWith("virtual:boltdocs-")?x==="virtual:boltdocs-layout"?{__esModule:!0,default:function(S){try{let A=l.apply(this,[z.resolve(ur,"../client/index.js")]).DefaultLayout||(({children:Y})=>Y);return l.apply(this,["react"]).createElement(A,S)}catch{return S.children}}}:x==="virtual:boltdocs-mdx-components"?{__esModule:!0,default:{}}:x==="virtual:boltdocs-config"?{__esModule:!0,default:o}:{__esModule:!0,default:x.includes("routes")?[]:{}}:l.apply(this,[x,...b])};let{render:m}=pr(p);u.prototype.require=l;let f=z.join(s,"index.html");if(!X.existsSync(f)){console.warn("[boltdocs] No index.html found in outDir, skipping SSG.");return}let P=X.readFileSync(f,"utf-8");await Promise.all(i.map(async x=>{let b=ot(o?.theme?.title,x.locale)||"Boltdocs",w=ot(o?.theme?.description,x.locale)||"",S=`${x.title} | ${b}`,O=x.description||w,A={};A[`/${t}/${x.filePath}`]={default:()=>null};try{let C=await m({path:x.path,routes:i,config:o||{},docsDirName:t,modules:A,homePage:void 0}),Y=nr(P,{title:ee(S),description:ee(O)}).replace("<!--app-html-->",C).replace('<div id="root"></div>',`<div id="root">${C}</div>`),j=z.join(s,x.path);await X.promises.mkdir(j,{recursive:!0}),await X.promises.writeFile(z.join(j,"index.html"),Y,"utf-8")}catch(C){console.error(`[boltdocs] Error SSR rendering route ${x.path}:`,C&&(C.stack||C))}}));let d=lr(i.map(x=>x.path),o);X.writeFileSync(z.join(s,"sitemap.xml"),d,"utf-8");let L=Ce(o);X.writeFileSync(z.join(s,"robots.txt"),L,"utf-8"),console.log(`[boltdocs] Generated ${i.length} static pages + sitemap.xml + robots.txt`);let{flushCache:$}=await import("./cache-3FOEPC2P.mjs");await $()}var ei,ur,pr,mt=I(()=>{"use strict";a();at();J();ar();cr();pt();ei=Zs(import.meta.url),ur=z.dirname(ei),pr=Qs(import.meta.url)});import Ie from"path";import fr from"fs";function mr(r,e){let t=r.homePage?`import HomePage from '${_(r.homePage)}';`:"",s=Ie.resolve(process.cwd(),"index.css"),o=fr.existsSync(s)?"import './index.css';":"",i=r.homePage?"homePage: HomePage,":"",n=e?.plugins?.flatMap(L=>Object.entries(L.components||{}))||[],p=n.map(([L,$])=>`import * as _comp_${L} from '${_($)}';
|
|
18
|
-
const ${L} = _comp_${L}.default || _comp_${L}['${L}'] || _comp_${L};`).join(`
|
|
19
|
-
`),u=n.map(([L])=>L).join(", "),l=Ie.basename(r.docsDir||"docs"),m=Ie.resolve(process.cwd(),r.docsDir||"docs"),f=["tsx","ts","jsx","js"].map(L=>Ie.resolve(m,`pages-external/index.${L}`)).find(L=>fr.existsSync(L)),P=f?`import * as _external_module from '${_(f)}';`:"";return i=f?"homePage: _external_module.homePage || HomePage,":r.homePage?"homePage: HomePage,":"",`
|
|
20
|
-
import { createBoltdocsApp as _createApp } from 'boltdocs/client';
|
|
21
|
-
import _routes from 'virtual:boltdocs-routes';
|
|
22
|
-
import _config from 'virtual:boltdocs-config';
|
|
23
|
-
import _user_mdx_components from 'virtual:boltdocs-mdx-components';
|
|
24
|
-
${o}
|
|
25
|
-
${t}
|
|
26
|
-
${p}
|
|
27
|
-
${P}
|
|
28
|
-
|
|
29
|
-
_createApp({
|
|
30
|
-
target: '#root',
|
|
31
|
-
routes: _routes,
|
|
32
|
-
docsDirName: '${l}',
|
|
33
|
-
config: _config,
|
|
34
|
-
modules: import.meta.glob('/${l}/**/*.{md,mdx}'),
|
|
35
|
-
hot: import.meta.hot,
|
|
36
|
-
${i}
|
|
37
|
-
${f?"externalPages: _external_module.pages, externalLayout: _external_module.layout,":""}
|
|
38
|
-
components: { ${u}${u?", ":""} ...(_user_mdx_components || {}) },
|
|
39
|
-
});
|
|
40
|
-
`}var dr=I(()=>{"use strict";a();J()});function gr(r){return`<!doctype html>
|
|
41
|
-
<html lang="en">
|
|
42
|
-
<head>
|
|
43
|
-
<meta charset="UTF-8" />
|
|
44
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
45
|
-
<title>${r.theme?.title||"Boltdocs"}</title>
|
|
46
|
-
</head>
|
|
47
|
-
<body>
|
|
48
|
-
<div id="root"></div>
|
|
49
|
-
</body>
|
|
50
|
-
</html>`}function dt(r,e){let t=e.theme,s=t?.title||"Boltdocs",o=t?.description||"",i=t?.favicon;!i&&t?.logo&&(typeof t.logo=="string"?i=t.logo:i=t.logo.light||t.logo.dark);let n=[i?`<link rel="icon" href="${i}">`:"",`<meta name="description" content="${o}">`,`<meta property="og:title" content="${s}">`,`<meta property="og:description" content="${o}">`,t?.ogImage?`<meta property="og:image" content="${t.ogImage}">`:"",'<meta property="og:type" content="website">','<meta name="twitter:card" content="summary_large_image">',`<meta name="twitter:title" content="${s}">`,`<meta name="twitter:description" content="${o}">`,t?.ogImage?`<meta name="twitter:image" content="${t.ogImage}">`:"",'<meta name="generator" content="Boltdocs">'].filter(Boolean).join(`
|
|
51
|
-
`),p=`
|
|
52
|
-
<script>
|
|
53
|
-
(function() {
|
|
54
|
-
try {
|
|
55
|
-
var stored = localStorage.getItem("boltdocs-theme");
|
|
56
|
-
var theme = stored || (window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light");
|
|
57
|
-
if (theme === "light") {
|
|
58
|
-
document.documentElement.classList.add("theme-light");
|
|
59
|
-
document.documentElement.dataset.theme = "light";
|
|
60
|
-
} else {
|
|
61
|
-
document.documentElement.classList.remove("theme-light");
|
|
62
|
-
document.documentElement.dataset.theme = "dark";
|
|
63
|
-
}
|
|
64
|
-
} catch (e) {}
|
|
65
|
-
})();
|
|
66
|
-
</script>
|
|
67
|
-
`;return r.includes("<title>")?r=r.replace(/<title>.*?<\/title>/,`<title>${s}</title>`):r=r.replace("</head>",` <title>${s}</title>
|
|
68
|
-
</head>`),r=r.replace("</head>",` ${n}
|
|
69
|
-
${p} </head>`),!r.includes("src/main")&&!r.includes("virtual:boltdocs-entry")&&(r=r.replace("</body>",` <script type="module">import "virtual:boltdocs-entry";</script>
|
|
70
|
-
</body>`)),r}var hr=I(()=>{"use strict";a()});function Er(r){let e=[];for(let t of r)if(e.push({id:t.path,title:t.title,content:t._content||"",url:t.path,display:t.groupTitle?`${t.groupTitle} > ${t.title}`:t.title,locale:t.locale,version:t.version}),t.headings)for(let s of t.headings)e.push({id:`${t.path}#${s.id}`,title:s.text,content:`${s.text} in ${t.title}`,url:`${t.path}#${s.id}`,display:`${t.title} > ${s.text}`,locale:t.locale,version:t.version});return e}var yr=I(()=>{"use strict";a()});var Le,gt=I(()=>{"use strict";a();Le={"X-Content-Type-Options":"nosniff","X-Frame-Options":"DENY","X-XSS-Protection":"1; mode=block","Referrer-Policy":"strict-origin-when-cross-origin","Permissions-Policy":"camera=(), microphone=(), geolocation=()","Strict-Transport-Security":"max-age=31536000; includeSubDomains"}});function Te(r){let e=process.env.NODE_ENV==="development",t={"default-src":["'self'"],"script-src":["'self'","'unsafe-inline'"],"style-src":["'self'","'unsafe-inline'"],"img-src":["'self'","data:","https:"],"font-src":["'self'"],"connect-src":["'self'"]};return e&&(t["script-src"]=["'self'","'unsafe-eval'","'unsafe-inline'"],t["style-src"]=["'self'","'unsafe-inline'"]),Object.entries(t).map(([s,o])=>`${s} ${o.join(" ")}`).join("; ")}var ht=I(()=>{"use strict";a()});var Pr=I(()=>{"use strict";a()});var re,oe,Oe,pe,Ne,fe=I(()=>{"use strict";a();re=class r extends Error{pluginName;constructor(e,t){super(`[plugin:${e}] ${t}`),this.name="PluginError",this.pluginName=e,Object.setPrototypeOf(this,r.prototype)}},oe=class r extends re{constructor(e,t){super(e,`Validation failed: ${t}`),this.name="PluginValidationError",Object.setPrototypeOf(this,r.prototype)}},Oe=class r extends re{constructor(e,t){super(e,`Compatibility error: ${t}`),this.name="PluginCompatibilityError",Object.setPrototypeOf(this,r.prototype)}},pe=class r extends re{constructor(e,t){super(e,`Missing required permission: '${t}'`),this.name="PluginPermissionError",Object.setPrototypeOf(this,r.prototype)}},Ne=class r extends re{hookName;constructor(e,t,s){super(e,`Error in hook '${t}': ${s.message}`),this.name="PluginHookError",this.hookName=t,this.stack=s.stack,Object.setPrototypeOf(this,r.prototype)}}});var Ae,Et=I(()=>{"use strict";a();Ae=class{data=new Map;getNamespaceKey(e,t){return`${e}:${t}`}get(e,t){let s=this.getNamespaceKey(e,t),o=this.data.get(s);if(o!==void 0)return typeof o=="object"&&o!==null?JSON.parse(JSON.stringify(o)):o}set(e,t,s){let o=this.getNamespaceKey(e,t),i=typeof s=="object"&&s!==null?JSON.parse(JSON.stringify(s)):s;this.data.set(o,i)}has(e,t){let s=this.getNamespaceKey(e,t);return this.data.has(s)}}});var me=v((Sc,xr)=>{"use strict";a();var ti="2.0.0",ri=Number.MAX_SAFE_INTEGER||9007199254740991,oi=16,si=250,ii=["major","premajor","minor","preminor","patch","prepatch","prerelease"];xr.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:oi,MAX_SAFE_BUILD_LENGTH:si,MAX_SAFE_INTEGER:ri,RELEASE_TYPES:ii,SEMVER_SPEC_VERSION:ti,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var de=v((Cc,$r)=>{"use strict";a();var ni=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...r)=>console.error("SEMVER",...r):()=>{};$r.exports=ni});var se=v((H,vr)=>{"use strict";a();var{MAX_SAFE_COMPONENT_LENGTH:yt,MAX_SAFE_BUILD_LENGTH:ai,MAX_LENGTH:li}=me(),ci=de();H=vr.exports={};var ui=H.re=[],pi=H.safeRe=[],E=H.src=[],fi=H.safeSrc=[],y=H.t={},mi=0,Pt="[a-zA-Z0-9-]",di=[["\\s",1],["\\d",li],[Pt,ai]],gi=r=>{for(let[e,t]of di)r=r.split(`${e}*`).join(`${e}{0,${t}}`).split(`${e}+`).join(`${e}{1,${t}}`);return r},R=(r,e,t)=>{let s=gi(e),o=mi++;ci(r,o,e),y[r]=o,E[o]=e,fi[o]=s,ui[o]=new RegExp(e,t?"g":void 0),pi[o]=new RegExp(s,t?"g":void 0)};R("NUMERICIDENTIFIER","0|[1-9]\\d*");R("NUMERICIDENTIFIERLOOSE","\\d+");R("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${Pt}*`);R("MAINVERSION",`(${E[y.NUMERICIDENTIFIER]})\\.(${E[y.NUMERICIDENTIFIER]})\\.(${E[y.NUMERICIDENTIFIER]})`);R("MAINVERSIONLOOSE",`(${E[y.NUMERICIDENTIFIERLOOSE]})\\.(${E[y.NUMERICIDENTIFIERLOOSE]})\\.(${E[y.NUMERICIDENTIFIERLOOSE]})`);R("PRERELEASEIDENTIFIER",`(?:${E[y.NONNUMERICIDENTIFIER]}|${E[y.NUMERICIDENTIFIER]})`);R("PRERELEASEIDENTIFIERLOOSE",`(?:${E[y.NONNUMERICIDENTIFIER]}|${E[y.NUMERICIDENTIFIERLOOSE]})`);R("PRERELEASE",`(?:-(${E[y.PRERELEASEIDENTIFIER]}(?:\\.${E[y.PRERELEASEIDENTIFIER]})*))`);R("PRERELEASELOOSE",`(?:-?(${E[y.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${E[y.PRERELEASEIDENTIFIERLOOSE]})*))`);R("BUILDIDENTIFIER",`${Pt}+`);R("BUILD",`(?:\\+(${E[y.BUILDIDENTIFIER]}(?:\\.${E[y.BUILDIDENTIFIER]})*))`);R("FULLPLAIN",`v?${E[y.MAINVERSION]}${E[y.PRERELEASE]}?${E[y.BUILD]}?`);R("FULL",`^${E[y.FULLPLAIN]}$`);R("LOOSEPLAIN",`[v=\\s]*${E[y.MAINVERSIONLOOSE]}${E[y.PRERELEASELOOSE]}?${E[y.BUILD]}?`);R("LOOSE",`^${E[y.LOOSEPLAIN]}$`);R("GTLT","((?:<|>)?=?)");R("XRANGEIDENTIFIERLOOSE",`${E[y.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);R("XRANGEIDENTIFIER",`${E[y.NUMERICIDENTIFIER]}|x|X|\\*`);R("XRANGEPLAIN",`[v=\\s]*(${E[y.XRANGEIDENTIFIER]})(?:\\.(${E[y.XRANGEIDENTIFIER]})(?:\\.(${E[y.XRANGEIDENTIFIER]})(?:${E[y.PRERELEASE]})?${E[y.BUILD]}?)?)?`);R("XRANGEPLAINLOOSE",`[v=\\s]*(${E[y.XRANGEIDENTIFIERLOOSE]})(?:\\.(${E[y.XRANGEIDENTIFIERLOOSE]})(?:\\.(${E[y.XRANGEIDENTIFIERLOOSE]})(?:${E[y.PRERELEASELOOSE]})?${E[y.BUILD]}?)?)?`);R("XRANGE",`^${E[y.GTLT]}\\s*${E[y.XRANGEPLAIN]}$`);R("XRANGELOOSE",`^${E[y.GTLT]}\\s*${E[y.XRANGEPLAINLOOSE]}$`);R("COERCEPLAIN",`(^|[^\\d])(\\d{1,${yt}})(?:\\.(\\d{1,${yt}}))?(?:\\.(\\d{1,${yt}}))?`);R("COERCE",`${E[y.COERCEPLAIN]}(?:$|[^\\d])`);R("COERCEFULL",E[y.COERCEPLAIN]+`(?:${E[y.PRERELEASE]})?(?:${E[y.BUILD]})?(?:$|[^\\d])`);R("COERCERTL",E[y.COERCE],!0);R("COERCERTLFULL",E[y.COERCEFULL],!0);R("LONETILDE","(?:~>?)");R("TILDETRIM",`(\\s*)${E[y.LONETILDE]}\\s+`,!0);H.tildeTrimReplace="$1~";R("TILDE",`^${E[y.LONETILDE]}${E[y.XRANGEPLAIN]}$`);R("TILDELOOSE",`^${E[y.LONETILDE]}${E[y.XRANGEPLAINLOOSE]}$`);R("LONECARET","(?:\\^)");R("CARETTRIM",`(\\s*)${E[y.LONECARET]}\\s+`,!0);H.caretTrimReplace="$1^";R("CARET",`^${E[y.LONECARET]}${E[y.XRANGEPLAIN]}$`);R("CARETLOOSE",`^${E[y.LONECARET]}${E[y.XRANGEPLAINLOOSE]}$`);R("COMPARATORLOOSE",`^${E[y.GTLT]}\\s*(${E[y.LOOSEPLAIN]})$|^$`);R("COMPARATOR",`^${E[y.GTLT]}\\s*(${E[y.FULLPLAIN]})$|^$`);R("COMPARATORTRIM",`(\\s*)${E[y.GTLT]}\\s*(${E[y.LOOSEPLAIN]}|${E[y.XRANGEPLAIN]})`,!0);H.comparatorTrimReplace="$1$2$3";R("HYPHENRANGE",`^\\s*(${E[y.XRANGEPLAIN]})\\s+-\\s+(${E[y.XRANGEPLAIN]})\\s*$`);R("HYPHENRANGELOOSE",`^\\s*(${E[y.XRANGEPLAINLOOSE]})\\s+-\\s+(${E[y.XRANGEPLAINLOOSE]})\\s*$`);R("STAR","(<|>)?=?\\s*\\*");R("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$");R("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")});var ke=v((Tc,Rr)=>{"use strict";a();var hi=Object.freeze({loose:!0}),Ei=Object.freeze({}),yi=r=>r?typeof r!="object"?hi:r:Ei;Rr.exports=yi});var xt=v((Nc,wr)=>{"use strict";a();var br=/^[0-9]+$/,Sr=(r,e)=>{if(typeof r=="number"&&typeof e=="number")return r===e?0:r<e?-1:1;let t=br.test(r),s=br.test(e);return t&&s&&(r=+r,e=+e),r===e?0:t&&!s?-1:s&&!t?1:r<e?-1:1},Pi=(r,e)=>Sr(e,r);wr.exports={compareIdentifiers:Sr,rcompareIdentifiers:Pi}});var k=v((kc,Ir)=>{"use strict";a();var De=de(),{MAX_LENGTH:Cr,MAX_SAFE_INTEGER:Be}=me(),{safeRe:qe,t:je}=se(),xi=ke(),{compareIdentifiers:$t}=xt(),vt=class r{constructor(e,t){if(t=xi(t),e instanceof r){if(e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease)return e;e=e.version}else if(typeof e!="string")throw new TypeError(`Invalid version. Must be a string. Got type "${typeof e}".`);if(e.length>Cr)throw new TypeError(`version is longer than ${Cr} characters`);De("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;let s=e.trim().match(t.loose?qe[je.LOOSE]:qe[je.FULL]);if(!s)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+s[1],this.minor=+s[2],this.patch=+s[3],this.major>Be||this.major<0)throw new TypeError("Invalid major version");if(this.minor>Be||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>Be||this.patch<0)throw new TypeError("Invalid patch version");s[4]?this.prerelease=s[4].split(".").map(o=>{if(/^[0-9]+$/.test(o)){let i=+o;if(i>=0&&i<Be)return i}return o}):this.prerelease=[],this.build=s[5]?s[5].split("."):[],this.format()}format(){return this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length&&(this.version+=`-${this.prerelease.join(".")}`),this.version}toString(){return this.version}compare(e){if(De("SemVer.compare",this.version,this.options,e),!(e instanceof r)){if(typeof e=="string"&&e===this.version)return 0;e=new r(e,this.options)}return e.version===this.version?0:this.compareMain(e)||this.comparePre(e)}compareMain(e){return e instanceof r||(e=new r(e,this.options)),this.major<e.major?-1:this.major>e.major?1:this.minor<e.minor?-1:this.minor>e.minor?1:this.patch<e.patch?-1:this.patch>e.patch?1:0}comparePre(e){if(e instanceof r||(e=new r(e,this.options)),this.prerelease.length&&!e.prerelease.length)return-1;if(!this.prerelease.length&&e.prerelease.length)return 1;if(!this.prerelease.length&&!e.prerelease.length)return 0;let t=0;do{let s=this.prerelease[t],o=e.prerelease[t];if(De("prerelease compare",t,s,o),s===void 0&&o===void 0)return 0;if(o===void 0)return 1;if(s===void 0)return-1;if(s===o)continue;return $t(s,o)}while(++t)}compareBuild(e){e instanceof r||(e=new r(e,this.options));let t=0;do{let s=this.build[t],o=e.build[t];if(De("build compare",t,s,o),s===void 0&&o===void 0)return 0;if(o===void 0)return 1;if(s===void 0)return-1;if(s===o)continue;return $t(s,o)}while(++t)}inc(e,t,s){if(e.startsWith("pre")){if(!t&&s===!1)throw new Error("invalid increment argument: identifier is empty");if(t){let o=`-${t}`.match(this.options.loose?qe[je.PRERELEASELOOSE]:qe[je.PRERELEASE]);if(!o||o[1]!==t)throw new Error(`invalid identifier: ${t}`)}}switch(e){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",t,s);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",t,s);break;case"prepatch":this.prerelease.length=0,this.inc("patch",t,s),this.inc("pre",t,s);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",t,s),this.inc("pre",t,s);break;case"release":if(this.prerelease.length===0)throw new Error(`version ${this.raw} is not a prerelease`);this.prerelease.length=0;break;case"major":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case"patch":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case"pre":{let o=Number(s)?1:0;if(this.prerelease.length===0)this.prerelease=[o];else{let i=this.prerelease.length;for(;--i>=0;)typeof this.prerelease[i]=="number"&&(this.prerelease[i]++,i=-2);if(i===-1){if(t===this.prerelease.join(".")&&s===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(o)}}if(t){let i=[t,o];s===!1&&(i=[t]),$t(this.prerelease[0],t)===0?isNaN(this.prerelease[1])&&(this.prerelease=i):this.prerelease=i}break}default:throw new Error(`invalid increment argument: ${e}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}};Ir.exports=vt});var Q=v((Bc,Tr)=>{"use strict";a();var Lr=k(),$i=(r,e,t=!1)=>{if(r instanceof Lr)return r;try{return new Lr(r,e)}catch(s){if(!t)return null;throw s}};Tr.exports=$i});var Nr=v((jc,Or)=>{"use strict";a();var vi=Q(),Ri=(r,e)=>{let t=vi(r,e);return t?t.version:null};Or.exports=Ri});var kr=v((Fc,Ar)=>{"use strict";a();var bi=Q(),Si=(r,e)=>{let t=bi(r.trim().replace(/^[=v]+/,""),e);return t?t.version:null};Ar.exports=Si});var qr=v((Gc,Br)=>{"use strict";a();var Dr=k(),wi=(r,e,t,s,o)=>{typeof t=="string"&&(o=s,s=t,t=void 0);try{return new Dr(r instanceof Dr?r.version:r,t).inc(e,s,o).version}catch{return null}};Br.exports=wi});var Fr=v((Vc,Mr)=>{"use strict";a();var jr=Q(),Ci=(r,e)=>{let t=jr(r,null,!0),s=jr(e,null,!0),o=t.compare(s);if(o===0)return null;let i=o>0,n=i?t:s,p=i?s:t,u=!!n.prerelease.length;if(!!p.prerelease.length&&!u){if(!p.patch&&!p.minor)return"major";if(p.compareMain(n)===0)return p.minor&&!p.patch?"minor":"patch"}let m=u?"pre":"";return t.major!==s.major?m+"major":t.minor!==s.minor?m+"minor":t.patch!==s.patch?m+"patch":"prerelease"};Mr.exports=Ci});var Gr=v((Xc,_r)=>{"use strict";a();var Ii=k(),Li=(r,e)=>new Ii(r,e).major;_r.exports=Li});var Vr=v((Wc,Hr)=>{"use strict";a();var Ti=k(),Oi=(r,e)=>new Ti(r,e).minor;Hr.exports=Oi});var Xr=v((Kc,Ur)=>{"use strict";a();var Ni=k(),Ai=(r,e)=>new Ni(r,e).patch;Ur.exports=Ai});var Wr=v((Zc,zr)=>{"use strict";a();var ki=Q(),Di=(r,e)=>{let t=ki(r,e);return t&&t.prerelease.length?t.prerelease:null};zr.exports=Di});var M=v((eu,Kr)=>{"use strict";a();var Yr=k(),Bi=(r,e,t)=>new Yr(r,t).compare(new Yr(e,t));Kr.exports=Bi});var Zr=v((ru,Jr)=>{"use strict";a();var qi=M(),ji=(r,e,t)=>qi(e,r,t);Jr.exports=ji});var eo=v((su,Qr)=>{"use strict";a();var Mi=M(),Fi=(r,e)=>Mi(r,e,!0);Qr.exports=Fi});var Me=v((nu,ro)=>{"use strict";a();var to=k(),_i=(r,e,t)=>{let s=new to(r,t),o=new to(e,t);return s.compare(o)||s.compareBuild(o)};ro.exports=_i});var so=v((lu,oo)=>{"use strict";a();var Gi=Me(),Hi=(r,e)=>r.sort((t,s)=>Gi(t,s,e));oo.exports=Hi});var no=v((uu,io)=>{"use strict";a();var Vi=Me(),Ui=(r,e)=>r.sort((t,s)=>Vi(s,t,e));io.exports=Ui});var ge=v((fu,ao)=>{"use strict";a();var Xi=M(),zi=(r,e,t)=>Xi(r,e,t)>0;ao.exports=zi});var Fe=v((du,lo)=>{"use strict";a();var Wi=M(),Yi=(r,e,t)=>Wi(r,e,t)<0;lo.exports=Yi});var Rt=v((hu,co)=>{"use strict";a();var Ki=M(),Ji=(r,e,t)=>Ki(r,e,t)===0;co.exports=Ji});var bt=v((yu,uo)=>{"use strict";a();var Zi=M(),Qi=(r,e,t)=>Zi(r,e,t)!==0;uo.exports=Qi});var _e=v((xu,po)=>{"use strict";a();var en=M(),tn=(r,e,t)=>en(r,e,t)>=0;po.exports=tn});var Ge=v((vu,fo)=>{"use strict";a();var rn=M(),on=(r,e,t)=>rn(r,e,t)<=0;fo.exports=on});var St=v((bu,mo)=>{"use strict";a();var sn=Rt(),nn=bt(),an=ge(),ln=_e(),cn=Fe(),un=Ge(),pn=(r,e,t,s)=>{switch(e){case"===":return typeof r=="object"&&(r=r.version),typeof t=="object"&&(t=t.version),r===t;case"!==":return typeof r=="object"&&(r=r.version),typeof t=="object"&&(t=t.version),r!==t;case"":case"=":case"==":return sn(r,t,s);case"!=":return nn(r,t,s);case">":return an(r,t,s);case">=":return ln(r,t,s);case"<":return cn(r,t,s);case"<=":return un(r,t,s);default:throw new TypeError(`Invalid operator: ${e}`)}};mo.exports=pn});var ho=v((wu,go)=>{"use strict";a();var fn=k(),mn=Q(),{safeRe:He,t:Ve}=se(),dn=(r,e)=>{if(r instanceof fn)return r;if(typeof r=="number"&&(r=String(r)),typeof r!="string")return null;e=e||{};let t=null;if(!e.rtl)t=r.match(e.includePrerelease?He[Ve.COERCEFULL]:He[Ve.COERCE]);else{let u=e.includePrerelease?He[Ve.COERCERTLFULL]:He[Ve.COERCERTL],l;for(;(l=u.exec(r))&&(!t||t.index+t[0].length!==r.length);)(!t||l.index+l[0].length!==t.index+t[0].length)&&(t=l),u.lastIndex=l.index+l[1].length+l[2].length;u.lastIndex=-1}if(t===null)return null;let s=t[2],o=t[3]||"0",i=t[4]||"0",n=e.includePrerelease&&t[5]?`-${t[5]}`:"",p=e.includePrerelease&&t[6]?`+${t[6]}`:"";return mn(`${s}.${o}.${i}${n}${p}`,e)};go.exports=dn});var yo=v((Iu,Eo)=>{"use strict";a();var wt=class{constructor(){this.max=1e3,this.map=new Map}get(e){let t=this.map.get(e);if(t!==void 0)return this.map.delete(e),this.map.set(e,t),t}delete(e){return this.map.delete(e)}set(e,t){if(!this.delete(e)&&t!==void 0){if(this.map.size>=this.max){let o=this.map.keys().next().value;this.delete(o)}this.map.set(e,t)}return this}};Eo.exports=wt});var F=v((Tu,vo)=>{"use strict";a();var gn=/\s+/g,Ct=class r{constructor(e,t){if(t=En(t),e instanceof r)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new r(e.raw,t);if(e instanceof It)return this.raw=e.value,this.set=[[e]],this.formatted=void 0,this;if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e.trim().replace(gn," "),this.set=this.raw.split("||").map(s=>this.parseRange(s.trim())).filter(s=>s.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){let s=this.set[0];if(this.set=this.set.filter(o=>!xo(o[0])),this.set.length===0)this.set=[s];else if(this.set.length>1){for(let o of this.set)if(o.length===1&&bn(o[0])){this.set=[o];break}}}this.formatted=void 0}get range(){if(this.formatted===void 0){this.formatted="";for(let e=0;e<this.set.length;e++){e>0&&(this.formatted+="||");let t=this.set[e];for(let s=0;s<t.length;s++)s>0&&(this.formatted+=" "),this.formatted+=t[s].toString().trim()}}return this.formatted}format(){return this.range}toString(){return this.range}parseRange(e){let s=((this.options.includePrerelease&&vn)|(this.options.loose&&Rn))+":"+e,o=Po.get(s);if(o)return o;let i=this.options.loose,n=i?B[D.HYPHENRANGELOOSE]:B[D.HYPHENRANGE];e=e.replace(n,kn(this.options.includePrerelease)),T("hyphen replace",e),e=e.replace(B[D.COMPARATORTRIM],Pn),T("comparator trim",e),e=e.replace(B[D.TILDETRIM],xn),T("tilde trim",e),e=e.replace(B[D.CARETTRIM],$n),T("caret trim",e);let p=e.split(" ").map(f=>Sn(f,this.options)).join(" ").split(/\s+/).map(f=>An(f,this.options));i&&(p=p.filter(f=>(T("loose invalid filter",f,this.options),!!f.match(B[D.COMPARATORLOOSE])))),T("range list",p);let u=new Map,l=p.map(f=>new It(f,this.options));for(let f of l){if(xo(f))return[f];u.set(f.value,f)}u.size>1&&u.has("")&&u.delete("");let m=[...u.values()];return Po.set(s,m),m}intersects(e,t){if(!(e instanceof r))throw new TypeError("a Range is required");return this.set.some(s=>$o(s,t)&&e.set.some(o=>$o(o,t)&&s.every(i=>o.every(n=>i.intersects(n,t)))))}test(e){if(!e)return!1;if(typeof e=="string")try{e=new yn(e,this.options)}catch{return!1}for(let t=0;t<this.set.length;t++)if(Dn(this.set[t],e,this.options))return!0;return!1}};vo.exports=Ct;var hn=yo(),Po=new hn,En=ke(),It=he(),T=de(),yn=k(),{safeRe:B,t:D,comparatorTrimReplace:Pn,tildeTrimReplace:xn,caretTrimReplace:$n}=se(),{FLAG_INCLUDE_PRERELEASE:vn,FLAG_LOOSE:Rn}=me(),xo=r=>r.value==="<0.0.0-0",bn=r=>r.value==="",$o=(r,e)=>{let t=!0,s=r.slice(),o=s.pop();for(;t&&s.length;)t=s.every(i=>o.intersects(i,e)),o=s.pop();return t},Sn=(r,e)=>(r=r.replace(B[D.BUILD],""),T("comp",r,e),r=In(r,e),T("caret",r),r=wn(r,e),T("tildes",r),r=Tn(r,e),T("xrange",r),r=Nn(r,e),T("stars",r),r),q=r=>!r||r.toLowerCase()==="x"||r==="*",wn=(r,e)=>r.trim().split(/\s+/).map(t=>Cn(t,e)).join(" "),Cn=(r,e)=>{let t=e.loose?B[D.TILDELOOSE]:B[D.TILDE];return r.replace(t,(s,o,i,n,p)=>{T("tilde",r,s,o,i,n,p);let u;return q(o)?u="":q(i)?u=`>=${o}.0.0 <${+o+1}.0.0-0`:q(n)?u=`>=${o}.${i}.0 <${o}.${+i+1}.0-0`:p?(T("replaceTilde pr",p),u=`>=${o}.${i}.${n}-${p} <${o}.${+i+1}.0-0`):u=`>=${o}.${i}.${n} <${o}.${+i+1}.0-0`,T("tilde return",u),u})},In=(r,e)=>r.trim().split(/\s+/).map(t=>Ln(t,e)).join(" "),Ln=(r,e)=>{T("caret",r,e);let t=e.loose?B[D.CARETLOOSE]:B[D.CARET],s=e.includePrerelease?"-0":"";return r.replace(t,(o,i,n,p,u)=>{T("caret",r,o,i,n,p,u);let l;return q(i)?l="":q(n)?l=`>=${i}.0.0${s} <${+i+1}.0.0-0`:q(p)?i==="0"?l=`>=${i}.${n}.0${s} <${i}.${+n+1}.0-0`:l=`>=${i}.${n}.0${s} <${+i+1}.0.0-0`:u?(T("replaceCaret pr",u),i==="0"?n==="0"?l=`>=${i}.${n}.${p}-${u} <${i}.${n}.${+p+1}-0`:l=`>=${i}.${n}.${p}-${u} <${i}.${+n+1}.0-0`:l=`>=${i}.${n}.${p}-${u} <${+i+1}.0.0-0`):(T("no pr"),i==="0"?n==="0"?l=`>=${i}.${n}.${p}${s} <${i}.${n}.${+p+1}-0`:l=`>=${i}.${n}.${p}${s} <${i}.${+n+1}.0-0`:l=`>=${i}.${n}.${p} <${+i+1}.0.0-0`),T("caret return",l),l})},Tn=(r,e)=>(T("replaceXRanges",r,e),r.split(/\s+/).map(t=>On(t,e)).join(" ")),On=(r,e)=>{r=r.trim();let t=e.loose?B[D.XRANGELOOSE]:B[D.XRANGE];return r.replace(t,(s,o,i,n,p,u)=>{T("xRange",r,s,o,i,n,p,u);let l=q(i),m=l||q(n),f=m||q(p),P=f;return o==="="&&P&&(o=""),u=e.includePrerelease?"-0":"",l?o===">"||o==="<"?s="<0.0.0-0":s="*":o&&P?(m&&(n=0),p=0,o===">"?(o=">=",m?(i=+i+1,n=0,p=0):(n=+n+1,p=0)):o==="<="&&(o="<",m?i=+i+1:n=+n+1),o==="<"&&(u="-0"),s=`${o+i}.${n}.${p}${u}`):m?s=`>=${i}.0.0${u} <${+i+1}.0.0-0`:f&&(s=`>=${i}.${n}.0${u} <${i}.${+n+1}.0-0`),T("xRange return",s),s})},Nn=(r,e)=>(T("replaceStars",r,e),r.trim().replace(B[D.STAR],"")),An=(r,e)=>(T("replaceGTE0",r,e),r.trim().replace(B[e.includePrerelease?D.GTE0PRE:D.GTE0],"")),kn=r=>(e,t,s,o,i,n,p,u,l,m,f,P)=>(q(s)?t="":q(o)?t=`>=${s}.0.0${r?"-0":""}`:q(i)?t=`>=${s}.${o}.0${r?"-0":""}`:n?t=`>=${t}`:t=`>=${t}${r?"-0":""}`,q(l)?u="":q(m)?u=`<${+l+1}.0.0-0`:q(f)?u=`<${l}.${+m+1}.0-0`:P?u=`<=${l}.${m}.${f}-${P}`:r?u=`<${l}.${m}.${+f+1}-0`:u=`<=${u}`,`${t} ${u}`.trim()),Dn=(r,e,t)=>{for(let s=0;s<r.length;s++)if(!r[s].test(e))return!1;if(e.prerelease.length&&!t.includePrerelease){for(let s=0;s<r.length;s++)if(T(r[s].semver),r[s].semver!==It.ANY&&r[s].semver.prerelease.length>0){let o=r[s].semver;if(o.major===e.major&&o.minor===e.minor&&o.patch===e.patch)return!0}return!1}return!0}});var he=v((Nu,Io)=>{"use strict";a();var Ee=Symbol("SemVer ANY"),Ot=class r{static get ANY(){return Ee}constructor(e,t){if(t=Ro(t),e instanceof r){if(e.loose===!!t.loose)return e;e=e.value}e=e.trim().split(/\s+/).join(" "),Tt("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===Ee?this.value="":this.value=this.operator+this.semver.version,Tt("comp",this)}parse(e){let t=this.options.loose?bo[So.COMPARATORLOOSE]:bo[So.COMPARATOR],s=e.match(t);if(!s)throw new TypeError(`Invalid comparator: ${e}`);this.operator=s[1]!==void 0?s[1]:"",this.operator==="="&&(this.operator=""),s[2]?this.semver=new wo(s[2],this.options.loose):this.semver=Ee}toString(){return this.value}test(e){if(Tt("Comparator.test",e,this.options.loose),this.semver===Ee||e===Ee)return!0;if(typeof e=="string")try{e=new wo(e,this.options)}catch{return!1}return Lt(e,this.operator,this.semver,this.options)}intersects(e,t){if(!(e instanceof r))throw new TypeError("a Comparator is required");return this.operator===""?this.value===""?!0:new Co(e.value,t).test(this.value):e.operator===""?e.value===""?!0:new Co(this.value,t).test(e.semver):(t=Ro(t),t.includePrerelease&&(this.value==="<0.0.0-0"||e.value==="<0.0.0-0")||!t.includePrerelease&&(this.value.startsWith("<0.0.0")||e.value.startsWith("<0.0.0"))?!1:!!(this.operator.startsWith(">")&&e.operator.startsWith(">")||this.operator.startsWith("<")&&e.operator.startsWith("<")||this.semver.version===e.semver.version&&this.operator.includes("=")&&e.operator.includes("=")||Lt(this.semver,"<",e.semver,t)&&this.operator.startsWith(">")&&e.operator.startsWith("<")||Lt(this.semver,">",e.semver,t)&&this.operator.startsWith("<")&&e.operator.startsWith(">")))}};Io.exports=Ot;var Ro=ke(),{safeRe:bo,t:So}=se(),Lt=St(),Tt=de(),wo=k(),Co=F()});var ye=v((ku,Lo)=>{"use strict";a();var Bn=F(),qn=(r,e,t)=>{try{e=new Bn(e,t)}catch{return!1}return e.test(r)};Lo.exports=qn});var Oo=v((Bu,To)=>{"use strict";a();var jn=F(),Mn=(r,e)=>new jn(r,e).set.map(t=>t.map(s=>s.value).join(" ").trim().split(" "));To.exports=Mn});var Ao=v((ju,No)=>{"use strict";a();var Fn=k(),_n=F(),Gn=(r,e,t)=>{let s=null,o=null,i=null;try{i=new _n(e,t)}catch{return null}return r.forEach(n=>{i.test(n)&&(!s||o.compare(n)===-1)&&(s=n,o=new Fn(s,t))}),s};No.exports=Gn});var Do=v((Fu,ko)=>{"use strict";a();var Hn=k(),Vn=F(),Un=(r,e,t)=>{let s=null,o=null,i=null;try{i=new Vn(e,t)}catch{return null}return r.forEach(n=>{i.test(n)&&(!s||o.compare(n)===1)&&(s=n,o=new Hn(s,t))}),s};ko.exports=Un});var jo=v((Gu,qo)=>{"use strict";a();var Nt=k(),Xn=F(),Bo=ge(),zn=(r,e)=>{r=new Xn(r,e);let t=new Nt("0.0.0");if(r.test(t)||(t=new Nt("0.0.0-0"),r.test(t)))return t;t=null;for(let s=0;s<r.set.length;++s){let o=r.set[s],i=null;o.forEach(n=>{let p=new Nt(n.semver.version);switch(n.operator){case">":p.prerelease.length===0?p.patch++:p.prerelease.push(0),p.raw=p.format();case"":case">=":(!i||Bo(p,i))&&(i=p);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${n.operator}`)}}),i&&(!t||Bo(t,i))&&(t=i)}return t&&r.test(t)?t:null};qo.exports=zn});var Fo=v((Vu,Mo)=>{"use strict";a();var Wn=F(),Yn=(r,e)=>{try{return new Wn(r,e).range||"*"}catch{return null}};Mo.exports=Yn});var Ue=v((Xu,Vo)=>{"use strict";a();var Kn=k(),Ho=he(),{ANY:Jn}=Ho,Zn=F(),Qn=ye(),_o=ge(),Go=Fe(),ea=Ge(),ta=_e(),ra=(r,e,t,s)=>{r=new Kn(r,s),e=new Zn(e,s);let o,i,n,p,u;switch(t){case">":o=_o,i=ea,n=Go,p=">",u=">=";break;case"<":o=Go,i=ta,n=_o,p="<",u="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(Qn(r,e,s))return!1;for(let l=0;l<e.set.length;++l){let m=e.set[l],f=null,P=null;if(m.forEach(d=>{d.semver===Jn&&(d=new Ho(">=0.0.0")),f=f||d,P=P||d,o(d.semver,f.semver,s)?f=d:n(d.semver,P.semver,s)&&(P=d)}),f.operator===p||f.operator===u||(!P.operator||P.operator===p)&&i(r,P.semver))return!1;if(P.operator===u&&n(r,P.semver))return!1}return!0};Vo.exports=ra});var Xo=v((Wu,Uo)=>{"use strict";a();var oa=Ue(),sa=(r,e,t)=>oa(r,e,">",t);Uo.exports=sa});var Wo=v((Ku,zo)=>{"use strict";a();var ia=Ue(),na=(r,e,t)=>ia(r,e,"<",t);zo.exports=na});var Jo=v((Zu,Ko)=>{"use strict";a();var Yo=F(),aa=(r,e,t)=>(r=new Yo(r,t),e=new Yo(e,t),r.intersects(e,t));Ko.exports=aa});var Qo=v((ep,Zo)=>{"use strict";a();var la=ye(),ca=M();Zo.exports=(r,e,t)=>{let s=[],o=null,i=null,n=r.sort((m,f)=>ca(m,f,t));for(let m of n)la(m,e,t)?(i=m,o||(o=m)):(i&&s.push([o,i]),i=null,o=null);o&&s.push([o,null]);let p=[];for(let[m,f]of s)m===f?p.push(m):!f&&m===n[0]?p.push("*"):f?m===n[0]?p.push(`<=${f}`):p.push(`${m} - ${f}`):p.push(`>=${m}`);let u=p.join(" || "),l=typeof e.raw=="string"?e.raw:String(e);return u.length<l.length?u:e}});var is=v((rp,ss)=>{"use strict";a();var es=F(),kt=he(),{ANY:At}=kt,Pe=ye(),Dt=M(),ua=(r,e,t={})=>{if(r===e)return!0;r=new es(r,t),e=new es(e,t);let s=!1;e:for(let o of r.set){for(let i of e.set){let n=fa(o,i,t);if(s=s||n!==null,n)continue e}if(s)return!1}return!0},pa=[new kt(">=0.0.0-0")],ts=[new kt(">=0.0.0")],fa=(r,e,t)=>{if(r===e)return!0;if(r.length===1&&r[0].semver===At){if(e.length===1&&e[0].semver===At)return!0;t.includePrerelease?r=pa:r=ts}if(e.length===1&&e[0].semver===At){if(t.includePrerelease)return!0;e=ts}let s=new Set,o,i;for(let d of r)d.operator===">"||d.operator===">="?o=rs(o,d,t):d.operator==="<"||d.operator==="<="?i=os(i,d,t):s.add(d.semver);if(s.size>1)return null;let n;if(o&&i){if(n=Dt(o.semver,i.semver,t),n>0)return null;if(n===0&&(o.operator!==">="||i.operator!=="<="))return null}for(let d of s){if(o&&!Pe(d,String(o),t)||i&&!Pe(d,String(i),t))return null;for(let L of e)if(!Pe(d,String(L),t))return!1;return!0}let p,u,l,m,f=i&&!t.includePrerelease&&i.semver.prerelease.length?i.semver:!1,P=o&&!t.includePrerelease&&o.semver.prerelease.length?o.semver:!1;f&&f.prerelease.length===1&&i.operator==="<"&&f.prerelease[0]===0&&(f=!1);for(let d of e){if(m=m||d.operator===">"||d.operator===">=",l=l||d.operator==="<"||d.operator==="<=",o){if(P&&d.semver.prerelease&&d.semver.prerelease.length&&d.semver.major===P.major&&d.semver.minor===P.minor&&d.semver.patch===P.patch&&(P=!1),d.operator===">"||d.operator===">="){if(p=rs(o,d,t),p===d&&p!==o)return!1}else if(o.operator===">="&&!Pe(o.semver,String(d),t))return!1}if(i){if(f&&d.semver.prerelease&&d.semver.prerelease.length&&d.semver.major===f.major&&d.semver.minor===f.minor&&d.semver.patch===f.patch&&(f=!1),d.operator==="<"||d.operator==="<="){if(u=os(i,d,t),u===d&&u!==i)return!1}else if(i.operator==="<="&&!Pe(i.semver,String(d),t))return!1}if(!d.operator&&(i||o)&&n!==0)return!1}return!(o&&l&&!i&&n!==0||i&&m&&!o&&n!==0||P||f)},rs=(r,e,t)=>{if(!r)return e;let s=Dt(r.semver,e.semver,t);return s>0?r:s<0||e.operator===">"&&r.operator===">="?e:r},os=(r,e,t)=>{if(!r)return e;let s=Dt(r.semver,e.semver,t);return s<0?r:s>0||e.operator==="<"&&r.operator==="<="?e:r};ss.exports=ua});var cs=v((sp,ls)=>{"use strict";a();var Bt=se(),ns=me(),ma=k(),as=xt(),da=Q(),ga=Nr(),ha=kr(),Ea=qr(),ya=Fr(),Pa=Gr(),xa=Vr(),$a=Xr(),va=Wr(),Ra=M(),ba=Zr(),Sa=eo(),wa=Me(),Ca=so(),Ia=no(),La=ge(),Ta=Fe(),Oa=Rt(),Na=bt(),Aa=_e(),ka=Ge(),Da=St(),Ba=ho(),qa=he(),ja=F(),Ma=ye(),Fa=Oo(),_a=Ao(),Ga=Do(),Ha=jo(),Va=Fo(),Ua=Ue(),Xa=Xo(),za=Wo(),Wa=Jo(),Ya=Qo(),Ka=is();ls.exports={parse:da,valid:ga,clean:ha,inc:Ea,diff:ya,major:Pa,minor:xa,patch:$a,prerelease:va,compare:Ra,rcompare:ba,compareLoose:Sa,compareBuild:wa,sort:Ca,rsort:Ia,gt:La,lt:Ta,eq:Oa,neq:Na,gte:Aa,lte:ka,cmp:Da,coerce:Ba,Comparator:qa,Range:ja,satisfies:Ma,toComparators:Fa,maxSatisfying:_a,minSatisfying:Ga,minVersion:Ha,validRange:Va,outside:Ua,gtr:Xa,ltr:za,intersects:Wa,simplifyRange:Ya,subset:Ka,SemVer:ma,re:Bt.re,src:Bt.src,tokens:Bt.t,SEMVER_SPEC_VERSION:ns.SEMVER_SPEC_VERSION,RELEASE_TYPES:ns.RELEASE_TYPES,compareIdentifiers:as.compareIdentifiers,rcompareIdentifiers:as.rcompareIdentifiers}});import{z as G}from"zod";import Ja from"path";function ps(r,e){let t=[],s=new Set;for(let o of r){let i=Za.safeParse(o);if(!i.success)throw new oe(o.name||"unknown",i.error.issues.map(p=>`${p.path.join(".")}: ${p.message}`).join(", "));let n=i.data;if(s.has(n.name))throw new oe(n.name,"Duplicate plugin name detected");if(s.add(n.name),n.boltdocsVersion&&!us.default.satisfies(e,n.boltdocsVersion))throw new Oe(n.name,`Plugin expects Boltdocs version ${n.boltdocsVersion}, but current is ${e}`);if(n.components){for(let[p,u]of Object.entries(n.components))if((u.includes("..")||Ja.isAbsolute(u))&&u.includes(".."))throw new oe(n.name,`Component '${p}' has an invalid path: traversal sequences are not allowed.`)}t.push(n)}return t}function ie(r,e){return r.permissions?r.permissions.includes(e):!1}var us,Za,qt=I(()=>{"use strict";a();us=As(cs());ct();fe();Za=lt.extend({version:G.string().optional(),boltdocsVersion:G.string().optional(),permissions:G.array(G.string()).optional(),hooks:G.object({beforeBuild:G.function().optional(),afterBuild:G.function().optional(),beforeDev:G.function().optional(),afterDev:G.function().optional(),configResolved:G.function().optional(),buildEnd:G.function().optional()}).optional()})});var W,jt=I(()=>{"use strict";a();fe();qt();W=class{static checkPermission(e,t){if(!ie(e,t))throw new pe(e.name,t)}static getSanitizedCapabilities(e){return{remarkPlugins:ie(e,"mdx:remark")?e.remarkPlugins:[],rehypePlugins:ie(e,"mdx:rehype")?e.rehypePlugins:[],vitePlugins:ie(e,"vite:config")?e.vitePlugins:[],components:ie(e,"components")?e.components:{}}}static async executeWithIsolation(e,t,s,o){try{return this.checkPermission(e,t),await o()}catch(i){if(i instanceof pe){console.warn(`[boltdocs] Skipping hook '${s}' for plugin '${e.name}': ${i.message}`);return}throw i}}}});var Xe,fs=I(()=>{"use strict";a();fe();Et();jt();Xe=class{plugins;config;store;constructor(e,t){this.plugins=e,this.config=t,this.store=new Ae}async runHook(e,...t){let s=this.getSortedPlugins();for(let o of s){if(!o.hooks?.[e])continue;let i=this.createContext(o),n=e.toLowerCase().includes("build"),p=e.toLowerCase().includes("dev"),u=n?"hooks:build":p?"hooks:dev":void 0;try{u?await W.executeWithIsolation(o,u,e,()=>o.hooks[e](i,...t)):await o.hooks[e](i,...t)}catch(l){let m=new Ne(o.name,e,l instanceof Error?l:new Error(String(l)));i.logger.error(m)}}}getSortedPlugins(){let e=this.plugins.filter(o=>o.enforce==="pre"),t=this.plugins.filter(o=>!o.enforce),s=this.plugins.filter(o=>o.enforce==="post");return[...e,...t,...s]}createContext(e){return{config:Object.freeze({...this.config}),meta:{name:e.name,version:e.version,boltdocsVersion:e.boltdocsVersion},store:{get:(t,s)=>this.store.get(t,s),set:(t,s,o)=>this.store.set(t,s,o),has:(t,s)=>this.store.has(t,s)},logger:this.createLogger(e.name)}}createLogger(e){let t=`[plugin:${e}]`;return{info:s=>console.log(`${t} INFO: ${s}`),warn:s=>console.warn(`${t} WARN: ${s}`),error:s=>{let o=s instanceof Error?s.message:s;console.error(`${t} ERROR: ${o}`)},debug:s=>console.debug(`${t} DEBUG: ${s}`)}}}});function $p(r){return r}var ze=I(()=>{"use strict";a();Pr();fe();Et();qt();jt();fs()});var ms=I(()=>{"use strict";a()});import{loadEnv as Qa}from"vite";import{ViteImageOptimizer as el}from"vite-plugin-image-optimizer";import V from"path";import ds from"fs";function gs(r={},e){let t=V.resolve(process.cwd(),r.docsDir||"docs"),s=_(t),o=e,i,n=!1,p,u=[];return[{name:"vite-plugin-boltdocs",enforce:"pre",async config(l,m){n=m.command==="build";let f=l.envDir||process.cwd(),P=Qa(m.mode,f,"");Object.assign(process.env,P),o||(o=await Z(t));let d=(await import("./package-QFIAETHR.mjs")).version,L=ps(o.plugins||[],d);return o.plugins=L,p=new Xe(L,o),u=L.flatMap($=>W.getSanitizedCapabilities($).vitePlugins||[]),n&&await p.runHook("beforeBuild"),{resolve:{alias:[{find:/^(.*)\/?use-sync-external-store\/shim(?:.*)$/,replacement:"\0virtual:boltdocs-usesync-shim"},{find:/^(.*)\/?use-sync-external-store$/,replacement:"\0virtual:boltdocs-usesync-shim"}]},optimizeDeps:{include:["react","react-dom"],exclude:["boltdocs","boltdocs/client","boltdocs/hooks","boltdocs/primitives","boltdocs/base-ui","boltdocs/mdx","boltdocs/integrations","boltdocs/client/hooks","boltdocs/client/primitives"]}}},configResolved(l){i=l,p?.runHook("configResolved",o)},async configureServer(l){await p?.runHook("beforeDev"),l.middlewares.use((b,w,S)=>{process.env.NODE_ENV==="production"&&Object.entries(Le).forEach(([A,C])=>{w.setHeader(A,C)}),o.security?.enableCSP&&w.setHeader("Content-Security-Policy",Te(o)),S()}),l.middlewares.use((b,w,S)=>{if(b.url==="/robots.txt"){let O=Ce(o);w.statusCode=200,w.setHeader("Content-Type","text/plain"),w.end(O);return}S()}),l.middlewares.use(async(b,w,S)=>{let O=b.url?.split("?")[0]||"/",A=b.headers.accept||"",C=O==="/"||O.startsWith("/docs")||o.i18n&&Object.keys(o.i18n.locales).some(j=>O.startsWith(`/${j}/docs`)||O===`/${j}`)||!0,Y=/\.(js|css|png|jpe?g|gif|svg|ico|webp|woff2?|ttf|otf|mp4|webm|ogg|mp3|wav|flac|aac|pdf|zip|gz|map|json)$/i.test(O);if(A.includes("text/html")&&!Y&&C){let j=gr(o);j=dt(j,o),j=await l.transformIndexHtml(b.url||"/",j),w.statusCode=200,w.setHeader("Content-Type","text/html"),w.end(j);return}S()});let m=Se.map(b=>V.resolve(process.cwd(),b)),f=["tsx","jsx"],P=f.map(b=>V.resolve(t,`layout.${b}`)),d=["tsx","ts","jsx","js"],L=d.map(b=>V.resolve(t,`mdx-components.${b}`)),$=d.map(b=>V.resolve(t,`pages-external/index.${b}`));l.watcher.add([...m,...L,...P,...$]);let x=async(b,w)=>{try{let S=_(b);if(Se.some(C=>S.endsWith(C))){l.restart();return}if(d.some(C=>S.endsWith(`mdx-components.${C}`))){let C=l.moduleGraph.getModuleById("\0virtual:boltdocs-mdx-components");C&&l.moduleGraph.invalidateModule(C),l.ws.send({type:"full-reload"});return}if(f.some(C=>S.endsWith(`layout.${C}`))){let C=l.moduleGraph.getModuleById("\0virtual:boltdocs-layout");C&&l.moduleGraph.invalidateModule(C),l.ws.send({type:"full-reload"});return}if(S.includes("/pages-external/")||S.includes("\\pages-external\\")){let C=l.moduleGraph.getModuleById("\0virtual:boltdocs-entry");C&&l.moduleGraph.invalidateModule(C),l.ws.send({type:"full-reload"});return}if(!S.startsWith(s)||!Xt(S))return;if(w==="add"||w==="unlink"){st(),o=await Z(t);let C=l.moduleGraph.getModuleById("\0virtual:boltdocs-config");C&&l.moduleGraph.invalidateModule(C),l.ws.send({type:"custom",event:"boltdocs:config-update",data:{theme:o?.theme,i18n:o?.i18n,versions:o?.versions,siteUrl:o?.siteUrl}})}else it(b);let O=await te(t,o,"/docs",w!=="change"),A=l.moduleGraph.getModuleById("\0virtual:boltdocs-routes");A&&l.moduleGraph.invalidateModule(A),l.ws.send({type:"custom",event:"boltdocs:routes-update",data:O})}catch(S){console.error(`[boltdocs] HMR error during ${w} event:`,S)}};l.watcher.on("add",b=>x(b,"add")),l.watcher.on("unlink",b=>x(b,"unlink")),l.watcher.on("change",b=>x(b,"change")),await p?.runHook("afterDev")},resolveId(l){if(l==="virtual:boltdocs-routes"||l==="virtual:boltdocs-config"||l==="virtual:boltdocs-entry"||l==="virtual:boltdocs-mdx-components"||l==="virtual:boltdocs-layout"||l==="virtual:boltdocs-search")return"\0"+l;if((l.includes("use-sync-external-store/shim")||l==="use-sync-external-store"||l.endsWith("use-sync-external-store/index.js"))&&!l.includes("with-selector"))return"\0virtual:boltdocs-usesync-shim"},async load(l){if(l==="\0virtual:boltdocs-usesync-shim")return`import * as React from 'react';
|
|
71
|
-
export const useSyncExternalStore = React.useSyncExternalStore;
|
|
72
|
-
export default React.useSyncExternalStore;`;if(l==="\0virtual:boltdocs-routes"){let m=await te(t,o);return`export default ${JSON.stringify(m,null,2)};`}if(l==="\0virtual:boltdocs-config"){let m={theme:o?.theme,i18n:o?.i18n,versions:o?.versions,siteUrl:o?.siteUrl,plugins:o?.plugins?.map(f=>({name:f.name}))};return`export default ${JSON.stringify(m,null,2)};`}if(l==="\0virtual:boltdocs-entry")return mr(r,o);if(l==="\0virtual:boltdocs-mdx-components"){let m=["tsx","ts","jsx","js"],f=null;for(let P of m){let d=V.resolve(t,`mdx-components.${P}`);if(ds.existsSync(d)){f=d;break}}if(f){let P=_(f);return`import * as components from '${P}';
|
|
73
|
-
const mdxComponents = components.default || components;
|
|
74
|
-
export default mdxComponents;
|
|
75
|
-
export * from '${P}';`}return"export default {};"}if(l==="\0virtual:boltdocs-layout"){let m=["tsx","jsx"],f=null;for(let P of m){let d=V.resolve(t,`layout.${P}`);if(ds.existsSync(d)){f=d;break}}return f?`import UserLayout from '${_(f)}';
|
|
76
|
-
export default UserLayout;`:`import { DefaultLayout } from 'boltdocs/client';
|
|
77
|
-
export default DefaultLayout;`}if(l==="\0virtual:boltdocs-search"){let m=await te(t,o),f=Er(m);return`export default ${JSON.stringify(f,null,2)};`}},transformIndexHtml:{order:"pre",handler(l){return dt(l,o)}},async closeBundle(){if(!n)return;let l=i?.build?.outDir?V.resolve(i.root,i.build.outDir):V.resolve(process.cwd(),"dist"),m=V.basename(t||"docs");await ft({docsDir:t,docsDirName:m,outDir:l,config:o});let{flushCache:f}=await import("./cache-3FOEPC2P.mjs");await f(),await p?.runHook("afterBuild"),await p?.runHook("buildEnd")}},el({includePublic:!0,png:{quality:80},jpeg:{quality:80},jpg:{quality:80},webp:{quality:80},avif:{quality:80},svg:{multipass:!0,plugins:[{name:"preset-default"}]}}),{name:"vite-plugin-boltdocs-extra-plugins",async configResolved(){}},...u]}var hs=I(()=>{"use strict";a();at();we();mt();J();dr();hr();pt();yr();gt();ht();ze();ms()});var Es,ne,ys=I(()=>{"use strict";a();Jt();Es="v4",ne=new Kt("mdx")});import{createHighlighter as tl}from"shiki";async function Ye(r){if(We)return We;let e=typeof r=="object"?[r.light,r.dark]:[r??"github-dark"];return["github-light","github-dark"].forEach(t=>{e.includes(t)||e.push(t)}),We=await tl({themes:e,langs:["tsx","jsx","ts","js","json","md","mdx","css","html","bash","sh","yaml","yml"]}),We}var We,Mt=I(()=>{"use strict";a();We=null});import{visit as rl}from"unist-util-visit";function Ps(r){return async e=>{let t=r?.theme?.codeTheme??{light:"github-light",dark:"github-dark"},s=await Ye(t);rl(e,["mdxJsxFlowElement","mdxJsxTextElement"],o=>{if(o.name!=="ComponentPreview")return;let i=o.attributes?.find(l=>l.name==="code"),n="";if(i){if(typeof i.value=="string")n=i.value;else if(i.value?.type==="mdxJsxAttributeValueExpression"){let l=i.value.value??"";n=l.match(/^[`'"]([\s\S]+)[`'"]$/)?.[1]??l}}if(!n)return;let p=typeof t=="object"?{themes:{light:t.light,dark:t.dark},lang:"tsx"}:{theme:t,lang:"tsx"},u=s.codeToHtml(n,p);o.attributes=(o.attributes??[]).filter(l=>l.name!=="highlightedHtml"),o.attributes.push({type:"mdxJsxAttribute",name:"highlightedHtml",value:u})})}}var xs=I(()=>{"use strict";a();Mt()});import{visit as ol}from"unist-util-visit";function $s(r){return async e=>{let t=r?.theme?.codeTheme||{light:"github-light",dark:"github-dark"},s=await Ye(t);ol(e,"element",o=>{if(o.tagName==="pre"&&o.children?.[0]?.tagName==="code"){let i=o.children[0],p=(i.properties?.className||[]).find($=>$.startsWith("language-")),u=p?p.slice(9):"text",l=i.children[0]?.value||"",f=(i.data?.meta||i.properties?.metastring||"").match(/title\s*=\s*"([^"]*)"/),P=f?f[1]:void 0,d={lang:u};typeof t=="object"?d.themes={light:t.light,dark:t.dark}:d.theme=t;let L=s.codeToHtml(l,d);o.properties["data-highlighted"]="true",o.properties["data-highlighted-html"]=L,o.properties["data-lang"]=u,P&&(o.properties.title=P),o.children=[]}})}}var vs=I(()=>{"use strict";a();Mt()});import{visit as sl}from"unist-util-visit";function Rs(){return r=>{sl(r,"code",e=>{if(e.data=e.data||{},e.data.hProperties=e.data.hProperties||{},e.lang&&(e.data.hProperties["data-lang"]=e.lang),!e.meta)return;let t=e.meta,s=t.match(/title\s*=\s*"([^"]*)"/);s&&(e.data.hProperties.title=s[1]),e.data.hProperties.metastring=t})}}var bs=I(()=>{"use strict";a()});import il from"@mdx-js/rollup";import nl from"remark-gfm";import al from"remark-frontmatter";import ll from"rehype-slug";import cl from"crypto";function ws(r,e=il){let t=r?.plugins?.flatMap(i=>W.getSanitizedCapabilities(i).remarkPlugins||[])||[],s=r?.plugins?.flatMap(i=>W.getSanitizedCapabilities(i).rehypePlugins||[])||[],o=e({remarkPlugins:[nl,al,Rs,[Ps,r],...t],rehypePlugins:[ll,[$s,r],...s],jsxRuntime:"automatic"});return{...o,name:"vite-plugin-boltdocs-mdx",async buildStart(){Ke=0,xe=0,Ss||(ne.load(),Ss=!0),o.buildStart&&await o.buildStart.call(this)},async transform(i,n,p){if(!n.endsWith(".md")&&!n.endsWith(".mdx"))return o.transform?.call(this,i,n,p);console.log(`[boltdocs] Transforming MDX: ${n}`),xe++;let u=cl.createHash("md5").update(i).digest("hex"),l=`${n}:${u}:${Es}`,m=ne.get(l);if(m)return Ke++,{code:m,map:null};let f=await o.transform.call(this,i,n,p);return f&&typeof f=="object"&&f.code&&ne.set(l,f.code),f},async buildEnd(){xe>0&&console.log(`[boltdocs] MDX Cache Performance: ${Ke}/${xe} hits (${Math.round(Ke/xe*100)||0}%)`),ne.save(),await ne.flush(),o.buildEnd&&await o.buildEnd.call(this)}}}var Ss,Ke,xe,Cs=I(()=>{"use strict";a();ys();xs();vs();bs();ze();Ss=!1,Ke=0,xe=0});import ul from"@vitejs/plugin-react";import pl from"@tailwindcss/vite";async function Is(r){let e=r?.docsDir||"docs",t=await Z(e),s={...r,homePage:r?.homePage||t.homePage};return[...gs(s,t),ws(t)]}async function Nf(r,e="development"){let t=await Z("docs",r),o=e==="production"?{...Le}:{};return t.security?.enableCSP&&(o["Content-Security-Policy"]=Te(t)),{root:r,mode:e,plugins:[ul(),pl(),await Is({docsDir:t.docsDir,homePage:t.homePage})],server:{headers:{...o,...t.vite?.server?.headers},...t.vite?.server},preview:{headers:{...o,...t.vite?.preview?.headers},...t.vite?.preview},...t.vite}}var fl=I(()=>{a();hs();Cs();gt();ht();we();mt();we();ze()});export{Js as a,Z as b,we as c,ft as d,gr as e,hr as f,re as g,oe as h,Oe as i,pe as j,Ne as k,Ae as l,Za as m,ps as n,ie as o,W as p,Xe as q,$p as r,Is as s,Nf as t,fl as u};
|