fumadocs-mdx 15.2.3 → 15.3.1

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.
@@ -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-k0DGJ1In.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 }) {
@@ -50,19 +50,19 @@ async function buildSatteriMDX(core, collection, { filePath, frontmatter, source
50
50
  function postprocessPlugin({ extractLinkReferences = false }, lastModified) {
51
51
  return {
52
52
  name: "remark-postprocess",
53
+ before(_root, ctx) {
54
+ if (extractLinkReferences) ctx.data.extractedReferences ??= [];
55
+ },
53
56
  heading(node, ctx) {
54
57
  const frontmatter = ctx.data.frontmatter ??= {};
55
58
  if (!frontmatter.title && node.depth === 1) frontmatter.title = ctx.textContent(node);
56
59
  },
57
60
  link(node, ctx) {
58
- if (extractLinkReferences) (ctx.data.extractedReferences ??= []).push({ href: node.url });
61
+ if (extractLinkReferences) ctx.data.extractedReferences.push({ href: node.url });
59
62
  },
60
63
  collectExports({ data, addExport }) {
61
- if (extractLinkReferences) addExport("extractedReferences", JSON.stringify(data.extractedReferences ??= []));
64
+ if (extractLinkReferences) addExport("extractedReferences", JSON.stringify(data.extractedReferences));
62
65
  if (lastModified) addExport("lastModified", `new Date(${lastModified.getTime()})`);
63
- },
64
- afterToJs({ result }) {
65
- if (extractLinkReferences) result.data.extractedReferences ??= [];
66
66
  }
67
67
  };
68
68
  }
package/dist/bun/index.js CHANGED
@@ -1,7 +1,7 @@
1
- import { t as createMdxLoader } from "../mdx-B3lIEUoO.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,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";
@@ -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 { 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() {
@@ -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";
@@ -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-CsdoQ3rC.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,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-B3lIEUoO.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,6 +1,6 @@
1
- import { t as createMdxLoader } from "../mdx-B3lIEUoO.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 { 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,11 +1,11 @@
1
- import { t as createMdxLoader } from "../mdx-B3lIEUoO.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 { i as buildConfig, t as createCore } from "../core-BPlsDtvN.js";
2
- import { t as buildMDX } from "../build-CsdoQ3rC.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";
@@ -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,10 +1,10 @@
1
- import { t as createMdxLoader } from "../mdx-B3lIEUoO.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,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,6 +1,6 @@
1
- import { t as createMdxLoader } from "../mdx-B3lIEUoO.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,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.2.3",
3
+ "version": "15.3.1",
4
4
  "description": "The built-in source for Fumadocs",
5
5
  "keywords": [
6
6
  "Docs",
@@ -56,10 +56,10 @@
56
56
  "@mdx-js/mdx": "^3.1.1",
57
57
  "@standard-schema/spec": "^1.1.0",
58
58
  "chokidar": "^5.0.0",
59
- "esbuild": "^0.28.1",
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.0",
62
+ "magic-string": "^1.1.1",
63
63
  "mdast-util-mdx": "^3.0.0",
64
64
  "picocolors": "^1.1.1",
65
65
  "picomatch": "^4.0.5",
@@ -70,14 +70,14 @@
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.3",
73
+ "yuku-analyzer": "^0.8.5",
74
74
  "zod": "^4.4.3"
75
75
  },
76
76
  "devDependencies": {
77
77
  "@types/bun": "^1.3.14",
78
78
  "@types/mdast": "^4.0.4",
79
79
  "@types/mdx": "^2.0.14",
80
- "@types/node": "^26.1.2",
80
+ "@types/node": "^26.2.0",
81
81
  "@types/picomatch": "^4.0.3",
82
82
  "@types/react": "^19.2.18",
83
83
  "mdast-util-directive": "^3.1.0",
@@ -86,15 +86,15 @@
86
86
  "remark": "^15.0.1",
87
87
  "remark-directive": "^4.0.0",
88
88
  "remark-mdx": "^3.1.1",
89
- "rolldown": "^1.2.2",
90
- "satteri": "^0.9.5",
89
+ "rolldown": "^1.2.4",
90
+ "satteri": "^0.10.3",
91
91
  "tsdown": "0.22.14",
92
- "vite": "^8.2.0",
92
+ "vite": "^8.2.1",
93
93
  "webpack": "^5.109.2",
94
- "@fumadocs/satteri": "0.3.1",
95
- "fumadocs-core": "16.14.3",
96
- "tsconfig": "0.0.0",
97
- "@fumadocs/vite": "0.1.0"
94
+ "@fumadocs/vite": "0.1.0",
95
+ "@fumadocs/satteri": "0.4.1",
96
+ "fumadocs-core": "16.15.0",
97
+ "tsconfig": "0.0.0"
98
98
  },
99
99
  "peerDependencies": {
100
100
  "@fumadocs/satteri": "0.x.x",
@@ -106,7 +106,7 @@
106
106
  "next": "^15.3.0 || ^16.0.0",
107
107
  "react": "^19.2.0",
108
108
  "rolldown": "*",
109
- "satteri": "^0.9.4",
109
+ "satteri": "^0.10.0",
110
110
  "vite": "7.x.x || 8.x.x"
111
111
  },
112
112
  "peerDependenciesMeta": {