boltdocs 3.3.5 → 3.3.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{build-BVoMHMhw.mjs → build-BJnL-FHG.mjs} +1 -1
- package/dist/{build-B672n0hL.cjs → build-CxT38vPv.cjs} +1 -1
- package/dist/client/index.cjs +29 -12
- package/dist/client/index.d.cts +1 -1
- package/dist/client/index.d.ts +1 -1
- package/dist/client/index.js +27 -11
- package/dist/client/mdx.cjs +1 -1
- package/dist/client/mdx.js +1 -1
- package/dist/client/primitives.cjs +4 -4
- package/dist/client/primitives.d.cts +40 -9
- package/dist/client/primitives.d.ts +40 -9
- package/dist/client/primitives.js +4 -4
- package/dist/config-B3_iVsbi.mjs +7 -0
- package/dist/{config-PLvresCv.cjs → config-BC_qhXws.cjs} +1 -1
- package/dist/config-BJp3lGzE.cjs +7 -0
- package/dist/{dev-DbuhNcF5.cjs → dev-46NiL0MC.cjs} +1 -1
- package/dist/{dev-B49V6O6p.mjs → dev-C4kjO5xs.mjs} +1 -1
- package/dist/{docs-layout-CbZ7LDRe.js → docs-layout-D3Fmb0Wd.js} +16 -117
- package/dist/{docs-layout-vzfXed1Q.cjs → docs-layout-SgphExoE.cjs} +16 -123
- package/dist/{doctor-DMECtdK6.cjs → doctor-BqxOFRt3.cjs} +1 -1
- package/dist/{doctor-i8Qmd8DJ.mjs → doctor-Cv5lXnay.mjs} +1 -1
- package/dist/{doctor-FuFY1jBz.cjs → doctor-TS3JGNEU.cjs} +1 -1
- package/dist/{image-B-NDSDuY.js → image-BAiDReNd.js} +1 -1
- package/dist/{image-Hnaa2bJd.cjs → image-Bkx85rsq.cjs} +1 -1
- package/dist/{index-B3o307nd.d.ts → index-B1Mx0dHl.d.ts} +24 -4
- package/dist/{index-Bg-JtZeK.d.cts → index-DLaHgD-i.d.cts} +24 -4
- package/dist/{link-vZjmD-es.cjs → link-hLWOsx0x.cjs} +59 -28
- package/dist/{link-CgdI6O2o.js → link-q1qHNGK_.js} +54 -29
- package/dist/{mdx-BRT71V5Q.js → mdx-CJGWzBGy.js} +2 -2
- package/dist/{mdx-D0Absdq5.cjs → mdx-Qi0DmaY8.cjs} +2 -2
- package/dist/node/cli-entry.cjs +1 -1
- package/dist/node/cli-entry.mjs +1 -1
- package/dist/node/highlight.d.cts +2 -2
- package/dist/node/highlight.d.mts +2 -2
- package/dist/node/index.cjs +1 -1
- package/dist/node/index.d.cts +7 -4
- package/dist/node/index.d.mts +7 -4
- package/dist/node/index.mjs +1 -1
- package/dist/node/mdx/shiki-adapter.cjs +1 -1
- package/dist/node/mdx/shiki-adapter.d.cts +7 -2
- package/dist/node/mdx/shiki-adapter.d.mts +7 -2
- package/dist/node/mdx/shiki-adapter.mjs +1 -1
- package/dist/node-7Cfw6nMr.cjs +23 -0
- package/dist/node-CT2E84nY.mjs +23 -0
- package/dist/{package-CNqjEYE1.cjs → package-Bah2tHjK.cjs} +1 -1
- package/dist/{package-sdcKhDhe.mjs → package-D6bf68FR.mjs} +1 -1
- package/dist/plugin-AgNI3ktz.cjs +69 -0
- package/dist/plugin-BAv_pYLt.mjs +69 -0
- package/dist/{plugin-context-CscLcXjH.cjs → plugin-context-BZs5lvDu.cjs} +2 -2
- package/dist/{plugin-context-DuSg-Hax.mjs → plugin-context-b5qVVQSU.mjs} +1 -1
- package/dist/{plugin-lifecycle-BywrEoWK.cjs → plugin-lifecycle-s89gzTlh.cjs} +1 -1
- package/dist/{registry-sJqDv0kE.d.mts → registry-B8pt41zj.d.cts} +1 -1
- package/dist/{registry-BbB6NqSv.d.cts → registry-BrrH2X9c.d.mts} +1 -1
- package/dist/routes-CzhKOw67.cjs +6 -0
- package/dist/{routes-C3_w9fLX.cjs → routes-Dq_2EUIB.cjs} +1 -1
- package/dist/routes-Dw6g0bfF.mjs +6 -0
- package/dist/search-dialog-BYZS9aeO.cjs +747 -0
- package/dist/{search-dialog-x_qHU8ty.cjs → search-dialog-CguKVtUu.cjs} +145 -5
- package/dist/{search-dialog-B9mdxsUC.js → search-dialog-DQwod5Xc.js} +1 -1
- package/dist/search-dialog-DzObE-Ar.js +717 -0
- package/dist/{search-dialog-DCtm2dyR.cjs → search-dialog-QgKRRbsI.cjs} +1 -1
- package/dist/{search-dialog-BqkzDTq2.js → search-dialog-mYnqU4v7.js} +134 -6
- package/dist/{types-Db6zToZH.d.mts → types-74i_xUe2.d.mts} +1 -1
- package/dist/{types-o7iZ2BAR.d.cts → types-X_Pwk8Cg.d.cts} +1 -1
- package/dist/virtual-modules-C3S3Nz8r.cjs +40 -0
- package/dist/virtual-modules-CaxqrFd6.mjs +40 -0
- package/package.json +6 -5
- package/dist/config-CrsQJHQz.cjs +0 -7
- package/dist/config-DC0nMMk7.mjs +0 -7
- package/dist/node-BljvHMpS.cjs +0 -23
- package/dist/node-CWxGw4H4.mjs +0 -23
- package/dist/plugin-BPcm1cU0.mjs +0 -69
- package/dist/plugin-WUhxnpko.cjs +0 -69
- package/dist/routes-C0kb4ue6.cjs +0 -6
- package/dist/routes-C4wrLWwu.mjs +0 -6
- package/dist/search-dialog-Bp_ouN1c.cjs +0 -550
- package/dist/search-dialog-an2BNMj6.js +0 -526
- package/dist/virtual-modules-B2X4Ht2r.mjs +0 -39
- package/dist/virtual-modules-DPsdHKcu.cjs +0 -39
package/dist/node/index.d.cts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
|
|
2
2
|
import { FileCache, flushCache } from "./cache.cjs";
|
|
3
3
|
import { i as handleVercelFeedback, n as handleWebFeedback, r as handleNetlifyFeedback, t as handleAwsFeedback } from "../index-aWC0KjDF.cjs";
|
|
4
|
-
import { C as
|
|
5
|
-
import { a as getHighlighterNames, c as prewarmHighlighter, i as getCodeHighlighterAdapter, l as registerHighlighter, n as DEFAULT_HIGHLIGHTER, o as isHighlighterRegistered, r as HighlighterFactory, s as prewarmCodeHighlighting, t as BUILTIN_HIGHLIGHTERS, u as registerPluginHighlighter } from "../registry-
|
|
4
|
+
import { C as PluginStore, D as StructuredData, E as RouteMeta, S as PluginServerMiddleware, T as RegisteredVirtualModule, _ as PluginContext, a as CodeHighlightConfig, b as PluginLogger, c as CodeHighlighterRuntime, d as ExternalFileRoute, f as IPluginLifecycleManager, g as PluginClientConfig, h as ParsedMetaLike, i as BoltdocsViewTransitionsConfig, l as CodeTheme, m as JsonLdValue, n as BoltdocsExperimentalConfig, o as CodeHighlighterAdapter, p as JsonLdObject, r as BoltdocsThemeConfig, s as CodeHighlighterEngine, t as BoltdocsConfig, u as DiagnosticRecord, v as PluginHmrEvent, w as PluginTransformMiddleware, x as PluginMeta, y as PluginLifecycleHooks } from "../types-X_Pwk8Cg.cjs";
|
|
5
|
+
import { a as getHighlighterNames, c as prewarmHighlighter, i as getCodeHighlighterAdapter, l as registerHighlighter, n as DEFAULT_HIGHLIGHTER, o as isHighlighterRegistered, r as HighlighterFactory, s as prewarmCodeHighlighting, t as BUILTIN_HIGHLIGHTERS, u as registerPluginHighlighter } from "../registry-B8pt41zj.cjs";
|
|
6
6
|
import { InlineConfig, Plugin } from "vite";
|
|
7
7
|
import { normalizeCodeHighlightConfig } from "@bdocs/unist-utils";
|
|
8
8
|
export * from "@bdocs/unist-utils";
|
|
@@ -256,6 +256,7 @@ interface BoltdocsPlugin {
|
|
|
256
256
|
rehypePlugins?: unknown[];
|
|
257
257
|
vitePlugins?: Plugin[];
|
|
258
258
|
components?: Record<string, string>;
|
|
259
|
+
client?: PluginClientConfig;
|
|
259
260
|
metadata?: Record<string, unknown>;
|
|
260
261
|
css?: PluginCssConfig;
|
|
261
262
|
middleware?: PluginTransformMiddleware[];
|
|
@@ -418,7 +419,7 @@ declare function normalizePath(p: string): string;
|
|
|
418
419
|
*/
|
|
419
420
|
declare function sanitizeFilename(name: string): string;
|
|
420
421
|
declare namespace index_d_exports {
|
|
421
|
-
export { ArticleStructuredDataOptions, BUILTIN_HIGHLIGHTERS, BoltdocsConfig, BoltdocsExperimentalConfig, BoltdocsPlugin, BoltdocsPluginOptions, BoltdocsPluginStore, BoltdocsThemeConfig, BoltdocsViewTransitionsConfig, BreadcrumbStructuredDataItem, CodeHighlightConfig, CodeHighlighterAdapter, CodeHighlighterEngine, CodeHighlighterRuntime, CodeTheme, CreateViteConfigOptions, DEFAULT_HIGHLIGHTER, ExternalFileRoute, HighlighterFactory, IPluginLifecycleManager, JsonLdObject, JsonLdValue, ParsedMetaLike, PluginCompatibilityError, PluginContext, PluginCssConfig, PluginError, PluginFactory, PluginHookError, PluginLifecycleHooks, PluginLifecycleManager, PluginLogger, PluginMeta, PluginStore, PluginValidationError, RouteMeta, StructuredData, StructuredDataFactoryOptions, WebSiteStructuredDataOptions, createArticleStructuredData, createBreadcrumbStructuredData, createPlugin, createStructuredData, createViteConfig, createWebSiteStructuredData, boltdocs as default, defineConfig, definePlugin, defineStructuredData, flushCache, generateEntryCode, generateRoutes, getCodeHighlighterAdapter, getHighlighterNames, handleAwsFeedback, handleFeedback, handleNetlifyFeedback, handleVercelFeedback, handleWebFeedback, invalidateRouteCache, isHighlighterRegistered, normalizeCodeHighlightConfig, normalizePath, prewarmCodeHighlighting, prewarmHighlighter, registerHighlighter, registerPluginHighlighter, resolveConfig, resolvePluginHook, sanitizeFilename, validatePlugins };
|
|
422
|
+
export { ArticleStructuredDataOptions, BUILTIN_HIGHLIGHTERS, BoltdocsConfig, BoltdocsExperimentalConfig, BoltdocsPlugin, BoltdocsPluginOptions, BoltdocsPluginStore, BoltdocsThemeConfig, BoltdocsViewTransitionsConfig, BreadcrumbStructuredDataItem, CodeHighlightConfig, CodeHighlighterAdapter, CodeHighlighterEngine, CodeHighlighterRuntime, CodeTheme, CreateViteConfigOptions, DEFAULT_HIGHLIGHTER, ExternalFileRoute, HighlighterFactory, IPluginLifecycleManager, JsonLdObject, JsonLdValue, ParsedMetaLike, PluginCompatibilityError, PluginContext, PluginCssConfig, PluginError, PluginFactory, PluginHookError, PluginLifecycleHooks, PluginLifecycleManager, PluginLogger, PluginMeta, PluginStore, PluginValidationError, RouteMeta, StructuredData, StructuredDataFactoryOptions, WebSiteStructuredDataOptions, createArticleStructuredData, createBreadcrumbStructuredData, createPlugin, createStructuredData, createViteConfig, createWebSiteStructuredData, boltdocs as default, defineConfig, definePlugin, defineStructuredData, flushCache, generateEntryCode, generateRoutes, getCodeHighlighterAdapter, getHighlighterNames, handleAwsFeedback, handleFeedback, handleNetlifyFeedback, handleVercelFeedback, handleWebFeedback, invalidateRouteCache, isHighlighterRegistered, normalizeCodeHighlightConfig, normalizePath, prewarmCodeHighlighting, prewarmHighlighter, registerHighlighter, registerPluginHighlighter, resolveConfig, resolvePluginHook, sanitizeFilename, shouldEnableBundledDev, shouldUseReactPlugin, validatePlugins };
|
|
422
423
|
}
|
|
423
424
|
interface CreateViteConfigOptions {
|
|
424
425
|
/** Pre-computed routes. When provided, route generation is skipped. */
|
|
@@ -432,6 +433,8 @@ interface CreateViteConfigOptions {
|
|
|
432
433
|
/** Static asset directory relative to the project root (default: docs/public). */
|
|
433
434
|
publicDir?: string | false;
|
|
434
435
|
}
|
|
436
|
+
declare function shouldEnableBundledDev(isProduction: boolean, value?: string | undefined): boolean;
|
|
437
|
+
declare function shouldUseReactPlugin(isProduction: boolean, base: string, value?: string | undefined): boolean;
|
|
435
438
|
declare function boltdocs(options?: BoltdocsPluginOptions): Promise<Plugin[]>;
|
|
436
439
|
/**
|
|
437
440
|
* Generates the complete Vite configuration for a Boltdocs project.
|
|
@@ -439,4 +442,4 @@ declare function boltdocs(options?: BoltdocsPluginOptions): Promise<Plugin[]>;
|
|
|
439
442
|
*/
|
|
440
443
|
declare function createViteConfig(root: string, mode?: 'development' | 'production', preResolvedConfig?: BoltdocsConfig, options?: CreateViteConfigOptions): Promise<InlineConfig>;
|
|
441
444
|
//#endregion
|
|
442
|
-
export { type ArticleStructuredDataOptions, BUILTIN_HIGHLIGHTERS, type BoltdocsConfig, type BoltdocsExperimentalConfig, type BoltdocsPlugin, type BoltdocsPluginOptions, BoltdocsPluginStore, type BoltdocsThemeConfig, type BoltdocsViewTransitionsConfig, type BreadcrumbStructuredDataItem, type CodeHighlightConfig, type CodeHighlighterAdapter, type CodeHighlighterEngine, type CodeHighlighterRuntime, type CodeTheme, CreateViteConfigOptions, DEFAULT_HIGHLIGHTER, type ExternalFileRoute, HighlighterFactory, type IPluginLifecycleManager, type JsonLdObject, type JsonLdValue, type ParsedMetaLike, PluginCompatibilityError, type PluginContext, PluginCssConfig, PluginError, PluginFactory, PluginHookError, type PluginLifecycleHooks, PluginLifecycleManager, type PluginLogger, type PluginMeta, type PluginStore, PluginValidationError, type RouteMeta, type StructuredData, type StructuredDataFactoryOptions, type WebSiteStructuredDataOptions, createArticleStructuredData, createBreadcrumbStructuredData, createPlugin, createStructuredData, createViteConfig, createWebSiteStructuredData, boltdocs as default, defineConfig, definePlugin, defineStructuredData, flushCache, generateEntryCode, generateRoutes, getCodeHighlighterAdapter, getHighlighterNames, handleAwsFeedback, handleFeedback, handleNetlifyFeedback, handleVercelFeedback, handleWebFeedback, invalidateRouteCache, isHighlighterRegistered, normalizeCodeHighlightConfig, normalizePath, prewarmCodeHighlighting, prewarmHighlighter, registerHighlighter, registerPluginHighlighter, resolveConfig, resolvePluginHook, sanitizeFilename, validatePlugins };
|
|
445
|
+
export { type ArticleStructuredDataOptions, BUILTIN_HIGHLIGHTERS, type BoltdocsConfig, type BoltdocsExperimentalConfig, type BoltdocsPlugin, type BoltdocsPluginOptions, BoltdocsPluginStore, type BoltdocsThemeConfig, type BoltdocsViewTransitionsConfig, type BreadcrumbStructuredDataItem, type CodeHighlightConfig, type CodeHighlighterAdapter, type CodeHighlighterEngine, type CodeHighlighterRuntime, type CodeTheme, CreateViteConfigOptions, DEFAULT_HIGHLIGHTER, type ExternalFileRoute, HighlighterFactory, type IPluginLifecycleManager, type JsonLdObject, type JsonLdValue, type ParsedMetaLike, PluginCompatibilityError, type PluginContext, PluginCssConfig, PluginError, PluginFactory, PluginHookError, type PluginLifecycleHooks, PluginLifecycleManager, type PluginLogger, type PluginMeta, type PluginStore, PluginValidationError, type RouteMeta, type StructuredData, type StructuredDataFactoryOptions, type WebSiteStructuredDataOptions, createArticleStructuredData, createBreadcrumbStructuredData, createPlugin, createStructuredData, createViteConfig, createWebSiteStructuredData, boltdocs as default, defineConfig, definePlugin, defineStructuredData, flushCache, generateEntryCode, generateRoutes, getCodeHighlighterAdapter, getHighlighterNames, handleAwsFeedback, handleFeedback, handleNetlifyFeedback, handleVercelFeedback, handleWebFeedback, invalidateRouteCache, isHighlighterRegistered, normalizeCodeHighlightConfig, normalizePath, prewarmCodeHighlighting, prewarmHighlighter, registerHighlighter, registerPluginHighlighter, resolveConfig, resolvePluginHook, sanitizeFilename, shouldEnableBundledDev, shouldUseReactPlugin, validatePlugins };
|
package/dist/node/index.d.mts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
|
|
2
2
|
import { FileCache, flushCache } from "./cache.mjs";
|
|
3
3
|
import { i as handleVercelFeedback, n as handleWebFeedback, r as handleNetlifyFeedback, t as handleAwsFeedback } from "../index-HAwIo4nZ.mjs";
|
|
4
|
-
import { C as
|
|
5
|
-
import { a as getHighlighterNames, c as prewarmHighlighter, i as getCodeHighlighterAdapter, l as registerHighlighter, n as DEFAULT_HIGHLIGHTER, o as isHighlighterRegistered, r as HighlighterFactory, s as prewarmCodeHighlighting, t as BUILTIN_HIGHLIGHTERS, u as registerPluginHighlighter } from "../registry-
|
|
4
|
+
import { C as PluginStore, D as StructuredData, E as RouteMeta, S as PluginServerMiddleware, T as RegisteredVirtualModule, _ as PluginContext, a as CodeHighlightConfig, b as PluginLogger, c as CodeHighlighterRuntime, d as ExternalFileRoute, f as IPluginLifecycleManager, g as PluginClientConfig, h as ParsedMetaLike, i as BoltdocsViewTransitionsConfig, l as CodeTheme, m as JsonLdValue, n as BoltdocsExperimentalConfig, o as CodeHighlighterAdapter, p as JsonLdObject, r as BoltdocsThemeConfig, s as CodeHighlighterEngine, t as BoltdocsConfig, u as DiagnosticRecord, v as PluginHmrEvent, w as PluginTransformMiddleware, x as PluginMeta, y as PluginLifecycleHooks } from "../types-74i_xUe2.mjs";
|
|
5
|
+
import { a as getHighlighterNames, c as prewarmHighlighter, i as getCodeHighlighterAdapter, l as registerHighlighter, n as DEFAULT_HIGHLIGHTER, o as isHighlighterRegistered, r as HighlighterFactory, s as prewarmCodeHighlighting, t as BUILTIN_HIGHLIGHTERS, u as registerPluginHighlighter } from "../registry-BrrH2X9c.mjs";
|
|
6
6
|
import { z } from "zod";
|
|
7
7
|
import { normalizeCodeHighlightConfig } from "@bdocs/unist-utils";
|
|
8
8
|
import { InlineConfig, Plugin } from "vite";
|
|
@@ -255,6 +255,7 @@ interface BoltdocsPlugin {
|
|
|
255
255
|
rehypePlugins?: unknown[];
|
|
256
256
|
vitePlugins?: Plugin[];
|
|
257
257
|
components?: Record<string, string>;
|
|
258
|
+
client?: PluginClientConfig;
|
|
258
259
|
metadata?: Record<string, unknown>;
|
|
259
260
|
css?: PluginCssConfig;
|
|
260
261
|
middleware?: PluginTransformMiddleware[];
|
|
@@ -417,7 +418,7 @@ declare function normalizePath(p: string): string;
|
|
|
417
418
|
*/
|
|
418
419
|
declare function sanitizeFilename(name: string): string;
|
|
419
420
|
declare namespace index_d_exports {
|
|
420
|
-
export { ArticleStructuredDataOptions, BUILTIN_HIGHLIGHTERS, BoltdocsConfig, BoltdocsExperimentalConfig, BoltdocsPlugin, BoltdocsPluginOptions, BoltdocsPluginStore, BoltdocsThemeConfig, BoltdocsViewTransitionsConfig, BreadcrumbStructuredDataItem, CodeHighlightConfig, CodeHighlighterAdapter, CodeHighlighterEngine, CodeHighlighterRuntime, CodeTheme, CreateViteConfigOptions, DEFAULT_HIGHLIGHTER, ExternalFileRoute, HighlighterFactory, IPluginLifecycleManager, JsonLdObject, JsonLdValue, ParsedMetaLike, PluginCompatibilityError, PluginContext, PluginCssConfig, PluginError, PluginFactory, PluginHookError, PluginLifecycleHooks, PluginLifecycleManager, PluginLogger, PluginMeta, PluginStore, PluginValidationError, RouteMeta, StructuredData, StructuredDataFactoryOptions, WebSiteStructuredDataOptions, createArticleStructuredData, createBreadcrumbStructuredData, createPlugin, createStructuredData, createViteConfig, createWebSiteStructuredData, boltdocs as default, defineConfig, definePlugin, defineStructuredData, flushCache, generateEntryCode, generateRoutes, getCodeHighlighterAdapter, getHighlighterNames, handleAwsFeedback, handleFeedback, handleNetlifyFeedback, handleVercelFeedback, handleWebFeedback, invalidateRouteCache, isHighlighterRegistered, normalizeCodeHighlightConfig, normalizePath, prewarmCodeHighlighting, prewarmHighlighter, registerHighlighter, registerPluginHighlighter, resolveConfig, resolvePluginHook, sanitizeFilename, validatePlugins };
|
|
421
|
+
export { ArticleStructuredDataOptions, BUILTIN_HIGHLIGHTERS, BoltdocsConfig, BoltdocsExperimentalConfig, BoltdocsPlugin, BoltdocsPluginOptions, BoltdocsPluginStore, BoltdocsThemeConfig, BoltdocsViewTransitionsConfig, BreadcrumbStructuredDataItem, CodeHighlightConfig, CodeHighlighterAdapter, CodeHighlighterEngine, CodeHighlighterRuntime, CodeTheme, CreateViteConfigOptions, DEFAULT_HIGHLIGHTER, ExternalFileRoute, HighlighterFactory, IPluginLifecycleManager, JsonLdObject, JsonLdValue, ParsedMetaLike, PluginCompatibilityError, PluginContext, PluginCssConfig, PluginError, PluginFactory, PluginHookError, PluginLifecycleHooks, PluginLifecycleManager, PluginLogger, PluginMeta, PluginStore, PluginValidationError, RouteMeta, StructuredData, StructuredDataFactoryOptions, WebSiteStructuredDataOptions, createArticleStructuredData, createBreadcrumbStructuredData, createPlugin, createStructuredData, createViteConfig, createWebSiteStructuredData, boltdocs as default, defineConfig, definePlugin, defineStructuredData, flushCache, generateEntryCode, generateRoutes, getCodeHighlighterAdapter, getHighlighterNames, handleAwsFeedback, handleFeedback, handleNetlifyFeedback, handleVercelFeedback, handleWebFeedback, invalidateRouteCache, isHighlighterRegistered, normalizeCodeHighlightConfig, normalizePath, prewarmCodeHighlighting, prewarmHighlighter, registerHighlighter, registerPluginHighlighter, resolveConfig, resolvePluginHook, sanitizeFilename, shouldEnableBundledDev, shouldUseReactPlugin, validatePlugins };
|
|
421
422
|
}
|
|
422
423
|
interface CreateViteConfigOptions {
|
|
423
424
|
/** Pre-computed routes. When provided, route generation is skipped. */
|
|
@@ -431,6 +432,8 @@ interface CreateViteConfigOptions {
|
|
|
431
432
|
/** Static asset directory relative to the project root (default: docs/public). */
|
|
432
433
|
publicDir?: string | false;
|
|
433
434
|
}
|
|
435
|
+
declare function shouldEnableBundledDev(isProduction: boolean, value?: string | undefined): boolean;
|
|
436
|
+
declare function shouldUseReactPlugin(isProduction: boolean, base: string, value?: string | undefined): boolean;
|
|
434
437
|
declare function boltdocs(options?: BoltdocsPluginOptions): Promise<Plugin[]>;
|
|
435
438
|
/**
|
|
436
439
|
* Generates the complete Vite configuration for a Boltdocs project.
|
|
@@ -438,4 +441,4 @@ declare function boltdocs(options?: BoltdocsPluginOptions): Promise<Plugin[]>;
|
|
|
438
441
|
*/
|
|
439
442
|
declare function createViteConfig(root: string, mode?: 'development' | 'production', preResolvedConfig?: BoltdocsConfig, options?: CreateViteConfigOptions): Promise<InlineConfig>;
|
|
440
443
|
//#endregion
|
|
441
|
-
export { type ArticleStructuredDataOptions, BUILTIN_HIGHLIGHTERS, type BoltdocsConfig, type BoltdocsExperimentalConfig, type BoltdocsPlugin, type BoltdocsPluginOptions, BoltdocsPluginStore, type BoltdocsThemeConfig, type BoltdocsViewTransitionsConfig, type BreadcrumbStructuredDataItem, type CodeHighlightConfig, type CodeHighlighterAdapter, type CodeHighlighterEngine, type CodeHighlighterRuntime, type CodeTheme, CreateViteConfigOptions, DEFAULT_HIGHLIGHTER, type ExternalFileRoute, HighlighterFactory, type IPluginLifecycleManager, type JsonLdObject, type JsonLdValue, type ParsedMetaLike, PluginCompatibilityError, type PluginContext, PluginCssConfig, PluginError, PluginFactory, PluginHookError, type PluginLifecycleHooks, PluginLifecycleManager, type PluginLogger, type PluginMeta, type PluginStore, PluginValidationError, type RouteMeta, type StructuredData, type StructuredDataFactoryOptions, type WebSiteStructuredDataOptions, createArticleStructuredData, createBreadcrumbStructuredData, createPlugin, createStructuredData, createViteConfig, createWebSiteStructuredData, boltdocs as default, defineConfig, definePlugin, defineStructuredData, flushCache, generateEntryCode, generateRoutes, getCodeHighlighterAdapter, getHighlighterNames, handleAwsFeedback, handleFeedback, handleNetlifyFeedback, handleVercelFeedback, handleWebFeedback, invalidateRouteCache, isHighlighterRegistered, normalizeCodeHighlightConfig, normalizePath, prewarmCodeHighlighting, prewarmHighlighter, registerHighlighter, registerPluginHighlighter, resolveConfig, resolvePluginHook, sanitizeFilename, validatePlugins };
|
|
444
|
+
export { type ArticleStructuredDataOptions, BUILTIN_HIGHLIGHTERS, type BoltdocsConfig, type BoltdocsExperimentalConfig, type BoltdocsPlugin, type BoltdocsPluginOptions, BoltdocsPluginStore, type BoltdocsThemeConfig, type BoltdocsViewTransitionsConfig, type BreadcrumbStructuredDataItem, type CodeHighlightConfig, type CodeHighlighterAdapter, type CodeHighlighterEngine, type CodeHighlighterRuntime, type CodeTheme, CreateViteConfigOptions, DEFAULT_HIGHLIGHTER, type ExternalFileRoute, HighlighterFactory, type IPluginLifecycleManager, type JsonLdObject, type JsonLdValue, type ParsedMetaLike, PluginCompatibilityError, type PluginContext, PluginCssConfig, PluginError, PluginFactory, PluginHookError, type PluginLifecycleHooks, PluginLifecycleManager, type PluginLogger, type PluginMeta, type PluginStore, PluginValidationError, type RouteMeta, type StructuredData, type StructuredDataFactoryOptions, type WebSiteStructuredDataOptions, createArticleStructuredData, createBreadcrumbStructuredData, createPlugin, createStructuredData, createViteConfig, createWebSiteStructuredData, boltdocs as default, defineConfig, definePlugin, defineStructuredData, flushCache, generateEntryCode, generateRoutes, getCodeHighlighterAdapter, getHighlighterNames, handleAwsFeedback, handleFeedback, handleNetlifyFeedback, handleVercelFeedback, handleWebFeedback, invalidateRouteCache, isHighlighterRegistered, normalizeCodeHighlightConfig, normalizePath, prewarmCodeHighlighting, prewarmHighlighter, registerHighlighter, registerPluginHighlighter, resolveConfig, resolvePluginHook, sanitizeFilename, shouldEnableBundledDev, shouldUseReactPlugin, validatePlugins };
|
package/dist/node/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{g as e}from"../plugin-context-
|
|
6
|
+
import{g as e}from"../plugin-context-b5qVVQSU.mjs";import{C as t,S as n,_ as r,a as i,b as a,c as o,g as s,h as c,i as l,m as u,n as d,o as f,p,r as m,s as h,t as g,u as _,v,x as y,y as b}from"../node-CT2E84nY.mjs";import{f as x,u as S}from"../utils-8lzafE49.mjs";import{flushCache as C}from"./cache.mjs";import{r as w,t as T}from"../routes-Dw6g0bfF.mjs";import{i as E,n as D}from"../config-B3_iVsbi.mjs";import{a as O,c as k,i as A,l as j,n as M,o as N,r as P,s as F,t as I}from"../registry-CHh8A5as.mjs";import{t as L}from"../handler-Lex5DbvG.mjs";import{i as R,n as z,r as B,t as V}from"../adapters-BKzKe2mO.mjs";export*from"@bdocs/unist-utils";export{I as BUILTIN_HIGHLIGHTERS,u as BoltdocsPluginStore,M as DEFAULT_HIGHLIGHTER,c as PluginCompatibilityError,s as PluginError,r as PluginHookError,o as PluginLifecycleManager,v as PluginValidationError,b as createArticleStructuredData,a as createBreadcrumbStructuredData,f as createPlugin,y as createStructuredData,d as createViteConfig,n as createWebSiteStructuredData,g as default,E as defineConfig,h as definePlugin,t as defineStructuredData,C as flushCache,e as generateEntryCode,T as generateRoutes,P as getCodeHighlighterAdapter,A as getHighlighterNames,V as handleAwsFeedback,L as handleFeedback,B as handleNetlifyFeedback,R as handleVercelFeedback,z as handleWebFeedback,w as invalidateRouteCache,O as isHighlighterRegistered,m as normalizeCodeHighlightConfig,S as normalizePath,N as prewarmCodeHighlighting,F as prewarmHighlighter,k as registerHighlighter,j as registerPluginHighlighter,D as resolveConfig,_ as resolvePluginHook,x as sanitizeFilename,l as shouldEnableBundledDev,i as shouldUseReactPlugin,p as validatePlugins};
|
|
@@ -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(`../../chunk-D1Md3oWO.cjs`),t=require(`../../utils-ej6_SjIZ.cjs`);let n=require(`@bdocs/dui`),r=require(`@bdocs/unist-utils`),i=require(`@shikijs/engine-oniguruma`),a=require(`shiki/core`),o=require(`@shikijs/themes/github-light`);o=e.r(o);let s=require(`@shikijs/themes/github-dark`);s=e.r(s);let c=require(`@shikijs/langs/html`);c=e.r(c);let l=require(`@shikijs/langs/js`);l=e.r(l);let u=require(`@shikijs/langs/ts`);u=e.r(u);let d=require(`@shikijs/langs/tsx`);d=e.r(d);let f=require(`@shikijs/langs/css`);f=e.r(f);let p=require(`@shikijs/langs/bash`);p=e.r(p);let m=require(`@shikijs/langs/json`);m=e.r(m);let h=require(`@shikijs/langs/markdown`);h=e.r(h);let g=require(`@shikijs/langs/python`);g=e.r(g);let _=require(`@shikijs/langs/go`);_=e.r(_);const v=[o.default.default||o.default,s.default.default||s.default],y=[c.default,l.default,u.default,d.default,f.default,p.default,m.default,h.default,g.default,_.default],b={scss:()=>import(`@shikijs/langs/scss`),less:()=>import(`@shikijs/langs/less`),jsonc:()=>import(`@shikijs/langs/jsonc`),json5:()=>import(`@shikijs/langs/json5`),ini:()=>import(`@shikijs/langs/ini`),mdx:()=>import(`@shikijs/langs/mdx`),yaml:()=>import(`@shikijs/langs/yaml`),rust:()=>import(`@shikijs/langs/rust`),toml:()=>import(`@shikijs/langs/toml`),csv:()=>import(`@shikijs/langs/csv`),nginx:()=>import(`@shikijs/langs/nginx`),apache:()=>import(`@shikijs/langs/apache`),dockerfile:()=>import(`@shikijs/langs/dockerfile`),docker:()=>import(`@shikijs/langs/docker`),java:()=>import(`@shikijs/langs/java`),php:()=>import(`@shikijs/langs/php`),sql:()=>import(`@shikijs/langs/sql`),graphql:()=>import(`@shikijs/langs/graphql`),http:()=>import(`@shikijs/langs/http`),xml:()=>import(`@shikijs/langs/xml`),vue:()=>import(`@shikijs/langs/vue`),svelte:()=>import(`@shikijs/langs/svelte`),ruby:()=>import(`@shikijs/langs/ruby`),kotlin:()=>import(`@shikijs/langs/kotlin`),swift:()=>import(`@shikijs/langs/swift`),powershell:()=>import(`@shikijs/langs/powershell`),c:()=>import(`@shikijs/langs/c`),cpp:()=>import(`@shikijs/langs/cpp`),elixir:()=>import(`@shikijs/langs/elixir`)},x={javascript:`js`,typescript:`ts`,shell:`bash`,sh:`bash`,zsh:`bash`,console:`bash`,terminal:`bash`,shellsession:`bash`,yml:`yaml`,py:`python`,golang:`go`,rs:`rust`,rb:`ruby`,kt:`kotlin`},S=new Set([`text`,`plaintext`,`txt`,`plain`,`ansi`,`none`]);function C(e){if(!e)return null;let t=e.trim().toLowerCase();return!t||S.has(t)?null:x[t]??t}const w=new Map;async function T(){return(0,i.createOnigurumaEngine)(await import(`shiki/wasm`))}async function E(){let{createJavaScriptRegexEngine:e}=await import(`shiki/engine/javascript`);return e({forgiving:!0})}async function D(e){return e===`javascript`?E():T()}const O=async e=>{let t=e?.regexEngine===`oniguruma`?`oniguruma`:`javascript`,n=w.get(t);if(n)return n;let r=(async()=>{let e=performance.now(),n=await(0,a.createHighlighterCore)({themes:v,langs:y,engine:await D(t)});return process.env.BOLTDOCS_DEBUG===`true`&&console.log(`[boltdocs] shiki-ready in ${Math.round(performance.now()-e)}ms (${t}, ${y.length} langs)`),n})();return w.set(t,r),r},k=new Map;async function A(e,t=`oniguruma`){let n=C(e);if(!n)return!0;let r;try{r=await O({regexEngine:t})}catch{return!1}let i=[];try{i=r.getLoadedLanguages()}catch{i=[]}if(i.includes(n))return!0;let a=k.get(n);if(a)return a;let o=b[n];if(!o)return!1;let s=(async()=>{try{let e=await o(),t=e?.default??e;return await r.loadLanguage(t),!0}catch{return!1}finally{k.delete(n)}})();return k.set(n,s),s}const j={TITLE:`data-title`,LANG:`data-lang`,HIGHLIGHTED:`data-highlighted`,HIGHLIGHTED_HTML:`data-highlighted-html`},M={LINE_NUMBERS:`shiki-line-numbers`,WORD_WRAP:`shiki-word-wrap`,FALLBACK:`shiki-fallback`},N={LIGHT:`github-light`,DARK:`github-dark`},P={LANG:`plaintext`,MDX_DEFAULT_LANG:`text`},F=(e={})=>{let{activateByDefault:t=!1}=e;return{name:`boltdocs:line-numbers`,pre(e){let n=this.options.meta?.lineNumbers===!0;(t||n)&&this.addClassToHast(e,M.LINE_NUMBERS)}}},I=(e={})=>{let{activateByDefault:t=!1}=e;return{name:`boltdocs:word-wrap`,pre(e){let n=this.options.meta?.wordWrap===!0;(t||n)&&this.addClassToHast(e,M.WORD_WRAP)}}},L=()=>({name:`AddTitleProperty`,pre(e){let t=this.options.meta?.title;t&&(e.properties[j.TITLE]=t)}}),R=()=>({name:`AddLanguageProperty`,pre(e){e.properties[j.LANG]=this.options.lang||P.LANG}});var z=class{name=`shiki`;version=`3.23.0`;theme;regexEngine;constructor(e){let t=(0,r.normalizeCodeHighlightConfig)(e?.theme?.codeHighlighting);this.theme=t?.theme??e?.theme?.codeTheme??{light:N.LIGHT,dark:N.DARK},this.regexEngine=String(t?.options?.regexEngine)===`oniguruma`?`oniguruma`:`javascript
|
|
6
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../../chunk-D1Md3oWO.cjs`),t=require(`../../utils-ej6_SjIZ.cjs`);let n=require(`@bdocs/dui`),r=require(`@bdocs/unist-utils`),i=require(`@shikijs/engine-oniguruma`),a=require(`shiki/core`),o=require(`@shikijs/themes/github-light`);o=e.r(o);let s=require(`@shikijs/themes/github-dark`);s=e.r(s);let c=require(`@shikijs/langs/html`);c=e.r(c);let l=require(`@shikijs/langs/js`);l=e.r(l);let u=require(`@shikijs/langs/ts`);u=e.r(u);let d=require(`@shikijs/langs/tsx`);d=e.r(d);let f=require(`@shikijs/langs/css`);f=e.r(f);let p=require(`@shikijs/langs/bash`);p=e.r(p);let m=require(`@shikijs/langs/json`);m=e.r(m);let h=require(`@shikijs/langs/markdown`);h=e.r(h);let g=require(`@shikijs/langs/python`);g=e.r(g);let _=require(`@shikijs/langs/go`);_=e.r(_);const v=[o.default.default||o.default,s.default.default||s.default],y=[c.default,l.default,u.default,d.default,f.default,p.default,m.default,h.default,g.default,_.default],b={scss:()=>import(`@shikijs/langs/scss`),less:()=>import(`@shikijs/langs/less`),jsonc:()=>import(`@shikijs/langs/jsonc`),json5:()=>import(`@shikijs/langs/json5`),ini:()=>import(`@shikijs/langs/ini`),mdx:()=>import(`@shikijs/langs/mdx`),yaml:()=>import(`@shikijs/langs/yaml`),rust:()=>import(`@shikijs/langs/rust`),toml:()=>import(`@shikijs/langs/toml`),csv:()=>import(`@shikijs/langs/csv`),nginx:()=>import(`@shikijs/langs/nginx`),apache:()=>import(`@shikijs/langs/apache`),dockerfile:()=>import(`@shikijs/langs/dockerfile`),docker:()=>import(`@shikijs/langs/docker`),java:()=>import(`@shikijs/langs/java`),php:()=>import(`@shikijs/langs/php`),sql:()=>import(`@shikijs/langs/sql`),graphql:()=>import(`@shikijs/langs/graphql`),http:()=>import(`@shikijs/langs/http`),xml:()=>import(`@shikijs/langs/xml`),vue:()=>import(`@shikijs/langs/vue`),svelte:()=>import(`@shikijs/langs/svelte`),ruby:()=>import(`@shikijs/langs/ruby`),kotlin:()=>import(`@shikijs/langs/kotlin`),swift:()=>import(`@shikijs/langs/swift`),powershell:()=>import(`@shikijs/langs/powershell`),c:()=>import(`@shikijs/langs/c`),cpp:()=>import(`@shikijs/langs/cpp`),elixir:()=>import(`@shikijs/langs/elixir`)},x={javascript:`js`,typescript:`ts`,shell:`bash`,sh:`bash`,zsh:`bash`,console:`bash`,terminal:`bash`,shellsession:`bash`,yml:`yaml`,py:`python`,golang:`go`,rs:`rust`,rb:`ruby`,kt:`kotlin`},S=new Set([`text`,`plaintext`,`txt`,`plain`,`ansi`,`none`]);function C(e){if(!e)return null;let t=e.trim().toLowerCase();return!t||S.has(t)?null:x[t]??t}const w=new Map;async function T(){return(0,i.createOnigurumaEngine)(await import(`shiki/wasm`))}async function E(){let{createJavaScriptRegexEngine:e}=await import(`shiki/engine/javascript`);return e({forgiving:!0})}async function D(e){return e===`javascript`?E():T()}const O=async e=>{let t=e?.regexEngine===`oniguruma`?`oniguruma`:`javascript`,n=w.get(t);if(n)return n;let r=(async()=>{let e=performance.now(),n=await(0,a.createHighlighterCore)({themes:v,langs:y,engine:await D(t)});return process.env.BOLTDOCS_DEBUG===`true`&&console.log(`[boltdocs] shiki-ready in ${Math.round(performance.now()-e)}ms (${t}, ${y.length} langs)`),n})();return w.set(t,r),r},k=new Map;async function A(e,t=`oniguruma`){let n=C(e);if(!n)return!0;let r;try{r=await O({regexEngine:t})}catch{return!1}let i=[];try{i=r.getLoadedLanguages()}catch{i=[]}if(i.includes(n))return!0;let a=k.get(n);if(a)return a;let o=b[n];if(!o)return!1;let s=(async()=>{try{let e=await o(),t=e?.default??e;return await r.loadLanguage(t),!0}catch{return!1}finally{k.delete(n)}})();return k.set(n,s),s}const j={TITLE:`data-title`,LANG:`data-lang`,HIGHLIGHTED:`data-highlighted`,HIGHLIGHTED_HTML:`data-highlighted-html`},M={LINE_NUMBERS:`shiki-line-numbers`,WORD_WRAP:`shiki-word-wrap`,FALLBACK:`shiki-fallback`},N={LIGHT:`github-light`,DARK:`github-dark`},P={LANG:`plaintext`,MDX_DEFAULT_LANG:`text`},F=(e={})=>{let{activateByDefault:t=!1}=e;return{name:`boltdocs:line-numbers`,pre(e){let n=this.options.meta?.lineNumbers===!0;(t||n)&&this.addClassToHast(e,M.LINE_NUMBERS)}}},I=(e={})=>{let{activateByDefault:t=!1}=e;return{name:`boltdocs:word-wrap`,pre(e){let n=this.options.meta?.wordWrap===!0;(t||n)&&this.addClassToHast(e,M.WORD_WRAP)}}},L=()=>({name:`AddTitleProperty`,pre(e){let t=this.options.meta?.title;t&&(e.properties[j.TITLE]=t)}}),R=()=>({name:`AddLanguageProperty`,pre(e){e.properties[j.LANG]=this.options.lang||P.LANG}});var z=class{name=`shiki`;version=`3.23.0`;theme;regexEngine;colorReplacements=null;constructor(e){let t=(0,r.normalizeCodeHighlightConfig)(e?.theme?.codeHighlighting);this.theme=t?.theme??e?.theme?.codeTheme??{light:N.LIGHT,dark:N.DARK},this.regexEngine=String(t?.options?.regexEngine)===`oniguruma`?`oniguruma`:`javascript`;let n=t?.options?.colorReplacements;if(n&&typeof n==`object`&&!Array.isArray(n)){let e=e=>{let t=e.trim();return/^#[0-9a-fA-F]{3,8}$/.test(t)?t.toLowerCase():t};this.colorReplacements=Object.fromEntries(Object.entries(n).map(([t,n])=>[e(t),e(String(n))]))}}getTheme(){return this.theme}async getHighlighter(){return await O({regexEngine:this.regexEngine})}async initialize(){let e=await this.getHighlighter();return{codeToHast:(t,n)=>e.codeToHast(t,n),codeToHtml:async(t,n)=>e.codeToHtml(t,n)}}async ensureLanguage(e){return A(e,this.regexEngine)}getOptions(e,t){let n={},i=``;if(typeof t==`string`)i=t,n=(0,r.parseMetaString)(t);else if(t&&typeof t==`object`){let e=t;n={...e},i=String(e.__raw??``)}let a={__raw:i};for(let[e,t]of Object.entries(n))e!==`__raw`&&Object.defineProperty(a,e,{value:t,enumerable:!1,configurable:!0,writable:!0});return{lang:e||P.LANG,meta:a,transformers:[F(),I(),L(),R()],...this.colorReplacements?{colorReplacements:this.colorReplacements}:{},...typeof this.theme==`string`?{theme:this.theme}:{themes:{light:this.theme.light,dark:this.theme.dark}}}}async render(e,r,i){try{let t=this.getOptions(r,i);return await(await this.initialize()).codeToHtml(e,t)}catch(r){return(0,n.error)(`[ShikiAdapter] Failed to render code:`,r),`<pre class="${M.FALLBACK}"><code>${t.n(e)}</code></pre>`}}prewarm(e){O({regexEngine:this.regexEngine}).catch(()=>{})}};let B=null,V;function H(e){let t=(0,r.normalizeCodeHighlightConfig)(e?.theme?.codeHighlighting),n=t?.theme??e?.theme?.codeTheme,i=JSON.stringify({theme:n,regexEngine:t?.options?.regexEngine??`oniguruma`,colorReplacements:t?.options?.colorReplacements??null});return(B===null||V!==i)&&(B=new z(e),V=i),B}function U(e){H(e).prewarm()}exports.ShikiAdapter=z,exports.ensureLanguage=A,exports.getShikiAdapter=H,Object.defineProperty(exports,`parseMetaString`,{enumerable:!0,get:function(){return r.parseMetaString}}),exports.prewarmShiki=U;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
import { a as CodeHighlightConfig, c as CodeHighlighterRuntime, l as CodeTheme, o as CodeHighlighterAdapter } from "../../types-
|
|
2
|
+
import { a as CodeHighlightConfig, c as CodeHighlighterRuntime, l as CodeTheme, o as CodeHighlighterAdapter } from "../../types-X_Pwk8Cg.cjs";
|
|
3
3
|
import { ParsedMeta, parseMetaString } from "@bdocs/unist-utils";
|
|
4
4
|
import * as _$shiki from "shiki";
|
|
5
5
|
//#region src/node/mdx/highlighter.d.ts
|
|
@@ -38,6 +38,8 @@ declare class ShikiAdapter implements CodeHighlighterAdapter {
|
|
|
38
38
|
version: string;
|
|
39
39
|
private theme;
|
|
40
40
|
private regexEngine;
|
|
41
|
+
/** Shiki `colorReplacements`: theme token colors overridden per site. */
|
|
42
|
+
private colorReplacements;
|
|
41
43
|
constructor(config?: ShikiAdapterConfig);
|
|
42
44
|
/**
|
|
43
45
|
* Resolves the code theme from the engine-agnostic configuration.
|
|
@@ -73,7 +75,10 @@ declare class ShikiAdapter implements CodeHighlighterAdapter {
|
|
|
73
75
|
}
|
|
74
76
|
/**
|
|
75
77
|
* Returns a cached ShikiAdapter instance.
|
|
76
|
-
* Recreates only if the resolved
|
|
78
|
+
* Recreates only if the resolved highlighter configuration changes. Every
|
|
79
|
+
* field that can influence rendered output must join this identity — a
|
|
80
|
+
* missing field silently serves stale instances (colorReplacements was once
|
|
81
|
+
* dropped here, pinning old token colors for a whole build).
|
|
77
82
|
*/
|
|
78
83
|
declare function getShikiAdapter(config?: ShikiAdapterConfig): ShikiAdapter;
|
|
79
84
|
/**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
import { a as CodeHighlightConfig, c as CodeHighlighterRuntime, l as CodeTheme, o as CodeHighlighterAdapter } from "../../types-
|
|
2
|
+
import { a as CodeHighlightConfig, c as CodeHighlighterRuntime, l as CodeTheme, o as CodeHighlighterAdapter } from "../../types-74i_xUe2.mjs";
|
|
3
3
|
import { ParsedMeta, parseMetaString } from "@bdocs/unist-utils";
|
|
4
4
|
import * as _$shiki from "shiki";
|
|
5
5
|
|
|
@@ -39,6 +39,8 @@ declare class ShikiAdapter implements CodeHighlighterAdapter {
|
|
|
39
39
|
version: string;
|
|
40
40
|
private theme;
|
|
41
41
|
private regexEngine;
|
|
42
|
+
/** Shiki `colorReplacements`: theme token colors overridden per site. */
|
|
43
|
+
private colorReplacements;
|
|
42
44
|
constructor(config?: ShikiAdapterConfig);
|
|
43
45
|
/**
|
|
44
46
|
* Resolves the code theme from the engine-agnostic configuration.
|
|
@@ -74,7 +76,10 @@ declare class ShikiAdapter implements CodeHighlighterAdapter {
|
|
|
74
76
|
}
|
|
75
77
|
/**
|
|
76
78
|
* Returns a cached ShikiAdapter instance.
|
|
77
|
-
* Recreates only if the resolved
|
|
79
|
+
* Recreates only if the resolved highlighter configuration changes. Every
|
|
80
|
+
* field that can influence rendered output must join this identity — a
|
|
81
|
+
* missing field silently serves stale instances (colorReplacements was once
|
|
82
|
+
* dropped here, pinning old token colors for a whole build).
|
|
78
83
|
*/
|
|
79
84
|
declare function getShikiAdapter(config?: ShikiAdapterConfig): ShikiAdapter;
|
|
80
85
|
/**
|
|
@@ -3,4 +3,4 @@
|
|
|
3
3
|
* Copyright (c) 2026 Jesus Alcala
|
|
4
4
|
* Licensed under the MIT License.
|
|
5
5
|
*/
|
|
6
|
-
import{n as e}from"../../utils-8lzafE49.mjs";import{error as t}from"@bdocs/dui";import{normalizeCodeHighlightConfig as n,parseMetaString as r,parseMetaString as i}from"@bdocs/unist-utils";import{createOnigurumaEngine as a}from"@shikijs/engine-oniguruma";import{createHighlighterCore as o}from"shiki/core";import s from"@shikijs/themes/github-light";import c from"@shikijs/themes/github-dark";import l from"@shikijs/langs/html";import u from"@shikijs/langs/js";import d from"@shikijs/langs/ts";import f from"@shikijs/langs/tsx";import p from"@shikijs/langs/css";import m from"@shikijs/langs/bash";import h from"@shikijs/langs/json";import g from"@shikijs/langs/markdown";import _ from"@shikijs/langs/python";import v from"@shikijs/langs/go";const y=[s.default||s,c.default||c],b=[l,u,d,f,p,m,h,g,_,v],x={scss:()=>import(`@shikijs/langs/scss`),less:()=>import(`@shikijs/langs/less`),jsonc:()=>import(`@shikijs/langs/jsonc`),json5:()=>import(`@shikijs/langs/json5`),ini:()=>import(`@shikijs/langs/ini`),mdx:()=>import(`@shikijs/langs/mdx`),yaml:()=>import(`@shikijs/langs/yaml`),rust:()=>import(`@shikijs/langs/rust`),toml:()=>import(`@shikijs/langs/toml`),csv:()=>import(`@shikijs/langs/csv`),nginx:()=>import(`@shikijs/langs/nginx`),apache:()=>import(`@shikijs/langs/apache`),dockerfile:()=>import(`@shikijs/langs/dockerfile`),docker:()=>import(`@shikijs/langs/docker`),java:()=>import(`@shikijs/langs/java`),php:()=>import(`@shikijs/langs/php`),sql:()=>import(`@shikijs/langs/sql`),graphql:()=>import(`@shikijs/langs/graphql`),http:()=>import(`@shikijs/langs/http`),xml:()=>import(`@shikijs/langs/xml`),vue:()=>import(`@shikijs/langs/vue`),svelte:()=>import(`@shikijs/langs/svelte`),ruby:()=>import(`@shikijs/langs/ruby`),kotlin:()=>import(`@shikijs/langs/kotlin`),swift:()=>import(`@shikijs/langs/swift`),powershell:()=>import(`@shikijs/langs/powershell`),c:()=>import(`@shikijs/langs/c`),cpp:()=>import(`@shikijs/langs/cpp`),elixir:()=>import(`@shikijs/langs/elixir`)},S={javascript:`js`,typescript:`ts`,shell:`bash`,sh:`bash`,zsh:`bash`,console:`bash`,terminal:`bash`,shellsession:`bash`,yml:`yaml`,py:`python`,golang:`go`,rs:`rust`,rb:`ruby`,kt:`kotlin`},C=new Set([`text`,`plaintext`,`txt`,`plain`,`ansi`,`none`]);function w(e){if(!e)return null;let t=e.trim().toLowerCase();return!t||C.has(t)?null:S[t]??t}const T=new Map;async function E(){return a(await import(`shiki/wasm`))}async function D(){let{createJavaScriptRegexEngine:e}=await import(`shiki/engine/javascript`);return e({forgiving:!0})}async function O(e){return e===`javascript`?D():E()}const k=async e=>{let t=e?.regexEngine===`oniguruma`?`oniguruma`:`javascript`,n=T.get(t);if(n)return n;let r=(async()=>{let e=performance.now(),n=await o({themes:y,langs:b,engine:await O(t)});return process.env.BOLTDOCS_DEBUG===`true`&&console.log(`[boltdocs] shiki-ready in ${Math.round(performance.now()-e)}ms (${t}, ${b.length} langs)`),n})();return T.set(t,r),r},A=new Map;async function j(e,t=`oniguruma`){let n=w(e);if(!n)return!0;let r;try{r=await k({regexEngine:t})}catch{return!1}let i=[];try{i=r.getLoadedLanguages()}catch{i=[]}if(i.includes(n))return!0;let a=A.get(n);if(a)return a;let o=x[n];if(!o)return!1;let s=(async()=>{try{let e=await o(),t=e?.default??e;return await r.loadLanguage(t),!0}catch{return!1}finally{A.delete(n)}})();return A.set(n,s),s}const M={TITLE:`data-title`,LANG:`data-lang`,HIGHLIGHTED:`data-highlighted`,HIGHLIGHTED_HTML:`data-highlighted-html`},N={LINE_NUMBERS:`shiki-line-numbers`,WORD_WRAP:`shiki-word-wrap`,FALLBACK:`shiki-fallback`},P={LIGHT:`github-light`,DARK:`github-dark`},F={LANG:`plaintext`,MDX_DEFAULT_LANG:`text`},I=(e={})=>{let{activateByDefault:t=!1}=e;return{name:`boltdocs:line-numbers`,pre(e){let n=this.options.meta?.lineNumbers===!0;(t||n)&&this.addClassToHast(e,N.LINE_NUMBERS)}}},L=(e={})=>{let{activateByDefault:t=!1}=e;return{name:`boltdocs:word-wrap`,pre(e){let n=this.options.meta?.wordWrap===!0;(t||n)&&this.addClassToHast(e,N.WORD_WRAP)}}},R=()=>({name:`AddTitleProperty`,pre(e){let t=this.options.meta?.title;t&&(e.properties[M.TITLE]=t)}}),z=()=>({name:`AddLanguageProperty`,pre(e){e.properties[M.LANG]=this.options.lang||F.LANG}});var B=class{name=`shiki`;version=`3.23.0`;theme;regexEngine;constructor(e){let t=n(e?.theme?.codeHighlighting);this.theme=t?.theme??e?.theme?.codeTheme??{light:P.LIGHT,dark:P.DARK},this.regexEngine=String(t?.options?.regexEngine)===`oniguruma`?`oniguruma`:`javascript
|
|
6
|
+
import{n as e}from"../../utils-8lzafE49.mjs";import{error as t}from"@bdocs/dui";import{normalizeCodeHighlightConfig as n,parseMetaString as r,parseMetaString as i}from"@bdocs/unist-utils";import{createOnigurumaEngine as a}from"@shikijs/engine-oniguruma";import{createHighlighterCore as o}from"shiki/core";import s from"@shikijs/themes/github-light";import c from"@shikijs/themes/github-dark";import l from"@shikijs/langs/html";import u from"@shikijs/langs/js";import d from"@shikijs/langs/ts";import f from"@shikijs/langs/tsx";import p from"@shikijs/langs/css";import m from"@shikijs/langs/bash";import h from"@shikijs/langs/json";import g from"@shikijs/langs/markdown";import _ from"@shikijs/langs/python";import v from"@shikijs/langs/go";const y=[s.default||s,c.default||c],b=[l,u,d,f,p,m,h,g,_,v],x={scss:()=>import(`@shikijs/langs/scss`),less:()=>import(`@shikijs/langs/less`),jsonc:()=>import(`@shikijs/langs/jsonc`),json5:()=>import(`@shikijs/langs/json5`),ini:()=>import(`@shikijs/langs/ini`),mdx:()=>import(`@shikijs/langs/mdx`),yaml:()=>import(`@shikijs/langs/yaml`),rust:()=>import(`@shikijs/langs/rust`),toml:()=>import(`@shikijs/langs/toml`),csv:()=>import(`@shikijs/langs/csv`),nginx:()=>import(`@shikijs/langs/nginx`),apache:()=>import(`@shikijs/langs/apache`),dockerfile:()=>import(`@shikijs/langs/dockerfile`),docker:()=>import(`@shikijs/langs/docker`),java:()=>import(`@shikijs/langs/java`),php:()=>import(`@shikijs/langs/php`),sql:()=>import(`@shikijs/langs/sql`),graphql:()=>import(`@shikijs/langs/graphql`),http:()=>import(`@shikijs/langs/http`),xml:()=>import(`@shikijs/langs/xml`),vue:()=>import(`@shikijs/langs/vue`),svelte:()=>import(`@shikijs/langs/svelte`),ruby:()=>import(`@shikijs/langs/ruby`),kotlin:()=>import(`@shikijs/langs/kotlin`),swift:()=>import(`@shikijs/langs/swift`),powershell:()=>import(`@shikijs/langs/powershell`),c:()=>import(`@shikijs/langs/c`),cpp:()=>import(`@shikijs/langs/cpp`),elixir:()=>import(`@shikijs/langs/elixir`)},S={javascript:`js`,typescript:`ts`,shell:`bash`,sh:`bash`,zsh:`bash`,console:`bash`,terminal:`bash`,shellsession:`bash`,yml:`yaml`,py:`python`,golang:`go`,rs:`rust`,rb:`ruby`,kt:`kotlin`},C=new Set([`text`,`plaintext`,`txt`,`plain`,`ansi`,`none`]);function w(e){if(!e)return null;let t=e.trim().toLowerCase();return!t||C.has(t)?null:S[t]??t}const T=new Map;async function E(){return a(await import(`shiki/wasm`))}async function D(){let{createJavaScriptRegexEngine:e}=await import(`shiki/engine/javascript`);return e({forgiving:!0})}async function O(e){return e===`javascript`?D():E()}const k=async e=>{let t=e?.regexEngine===`oniguruma`?`oniguruma`:`javascript`,n=T.get(t);if(n)return n;let r=(async()=>{let e=performance.now(),n=await o({themes:y,langs:b,engine:await O(t)});return process.env.BOLTDOCS_DEBUG===`true`&&console.log(`[boltdocs] shiki-ready in ${Math.round(performance.now()-e)}ms (${t}, ${b.length} langs)`),n})();return T.set(t,r),r},A=new Map;async function j(e,t=`oniguruma`){let n=w(e);if(!n)return!0;let r;try{r=await k({regexEngine:t})}catch{return!1}let i=[];try{i=r.getLoadedLanguages()}catch{i=[]}if(i.includes(n))return!0;let a=A.get(n);if(a)return a;let o=x[n];if(!o)return!1;let s=(async()=>{try{let e=await o(),t=e?.default??e;return await r.loadLanguage(t),!0}catch{return!1}finally{A.delete(n)}})();return A.set(n,s),s}const M={TITLE:`data-title`,LANG:`data-lang`,HIGHLIGHTED:`data-highlighted`,HIGHLIGHTED_HTML:`data-highlighted-html`},N={LINE_NUMBERS:`shiki-line-numbers`,WORD_WRAP:`shiki-word-wrap`,FALLBACK:`shiki-fallback`},P={LIGHT:`github-light`,DARK:`github-dark`},F={LANG:`plaintext`,MDX_DEFAULT_LANG:`text`},I=(e={})=>{let{activateByDefault:t=!1}=e;return{name:`boltdocs:line-numbers`,pre(e){let n=this.options.meta?.lineNumbers===!0;(t||n)&&this.addClassToHast(e,N.LINE_NUMBERS)}}},L=(e={})=>{let{activateByDefault:t=!1}=e;return{name:`boltdocs:word-wrap`,pre(e){let n=this.options.meta?.wordWrap===!0;(t||n)&&this.addClassToHast(e,N.WORD_WRAP)}}},R=()=>({name:`AddTitleProperty`,pre(e){let t=this.options.meta?.title;t&&(e.properties[M.TITLE]=t)}}),z=()=>({name:`AddLanguageProperty`,pre(e){e.properties[M.LANG]=this.options.lang||F.LANG}});var B=class{name=`shiki`;version=`3.23.0`;theme;regexEngine;colorReplacements=null;constructor(e){let t=n(e?.theme?.codeHighlighting);this.theme=t?.theme??e?.theme?.codeTheme??{light:P.LIGHT,dark:P.DARK},this.regexEngine=String(t?.options?.regexEngine)===`oniguruma`?`oniguruma`:`javascript`;let r=t?.options?.colorReplacements;if(r&&typeof r==`object`&&!Array.isArray(r)){let e=e=>{let t=e.trim();return/^#[0-9a-fA-F]{3,8}$/.test(t)?t.toLowerCase():t};this.colorReplacements=Object.fromEntries(Object.entries(r).map(([t,n])=>[e(t),e(String(n))]))}}getTheme(){return this.theme}async getHighlighter(){return await k({regexEngine:this.regexEngine})}async initialize(){let e=await this.getHighlighter();return{codeToHast:(t,n)=>e.codeToHast(t,n),codeToHtml:async(t,n)=>e.codeToHtml(t,n)}}async ensureLanguage(e){return j(e,this.regexEngine)}getOptions(e,t){let n={},r=``;if(typeof t==`string`)r=t,n=i(t);else if(t&&typeof t==`object`){let e=t;n={...e},r=String(e.__raw??``)}let a={__raw:r};for(let[e,t]of Object.entries(n))e!==`__raw`&&Object.defineProperty(a,e,{value:t,enumerable:!1,configurable:!0,writable:!0});return{lang:e||F.LANG,meta:a,transformers:[I(),L(),R(),z()],...this.colorReplacements?{colorReplacements:this.colorReplacements}:{},...typeof this.theme==`string`?{theme:this.theme}:{themes:{light:this.theme.light,dark:this.theme.dark}}}}async render(n,r,i){try{let e=this.getOptions(r,i);return await(await this.initialize()).codeToHtml(n,e)}catch(r){return t(`[ShikiAdapter] Failed to render code:`,r),`<pre class="${N.FALLBACK}"><code>${e(n)}</code></pre>`}}prewarm(e){k({regexEngine:this.regexEngine}).catch(()=>{})}};let V=null,H;function U(e){let t=n(e?.theme?.codeHighlighting),r=t?.theme??e?.theme?.codeTheme,i=JSON.stringify({theme:r,regexEngine:t?.options?.regexEngine??`oniguruma`,colorReplacements:t?.options?.colorReplacements??null});return(V===null||H!==i)&&(V=new B(e),H=i),V}function W(e){U(e).prewarm()}export{B as ShikiAdapter,j as ensureLanguage,U as getShikiAdapter,r as parseMetaString,W as prewarmShiki};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Boltdocs - https://boltdocs.vercel.app
|
|
3
|
+
* Copyright (c) 2026 Jesus Alcala
|
|
4
|
+
* Licensed under the MIT License.
|
|
5
|
+
*/
|
|
6
|
+
const e=require(`./chunk-D1Md3oWO.cjs`),t=require(`./utils-ej6_SjIZ.cjs`),n=require(`./pages-external-DPiPFxxP.cjs`),r=require(`./plugin-context-BZs5lvDu.cjs`),i=require(`./node/cache.cjs`),a=require(`./routes-CzhKOw67.cjs`),o=require(`./config-BJp3lGzE.cjs`),s=require(`./registry-DLJIooEu.cjs`),c=require(`./types-generator-C83Iy6X5.cjs`),l=require(`./resolve-C9jGArE_.cjs`),u=require(`./handler-Ch-Q9NAB.cjs`),d=require(`./adapters-DwDTQoCG.cjs`);let f=require(`node:path`);f=e.r(f);let p=require(`node:fs`);p=e.r(p);let m=require(`node:crypto`);m=e.r(m);let h=require(`zod`),g=require(`@bdocs/dui`);g=e.r(g);let _=require(`semver`);_=e.r(_);let v=require(`@bdocs/ssg/node`),y=require(`@bdocs/unist-utils`);function b(){return{name:`boltdocs-ssr-dirname-polyfill`,config:(e,{isSsrBuild:t})=>t?{define:{__dirname:`import.meta.dirname`}}:{}}}const x=new Set([`boltdocs/entry`,`boltdocs/client`,`boltdocs/primitives`,`boltdocs/mdx`,`boltdocs/client/router`,`use-sync-external-store/shim/index.js`,`use-sync-external-store/shim`,`use-sync-external-store`]);function S(e){return e?Array.isArray(e)?[...e]:Object.entries(e).map(([e,t])=>({find:e,replacement:t})):[]}function C(e,t){typeof t.find==`string`&&x.has(t.find)&&e.some(e=>e.find===t.find)||e.push({...t,...typeof t.replacement==`string`?{replacement:t.replacement}:{}})}function w({root:e,clientSourceRoot:t,aliases:n}){let r=[{find:`boltdocs/entry`,replacement:f.default.resolve(e,`boltdocs-entry.tsx`)},{find:`boltdocs/client`,replacement:f.default.resolve(e,`boltdocs-client.mjs`)},...t?[{find:`boltdocs/primitives`,replacement:f.default.join(t,`primitives.ts`)},{find:`boltdocs/mdx`,replacement:f.default.join(t,`mdx.ts`)},{find:`boltdocs/client/router`,replacement:f.default.join(t,`router/index.ts`)}]:[],{find:`use-sync-external-store/shim/index.js`,replacement:`react`},{find:`use-sync-external-store/shim`,replacement:`react`},{find:`use-sync-external-store`,replacement:`react`}].map(e=>({...e,replacement:e.replacement}));for(let t of S(n))C(r,{...t,replacement:typeof t.replacement==`string`&&t.replacement.startsWith(`.`)?f.default.resolve(e,t.replacement):t.replacement});return r}function T(e){return e}function E(e){let t=[];if(e.website&&t.push(D(e.website)),e.article&&t.push(k(e.article)),e.breadcrumbs?.length&&t.push(A(e.breadcrumbs)),e.additional&&t.push(...Array.isArray(e.additional)?e.additional:[e.additional]),t.length===0)throw Error(`createStructuredData() requires at least one of website, article, breadcrumbs, or additional`);return t.length===1?t[0]:t}function D(e){let t={"@context":`https://schema.org`,"@type":`WebSite`,name:e.name,url:e.url};return e.description&&(t.description=e.description),e.searchUrl&&(t.potentialAction={"@type":`SearchAction`,target:`${e.searchUrl}{search_term_string}`,"query-input":`required name=search_term_string`}),t}function O(e,t){let n=new Date(e);if(Number.isNaN(n.getTime()))throw TypeError(`Invalid ${t} value: ${String(e)}`);return n.toISOString()}function k(e){let t={"@context":`https://schema.org`,"@type":`Article`,headline:e.headline,url:e.url};return e.description&&(t.description=e.description),e.datePublished&&(t.datePublished=O(e.datePublished,`datePublished`)),e.dateModified&&(t.dateModified=O(e.dateModified,`dateModified`)),e.image&&(t.image=e.image),e.author&&(t.author=typeof e.author==`string`?{"@type":`Person`,name:e.author}:{"@type":`Person`,...e.author}),t}function A(e){return{"@context":`https://schema.org`,"@type":`BreadcrumbList`,itemListElement:e.map((e,t)=>({"@type":`ListItem`,position:t+1,name:e.name,item:e.url}))}}var j=class extends Error{name=this.constructor.name;constructor(e,t,n){super(`[plugin:${e}] ${t}`,n),this.pluginName=e}},M=class extends j{constructor(e,t){super(e,`Validation failed: ${t}`)}},N=class extends j{constructor(e,t){super(e,`Compatibility error: ${t}`)}},P=class extends j{constructor(e,t,n){super(e,`Error in hook '${t}': ${n.message}`,{cause:n}),this.hookName=t}},F=class{data=new Map;getNamespaceKey(e,t){return`${e}:${t}`}get(e,t){let n=this.getNamespaceKey(e,t),r=this.data.get(n);if(r!==void 0)return typeof r==`object`&&r?JSON.parse(JSON.stringify(r)):r}set(e,t,n){let r=this.getNamespaceKey(e,t),i=typeof n==`object`&&n?JSON.parse(JSON.stringify(n)):n;this.data.set(r,i)}has(e,t){let n=this.getNamespaceKey(e,t);return this.data.has(n)}};const I=o.n.extend({version:h.z.string().optional(),boltdocsVersion:h.z.string().optional(),css:h.z.object({cssFiles:h.z.array(h.z.string()).optional(),headStyles:h.z.array(h.z.string()).optional(),postcssPlugins:h.z.array(h.z.any()).optional(),preprocessorOptions:h.z.record(h.z.string(),h.z.any()).optional()}).optional(),hooks:h.z.object({beforeBuild:h.z.custom(e=>typeof e==`function`).optional(),afterBuild:h.z.custom(e=>typeof e==`function`).optional(),beforeDev:h.z.custom(e=>typeof e==`function`).optional(),afterDev:h.z.custom(e=>typeof e==`function`).optional(),buildEnd:h.z.custom(e=>typeof e==`function`).optional(),transformSource:h.z.custom(e=>typeof e==`function`).optional(),transformMdx:h.z.custom(e=>typeof e==`function`).optional(),transformHtml:h.z.custom(e=>typeof e==`function`).optional()}).passthrough().optional()});function L(e,t){let n=[],r=new Set;for(let i of e){let e=I.safeParse(i);if(!e.success)throw new M(i.name||`unknown`,e.error.issues.map(e=>`${e.path.join(`.`)}: ${e.message}`).join(`, `));let a=e.data;if(r.has(a.name))throw new M(a.name,`Duplicate plugin name detected`);if(r.add(a.name),a.boltdocsVersion&&!_.default.satisfies(t,a.boltdocsVersion))throw new N(a.name,`Plugin expects Boltdocs version ${a.boltdocsVersion}, but current is ${t}`);if(a.components)for(let[e,t]of Object.entries(a.components)){if(t.includes(`..`))throw new M(a.name,`Component '${e}' has an invalid path: traversal sequences are not allowed.`);if(f.default.isAbsolute(t))throw new M(a.name,`Component '${e}' has an invalid path: absolute paths are not allowed.`)}a.codeHighlighter&&s.l(a.name,a.codeHighlighter),n.push(a)}return n}const R=new Map;function z(e,t=process.cwd()){let n=e.plugins||[];for(let e of n)if(e.name&&!R.has(e.name))try{let n=l.t(e.name,t)?.pkg,r=n&&typeof n.scripts==`object`?n.scripts:{},i=!!(r.preinstall||r.postinstall||r.install);i&&(0,g.warn)(`💡 ${g.colors.yellow(g.colors.bold(`Nota de seguridad:`))} El plugin ${g.colors.cyan(e.name)} ejecuta scripts nativos al instalarse. Corre ${g.colors.bold(`boltdocs audit`)} para un análisis detallado.`),R.set(e.name,i)}catch{R.set(e.name,!1)}}var B=class{name=`ConfigResolve`;async execute(e){e.config=await o.t(`docs`,e.root,`build`,`production`),e.allCached||z(e.config,e.root);let t=f.default.resolve(e.root,e.config.docsDir||`docs`);e.docsDir=t;let r=await a.t(t,e.config,void 0,!1);e.routes=r;let i=r.map(e=>e.path),s=(e.config.base||`/docs`).replace(/\/$/,``);i.includes(s)||i.push(s);let c=n.n(t,e.config);for(let e of c)i.includes(e)||i.push(e);e.routePaths=i,e.viteConfig=await $(e.root,`production`,e.config,{routes:r,skipTypes:!0,skipLinkTree:!0})}},ee=class{name=`RouteGenerate`;async execute(e){if(!e.routes)throw Error(`Routes not generated by ConfigResolveStep. Verify pipeline order.`)}};const te=h.z.object({title:h.z.string().optional(),description:h.z.string().optional(),canonical:h.z.string().url().optional(),robots:h.z.string().optional(),noindex:h.z.boolean().optional(),"og:title":h.z.string().optional(),"og:description":h.z.string().optional(),"og:image":h.z.string().optional(),"og:type":h.z.string().optional(),"og:url":h.z.string().url().optional()});var ne=class{name=`SEOValidate`;async execute(e){if(!e.routes||!e.config)throw Error(`Routes or Config not initialized.`);let t=e.config?.siteUrl,n=e.routes,r=e=>typeof e==`string`?e:void 0;for(let i of n){let n=i.seo??{},a=r(n.canonical)||(t?`${t.replace(/\/$/,``)}${i.path}`:void 0),o=r(n[`og:url`])||a||void 0,s=r(e.config?.seo?.thumbnails?.background),c=r(n[`og:image`])||i.coverImage||s;c&&t&&!/^https?:\/\/|^\/\//.test(c)&&(c=`${t.endsWith(`/`)?t.slice(0,-1):t}${c.startsWith(`/`)?c:`/${c}`}`);let l={...n};a&&(l.canonical=a),o&&(l[`og:url`]=o),c&&(l[`og:image`]=c),!l[`og:title`]&&i.title&&(l[`og:title`]=String(i.title)),!l[`og:description`]&&i.description&&(l[`og:description`]=String(i.description));let u=te.safeParse(l);u.success||(0,g.warn)(`[SEOValidate] Validation issues on route "${i.path}": ${u.error.message}`),i.title||(0,g.warn)(`[SEOValidate] Route "${i.path}" is missing a title.`),i.seo=l}e.ssgRoutes=n}},re=class{name=`TypeGenerate`;async execute(e){if(!e.config||!e.docsDir||!e.routePaths)throw Error(`Config, docs directory, or route paths not initialized. Verify pipeline order.`);c.t(e.config,`docs`,e.root,e.routePaths),c.r(e.routePaths,e.root),e.typesGenerated=!0}},ie=class{name=`SSGBuild`;async execute(e){if(!e.routes||!e.viteConfig)throw Error(`Routes or ViteConfig not initialized.`);let t={};for(let n of e.routes)if(n.path&&n.componentPath){t[n.path]=n.componentPath;let e=n.path.replace(/\/$/,``);t[e]=n.componentPath}let n=[];await(0,v.build)({entry:`boltdocs/entry`,routeToSourceFileMap:t,cacheDir:f.default.resolve(e.root,`.boltdocs/build`),onStep:e=>{n.push(e)}},e.viteConfig),e.ssgSubSteps=n,e.outDir=e.viteConfig.build?.outDir||`dist`}};function ae(e,n){let r=(n.siteUrl||``).replace(/\/$/,``);if(!r)return``;let i=n.seo?.indexing!==`all`&&n.seo?.indexing!==`public`;return`<?xml version="1.0" encoding="UTF-8"?>
|
|
7
|
+
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
|
8
|
+
${e.filter(e=>e.seo?.noindex||typeof e.seo?.robots==`string`&&e.seo.robots.includes(`noindex`)?!1:(i&&e.seo?.index,!0)).map(e=>`${r}${e.path.startsWith(`/`)?e.path:`/${e.path}`}`).sort((e,t)=>e<t?-1:e>t?1:0).map(e=>` <url>
|
|
9
|
+
<loc>${t.r(e)}</loc>
|
|
10
|
+
<changefreq>weekly</changefreq>
|
|
11
|
+
<priority>0.7</priority>
|
|
12
|
+
</url>`).join(`
|
|
13
|
+
`)}
|
|
14
|
+
</urlset>`}function oe(e){let t=e.siteUrl||``,n=t?`${t.replace(/\/$/,``)}/sitemap.xml`:``;if(e.seo?.indexing!==`all`&&e.seo?.indexing!==`public`&&e.seo?.indexing)return[`User-agent: *`,`Disallow: /`].filter(Boolean).join(`
|
|
15
|
+
`);if(typeof e.robots==`string`)return e.robots;if(e.robots&&typeof e.robots==`object`){let t=e.robots.rules||[],r=e.robots.sitemaps||[],i=t.map(e=>{let t=`User-agent: ${e.userAgent}\n`;return e.allow&&(Array.isArray(e.allow)?t+=e.allow.map(e=>`Allow: ${e}`).join(`
|
|
16
|
+
`)+`
|
|
17
|
+
`:t+=`Allow: ${e.allow}\n`),e.disallow&&(Array.isArray(e.disallow)?t+=e.disallow.map(e=>`Disallow: ${e}`).join(`
|
|
18
|
+
`)+`
|
|
19
|
+
`:t+=`Disallow: ${e.disallow}\n`),t.trim()}).join(`
|
|
20
|
+
|
|
21
|
+
`),a=[...n?[n]:[],...r].map(e=>`Sitemap: ${e}`).join(`
|
|
22
|
+
`);return`${i}${a?`\n\n${a}`:``}`}return[`User-agent: *`,`Allow: /`,``,n?`Sitemap: ${n}`:``].filter(Boolean).join(`
|
|
23
|
+
`)}var se=class{name=`SEOWrite`;async execute(e){if(!e.ssgRoutes||!e.config||!e.outDir)throw Error(`SSG Routes, Config, or OutDir not initialized.`);let t=ae(e.ssgRoutes,e.config),n=e.docsDir||f.default.resolve(e.root,`docs`),r=f.default.resolve(e.root,e.outDir);t&&p.default.writeFileSync(f.default.join(r,`sitemap.xml`),t,`utf-8`);let i=oe(e.config);if(p.default.writeFileSync(f.default.join(r,`robots.txt`),i,`utf-8`),e.config.plugins&&e.config.plugins.length>0){let{PluginLifecycleManager:t}=await Promise.resolve().then(()=>require(`./plugin-lifecycle-s89gzTlh.cjs`));await new t(e.config.plugins,e.config,n,e.root,e.routes??[],r).runHook(`build:generate`,{routes:e.routes??[],outDir:r,siteUrl:e.config.siteUrl})}}};function ce(){return new V().addStep(new B).addStep(new ee).addParallelSteps([new ne,new re]).addStep(new ie).addStep(new se)}var V=class{steps=[];addStep(e){return this.steps.push(e),this}addParallelSteps(e){return this.steps.push(e),this}async run(e){let t=[],n=performance.now(),r={...e,timing:{}};for(let e of this.steps){let i=Array.isArray(e),a=i?e:[e],o=performance.now();try{i?await Promise.all(a.map(e=>e.execute(r))):await a[0].execute(r);let e=performance.now()-o;for(let n of a){let i=r.stepDetails?.[n.name];t.push({name:n.name,duration:e,success:!0,details:i}),r.timing[n.name]=e}r.ssgSubSteps&&(t.push(...r.ssgSubSteps),delete r.ssgSubSteps)}catch(e){let i=performance.now()-o,s=a.find(e=>!t.some(t=>t.name===e.name&&t.success))?.name||a.map(e=>e.name).join(` | `);t.push({name:s,duration:i,success:!1,error:e instanceof Error?e:Error(String(e))});for(let e of t.filter(e=>e.success).reverse()){let t=this.steps.flat().find(t=>t.name===e.name);if(t?.rollback)try{await t.rollback(r)}catch(t){console.error(`[pipeline] rollback failed for step "${e.name}":`,t)}}let c=performance.now()-n;return{success:!1,failedStep:s,error:e instanceof Error?e:Error(String(e)),timing:{total:c,steps:r.timing},stepResults:t}}}return{success:!0,timing:{total:performance.now()-n,steps:r.timing},stepResults:t}}};const H={"build:before":`beforeBuild`,"build:after":`afterBuild`,"build:end":`buildEnd`,"dev:before":`beforeDev`,"dev:after":`afterDev`,"transform:source":`transformSource`,"transform:mdx":`transformMdx`,"transform:html":`transformHtml`,beforeBuild:`build:before`,afterBuild:`build:after`,buildEnd:`build:end`,beforeDev:`dev:before`,afterDev:`dev:after`,transformSource:`transform:source`,transformMdx:`transform:mdx`,transformHtml:`transform:html`};function U(e,t){if(!e.hooks)return;let n=e.hooks[t];if(typeof n==`function`)return n;let r=H[t];if(r){let t=e.hooks[r];if(typeof t==`function`)return t}}var W=class{plugins;config;store;docsDir;rootDir;routes;outDir;runtime;routeCacheContext;routeCacheVariant;constructor(e,t,n,i,o,s,c,l,u){this.plugins=e,this.config=t,this.store=new F,this.docsDir=n||process.cwd(),this.rootDir=i||process.cwd(),this.routes=o||[],this.outDir=s||`dist`,this.runtime=c??r.u(),this.routeCacheContext=l??a.d(this.docsDir),this.routeCacheVariant=u??a.f(this.routeCacheContext,a.p(t,t.base))}async runHook(e,...t){let n=this.getSortedPlugins(),r=new V;for(let i of n)U(i,e)&&r.addStep(this.createStep(i,e,t));await r.run({})}async runChain(e,t){let n=this.getSortedPlugins(),r=t;for(let t of n){let n=U(t,e);if(!n)continue;let i=this.createContext(t);try{let e=await n(i,r);if(e!==void 0){let t=e.__signal;if(t===`break`)break;if(t===`skip`){r=e;break}r=e}}catch(n){let r=new P(t.name,e,n instanceof Error?n:Error(String(n)));i.logger.error(r),i.diagnostics.report(`error`,`PLUGIN_HOOK_ERROR`,r.message)}}return r}hasHook(e){return!!(this.plugins.some(t=>U(t,e))||this.plugins.flatMap(e=>e.middleware??[]).some(t=>t[e])||(e===`transformSource`||e===`transformMdx`||e===`transformHtml`)&&[...this.runtime.middlewareRegistry.values()].some(t=>t[e]))}async runMiddlewareChain(e,t){let n=this.plugins.flatMap(e=>e.middleware??[]),r=[...this.runtime.middlewareRegistry.values()],i=[...n,...r],a=[...i.filter(e=>e.enforce===`pre`),...i.filter(e=>!e.enforce),...i.filter(e=>e.enforce===`post`)],o=t;for(let t of a){let n=t[e];if(!n)continue;let r=this.createGenericContext();try{let e=await n(r,o);if(e!==void 0){let t=e.__signal;if(t===`break`)break;if(t===`skip`){o=e;break}o=e}}catch(e){let n=`Middleware '${t.name??`<unnamed>`}' threw: ${e instanceof Error?e.message:String(e)}`;r.logger.error(n),r.diagnostics.report(`error`,`MIDDLEWARE_ERROR`,n)}}return o}getSortedPlugins(){let e=this.plugins.filter(e=>e.enforce===`pre`),t=this.plugins.filter(e=>!e.enforce),n=this.plugins.filter(e=>e.enforce===`post`);return[...e,...t,...n]}createStep(e,t,n){return{name:`${e.name}:${String(t)}`,execute:async()=>{let r=this.createContext(e);try{let i=U(e,t);i&&await i(r,...n)}catch(n){let i=new P(e.name,t,n instanceof Error?n:Error(String(n)));r.logger.error(i)}},rollback:async()=>{let t=U(e,`build:end`);if(t){let n=this.createContext(e);try{await t(n)}catch{}}}}}createContext(e){return{config:Object.freeze({...this.config}),docsDir:this.docsDir,rootDir:this.rootDir,outDir:this.outDir,routes:this.routes,meta:{name:e.name,version:e.version,boltdocsVersion:e.boltdocsVersion},store:{get:(e,t)=>this.store.get(e,t),set:(e,t,n)=>this.store.set(e,t,n),has:(e,t)=>this.store.has(e,t)},logger:this.createLogger(e.name),caches:r.n(this.routeCacheContext,this.rootDir,this.routeCacheVariant),diagnostics:r.r(e.name,this.runtime),paths:r.o(this.docsDir,this.rootDir),virtualModules:r.l(this.runtime),middleware:r.a(this.runtime),hmr:r.i(this.runtime),server:r.c(this.runtime)}}createGenericContext(){let e=`<middleware>`;return{config:Object.freeze({...this.config}),docsDir:this.docsDir,rootDir:this.rootDir,outDir:this.outDir,routes:this.routes,meta:{name:e},store:{get:(e,t)=>this.store.get(e,t),set:(e,t,n)=>this.store.set(e,t,n),has:(e,t)=>this.store.has(e,t)},logger:this.createLogger(e),caches:r.n(this.routeCacheContext,this.rootDir,this.routeCacheVariant),diagnostics:r.r(e,this.runtime),paths:r.o(this.docsDir,this.rootDir),virtualModules:r.l(this.runtime),middleware:r.a(this.runtime),hmr:r.i(this.runtime),server:r.c(this.runtime)}}createLogger(e){let t=`[plugin:${e}]`;return{info:e=>g.info(`${t} ${e}`),warn:e=>g.warn(`${t} ${e}`),error:e=>{g.error(`${t} ${e instanceof Error?e.message:e}`)},debug:e=>g.debug(`${t} ${e}`)}}};function G(e){return t=>typeof e==`function`?e(t):e}function K(e){return typeof e==`function`?G(e):e}var le=e.t({BUILTIN_HIGHLIGHTERS:()=>s.t,BoltdocsPluginStore:()=>F,DEFAULT_HIGHLIGHTER:()=>s.n,PluginCompatibilityError:()=>N,PluginError:()=>j,PluginHookError:()=>P,PluginLifecycleManager:()=>W,PluginValidationError:()=>M,createArticleStructuredData:()=>k,createBreadcrumbStructuredData:()=>A,createPlugin:()=>K,createStructuredData:()=>E,createViteConfig:()=>$,createWebSiteStructuredData:()=>D,default:()=>Q,defineConfig:()=>o.r,definePlugin:()=>G,defineStructuredData:()=>T,flushCache:()=>i.flushCache,generateEntryCode:()=>r.g,generateRoutes:()=>a.t,getCodeHighlighterAdapter:()=>s.r,getHighlighterNames:()=>s.i,handleAwsFeedback:()=>d.t,handleFeedback:()=>u.t,handleNetlifyFeedback:()=>d.r,handleVercelFeedback:()=>d.i,handleWebFeedback:()=>d.n,invalidateRouteCache:()=>a.i,isHighlighterRegistered:()=>s.a,normalizeCodeHighlightConfig:()=>y.normalizeCodeHighlightConfig,normalizePath:()=>t.u,prewarmCodeHighlighting:()=>s.o,prewarmHighlighter:()=>s.s,registerHighlighter:()=>s.c,registerPluginHighlighter:()=>s.l,resolveConfig:()=>o.t,resolvePluginHook:()=>U,sanitizeFilename:()=>t.f,shouldEnableBundledDev:()=>X,shouldUseReactPlugin:()=>Z,validatePlugins:()=>L});const q=new Map;function ue(){let e=__dirname;for(;e&&e!==f.default.parse(e).root;){let t=f.default.join(e,`package.json`);if(p.default.existsSync(t)){let n=``;try{n=JSON.parse(p.default.readFileSync(t,`utf-8`)).name||``}catch{n=``}if(n===`boltdocs`){let t=f.default.join(e,`src/client`);return p.default.existsSync(t)?t:void 0}}e=f.default.dirname(e)}}const de=ue();function J(e,t,n){if(n===!1)return!1;if(typeof n==`string`)return f.default.resolve(e,n);let r=t?.vite?.publicDir;if(r===!1)return!1;if(typeof r==`string`)return f.default.resolve(e,r);let i=f.default.resolve(e,`public`),a=f.default.resolve(e,t?.docsDir||`docs`,`public`);return p.default.existsSync(i)||!p.default.existsSync(a)?i:a}function Y(e,t,n,r){return`${e}::${t}::${m.default.createHash(`md5`).update(JSON.stringify({root:e,mode:t,routeCount:n.routes?.length??0,skipTypes:n.skipTypes??!1,skipLinkTree:n.skipLinkTree??!1,skipRoutes:n.skipRoutes??!1,hasPreResolved:!!r,docsDir:r?.docsDir||`docs`,aliases:r?.aliases,viteAliases:r?.vite?.resolve?.alias,publicDir:J(e,r,n.publicDir)})).digest(`hex`)}`}function X(e,t=process.env.BOLTDOCS_BUNDLED_DEV){return!e&&t===`true`}function Z(e,t,n=process.env.BOLTDOCS_REACT_REFRESH){return e||n===`true`?!0:t===`/`||t===``}async function Q(e){let{resolveConfig:t}=await Promise.resolve().then(()=>require(`./config-BC_qhXws.cjs`)),{generateRoutes:n,getExternalRoutePaths:r}=await Promise.resolve().then(()=>require(`./routes-Dq_2EUIB.cjs`)),{generateProjectTypes:i,writeLinkTree:a}=await Promise.resolve().then(()=>require(`./types-generator-C83Iy6X5.cjs`)).then(e=>e.n),{boltdocsPlugin:o}=await Promise.resolve().then(()=>require(`./plugin-AgNI3ktz.cjs`)),s=e?.docsDir||`docs`,c=await t(s),l=await n(s,c),u=l.map(e=>e.path),d=(c.base||`/docs`).replace(/\/$/,``);u.includes(d)||u.push(d);let f=r(s,c);for(let e of f)u.includes(e)||u.push(e);return i(c,s,void 0,u),a(u),o({...e,routes:e?.routes??l},c)}async function $(e,t=`development`,n,r={}){let i=Y(e,t,r,n),a=q.get(i);if(a)return a.config;let o=null;function s(){return o||(o=Promise.all([import(`@vitejs/plugin-react`),Promise.resolve().then(()=>require(`./plugin-AgNI3ktz.cjs`)),Promise.resolve().then(()=>require(`./resolve-BelytNYR.cjs`)),import(`vite`)]).then(([e,t,n,r])=>({reactPlugin:e.default,boltdocsPlugin:t.boltdocsPlugin,getExternalAbsolutePaths:t.getExternalAbsolutePaths,resolveSecurityHeaders:n.resolveSecurityHeaders,normalizePath:r.normalizePath})),o)}let c=s(),l=n||await(async()=>{let{resolveConfig:t}=await Promise.resolve().then(()=>require(`./config-BC_qhXws.cjs`));return t(`docs`,e)})(),u=f.default.resolve(e,l.docsDir||`docs`),d=r.routes??(r.skipRoutes?[]:await(async()=>{let{generateRoutes:e}=await Promise.resolve().then(()=>require(`./routes-Dq_2EUIB.cjs`));return e(u,l,void 0,!1)})()),p=t===`production`,m=c.then(({resolveSecurityHeaders:e})=>e(l,p)),h=!r.skipTypes,g=!r.skipLinkTree;if(h||g){let[{getExternalRoutePaths:t},{generateProjectTypes:n,writeLinkTree:r}]=await Promise.all([Promise.resolve().then(()=>require(`./routes-Dq_2EUIB.cjs`)),Promise.resolve().then(()=>require(`./types-generator-C83Iy6X5.cjs`)).then(e=>e.n)]),i=d.map(e=>e.path),a=(l.base||`/docs`).replace(/\/$/,``);i.includes(a)||i.push(a);let o=t(u,l);for(let e of o)i.includes(e)||i.push(e);h&&n(l,u,e,i),g&&r(i)}let _=await m,{reactPlugin:v,boltdocsPlugin:y,getExternalAbsolutePaths:x,normalizePath:C}=await c,T=[],E={};if(l.plugins)for(let e of l.plugins)e.css?.postcssPlugins&&T.push(...e.css.postcssPlugins.filter(e=>typeof e==`function`||typeof e==`object`&&!!e)),e.css?.preprocessorOptions&&Object.assign(E,e.css.preprocessorOptions);let D=l.vite??{},O=D.server??{},k=D.preview??{},A=D.ssr??{},j=D.optimizeDeps??{},M=j.entries??[`index.html`],N=Array.isArray(A.external)?A.external:typeof A.external==`string`?[A.external]:[],P=O.watch?.ignored,F=P?Array.isArray(P)?[`**/.boltdocs/**`,...P]:[`**/.boltdocs/**`,P]:[`**/.boltdocs/**`],I=D.css!==void 0||T.length>0||Object.keys(E).length>0,L={...D.css,...T.length>0?{postcss:{plugins:T}}:{},...Object.keys(E).length>0?{preprocessorOptions:{...D.css?.preprocessorOptions,...E}}:{}},R=l.base||D.base||`/`,z={...D,root:e,mode:t,experimental:{...D.experimental,bundledDev:X(p)},oxc:{...D.oxc,jsx:{development:!p,runtime:`automatic`,importSource:`react`}},optimizeDeps:{...j,entries:M,include:[...j.include??[],`react`,`react-dom`,`react-dom/client`,`react-helmet-async`,`react-router-dom`,`react-fast-compare`,`invariant`,`use-sync-external-store/shim`]},css:I?L:void 0,build:D.build??{},plugins:[...D.plugins??[],b(),...Z(p,R)?v():[],...y({docsDir:u,root:e,routes:d},l)],ssr:{...A,external:[...N,`react`,`react-dom`,`react-helmet-async`,`react-router-dom`,`@bdocs/ssg`,`jsdom`,...x()],optimizeDeps:{...A.optimizeDeps,include:[...A.optimizeDeps?.include??[],`react`,`react-dom`,`react-fast-compare`]},noExternal:[]},server:{...O,watch:{...O.watch,ignored:F},headers:{..._,...O.headers}},preview:{...k,headers:{..._,...k.headers}},resolve:{...D.resolve,alias:[...w({root:e,clientSourceRoot:de,aliases:[...S(l.aliases),...S(D.resolve?.alias)]}).map(e=>({...e,...typeof e.replacement==`string`?{replacement:C(e.replacement)}:{}}))],dedupe:[`react`,`react-dom`,`react-router-dom`,...D.resolve?.dedupe??[]]},base:R,publicDir:J(e,l,r.publicDir)};return q.set(i,{config:z}),z.__boltdocsConfig=l,z}Object.defineProperty(exports,`S`,{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,`_`,{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return Z}}),Object.defineProperty(exports,`b`,{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return W}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return z}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return L}}),Object.defineProperty(exports,`g`,{enumerable:!0,get:function(){return P}}),Object.defineProperty(exports,`h`,{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return X}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return U}}),Object.defineProperty(exports,`m`,{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return $}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return K}}),Object.defineProperty(exports,`p`,{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return le}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return G}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return Q}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return ce}}),Object.defineProperty(exports,`v`,{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,`x`,{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,`y`,{enumerable:!0,get:function(){return A}});
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Boltdocs - https://boltdocs.vercel.app
|
|
3
|
+
* Copyright (c) 2026 Jesus Alcala
|
|
4
|
+
* Licensed under the MIT License.
|
|
5
|
+
*/
|
|
6
|
+
import{t as e}from"./chunk-BFSpntXv.mjs";import{_ as t,a as n,c as r,i,l as a,n as o,o as s,r as c,u as l}from"./plugin-context-b5qVVQSU.mjs";import{r as u}from"./utils-8lzafE49.mjs";import{n as d}from"./pages-external-BBw8ObVK.mjs";import"./node/cache.mjs";import{d as f,f as p,p as m,t as h}from"./routes-Dw6g0bfF.mjs";import{n as g,r as _}from"./config-B3_iVsbi.mjs";import{l as v}from"./registry-CHh8A5as.mjs";import{r as y,t as ee}from"./types-generator-BtZ6-ZKx.mjs";import{t as b}from"./resolve-C8AFoOQL.mjs";import"./handler-Lex5DbvG.mjs";import"./adapters-BKzKe2mO.mjs";import x from"node:path";import S from"node:fs";import C from"node:crypto";import{z as w}from"zod";import*as T from"@bdocs/dui";import{colors as E,warn as D}from"@bdocs/dui";import O from"semver";import{build as k}from"@bdocs/ssg/node";import{normalizeCodeHighlightConfig as A}from"@bdocs/unist-utils";function te(){return{name:`boltdocs-ssr-dirname-polyfill`,config:(e,{isSsrBuild:t})=>t?{define:{__dirname:`import.meta.dirname`}}:{}}}const j=new Set([`boltdocs/entry`,`boltdocs/client`,`boltdocs/primitives`,`boltdocs/mdx`,`boltdocs/client/router`,`use-sync-external-store/shim/index.js`,`use-sync-external-store/shim`,`use-sync-external-store`]);function M(e){return e?Array.isArray(e)?[...e]:Object.entries(e).map(([e,t])=>({find:e,replacement:t})):[]}function N(e,t){typeof t.find==`string`&&j.has(t.find)&&e.some(e=>e.find===t.find)||e.push({...t,...typeof t.replacement==`string`?{replacement:t.replacement}:{}})}function ne({root:e,clientSourceRoot:t,aliases:n}){let r=[{find:`boltdocs/entry`,replacement:x.resolve(e,`boltdocs-entry.tsx`)},{find:`boltdocs/client`,replacement:x.resolve(e,`boltdocs-client.mjs`)},...t?[{find:`boltdocs/primitives`,replacement:x.join(t,`primitives.ts`)},{find:`boltdocs/mdx`,replacement:x.join(t,`mdx.ts`)},{find:`boltdocs/client/router`,replacement:x.join(t,`router/index.ts`)}]:[],{find:`use-sync-external-store/shim/index.js`,replacement:`react`},{find:`use-sync-external-store/shim`,replacement:`react`},{find:`use-sync-external-store`,replacement:`react`}].map(e=>({...e,replacement:e.replacement}));for(let t of M(n))N(r,{...t,replacement:typeof t.replacement==`string`&&t.replacement.startsWith(`.`)?x.resolve(e,t.replacement):t.replacement});return r}function P(e){return e}function F(e){let t=[];if(e.website&&t.push(I(e.website)),e.article&&t.push(R(e.article)),e.breadcrumbs?.length&&t.push(z(e.breadcrumbs)),e.additional&&t.push(...Array.isArray(e.additional)?e.additional:[e.additional]),t.length===0)throw Error(`createStructuredData() requires at least one of website, article, breadcrumbs, or additional`);return t.length===1?t[0]:t}function I(e){let t={"@context":`https://schema.org`,"@type":`WebSite`,name:e.name,url:e.url};return e.description&&(t.description=e.description),e.searchUrl&&(t.potentialAction={"@type":`SearchAction`,target:`${e.searchUrl}{search_term_string}`,"query-input":`required name=search_term_string`}),t}function L(e,t){let n=new Date(e);if(Number.isNaN(n.getTime()))throw TypeError(`Invalid ${t} value: ${String(e)}`);return n.toISOString()}function R(e){let t={"@context":`https://schema.org`,"@type":`Article`,headline:e.headline,url:e.url};return e.description&&(t.description=e.description),e.datePublished&&(t.datePublished=L(e.datePublished,`datePublished`)),e.dateModified&&(t.dateModified=L(e.dateModified,`dateModified`)),e.image&&(t.image=e.image),e.author&&(t.author=typeof e.author==`string`?{"@type":`Person`,name:e.author}:{"@type":`Person`,...e.author}),t}function z(e){return{"@context":`https://schema.org`,"@type":`BreadcrumbList`,itemListElement:e.map((e,t)=>({"@type":`ListItem`,position:t+1,name:e.name,item:e.url}))}}var B=class extends Error{name=this.constructor.name;constructor(e,t,n){super(`[plugin:${e}] ${t}`,n),this.pluginName=e}},V=class extends B{constructor(e,t){super(e,`Validation failed: ${t}`)}},H=class extends B{constructor(e,t){super(e,`Compatibility error: ${t}`)}},U=class extends B{constructor(e,t,n){super(e,`Error in hook '${t}': ${n.message}`,{cause:n}),this.hookName=t}},W=class{data=new Map;getNamespaceKey(e,t){return`${e}:${t}`}get(e,t){let n=this.getNamespaceKey(e,t),r=this.data.get(n);if(r!==void 0)return typeof r==`object`&&r?JSON.parse(JSON.stringify(r)):r}set(e,t,n){let r=this.getNamespaceKey(e,t),i=typeof n==`object`&&n?JSON.parse(JSON.stringify(n)):n;this.data.set(r,i)}has(e,t){let n=this.getNamespaceKey(e,t);return this.data.has(n)}};const re=_.extend({version:w.string().optional(),boltdocsVersion:w.string().optional(),css:w.object({cssFiles:w.array(w.string()).optional(),headStyles:w.array(w.string()).optional(),postcssPlugins:w.array(w.any()).optional(),preprocessorOptions:w.record(w.string(),w.any()).optional()}).optional(),hooks:w.object({beforeBuild:w.custom(e=>typeof e==`function`).optional(),afterBuild:w.custom(e=>typeof e==`function`).optional(),beforeDev:w.custom(e=>typeof e==`function`).optional(),afterDev:w.custom(e=>typeof e==`function`).optional(),buildEnd:w.custom(e=>typeof e==`function`).optional(),transformSource:w.custom(e=>typeof e==`function`).optional(),transformMdx:w.custom(e=>typeof e==`function`).optional(),transformHtml:w.custom(e=>typeof e==`function`).optional()}).passthrough().optional()});function ie(e,t){let n=[],r=new Set;for(let i of e){let e=re.safeParse(i);if(!e.success)throw new V(i.name||`unknown`,e.error.issues.map(e=>`${e.path.join(`.`)}: ${e.message}`).join(`, `));let a=e.data;if(r.has(a.name))throw new V(a.name,`Duplicate plugin name detected`);if(r.add(a.name),a.boltdocsVersion&&!O.satisfies(t,a.boltdocsVersion))throw new H(a.name,`Plugin expects Boltdocs version ${a.boltdocsVersion}, but current is ${t}`);if(a.components)for(let[e,t]of Object.entries(a.components)){if(t.includes(`..`))throw new V(a.name,`Component '${e}' has an invalid path: traversal sequences are not allowed.`);if(x.isAbsolute(t))throw new V(a.name,`Component '${e}' has an invalid path: absolute paths are not allowed.`)}a.codeHighlighter&&v(a.name,a.codeHighlighter),n.push(a)}return n}const G=new Map;function K(e,t=process.cwd()){let n=e.plugins||[];for(let e of n)if(e.name&&!G.has(e.name))try{let n=b(e.name,t)?.pkg,r=n&&typeof n.scripts==`object`?n.scripts:{},i=!!(r.preinstall||r.postinstall||r.install);i&&D(`💡 ${E.yellow(E.bold(`Nota de seguridad:`))} El plugin ${E.cyan(e.name)} ejecuta scripts nativos al instalarse. Corre ${E.bold(`boltdocs audit`)} para un análisis detallado.`),G.set(e.name,i)}catch{G.set(e.name,!1)}}var ae=class{name=`ConfigResolve`;async execute(e){e.config=await g(`docs`,e.root,`build`,`production`),e.allCached||K(e.config,e.root);let t=x.resolve(e.root,e.config.docsDir||`docs`);e.docsDir=t;let n=await h(t,e.config,void 0,!1);e.routes=n;let r=n.map(e=>e.path),i=(e.config.base||`/docs`).replace(/\/$/,``);r.includes(i)||r.push(i);let a=d(t,e.config);for(let e of a)r.includes(e)||r.push(e);e.routePaths=r,e.viteConfig=await Ce(e.root,`production`,e.config,{routes:n,skipTypes:!0,skipLinkTree:!0})}},oe=class{name=`RouteGenerate`;async execute(e){if(!e.routes)throw Error(`Routes not generated by ConfigResolveStep. Verify pipeline order.`)}};const se=w.object({title:w.string().optional(),description:w.string().optional(),canonical:w.string().url().optional(),robots:w.string().optional(),noindex:w.boolean().optional(),"og:title":w.string().optional(),"og:description":w.string().optional(),"og:image":w.string().optional(),"og:type":w.string().optional(),"og:url":w.string().url().optional()});var ce=class{name=`SEOValidate`;async execute(e){if(!e.routes||!e.config)throw Error(`Routes or Config not initialized.`);let t=e.config?.siteUrl,n=e.routes,r=e=>typeof e==`string`?e:void 0;for(let i of n){let n=i.seo??{},a=r(n.canonical)||(t?`${t.replace(/\/$/,``)}${i.path}`:void 0),o=r(n[`og:url`])||a||void 0,s=r(e.config?.seo?.thumbnails?.background),c=r(n[`og:image`])||i.coverImage||s;c&&t&&!/^https?:\/\/|^\/\//.test(c)&&(c=`${t.endsWith(`/`)?t.slice(0,-1):t}${c.startsWith(`/`)?c:`/${c}`}`);let l={...n};a&&(l.canonical=a),o&&(l[`og:url`]=o),c&&(l[`og:image`]=c),!l[`og:title`]&&i.title&&(l[`og:title`]=String(i.title)),!l[`og:description`]&&i.description&&(l[`og:description`]=String(i.description));let u=se.safeParse(l);u.success||D(`[SEOValidate] Validation issues on route "${i.path}": ${u.error.message}`),i.title||D(`[SEOValidate] Route "${i.path}" is missing a title.`),i.seo=l}e.ssgRoutes=n}},le=class{name=`TypeGenerate`;async execute(e){if(!e.config||!e.docsDir||!e.routePaths)throw Error(`Config, docs directory, or route paths not initialized. Verify pipeline order.`);ee(e.config,`docs`,e.root,e.routePaths),y(e.routePaths,e.root),e.typesGenerated=!0}},ue=class{name=`SSGBuild`;async execute(e){if(!e.routes||!e.viteConfig)throw Error(`Routes or ViteConfig not initialized.`);let t={};for(let n of e.routes)if(n.path&&n.componentPath){t[n.path]=n.componentPath;let e=n.path.replace(/\/$/,``);t[e]=n.componentPath}let n=[];await k({entry:`boltdocs/entry`,routeToSourceFileMap:t,cacheDir:x.resolve(e.root,`.boltdocs/build`),onStep:e=>{n.push(e)}},e.viteConfig),e.ssgSubSteps=n,e.outDir=e.viteConfig.build?.outDir||`dist`}};function de(e,t){let n=(t.siteUrl||``).replace(/\/$/,``);if(!n)return``;let r=t.seo?.indexing!==`all`&&t.seo?.indexing!==`public`;return`<?xml version="1.0" encoding="UTF-8"?>
|
|
7
|
+
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
|
8
|
+
${e.filter(e=>e.seo?.noindex||typeof e.seo?.robots==`string`&&e.seo.robots.includes(`noindex`)?!1:(r&&e.seo?.index,!0)).map(e=>`${n}${e.path.startsWith(`/`)?e.path:`/${e.path}`}`).sort((e,t)=>e<t?-1:e>t?1:0).map(e=>` <url>
|
|
9
|
+
<loc>${u(e)}</loc>
|
|
10
|
+
<changefreq>weekly</changefreq>
|
|
11
|
+
<priority>0.7</priority>
|
|
12
|
+
</url>`).join(`
|
|
13
|
+
`)}
|
|
14
|
+
</urlset>`}function fe(e){let t=e.siteUrl||``,n=t?`${t.replace(/\/$/,``)}/sitemap.xml`:``;if(e.seo?.indexing!==`all`&&e.seo?.indexing!==`public`&&e.seo?.indexing)return[`User-agent: *`,`Disallow: /`].filter(Boolean).join(`
|
|
15
|
+
`);if(typeof e.robots==`string`)return e.robots;if(e.robots&&typeof e.robots==`object`){let t=e.robots.rules||[],r=e.robots.sitemaps||[],i=t.map(e=>{let t=`User-agent: ${e.userAgent}\n`;return e.allow&&(Array.isArray(e.allow)?t+=e.allow.map(e=>`Allow: ${e}`).join(`
|
|
16
|
+
`)+`
|
|
17
|
+
`:t+=`Allow: ${e.allow}\n`),e.disallow&&(Array.isArray(e.disallow)?t+=e.disallow.map(e=>`Disallow: ${e}`).join(`
|
|
18
|
+
`)+`
|
|
19
|
+
`:t+=`Disallow: ${e.disallow}\n`),t.trim()}).join(`
|
|
20
|
+
|
|
21
|
+
`),a=[...n?[n]:[],...r].map(e=>`Sitemap: ${e}`).join(`
|
|
22
|
+
`);return`${i}${a?`\n\n${a}`:``}`}return[`User-agent: *`,`Allow: /`,``,n?`Sitemap: ${n}`:``].filter(Boolean).join(`
|
|
23
|
+
`)}var pe=class{name=`SEOWrite`;async execute(e){if(!e.ssgRoutes||!e.config||!e.outDir)throw Error(`SSG Routes, Config, or OutDir not initialized.`);let t=de(e.ssgRoutes,e.config),n=e.docsDir||x.resolve(e.root,`docs`),r=x.resolve(e.root,e.outDir);t&&S.writeFileSync(x.join(r,`sitemap.xml`),t,`utf-8`);let i=fe(e.config);if(S.writeFileSync(x.join(r,`robots.txt`),i,`utf-8`),e.config.plugins&&e.config.plugins.length>0){let{PluginLifecycleManager:t}=await Promise.resolve().then(()=>J);await new t(e.config.plugins,e.config,n,e.root,e.routes??[],r).runHook(`build:generate`,{routes:e.routes??[],outDir:r,siteUrl:e.config.siteUrl})}}};function me(){return new q().addStep(new ae).addStep(new oe).addParallelSteps([new ce,new le]).addStep(new ue).addStep(new pe)}var q=class{steps=[];addStep(e){return this.steps.push(e),this}addParallelSteps(e){return this.steps.push(e),this}async run(e){let t=[],n=performance.now(),r={...e,timing:{}};for(let e of this.steps){let i=Array.isArray(e),a=i?e:[e],o=performance.now();try{i?await Promise.all(a.map(e=>e.execute(r))):await a[0].execute(r);let e=performance.now()-o;for(let n of a){let i=r.stepDetails?.[n.name];t.push({name:n.name,duration:e,success:!0,details:i}),r.timing[n.name]=e}r.ssgSubSteps&&(t.push(...r.ssgSubSteps),delete r.ssgSubSteps)}catch(e){let i=performance.now()-o,s=a.find(e=>!t.some(t=>t.name===e.name&&t.success))?.name||a.map(e=>e.name).join(` | `);t.push({name:s,duration:i,success:!1,error:e instanceof Error?e:Error(String(e))});for(let e of t.filter(e=>e.success).reverse()){let t=this.steps.flat().find(t=>t.name===e.name);if(t?.rollback)try{await t.rollback(r)}catch(t){console.error(`[pipeline] rollback failed for step "${e.name}":`,t)}}let c=performance.now()-n;return{success:!1,failedStep:s,error:e instanceof Error?e:Error(String(e)),timing:{total:c,steps:r.timing},stepResults:t}}}return{success:!0,timing:{total:performance.now()-n,steps:r.timing},stepResults:t}}},J=e({PluginLifecycleManager:()=>X,resolvePluginHook:()=>Y});const he={"build:before":`beforeBuild`,"build:after":`afterBuild`,"build:end":`buildEnd`,"dev:before":`beforeDev`,"dev:after":`afterDev`,"transform:source":`transformSource`,"transform:mdx":`transformMdx`,"transform:html":`transformHtml`,beforeBuild:`build:before`,afterBuild:`build:after`,buildEnd:`build:end`,beforeDev:`dev:before`,afterDev:`dev:after`,transformSource:`transform:source`,transformMdx:`transform:mdx`,transformHtml:`transform:html`};function Y(e,t){if(!e.hooks)return;let n=e.hooks[t];if(typeof n==`function`)return n;let r=he[t];if(r){let t=e.hooks[r];if(typeof t==`function`)return t}}var X=class{plugins;config;store;docsDir;rootDir;routes;outDir;runtime;routeCacheContext;routeCacheVariant;constructor(e,t,n,r,i,a,o,s,c){this.plugins=e,this.config=t,this.store=new W,this.docsDir=n||process.cwd(),this.rootDir=r||process.cwd(),this.routes=i||[],this.outDir=a||`dist`,this.runtime=o??l(),this.routeCacheContext=s??f(this.docsDir),this.routeCacheVariant=c??p(this.routeCacheContext,m(t,t.base))}async runHook(e,...t){let n=this.getSortedPlugins(),r=new q;for(let i of n)Y(i,e)&&r.addStep(this.createStep(i,e,t));await r.run({})}async runChain(e,t){let n=this.getSortedPlugins(),r=t;for(let t of n){let n=Y(t,e);if(!n)continue;let i=this.createContext(t);try{let e=await n(i,r);if(e!==void 0){let t=e.__signal;if(t===`break`)break;if(t===`skip`){r=e;break}r=e}}catch(n){let r=new U(t.name,e,n instanceof Error?n:Error(String(n)));i.logger.error(r),i.diagnostics.report(`error`,`PLUGIN_HOOK_ERROR`,r.message)}}return r}hasHook(e){return!!(this.plugins.some(t=>Y(t,e))||this.plugins.flatMap(e=>e.middleware??[]).some(t=>t[e])||(e===`transformSource`||e===`transformMdx`||e===`transformHtml`)&&[...this.runtime.middlewareRegistry.values()].some(t=>t[e]))}async runMiddlewareChain(e,t){let n=this.plugins.flatMap(e=>e.middleware??[]),r=[...this.runtime.middlewareRegistry.values()],i=[...n,...r],a=[...i.filter(e=>e.enforce===`pre`),...i.filter(e=>!e.enforce),...i.filter(e=>e.enforce===`post`)],o=t;for(let t of a){let n=t[e];if(!n)continue;let r=this.createGenericContext();try{let e=await n(r,o);if(e!==void 0){let t=e.__signal;if(t===`break`)break;if(t===`skip`){o=e;break}o=e}}catch(e){let n=`Middleware '${t.name??`<unnamed>`}' threw: ${e instanceof Error?e.message:String(e)}`;r.logger.error(n),r.diagnostics.report(`error`,`MIDDLEWARE_ERROR`,n)}}return o}getSortedPlugins(){let e=this.plugins.filter(e=>e.enforce===`pre`),t=this.plugins.filter(e=>!e.enforce),n=this.plugins.filter(e=>e.enforce===`post`);return[...e,...t,...n]}createStep(e,t,n){return{name:`${e.name}:${String(t)}`,execute:async()=>{let r=this.createContext(e);try{let i=Y(e,t);i&&await i(r,...n)}catch(n){let i=new U(e.name,t,n instanceof Error?n:Error(String(n)));r.logger.error(i)}},rollback:async()=>{let t=Y(e,`build:end`);if(t){let n=this.createContext(e);try{await t(n)}catch{}}}}}createContext(e){return{config:Object.freeze({...this.config}),docsDir:this.docsDir,rootDir:this.rootDir,outDir:this.outDir,routes:this.routes,meta:{name:e.name,version:e.version,boltdocsVersion:e.boltdocsVersion},store:{get:(e,t)=>this.store.get(e,t),set:(e,t,n)=>this.store.set(e,t,n),has:(e,t)=>this.store.has(e,t)},logger:this.createLogger(e.name),caches:o(this.routeCacheContext,this.rootDir,this.routeCacheVariant),diagnostics:c(e.name,this.runtime),paths:s(this.docsDir,this.rootDir),virtualModules:a(this.runtime),middleware:n(this.runtime),hmr:i(this.runtime),server:r(this.runtime)}}createGenericContext(){let e=`<middleware>`;return{config:Object.freeze({...this.config}),docsDir:this.docsDir,rootDir:this.rootDir,outDir:this.outDir,routes:this.routes,meta:{name:e},store:{get:(e,t)=>this.store.get(e,t),set:(e,t,n)=>this.store.set(e,t,n),has:(e,t)=>this.store.has(e,t)},logger:this.createLogger(e),caches:o(this.routeCacheContext,this.rootDir,this.routeCacheVariant),diagnostics:c(e,this.runtime),paths:s(this.docsDir,this.rootDir),virtualModules:a(this.runtime),middleware:n(this.runtime),hmr:i(this.runtime),server:r(this.runtime)}}createLogger(e){let t=`[plugin:${e}]`;return{info:e=>T.info(`${t} ${e}`),warn:e=>T.warn(`${t} ${e}`),error:e=>{T.error(`${t} ${e instanceof Error?e.message:e}`)},debug:e=>T.debug(`${t} ${e}`)}}};function Z(e){return t=>typeof e==`function`?e(t):e}function ge(e){return typeof e==`function`?Z(e):e}const Q=new Map;function _e(){let e=t;for(;e&&e!==x.parse(e).root;){let t=x.join(e,`package.json`);if(S.existsSync(t)){let n=``;try{n=JSON.parse(S.readFileSync(t,`utf-8`)).name||``}catch{n=``}if(n===`boltdocs`){let t=x.join(e,`src/client`);return S.existsSync(t)?t:void 0}}e=x.dirname(e)}}const ve=_e();function $(e,t,n){if(n===!1)return!1;if(typeof n==`string`)return x.resolve(e,n);let r=t?.vite?.publicDir;if(r===!1)return!1;if(typeof r==`string`)return x.resolve(e,r);let i=x.resolve(e,`public`),a=x.resolve(e,t?.docsDir||`docs`,`public`);return S.existsSync(i)||!S.existsSync(a)?i:a}function ye(e,t,n,r){return`${e}::${t}::${C.createHash(`md5`).update(JSON.stringify({root:e,mode:t,routeCount:n.routes?.length??0,skipTypes:n.skipTypes??!1,skipLinkTree:n.skipLinkTree??!1,skipRoutes:n.skipRoutes??!1,hasPreResolved:!!r,docsDir:r?.docsDir||`docs`,aliases:r?.aliases,viteAliases:r?.vite?.resolve?.alias,publicDir:$(e,r,n.publicDir)})).digest(`hex`)}`}function be(e,t=process.env.BOLTDOCS_BUNDLED_DEV){return!e&&t===`true`}function xe(e,t,n=process.env.BOLTDOCS_REACT_REFRESH){return e||n===`true`?!0:t===`/`||t===``}async function Se(e){let{resolveConfig:t}=await import(`./config-B3_iVsbi.mjs`).then(e=>e.t),{generateRoutes:n,getExternalRoutePaths:r}=await import(`./routes-Dw6g0bfF.mjs`).then(e=>e.i),{generateProjectTypes:i,writeLinkTree:a}=await import(`./types-generator-BtZ6-ZKx.mjs`).then(e=>e.n),{boltdocsPlugin:o}=await import(`./plugin-BAv_pYLt.mjs`),s=e?.docsDir||`docs`,c=await t(s),l=await n(s,c),u=l.map(e=>e.path),d=(c.base||`/docs`).replace(/\/$/,``);u.includes(d)||u.push(d);let f=r(s,c);for(let e of f)u.includes(e)||u.push(e);return i(c,s,void 0,u),a(u),o({...e,routes:e?.routes??l},c)}async function Ce(e,t=`development`,n,r={}){let i=ye(e,t,r,n),a=Q.get(i);if(a)return a.config;let o=null;function s(){return o||(o=Promise.all([import(`@vitejs/plugin-react`),import(`./plugin-BAv_pYLt.mjs`),import(`./resolve-C5rT6B21.mjs`),import(`vite`)]).then(([e,t,n,r])=>({reactPlugin:e.default,boltdocsPlugin:t.boltdocsPlugin,getExternalAbsolutePaths:t.getExternalAbsolutePaths,resolveSecurityHeaders:n.resolveSecurityHeaders,normalizePath:r.normalizePath})),o)}let c=s(),l=n||await(async()=>{let{resolveConfig:t}=await import(`./config-B3_iVsbi.mjs`).then(e=>e.t);return t(`docs`,e)})(),u=x.resolve(e,l.docsDir||`docs`),d=r.routes??(r.skipRoutes?[]:await(async()=>{let{generateRoutes:e}=await import(`./routes-Dw6g0bfF.mjs`).then(e=>e.i);return e(u,l,void 0,!1)})()),f=t===`production`,p=c.then(({resolveSecurityHeaders:e})=>e(l,f)),m=!r.skipTypes,h=!r.skipLinkTree;if(m||h){let[{getExternalRoutePaths:t},{generateProjectTypes:n,writeLinkTree:r}]=await Promise.all([import(`./routes-Dw6g0bfF.mjs`).then(e=>e.i),import(`./types-generator-BtZ6-ZKx.mjs`).then(e=>e.n)]),i=d.map(e=>e.path),a=(l.base||`/docs`).replace(/\/$/,``);i.includes(a)||i.push(a);let o=t(u,l);for(let e of o)i.includes(e)||i.push(e);m&&n(l,u,e,i),h&&r(i)}let g=await p,{reactPlugin:_,boltdocsPlugin:v,getExternalAbsolutePaths:y,normalizePath:ee}=await c,b=[],S={};if(l.plugins)for(let e of l.plugins)e.css?.postcssPlugins&&b.push(...e.css.postcssPlugins.filter(e=>typeof e==`function`||typeof e==`object`&&!!e)),e.css?.preprocessorOptions&&Object.assign(S,e.css.preprocessorOptions);let C=l.vite??{},w=C.server??{},T=C.preview??{},E=C.ssr??{},D=C.optimizeDeps??{},O=D.entries??[`index.html`],k=Array.isArray(E.external)?E.external:typeof E.external==`string`?[E.external]:[],A=w.watch?.ignored,j=A?Array.isArray(A)?[`**/.boltdocs/**`,...A]:[`**/.boltdocs/**`,A]:[`**/.boltdocs/**`],N=C.css!==void 0||b.length>0||Object.keys(S).length>0,P={...C.css,...b.length>0?{postcss:{plugins:b}}:{},...Object.keys(S).length>0?{preprocessorOptions:{...C.css?.preprocessorOptions,...S}}:{}},F=l.base||C.base||`/`,I={...C,root:e,mode:t,experimental:{...C.experimental,bundledDev:be(f)},oxc:{...C.oxc,jsx:{development:!f,runtime:`automatic`,importSource:`react`}},optimizeDeps:{...D,entries:O,include:[...D.include??[],`react`,`react-dom`,`react-dom/client`,`react-helmet-async`,`react-router-dom`,`react-fast-compare`,`invariant`,`use-sync-external-store/shim`]},css:N?P:void 0,build:C.build??{},plugins:[...C.plugins??[],te(),...xe(f,F)?_():[],...v({docsDir:u,root:e,routes:d},l)],ssr:{...E,external:[...k,`react`,`react-dom`,`react-helmet-async`,`react-router-dom`,`@bdocs/ssg`,`jsdom`,...y()],optimizeDeps:{...E.optimizeDeps,include:[...E.optimizeDeps?.include??[],`react`,`react-dom`,`react-fast-compare`]},noExternal:[]},server:{...w,watch:{...w.watch,ignored:j},headers:{...g,...w.headers}},preview:{...T,headers:{...g,...T.headers}},resolve:{...C.resolve,alias:[...ne({root:e,clientSourceRoot:ve,aliases:[...M(l.aliases),...M(C.resolve?.alias)]}).map(e=>({...e,...typeof e.replacement==`string`?{replacement:ee(e.replacement)}:{}}))],dedupe:[`react`,`react-dom`,`react-router-dom`,...C.resolve?.dedupe??[]]},base:F,publicDir:$(e,l,r.publicDir)};return Q.set(i,{config:I}),I.__boltdocsConfig=l,I}export{P as C,I as S,U as _,xe as a,z as b,X as c,me as d,K as f,B as g,H as h,be as i,J as l,W as m,Ce as n,ge as o,ie as p,A as r,Z as s,Se as t,Y as u,V as v,F as x,R as y};
|
|
@@ -3,4 +3,4 @@
|
|
|
3
3
|
* Copyright (c) 2026 Jesus Alcala
|
|
4
4
|
* Licensed under the MIT License.
|
|
5
5
|
*/
|
|
6
|
-
var e=`3.3.
|
|
6
|
+
var e=`3.3.6`;Object.defineProperty(exports,`version`,{enumerable:!0,get:function(){return e}});
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Boltdocs - https://boltdocs.vercel.app
|
|
3
|
+
* Copyright (c) 2026 Jesus Alcala
|
|
4
|
+
* Licensed under the MIT License.
|
|
5
|
+
*/
|
|
6
|
+
const e=require(`./chunk-D1Md3oWO.cjs`),t=require(`./node-7Cfw6nMr.cjs`),n=require(`./utils-ej6_SjIZ.cjs`),r=require(`./pages-external-DPiPFxxP.cjs`),i=require(`./plugin-context-BZs5lvDu.cjs`),a=require(`./routes-CzhKOw67.cjs`),o=require(`./config-BJp3lGzE.cjs`),s=require(`./types-generator-C83Iy6X5.cjs`),c=require(`./config-files-ph2ZtHWl.cjs`),l=require(`./doctor-BqxOFRt3.cjs`),u=require(`./virtual-modules-C3S3Nz8r.cjs`),d=require(`./csp-BiGAG8aF.cjs`);let f=require(`node:path`);f=e.r(f);let p=require(`node:fs`);p=e.r(p);let m=require(`@bdocs/dui`),h=require(`node:module`),g=require(`@bdocs/unist-utils`),_=require(`vite`),v=require(`@bdocs/plugin-image-optimizer`),y=require(`@bdocs/processor-satteri/node`);function b(e){return`<!doctype html>
|
|
7
|
+
<html lang="en">
|
|
8
|
+
<head>
|
|
9
|
+
<meta charset="UTF-8" />
|
|
10
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
11
|
+
</head>
|
|
12
|
+
<body>
|
|
13
|
+
<div id="root"></div>
|
|
14
|
+
</body>
|
|
15
|
+
</html>`}function x(e,t,n){return e?typeof e==`string`?e:e[n||``]||Object.values(e)[0]||t:t}function S(e){let t=e.i18n?.defaultLocale,r=x(e.theme?.title,`Boltdocs`,t),i=e.theme?.favicon;!i&&e.theme?.logo&&(i=typeof e.theme.logo==`string`?e.theme.logo:e.theme.logo.light||e.theme.logo.dark);let a=e.seo?.indexing,o=a===`none`?`noindex, nofollow`:a===`all`?void 0:a,s=e.seo?.metatags||{},c=Object.entries(s).map(([e,t])=>{let r=n.n(e),i=n.n(t);return e.startsWith(`og:`)||e.startsWith(`music:`)||e.startsWith(`video:`)||e.startsWith(`article:`)||e.startsWith(`book:`)||e.startsWith(`profile:`)?`<meta property="${r}" content="${i}">`:`<meta name="${r}" content="${i}">`});return{title:r,favicon:i,robotsContent:o,customMetaTags:c}}function C(e,t){if(!e.startsWith(`/`)||e.startsWith(`//`)||(()=>{let n=(t.base||``).replace(/^\/+|\/+$/g,``);return!!n&&(e===`/${n}`||e.startsWith(`/${n}/`))})())return e;let n=(t.base||`/`).replace(/\/+$/,``);return n&&n!==`/`?`${n}${e}`:e}function w(e,t){let r=e.favicon?C(e.favicon,t):void 0;return[r?`<link rel="icon" href="${n.n(r)}">`:``,e.robotsContent?`<meta name="robots" content="${n.n(e.robotsContent)}">`:``,`<meta name="generator" content="Boltdocs">`,...e.customMetaTags].filter(Boolean).join(`
|
|
16
|
+
`)}function T(e){if(!e)return``;let t=[];return e.google&&t.push(`<meta name="google-site-verification" content="${n.n(e.google)}">`),e.bing&&t.push(`<meta name="msvalidate.01" content="${n.n(e.bing)}">`),e.yandex&&t.push(`<meta name="yandex-verification" content="${n.n(e.yandex)}">`),e.pinterest&&t.push(`<meta name="p:domain_verify" content="${n.n(e.pinterest)}">`),e.facebook&&t.push(`<meta name="facebook-domain-verification" content="${n.n(e.facebook)}">`),t.join(`
|
|
17
|
+
`)}function E(e){let t=[],n=e.theme?.logo,r;if(typeof n==`string`?r=n:n&&typeof n==`object`&&(r=n.light||n.dark),r){let n={webp:`image/webp`,png:`image/png`,jpg:`image/jpeg`,jpeg:`image/jpeg`,svg:`image/svg+xml`,avif:`image/avif`}[r.split(`.`).pop()?.toLowerCase()||``]||`image/png`;t.push(`<link rel="preload" as="image" href="${C(r,e)}" type="${n}" fetchpriority="high">`)}return t.join(`
|
|
18
|
+
`)}function D(){return`
|
|
19
|
+
<script>
|
|
20
|
+
(function() {
|
|
21
|
+
try {
|
|
22
|
+
var stored = localStorage.getItem("boltdocs-theme");
|
|
23
|
+
var isDark =
|
|
24
|
+
stored === "dark" ||
|
|
25
|
+
(stored !== "light" && window.matchMedia("(prefers-color-scheme: dark)").matches);
|
|
26
|
+
document.documentElement.classList.toggle("dark", isDark);
|
|
27
|
+
document.documentElement.dataset.theme = isDark ? "dark" : "light";
|
|
28
|
+
} catch (e) {
|
|
29
|
+
}
|
|
30
|
+
})();
|
|
31
|
+
<\/script>
|
|
32
|
+
`}function O(e,t){if(!e||!t&&!e.debug)return``;let r=e.anonymizeIp?`gtag('set', 'ip', true);`:``,i=e.sendPageView===!1?`{send_page_view: false}`:`{}`,a=e.cookieFlags?`, {'cookie_flags': '${e.cookieFlags}'}`:``,o=n.n(e.measurementId);return`
|
|
33
|
+
<!-- Google tag (gtag.js) -->
|
|
34
|
+
<script async src="https://www.googletagmanager.com/gtag/js?id=${o}"><\/script>
|
|
35
|
+
<script>
|
|
36
|
+
window.dataLayer = window.dataLayer || [];
|
|
37
|
+
function gtag(){dataLayer.push(arguments);}
|
|
38
|
+
gtag('js', new Date());
|
|
39
|
+
${r}
|
|
40
|
+
gtag('config', '${o}', ${i}${a});
|
|
41
|
+
<\/script>
|
|
42
|
+
`}function k(e,t){if(!e||!t)return{script:``,noScript:``};let r=n.n(e.dataLayerName||`dataLayer`),i=e.preview?`>m_preview=${n.n(e.preview)}`:``,a=n.n(e.tagId);return{script:`
|
|
43
|
+
<!-- Google Tag Manager -->
|
|
44
|
+
<script defer>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
|
|
45
|
+
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
|
|
46
|
+
j=d.createElement(s),dl=l!='${r}'?'&l='+l:'';j.src=
|
|
47
|
+
'https://www.googletagmanager.com/gtm.js?id='+i+dl+'${i}';f.parentNode.insertBefore(j,f);
|
|
48
|
+
})(window,document,'script','${r}','${a}');<\/script>
|
|
49
|
+
<!-- End Google Tag Manager -->
|
|
50
|
+
`,noScript:`
|
|
51
|
+
<!-- Google Tag Manager (noscript) -->
|
|
52
|
+
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=${a}"
|
|
53
|
+
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
|
|
54
|
+
<!-- End Google Tag Manager (noscript) -->
|
|
55
|
+
`}}function A(e,t,n){if(!e||!t)return``;let{analytics:r,speedInsights:i}=e,a=e=>C(e,n),o=``;return r&&(o+=`
|
|
56
|
+
<script>window.va=window.va||function(){(window.vaq=window.vaq||[]).push(arguments)};<\/script>
|
|
57
|
+
<script defer src="${a(`/_vercel/insights/script.js`)}"><\/script>
|
|
58
|
+
`),i&&(o+=`
|
|
59
|
+
<script>window.si=window.si||function(){(window.siq=window.siq||[]).push(arguments)};<\/script>
|
|
60
|
+
<script defer src="${a(`/_vercel/speed-insights/script.js`)}"><\/script>
|
|
61
|
+
`),o}function j(e,t){if(!e||!t)return``;let r=n.n(e.apiKey),i=[`api_host: "${n.n(e.host||`https://us.i.posthog.com`)}"`];return e.capturePageview===!1&&i.push(`capture_pageview: false`),e.capturePageleave===!1&&i.push(`capture_pageleave: false`),e.sessionRecording===!0&&i.push(`session_recording: { recordCrossOriginPages: true }`),e.autocapture===!0&&i.push(`autocapture: true`),`
|
|
62
|
+
<!-- PostHog -->
|
|
63
|
+
<script>
|
|
64
|
+
!function(t,e){var o,n,p,r;e.__SV||(window.posthog=e,e._i=[],e.init=function(i,s,a){function g(t,e){var o=e.split(".");2==o.length&&(t=t[o[0]],e=o[1]),t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}}(p=t.createElement("script")).type="text/javascript",p.crossOrigin="anonymous",p.async=!0,p.src=s.api_host.replace(".i.posthog.com","-assets.i.posthog.com")+"/static/array.js",(r=t.getElementsByTagName("script")[0]).parentNode.insertBefore(p,r);var u=e;for(void 0!==a?(u=e[a]=[]):(a="posthog"),u.people=u.people||[],u.toString=function(t){var e="posthog";return"posthog"!==a&&(e+="."+a),t||(e+=" (stub)"),e},u.people.toString=function(){return u.toString(1)+".people (stub)"},o="init capture register register_once register_for_session unregister unregister_for_session getFeatureFlag getFeatureFlagResult isFeatureEnabled reloadFeatureFlags updateEarlyAccessFeatureEnrollment getEarlyAccessFeatures on onFeatureFlags onSessionId getSurveys getActiveMatchingSurveys renderSurvey canRenderSurvey getNextSurveyStep identify setPersonProperties group resetGroups setPersonPropertiesForFlags resetPersonPropertiesForFlags setGroupPropertiesForFlags resetGroupPropertiesForFlags reset get_distinct_id getGroups get_session_id get_session_replay_url alias set_config startSessionRecording stopSessionRecording sessionRecordingStarted captureException loadToolbar get_property getSessionProperty createPersonProfile opt_in_capturing opt_out_capturing has_opted_in_capturing has_opted_out_capturing clear_opt_in_out_capturing debug".split(" "),n=0;n<o.length;n++)g(u,o[n]);e._i.push([i,s,a])},e.__SV=1)}(document,window.posthog||[]);
|
|
65
|
+
posthog.init("${r}", { ${i.join(`, `)} });
|
|
66
|
+
<\/script>
|
|
67
|
+
`}function M(e,t){return e.replace(`<head>`,`<head>\n${t}`)}function N(e,t){return e.replace(`</head>`,` ${t}</head>`)}function P(e,t){return t?e.replace(/<body([^>]*)>/,`<body$1>\n${t}`):e}function F(e){return e.includes(`src/main`)||e.includes(`virtual:boltdocs-entry`)?e:e.replace(`</body>`,` <script type="module">import "virtual:boltdocs-entry";<\/script>
|
|
68
|
+
</body>`)}function ee(e,t){(!e?.includes(`<body`)||!e.includes(`<head`))&&(e=b(t));let n=process.env.NODE_ENV===`production`,r=w(S(t),t),i=T(t.seo?.verification),a=E(t),o=D(),s=O(t.integrations?.analytics?.ga4,n),c=k(t.integrations?.analytics?.gtm,n),l=[i,a,r,s,A(t.integrations?.analytics?.vercel,n,t),j(t.integrations?.analytics?.posthog,n),c.script].filter(Boolean).join(`
|
|
69
|
+
`);return e=M(e,o),e=N(e,l),e=P(e,c.noScript),e=F(e),e}function te(e){return(t,n,r)=>{let i=e().integrations?.feedback?.custom,a=i?.endpoint||`/api/feedback`;if(!i?.enabled||t.method!==`POST`||t.url?.split(`?`)[0]!==a)return r();let o=``,s=0;t.on(`data`,e=>{if(s+=e.length,s>10240){n.statusCode=413,n.end(JSON.stringify({error:`Request body too large`})),t.destroy();return}o+=e}),t.on(`end`,async()=>{n.setHeader(`Content-Type`,`application/json`);try{let{handleFeedback:e}=await Promise.resolve().then(()=>require(`./handler-Ch-Q9NAB.cjs`)).then(e=>e.n),t=await e(JSON.parse(o),process.env,{owner:i.owner,repo:i.repo,categorySlug:i.categorySlug});n.statusCode=200,n.end(JSON.stringify(t))}catch(e){n.statusCode=500;let t=e instanceof Error?e.message:`Failed to submit feedback`;n.end(JSON.stringify({error:t}))}})}}function ne(e){return(t,n,r)=>{let i=t.url||`/`,a=i.split(`?`)[0].split(`#`)[0];if(f.default.extname(a))return r();let o=e(),s=f.default.resolve(o?.root||process.cwd(),o?.build?.outDir||`dist`),c=a.replace(/\/$/,``)||`/`,l=f.default.join(s,c,`index.html`);c!==`/`&&p.default.existsSync(l)&&(t.url=`${c}/index.html${i.includes(`?`)?`?${i.split(`?`)[1]}`:``}`),r()}}const I=/\.(js|css|png|jpe?g|gif|svg|ico|webp|woff2?|ttf|otf|mp4|webm|ogg|mp3|wav|flac|aac|pdf|zip|gz|map|json)$/i;function re(e,t,n){let r=process.env.NODE_ENV===`production`;e.middlewares.use(te(n)),e.middlewares.use((e,t,i)=>{r&&Object.entries(d.n).forEach(([e,n])=>{t.setHeader(e,n)});let a=n();a.security?.enableCSP&&t.setHeader(`Content-Security-Policy`,d.t(a)),i()}),e.middlewares.use((e,t,n)=>{if(e.url===`/robots.txt`){n();return}n()}),e.middlewares.use(async(t,r,i)=>{let a=t.url?.split(`?`)[0]||`/`,o=t.headers.accept||``,s=n();if(o.includes(`text/html`)&&!I.test(a)){let n=b(s);n=ee(n,s),n=await e.transformIndexHtml(t.url||`/`,n),r.statusCode=200,r.setHeader(`Content-Type`,`text/html`),r.end(n);return}i()})}const ie=(()=>{let e=Number.parseInt(process.env.BOLTDOCS_PREWARM_LIMIT||``,10);return Number.isFinite(e)&&e>0?e:200})(),L=new WeakMap,R=[/\/index\./i,/\/getting-started/i,/\/intro/i,/\/readme/i],ae=[`react`,`react-dom`,`react-dom/client`,`react-router-dom`,`react-helmet-async`];function oe(e){for(let t=0;t<R.length;t++)if(R[t].test(e))return t;return R.length}function se(e,t){let n=e.config.root,r=f.default.join(e.config.cacheDir,`deps`,t.file);return`/${f.default.relative(n,r).split(f.default.sep).join(`/`)}`}function ce(e){let t=e.config;if(!t?.cacheDir)return;let n=ae.map(e=>({file:`${e.replaceAll(`/`,`_`)}.js`})).filter(({file:e})=>p.default.existsSync(f.default.join(t.cacheDir,`deps`,e)));Promise.allSettled(n.map(t=>e.warmupRequest(se(e,t))))}function le(e,t,n,r){if(L.has(e))return;ce(e);let i=new Promise(i=>{setTimeout(async()=>{try{let i=(r?await r:await(await Promise.resolve().then(()=>require(`./routes-Dq_2EUIB.cjs`))).generateRoutes(t,n())).filter(e=>e.filePath).map(e=>e.filePath).sort((e,t)=>oe(e)-oe(t)),a=performance.now(),o=process.env.BOLTDOCS_PREWARM_ALL===`true`?i:i.slice(0,ie);for(let t=0;t<o.length;t+=8){(e._pendingRequests||0)>0&&await new Promise(e=>setTimeout(e,50));let n=o.slice(t,t+8);await Promise.allSettled(n.map(t=>{let n=f.default.isAbsolute(t)?t:f.default.resolve(e.config.root,t);if(!p.default.existsSync(n))return Promise.resolve();let r=n.replace(/\\/g,`/`);return e.warmupRequest(`/@fs/${r}`)})),await new Promise(e=>setTimeout(e,0))}(process.env.BOLTDOCS_DEBUG===`true`||process.env.BOLTDOCS_BENCHMARK===`true`)&&console.log(`[boltdocs] prewarm done (${i.length} files) in ${Math.round(performance.now()-a)}ms`)}catch(e){process.env.BOLTDOCS_DEBUG===`true`&&console.warn(`[boltdocs] Prewarm failed:`,e)}finally{L.delete(e),i()}},1500)});L.set(e,i)}const ue=[`tsx`,`jsx`],z=[`tsx`,`ts`,`jsx`,`js`];function de(e,t){let n=f.default.resolve(e.config.root),r=e=>{let t=f.default.resolve(e);return t===n||t.startsWith(`${n}${f.default.sep}`)},i=[...c.t.map(e=>f.default.resolve(process.cwd(),e)),...ue.map(e=>f.default.resolve(t,`layout.${e}`)),...z.map(e=>f.default.resolve(t,`mdx-components.${e}`)),...z.map(e=>f.default.resolve(t,`pages-external/index.${e}`)),...z.map(e=>f.default.resolve(t,`icons.${e}`))].filter(e=>!r(e));i.length>0&&e.watcher.add(i)}function B(e,t){let n=[`\0virtual:boltdocs-${t}.ts`,`\0virtual:boltdocs-${t}.tsx`];for(let t of n){let n=e.moduleGraph.getModuleById(t);if(n){e.moduleGraph.invalidateModule(n);break}}}function fe(e,t,r,o,d,p,h,g){let _=h&&!h.disposed?h:p?.routeCacheContext&&!p.routeCacheContext.disposed?p.routeCacheContext:a.d(t),v=g??a.f(_,a.p(o())),b=new Map,x=new Map,S=new Map,C=r.replace(/\/+$/,``).toLowerCase(),w=null;function T(){if(w)return w;w=new Map;for(let[t,n]of e.moduleGraph.fileToModulesMap.entries())try{n&&w.set(decodeURIComponent(t).toLowerCase(),n)}catch{}return w}e.watcher.on(`all`,()=>{w=null});function E(e,t){return S.get(e)===t}function D(t){let n=e.moduleGraph.getModulesByFile(t);if((!n||n.size===0)&&(n=T().get(t.toLowerCase())),n&&n.size>0){for(let t of n)e.moduleGraph.invalidateModule(t);return!0}return!1}function O(r,i,a){if(!E(i,a))return;let o=n.u(f.default.relative(t,r)),s=D(i);E(i,a)&&(s?e.ws.send({type:`custom`,event:`boltdocs:mdx-update`,data:{file:i,relPath:o}}):e.ws.send({type:`full-reload`}))}let k=async(r,f)=>{try{let h=n.u(r),g=(S.get(h)??0)+1;if(S.set(h,g),f===`add`||f===`unlink`){let e=b.get(h);e&&(clearTimeout(e),b.delete(h))}if(c.t.some(e=>h.endsWith(e))){e.restart();return}if(h.includes(`/pages-external/`)||h.includes(`\\pages-external\\`)){B(e,`entry`),e.ws.send({type:`full-reload`});return}let w=h.toLowerCase(),T=w===C||w.startsWith(`${C}/`),k=e=>T&&w===`${C}/${e}`;if(k(`mdx-components.tsx`)||k(`mdx-components.ts`)||k(`mdx-components.jsx`)||k(`mdx-components.js`)){s.t(o(),t),B(e,`mdx-components.tsx`),e.ws.send({type:`full-reload`});return}if(k(`icons.tsx`)||k(`icons.ts`)||k(`icons.jsx`)||k(`icons.js`)){B(e,`icons.tsx`),e.ws.send({type:`full-reload`});return}if(k(`layout.tsx`)||k(`layout.jsx`)){B(e,`layout.tsx`),e.ws.send({type:`full-reload`});return}if(T&&[`/post.tsx`,`/post.jsx`,`/list.tsx`,`/list.jsx`].some(e=>w.endsWith(e))){B(e,`entry`),e.ws.send({type:`full-reload`});return}if(!T)return;let A=h.slice(h.lastIndexOf(`/`)+1),j=A===`meta.json`||A===`_meta.json`;if(!j&&!n.c(h))return;if(f===`add`||f===`unlink`||j){f===`unlink`&&a.s(r,_,v),j&&a.m(r,_),f===`add`&&((0,y.invalidateMdxFileCache)(r),D(h)),a.i(_),u.invalidateDirectoryMetaCache(p),(d?i.f(f,h,d):i.f(f,h)).catch(e=>{(0,m.error)(`Plugin HMR handler error:`,e)});let n=o();s.t(n,t),B(e,`config`),B(e,`routes`),B(e,`search`),B(e,`collections`),l.c(t,process.cwd(),n).catch(e=>{(0,m.error)(`Failed to update link tree:`,e)}),e.ws.send({type:`custom`,event:`boltdocs:config-update`,data:{theme:n?.theme,i18n:n?.i18n,versions:n?.versions,siteUrl:n?.siteUrl}}),e.ws.send({type:`full-reload`});return}if(b.has(h)){let e=b.get(h);e&&clearTimeout(e)}b.set(h,setTimeout(()=>{b.delete(h);let n=(x.get(h)??Promise.resolve()).then(async()=>{if(S.get(h)===g)try{let n=a.o(r,_,v),s=await a.a(r);if(S.get(h)!==g||!E(h,g))return;if(a.r(r,_),(0,y.invalidateMdxFileCache)(r),a.c(r,s,_,v),d?await i.f(`change`,h,d):await i.f(`change`,h),n!==void 0&&n!==s){if(!E(h,g))return;B(e,`routes`),B(e,`search`),B(e,`collections`);let n=o();try{let r=await u.computeFrontmatterDelta(t,n,p,_,v);if(!E(h,g))return;if(r.routes.deleted.length>0){E(h,g)&&e.ws.send({type:`full-reload`});return}if(!E(h,g))return;e.ws.send({type:`custom`,event:`boltdocs:frontmatter-update`,data:r})}catch(t){if(typeof t==`symbol`){E(h,g)&&e.ws.send({type:`full-reload`});return}(0,m.error)(`Failed to compute frontmatter delta:`,t),E(h,g)&&e.ws.send({type:`full-reload`});return}O(r,h,g);return}O(r,h,g)}catch(e){(0,m.error)(`HMR error processing content change:`,e)}});x.set(h,n);let s=()=>{x.get(h)===n&&x.delete(h)};n.then(s,s)},150))}catch(e){(0,m.error)(`HMR error during ${f} event:`,e)}};e.watcher.on(`add`,e=>k(e,`add`)),e.watcher.on(`unlink`,e=>k(e,`unlink`)),e.watcher.on(`change`,e=>k(e,`change`))}function pe(e){let t=n.u(e).replace(/\/+$/,``).toLowerCase();return({file:e})=>{let r=n.u(e).toLowerCase(),i=r===t||r.startsWith(`${t}/`),a=r.includes(`/pages-external/`)||r.includes(`\\pages-external\\`);if(i&&(n.c(e)||r.endsWith(`meta.json`)||a))return[]}}function me(e,t,n,r,o,s,c,l){return{name:`vite-plugin-boltdocs-dev-server`,apply:`serve`,async configureServer(r){i.d(s),u.invalidateDirectoryMetaCache(c);let d=o();await d?.runHook(`dev:before`).catch(e=>{(0,m.error)(`dev:before hook failed:`,e)});let f=Promise.resolve().then(()=>require(`./routes-Dq_2EUIB.cjs`)).then(({generateRoutes:t})=>t(e,n()));f.then(e=>Promise.resolve().then(()=>require(`./types-generator-C83Iy6X5.cjs`)).then(e=>e.n).then(({writeLinkTree:t})=>t(e.map(e=>e.path)))).catch(()=>{});let p=l&&!l.disposed?l:c?.routeCacheContext&&!c.routeCacheContext.disposed?c.routeCacheContext:a.d(e);c&&(c.routeCacheContext=p),le(r,e,n,f),re(r,e,n),de(r,e),fe(r,e,t,n,s,c,p),p&&r.httpServer?.once(`close`,()=>{a.l(e,p)}),r.httpServer?.once(`listening`,()=>{Promise.resolve().then(()=>require(`./registry-DLJIooEu.cjs`)).then(e=>e.u).then(({prewarmHighlighter:e})=>{let t=n(),r=(0,g.normalizeCodeHighlightConfig)(t.theme?.codeHighlighting);e({engine:r?.engine,theme:r?.theme??t.theme?.codeTheme,options:r?.options})}).catch(()=>{})}),i.m((e,t)=>{r.ws.send(e,t)},s),i.t(r,s),await i.p(s).catch(()=>{}),await d?.runHook(`dev:after`).catch(()=>{})},hotUpdate:pe(t)}}function V(e,t){let n=new Map,r=ge(t);if(!r||!e)return{resolve:()=>null,mightRewrite:()=>!1};let i=t=>{if(n.has(t))return n.get(t)??null;let i=null;if(!t.startsWith(`${r}/`)){let n=decodeURIComponent(t).replace(/^\//,``),a=f.default.join(e,n);n.length>0&&!n.includes(`..`)&&a.startsWith(e)&&p.default.existsSync(a)&&p.default.statSync(a).isFile()&&(i=`${r}${t}`)}return n.set(t,i),i},a;try{let t=p.default.readdirSync(e).filter(e=>e.length>0&&e!==`.`&&e!==`..`).map(e=>he(e));if(t.length>0){let e=RegExp(`\\/(?:${t.join(`|`)})(?=["/?#\\s])`,`i`);a=t=>e.test(t)}}catch{a=void 0}return{resolve:i,mightRewrite:a}}function he(e){let t=H(e);return/[ !"#$%&'()+,:;=?@[\]^`{}~]/.test(e)?`${t}|${H(encodeURIComponent(e).replace(/'/g,`%27`).replace(/~/g,`%7E`))}`:t}function H(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function ge(e){if(!e||e===`/`)return null;let t=e.replace(/\/+$/,``);return t.length>0&&t!==``?t:null}const U=`srcset`,_e=RegExp(`((?:src|href|poster|content)|${U})="([^"]*)"`,`g`);function ve(e,t){return t.mightRewrite&&!t.mightRewrite(e)?e:(_e.lastIndex=0,e.replace(_e,(e,n,r)=>{if(n===U){let n=!1,i=r.split(`,`).map(e=>{let[r,...i]=e.trim().split(/\s+/);if(!r?.startsWith(`/`))return e;let a=t.resolve(r);return a?(n=!0,[a,...i].join(` `)):e}).join(`, `);return n?`${U}="${i}"`:e}if(!r.startsWith(`/`))return e;let i=t.resolve(r);return i?e.replace(r,i):e}))}function ye(e,t){let n=V(e,t);return function(e,t,r){if(e.method&&e.method!==`GET`&&e.method!==`HEAD`){r();return}let i=e.url??`/`,a=i.indexOf(`?`),o=a===-1?i:i.slice(0,a);if(!o.startsWith(`/`)){r();return}let s=n.resolve(o);if(!s){r();return}t.writeHead(302,{Location:`${s}${a===-1?``:i.slice(a)}`}),t.end()}}const W=(0,h.createRequire)(require(`url`).pathToFileURL(__filename).href),be=[`react`,`react-dom`,`react-router-dom`,`react-helmet-async`,`@bdocs/ssg`,`jsdom`,`lucide-react`,`react-fast-compare`,`invariant`,`scheduler`],xe=[`react/jsx-runtime`,`react/jsx-dev-runtime`,`react-dom/client`];function G(e=W){try{let e=f.default.join(process.cwd(),`node_modules/boltdocs/package.json`);return p.default.existsSync(e)?(0,h.createRequire)(p.default.realpathSync(e)):(0,h.createRequire)(f.default.join(process.cwd(),`package.json`))}catch{return e}}function K(e,t=W){try{let n=e.split(`/`),r=e.startsWith(`@`)?n.slice(0,2).join(`/`):n[0],i=e.startsWith(`@`)?n.slice(2).join(`/`):n.slice(1).join(`/`),a=``;try{a=t.resolve(`${r}/package.json`)}catch{let e=t.resolve(r),n=f.default.dirname(e);for(;n&&n!==f.default.dirname(n);){let e=f.default.join(n,`package.json`);if(p.default.existsSync(e)){a=e;break}n=f.default.dirname(n)}}if(!a)throw Error();let o=f.default.dirname(a),s=JSON.parse(p.default.readFileSync(a,`utf-8`)),c=i?`./${i}`:`.`,l=s.exports?.[c]||s.exports?.[i]||``;typeof l==`object`&&l&&(l=l.import||l.default||l.require||``),!l&&!i&&(l=s.module||s.main||`index.js`);let u=f.default.resolve(o,l);if(p.default.existsSync(u))return u}catch{}return t.resolve(e)}function q(e=W){let t=[],r=G(e),i=new Set([r,e]);for(let e of i){for(let n of be)try{let r=[`@bdocs/ssg`,`react-router-dom`,`react-helmet-async`].includes(n)?K(n,e):e.resolve(n);r&&t.push(p.default.realpathSync(r))}catch{}for(let n of xe)try{t.push(p.default.realpathSync(e.resolve(n)))}catch{}}return Array.from(new Set(t)).map(e=>n.u(e))}const J=(0,h.createRequire)(require(`url`).pathToFileURL(__filename).href),Se=new Set([`react`,`react-dom`,`react-router-dom`,`react-helmet-async`,`@bdocs/ssg`,`lucide-react`,`react-fast-compare`,`invariant`,`scheduler`]),Ce=[`react/`,`react-dom/`,`react-router-dom/`,`react-helmet-async/`,`@bdocs/ssg/`,`lucide-react/`,`scheduler/`],Y=new Set([`@bdocs/ssg`,`react-router-dom`,`react-helmet-async`]);let X=null;function we(){return X||=new Map,X}function Te(e,t){return`${e}::${t?`1`:`0`}`}const Ee=[`react`,`react-dom`,`react-router-dom`,`react-helmet-async`,`@bdocs/ssg`,`lucide-react`,`react-fast-compare`,`invariant`,`scheduler`];let De=null;function Oe(){return De||=JSON.parse(p.default.readFileSync(f.default.resolve(__dirname,`../../../package.json`),`utf-8`)).version??`0.0.0`,De}const Z=new Map;function ke(e){return f.default.join(e,`.boltdocs`,`cache`,`plugin-validation.json`)}function Ae(e,t){try{let n=ke(e);if(!p.default.existsSync(n))return!1;let r=p.default.readFileSync(n,`utf-8`);return JSON.parse(r).key===t}catch{return!1}}function je(e,t,n,r){try{let i=ke(e);p.default.mkdirSync(f.default.dirname(i),{recursive:!0});let a={key:t,boltdocsVersion:n,validatedNames:r,timestamp:Date.now()};p.default.writeFileSync(i,JSON.stringify(a),`utf-8`)}catch{}}let Q=null;function $(e){return e??[]}function Me(e={},c){let l=f.default.resolve(e.root||process.cwd()),d=f.default.resolve(l,e.docsDir||`docs`),m=n.u(d),h=c,b,x=!1,S=i.s(),C=a.d(d),w=u.createVirtualModuleState(C),T,E=e.routes??[],D=null,O=null,k=()=>O||(O=V(b?.publicDir,b?.base),O),A=[];if(h?.plugins?.length)try{let e=Oe(),n=JSON.stringify(h.plugins.map(e=>[e.name||``,e.version||``,e.boltdocsVersion||``].join(`:`)).sort()),r=Z.get(n);if(r){let e=r.validated;h.plugins=e,T=new t.c(e,h,d,void 0,void 0,void 0,S,C),A=e.flatMap(e=>$(e.vitePlugins))}else if(Ae(l,n)){let e=h.plugins;T=new t.c(e,h,d,void 0,void 0,void 0,S,C),A=e.flatMap(e=>$(e.vitePlugins)),Z.set(n,{validated:e})}else{let r=t.f(h.plugins,e);h.plugins=r,T=new t.c(r,h,d,void 0,void 0,void 0,S,C),A=r.flatMap(e=>$(e.vitePlugins)),Z.set(n,{validated:r}),je(l,n,e,r.map(e=>e.name))}}catch{}let j=null,M=new Map,N=()=>h,P=e=>{h=e},F=()=>b,I=()=>(C.disposed&&(C=a.d(d),w.routeCacheContext=C,w.routeCacheVariant=void 0,w.routeGenerationFingerprint=void 0,w.routesDataMap.clear(),w.collectionsDataMap.clear(),w.searchDataMap.clear(),T=new t.c(h.plugins||[],h,d,void 0,E,b?.build?.outDir||`dist`,S,C)),T);return[{name:`vite-plugin-boltdocs`,enforce:`pre`,async config(e,n){x=n.command===`build`;let i=!!(n.isSsrBuild||e.build?.ssr);if(i&&h&&E.length>0&&T)return{build:{ssrManifest:!0},ssr:{external:[`react`,`react-dom`,`react-helmet-async`,`react-router-dom`,`@bdocs/ssg`,`jsdom`,`lucide-react`,`react-fast-compare`,`invariant`,`scheduler`,...q(J)],optimizeDeps:{include:[`react-fast-compare`]},noExternal:[]}};if(Object.assign(process.env,(0,_.loadEnv)(n.mode,e.envDir||process.cwd(),``)),h||=await o.t(d),E.length===0&&x){D||=a.t(d,h),E=await D;let e=E.map(e=>e.path),t=(h.base||`/docs`).replace(/\/$/,``);e.includes(t)||e.push(t);let n=r.n(d,h);for(let t of n)e.includes(t)||e.push(t);s.t(h,d,void 0,e),s.r(e)}if(x&&Promise.resolve().then(()=>require(`./registry-DLJIooEu.cjs`)).then(e=>e.u).then(({prewarmHighlighter:e})=>{let t=(0,g.normalizeCodeHighlightConfig)(h.theme?.codeHighlighting);e({engine:t?.engine,theme:t?.theme??h.theme?.codeTheme,options:t?.options})}).catch(()=>{}),!T){let{version:e}=await Promise.resolve().then(()=>require(`./package-Bah2tHjK.cjs`)),n=t.f(h.plugins||[],e);h.plugins=n,T=new t.c(n,h,d,void 0,E,b?.build?.outDir||`dist`,S,C),A=n.flatMap(e=>$(e.vitePlugins))}if(x&&await T?.runHook(`build:before`),!j){let e=h.ssg?.criticalCss;j={entry:`boltdocs/entry`,htmlEntry:`index.html`,dirStyle:`flat`,includeAllRoutes:!0,mock:!0,script:`async`,beastiesOptions:!1,criticalCss:e===`none`?!1:e===`beasties`?`beasties`:`zig-critters`,criticalCssMaxSize:h.ssg?.criticalCssMaxSize,onPageRendered:async(e,t)=>{if(!T)return t;try{let n=M.get(e)??E.find(t=>t.path===e);n&&M.set(e,n);let r=(await T.runChain(`transformHtml`,{html:t,path:e,route:n})).html;r=(await T.runMiddlewareChain(`transformHtml`,{html:r,path:e})).html;let i=k();return i&&(r=ve(r,i)),r}catch{return t}}}}return{ssgOptions:j,build:{ssrManifest:x},optimizeDeps:{include:[`react`,`react-dom`,`react-dom/client`,`react-router-dom`,`react-helmet-async`,`react-fast-compare`,`invariant`,`lucide-react`],exclude:[`boltdocs`,`boltdocs/client`]},resolve:{alias:i?[]:[{find:`react-router-dom`,replacement:K(`react-router-dom`)},{find:`react-helmet-async`,replacement:K(`react-helmet-async`)},{find:`@bdocs/ssg`,replacement:K(`@bdocs/ssg`)}],dedupe:[`react`,`react-dom`,...i?[]:[`react-router-dom`,`react-helmet-async`,`@bdocs/ssg`]]},ssr:{external:[`react`,`react-dom`,`react-helmet-async`,`react-router-dom`,`@bdocs/ssg`,`jsdom`,`lucide-react`,`react-fast-compare`,`invariant`,`scheduler`,...q(J)],optimizeDeps:{include:[`react-fast-compare`]},noExternal:[]}}},configResolved(e){if(b=e,!Q){Q=new Map;for(let e of Y)try{let t=K(e),n=p.default.realpathSync(t);Q.set(e,n)}catch{}for(let e of[`react`,`react-dom`,`jsdom`,`lucide-react`,`react-fast-compare`,`invariant`,`scheduler`])try{let t=J.resolve(e),n=p.default.realpathSync(t);Q.set(e,n)}catch{}}},resolveId(e,t,n){let r=we(),i=Te(e,n?.ssr),a=r.get(i);if(a!==void 0)return a;if(!f.default.isAbsolute(e)&&!e.startsWith(`.`)&&!Se.has(e)&&!e.startsWith(`react`)&&!e.startsWith(`@bdocs`))return r.set(i,null),null;let o=null;if(Se.has(e)&&(o=e),!o&&!f.default.isAbsolute(e)&&!e.startsWith(`.`)){let t=Ce.find(t=>e.startsWith(t));t&&(o=t.slice(0,-1))}if(!o&&e.includes(`/node_modules/`)){for(let t of Ee)if(e.includes(`/node_modules/${t}/`)){o=t;break}}if(o&&n?.ssr&&!f.default.isAbsolute(e)&&o!==`react`&&o!==`react-dom`){let t=Q?.get(o);if(t){let e={id:t,external:!0};return r.set(i,e),e}let n=G(J),a=e;try{a=Y.has(o)?K(e,n):n.resolve(e)}catch{try{a=Y.has(o)?K(e,J):J.resolve(e)}catch{}}try{a=p.default.realpathSync(a)}catch{}let s={id:a,external:!0};return r.set(i,s),s}return r.set(i,null),null},transformIndexHtml:{order:`pre`,handler:e=>ee(e,h)},configureServer(e){e.middlewares.use(ye(b?.publicDir,b?.base)),e.middlewares.use((e,t,n)=>{let r=e.url?.split(`?`)[0];if(r===`/search.json`||r?.endsWith(`/search.json`)){Promise.resolve().then(()=>require(`./virtual-modules-C3S3Nz8r.cjs`)).then(()=>{t.setHeader(`Content-Type`,`application/json`),t.end(u.getSearchJsonExport(w))}).catch(e=>{console.error(`[boltdocs] Failed to serve search.json:`,e),t.statusCode=500,t.end(`[]`)});return}if(r===`/page-source.json`||r?.endsWith(`/page-source.json`)){Promise.resolve().then(()=>require(`./virtual-modules-C3S3Nz8r.cjs`)).then(()=>{t.setHeader(`Content-Type`,`application/json`),t.end(u.getPageSourceJsonExport(w))}).catch(e=>{console.error(`[boltdocs] Failed to serve page-source.json:`,e),t.statusCode=500,t.end(`{}`)});return}n()})},async generateBundle(){let e=this.environment?.config?.consumer??`client`;if(!(!x||e!==`client`)){try{let e=u.getSearchJsonExport(w);this.emitFile({type:`asset`,fileName:`search.json`,source:e})}catch(e){console.error(`[boltdocs] Failed to emit search.json:`,e)}try{this.emitFile({type:`asset`,fileName:`page-source.json`,source:u.getPageSourceJsonExport(w)})}catch(e){console.error(`[boltdocs] Failed to emit page-source.json:`,e)}}},async closeBundle(){let e=this.environment?.config?.consumer??`client`;!x||e!==`client`||(await T?.runHook(`build:after`),await T?.runHook(`build:end`))},configurePreviewServer(e){e.middlewares.use(te(N)),e.middlewares.use(ne(F)),i.t(e,S),i.p(S).catch(()=>{})}},u.createVirtualModulesPlugin(e,N,F,d,S,w),me(d,m,N,P,I,S,w),...$([(0,y.createSatteriMdxPlugin)(h,I,{docsDir:e.docsDir||`docs`})]),...$([(0,v.ViteImageOptimizer)({includePublic:!0})]),...A]}exports.boltdocsPlugin=Me,exports.getBaseRequire=G,exports.getExternalAbsolutePaths=q,exports.resolveEsm=K;
|