@ox-content/vite-plugin 3.0.0-alpha.3 → 3.0.0-alpha.5

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/index.mjs CHANGED
@@ -132,8 +132,8 @@ function normalizeClassName(className) {
132
132
  * Highlights with the native tree-sitter engine, or `null` when it has no
133
133
  * grammar for `lang`.
134
134
  *
135
- * It emits `--octc-shiki-*` markup (the `shiki` prefix is historical) so
136
- * theme-color packages keep working.
135
+ * It emits `--octc-syntax-*` markup so theme-color packages resolve token
136
+ * colors.
137
137
  */
138
138
  function highlightNatively(code, lang) {
139
139
  try {
@@ -160,8 +160,8 @@ async function highlightDocumentNatively(html) {
160
160
  /**
161
161
  * Syntax highlighting with the native tree-sitter engine.
162
162
  *
163
- * Markup keeps the historical `<pre class="shiki css-variables">` wrapper and
164
- * `--octc-shiki-*` custom properties so theme-color packages keep working.
163
+ * Markup uses `<pre class="ox-highlight css-variables">` and `--octc-syntax-*`
164
+ * custom properties so theme-color packages resolve token colors.
165
165
  */
166
166
  const rehypeParse$3 = interopDefault(rehypeParsePlugin);
167
167
  const rehypeStringify$3 = interopDefault(rehypeStringifyPlugin);
@@ -205,7 +205,7 @@ function rehypeNativeHighlight() {
205
205
  highlightedCode.properties.className = [.../* @__PURE__ */ new Set([
206
206
  ...originalCodeClasses,
207
207
  ...highlightedClasses,
208
- "shiki-inline"
208
+ "ox-highlight-inline"
209
209
  ])];
210
210
  highlightedCode.properties["data-language"] = lang;
211
211
  return highlightedCode;
@@ -220,7 +220,7 @@ function rehypeNativeHighlight() {
220
220
  const child = node.children[i];
221
221
  if (child.type === "element" && child.tagName === "pre") {
222
222
  const codeElement = child.children.find((c) => c.type === "element" && c.tagName === "code");
223
- const alreadyHighlighted = normalizeClassName(child.properties?.className).includes("shiki");
223
+ const alreadyHighlighted = normalizeClassName(child.properties?.className).includes("ox-highlight");
224
224
  if (codeElement && !alreadyHighlighted) {
225
225
  const highlightedPre = highlightBlockCode(codeElement);
226
226
  if (highlightedPre) node.children[i] = highlightedPre;
@@ -1754,7 +1754,7 @@ async function transformOgp(html, ogpDataMap, options) {
1754
1754
  const SELF_CLOSING_EMBED_TAG = /<(GitHub|OgCard|Tweet|XPost|Bluesky|Spotify|StackBlitz|WebContainer|YouTube)((?:[^>"']|"[^"]*"|'[^']*')*?)\s*\/>/gi;
1755
1755
  /**
1756
1756
  * Custom embed tags are not HTML void elements, so a self-closing authoring
1757
- * form like `<GitHub ... />` reaches the HTML re-parsers (Shiki highlighting,
1757
+ * form like `<GitHub ... />` reaches the HTML re-parsers (syntax highlighting,
1758
1758
  * embed transforms) as an unclosed element that swallows the rest of the
1759
1759
  * document. Normalize to an explicit open/close pair before any rehype pass
1760
1760
  * runs.
@@ -2202,7 +2202,8 @@ async function applyTypedHover(source, html, options) {
2202
2202
  if (fences.length === 0) return html;
2203
2203
  try {
2204
2204
  return attachTypedHoverPayloads(html, await generateTypedHoverAttachments(fences, options.tsgoCommand));
2205
- } catch {
2205
+ } catch (error) {
2206
+ console.warn("[ox-content] typedHover failed; leaving the fence unannotated.", error);
2206
2207
  return html;
2207
2208
  }
2208
2209
  }
@@ -2294,10 +2295,16 @@ function normalizeFenceText(value) {
2294
2295
  return decodeHtmlEntities(value).replace(/\r\n/g, "\n").trim();
2295
2296
  }
2296
2297
  function decodeHtmlEntities(value) {
2297
- return value.replace(/&lt;/g, "<").replace(/&gt;/g, ">").replace(/&amp;/g, "&").replace(/&quot;/g, "\"").replace(/&#39;/g, "'");
2298
+ return value.replace(/&lt;/g, "<").replace(/&gt;/g, ">").replace(/&quot;/g, "\"").replace(/&#39;/g, "'").replace(/&#x([0-9a-fA-F]+);/g, (_, hex) => {
2299
+ const code = Number.parseInt(hex, 16);
2300
+ return Number.isFinite(code) ? String.fromCodePoint(code) : "";
2301
+ }).replace(/&#(\d+);/g, (_, dec) => {
2302
+ const code = Number.parseInt(dec, 10);
2303
+ return Number.isFinite(code) ? String.fromCodePoint(code) : "";
2304
+ }).replace(/&amp;/g, "&");
2298
2305
  }
2299
2306
  const TYPED_HOVER_STYLE = `<style data-ox-typed-hover-style>.ox-typed-hover-token{cursor:help;text-decoration:underline dotted}.ox-typed-hover-overlay{position:fixed;z-index:50;max-width:36rem;padding:.35rem .55rem;border:1px solid #444;border-radius:4px;background:#1e1e1e;color:#d4d4d4;font:12px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace;white-space:pre-wrap;pointer-events:none}</style>`;
2300
- const TYPED_HOVER_CLIENT = `<script data-ox-typed-hover-runtime>(function(){if(window.__oxTypedHover)return;window.__oxTypedHover=1;var tip=document.createElement("div");tip.className="ox-typed-hover-overlay";tip.setAttribute("role","tooltip");tip.hidden=true;document.body.appendChild(tip);function payload(token){var pre=token.closest(".ox-typed-hover");var data=pre&&pre.nextElementSibling;if(!data||!data.classList.contains("ox-typed-hover-data"))return null;try{return JSON.parse(data.textContent||"")}catch(e){return null}}function show(token){var data=payload(token);var item=data&&data.hovers[Number(token.getAttribute("data-ox-typed-hover"))];if(!item)return;tip.textContent=item.type;tip.hidden=false;var box=token.getBoundingClientRect();tip.style.left=Math.max(8,box.left)+"px";tip.style.top=Math.max(8,box.top-tip.offsetHeight-8)+"px"}function hide(){tip.hidden=true}document.addEventListener("mouseover",function(e){var t=e.target.closest(".ox-typed-hover-token");if(t)show(t)});document.addEventListener("mouseout",function(e){var t=e.target.closest(".ox-typed-hover-token");if(t&&!t.contains(e.relatedTarget))hide()});document.addEventListener("focusin",function(e){var t=e.target.closest(".ox-typed-hover-token");if(t)show(t)});document.addEventListener("focusout",function(e){if(!e.relatedTarget||!e.relatedTarget.closest(".ox-typed-hover-token"))hide()});document.addEventListener("keydown",function(e){if(e.key==="Escape")hide()})})();<\/script>`;
2307
+ const TYPED_HOVER_CLIENT = `<script data-ox-typed-hover-runtime>(function(){if(window.__oxTypedHover)return;window.__oxTypedHover=1;var tip=document.createElement("div");tip.className="ox-typed-hover-overlay";tip.setAttribute("role","tooltip");tip.hidden=true;document.body.appendChild(tip);function payload(token){var pre=token.closest(".ox-typed-hover");if(!pre)return null;var host=pre.closest(".ox-code")||pre;var data=host.nextElementSibling;if(!data||!data.classList.contains("ox-typed-hover-data"))return null;try{return JSON.parse(data.textContent||"")}catch(e){return null}}function show(token){var data=payload(token);var item=data&&data.hovers[Number(token.getAttribute("data-ox-typed-hover"))];if(!item)return;tip.textContent=item.type;tip.hidden=false;var box=token.getBoundingClientRect();tip.style.left=Math.max(8,box.left)+"px";tip.style.top=Math.max(8,box.top-tip.offsetHeight-8)+"px"}function hide(){tip.hidden=true}document.addEventListener("mouseover",function(e){var t=e.target.closest(".ox-typed-hover-token");if(t)show(t)});document.addEventListener("mouseout",function(e){var t=e.target.closest(".ox-typed-hover-token");if(t&&!t.contains(e.relatedTarget))hide()});document.addEventListener("focusin",function(e){var t=e.target.closest(".ox-typed-hover-token");if(t)show(t)});document.addEventListener("focusout",function(e){if(!e.relatedTarget||!e.relatedTarget.closest(".ox-typed-hover-token"))hide()});document.addEventListener("keydown",function(e){if(e.key==="Escape")hide()})})();<\/script>`;
2301
2308
  //#endregion
2302
2309
  //#region src/file-tree-options.ts
2303
2310
  const disabled = {
@@ -4123,6 +4130,22 @@ function stripLocalePrefix(sitePath, locales) {
4123
4130
  return normalized;
4124
4131
  }
4125
4132
  //#endregion
4133
+ //#region src/page-head.ts
4134
+ /** Resolve descriptors to escaped `<head>` markup. Build-time only. */
4135
+ function renderHead(input) {
4136
+ return importNapiModuleSync().renderHead(JSON.stringify(input));
4137
+ }
4138
+ function resolveHeadValidation(value) {
4139
+ if (value === "warn" || value === "strict") return value;
4140
+ return false;
4141
+ }
4142
+ function reportHeadDiagnostics(diagnostics, validation) {
4143
+ if (!validation || diagnostics.length === 0) return;
4144
+ const fatal = diagnostics.filter((item) => item.strict);
4145
+ if (validation === "strict" && fatal.length > 0) throw new Error(`[ox-content] ${fatal[0].message}`);
4146
+ if (validation === "warn") for (const item of diagnostics) console.warn(`[ox-content] ${item.message}`);
4147
+ }
4148
+ //#endregion
4126
4149
  //#region src/page-context.ts
4127
4150
  var page_context_exports = /* @__PURE__ */ __exportAll({
4128
4151
  clearRenderContext: () => clearRenderContext,
@@ -9242,6 +9265,7 @@ function resolveSsgOptions(ssg) {
9242
9265
  pagination: false,
9243
9266
  breadcrumbs: false,
9244
9267
  jsonLd: false,
9268
+ headValidation: false,
9245
9269
  readerChrome: false,
9246
9270
  localeSwitcher: false,
9247
9271
  a11y: false,
@@ -9262,6 +9286,7 @@ function resolveSsgOptions(ssg) {
9262
9286
  pagination: false,
9263
9287
  breadcrumbs: false,
9264
9288
  jsonLd: false,
9289
+ headValidation: false,
9265
9290
  readerChrome: false,
9266
9291
  localeSwitcher: false,
9267
9292
  a11y: false,
@@ -9290,6 +9315,7 @@ function resolveSsgOptions(ssg) {
9290
9315
  pagination: resolvePaginationOption(ssg.pagination),
9291
9316
  breadcrumbs: resolvePaginationOption(ssg.breadcrumbs),
9292
9317
  jsonLd: resolveJsonLdOption(ssg.jsonLd),
9318
+ headValidation: resolveHeadValidation(ssg.headValidation),
9293
9319
  readerChrome: resolveReaderChromeOption(ssg.readerChrome),
9294
9320
  localeSwitcher: resolveLocaleSwitcherOption(ssg.localeSwitcher),
9295
9321
  a11y: resolveA11yOption(ssg.a11y),
@@ -9321,7 +9347,9 @@ function resolveJsonLdOption(value) {
9321
9347
  const publisher = resolveJsonLdPublisher(value.publisher);
9322
9348
  return {
9323
9349
  breadcrumbs: value.breadcrumbs !== false,
9324
- ...publisher ? { publisher } : {}
9350
+ ...publisher ? { publisher } : {},
9351
+ ...value.type ? { type: value.type } : {},
9352
+ ...value.graph ? { graph: value.graph } : {}
9325
9353
  };
9326
9354
  }
9327
9355
  return false;
@@ -9464,7 +9492,7 @@ function localeCodesFor(locales) {
9464
9492
  async function generateHtmlPage(pageData, navGroups, siteName, base, ogImage, theme, locale, availableLocales, pagination = false, readerChrome = false, breadcrumbs = false, localeSwitcher = false, localePaths, a11y = false, team = {
9465
9493
  enabled: false,
9466
9494
  members: []
9467
- }, pageChrome = false, breadcrumbRootHref, jsonLd = false, siteUrl) {
9495
+ }, pageChrome = false, breadcrumbRootHref, jsonLd = false, siteUrl, headValidation = false) {
9468
9496
  const mod = await importNapiModule();
9469
9497
  const tocForRust = pageData.toc.map(toRustTocEntry);
9470
9498
  const navGroupsForRust = convertNavGroupsForRust(navGroups);
@@ -9500,7 +9528,7 @@ async function generateHtmlPage(pageData, navGroups, siteName, base, ogImage, th
9500
9528
  linkText: f.linkText
9501
9529
  }))
9502
9530
  } : void 0;
9503
- return mod.generateSsgHtml({
9531
+ const result = mod.generateSsgHtml({
9504
9532
  title: pageData.title,
9505
9533
  description: pageData.description,
9506
9534
  content: pageData.content,
@@ -9513,12 +9541,16 @@ async function generateHtmlPage(pageData, navGroups, siteName, base, ogImage, th
9513
9541
  next: pageData.next,
9514
9542
  breadcrumbs: pageData.breadcrumbs,
9515
9543
  layout: typeof pageData.frontmatter.layout === "string" ? pageData.frontmatter.layout : void 0,
9516
- chrome: pageData.chrome
9544
+ chrome: pageData.chrome,
9545
+ robots: typeof pageData.frontmatter.robots === "string" ? pageData.frontmatter.robots : void 0,
9546
+ canonical: typeof pageData.frontmatter.canonical === "string" ? pageData.frontmatter.canonical : void 0
9517
9547
  }, navGroupsForRust, {
9518
9548
  siteName,
9519
9549
  base,
9520
9550
  breadcrumbRootHref,
9521
9551
  ogImage,
9552
+ siteUrl,
9553
+ headValidation: headValidation || void 0,
9522
9554
  theme: themeForRust,
9523
9555
  locale,
9524
9556
  availableLocales: availableLocales ? toRustLocales(availableLocales) : void 0,
@@ -9537,9 +9569,14 @@ async function generateHtmlPage(pageData, navGroups, siteName, base, ogImage, th
9537
9569
  jsonLd: jsonLd ? {
9538
9570
  breadcrumbs: jsonLd.breadcrumbs,
9539
9571
  publisher: jsonLd.publisher,
9540
- siteUrl
9572
+ siteUrl,
9573
+ pageType: jsonLd.type,
9574
+ graph: jsonLd.graph?.map((node) => JSON.stringify(node))
9541
9575
  } : void 0
9542
9576
  });
9577
+ const html = typeof result === "string" ? result : result.html;
9578
+ reportHeadDiagnostics(typeof result === "string" ? [] : result.diagnostics ?? [], headValidation);
9579
+ return html;
9543
9580
  }
9544
9581
  async function externalizeSharedPageAssets(pages, outDir, base) {
9545
9582
  const optimized = (await importNapiModule()).externalizeSsgAssets(pages, outDir, base);
@@ -9982,7 +10019,7 @@ async function renderSsgPage(context, pageResult, collected, allPageResults) {
9982
10019
  return generateHtmlPage(pageData, navItems, context.siteName, context.base, pageOgImage, theme, locale, i18n ? i18n.locales : void 0, context.ssgOptions.pagination, context.ssgOptions.readerChrome, context.ssgOptions.breadcrumbs, context.ssgOptions.localeSwitcher, localePaths, context.ssgOptions.a11y, context.ssgOptions.team ?? {
9983
10020
  enabled: false,
9984
10021
  members: []
9985
- }, context.ssgOptions.pageChrome, versionNavigation?.root.href, context.ssgOptions.jsonLd, context.ssgOptions.siteUrl);
10022
+ }, context.ssgOptions.pageChrome, versionNavigation?.root.href, context.ssgOptions.jsonLd, context.ssgOptions.siteUrl, context.ssgOptions.headValidation);
9986
10023
  }
9987
10024
  function rewritePagerOverride(pager, context) {
9988
10025
  return pager?.href ? {
@@ -10443,7 +10480,7 @@ async function renderPage$1(filePath, options, navGroups, siteName, base, root,
10443
10480
  let html = await generateHtmlPage(pageData, localizedNav, siteName, base, options.ssg.ogImage, theme, locale, i18n ? i18n.locales : void 0, options.ssg.pagination, options.ssg.readerChrome, options.ssg.breadcrumbs, options.ssg.localeSwitcher, localePaths, options.ssg.a11y, options.ssg.team ?? {
10444
10481
  enabled: false,
10445
10482
  members: []
10446
- }, options.ssg.pageChrome, void 0, options.ssg.jsonLd, options.ssg.siteUrl);
10483
+ }, options.ssg.pageChrome, void 0, options.ssg.jsonLd, options.ssg.siteUrl, options.ssg.headValidation);
10447
10484
  html = injectViteHmrClient(html);
10448
10485
  return html;
10449
10486
  }
@@ -12982,6 +13019,6 @@ function normalizeRuntimeBase(base) {
12982
13019
  return withLeading.endsWith("/") ? withLeading : `${withLeading}/`;
12983
13020
  }
12984
13021
  //#endregion
12985
- export { DEFAULT_HTML_TEMPLATE, DEFAULT_MARKDOWN_EXTENSIONS, DefaultTheme, DocsTestRunError, Fragment, IncrementalMarkdownParser, IncrementalMarkdownRenderer, PageResourceError, applyIslandSsrHtml, buildCollectionManifest, buildSearchIndex, buildSsg, classifyPublishState, clearRenderContext, collectDocsTests, collectGitHubRepos, collectGitHubSources, collectMdxIslandNamesFromHtml, collectMdxJsxNamesFromAst, collectOgpUrls, convertVitePressNav, convertVitePressSidebar, createFrameworkMarkdownOptions, createI18nPlugin, createIncrementalMarkdownParser, createIncrementalMarkdownRenderer, createMarkdownEnvironment, createTheme, defaultTheme, defineCollection, defineCollections, defineTheme, discoverDocumentMdxIslands, discoverRegisteredMdxComponents, each, escapeSvelteMarkup, extractCodeBlocks, extractDocs, extractDocsTests, extractIslandInfo, extractVideoId, fetchGitHubSource, fetchOgpData, fetchRepoData, fromVitePressConfig, generateCollectionsVirtualModule, generateFrontmatterTypes, generateHydrationScript, generateMarkdown, generateOgImages, generateTabsCSS, generateTypes, generateVirtualModule, generateVitePressMigrationConfig, hasIslands, inferType, intersectHydratableComponentNames, intersectRegisteredComponentNames, isMarkdownFilePath, isMdxFilePath, isRegisteredComponent, jsx, jsxs, lintCodeBlocks, lintMarkdown, lintMarkdownAsync, lintMarkdownFile, lintMarkdownFiles, mergeThemes, mermaidClientScript, normalizeMarkdownExtensions, normalizeVitePressFrontmatter, oxContent, parseGitHubLineRange, parseGitHubPermalink, parsePageChromeFlags, partitionPublishedPages, prefetchGitHubRepos, prefetchGitHubSources, prefetchOgpData, raw, readingTimeMinutes, renderAllPages, renderHtmlToFrameworkCode, renderHtmlToReactComponent, renderHtmlToReactCreateElement, renderHtmlToSvelteComponent, renderHtmlToVueComponent, renderHtmlToVueH, renderIslandComponentImports, renderMarkdownStream, renderPage, renderToString, resolveBadgeOptions, resolveBlogCollectionName, resolveBlogOptions, resolveBuiltinEmbedOptions, resolveCardOptions, resolveCascadeOptions, resolveCollectionsOptions, resolveContentRootPath, resolveDocsOptions, resolveDocumentComponentImports, resolveFeedsOptions, resolveFileTreeOptions, resolveHeaderNavItems, resolveI18nOptions, resolveImageOptions, resolveIncludeOptions, resolveLocaleLabel, resolveMathOptions, resolveMdxForFilePath, resolveNotFoundOptions, resolveOgImageOptions, resolvePageChromeOption, resolvePermalinksOptions, resolvePublishStateOptions, resolvePwaOptions, resolveRedirectsOptions, resolveResourcesOptions, resolveSearchOptions, resolveSectionIndexOptions, resolveSiteMapsOptions, resolveSsgOptions, resolveStepsOptions, resolveTaxonomiesOptions, resolveTeamOptions, resolveTheme, resolveTypedHoverOptions, resolveVersionsOptions, runDocsTests, setRenderContext, shouldLintMarkdownFile, stripMarkdownExtension, stripViteQuery, transformAllPlugins, transformGitHub, transformIslands, transformMarkdown, transformMermaidStatic, transformOgp, transformTabs, transformYouTube, typecheckCodeBlocks, useIsActive, useNav, usePageProps, useRenderContext, useSiteConfig, when, writeDocs, writeDocsTestFiles, writeSearchIndex };
13022
+ export { DEFAULT_HTML_TEMPLATE, DEFAULT_MARKDOWN_EXTENSIONS, DefaultTheme, DocsTestRunError, Fragment, IncrementalMarkdownParser, IncrementalMarkdownRenderer, PageResourceError, applyIslandSsrHtml, buildCollectionManifest, buildSearchIndex, buildSsg, classifyPublishState, clearRenderContext, collectDocsTests, collectGitHubRepos, collectGitHubSources, collectMdxIslandNamesFromHtml, collectMdxJsxNamesFromAst, collectOgpUrls, convertVitePressNav, convertVitePressSidebar, createFrameworkMarkdownOptions, createI18nPlugin, createIncrementalMarkdownParser, createIncrementalMarkdownRenderer, createMarkdownEnvironment, createTheme, defaultTheme, defineCollection, defineCollections, defineTheme, discoverDocumentMdxIslands, discoverRegisteredMdxComponents, each, escapeSvelteMarkup, extractCodeBlocks, extractDocs, extractDocsTests, extractIslandInfo, extractVideoId, fetchGitHubSource, fetchOgpData, fetchRepoData, fromVitePressConfig, generateCollectionsVirtualModule, generateFrontmatterTypes, generateHydrationScript, generateMarkdown, generateOgImages, generateTabsCSS, generateTypes, generateVirtualModule, generateVitePressMigrationConfig, hasIslands, inferType, intersectHydratableComponentNames, intersectRegisteredComponentNames, isMarkdownFilePath, isMdxFilePath, isRegisteredComponent, jsx, jsxs, lintCodeBlocks, lintMarkdown, lintMarkdownAsync, lintMarkdownFile, lintMarkdownFiles, mergeThemes, mermaidClientScript, normalizeMarkdownExtensions, normalizeVitePressFrontmatter, oxContent, parseGitHubLineRange, parseGitHubPermalink, parsePageChromeFlags, partitionPublishedPages, prefetchGitHubRepos, prefetchGitHubSources, prefetchOgpData, raw, readingTimeMinutes, renderAllPages, renderHead, renderHtmlToFrameworkCode, renderHtmlToReactComponent, renderHtmlToReactCreateElement, renderHtmlToSvelteComponent, renderHtmlToVueComponent, renderHtmlToVueH, renderIslandComponentImports, renderMarkdownStream, renderPage, renderToString, resolveBadgeOptions, resolveBlogCollectionName, resolveBlogOptions, resolveBuiltinEmbedOptions, resolveCardOptions, resolveCascadeOptions, resolveCollectionsOptions, resolveContentRootPath, resolveDocsOptions, resolveDocumentComponentImports, resolveFeedsOptions, resolveFileTreeOptions, resolveHeadValidation, resolveHeaderNavItems, resolveI18nOptions, resolveImageOptions, resolveIncludeOptions, resolveLocaleLabel, resolveMathOptions, resolveMdxForFilePath, resolveNotFoundOptions, resolveOgImageOptions, resolvePageChromeOption, resolvePermalinksOptions, resolvePublishStateOptions, resolvePwaOptions, resolveRedirectsOptions, resolveResourcesOptions, resolveSearchOptions, resolveSectionIndexOptions, resolveSiteMapsOptions, resolveSsgOptions, resolveStepsOptions, resolveTaxonomiesOptions, resolveTeamOptions, resolveTheme, resolveTypedHoverOptions, resolveVersionsOptions, runDocsTests, setRenderContext, shouldLintMarkdownFile, stripMarkdownExtension, stripViteQuery, transformAllPlugins, transformGitHub, transformIslands, transformMarkdown, transformMermaidStatic, transformOgp, transformTabs, transformYouTube, typecheckCodeBlocks, useIsActive, useNav, usePageProps, useRenderContext, useSiteConfig, when, writeDocs, writeDocsTestFiles, writeSearchIndex };
12986
13023
 
12987
13024
  //# sourceMappingURL=index.mjs.map