fumadocs-mdx 15.3.0 → 15.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/dist/{adapter-Bf3BetFi.js → adapter-CaofLLZB.js} +2 -2
  2. package/dist/{build-DvX_5u5A.js → build-BPukCt-X.js} +2 -2
  3. package/dist/{build-default-LB5TcE_V.js → build-default-gg93ZIqY.js} +1 -1
  4. package/dist/{build-satteri-D-ZGkE5A.js → build-satteri-DUjpwpvb.js} +1 -1
  5. package/dist/bun/index.d.ts +1 -1
  6. package/dist/bun/index.js +6 -6
  7. package/dist/{codegen-ESdi9CDJ.js → codegen-BYYNMDsX.js} +12 -4
  8. package/dist/config/index.d.ts +2 -2
  9. package/dist/{core-BPlsDtvN.js → core-BHawVsTm.js} +1 -1
  10. package/dist/{core-BmvJhZxm.d.ts → core-ZgBVAQdE.d.ts} +4 -1
  11. package/dist/{dist-Bniav-AK.js → dist-ReDy_RCL.js} +8 -3
  12. package/dist/{eval-z3HV4VJp.js → eval-Ck25S_U5.js} +3 -3
  13. package/dist/{index-BN7EkING.d.ts → index-BMgfRjXO.d.ts} +1 -1
  14. package/dist/{index-vs1fd5_x.d.ts → index-CCzEIOob.d.ts} +1 -1
  15. package/dist/{index-file-pX-fCn8l.js → index-file-BSc4lZH6.js} +23 -7
  16. package/dist/index.d.ts +1 -1
  17. package/dist/{last-modified-SdvMEHGm.js → last-modified-BkZYFKSh.js} +7 -5
  18. package/dist/{load-from-file-CIW3c2FZ.js → load-from-file-DSDlZhTM.js} +1 -1
  19. package/dist/macro/index.d.ts +1 -1
  20. package/dist/{mdx-DkuxK47O.js → mdx-20MMF76V.js} +1 -1
  21. package/dist/next/index.d.ts +1 -1
  22. package/dist/next/index.js +3 -3
  23. package/dist/node/_loader.js +6 -6
  24. package/dist/node/index.d.ts +1 -1
  25. package/dist/node/loader.js +3 -3
  26. package/dist/plugins/index-file.d.ts +1 -1
  27. package/dist/plugins/index-file.js +1 -1
  28. package/dist/plugins/json-schema.d.ts +1 -1
  29. package/dist/plugins/last-modified.d.ts +1 -1
  30. package/dist/rolldown/index.d.ts +1 -1
  31. package/dist/rolldown/index.js +6 -6
  32. package/dist/runtime/browser.d.ts +2 -2
  33. package/dist/runtime/dynamic.d.ts +3 -3
  34. package/dist/runtime/dynamic.js +5 -2
  35. package/dist/runtime/macro.d.ts +1 -1
  36. package/dist/runtime/server.d.ts +3 -3
  37. package/dist/runtime/server.js +8 -3
  38. package/dist/runtime/types.d.ts +2 -2
  39. package/dist/{transform-BFobDsdE.js → transform-I3BjMKz6.js} +1 -1
  40. package/dist/{types-DWoea9Sq.d.ts → types-1n7Fk5Dl.d.ts} +9 -3
  41. package/dist/vite/index.d.ts +2 -2
  42. package/dist/vite/index.js +7 -7
  43. package/dist/webpack/macro.d.ts +1 -1
  44. package/dist/webpack/macro.js +1 -1
  45. package/dist/webpack/mdx.d.ts +1 -1
  46. package/dist/webpack/mdx.js +3 -3
  47. package/dist/webpack/meta.d.ts +1 -1
  48. package/dist/webpack/meta.js +2 -2
  49. package/dist/{webpack-BSog6pml.js → webpack-CNi1ZUjq.js} +2 -2
  50. package/package.json +16 -16
@@ -1,5 +1,5 @@
1
- import { i as buildConfig, n as ValidationError } from "./core-BPlsDtvN.js";
2
- import { t as loadConfig } from "./load-from-file-CIW3c2FZ.js";
1
+ import { i as buildConfig, n as ValidationError } from "./core-BHawVsTm.js";
2
+ import { t as loadConfig } from "./load-from-file-DSDlZhTM.js";
3
3
  import { readFileSync } from "node:fs";
4
4
  import fs from "node:fs/promises";
5
5
  import { fileURLToPath } from "node:url";
@@ -3,10 +3,10 @@ import { t as __exportAll } from "./rolldown-runtime-D7D4PA-g.js";
3
3
  var build_exports = /* @__PURE__ */ __exportAll({ buildMDX: () => buildMDX });
4
4
  async function buildMDX(core, collection, options) {
5
5
  if ((collection ? collection.compiler : core.getConfig().global.compiler) === "satteri") {
6
- const { buildSatteriMDX } = await import("./build-satteri-D-ZGkE5A.js");
6
+ const { buildSatteriMDX } = await import("./build-satteri-DUjpwpvb.js");
7
7
  return buildSatteriMDX(core, collection, options);
8
8
  }
9
- const { buildJSMDX } = await import("./build-default-LB5TcE_V.js");
9
+ const { buildJSMDX } = await import("./build-default-gg93ZIqY.js");
10
10
  return buildJSMDX(core, collection, options);
11
11
  }
12
12
  //#endregion
@@ -1,5 +1,5 @@
1
1
  import { n as flattenNode, r as applyMdxPreset, t as remarkInclude } from "./remark-include-B6rmf4sh.js";
2
- import { t as resolveLastModified } from "./last-modified-SdvMEHGm.js";
2
+ import { t as resolveLastModified } from "./last-modified-BkZYFKSh.js";
3
3
  import { visit } from "unist-util-visit";
4
4
  import { VFile } from "vfile";
5
5
  import { createProcessor } from "@mdx-js/mdx";
@@ -1,4 +1,4 @@
1
- import { t as resolveLastModified } from "./last-modified-SdvMEHGm.js";
1
+ import { t as resolveLastModified } from "./last-modified-BkZYFKSh.js";
2
2
  import { pathToFileURL } from "node:url";
3
3
  //#region src/loaders/mdx/build-satteri.ts
4
4
  async function buildSatteriMDX(core, collection, { filePath, frontmatter, source, _compiler, environment, isDevelopment }) {
@@ -1,4 +1,4 @@
1
- import { r as CoreOptions } from "../core-BmvJhZxm.js";
1
+ import { r as CoreOptions } from "../core-ZgBVAQdE.js";
2
2
  import { n as ResolvedMacroOptions, t as MacroPluginOption } from "../options-aB6xV-d7.js";
3
3
  import { BunPlugin } from "bun";
4
4
  //#region src/bun/index.d.ts
package/dist/bun/index.js CHANGED
@@ -1,7 +1,7 @@
1
- import { t as createMdxLoader } from "../mdx-DkuxK47O.js";
2
- import { i as buildConfig, t as createCore } from "../core-BPlsDtvN.js";
3
- import { r as slash } from "../codegen-ESdi9CDJ.js";
4
- import { a as createIntegratedConfigLoader, t as toBun } from "../adapter-Bf3BetFi.js";
1
+ import { t as createMdxLoader } from "../mdx-20MMF76V.js";
2
+ import { i as buildConfig, t as createCore } from "../core-BHawVsTm.js";
3
+ import { r as slash } from "../codegen-BYYNMDsX.js";
4
+ import { a as createIntegratedConfigLoader, t as toBun } from "../adapter-CaofLLZB.js";
5
5
  import { t as createMetaLoader } from "../meta-BR_rkCyY.js";
6
6
  import { r as metaLoaderGlob, t as mdxLoaderGlob } from "../loaders-DWC_Uwqq.js";
7
7
  import { r as resolveMacroOptions } from "../options-BNnYUjkM.js";
@@ -44,7 +44,7 @@ function createMdxPlugin(options = {}) {
44
44
  await core.init({ config: buildConfig(configExports, process.cwd()) });
45
45
  if (macroOptions) {
46
46
  const root = process.cwd();
47
- const { MacroCollector } = await import("../eval-z3HV4VJp.js").then((n) => n.r);
47
+ const { MacroCollector } = await import("../eval-Ck25S_U5.js").then((n) => n.r);
48
48
  const pendingEvals = /* @__PURE__ */ new Map();
49
49
  core.macro = new MacroCollector({
50
50
  root,
@@ -76,7 +76,7 @@ function createMdxPlugin(options = {}) {
76
76
  contents: await transform(source, file) ?? source,
77
77
  loader
78
78
  };
79
- const { transformMacroModule } = await import("../transform-BFobDsdE.js").then((n) => n.i);
79
+ const { transformMacroModule } = await import("../transform-I3BjMKz6.js").then((n) => n.i);
80
80
  return {
81
81
  contents: (await transformMacroModule({
82
82
  code: source,
@@ -27,10 +27,11 @@ function createCodegen({ target = "default", outDir = "", jsExtension = false, g
27
27
  if (target === "vite") return this.generateViteGlobImport(patterns, options);
28
28
  return this.generateNodeGlobImport(patterns, options);
29
29
  },
30
- generateViteGlobImport(patterns, { base, ...rest }) {
30
+ generateViteGlobImport(patterns, { base, query, ...rest }) {
31
31
  patterns = (typeof patterns === "string" ? [patterns] : patterns).map(normalizeViteGlobPath);
32
32
  return `import.meta.glob(${JSON.stringify(patterns)}, ${JSON.stringify({
33
33
  base: normalizeViteGlobPath(path.relative(outDir, base)),
34
+ query: query ? stringifyQuery(query) || void 0 : void 0,
34
35
  ...rest
35
36
  }, null, 2)})`;
36
37
  },
@@ -44,12 +45,11 @@ function createCodegen({ target = "default", outDir = "", jsExtension = false, g
44
45
  files = glob(patterns, { cwd: base });
45
46
  globCache.set(cacheKey, files);
46
47
  }
48
+ const search = stringifyQuery(query);
47
49
  let code = "{";
48
50
  for (const item of await files) {
49
51
  const fullPath = path.join(base, item);
50
- const searchParams = new URLSearchParams();
51
- for (const [k, v] of Object.entries(query)) if (v !== void 0) searchParams.set(k, v);
52
- const importPath = this.formatImportPath(fullPath) + "?" + searchParams.toString();
52
+ const importPath = this.formatImportPath(fullPath) + search;
53
53
  if (eager) {
54
54
  const name = `__fd_glob_${eagerImportId++}`;
55
55
  this.lines.unshift(importName ? `import { ${importName} as ${name} } from ${JSON.stringify(importPath)}` : `import * as ${name} from ${JSON.stringify(importPath)}`);
@@ -79,6 +79,14 @@ function createCodegen({ target = "default", outDir = "", jsExtension = false, g
79
79
  };
80
80
  }
81
81
  /**
82
+ * Serialize a query object into a `?`-prefixed, percent-encoded string.
83
+ */
84
+ function stringifyQuery(query = {}) {
85
+ const searchParams = new URLSearchParams();
86
+ for (const [k, v] of Object.entries(query)) if (v !== void 0) searchParams.set(k, v);
87
+ return searchParams.size > 0 ? `?${searchParams}` : "";
88
+ }
89
+ /**
82
90
  * convert into POSIX & relative file paths, such that Vite can accept it.
83
91
  */
84
92
  function normalizeViteGlobPath(file) {
@@ -1,3 +1,3 @@
1
- import { C as DocsCollection, D as defineCollections, E as SatteriPresetOptions, F as DefaultMDXOptions, I as MDXPresetOptions, L as applyMdxPreset, O as defineConfig, P as PostprocessOptions, S as DocCollectionSatteri, T as MetaCollection, _ as BaseCollection, b as DocCollectionBase, g as AnyCollection, k as defineDocs, v as CollectionSchema, w as GlobalConfig, x as DocCollectionMdx, y as DocCollection } from "../core-BmvJhZxm.js";
2
- import { n as metaSchema, r as remarkInclude, t as frontmatterSchema } from "../index-BN7EkING.js";
1
+ import { C as DocsCollection, D as defineCollections, E as SatteriPresetOptions, F as DefaultMDXOptions, I as MDXPresetOptions, L as applyMdxPreset, O as defineConfig, P as PostprocessOptions, S as DocCollectionSatteri, T as MetaCollection, _ as BaseCollection, b as DocCollectionBase, g as AnyCollection, k as defineDocs, v as CollectionSchema, w as GlobalConfig, x as DocCollectionMdx, y as DocCollection } from "../core-ZgBVAQdE.js";
2
+ import { n as metaSchema, r as remarkInclude, t as frontmatterSchema } from "../index-BMgfRjXO.js";
3
3
  export { AnyCollection, BaseCollection, CollectionSchema, DefaultMDXOptions, DocCollection, DocCollectionBase, DocCollectionMdx, DocCollectionSatteri, DocsCollection, GlobalConfig, MDXPresetOptions, MetaCollection, type PostprocessOptions, type SatteriPresetOptions, applyMdxPreset, defineCollections, defineConfig, defineDocs, frontmatterSchema, metaSchema, remarkInclude };
@@ -1,4 +1,4 @@
1
- import { n as ident } from "./codegen-ESdi9CDJ.js";
1
+ import { n as ident } from "./codegen-BYYNMDsX.js";
2
2
  import fs from "node:fs/promises";
3
3
  import path from "node:path";
4
4
  import picomatch from "picomatch";
@@ -79,8 +79,11 @@ interface CompiledMDXProperties<Frontmatter = Record<string, unknown>> {
79
79
  default: FC<MDXProps>;
80
80
  /**
81
81
  * Enable from `postprocess` option.
82
+ *
83
+ * A component with `output: 'function'` in `includeProcessedMarkdown`,
84
+ * render it with `renderToMarkdown` from `fumadocs-core/server`.
82
85
  */
83
- _markdown?: string;
86
+ _markdown?: string | FC<MDXProps>;
84
87
  /**
85
88
  * Enable from `postprocess` option.
86
89
  */
@@ -105,7 +105,7 @@ async function findClosestPkgJsonPath(dir, predicate) {
105
105
  }
106
106
  async function pkgNeedsOptimization(pkgJson, pkgJsonPath) {
107
107
  if (pkgJson.module || pkgJson.type === "module") return false;
108
- if (pkgJson.exports) return !exportsHasEsmEntry(pkgJson.exports);
108
+ if (pkgJson.exports) return !exportsHasEsmEntry(pkgJson.exports) && exportsHasJsEntry(pkgJson.exports);
109
109
  if (pkgJson.main) {
110
110
  const entryExt = path.extname(pkgJson.main);
111
111
  return !entryExt || entryExt === ".js" || entryExt === ".cjs";
@@ -123,12 +123,17 @@ function exportsHasEsmEntry(exportsField) {
123
123
  if (exportsField && typeof exportsField === "object") return Object.entries(exportsField).some(([key, value]) => key === "import" || key === "module" || exportsHasEsmEntry(value));
124
124
  return false;
125
125
  }
126
+ function exportsHasJsEntry(exportsField) {
127
+ if (typeof exportsField === "string") return /\.[cm]?js$/.test(exportsField);
128
+ if (Array.isArray(exportsField)) return exportsField.some(exportsHasJsEntry);
129
+ if (exportsField && typeof exportsField === "object") return Object.entries(exportsField).some(([key, value]) => key !== "types" && exportsHasJsEntry(value));
130
+ return false;
131
+ }
126
132
  function getExportsSubpaths(exportsField) {
127
133
  if (!exportsField || typeof exportsField !== "object" || Array.isArray(exportsField)) return ["."];
128
134
  const subpathKeys = Object.keys(exportsField).filter((key) => key.startsWith("."));
129
135
  if (subpathKeys.length === 0) return ["."];
130
- const subpaths = subpathKeys.filter((key) => key === "." || /^\.\/[^*.]+$/.test(key));
131
- return subpaths.length > 0 ? subpaths : ["."];
136
+ return subpathKeys.filter((key) => (key === "." || /^\.\/[^*.]+$/.test(key)) && exportsHasJsEntry(exportsField[key]));
132
137
  }
133
138
  async function findDepPkgJsonPath(dep, parent, usePnpWorkspaceLocators) {
134
139
  if (pnp) {
@@ -1,8 +1,8 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-D7D4PA-g.js";
2
- import { r as buildCollection } from "./core-BPlsDtvN.js";
3
- import { r as slash } from "./codegen-ESdi9CDJ.js";
2
+ import { r as buildCollection } from "./core-BHawVsTm.js";
3
+ import { r as slash } from "./codegen-BYYNMDsX.js";
4
4
  import { r as defineDocs } from "./define-BW5lveuc.js";
5
- import { n as transformMacroConfigModule, t as parseMacroId } from "./transform-BFobDsdE.js";
5
+ import { n as transformMacroConfigModule, t as parseMacroId } from "./transform-I3BjMKz6.js";
6
6
  import fs from "node:fs/promises";
7
7
  import path from "node:path";
8
8
  import { randomUUID } from "node:crypto";
@@ -1,4 +1,4 @@
1
- import "./core-BmvJhZxm.js";
1
+ import "./core-ZgBVAQdE.js";
2
2
  import { Processor, Transformer } from "unified";
3
3
  import { Root } from "mdast";
4
4
  //#region src/loaders/mdx/remark-include.d.ts
@@ -1,4 +1,4 @@
1
- import "./core-BmvJhZxm.js";
1
+ import "./core-ZgBVAQdE.js";
2
2
  //#region src/webpack/index.d.ts
3
3
  interface WebpackLoaderOptions {
4
4
  type: 'webpack' | 'turbopack';
@@ -1,4 +1,4 @@
1
- import { n as ident, r as slash, t as createCodegen } from "./codegen-ESdi9CDJ.js";
1
+ import { n as ident, r as slash, t as createCodegen } from "./codegen-BYYNMDsX.js";
2
2
  import { frontmatter } from "fumadocs-core/content/md/frontmatter";
3
3
  import fs from "node:fs/promises";
4
4
  import path from "node:path";
@@ -53,7 +53,27 @@ function indexFile(options = {}) {
53
53
  },
54
54
  configureServer(server) {
55
55
  if (!server.watcher) return;
56
- server.watcher.on("all", async (event, file) => {
56
+ let running = false;
57
+ let pending = false;
58
+ const regenerate = () => {
59
+ if (running) {
60
+ pending = true;
61
+ return;
62
+ }
63
+ running = true;
64
+ this.core.emit({
65
+ filterPlugin: (plugin) => plugin.name === "index-file",
66
+ filterWorkspace: () => false,
67
+ write: true
68
+ }).finally(() => {
69
+ running = false;
70
+ if (pending) {
71
+ pending = false;
72
+ regenerate();
73
+ }
74
+ });
75
+ };
76
+ server.watcher.on("all", (event, file) => {
57
77
  indexFileCache.delete(file);
58
78
  if (dynamicCollections.length === 0) {
59
79
  if (target === "vite") return;
@@ -65,11 +85,7 @@ function indexFile(options = {}) {
65
85
  if (target === "vite") return;
66
86
  if (target === "default" && event === "change") return;
67
87
  }
68
- await this.core.emit({
69
- filterPlugin: (plugin) => plugin.name === "index-file",
70
- filterWorkspace: () => false,
71
- write: true
72
- });
88
+ regenerate();
73
89
  });
74
90
  },
75
91
  async emit() {
package/dist/index.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- import { N as ExtractedReference, a as EmitOptions, c as PluginContext, d as TransformOptions, i as EmitEntry, j as CompiledMDXProperties, l as PluginOption, n as Core, o as EmitOutput, r as CoreOptions, s as Plugin, t as CompilationContext, u as ServerContext } from "./core-BmvJhZxm.js";
1
+ import { N as ExtractedReference, a as EmitOptions, c as PluginContext, d as TransformOptions, i as EmitEntry, j as CompiledMDXProperties, l as PluginOption, n as Core, o as EmitOutput, r as CoreOptions, s as Plugin, t as CompilationContext, u as ServerContext } from "./core-ZgBVAQdE.js";
2
2
  export type { CompilationContext, CompiledMDXProperties, Core, CoreOptions, EmitEntry, EmitOptions, EmitOutput, ExtractedReference, Plugin, PluginContext, PluginOption, ServerContext, TransformOptions };
@@ -11,10 +11,10 @@ async function resolveLastModified(collection, filePath) {
11
11
  const option = collection?.lastModified;
12
12
  if (!option) return;
13
13
  if (typeof option === "function") return await option(filePath) ?? void 0;
14
- return (await getGitTimestamps(collection.cwd)).get(path.resolve(collection.cwd, filePath));
14
+ return (await getGitTimestamps(collection.cwd, collection.dir)).get(path.resolve(collection.cwd, filePath));
15
15
  }
16
- function getGitTimestamps(cwd) {
17
- const cached = cache.get(cwd);
16
+ function getGitTimestamps(cwd, dir) {
17
+ const cached = cache.get(dir);
18
18
  if (cached) return cached;
19
19
  const promise = (async () => {
20
20
  const timestamps = /* @__PURE__ */ new Map();
@@ -25,7 +25,9 @@ function getGitTimestamps(cwd) {
25
25
  "core.quotepath=off",
26
26
  "log",
27
27
  "--format=commit:%aI",
28
- "--name-only"
28
+ "--name-only",
29
+ "--",
30
+ dir
29
31
  ], { nodeOptions: { cwd } });
30
32
  if (out.exitCode !== 0) return timestamps;
31
33
  let date;
@@ -38,7 +40,7 @@ function getGitTimestamps(cwd) {
38
40
  }
39
41
  return timestamps;
40
42
  })();
41
- cache.set(cwd, promise);
43
+ cache.set(dir, promise);
42
44
  return promise;
43
45
  }
44
46
  //#endregion
@@ -1,4 +1,4 @@
1
- import { i as buildConfig } from "./core-BPlsDtvN.js";
1
+ import { i as buildConfig } from "./core-BHawVsTm.js";
2
2
  import fs from "node:fs/promises";
3
3
  import path from "node:path";
4
4
  import { pathToFileURL } from "node:url";
@@ -1,4 +1,4 @@
1
- import { A as SatteriOptionsInput, N as ExtractedReference, P as PostprocessOptions, h as BuildEnvironment, v as CollectionSchema } from "../core-BmvJhZxm.js";
1
+ import { A as SatteriOptionsInput, N as ExtractedReference, P as PostprocessOptions, h as BuildEnvironment, v as CollectionSchema } from "../core-ZgBVAQdE.js";
2
2
  import { MacroAsyncDocCollection, MacroAsyncDocsCollection, MacroDocCollection, MacroDocsCollection, MacroMetaCollection } from "../runtime/macro.js";
3
3
  import { metaSchema, pageSchema } from "fumadocs-core/source/schema";
4
4
  import { MetaData, PageData } from "fumadocs-core/source";
@@ -63,7 +63,7 @@ function createMdxLoader({ getCore }) {
63
63
  code: `export const frontmatter = ${JSON.stringify(matter.data)}`,
64
64
  map: null
65
65
  };
66
- const { buildMDX } = await import("./build-DvX_5u5A.js").then((n) => n.n);
66
+ const { buildMDX } = await import("./build-BPukCt-X.js").then((n) => n.n);
67
67
  const compiled = await buildMDX(core, docCollection, {
68
68
  isDevelopment,
69
69
  source: "\n".repeat(countLines(matter.matter)) + matter.content,
@@ -1,4 +1,4 @@
1
- import { p as IndexFilePluginOptions, r as CoreOptions } from "../core-BmvJhZxm.js";
1
+ import { p as IndexFilePluginOptions, r as CoreOptions } from "../core-ZgBVAQdE.js";
2
2
  import { t as MacroPluginOption } from "../options-aB6xV-d7.js";
3
3
  import { NextConfig } from "next";
4
4
  //#region src/next/index.d.ts
@@ -1,8 +1,8 @@
1
- import { t as createCore } from "../core-BPlsDtvN.js";
2
- import { t as loadConfig } from "../load-from-file-CIW3c2FZ.js";
1
+ import { t as createCore } from "../core-BHawVsTm.js";
2
+ import { t as loadConfig } from "../load-from-file-DSDlZhTM.js";
3
3
  import { i as metaLoaderQueryGlob, n as metaLoaderFileGlob, t as mdxLoaderGlob } from "../loaders-DWC_Uwqq.js";
4
4
  import { n as createMacroMatcher, r as resolveMacroOptions } from "../options-BNnYUjkM.js";
5
- import { t as indexFile } from "../index-file-pX-fCn8l.js";
5
+ import { t as indexFile } from "../index-file-BSc4lZH6.js";
6
6
  import * as path$1 from "node:path";
7
7
  //#region src/next/index.ts
8
8
  const defaultPageExtensions = [
@@ -1,11 +1,11 @@
1
- import { t as createMdxLoader } from "../mdx-DkuxK47O.js";
2
- import { t as createCore } from "../core-BPlsDtvN.js";
3
- import { r as slash } from "../codegen-ESdi9CDJ.js";
4
- import { n as toNode, o as createStandaloneConfigLoader } from "../adapter-Bf3BetFi.js";
1
+ import { t as createMdxLoader } from "../mdx-20MMF76V.js";
2
+ import { t as createCore } from "../core-BHawVsTm.js";
3
+ import { r as slash } from "../codegen-BYYNMDsX.js";
4
+ import { n as toNode, o as createStandaloneConfigLoader } from "../adapter-CaofLLZB.js";
5
5
  import { t as createMetaLoader } from "../meta-BR_rkCyY.js";
6
6
  import { r as metaLoaderGlob, t as mdxLoaderGlob } from "../loaders-DWC_Uwqq.js";
7
7
  import { n as createMacroMatcher, r as resolveMacroOptions } from "../options-BNnYUjkM.js";
8
- import { n as createNodeEvaluator, t as MacroCollector } from "../eval-z3HV4VJp.js";
8
+ import { n as createNodeEvaluator, t as MacroCollector } from "../eval-Ck25S_U5.js";
9
9
  import path from "node:path";
10
10
  import { fileURLToPath } from "node:url";
11
11
  //#region src/node/_loader.ts
@@ -20,7 +20,7 @@ function toNodeMacro(options, root) {
20
20
  const loaded = await nextLoad(url, context);
21
21
  const code = loaded.source?.toString();
22
22
  if (!code || !code.includes("fumadocs-mdx/macro")) return loaded;
23
- const { transformMacroModule } = await import("../transform-BFobDsdE.js").then((n) => n.i);
23
+ const { transformMacroModule } = await import("../transform-I3BjMKz6.js").then((n) => n.i);
24
24
  const result = await transformMacroModule({
25
25
  code,
26
26
  file,
@@ -1,4 +1,4 @@
1
- import { r as CoreOptions } from "../core-BmvJhZxm.js";
1
+ import { r as CoreOptions } from "../core-ZgBVAQdE.js";
2
2
  import { t as MacroPluginOption } from "../options-aB6xV-d7.js";
3
3
  //#region src/node/index.d.ts
4
4
  interface NodeLoaderOptions extends Pick<CoreOptions, 'configPath' | 'outDir' | 'plugins'> {
@@ -1,6 +1,6 @@
1
- import { t as createMdxLoader } from "../mdx-DkuxK47O.js";
2
- import { t as createCore } from "../core-BPlsDtvN.js";
3
- import { n as toNode, o as createStandaloneConfigLoader } from "../adapter-Bf3BetFi.js";
1
+ import { t as createMdxLoader } from "../mdx-20MMF76V.js";
2
+ import { t as createCore } from "../core-BHawVsTm.js";
3
+ import { n as toNode, o as createStandaloneConfigLoader } from "../adapter-CaofLLZB.js";
4
4
  import { t as createMetaLoader } from "../meta-BR_rkCyY.js";
5
5
  import { r as metaLoaderGlob, t as mdxLoaderGlob } from "../loaders-DWC_Uwqq.js";
6
6
  //#region src/node/loader.ts
@@ -1,2 +1,2 @@
1
- import { f as IndexFilePlugin, m as indexFile, p as IndexFilePluginOptions } from "../core-BmvJhZxm.js";
1
+ import { f as IndexFilePlugin, m as indexFile, p as IndexFilePluginOptions } from "../core-ZgBVAQdE.js";
2
2
  export { IndexFilePlugin, IndexFilePluginOptions, indexFile as default };
@@ -1,2 +1,2 @@
1
- import { t as indexFile } from "../index-file-pX-fCn8l.js";
1
+ import { t as indexFile } from "../index-file-BSc4lZH6.js";
2
2
  export { indexFile as default };
@@ -1,4 +1,4 @@
1
- import { s as Plugin } from "../core-BmvJhZxm.js";
1
+ import { s as Plugin } from "../core-ZgBVAQdE.js";
2
2
  //#region src/plugins/json-schema.d.ts
3
3
  interface JSONSchemaOptions {
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { M as LastModifiedFn, s as Plugin } from "../core-BmvJhZxm.js";
1
+ import { M as LastModifiedFn, s as Plugin } from "../core-ZgBVAQdE.js";
2
2
  //#region src/plugins/last-modified.d.ts
3
3
  interface LastModifiedPluginOptions {
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { r as CoreOptions } from "../core-BmvJhZxm.js";
1
+ import { r as CoreOptions } from "../core-ZgBVAQdE.js";
2
2
  import { t as MacroPluginOption } from "../options-aB6xV-d7.js";
3
3
  import { RolldownPlugin } from "rolldown";
4
4
  //#region src/rolldown/index.d.ts
@@ -1,11 +1,11 @@
1
- import { t as createMdxLoader } from "../mdx-DkuxK47O.js";
2
- import { i as buildConfig, t as createCore } from "../core-BPlsDtvN.js";
3
- import { r as slash } from "../codegen-ESdi9CDJ.js";
4
- import { a as createIntegratedConfigLoader, r as toVite } from "../adapter-Bf3BetFi.js";
1
+ import { t as createMdxLoader } from "../mdx-20MMF76V.js";
2
+ import { i as buildConfig, t as createCore } from "../core-BHawVsTm.js";
3
+ import { r as slash } from "../codegen-BYYNMDsX.js";
4
+ import { a as createIntegratedConfigLoader, r as toVite } from "../adapter-CaofLLZB.js";
5
5
  import { t as createMetaLoader } from "../meta-BR_rkCyY.js";
6
6
  import { r as metaLoaderGlob, t as mdxLoaderGlob } from "../loaders-DWC_Uwqq.js";
7
7
  import { r as resolveMacroOptions, t as MacroModuleId } from "../options-BNnYUjkM.js";
8
- import { n as createNodeEvaluator, t as MacroCollector } from "../eval-z3HV4VJp.js";
8
+ import { n as createNodeEvaluator, t as MacroCollector } from "../eval-Ck25S_U5.js";
9
9
  import fs from "node:fs/promises";
10
10
  import path from "node:path";
11
11
  //#region src/rolldown/index.ts
@@ -42,7 +42,7 @@ async function mdx(config = {}, options) {
42
42
  },
43
43
  async handler(code, id) {
44
44
  const [file] = id.split("?", 2);
45
- const { transformMacroModule } = await import("../transform-BFobDsdE.js").then((n) => n.i);
45
+ const { transformMacroModule } = await import("../transform-I3BjMKz6.js").then((n) => n.i);
46
46
  const result = await transformMacroModule({
47
47
  code,
48
48
  file,
@@ -1,5 +1,5 @@
1
- import { C as DocsCollection, j as CompiledMDXProperties, y as DocCollection } from "../core-BmvJhZxm.js";
2
- import { i as InternalTypeConfig } from "../types-DWoea9Sq.js";
1
+ import { C as DocsCollection, j as CompiledMDXProperties, y as DocCollection } from "../core-ZgBVAQdE.js";
2
+ import { a as InternalTypeConfig } from "../types-1n7Fk5Dl.js";
3
3
  import { FC, ReactNode } from "react";
4
4
  import { StandardSchemaV1 } from "@standard-schema/spec";
5
5
  //#region src/runtime/browser.d.ts
@@ -1,6 +1,6 @@
1
- import { C as DocsCollection, r as CoreOptions, y as DocCollection } from "../core-BmvJhZxm.js";
2
- import "../index-BN7EkING.js";
3
- import { i as InternalTypeConfig, r as FileInfo } from "../types-DWoea9Sq.js";
1
+ import { C as DocsCollection, r as CoreOptions, y as DocCollection } from "../core-ZgBVAQdE.js";
2
+ import "../index-BMgfRjXO.js";
3
+ import { a as InternalTypeConfig, r as FileInfo } from "../types-1n7Fk5Dl.js";
4
4
  import { AsyncDocCollectionEntry, AsyncDocsCollectionEntry } from "./server.js";
5
5
  //#region src/runtime/dynamic.d.ts
6
6
  interface LazyEntry<Data = unknown> {
@@ -1,10 +1,11 @@
1
- import { i as buildConfig, t as createCore } from "../core-BPlsDtvN.js";
2
- import { t as buildMDX } from "../build-DvX_5u5A.js";
1
+ import { i as buildConfig, t as createCore } from "../core-BHawVsTm.js";
2
+ import { t as buildMDX } from "../build-BPukCt-X.js";
3
3
  import { server } from "./server.js";
4
4
  import { frontmatter } from "fumadocs-core/content/md/frontmatter";
5
5
  import fs from "node:fs/promises";
6
6
  import { pathToFileURL } from "node:url";
7
7
  import jsxRuntimeDefault from "react/jsx-runtime";
8
+ import { asMarkdown, jsxComponents } from "fumadocs-core/server";
8
9
  //#region src/runtime/dynamic.ts
9
10
  const AsyncFunction = Object.getPrototypeOf(executeMdx).constructor;
10
11
  /** we always assume the input code is safe and execute it directly */
@@ -14,6 +15,8 @@ async function executeMdx(compiled, options = {}) {
14
15
  opts: {
15
16
  ...scopeOpts,
16
17
  ...options.jsxRuntime ?? jsxRuntimeDefault,
18
+ asMarkdown,
19
+ jsxComponents,
17
20
  baseUrl: options.baseUrl
18
21
  },
19
22
  ...scope
@@ -1,4 +1,4 @@
1
- import { a as MetaMethods, n as DocMethods, t as DocData } from "../types-DWoea9Sq.js";
1
+ import { n as DocMethods, o as MetaMethods, t as DocData } from "../types-1n7Fk5Dl.js";
2
2
  import { MetaData, PageData, Source } from "fumadocs-core/source";
3
3
  import { MDXContent } from "mdx/types";
4
4
  import { StructuredData } from "fumadocs-core/mdx-plugins/remark-structure";
@@ -1,6 +1,6 @@
1
- import { C as DocsCollection, T as MetaCollection, y as DocCollection } from "../core-BmvJhZxm.js";
2
- import "../index-BN7EkING.js";
3
- import { a as MetaMethods, i as InternalTypeConfig, n as DocMethods, t as DocData } from "../types-DWoea9Sq.js";
1
+ import { C as DocsCollection, T as MetaCollection, y as DocCollection } from "../core-ZgBVAQdE.js";
2
+ import "../index-BMgfRjXO.js";
3
+ import { a as InternalTypeConfig, n as DocMethods, o as MetaMethods, t as DocData } from "../types-1n7Fk5Dl.js";
4
4
  import { MetaData, PageData, Source } from "fumadocs-core/source";
5
5
  import { StandardSchemaV1 } from "@standard-schema/spec";
6
6
  import { StructuredData } from "fumadocs-core/mdx-plugins/remark-structure";
@@ -1,3 +1,4 @@
1
+ import { createElement } from "react";
1
2
  import { PathUtils } from "fumadocs-core/source";
2
3
  //#region src/runtime/server.ts
3
4
  function server() {
@@ -94,12 +95,16 @@ function toFumadocsSource(pages, metas, options) {
94
95
  function createDocMethods(info, load) {
95
96
  return {
96
97
  info,
97
- async getText(type) {
98
+ async getText(type, options) {
98
99
  if (type === "raw") return await (await import("node:fs/promises")).readFile(info.fullPath, "utf-8");
99
100
  const data = await load();
100
101
  const markdown = data._markdown ?? data._exports?._markdown;
101
- if (typeof markdown !== "string") throw new Error("getText('processed') requires `includeProcessedMarkdown` to be enabled in your collection config.");
102
- return markdown;
102
+ if (typeof markdown === "string") return markdown;
103
+ if (markdown) {
104
+ const { renderToMarkdown } = await import("fumadocs-core/server");
105
+ return renderToMarkdown(createElement(markdown, { components: options?.components }));
106
+ }
107
+ throw new Error("getText('processed') requires `includeProcessedMarkdown` to be enabled in your collection config.");
103
108
  },
104
109
  async getMDAST() {
105
110
  const data = await load();
@@ -1,2 +1,2 @@
1
- import { a as MetaMethods, i as InternalTypeConfig, n as DocMethods, r as FileInfo, t as DocData } from "../types-DWoea9Sq.js";
2
- export { DocData, DocMethods, FileInfo, InternalTypeConfig, MetaMethods };
1
+ import { a as InternalTypeConfig, i as GetTextOptions, n as DocMethods, o as MetaMethods, r as FileInfo, t as DocData } from "../types-1n7Fk5Dl.js";
2
+ export { DocData, DocMethods, FileInfo, GetTextOptions, InternalTypeConfig, MetaMethods };
@@ -1,5 +1,5 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-D7D4PA-g.js";
2
- import { r as slash, t as createCodegen } from "./codegen-ESdi9CDJ.js";
2
+ import { r as slash, t as createCodegen } from "./codegen-BYYNMDsX.js";
3
3
  import { t as MacroModuleId } from "./options-BNnYUjkM.js";
4
4
  import path from "node:path";
5
5
  import MagicString from "magic-string";
@@ -1,6 +1,6 @@
1
1
  import { Root } from "mdast";
2
2
  import { TOCItemType } from "fumadocs-core/toc";
3
- import { MDXContent } from "mdx/types";
3
+ import { MDXComponents, MDXContent } from "mdx/types";
4
4
  import { StructuredData } from "fumadocs-core/mdx-plugins/remark-structure";
5
5
  //#region src/runtime/types.d.ts
6
6
  interface DocData {
@@ -31,6 +31,12 @@ interface FileInfo {
31
31
  */
32
32
  fullPath: string;
33
33
  }
34
+ interface GetTextOptions {
35
+ /**
36
+ * MDX components for JSX elements in the output, only available with `output: 'function'` in `includeProcessedMarkdown`.
37
+ */
38
+ components?: MDXComponents;
39
+ }
34
40
  interface DocMethods {
35
41
  /**
36
42
  * file info
@@ -42,7 +48,7 @@ interface DocMethods {
42
48
  * - `type: raw` - read the original content from file system.
43
49
  * - `type: processed` - get the processed Markdown content, only available when `includeProcessedMarkdown` is enabled on collection config.
44
50
  */
45
- getText: (type: 'raw' | 'processed') => Promise<string>;
51
+ getText: (type: 'raw' | 'processed', options?: GetTextOptions) => Promise<string>;
46
52
  getMDAST: () => Promise<Root>;
47
53
  }
48
54
  interface MetaMethods {
@@ -58,4 +64,4 @@ interface InternalTypeConfig {
58
64
  DocData: Record<string, unknown>;
59
65
  }
60
66
  //#endregion
61
- export { MetaMethods as a, InternalTypeConfig as i, DocMethods as n, FileInfo as r, DocData as t };
67
+ export { InternalTypeConfig as a, GetTextOptions as i, DocMethods as n, MetaMethods as o, FileInfo as r, DocData as t };
@@ -1,6 +1,6 @@
1
- import { p as IndexFilePluginOptions, r as CoreOptions, w as GlobalConfig } from "../core-BmvJhZxm.js";
1
+ import { p as IndexFilePluginOptions, r as CoreOptions, w as GlobalConfig } from "../core-ZgBVAQdE.js";
2
2
  import { t as MacroPluginOption } from "../options-aB6xV-d7.js";
3
- import "../index-BN7EkING.js";
3
+ import "../index-BMgfRjXO.js";
4
4
  import { Plugin } from "vite";
5
5
  //#region src/vite/index.d.ts
6
6
  interface PluginOptions extends Pick<CoreOptions, 'configPath' | 'outDir' | 'plugins'> {
@@ -1,10 +1,10 @@
1
- import { t as createMdxLoader } from "../mdx-DkuxK47O.js";
2
- import { i as buildConfig, t as createCore } from "../core-BPlsDtvN.js";
3
- import { a as createIntegratedConfigLoader, r as toVite } from "../adapter-Bf3BetFi.js";
1
+ import { t as createMdxLoader } from "../mdx-20MMF76V.js";
2
+ import { i as buildConfig, t as createCore } from "../core-BHawVsTm.js";
3
+ import { a as createIntegratedConfigLoader, r as toVite } from "../adapter-CaofLLZB.js";
4
4
  import { t as createMetaLoader } from "../meta-BR_rkCyY.js";
5
5
  import { r as metaLoaderGlob, t as mdxLoaderGlob } from "../loaders-DWC_Uwqq.js";
6
6
  import { r as resolveMacroOptions, t as MacroModuleId } from "../options-BNnYUjkM.js";
7
- import { t as indexFile } from "../index-file-pX-fCn8l.js";
7
+ import { t as indexFile } from "../index-file-BSc4lZH6.js";
8
8
  import fs from "node:fs/promises";
9
9
  import path from "node:path";
10
10
  import { runnerImport } from "vite";
@@ -50,7 +50,7 @@ function mdx(forcedConfig, pluginOptions = {}) {
50
50
  const core = managed.core;
51
51
  const macroOptions = resolveMacroOptions(pluginOptions.macro);
52
52
  if (macroOptions) {
53
- const { MacroCollector } = await import("../eval-z3HV4VJp.js").then((n) => n.r);
53
+ const { MacroCollector } = await import("../eval-Ck25S_U5.js").then((n) => n.r);
54
54
  core.macro = new MacroCollector({
55
55
  root: core.root,
56
56
  outDir: core.outDir,
@@ -92,7 +92,7 @@ function mdx(forcedConfig, pluginOptions = {}) {
92
92
  },
93
93
  async handler(code, id) {
94
94
  const [file] = id.split("?", 2);
95
- const { transformMacroModule } = await import("../transform-BFobDsdE.js").then((n) => n.i);
95
+ const { transformMacroModule } = await import("../transform-I3BjMKz6.js").then((n) => n.i);
96
96
  const result = await transformMacroModule({
97
97
  code,
98
98
  file,
@@ -109,7 +109,7 @@ function mdx(forcedConfig, pluginOptions = {}) {
109
109
  }
110
110
  if ("_fumadocs_skipViteConfig" in config && config._fumadocs_skipViteConfig) return;
111
111
  if (!updateViteConfig) return;
112
- const { getConfig } = await import("../dist-Bniav-AK.js");
112
+ const { getConfig } = await import("../dist-ReDy_RCL.js");
113
113
  return getConfig({
114
114
  root: core.root,
115
115
  isBuild: env.command === "build"
@@ -1,4 +1,4 @@
1
- import { t as WebpackLoaderOptions } from "../index-vs1fd5_x.js";
1
+ import { t as WebpackLoaderOptions } from "../index-CCzEIOob.js";
2
2
  import { LoaderDefinitionFunction } from "webpack";
3
3
  //#region src/webpack/macro.d.ts
4
4
  /**
@@ -1,5 +1,5 @@
1
1
  import "../options-BNnYUjkM.js";
2
- import { r as transformMacroModule } from "../transform-BFobDsdE.js";
2
+ import { r as transformMacroModule } from "../transform-I3BjMKz6.js";
3
3
  //#region src/webpack/macro.ts
4
4
  /**
5
5
  * Expand macro calls (`fumadocs-mdx/macro`) into static imports of content files.
@@ -1,4 +1,4 @@
1
- import { t as WebpackLoaderOptions } from "../index-vs1fd5_x.js";
1
+ import { t as WebpackLoaderOptions } from "../index-CCzEIOob.js";
2
2
  import { LoaderDefinitionFunction } from "webpack";
3
3
  //#region src/webpack/mdx.d.ts
4
4
  declare const loader: LoaderDefinitionFunction<WebpackLoaderOptions>;
@@ -1,6 +1,6 @@
1
- import { t as createMdxLoader } from "../mdx-DkuxK47O.js";
2
- import { i as toWebpack, o as createStandaloneConfigLoader } from "../adapter-Bf3BetFi.js";
3
- import { t as getCore } from "../webpack-BSog6pml.js";
1
+ import { t as createMdxLoader } from "../mdx-20MMF76V.js";
2
+ import { i as toWebpack, o as createStandaloneConfigLoader } from "../adapter-CaofLLZB.js";
3
+ import { t as getCore } from "../webpack-CNi1ZUjq.js";
4
4
  //#region src/webpack/mdx.ts
5
5
  let instance;
6
6
  const loader = function loader(source) {
@@ -1,4 +1,4 @@
1
- import { t as WebpackLoaderOptions } from "../index-vs1fd5_x.js";
1
+ import { t as WebpackLoaderOptions } from "../index-CCzEIOob.js";
2
2
  import { LoaderDefinitionFunction } from "webpack";
3
3
  //#region src/webpack/meta.d.ts
4
4
  declare const loader: LoaderDefinitionFunction<WebpackLoaderOptions>;
@@ -1,6 +1,6 @@
1
- import { i as toWebpack, o as createStandaloneConfigLoader } from "../adapter-Bf3BetFi.js";
1
+ import { i as toWebpack, o as createStandaloneConfigLoader } from "../adapter-CaofLLZB.js";
2
2
  import { t as createMetaLoader } from "../meta-BR_rkCyY.js";
3
- import { t as getCore } from "../webpack-BSog6pml.js";
3
+ import { t as getCore } from "../webpack-CNi1ZUjq.js";
4
4
  //#region src/webpack/meta.ts
5
5
  const instances = /* @__PURE__ */ new Map();
6
6
  const loader = function(source) {
@@ -1,5 +1,5 @@
1
- import { t as createCore } from "./core-BPlsDtvN.js";
2
- import { n as createNodeEvaluator, t as MacroCollector } from "./eval-z3HV4VJp.js";
1
+ import { t as createCore } from "./core-BHawVsTm.js";
2
+ import { n as createNodeEvaluator, t as MacroCollector } from "./eval-Ck25S_U5.js";
3
3
  //#region src/webpack/index.ts
4
4
  let core;
5
5
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fumadocs-mdx",
3
- "version": "15.3.0",
3
+ "version": "15.4.0",
4
4
  "description": "The built-in source for Fumadocs",
5
5
  "keywords": [
6
6
  "Docs",
@@ -59,10 +59,10 @@
59
59
  "esbuild": "^0.28.2",
60
60
  "estree-util-value-to-estree": "^3.5.0",
61
61
  "github-slugger": "^2.0.0",
62
- "magic-string": "^1.1.1",
62
+ "magic-string": "^1.2.2",
63
63
  "mdast-util-mdx": "^3.0.0",
64
64
  "picocolors": "^1.1.1",
65
- "picomatch": "^4.0.5",
65
+ "picomatch": "^4.0.7",
66
66
  "tinyexec": "^1.3.0",
67
67
  "tinyglobby": "^0.2.17",
68
68
  "unified": "^11.0.5",
@@ -70,43 +70,43 @@
70
70
  "unist-util-visit": "^5.1.0",
71
71
  "vfile": "^6.0.3",
72
72
  "yaml": "^2.9.0",
73
- "yuku-analyzer": "^0.8.5",
73
+ "yuku-analyzer": "^0.9.1",
74
74
  "zod": "^4.4.3"
75
75
  },
76
76
  "devDependencies": {
77
- "@types/bun": "^1.3.14",
77
+ "@types/bun": "^1.4.0",
78
78
  "@types/mdast": "^4.0.4",
79
79
  "@types/mdx": "^2.0.14",
80
- "@types/node": "^26.2.0",
80
+ "@types/node": "^26.3.0",
81
81
  "@types/picomatch": "^4.0.3",
82
82
  "@types/react": "^19.2.18",
83
83
  "mdast-util-directive": "^3.1.0",
84
- "next": "^16.3.0",
84
+ "next": "^16.3.2",
85
85
  "react": "^19.2.8",
86
86
  "remark": "^15.0.1",
87
87
  "remark-directive": "^4.0.0",
88
88
  "remark-mdx": "^3.1.1",
89
- "rolldown": "^1.2.4",
90
- "satteri": "^0.10.3",
89
+ "rolldown": "^1.2.5",
90
+ "satteri": "^0.10.5",
91
91
  "tsdown": "0.22.14",
92
- "vite": "^8.2.1",
92
+ "vite": "^8.2.2",
93
93
  "webpack": "^5.109.2",
94
- "@fumadocs/satteri": "0.4.0",
95
- "@fumadocs/vite": "0.1.0",
96
- "fumadocs-core": "16.14.5",
97
- "tsconfig": "0.0.0"
94
+ "@fumadocs/satteri": "0.5.0",
95
+ "fumadocs-core": "16.15.3",
96
+ "tsconfig": "0.0.0",
97
+ "@fumadocs/vite": "0.1.0"
98
98
  },
99
99
  "peerDependencies": {
100
100
  "@fumadocs/satteri": "0.x.x",
101
101
  "@types/mdast": "*",
102
102
  "@types/mdx": "*",
103
103
  "@types/react": "*",
104
- "fumadocs-core": "^16.7.0",
104
+ "fumadocs-core": "^16.15.3",
105
105
  "mdast-util-directive": "*",
106
106
  "next": "^15.3.0 || ^16.0.0",
107
107
  "react": "^19.2.0",
108
108
  "rolldown": "*",
109
- "satteri": "^0.10.0",
109
+ "satteri": "^0.10.5",
110
110
  "vite": "7.x.x || 8.x.x"
111
111
  },
112
112
  "peerDependenciesMeta": {